李锡渝 陈廷杰 李天明
摘要:在计算机系统的冗余控制及分布式测控系统中,大量采用到串行通信方式进行数据传输。在这里利用51单片机自备的串行接口,实现点对点通信及多单片机系统之间的异步信息。它主要用于双机冗余控制单片机和单片机之间交换信息,也用于单片机和电脑之间的信息交流。系统采用多单片机系统组成分布式控制,系统采用主机和下位机结构,其中主机负责管理。下位机完成系统检测和控制的功能,在主机和从机之间配备RS-232发送接收器实现远距离传输,实验结果达到设计要求。
关键词:8051单片机;串口通信;MAX232;RS-232
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)10-0027-03
开放科学(资源服务)标识码(OSID):
Design and Implementation of Multi-computer Asynchronous Communication Based on Single Chip Microcomputer
LI Xi-yu, CHEN Ting-jie, LI Tian-ming
(China University of Mining and Technology, Xuzhou 221116, China)
Abstract: In the redundancy control and distributed measurement and control system of computer system, serial communication is widely used for data transmission. In this paper, point-to-point communication and asynchronous information between multi-MCU systems are realized by using the serial interface of 51 MCU. It is mainly used for exchanging information between single-chip computer and single-chip computer, and also for exchanging information between single-chip computer and computer. The distributed control system is composed of multi-single-chip computer system. The system adopts the structure of host computer and slave computer, in which the host computer is responsible for management. Lower computer completes the function of system detection and control. RS-232 transmitter is equipped between host and slave computer to realize long-distance transmission. The experimental results meet the design requirements.
Key words: 8051 MCU; serial communication; MAX232; RS-232
在計算机系统的冗余控制及分布式测控系统中,为实现数据传送,几乎都采用了串行通信方式。而8051单片机上的串行接口,为数据通信提供了硬件条件。
在单片机和单片机之间数据交换或单片机和通用微机间的数据交换亦称为双机冗余控制双机通讯。
在测控系统中,主机主要实现进行多机系统的管理。下位机在多机系统中要完成各种检测控制,而主机和下位机之间配备接收器以进行多机系统的远距离传输。
1 基于单片机的多机异步通信设计
采用总线主从式单片机通信系统,如图所示。
在多个单片机组成的通信系统中,多采用单主机多从机的结构,其中一台单片机为主机,其余则为从机,从机要服从主机的管理及资源调度。而51单片机的串行工作方式非常适合这种主机和从机的通信结构。由于系统要在不同的通信标准环境中工作,则需要对电平进行转换,以适应相应的通信标准。在串行总线进行数据传送时,多采用RS422或RS485标准总线。
1.1 基于单片机多机异步通信协议设计
根据51单片机内部的全双工SBUF的通信能力,利用RXD和TXD信号线实现的接收数据效率,将单片机多机异步通信的通信协议按主机向从机和从机向主机发送两个方向进行设计
1) 让从机的SM2处于1的状态,即为接收地址帧。
2) 主机发送地址信息,地址占用8位,在其后跟一位地址/数据信息的标志位,该位为1时表示前8位为地址信息。
3) 如果从机在从接收到的地址帧中读到标志位为1且前8位与本机地址一致,则令本机的SM2为0,此时从机把地址发送回主机且从机处于接收信息状态,主机接收到回送地址后第一步要确认地址是否相符,如一致则清TB8并开始发送数据,如果地址不相符,则TB8=1(复位),从机在收到TB8为1时恢复到监听(地址)状态。如果从地址帧读取的地址与从机不一致,则保持SM2为1,不接收该数据。
4) 当接收到前8位为校验帧且TB8=1时,表示数据发送完毕,再次设置SM2=0,结束本次通信。
5) 若RB8=0表示主机接收数据到缓冲区,当RB8=1时表示数据传送完毕,主机开始校验和,如果正确,发送从机复位信号00H,如果校验错误则发送0FFH,则重新发送数据。
1.2 多机通信程序设计
主机利用中断方式控制与主机的通信。通信程序分主机程序和从机程序,预定一地传送的数据为16个字节,这里以02H地址的从机为例。
由于篇幅所限及编程环境的不同,这里就不对代码部分详细介绍,大家可以参考下面的流程图完成代码部分。
1.3 多机通信的电路设计
从机的电路连接图:
器件选择:
1) 8051单片机
2) 七段LED显示器
3) 晶体振荡器
4) 浮动按钮
5) 发光二极管
6) 电容
硬件功能实现
1)从机U2按键按下,在本机的七段LED显示器中显示,同时将按键值以异步串行通信方式送往主机U1,在主机的七段LED显示器中显示;与此同时,主机将接收来的按键值送往另一台从机U3,并显示出来;同理,从机U3按键按下的过程和从机U2一样。
2)发光二极管作用:绿灯指示该机正在接收数据,红灯指示该机正在发送数据。
主机电路连接图
器件选择:
1) 8051单片机
2) 晶体振荡器
3) 七段LED显示器
4) 发光二极管
5) 电容
2 测试及结论
2.1 测试方法
调试步骤:
1) 打开仿真软件,版本选择PROTEUS 7.4;
2) 硬件连接:选择所需器件,按照电路原理图用导线连接;
3) 软件:分别创建主机和从机源代码文本,并分别编写程序源代码,保存文件;
4) 别打开主机和从机单片机属性设置,设置必要项,选择相应源代码文件;
5) 择调试按钮开始调试。点击任一从机上的按钮,观察本机LED显示器的变化以及主机和另一从机的显示,能正确显示。
2.2 测试结果
实现单击从机U2上任一按钮可以实现本机显示,主机显示,最后从机U3显示。单击从机U3上任一按钮同样可以本机显示、主机显示、最后U2显示。测试结果表明,数据可以从任一从机先传输到主机再传输到另一从机,实现了多机通信,达到预期效果。
3 结论
实现了单片机多机通信,而且实现起来并不复杂,实际硬件构成成本也不高。以单片机多机通信的实现为基础,构建主从分布式控制网络成为易事。以单片机多机通信为核心,外设部分可以千变万化,只要加入各式传感器,各式信息采集电路,再利用RS485接口芯片等,拓展传输距离,即可以获得系统网络内各点的实时信息,甚至控制各式终端设备。例如,可以加入温度检测电路和温度控制电路,可以实现温度远程测控系统;加入电机转速采集电路和电机供电控制电路,可以实现电机远程测控系统。总之,以单片机多机通信的开发潜力无限。
参考文献:
[1] 赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2006,09.
[2] 王为清,邱文勋.51单片机应用开发案例精选[M].北京:人民郵电出版社,2007,08.
[3] 何宏.单片机原理与接口技术[M].北京:国防工业出版社,2006.
[4] 吴秀清,周和琴.微型计算机原理与接口技术[M].安徽:中国科学技术大学出版社,2003.
【通联编辑:梁书】