基于多機并口協(xié)議的多機通信
當進(jìn)行遠距離傳輸時(shí),一般采用異步串口,而近距離傳輸時(shí)可以采用并行口和同步串口。同步串口雖然速度低,但信號線(xiàn)少,用于低速小容量數據傳輸;并行口的傳輸速度較高,但信號線(xiàn)較多,用于高速大容量數據傳輸。
本文在一般雙向并口通信的基礎上,參考多種單片機的總線(xiàn)接口,提出了簡(jiǎn)單易行的多機并口協(xié)議,實(shí)現,多個(gè)單片機之間的高速數據通信。該協(xié)議占用信號線(xiàn)少,操作簡(jiǎn)單。
1 多機并口通信協(xié)議
多機并口協(xié)議,規定了數據信號和控制信號,實(shí)現了3種總線(xiàn)操作模式,定義了總線(xiàn)操作時(shí)序。
多機并口協(xié)議,定義了SET、A/D、W/R、D0~D7共11根信號線(xiàn)。其中:SET為寫(xiě)入控制,主機或從機在下降沿將地址或數據發(fā)送到雙向并口D0~D7;W/R為讀/寫(xiě)控制,W/R=0時(shí)表示主機讀從機,W/R=1時(shí)表示主機寫(xiě)從機;A/D為地址/數據選擇控制,A/D=0時(shí)表示傳送數據,A/D=1時(shí)表示傳送地址;DO~D7為雙向數據地址總線(xiàn),配合W/R和A/D進(jìn)行地址和數據的雙向傳輸。通過(guò)W/R和A/D控制信號,實(shí)現了3種總線(xiàn)操作模式,如表1所列。
2 協(xié)議的單片機模擬
用單片機實(shí)現并口協(xié)議時(shí),主機工作在查詢(xún)方式,從機工作在中斷方式,從機的SET信號必須接到從機的外部中斷引腳。
控制位邏輯值的定義:
#defincREAD O
#dcfine WRIT l
#define DATA O
#define ADDR 1
2.1 主機并口協(xié)議程序
主機的多機并口信號線(xiàn)町以使用單片機的任意1個(gè)雙向并口和任意3根I/O,主機在查詢(xún)方式下主動(dòng)與從機通信,對從機數據進(jìn)行讀/寫(xiě)。通過(guò)調用延時(shí)函數delay(),使主機和從機實(shí)現對SPI傳輸速度的控制。用戶(hù)程序只須調用PPI_ReadBuf()和PPI_WritBuf()函數可以對從機數據進(jìn)行讀/寫(xiě)。
2.2 從機并口協(xié)議程序
從機多機并口信號線(xiàn)中A/D和W/R可以使用單片機的任意I/O,為DO~D7分配一個(gè)雙向并口,但SET必須使用INT引腳.本設計使用了INTO引腳。從機的多機并口協(xié)議在中斷服務(wù)程序中實(shí)現,在中斷中配合主機實(shí)現數據的讀寫(xiě)協(xié)議。本例中,數據存于buf緩沖區中。
結語(yǔ)
本文提出的并口協(xié)議實(shí)現了單片機之問(wèn)的多機通信,該程序已在實(shí)際中得到應用。該協(xié)議可以在含有外部中斷的單片機上實(shí)現,也可用于CPLD上實(shí)現與單片機的通信。該方法簡(jiǎn)單、可靠、成本低,有著(zhù)較高的推廣價(jià)值。
評論