摘 要:該文介紹了CAN總線的基本特點(diǎn)和智能節(jié)點(diǎn)數(shù)字量及開關(guān)量輸入輸出的設(shè)計(jì)實(shí)現(xiàn),并給出了軟件編制的方法。
關(guān)鍵詞:CAN總線;SJA1000;智能節(jié)點(diǎn)
Abstract: the paper describes the protocol and concept of CAN bus as well as the way to design and make a intelligent control node which can receive ,transmit digital and switching input or output signals ,It also gives out the software design.
Key word: CAN bus, SJA1000, intelligent node
1 引言
隨著計(jì)算機(jī)科學(xué)的發(fā)展和以其為核心的4C技術(shù)(計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)、通訊技術(shù)、CRT顯示技術(shù))越來越深入的應(yīng)用到工業(yè)生產(chǎn)的各個(gè)環(huán)節(jié),并引起了自動(dòng)化系統(tǒng)結(jié)構(gòu)的優(yōu)化和變革,逐步形成了以網(wǎng)絡(luò)集成自動(dòng)化為基礎(chǔ)的控制系統(tǒng)。現(xiàn)場總線就是順應(yīng)這一趨勢發(fā)展起來的。隨著現(xiàn)場總線技術(shù)的不斷發(fā)展和世界很多大公司連續(xù)的技術(shù)投入,而現(xiàn)場總線控制系統(tǒng)(field control system,FCS)在數(shù)據(jù)交換的實(shí)時(shí)性、準(zhǔn)確性等方面取得了突破性的進(jìn)展。該文結(jié)合筆者的實(shí)踐闡述了一個(gè)通用的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì),是在現(xiàn)場總線系統(tǒng)中分布于現(xiàn)場的一個(gè)子系統(tǒng),能實(shí)現(xiàn)數(shù)據(jù)采集與閉環(huán)控制,而根據(jù)需要加入適當(dāng)算法以后還可以實(shí)現(xiàn)智能控制。
2 CAN總線概述
CAN(Control Area Network)總線是一種支持分布式實(shí)時(shí)控制系統(tǒng)的串行通信局域網(wǎng)。由于其高性能、高可靠性、實(shí)時(shí)性等優(yōu)點(diǎn),已廣泛應(yīng)用于控制系統(tǒng)中的檢測和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。它具有以下一些技術(shù)特性:(1)多主方式工作,非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù);(2)借助接收濾波實(shí)現(xiàn)多地址的幀傳送;(3)數(shù)據(jù)采用短幀結(jié)構(gòu),受干擾率低,數(shù)據(jù)幀的信息CRC校驗(yàn)及其它錯(cuò)誤檢測措施;(4)發(fā)送期間丟失仲裁或由于出錯(cuò)而遭破獲的幀可以自動(dòng)重發(fā);(5)對于嚴(yán)重錯(cuò)誤具有自動(dòng)關(guān)閉總線功能,使總線其它操作不受影響。CAN總線符合ISO11898標(biāo)準(zhǔn),最大傳輸速率可達(dá)1MB/s(傳輸距離最大為40m),最大傳輸距離為10km(傳輸速率約為5K),傳輸介質(zhì)可為雙絞線、同軸電纜等。由于CAN總線是一種很有發(fā)展前景的現(xiàn)場總線,得到了國際上很多大公司的支持。其硬件接口簡單,編程方便,系統(tǒng)容易集成?;贑AN總線的以上特點(diǎn),它特別適用于系統(tǒng)分布比較分散、實(shí)時(shí)性要求高、現(xiàn)場環(huán)境干擾大的場合。
3 利用CAN智能節(jié)點(diǎn)的系統(tǒng)構(gòu)成
由于CAN總線采用多主方式工作,可掛多達(dá)110個(gè)節(jié)點(diǎn)??刂葡到y(tǒng)的構(gòu)成由計(jì)算機(jī)和智能節(jié)點(diǎn)組成,如圖1所示:與DCS控制系統(tǒng)不一樣的是它的拓?fù)浣Y(jié)構(gòu)。不是所有的下位機(jī)以上位機(jī)為中心,而是所有的節(jié)點(diǎn)(包括上位計(jì)算機(jī))都以“平等主體”的形式掛接在總線上。
[align=center]

