×
单片机 > 单片机程序设计 > 详情

PC机与PIC单片机主从式多机通讯及其在数据检测系统

发布时间:2020-08-27 发布时间:
|

简介:主要针对煤气报警器检测系统的数据传输问题,提出一种PC机与多台PIC单片机主从式串行异步通讯的方式,给出硬件电路图、通信协议、软件流程图及其在实际的数据检测系统中应用时的注意事项。


在煤气报警器的出厂检验中,需要对其关键部件气体传感器的工作情况进行监测。系统框图如图1所示。

在这个气体传感器监测系统中,使用了多台PIC单片机作为下位机采集气体传感器的工作状态数据及环境参数(环境温度,环境湿度等参数),并按照上位机的要求将采得的数据传送给PC机。上位机与各下位机之间采用主从式的异步串行通讯方式,即下位机接到上位机的通讯信号时才做出响应,否则将一直做采集数据的工作。所采用的下位机型号为PIC16C711,它体积小,功能强,并集成了A/D转换器,但是它没有专门的串行通讯口及相关的控制字和标志位,因此,采用普通I/O口,并参照MSC-51单片机的串行通讯控制字SM2的功能和本通讯系统的特点,提出一种新的通讯协议,实现了主从式的多机串行通讯,实际应用中取得了良好的效果。


1硬件电路


由于该监测系统处于非工业环境中,干扰相对较小,并且上位机与下位机之间距离较近,因此数据传输的可靠性可以保证。双方通讯通过软件握手,因此只使用3根线即可。电路图如图2所示。

由于PIC16C711没有串行通讯口,因此,我们是用PIC16C711的RA4脚作为接收脚,RA2作为发送脚,通过编程来模拟串行通讯的接收和发送的。之所以采用RA4作为接收脚,是因为下位机总是在采集数据,因此接收上位机的通讯信号采用的是中断方式,为此必须准确有效地检测到上位机发来的命令字的起始位。虽然PIC单片机B口的高4位也有电平变化可引起中断的功能,但是在本系统中,B口作为本机地址信息,其电平高低已被固定,因此必须使用RA4脚作为接收引脚。PIC16C711的RA4脚是双功能端口,既可以作为普通I/O脚,也是RTCC(定时器/计数器)的外部时钟引脚,因此,可将RTCC设置为计数器方式,并由OPTION寄存器将RTCC设置为由外部时钟的下降沿触发,使其增量,再将RTCC寄存器得初始值设为FFh。这样,当上位机发来的命令字的起始位的下降沿使RTCC从FFh变为00的同时,产生了中断,进入中断程序后,再次对RA4脚采样以确保RA4脚上的跳变不是闪变,这样就可以准确地接收上位机的命令了。


2通讯协议


由于PIC16C711没有专门的串行通讯的控制字和标志位,因此我们在分析MSC-51单片机的有关多机通讯的控制字和标志位的工作原理的基础上,结合本监测系统数据传输的特点,提出一种简便的通讯协议。


鉴于上位机对下位机发送的命令只有3种:呼叫、发送、停止发送。呼叫命令即是上位机欲与之通讯的下位机的编号,而发送和停止发送命令只要不与呼叫命令重复,即可以将下位机的地址编号,同样作为数据(命令)来发送。具体方法是,在单片机的程序中,设置一个标志寄存器FLAG,将它的某一位(如第7位,即FLAG(7))作为控制位,先将其设为0。各下位机在接收到上位机命令之后,首先查看FLAG(7)为1还是为0,如果FLAG(7)为1,则转入通讯程序段继续执行;若为0则将接收到的命令与本机地址相比较,若不同,则不做任何动作返回,FLAG(7)仍为0,即不论上位机发送的是何种命令,都与自己无关(呼叫命令与其他命令已约定好不相重复);若相同(这种情况说明上位机此时确实发送的是呼叫命令)则将FLAG(7)置为1,表示已得知上位机要与自己通讯,同时将本机地址传给上位机作为回应。当上位机再次发来命令时,即可实现一对一的通讯,程序流程图如图3所示。

上位机与下位机通讯采用CRC循环冗余码进行校验,此处不再赘述。


3注意事项


如图1所示,环境参数采集模块与器件参数采集模块所需采集数据的对象不同,因此,上位机对这两个模块数据的采集时序安排也不同。在程序设计中充分利用定时器Timer的触发事件的时间,即可使两种类型的数据不致混淆 并且也不影响数据的实时更新。


上位机程序用VB 6.0语言编写,使用的是MSComm控件,它有许多重要属性,如settings属性、Rthreshold属性、InputMode属性、InputLen属性等, 这些属性设置的正确与否关系到通讯的质量和成败。


另外,由于单片机发送的是16进制数,每一个数占用1个字节,因此,上位机应按照二进制数的方式接收数据,即InputMode属性设定为Input ModeBinary,同时为使接收正确,程序代码编写如下:


4结语


结合煤气报警器检测系统数据通讯中的实际情况,提出一种方便实用的PC机与PIC单片机主从式多机通讯的通讯协议,据检测系统的数据传输中取得了良好的效果。


参考文献


1范逸之,陈立元,等.利用Visual Basic实现串并行通信技术.北京:清华大学出版社,2001


2[美]Jan Axelson著,精英科技译 串行端口大全.北京:中国电力出版社,2001


3窦振中.PIC系列单片机原理和程序设计.北京:北京航空航天大学出版社,2000


4林巧玲,兰浩,谢国栋.用VB实现PC机与MCS-51单片机的主从式通信.电工技术学报,1999,14(6)

关键字:PC机  PIC单片机  主从式多机通讯  数据检测系统 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于AT91M42800A的LED显示系统设计