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