圖1 CAN總線系統(tǒng)結(jié)構(gòu)圖[/align]
智能節(jié)點(diǎn)能夠采集現(xiàn)場數(shù)據(jù),并根據(jù)接收到的命令或者主動(dòng)將數(shù)據(jù)發(fā)送到CAN總線。通過事先設(shè)置驗(yàn)收碼和驗(yàn)收屏蔽碼可以控制智能節(jié)點(diǎn)從總線上接收哪些數(shù)據(jù)或命令。如果某些數(shù)據(jù)需要進(jìn)一步復(fù)雜的處理,則上位計(jì)算機(jī)可以從總線上接收數(shù)據(jù)。當(dāng)上位機(jī)需要對某個(gè)節(jié)點(diǎn)施加控制動(dòng)作時(shí),可以采用點(diǎn)對點(diǎn)方式與該節(jié)點(diǎn)通訊;而當(dāng)它要同時(shí)對所有節(jié)點(diǎn)施加控制動(dòng)作時(shí),可以采用廣播方式將命令發(fā)送到總線。這樣當(dāng)系統(tǒng)正常運(yùn)行時(shí)完全可以沒有上位機(jī)的參與。大大減少了數(shù)據(jù)的傳輸量,同時(shí)提高了系統(tǒng)的實(shí)時(shí)性和可靠性。
4 智能節(jié)點(diǎn)的硬件設(shè)計(jì)
CAN智能測控節(jié)點(diǎn)具有現(xiàn)場數(shù)據(jù)采集、控制及CAN總線通信功能,可以與監(jiān)控站及其它CAN智能測控節(jié)點(diǎn)傳送各種參數(shù),并接收來自監(jiān)控站的命令和數(shù)據(jù),用來調(diào)整和改變控制狀態(tài)。因此,在基于CAN現(xiàn)場總線的嵌入式ARM控制系統(tǒng)中,控制節(jié)點(diǎn)直接接觸控制對象,在系統(tǒng)中起著關(guān)鍵的作用。智能節(jié)點(diǎn)需3個(gè)脈沖量輸入、5個(gè)開關(guān)量輸入、7個(gè)開關(guān)量輸出,2路模擬量輸入、2路模擬量輸出,結(jié)構(gòu)示意圖如圖2。為了實(shí)現(xiàn)對現(xiàn)場開關(guān)量的檢測與控制,該節(jié)點(diǎn)設(shè)計(jì)了開關(guān)量I/O通道,可實(shí)現(xiàn)4路開關(guān)量輸入和4路開關(guān)量輸出。4路開關(guān)量輸入經(jīng)光電耦合器隔離后,輸入單片機(jī)的I/O口。4路開關(guān)量輸出由P1口的引腳輸出,經(jīng)繼電器驅(qū)動(dòng),向外提供無源開關(guān)量控制信號。模擬量輸入經(jīng)放大、A/D轉(zhuǎn)換后輸入單片機(jī),從單片機(jī)輸出的控制量經(jīng)D/A轉(zhuǎn)換后經(jīng)過放大控制相應(yīng)的執(zhí)行器。
[align=center]

圖2 智能節(jié)點(diǎn)結(jié)構(gòu)示意圖[/align]
CAN智能節(jié)點(diǎn)的結(jié)構(gòu)原理圖如圖3所示:節(jié)點(diǎn)的核心器件是PHILIPS公司生產(chǎn)的CAN控制器(SJA1000)和CAN驅(qū)動(dòng)器(PCA82C250)以及微控制器(單片機(jī))。SJA1000是集成的獨(dú)立CAN控制器(與PHILIPS早期的CAN控制器PCA82C200完全兼容),它負(fù)責(zé)完成CAN總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能。對于微處理器來說,它相當(dāng)于一個(gè)存儲器I/O映象設(shè)備。SJA1000片內(nèi)有控制寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器和收、發(fā)寄存器等,
[align=center]

