控制/MCU
在单片机开发应用中,我们常常采用主从式控制结构,一台PC机作为上位机控制多个单片机系统进行工作,功能强大、资源丰富的PC机可以用来方便地进行人机界面的设计和数据库管理与输出,而单片机进行灵活的控制和测量。在某些应用场合,这些单片机系统紧靠在一起安装,因为单片机相互间的距离较近,通信接线很短,这时,PC机与单片机1对多的多机通信,就可以不采用需要特别转接设备的RS 485通信,或者复杂的CAN通信,而设计防止竞争控制电路和采用应答式通信程序,让多单片机直接共用一个RS 232接口与PC机实现可靠的异步串行通信。
1 多单片机通信结构
多单片机共用RS 232接口与PC机通信的结构如图1所示,由串行通信接口、防竞争电路以及下位机三部分组成。
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四二或门电路构成。
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校对地址码不是本机地址后则退出,保持接收状态。
3.2 上位机通信程序
上位机与下位机采用应答式通信方式,上位机向某一下位机发送呼叫码后启动定时查询串口定时器,等待下位机执行命令并按命令要求返回信息,若定时时间到后能查询到该单片机返回的信息,则取出信息进行处理,否则认为该单片机出错。上位机通信流程如图3所示。
全部0条评论
快来发表一下你的评论吧 !