采用單片機的多機并行通訊系統方案設計
2 三態(tài)總線(xiàn)緩沖寄存器74HC646
在單片機構成的多機并行通訊系統中,總線(xiàn)上的信息交換一般采用PIO(并行接口)和雙端口寄存器等方法,并輔助以總線(xiàn)仲裁電路。通常使用的并行接口芯片有8155,8255等。本文介紹一種簡(jiǎn)單的并行接口電路,它既能取代8255等芯片,還能使電路結構更加簡(jiǎn)單和緊湊。該電路由一片74HC74和一片74HC646(300MIL窄封裝)構成。
74HC646是三態(tài)總線(xiàn)緩沖寄存器,其實(shí)也是一個(gè)雙端口共享存儲器,只是共享存儲區很小的,僅有一個(gè)數據輸入寄存器與一個(gè)數據輸出寄存器,用它作為單字節通信數據的臨時(shí)中轉站,每傳送一個(gè)字節,主從機間握手一次,把數據取走后再繼續下一字節的通信。74HC646可以將兩條總線(xiàn)的數據分別鎖存,再由芯片內部總線(xiàn)進(jìn)行數據交換。
74HC646具有四種工作狀態(tài),利用對這四種工作狀態(tài)的控制,可以實(shí)現多個(gè)單片機利用數據口進(jìn)行數據交換,省下其余口線(xiàn)做其他的工作,如驅動(dòng)LED,控制開(kāi)關(guān)等。
74HC646芯片的邏輯圖及四種工作狀態(tài)如圖1所示。
3 單片機并行通信原理
74HC646對數據進(jìn)行的鎖存只為完成數據交換作了信息準備工作,單片機多機之間通訊的實(shí)現還必須具備通訊聯(lián)絡(luò )手段,以使單片機了解總線(xiàn)上的工作狀態(tài),避免發(fā)生總線(xiàn)沖突。這里采用四線(xiàn)握手聯(lián)絡(luò ):兩條由發(fā)送方送接收方,通知接收方數據已經(jīng)準備好(如圖2中的TFNE*,RFNE*);兩條由接收方送發(fā)送方,通知發(fā)送方數據已經(jīng)收到(如圖2中的TFNF*,RFNF*)通信聯(lián)絡(luò )信號是由74HC74電路產(chǎn)生。單片機并行通信原理框圖如圖2所示。
4 多機并行通信協(xié)議
上面的并行通訊的單片機沒(méi)有封鎖電路以防止主從機向74HC646同時(shí)寫(xiě)數或同時(shí)讀數,因此各單機在雙向傳輸時(shí),必須根據狀態(tài)信息來(lái)控制自己的下一步操作,即進(jìn)行聯(lián)絡(luò ),通過(guò)軟件、硬件通訊協(xié)議配合才能避免造成錯誤,保證對74HC646不會(huì )造成競爭沖突。因此,除了上面所講的聯(lián)絡(luò )電路之外,在編制軟件時(shí),還必須遵從以下協(xié)議:
主機向74HC646發(fā)送數據時(shí),必須保證74HC646接收寄存器為空。
主機與從機間的數據傳輸要通過(guò)74HC646,協(xié)議不允許雙方同時(shí)對74HC646進(jìn)行操作,必須根據狀態(tài)信息來(lái)控制自己的操作。
5 通訊協(xié)議的格式與執行過(guò)程
5.1 信息格式
在并行通訊的異步通信傳輸時(shí),也同樣存在幀的類(lèi)型及格式問(wèn)題,可以采用串行通訊類(lèi)似的幀格式:
特征字
長(cháng)度
數據1
數據2
...
校驗碼
評論