圖3 智能節(jié)點(diǎn)電路原理圖[/align]
單片機(jī)就是通過讀寫這些寄存器來實(shí)現(xiàn)對SJA1000的控制;芯片的TX0、TX1、RX0、RX1引腳用于與CAN總線的接口。PCA82C250是專門用于CAN總線收發(fā)驅(qū)動(dòng)的9腳芯片,TXD、RXD引腳分別接收和發(fā)送經(jīng)驅(qū)動(dòng)后的信號;雙絞線(同軸電纜)傳輸介質(zhì)分別接至CANH、CANL引腳,必須注意的一點(diǎn)是CANH、CANL之間要加上120Ω的終端匹配電阻。考慮到現(xiàn)場有各種各樣的干擾,在CAN控制器和驅(qū)動(dòng)器之間加了高速光耦隔離器件 (6N137);由于CAN控制器和微控制器內(nèi)部都有自己的時(shí)鐘產(chǎn)生電路,為了讓兩者之間協(xié)調(diào),外加晶振在CAN控制器上作為整個(gè)系統(tǒng)時(shí)鐘;并將CAN控制器的時(shí)鐘輸出作為微控制器的時(shí)鐘輸入;SJA1000的中斷輸出信號/INT接到單片機(jī)的INT1中斷;通過中斷方式實(shí)現(xiàn)單片機(jī)與CAN控制器的通信;同時(shí)為了使CAN控制器和微控制器能同時(shí)可靠的復(fù)位,外加了手動(dòng)復(fù)位電路。
5 節(jié)點(diǎn)的軟件設(shè)計(jì)
智能節(jié)點(diǎn)的軟件設(shè)計(jì)大體可以分為兩個(gè)部分:一部分為初始化,其中包括單片機(jī)的初始化和CAN控制器的初始化;另一部分為節(jié)點(diǎn)實(shí)際要完成的數(shù)據(jù)采集和對執(zhí)行機(jī)構(gòu)的控制功能,初始化以后,節(jié)點(diǎn)就可以工作。但要完成實(shí)際的任務(wù),還要設(shè)計(jì)出應(yīng)用層軟件。采用模糊控制算法,控制結(jié)構(gòu)如圖4,軟件流程如圖5。
[align=center]

圖4 模糊控制系統(tǒng)結(jié)構(gòu)圖[/align]
系統(tǒng)軟件所實(shí)現(xiàn)的功能為:采樣n時(shí)刻A/D轉(zhuǎn)換輸出值,與系統(tǒng)設(shè)定值和上次采樣值e(n-1)比較得n時(shí)刻偏差e(n);和偏差變化率ec(n);選擇合適的量化因子ke和kc,由相應(yīng)的模糊化規(guī)則得到模糊值E(n)和EC(n),分析E(n)和EC(n)的變化趨勢以確定是否加入積分環(huán)節(jié)。然后,根據(jù)E(n)和EC(n)的值直接查程序存儲器內(nèi)的模糊控制總表或進(jìn)行積分運(yùn)算得到模糊控制增量。最后,對加入或不加入的模糊控制增量采用最大隸屬度原則進(jìn)行模糊判決,選擇適當(dāng)?shù)谋壤蜃觡u得到控制增量△u,計(jì)算△u+u(n-1)的值,即可得n時(shí)刻的控制量。該值可通過CAN總線傳送給其它智能單元,進(jìn)行D/A轉(zhuǎn)換后即可控制現(xiàn)場設(shè)備或上位機(jī)做進(jìn)一步的處理以協(xié)調(diào)整個(gè)系統(tǒng)各控制單元的正常、有效的運(yùn)行。智能控制單元在處理以上任務(wù)的同時(shí)還要完成與CAN總線數(shù)據(jù)通信和對現(xiàn)場設(shè)備的狀態(tài)顯示與報(bào)警。由離線方式計(jì)算出的模糊控制總表可以直接以矩陣的形式寫入芯片內(nèi)部程序存儲器,其軟件設(shè)計(jì)流程如圖5所示。
[align=center]

圖5 智能單元模糊控制實(shí)現(xiàn)程序框圖[/align]
經(jīng)實(shí)踐調(diào)試的結(jié)果表明:該智能節(jié)點(diǎn)的設(shè)計(jì)和實(shí)施方案是成功的。能可靠的運(yùn)行和完成要求的任務(wù),控制信息在現(xiàn)場進(jìn)行處理,而管理層則在上位機(jī)中實(shí)現(xiàn)。體現(xiàn)了CAN總線高性能、高可靠性的特點(diǎn)。
參考文獻(xiàn):
[1]郭素敏、向鳳紅 基于can總線的智能數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) 昆明理工大學(xué)學(xué)報(bào)
[2]遲東明,司棟森.CAN總線在停車場燈光智能控制系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2005,2:46-47
[3]陸前鋒、劉波、陳明昭 基于SJA1000的CAN總線智能控制系統(tǒng)設(shè)計(jì) 儀器儀表
[4]鄔寬明 CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M]北京:北京航空航天大學(xué)出版社
[5]PHILIPS SJA1000 Stand-alone CAN controller DATA SHEET[Z]2000