多單片機(jī)共用RS 232通信的防競(jìng)爭(zhēng)電路與程序設(shè)計(jì)
摘要:當(dāng)多個(gè)單片機(jī)系統(tǒng)的安裝位置較近時(shí),上位機(jī)與下位機(jī)之間的1對(duì)多的多機(jī)通信,可以直接采用RS 232進(jìn)行串口通信。雖然RS 232被定義為點(diǎn)對(duì)點(diǎn)的通信接口,但是可以設(shè)計(jì)專門(mén)的控制電路和通信時(shí)序來(lái)有效地防止競(jìng)爭(zhēng),可靠實(shí)現(xiàn)多機(jī)通信。
關(guān)鍵詞:單片機(jī);多機(jī)通信;RS 232;控制電路;通信程序
在單片機(jī)開(kāi)發(fā)應(yīng)用中,我們常常采用主從式控制結(jié)構(gòu),一臺(tái)PC機(jī)作為上位機(jī)控制多個(gè)單片機(jī)系統(tǒng)進(jìn)行工作,功能強(qiáng)大、資源豐富的PC機(jī)可以用來(lái)方便地進(jìn)行人機(jī)界面的設(shè)計(jì)和數(shù)據(jù)庫(kù)管理與輸出,而單片機(jī)進(jìn)行靈活的控制和測(cè)量。在某些應(yīng)用場(chǎng)合,這些單片機(jī)系統(tǒng)緊靠在一起安裝,因?yàn)閱纹瑱C(jī)相互間的距離較近,通信接線很短,這時(shí),PC機(jī)與單片機(jī)1對(duì)多的多機(jī)通信,就可以不采用需要特別轉(zhuǎn)接設(shè)備的RS 485通信,或者復(fù)雜的CAN通信,而設(shè)計(jì)防止競(jìng)爭(zhēng)控制電路和采用應(yīng)答式通信程序,讓多單片機(jī)直接共用一個(gè)RS 232接口與PC機(jī)實(shí)現(xiàn)可靠的異步串行通信。
1 多單片機(jī)通信結(jié)構(gòu)
多單片機(jī)共用RS 232接口與PC機(jī)通信的結(jié)構(gòu)如圖1所示,由串行通信接口、防競(jìng)爭(zhēng)電路以及下位機(jī)三部分組成。
多個(gè)單片機(jī)系統(tǒng)共享RS 232總線的關(guān)鍵是如何避免競(jìng)爭(zhēng)。對(duì)于接收端,經(jīng)RS 232電平轉(zhuǎn)換芯片進(jìn)行電平轉(zhuǎn)換后,可以直接并接到全部單片機(jī)串口的Rxd端,PC機(jī)向單片機(jī)發(fā)送信息相當(dāng)于向所有單片機(jī)進(jìn)行廣播,不存在競(jìng)爭(zhēng)。但是不能直接將單片機(jī)的發(fā)送端并聯(lián)到串口轉(zhuǎn)換芯片MAX232的TnIN端,否則系統(tǒng)將極不可靠,無(wú)論何種原因,倘若有2個(gè)及以上的單片機(jī)系統(tǒng)同時(shí)向PC機(jī)發(fā)送信息,則將發(fā)生總線競(jìng)爭(zhēng),RS 232總線信號(hào)將發(fā)生混亂。因此圖中的防競(jìng)爭(zhēng)控制電路,是專為防止總線競(jìng)爭(zhēng)而設(shè)計(jì),以保證在任何時(shí)刻只有一個(gè)單片機(jī)系統(tǒng)占用RS 232的發(fā)送端口。
2 防止競(jìng)爭(zhēng)的控制電路
防止競(jìng)爭(zhēng)控制電路如圖2所示,TxdA,TxdB,TxdC分別是單片機(jī)A、單片機(jī)B、單片機(jī)C的Txd端,接到帶3態(tài)驅(qū)動(dòng)器74HC125的3個(gè)輸入端上,74HC125的3個(gè)輸出端并接到RS 232電平轉(zhuǎn)換芯片MAX232的T2IN端。A,B,C分別是3個(gè)單片機(jī)的串口輸出控制端(低電平有效,假設(shè)均接P10端口),由74HC00四二與非門(mén)和74HC32四二或門(mén)電路構(gòu)成。
DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論