基于CAN 總線的智能傳感器網(wǎng)絡(luò)
隨著自動(dòng)化程度的提高和信息的網(wǎng)絡(luò)化進(jìn)程, 所需要的測控點(diǎn)和測控參量越來越多, 使得一個(gè)自動(dòng)控制系統(tǒng)日益龐大而復(fù)雜。對于一個(gè)系統(tǒng)來說, 需要的傳感器數(shù)目成倍增加。為了使各智能儀表與上位機(jī)能實(shí)時(shí)、高速、準(zhǔn)確地通信, 選擇較理想的現(xiàn)場總線則是很關(guān)鍵的?,F(xiàn)場總線是開放型控制系統(tǒng), 是用于現(xiàn)場總線儀表與控制室之間的一種全數(shù)字化、串行、雙向、多站的通訊網(wǎng)絡(luò) 。CAN 是其中很有發(fā)展前景的一種現(xiàn)場總線。在網(wǎng)絡(luò)化的系統(tǒng)中, 每只傳感器作為一個(gè)智能節(jié)點(diǎn)掛接在CAN 總線上, 整個(gè)系統(tǒng)如圖1所示。
圖1 CAN 總線系統(tǒng)框圖
1 CAN 總線的技術(shù)特點(diǎn)
a) CAN 通信速率為(5kB/s)/10km、(1MB/s)/40m ,其節(jié)點(diǎn)數(shù)可達(dá)110 個(gè), 傳輸介質(zhì)采用雙絞線、同軸電纜和光纖等;
b) 采用點(diǎn)對點(diǎn), 一點(diǎn)對多點(diǎn)及全局廣播等幾種方式發(fā)送接收數(shù)據(jù);
c) 采用非破壞性總線優(yōu)先級仲裁技術(shù)。當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上發(fā)送信息時(shí)優(yōu)先級低的節(jié)點(diǎn)主動(dòng)停止發(fā)送數(shù)據(jù), 而優(yōu)先級高的節(jié)點(diǎn)可不受影響地繼續(xù)發(fā)送信息。因此。按節(jié)點(diǎn)類型分成不同的優(yōu)先級, 可以滿足不同的實(shí)時(shí)要求;
d) 可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng), 且無主、從機(jī)之分, 每個(gè)節(jié)點(diǎn)均主動(dòng)發(fā)送報(bào)文, 用此特點(diǎn)可以方便地構(gòu)成多機(jī)備份系統(tǒng); e) 支持四類報(bào)文幀: 數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀、超載幀。它采用短幀結(jié)構(gòu), 每幀有效字節(jié)數(shù)為8 個(gè)。 這樣, 傳輸時(shí)間短, 受干擾的概率低, 且具有較好的檢錯(cuò)結(jié)果。
此外, CAN 采用循環(huán)冗余校驗(yàn); 其節(jié)點(diǎn)具有自動(dòng)關(guān)閉的功能。由于帶有CAN 總線接口的傳感器種類還不多, 價(jià)格也較貴, 為了使總線能與上位機(jī)更好的實(shí)時(shí)的通信, 可以自行設(shè)計(jì)一種由8051 單片機(jī)和SJAl000 獨(dú)立CAN 總線控制為核心構(gòu)成的智能節(jié)點(diǎn)。在普通傳感器基礎(chǔ)上形成可接收8 路模擬量輸入的智能傳感器網(wǎng)絡(luò)。
2 SJAl000 的硬件結(jié)構(gòu)和功能
如圖2 所示, SJAl000從邏輯上可分為7 個(gè)部分:
a) IML (接口管理邏輯) IML 用于解釋來自CPU 的命令, 分配信息緩沖區(qū)并向CPU 提供中斷及狀態(tài)信息;
b) 發(fā)送緩沖區(qū)TXB 13 字節(jié)長存儲(chǔ)器, 外部CPU 將要發(fā)送的信息寫入此緩沖區(qū);
c) 接收緩沖區(qū)RXB 接收緩沖區(qū)為64 字節(jié)的CPU 接收信息的FIFO 寄存器;
d) 接收過濾器ACF 對接收到的信息ID 與ACF 內(nèi)容相比較以決定是否接收信息;
e) 位流處理器BSP 用來控制發(fā)送、接收緩沖區(qū)及CAN 總線的數(shù)據(jù)流;
f) 定時(shí)邏輯BTL 用于控制CAN 總線上數(shù)據(jù)的傳輸速率與同步;
g) 錯(cuò)誤管理邏輯EML 按CAN 協(xié)議進(jìn)行錯(cuò)誤管理。
圖2 SJAl000 邏輯框圖
3 CAN 總線在智能傳感器網(wǎng)絡(luò)中的應(yīng)用
以一路信號采集為例。圖3 是CAN 控制器和收發(fā)器與單片機(jī)及ADC0809 的接口電路圖。CAN 控制器采用PHILIPS SJA1000 , 單片機(jī)采用89C51 , 主要完成信號的采集和對信號的預(yù)處理, 并把經(jīng)過處理的數(shù)據(jù)傳給上位機(jī)。82C250 是CAN 控制器SJA1000 與CAN 物理總線的接口器件, 它驅(qū)動(dòng)總線差動(dòng)接收或發(fā)送??紤]到現(xiàn)場有各種各樣的干擾, 在CAN 控制器和驅(qū)動(dòng)器之間加了高速光耦隔離器件(6N137) 。由于CAN 控制器和反饋控制器內(nèi)部都有自己的時(shí)鐘產(chǎn)生電路, 為了使兩者協(xié)調(diào), 外加的晶振在CAN 控制器上作為整個(gè)系統(tǒng)的時(shí)鐘, 且將CAN 控制器的時(shí)鐘輸出作為微控制器的時(shí)鐘輸入; SJAl000 的中斷輸出接至CPU 的INT1 端; 通過中斷方式實(shí)現(xiàn)單片機(jī)與CAN 控制器的通信; 同時(shí)為了使CAN 控制器和微控制器能同時(shí)可靠復(fù)位, 外加了手動(dòng)復(fù)位電路。另外, 由于ADC0809 轉(zhuǎn)換器具有三態(tài)輸出鎖存功能, 可以直接與89C51 的總線相連, 在系統(tǒng)中把ADC0809 轉(zhuǎn)換器當(dāng)作外部RAM單元對待。
評論