硬件設計
可以用兩個UART通用串行口組成兩級RS-485網。一般的微處理器并不具備兩個UART,通??蓴U展一片串行接口芯片(如8251、8250或者 EXAR公司的ST16C2552等)構成兩個UART,但這樣會使電路變得復雜、PCB成本增大且系統的抗干擾能力下降。而ATmega161正好具有兩個可編程UART,所以無需擴展,這種方法不但可以使電路簡化并使PCB體積縮小,而且還可使抗干擾能力增強,同時也具有較高的性價比。
通信部分的硬件原理圖如圖2所示。圖中,將兩個UART的RXD、TXD分別接到兩片MAX485上,以使其轉換成RS-485電平,再以數據總線的形式連接到上位機和數字化的儀器儀表以及其它現場設備上,從而構成兩級測控網絡。
MAX485是一種專用的RS-485/RS-422接口芯片,它具有功耗低、體積小、操作簡單方便等優點。每片MAX485最多能帶32個收發器,如果要增加每條總線上收發器的個數,可以換成MAX487、MAX1487(可帶128個收發器)等芯片。
軟件設計
4.1通信協議
通信協議采用ISO的OSI七層模型中的物理層、鏈路層和應用層。其中物理層為RS-485,它以雙絞線為傳輸總線,其最大通信距離可達1200米,最大從機個數為32臺(使用MAX485),數據傳送速率為2400b/s,數據傳輸格式為:1位起始位、8位數據位和1位停止位,該格式無奇偶校驗位,通信錯誤檢測采用累加和校驗。
數據鏈路層可參考ISO的“高級數據鏈路層協議”(HDLC)的有關規定,并選用適合于主從網絡的HDLC的正常響應操作模式(NRM),即從站只有在其受到主站的請求時才能發送信息。上位機采用輪詢的方式對嵌入式控制器進行訪問,而控制器又對數字化傳感器及現場設備以輪詢的方式進行訪問。其操作過程如圖3所示。
嵌入式控制器在整個通信過程中具有雙重身份,即在與上位機通信過程中,上位機是主站,控制器為從站;而在與傳感器及現場設備的通信過程中,控制器是主站,傳感器和現場設備為從站。
幀的格式定義為:幀開始符、源地址、目的地址、控制字、信息、累加和校驗(BCC)以及幀結束符。
在實際的通信過程中,往往會出現數據丟失和數據傳輸錯誤等通信故障。為了防止數據丟失,系統采用了超時處理的方法。這樣,主站發送查詢命令后,如果在預定的時間內沒有收到從站的響應信號,可再次發送一幀查詢命令,以等待對方響應。如果連續三次發送后,主站仍然沒有收到正確的響應,系統將退出并報警,同時開始輪詢下一從站。
針對數據出錯情況,每幀都增加了累加和校驗來對源地址、目的地址、控制字和信息段進行邏輯和運算,并將運算結果作為幀結束前的一個字符傳送到接收方,而接收方在接收完該幀信息后也將接收到的源地址、目的地址、控制字和信息段作邏輯和運算,如果運算結果和收到的運算結果不一致,則廢棄該幀數據。如果接收到通信協議規定之外的控制字、源地址或目的地址,系統也將廢棄該幀數據。
4.2 ATmega161的雙UART寄存器設置
如前所述,ATmega161帶有兩個全雙工的可編程通用異步收發器UART。用戶可通過設置表1中的9個寄存器來對兩個UART進行編程,表內括號中的十六進制數為相應的寄存器地址。
以UART0為例,UDR0是兩個物理分離的數據寄存器,它們具有相同的I/O地址,但在讀/寫時,它們將分別訪問不同的寄存器。在兩個狀態控制寄存器中,UCSR0A的格式為:
其中,RXC0為接收完成標志,TXC0為發送完成標志,UDRE0為數據寄存器空標志,FE0為幀出錯標志,OR0為超越出錯標志,U2X0為雙倍傳輸速度標志,MPCM0為多處理器通信標志位。另一個狀態控制寄存器UCSR0B的格式為:
該格式中的RXCIE0為接收完成中斷觸發位,TXCIE0為發送中斷觸發位,UDRIE0為數據寄存器空中斷觸發位,RXEN0為接收允許,TXEN0為發送允許,CHR90為九位數據標志位,RXB80為收到的數據第8位,TXB80為發送的數據第8位。
UBRRHI的低四位和UBRR0分別為波特率寄存器的高位和低位。波特率寄存器的計算公式為:
式中,Fck為晶振頻率,BAUD為波特率,UBRR為寄存器中應取的值。
UART1的設置編程與UARTO基本相同。
4.3部分源代碼
可以使用匯編語言或ANSIC語言編寫源代碼(編譯軟件均可從INTERNET上免費下載),編譯生成HEX目標文件后,可以通過高速下載線經由SPI接口將該目標文件下載到ATmega161的FLASH存儲器中。
下面是C語言源代碼的一部分:
結束語
事實證明,用ATmega161構成的嵌入式控制器在構成兩級測控網絡時具有明顯的性價比優勢,在現場總線(如LONWORKS、CAN等)仍然還比較昂貴的情況下,可以作為DCS向FCS的過渡產品。因為該網絡具有數字化的特點,加上RS-485標準在國內已經非常流行,所以具有良好的擴展性和通用性,完全可以滿足現場控制和遠程監控的要求,可廣泛應用于各類測控系統中。
評論