多單片機共用RS 232通信的防競爭電路與程序設計
控制電路輸出到74HC125的3個控制端信號分別定義為OEA,OEB,OEC,對應于3個單片機串口控制信號A,B,C,邏輯關系為:
控制電路的真值表如表1所示。本文引用地址:http://cafeforensic.com/article/172787.htm
由真值表可見:防止競爭控制電路保證在A有效時,僅允許TxdA通過74HC125而其他2路信號被禁止通過。同樣,當B有效時,僅允許TxdB信號通過,C有效時,僅允許TxdC信號通過,其他2路信號被禁止。確保任意時刻只有一個單片機的串口占用RS 232發(fā)送通道,而其他單片機不能占用RS 232發(fā)送通道,有效地防止了競爭的發(fā)生。
3 防止競爭的通信程序
3.1 多機通信協(xié)議.
多機通信協(xié)議是為了使單片機分時占用RS 232發(fā)送通道,在防競爭控制電路的配合下,使得任一時刻PC機僅與1個單片機進行通信,保證通信的順利進行。通信采用握手通信方式,通信協(xié)議如下:
每一幀信息為8個字節(jié)。其中,第一字節(jié)為特征字(這里為字符“L”),第二字節(jié)為地址碼,第三字節(jié)為命令碼,第四~七字節(jié)為數(shù)據(jù)字節(jié),第八字節(jié)為校驗和(從地址碼開始計算字節(jié)的異或和)。
如PC機向單片機系統(tǒng)發(fā)出呼叫:“L”、“A”、01H、00H、00H、00H、00H、40H,其中的“A”(41H)表示呼叫單片機A,01H是命令,4個00H是命令的參數(shù),40H為校驗和。
單片機接收到特征碼“L”后,開始接收后續(xù)的7字節(jié)信息,并對這7個字節(jié)計算校驗和,完整的一幀呼叫碼校驗無誤后,核對地址碼。單片機A核對地址碼為“A”,確認是對本機呼叫,立即響應,拉低P10(信號A),本機即可獨占RS 232總線發(fā)送通道,按照通信協(xié)議與PC機進行串行通信,通信完畢恢復P10(信號A)使RS 232總線發(fā)送通道恢復空閑狀態(tài)。而單片機B、單片機C校對地址碼不是本機地址后則退出,保持接收狀態(tài)。
DIY機械鍵盤相關社區(qū):機械鍵盤DIY
評論