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