多單片機共用RS 232通信的防競爭電路與程序設計
摘要:當多個單片機系統的安裝位置較近時,上位機與下位機之間的1對多的多機通信,可以直接采用RS 232進行串口通信。雖然RS 232被定義為點對點的通信接口,但是可以設計專門的控制電路和通信時序來有效地防止競爭,可靠實現多機通信。
關鍵詞:單片機;多機通信;RS 232;控制電路;通信程序
在單片機開發應用中,我們常常采用主從式控制結構,一臺PC機作為上位機控制多個單片機系統進行工作,功能強大、資源豐富的PC機可以用來方便地進行人機界面的設計和數據庫管理與輸出,而單片機進行靈活的控制和測量。在某些應用場合,這些單片機系統緊靠在一起安裝,因為單片機相互間的距離較近,通信接線很短,這時,PC機與單片機1對多的多機通信,就可以不采用需要特別轉接設備的RS 485通信,或者復雜的CAN通信,而設計防止競爭控制電路和采用應答式通信程序,讓多單片機直接共用一個RS 232接口與PC機實現可靠的異步串行通信。
1 多單片機通信結構
多單片機共用RS 232接口與PC機通信的結構如圖1所示,由串行通信接口、防競爭電路以及下位機三部分組成。
多個單片機系統共享RS 232總線的關鍵是如何避免競爭。對于接收端,經RS 232電平轉換芯片進行電平轉換后,可以直接并接到全部單片機串口的Rxd端,PC機向單片機發送信息相當于向所有單片機進行廣播,不存在競爭。但是不能直接將單片機的發送端并聯到串口轉換芯片MAX232的TnIN端,否則系統將極不可靠,無論何種原因,倘若有2個及以上的單片機系統同時向PC機發送信息,則將發生總線競爭,RS 232總線信號將發生混亂。因此圖中的防競爭控制電路,是專為防止總線競爭而設計,以保證在任何時刻只有一個單片機系統占用RS 232的發送端口。
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四二或門電路構成。
DIY機械鍵盤相關社區:機械鍵盤DIY
評論