单片机与PC机串行通信的软硬件实现
在工业控制领域,往往需要组成上位机下位机系统,由一台上位机去控制多台下位机。上位机一般是PC机,下位机一般是单片机系统,这样就往往不可回避的遇到了单片机与PC机串行通信的问题。当上位机与下位机距离较远时,就需要在上位机与下位机之间进行远程串行数据通信。
论文给出了单片机与PC机串行通信的软硬件实现,分别设计实现了单片机与PC机点对点串行通信和PC机与多单片机串行通信。文章中采用高级语言Visual Basic 6.0和汇编语言来实现串行通信,并分别给出单片机和PC部分的源程序。PC机与多单片机串行通信这部分采用RS485接口进行远距离串行通信。为保证数据的可靠传输,针对通信过程中可能出现的问题提出了相应的合理的解决办法。
文章最后结合前面的讨论,介绍了在由一台PC机为上位机,多台单片机作为下位机组成的集散控制系统的啤酒发酵罐温度检测及监控系统。利用VB6.0的通信控件与多台下位机进行数据通信实现参数设定及数据采集,并将数据存入数据库,以便查询。
关键词 单片机,VB6.0,串行通信,多机通信,RS—232,RS—485
ABSTRACT
In industry control field,often it needs to build upper machine and down position machine system.An upper machine controls many down position machines.Upper machine generally is PC machine,and down position machine generally is the single chip microcomputer system. In this case,it might not avoid meeting the monolithic integrated circuit and PC machine serial communication question.When upper machine is far from down position machine, it needs to carry on the long-distance serial data communication between upper machine and down position machine.
The paper has produced the single chip microcomputer and PC machine serial communication software and hardware realization,separately designed to achieve the single chip microcomputer and PC machine point-to-point serial communication and PC machine with the multi- single chip microcomputer serial communication,and separately produced the single chip microcomputer and the PC partial source programs. The part of PC machine and multi- single chip microcomputers serial communication introduces how to use the RS485 to carry on the long-distance serial communication.In order to guarantee the data the reliable transmission,I also propose corresponding reasonable solution to questions which possibly appear in the course of communications .
Finally the article with the preceding discussion introduces a beer fermenter temperature detection and monitoring system which is composed by PC machine as upper machine and multi-single chip microcomputers as down position machine.I make use of VB6.0 correspondence controls carrying on the data communication with many down position machines to realize parameter hypothesis and data acquisition, also use VB6.0 formidable database function to analysis data results.
KEYWORDS Single-chip microcomputer, VB6.0, serial communication, multi-machine communication, RS-232, RS-485
目 录
摘 要 I
ABSTRACT II
第一章 绪论 1
1.1 单片机与PC机串行通信现状及发展前景 1
1.2 单片机与PC机串行通信研究目的和意义 2
1.3 论文内容及结构安排 3
第二章 串行通信基本知识 4
2.1 本文中所用单片机的选择 4
2.2 串行通信基本概念 5
2.3 串行通信标准 7
2.3.1 RS—232C标准 7
2.3.2 RS—485与232 8
第三章 单片机与PC机串行通信的实现 10
3.1 单片机与PC机间的点对点通信硬件设计 10
3.2 单片机与PC机间的点对点通信软件设计 11
3.2.1 编程语言选择 11
3.2.2 通信协议整体思路及上位机下位机程序设计 13
3.3 PC机与多单片机串行通信硬件设计 16
3.3.1 RS485网络配置 16
3.3.2 PC机与多单片机通信原理框图 17
3.3.3 RS—232转RS—485接口电路 18
3.3.4 RS—485电平转TTL电平电路 19
3.4 PC机与多单片机串行通信软件设计 21
3.4.1 数据收发原理 21
3.4.2 上位机及下位机程序设计 22
第四章 啤酒发酵罐温度监控 26
4.1 概述 26
4.1.1 总体设计思想 26
4.1.2 通信控制方式 27
4.1.3 通信协议 28
4.2 硬件电路设计 28
4.2.1 单片机与PC机串行通信部分 28
4.2.2 温度采集模块 28
4.2.3 显示模块 30
4.2.4 控制模块 31
4.3 上位机及下位机程序设计 31
4.3.1 总体设计思想 31
4.3.2 下位机(单片机)程序设计 32
4.3.3 上位机(PC)程序设计 36
4.3.4 数据库查询模块 38
第五章 结论与展望 42
5.1 实践结果分析 42
5.2 下一步工作展望 42
参考文献 43
致 谢 44
附录一 点对点通信程序清单 45
附录二 啤酒发酵罐温度监控程序清单 48
第一章 绪论
1.1 单片机与PC机串行通信现状及发展前景
近年来,由于PC机(个人计算机)优越的性价比和丰富的软件资源,已成为计算机应用的主流机种。而单片机在工业控制系统中也越来越得到广泛的应用,它以价格低、功能全、体积小、抗干扰能力强、开发应用方便等特点已渗透到各个开发领域。特别是利用其能直接进行全双工通信的特点,在数据采集、智能仪表仪器、家用电器和过程控制中作为智能前沿机。但由于单片机计算能力有限,难以进行复杂的数据处理,因此应用高性能的计算机对系统的所有智能前沿机进行管理和控制,已成为一种发展方向。在功能较复杂的控制系统中,通常以PC机为主机,单片机为从机,由单片机完成数据的采集及对装置的控制,而由主机完成各种复杂的数据处理和对单片机的控制。所以计算机与单片机之间的数据通信越发显得重要[1]。
单片机与PC机串行通信的方式有并行通信和串行通信。
并行通信就是数据的各位同时进行传送。其特点是传送速度快、效率高,数据有多少位,就需要有多少根传输线。当数据位数较多和传送距离较远时,就会导致通信线路成本提高,因此它适合于短距离传输。而串行通信就是数据一位一位地按顺序进行传送,其特点是只需一对传输线就可以实现通信,当传输的数据较多、距离较远时,它可以显著减少传输线,降低通信成本。
串行通信是指按照逐位顺序传递数据的通信方式,由于仅需三根传输线传送信息且通信距离相对较远,所以在控制领域的现场监测、分布控制等场合有着重要的应用价值[2]。鉴于PC机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下,一般都采用给PC机配置的RS-232标准串行接口COM1、COM2等相连接来实现应用系统与PC机之间的数据交换。
随着技术的发展和数据流量的不断增长,传统的并行接口面临的干扰和时钟传送两大关键问题成为限制并行I/O接口的数据率进一步提高的瓶颈。在这种情况下,过去主要用于光纤通信的串行通信技术正在取代传统并行总线而成为高速接口技术的主流,因为硬件的实现比较简单,而且用户使用上也很简便。串行通信作为一 种灵活方便的通信方式,一种有效的通信手段,被广泛应用于工业控制中[3]。
随着信息和电子技术的发展,各种工业控制系统网络不断改进,这就对单片机通信功能的要求不断增加。特别是对各种现场总线技术中通信接口和通信协议,更是提出了新的通信要求:不仅能适应某一个通信协议,还希望能成为一种通信协议自动转换的智能终端。因此,单片机通信功能是否满足设计目标要求是必须设计的一个关键问题。
单片机和微机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为发展的一个方向。它结合了单片机在实时数据采集和微机对图形处理、显示的优点。同时,windows环境下后台微机在数据库管理上具有明显的优势。二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。
1.2 单片机与PC机串行通信研究目的和意义
现代信息网络技术的一个突出特点,就是使工业控制系统中的所有设备连接成网,从而在一个核心软件管理下工作(这个软件可能是分布式的操作系统,也可能是嵌入式操作系统),形成一个有机的整体。这种整体网络方式的现代工业控制系统具有传统独立控制系统所无法比拟的先进性,不仅能极大地提高工业设备的生产效率,还可以大大提高系统的安全性和可靠性[4]。
单片机自诞生以来以其性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了越来越广泛的应用。在单片机的输入输出控制中,除直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信。因为随着微机和网络技术的普及应用,控制过程中如虚拟设备面板、曲线记录显示、打印输出等一系列更高的要求也相应被提出,这些要求往往是面向底层控制的单片机分立控制系统所无法企及的[5]。而许多基于微机视窗操作平台的可视化软件开发工具如Visual Basic、Delphi等能容易地解决此类问题很好地充当这些新要求的实现载体,于是产生了由微机与多台单片机构建的小型测控系统。后来又产生结构更复杂、运行更安全、稳定的集散控制系统(DCS),但由于价格昂贵,用于小型系统的控制往往过于浪费。
而后一种方法由于能实现远程控制,并且能够利用PC机强大的数据处理功能以及友好的控制界面,显得尤为重要。在一般的利用PC机对单片机进行控制的场合,都是采用Windows作为上位机的平台,其优点是界面友好,编程和操作都比较容易。因此研究PC机与单片机串行通信具有十足的现实及工业意义。
虽说Windows操作平台界面友好,操作简单,但是缺点是稳定性太差,这对于需要连续数天或数月运行的装置来说,尤其不合适。在要求比较苛刻的场合,一般都采用UNIX工作站作为主控平台,如合肥同步辐射加速器的主控平台采用的是SUN的Solaris工作站系统,然而UNIX工作站昂贵的价格又大大限制了其使用的范围[6]。近年来,随着Linux的迅猛发展,使其逐渐从少数人的玩具变成了主流的操作系统。Linux是遵循GPL协议的免费源代码开放软件,任何人都可以自由的从Internet上取得其源程序,也可在GPL的协议下修改其源代码以适应特定的应用,其运行在普通的PC上,性能稳定,特别适于做工业控制,因此实现Linux和单片机的串行通信非常有意义,他可以是昂贵的UNIX工作站的一种可选的替代方法。
1.3 论文内容及结构安排
论文的第一章对单片机与PC机串行通信的现状、发现趋势和研究此题目的目的和意义进行了论述。
第二章从最基本的方面介绍了此次设计所必需的基本知识。第二章分为两部分,第一部分包括了单片机的简介以及本次设计中所用单片机的选择。第二部分介绍了串行通信的基本概念、串行通信接口标准RS—232的概念和远程串行通信RS—485的概念,以及两者的比较。
第三章首先讨论了单片机几个特殊寄存器的格式,以便在后面的软件设计中对单片机进行正确的初始化。其次讨论了单片机与PC机点对点串行通信的软硬件实现与PC机与多单片机通信的软硬件实现。点对点通信中,硬件设计主要是解决PC机的RS—232电平到单片机的TTL电平的转换,给出了详细的电路图。软件设计中,单片机作为下位机不主动向PC机发出请求,所以设计了一种比较简单的PC机向单片机读写数据的协议,基于这种协议给出了单片机和PC机的程序。多机通信是基于点对点通信的。多机通信主要需要解决的就是单片机的寻址问题。一旦确定选择的是哪个单片机时,剩下的问题就是点对点通信了。本文中所讨论的多机通信是基于RS—485总线的,为下面一章应用做铺垫。用RS—485的问题在于它的电平与PC机和单片机又不同,所以又要进行电平转换。所以文中给出了怎样进行电平转换的具体讨论以及详细电路设计。多机通信的软件方面只给出了单片机寻址部分,因其余部分与点对点通信相同。
第四章为串行通信的应用举例。这章以啤酒发酵罐温度监控为例,将串行通信具体应用到实际中,应用到了第三章的PC机与多单片机通信,并且将测得的数据传送到数据库中,方便以后查询。
最后一章为本文的总结,里面谈到了对本次设计的心得体会以及设计中需要改进的地方和对串行通信发展前景的展望。
…………………………………………………………….
参考文献
[1] 曹琳琳,曹巧媛.单片机原理及接口技术[M].长沙:国防科技大学出版社,2000.79~88.
[2] 潘策,陈晓南,杨培林.PC机与单片机串行通信的硬件设计[DB].http//202.197.69.4:1010,2003-5-27.
[3] 杨文新,杨劲松,韩迎辉。基于VB实现单片机与PC机的串行通信[DB].
http//202.197.69.4:1010.2004-5.
[4] 吴繁红.用定时中断方式实现单片机与PC机之间的串行通信[DB].中国自控网.2007-3.
[5] PC机与多单片机通信的实现[EB/OL]
http://www.cnzdh.com/Article/aes/200703/803.html .2007-4.
[6] 王浩亮.模拟Unix文件系统的设计与实现[J].2006,12:184-185.
[7] 沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2003.25~32.
[8] 胡健.单片机原理及接口技术实践教程[M].北京:机械工业出版社,2004.37~46.
[9] 沙占友.单片机应用技术与实例[M].北京:电子工业出版社,2005.13~23.
[10]徐然,向小东.PC机与多单片机串行通信系统[J].科学技术与工程,5(12):53~54.
[11] 尹凤鸣,梁慧桥,刘自强.关于PC机与多个单片机通信的新方法[J].商业经济,3:97~98.
[12] 张毅刚,刘杰.单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,2004.96~101.
[14]闵联营,董华松.Visual Basic 程序设计[M].北京:北京大学出版社,2006.142~168.
[15] YOUZhi,CHENShu-zhen,HUANGJi-wu.Serial Peripheral Interface Communication Between MCU EM78P447A and RF Reader IC MF RC530[J].Wuhan University Journal of Natural Sciences,2005,10(3):550~554.
附录一 点对点通信程序清单
1.单片机部分

