多单片机共用RS232通信的防竞争电路与程序设计

多单片机共用RS232通信的防竞争电路与程序设计,第1张

 

  在单片机开发应用中,我们常常采用主从式控制结构,一台PC机作为上位机控制多个单片机系统进行工作,功能强大、资源丰富的PC机可以用来方便地进行人机界面的设计和数据库管理与输出,而单片机进行灵活的控制和测量。在某些应用场合,这些单片机系统紧靠在一起安装,因为单片机相互间的距离较近,通信接线很短,这时,PC机与单片机1对多的多机通信,就可以不采用需要特别转接设备的RS 485通信,或者复杂的CAN通信,而设计防止竞争控制电路和采用应答式通信程序,让多单片机直接共用一个RS 232接口与PC机实现可靠的异步串行通信。

  1 多单片机通信结构

  多单片机共用RS 232接口与PC机通信的结构如图1所示,由串行通信接口、防竞争电路以及下位机三部分组成。

  

多单片机共用RS232通信的防竞争电路与程序设计,第2张

 

  多个单片机系统共享RS 232总线的关键是如何避免竞争。对于接收端,经RS 232电平转换芯片进行电平转换后,可以直接并接到全部单片机串口的Rxd端,PC机向单片机发送信息相当于向所有单片机进行广播,不存在竞争。但是不能直接将单片机的发送端并联到串口转换芯片MAX232的TnIN端,否则系统将极不可靠,无论何种原因,倘若有2个及以上的单片机系统同时向PC机发送信息,则将发生总线竞争,RS 232总线信号将发生混乱。因此图中的防竞争控制电路,是专为防止总线竞争而设计,以保证在任何时刻只有一个单片机系统占用RS 232的发送端口。

  2 防止竞争的控制电路

  防止竞争控制电路如图2所示,TxdA,TxdB,TxdC分别是单片机A、单片机B、单片机C的Txd端,接到带3态驱动器74HC125的3个输入端上,74HC125的3个输出端并接到RS 232电平转换芯片MAX232的T2IN端。A,B,C分别是3个单片机的串口输出控制端(低电平有效,假设均接P10端口),由74HC00四二与非门和74HC32四二或门电路构成。

  

多单片机共用RS232通信的防竞争电路与程序设计,第3张

 

  控制电路输出到74HC125的3个控制端信号分别定义为OEA,OEB,OEC,对应于3个单片机串口控制信号A,B,C,逻辑关系为:

  

多单片机共用RS232通信的防竞争电路与程序设计,第4张

 

  控制电路的真值表如表1所示。

  

多单片机共用RS232通信的防竞争电路与程序设计,第5张

 

  由真值表可见:防止竞争控制电路保证在A有效时,仅允许TxdA通过74HC125而其他2路信号被禁止通过。同样,当B有效时,仅允许TxdB信号通过,C有效时,仅允许TxdC信号通过,其他2路信号被禁止。确保任意时刻只有一个单片机的串口占用RS 232发送通道,而其他单片机不能占用RS 232发送通道,有效地防止了竞争的发生。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2498037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存