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