基于CAN總線(xiàn)的集散控制系統
新型的現場(chǎng)總線(xiàn)控制系統(FCS)突破了集散控制系統(DCS)中通信由專(zhuān)用網(wǎng)絡(luò )的封閉系統來(lái)實(shí)現所造成的缺陷,把基于封閉、專(zhuān)用的解決方案變成公開(kāi)化、標準化的解決方案。它可以把來(lái)自不同廠(chǎng)商而遵守同一協(xié)議規范的自動(dòng)化設備,通過(guò)現場(chǎng)總線(xiàn)網(wǎng)絡(luò )連成系統,實(shí)現綜合自動(dòng)化的各種功能;同時(shí)把傳統DCS集中與分散相結合的集散系統結構,變成了新型基于現場(chǎng)總線(xiàn)的全分布式的結構,在傳統的DCS網(wǎng)絡(luò )的下一層再引入一個(gè)現場(chǎng)總線(xiàn)網(wǎng)絡(luò )層,將底層智能的I/O模塊、各種智能化的電子設備和各種智能化的儀表通過(guò)現場(chǎng)總線(xiàn)網(wǎng)構成底層的控制網(wǎng)絡(luò )。
由于分散度的提高,每個(gè)智能單元所涉及的面很少,即使出現故障,也只影響這一個(gè)單元。同時(shí),由于這些規模很小的智能單元可以實(shí)現全面有效的自診斷功能,出現故障可以及時(shí)報警、報告故障類(lèi)型及故障點(diǎn),因此給維護帶來(lái)了極大的方便。另外,這個(gè)網(wǎng)絡(luò )還具有很大的獨立性,它將控制進(jìn)一步下放到各個(gè)智能模塊、設備中,各個(gè)單元的處理并不完全依賴(lài)于上位機的運行,即使上位機出現故障或失效,各個(gè)智能單元仍可獨立地運行并執行預定功能,甚至仍可以通過(guò)現場(chǎng)總線(xiàn)傳遞信息,完成某些協(xié)調功能。
下面以CAN總線(xiàn)為例,闡述了CAN現場(chǎng)總線(xiàn)的結構、特點(diǎn)及其實(shí)現。
CAN總線(xiàn)技術(shù)特點(diǎn)
CAN總線(xiàn)是一種串行數據通信總線(xiàn),在CAN總線(xiàn)通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對數據的成幀處理。CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統的站地址編碼,而代之以對通信數據塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)是使網(wǎng)絡(luò )內的節點(diǎn)個(gè)數在理論上不受限制,數據塊的標示碼可由11位或29位二進(jìn)制組成,因此可以定義211或229個(gè)不同的數據塊,這種按數據塊編碼的方式,還可使不同的節點(diǎn)同時(shí)接收到相同的數據。CAN總線(xiàn)的數據通信具有突出的可靠性、實(shí)時(shí)性和靈活性。其特點(diǎn)可概括如下:
* CAN為多主工作方式,網(wǎng)絡(luò )上任一節點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò )上的其它節點(diǎn)發(fā)送信息,而不分主從,通信方式靈活,且無(wú)需站地址等節點(diǎn)信息。利用這一特點(diǎn)可方便的構成多機備份系統。
* CAN網(wǎng)絡(luò )上的節點(diǎn)信息分成不同的優(yōu)先級,可滿(mǎn)足不同的實(shí)時(shí)要求,高優(yōu)先級的數據最多可在134ms內得到傳輸。
* CAN采用非破壞性總線(xiàn)仲裁技術(shù),當多個(gè)節點(diǎn)同時(shí)向總線(xiàn)發(fā)送信息時(shí),優(yōu)先級較低的節點(diǎn)會(huì )主動(dòng)退出發(fā)送,而最高優(yōu)先級的節點(diǎn)可不受影響地繼續傳輸數據,從而大大節省了總線(xiàn)沖突仲裁時(shí)間。尤其在網(wǎng)絡(luò )負載很重的情況下,也不會(huì )出現網(wǎng)絡(luò )癱瘓的情況(以太網(wǎng)則可能)。
* CAN只需通過(guò)報文濾波即可實(shí)現點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收數據,無(wú)需專(zhuān)門(mén)的“調度”。
* CAN的直接通信距離最遠可達10km(速率<5Kbps);通信速率最高可達1Mbps(此時(shí)通信距離最遠為40m)。
* CAN上的節點(diǎn)數主要取決于總線(xiàn)驅動(dòng)電路,目前可達110個(gè);報文標識符可達2032種(CAN2.0A技術(shù)規范),而擴展標準(CAN2.0B技術(shù)規范)的報文標識符幾乎不受限制。
* 采用短幀結構,數據段的長(cháng)度最多為8個(gè)字節,可滿(mǎn)足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數據的一般要求。同時(shí),8個(gè)字節的數據長(cháng)度不會(huì )占用過(guò)長(cháng)的總線(xiàn)時(shí)間,從而保證了通信的實(shí)時(shí)性。另外,傳輸時(shí)間短,受干擾的概率低。
* CAN的每幀信息都有CRC校驗及其它措施,保證了數據出錯率極低。
* CAN的通信介質(zhì)可為雙絞線(xiàn)、同軸電纜或光纖,選擇靈活。
* CAN節點(diǎn)在錯誤嚴重的情況下具有自動(dòng)關(guān)閉的功能,以使總線(xiàn)上其它節點(diǎn)的操作不受影響。
CAN總線(xiàn)電平如圖1所示。
CAN總線(xiàn)控制通信系統
的實(shí)現
CAN的網(wǎng)絡(luò )一般有3種實(shí)現方式:微控制器+CAN控制器+CAN收發(fā)器;集成CAN控制器的微控制器+CAN收發(fā)器;CAN的串行I/O器件+CAN收發(fā)器。只要符合CAN總線(xiàn)規范的單元都可以通過(guò)CAN接口接入CAN總線(xiàn)。CAN總線(xiàn)得到了Intel、Motorola、Philips、Siemens等眾多大公司的支持,提供了許多可以實(shí)現CAN總線(xiàn)協(xié)議的芯片來(lái)供用戶(hù)選擇。另外,CAN協(xié)議是完全公開(kāi)的,這些都給CAN總線(xiàn)的開(kāi)發(fā)設計帶來(lái)很大的方便。CAN控制器有Philips公司的82c200、SJA1000,Intel公司的82526、82527等。集成了CAN控制器的微控制器也很多,如Philips公司的P8XC592/598,Intel公司的196CA/CB,TI公司的TMS320LF2407(DSP)等。CAN的串行I/O芯片可以采用Philips的82c150。CAN的收發(fā)器有Philips的82c250,TI的SN65HVD230等。這些芯片一般都兼容最新的CAN2.0A/B協(xié)議。
基于DSP芯片的嵌入式控制器CAN節點(diǎn)實(shí)現
TI公司推出的TMS320LF240X系列、TMS320LF28X系列芯片是專(zhuān)門(mén)針對控制領(lǐng)域的應用而設計的DSP芯片。這類(lèi)芯片內部不但集成有豐富的控制類(lèi)單元,而且也集成CAN控制器(兼容CAN2.0A/B),因此可以很方便地將基于DSP芯片的嵌入式控制系統設計CAN總線(xiàn)上的一個(gè)CAN節點(diǎn)接入,并且只占用DSP的兩根I/O口線(xiàn)(CAN的發(fā)送和接收端與I/O是復用的)。圖2(基于CAN的第2種實(shí)現方式)是采用TMS320LF2407作為微控制器的CAN節點(diǎn)實(shí)現。它不但完成各類(lèi)控制律,而且完成總線(xiàn)的通信功能。
可以看到,這個(gè)CAN節點(diǎn)主要是在DSP的基礎上增加了一個(gè)CAN發(fā)送器PCA82C250。需要注意的是:2407采用低功耗設計,3.3V供電,而CAN發(fā)送器PCA82C250是5V供電,假如直接相連,2407肯定無(wú)法承受。采用兩路光耦6N137不僅起到隔離DSP和CAN總線(xiàn)的作用,而且在保護DSP芯片的同時(shí)又可以進(jìn)行電平轉換。當然進(jìn)行電平匹配,還可以采用專(zhuān)門(mén)的電平轉換芯片,或者CPLD芯片。CAN節點(diǎn)的通信有三種通信模式:高速模式、斜率控制模式、等待模式。三種模式的選擇是通過(guò)PCA82C250端子的接法來(lái)實(shí)現的。高速模式下要求接一個(gè)0 ~1.8kW的電阻到地;斜率控制模式下要求接一個(gè)16.5kW~140kW的電阻到地;等待模式下要求RS接到高電平,至少保證RS的端電壓大于0.75VCC。顯然圖2采用的是斜率控制模式。至于CAN總線(xiàn)的終端匹配電阻的選擇并不是固定的,這與所設計的CAN網(wǎng)絡(luò )的節點(diǎn)個(gè)數,采用的傳輸介質(zhì)等都有關(guān)系。終端電阻主要起到吸收信號的作用,對于較大型的CAN網(wǎng)絡(luò ),一般在CAN總線(xiàn)的兩端各接上一個(gè)幾百歐的電阻,對于只有幾個(gè)節點(diǎn)的試驗系統,可以在每個(gè)節點(diǎn)的接口處接上一個(gè)幾百歐或稍大一些的電阻都是可以的。
CAN控制器并不一定需要接CAN發(fā)送器才可以接到CAN上的。圖3中CAN控制器通過(guò)采用一些分立的元件直接連到總線(xiàn)上,這種方法的不足在于必須很細致地調節電阻參數,使其滿(mǎn)足在顯性和隱性情況下,CANH與CANL的電平滿(mǎn)足圖1的形式。在隱性情況下,VCANH與VCANL被固定于平均電平下,Vdiff近似為零。在顯性情況下以差分形式表示,這樣可以達到抗共模干擾的作用,而且這樣的連接形式只能下掛30個(gè)節點(diǎn)。加上CAN收發(fā)器后,不僅可以提供對總線(xiàn)的差動(dòng)發(fā)送和接收的功能,同時(shí)也大大增強了總線(xiàn)的驅動(dòng)能力,通信速率可達最高1Mbps,還可最大掛接110個(gè)節點(diǎn)。
CAN節點(diǎn)發(fā)送數據的程序流程圖如圖4所示。
CAN節點(diǎn)在接收數據的操作首先也是對CAN寄存器進(jìn)行配置,接收到報文后,CAN控制器先進(jìn)行報文濾波,假如符合要求就產(chǎn)生報文接收中斷,DSP處理中斷服務(wù)子程序將mailbox中的數據接收進(jìn)來(lái),進(jìn)行處理。
基于51單片機和SJA1000 CAN控制器的CAN節點(diǎn)實(shí)現
由于DSP具有很強的數字信號處理能力,因此,基于DSP芯片設計的CAN節點(diǎn)常被用于處理信息量較大的場(chǎng)合。另外,在工控系統中,沒(méi)有大量數據需要處理,在只要實(shí)現簡(jiǎn)單控制的場(chǎng)合,為了降低成本也常采用單片機開(kāi)發(fā)CAN節點(diǎn)。采用片內帶CAN控制器的單片機設計CAN節點(diǎn),與上述的基于DSP的CAN節點(diǎn)設計類(lèi)似。圖5(基于CAN的第1種實(shí)現方式)就是采用AT89C52(普通單片機,不帶CAN控制器)、SJA1000(CAN控制器)和PCA82C250設計的CAN節點(diǎn)。單片機和SJA1000 CAN控制器都需要時(shí)鐘信號(SJA1000的時(shí)鐘還是比較關(guān)鍵的,因為這將關(guān)系到以后總線(xiàn)波特率的設定,假如晶振太小,CAN節點(diǎn)就無(wú)法在高速模式下運行),這里使用24MHz的晶振,51單片機的時(shí)鐘采用SJA1000的CLKOUT輸出。采用集成了CAN控制器的單片機或DSP芯片設計CAN節點(diǎn),可以減小系統的復雜度,提高系統的可靠性,同時(shí)也方便設計者的開(kāi)發(fā),而在價(jià)格上卻并不一定會(huì )比非集成的方案高。
基于串行I/O器件的CAN節點(diǎn)實(shí)現
為了提高微控制器的I/O能力,降低線(xiàn)路數量和復雜性,進(jìn)一步降低成本,Philips等公司還提供了CAN的串行智能I/O器件。這些I/O器件支持由端口輸入管腳上變化引起的自動(dòng)發(fā)送,時(shí)鐘振蕩器不要求外部器件,從而大大降低了CAN鏈路的成本。圖6(基于CAN的第3種實(shí)現方式)是采用82c150串行連接I/O器件設計的CAN節點(diǎn)實(shí)現。
整個(gè)CAN通信系統的實(shí)現
圖7顯示的一個(gè)比較完整的CAN網(wǎng)絡(luò ),這個(gè)網(wǎng)絡(luò )還可以通過(guò)單片機或DSP的串口與其它網(wǎng)絡(luò )系統通信,或通過(guò)CAN網(wǎng)絡(luò )上PC節點(diǎn)的以太網(wǎng)接口等其它通信接口接入上層的網(wǎng)絡(luò )中,從而形成一個(gè)更大的網(wǎng)絡(luò )體系?;赑C機的CAN節點(diǎn)設計與上述幾種都不相同,關(guān)鍵是設計符合PC機PCI或ISA插槽的板卡以及板卡的驅動(dòng)開(kāi)發(fā),較以上的實(shí)現都要復雜的多。CAN總線(xiàn)上節點(diǎn)之間的通信與其它通信一樣,必須采用相同的波特率以及相同的協(xié)議規范。實(shí)際應用中,我們對CAN2.0B做了一定的改進(jìn),CAN2.0B提供了29位標識符,利用前24位作為數據標識,8位一組,后五位做作為特殊功能位。將最后一位定義為數據和命令的區分位,前24位符合的報文就可以通過(guò)報文濾波,被接收節點(diǎn)接收,節點(diǎn)接收后,根據后5位來(lái)區分接收到的是什么數據,并對數據進(jìn)行相應的處理。
結語(yǔ)
本文詳細地研究了基于現場(chǎng)總線(xiàn)的集散控制系統的組成和實(shí)現,并研究了基于DSP的嵌入式控制器和基于單片機的串行智能I/O的CAN節點(diǎn)實(shí)現方案。研究結果表明,含有DSP和單片機的基于CAN總線(xiàn)而組成的集散控制系統有許多優(yōu)良的性能,并能充分發(fā)揮各類(lèi)節點(diǎn)的功能?!?/P>
參考文獻:
1. 鄔寬明, CAN總線(xiàn)原理和應用系統設計, 北京航空航天大學(xué)出版社, 1996
2. 世界儀表與自動(dòng)化, 2002年2月
3. 陽(yáng)憲惠, 現場(chǎng)總線(xiàn)技術(shù)及其應用,清華大學(xué)出版社, 1999
4.Philips, PCA82C250/251 CAN Transceiver Application Note, 1996
5.Philips, SJA1000 Data Sheet, 2000
6.ATMEL, AT89C52 Data Sheet, 1999
作者簡(jiǎn)介:
周嶸,王慧:西北工業(yè)大學(xué),主要從事工業(yè)自動(dòng)化技術(shù)研究、自動(dòng)控制理論、現場(chǎng)總線(xiàn)技術(shù)和DSP芯片技術(shù)和應用開(kāi)發(fā)等。
吳旭光:西北工業(yè)大學(xué)自動(dòng)化教研室,教授。主要從事自動(dòng)控制理論、系統建模、計算機仿真和工業(yè)自動(dòng)化技術(shù)研究。
圖1 CAN總線(xiàn)電平
圖2 基于DSP的CAN節點(diǎn)實(shí)現
圖3 ISO11898建議電氣連接
圖4 發(fā)送數據流程圖
圖5 基于微控制器和CAN控制器的CAN節點(diǎn)實(shí)現
圖6 基于串行I/O器件的CAN節點(diǎn)實(shí)現
圖7 CAN通信系統
評論