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