多单片机共用RS 232通信的防竞争电路与程序设计
控制电路输出到74HC125的3个控制端信号分别定义为OEA,OEB,OEC,对应于3个单片机串口控制信号A,B,C,逻辑关系为:

控制电路的真值表如表1所示。本文引用地址:https://www.eepw.com.cn/article/172787.htm
由真值表可见:防止竞争控制电路保证在A有效时,仅允许TxdA通过74HC125而其他2路信号被禁止通过。同样,当B有效时,仅允许TxdB信号通过,C有效时,仅允许TxdC信号通过,其他2路信号被禁止。确保任意时刻只有一个单片机的串口占用RS 232发送通道,而其他单片机不能占用RS 232发送通道,有效地防止了竞争的发生。
3 防止竞争的通信程序
3.1 多机通信协议.
多机通信协议是为了使单片机分时占用RS 232发送通道,在防竞争控制电路的配合下,使得任一时刻PC机仅与1个单片机进行通信,保证通信的顺利进行。通信采用握手通信方式,通信协议如下:
每一帧信息为8个字节。其中,第一字节为特征字(这里为字符“L”),第二字节为地址码,第三字节为命令码,第四~七字节为数据字节,第八字节为校验和(从地址码开始计算字节的异或和)。
如PC机向单片机系统发出呼叫:“L”、“A”、01H、00H、00H、00H、00H、40H,其中的“A”(41H)表示呼叫单片机A,01H是命令,4个00H是命令的参数,40H为校验和。
单片机接收到特征码“L”后,开始接收后续的7字节信息,并对这7个字节计算校验和,完整的一帧呼叫码校验无误后,核对地址码。单片机A核对地址码为“A”,确认是对本机呼叫,立即响应,拉低P10(信号A),本机即可独占RS 232总线发送通道,按照通信协议与PC机进行串行通信,通信完毕恢复P10(信号A)使RS 232总线发送通道恢复空闲状态。而单片机B、单片机C校对地址码不是本机地址后则退出,保持接收状态。
DIY机械键盘相关社区:机械键盘DIY
评论