基于CAN 總線的智能傳感器網絡
隨著自動化程度的提高和信息的網絡化進程, 所需要的測控點和測控參量越來越多, 使得一個自動控制系統日益龐大而復雜。對于一個系統來說, 需要的傳感器數目成倍增加。為了使各智能儀表與上位機能實時、高速、準確地通信, 選擇較理想的現場總線則是很關鍵的。現場總線是開放型控制系統, 是用于現場總線儀表與控制室之間的一種全數字化、串行、雙向、多站的通訊網絡 。CAN 是其中很有發展前景的一種現場總線。在網絡化的系統中, 每只傳感器作為一個智能節點掛接在CAN 總線上, 整個系統如圖1所示。

圖1 CAN 總線系統框圖
1 CAN 總線的技術特點
a) CAN 通信速率為(5kB/s)/10km、(1MB/s)/40m ,其節點數可達110 個, 傳輸介質采用雙絞線、同軸電纜和光纖等;
b) 采用點對點, 一點對多點及全局廣播等幾種方式發送接收數據;
c) 采用非破壞性總線優先級仲裁技術。當兩個節點同時向網絡上發送信息時優先級低的節點主動停止發送數據, 而優先級高的節點可不受影響地繼續發送信息。因此。按節點類型分成不同的優先級, 可以滿足不同的實時要求;
d) 可實現全分布式多機系統, 且無主、從機之分, 每個節點均主動發送報文, 用此特點可以方便地構成多機備份系統; e) 支持四類報文幀: 數據幀、遠程幀、出錯幀、超載幀。它采用短幀結構, 每幀有效字節數為8 個。 這樣, 傳輸時間短, 受干擾的概率低, 且具有較好的檢錯結果。
此外, CAN 采用循環冗余校驗; 其節點具有自動關閉的功能。由于帶有CAN 總線接口的傳感器種類還不多, 價格也較貴, 為了使總線能與上位機更好的實時的通信, 可以自行設計一種由8051 單片機和SJAl000 獨立CAN 總線控制為核心構成的智能節點。在普通傳感器基礎上形成可接收8 路模擬量輸入的智能傳感器網絡。
2 SJAl000 的硬件結構和功能
如圖2 所示, SJAl000從邏輯上可分為7 個部分:
a) IML (接口管理邏輯) IML 用于解釋來自CPU 的命令, 分配信息緩沖區并向CPU 提供中斷及狀態信息;
b) 發送緩沖區TXB 13 字節長存儲器, 外部CPU 將要發送的信息寫入此緩沖區;
c) 接收緩沖區RXB 接收緩沖區為64 字節的CPU 接收信息的FIFO 寄存器;
d) 接收過濾器ACF 對接收到的信息ID 與ACF 內容相比較以決定是否接收信息;
e) 位流處理器BSP 用來控制發送、接收緩沖區及CAN 總線的數據流;
f) 定時邏輯BTL 用于控制CAN 總線上數據的傳輸速率與同步;
g) 錯誤管理邏輯EML 按CAN 協議進行錯誤管理。

圖2 SJAl000 邏輯框圖
3 CAN 總線在智能傳感器網絡中的應用
以一路信號采集為例。圖3 是CAN 控制器和收發器與單片機及ADC0809 的接口電路圖。CAN 控制器采用PHILIPS SJA1000 , 單片機采用89C51 , 主要完成信號的采集和對信號的預處理, 并把經過處理的數據傳給上位機。82C250 是CAN 控制器SJA1000 與CAN 物理總線的接口器件, 它驅動總線差動接收或發送。考慮到現場有各種各樣的干擾, 在CAN 控制器和驅動器之間加了高速光耦隔離器件(6N137) 。由于CAN 控制器和反饋控制器內部都有自己的時鐘產生電路, 為了使兩者協調, 外加的晶振在CAN 控制器上作為整個系統的時鐘, 且將CAN 控制器的時鐘輸出作為微控制器的時鐘輸入; SJAl000 的中斷輸出接至CPU 的INT1 端; 通過中斷方式實現單片機與CAN 控制器的通信; 同時為了使CAN 控制器和微控制器能同時可靠復位, 外加了手動復位電路。另外, 由于ADC0809 轉換器具有三態輸出鎖存功能, 可以直接與89C51 的總線相連, 在系統中把ADC0809 轉換器當作外部RAM單元對待。
評論