李國林,黃 帥
(中國電子科技集團(tuán)公司第四十五研究所,北京100176)
現(xiàn)場總線(Fieldbus)是指開放式、國際標(biāo)準(zhǔn)化、數(shù)字化、相互交換操作的雙向傳送、連接智能儀表和控制系統(tǒng)的通信網(wǎng)絡(luò)。它作為工廠數(shù)字通信網(wǎng)絡(luò)的基礎(chǔ),溝通了生產(chǎn)過程現(xiàn)場及控制設(shè)備之間及其與更高控制管理層次之間的聯(lián)系。它不僅是一個(gè)基層網(wǎng)絡(luò),而且還是一種開放式、新型全分布控制系統(tǒng)。目前世界上存在著幾十余種現(xiàn)場總線,如德國西門子公司的ProfiBus,博世公司的CAN,倍福公司的EtherCAT 以及美國的DeviceNet 與ControlNet 等。
控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種高性能、高可靠性、易開發(fā)和低成本的串行通訊協(xié)議總線,CAN 總線協(xié)議已被國際標(biāo)準(zhǔn)化組織認(rèn)證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價(jià)比高,特別適用于分布式測控系統(tǒng)之間的數(shù)據(jù)通訊。CAN 總線插卡可以任意插在PC、AT、XT 兼容機(jī)上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。它可以使用雙絞線、同軸電纜或光導(dǎo)纖維來傳輸信號(hào),通信速率可達(dá)1 Mbps,距離可達(dá)10 km,是世界上應(yīng)用最廣泛的現(xiàn)場總線之一[2]。
本文首先闡述了CAN 總線控制器的理論基礎(chǔ),重點(diǎn)介紹了基于CAN 總線的電機(jī)控制系統(tǒng)設(shè)計(jì),以全自動(dòng)LTCC 印刷線為平臺(tái),通過工控機(jī)、CAN 卡以及Copley 驅(qū)動(dòng)器組成的CAN 總線控制系統(tǒng),實(shí)現(xiàn)對(duì)被控對(duì)象電機(jī)的控制,并應(yīng)用在實(shí)際的印刷控制系統(tǒng)中,具有較好的時(shí)效性和控制效果。
CAN 協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而是對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制。由于CAN 總線具有較強(qiáng)的糾錯(cuò)能力,支持差分收發(fā),保證了數(shù)據(jù)傳輸?shù)母呖煽啃裕蚨m合高干擾環(huán)境,并具有較遠(yuǎn)的傳輸距離。而且CAN 總線還采用非破壞性仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送數(shù)據(jù)時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響繼續(xù)傳輸數(shù)據(jù),有效避免了總線沖突。因此,CAN 協(xié)議對(duì)于許多領(lǐng)域的分布式測控有很廣泛的應(yīng)用空間。
CAN 總線以目前技術(shù)條件較成熟的IS0/0SI模型為基礎(chǔ),與其它網(wǎng)絡(luò)相比,其信息傳遞的格式為報(bào)文,報(bào)文的長度可以不同,并采用短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8 個(gè),數(shù)據(jù)傳輸時(shí)間短,受干擾的概率低,重新發(fā)送的時(shí)間短。當(dāng)CAN 總線上的一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),以報(bào)文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn),對(duì)每個(gè)節(jié)點(diǎn)來說,無論數(shù)據(jù)是否是發(fā)給自己的,都對(duì)其進(jìn)行接收。每組報(bào)文開頭的11 位字符為標(biāo)識(shí)符,定義了報(bào)文的優(yōu)先級(jí),這種報(bào)文格式稱為面向內(nèi)容的編址方案。并且在同一系統(tǒng)中標(biāo)識(shí)符是唯一的,不可能有兩個(gè)站發(fā)送具有相同標(biāo)識(shí)符的報(bào)文,因此可在各節(jié)點(diǎn)之間實(shí)現(xiàn)自由通信。而且節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉總線的功能,切斷它與總線的聯(lián)系,以使總線上其他操作不受影響。另外,CAN 總線采用了多主競爭式總線結(jié)構(gòu),具有多主站運(yùn)行和分散仲裁的串行總線的特點(diǎn)。CAN 總線使用串行數(shù)據(jù)傳輸方式,可以1 Mb/s 的速率在40 m 的雙絞線上運(yùn)行,也可以使用光纜連接,而且這種總線協(xié)議支持多主控制器。
由于CAN 總線是一種面向內(nèi)容的編址方案,因此很容易建立高水準(zhǔn)的控制系統(tǒng)并靈活地進(jìn)行配置,也可以很容易地在CAN 總線中加進(jìn)一些新站而無需在硬件或軟件上進(jìn)行修改。當(dāng)所提供的新站是純數(shù)據(jù)接收設(shè)備時(shí),數(shù)據(jù)傳輸協(xié)議不要求獨(dú)立的部分有物理目的地址,它允許分布過程同步化,即總線上控制器需要測量數(shù)據(jù)時(shí),可由網(wǎng)上獲得,而無須每個(gè)控制器都有自己獨(dú)立的傳感器。
CAN 總線在組網(wǎng)和通信功能上的優(yōu)點(diǎn)以及其高性價(jià)比奠定了它在許多領(lǐng)域有廣闊的應(yīng)用前景和發(fā)展?jié)摿?。這些應(yīng)用有些共同之處,CAN 實(shí)際就是在現(xiàn)場起一個(gè)總線拓?fù)涞挠?jì)算機(jī)局域網(wǎng)的作用,不管在什么場合,它負(fù)擔(dān)的是任一節(jié)點(diǎn)之間的實(shí)時(shí)通信,但是它具備結(jié)構(gòu)簡單、高速、抗干擾、可靠、價(jià)位低等優(yōu)勢。
CAN 數(shù)據(jù)總線包括黃色和綠色兩條導(dǎo)線,分別是CAN_High(上)線和CAN_Low(下)線,當(dāng)靜止?fàn)顟B(tài)時(shí),這兩條導(dǎo)線上的電平一樣,這個(gè)電平稱為靜電平,大約為2.5 V,這個(gè)靜電平狀態(tài)就是隱形狀態(tài)也稱隱性電平,也就是沒有任何干擾的時(shí)候的狀態(tài)稱為隱性狀態(tài)。當(dāng)有信號(hào)變化時(shí),CAN_High 線上的電壓值變高了,一般來說會(huì)升高至少1 V,而CAN_Low 線上的電壓值會(huì)降低一個(gè)同等數(shù)值,那么這時(shí)候CAN_High 就是2.5+1=3.5 V,它就處于被激活狀態(tài),而CAN_Low 降為2.5-1=1.5 V,可以參照?qǐng)D1所示。
由此得到,在隱性狀態(tài)下CAN_High 線與CAN_Low 沒有電壓差,這樣就沒有任何變化也就檢測不到信號(hào)。但是在顯性狀態(tài)下,該值最低為2 V,在總線上通常邏輯1 表示隱性,0 表示顯性。那么就可以利用這種電壓差所產(chǎn)生的邏輯變化以報(bào)文的信息格式來傳送數(shù)據(jù)和接收信號(hào)。
圖1 顯性隱性狀態(tài)示意圖
所謂報(bào)文就是CAN 總線上要傳輸?shù)臄?shù)據(jù)包,識(shí)別符就是為了區(qū)分不同報(bào)文的可以鑒別的好多字符位,它有一個(gè)功能就是可以提供優(yōu)先級(jí),也就是決定哪個(gè)報(bào)文優(yōu)先被傳輸,報(bào)文標(biāo)識(shí)符的值越小優(yōu)先權(quán)越高。CAN 的報(bào)文格式包括具有11 位識(shí)別符的標(biāo)準(zhǔn)幀和29 位識(shí)別符的擴(kuò)展幀,CAN報(bào)文有以下4 個(gè)不同的幀類型,分別是數(shù)據(jù)幀,將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌?;遠(yuǎn)程幀,總線節(jié)點(diǎn)發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀;錯(cuò)誤幀,任何節(jié)點(diǎn)檢測到總線錯(cuò)誤就發(fā)出錯(cuò)誤幀;過載幀,過載幀用已在先行的后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。
一般來說,控制單元通過收發(fā)器連接到CAN驅(qū)動(dòng)總線上,這個(gè)收發(fā)器內(nèi)有一個(gè)接收器,該接收器是安裝在接收一側(cè)的差動(dòng)信號(hào)放大器。通過這個(gè)放大器將CAN_High 和CAN_Low 線的電平差放大后再傳到接收區(qū),如圖2所示,當(dāng)有電壓差,差動(dòng)信號(hào)放大器放大傳輸,將相應(yīng)的數(shù)據(jù)位置為0。
圖2 CAN 驅(qū)動(dòng)數(shù)據(jù)總線的差動(dòng)信號(hào)放大器
本文所設(shè)計(jì)的控制系統(tǒng)主要由工控機(jī)、CAN接口卡、Copley 驅(qū)動(dòng)器和被控對(duì)象電機(jī)以及光柵尺、IO 模塊等組成,主要包括控制系統(tǒng)通訊設(shè)計(jì)和基于CAN 總線的結(jié)構(gòu)設(shè)計(jì)兩大部分,其中系統(tǒng)通訊設(shè)計(jì)通過串口及雙絞線實(shí)現(xiàn)與控制器和IO模塊之間的通訊,而結(jié)構(gòu)設(shè)計(jì)是基于CAN 總線技術(shù)的控制系統(tǒng)應(yīng)用。上位機(jī)通過CAN 卡串口與Copley 驅(qū)動(dòng)器和IO 模塊之間的通訊,來實(shí)現(xiàn)對(duì)驅(qū)動(dòng)器的數(shù)據(jù)采集與命令發(fā)送,及IO 狀態(tài)的檢測,電機(jī)位置參數(shù)采集是通過驅(qū)動(dòng)器采集光柵尺的讀數(shù)來實(shí)現(xiàn)。通過采用CME2 電機(jī)調(diào)試軟件實(shí)現(xiàn)對(duì)被控對(duì)象電機(jī)的位置環(huán)、速度環(huán)和電流環(huán)參數(shù)調(diào)試與參數(shù)設(shè)置。控制系統(tǒng)示意圖如圖3所示。
系統(tǒng)的下位機(jī)主要由Copley 驅(qū)動(dòng)器和被控對(duì)象電機(jī)以及光柵尺、IO 模塊、傳感器等組成,Copley 驅(qū)動(dòng)器模塊主要負(fù)責(zé)接受上位機(jī)程序通過CAN 卡發(fā)出控制脈沖信號(hào),并驅(qū)動(dòng)電機(jī)實(shí)現(xiàn)。電機(jī)主要實(shí)現(xiàn)上位機(jī)發(fā)來的動(dòng)作指令,光柵尺主要是測量電機(jī)運(yùn)行的事實(shí)參數(shù),并將其反饋給驅(qū)動(dòng)器,以便進(jìn)行下一步的位置參數(shù)矯正。而IO 模塊主要是檢測傳感器的狀態(tài)及控制相關(guān)的輸出點(diǎn)。
上位機(jī)通過VC 軟件來開發(fā)設(shè)計(jì)出一個(gè)全自動(dòng)設(shè)備控制系統(tǒng)應(yīng)用程序,主要用來實(shí)現(xiàn)用戶人機(jī)界面的交互,工藝參數(shù)保存讀取,圖像采集及數(shù)據(jù)處理,并通過相應(yīng)的算法來得到定位控制信號(hào),再將控制信號(hào)傳輸給下位機(jī),并實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)反饋。主要功能如圖4所示。
圖3 基于CAN 總線技術(shù)電機(jī)控制系統(tǒng)結(jié)構(gòu)示意圖
圖4 設(shè)置軟件設(shè)計(jì)的具體功能
基于VC 的CAN 總線軟件控制設(shè)計(jì)流程如圖5所示,首先打開CAN 口(過程如圖6所示)進(jìn)入工作模式,接著執(zhí)行指令調(diào)用相應(yīng)的函數(shù)來實(shí)現(xiàn)相應(yīng)的功能,完成指令需要完成的動(dòng)作,最后返回執(zhí)行情況和結(jié)果。本文中所設(shè)計(jì)的基于CAN 總線的運(yùn)動(dòng)控制系統(tǒng)已應(yīng)用于實(shí)際的LTCC 印刷線以及全自動(dòng)太陽能印刷線當(dāng)中,并取得了較好的應(yīng)用效果。
圖5 基于CAN 的軟件控制框圖
圖6 打開CAN 口過程示意圖
主要介紹了CAN 總線技術(shù)的特點(diǎn)與原理,設(shè)計(jì)了基于CAN 總線技術(shù)的運(yùn)動(dòng)控制系統(tǒng),并將其應(yīng)用于實(shí)際的LTCC 印刷線設(shè)備。由于CAN 總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,及其良好的性能和獨(dú)特的設(shè)計(jì),使它在汽車領(lǐng)域上得到了廣泛的應(yīng)用,世界上一些著名的汽車制造廠商大都采用了CAN 總線來實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。同時(shí)由于CAN 總線本身的特點(diǎn),其應(yīng)用范圍目前已不再局限于汽車行業(yè),而向自動(dòng)控制、航空航天、航海、過程控制、機(jī)械工業(yè)、機(jī)器人、數(shù)控機(jī)床、智能家庭、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展。在廣泛的工業(yè)領(lǐng)域,CAN 總線可作為現(xiàn)場設(shè)備級(jí)的通信總線,而且與其他的總線相比,具有很高的可靠性和性價(jià)比,CAN 已經(jīng)形成國際標(biāo)準(zhǔn),并已被公認(rèn)為幾種最有前途的現(xiàn)場總線之一。
[1]馬洪連,丁男,李屹璐.嵌入式系統(tǒng)設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,2006.
[2]饒?jiān)茲?,鄒繼軍,王進(jìn)宏,等.現(xiàn)場總線CAN 原理與應(yīng)用技術(shù)(第二版)[M].北京:航空航天大學(xué)出版社,2007.
[3]杜尚豐,曹曉鐘,徐津.CAN 總線測控技術(shù)及其應(yīng)用[M].電子工業(yè)出版社,2007.
[4]夏繼強(qiáng).現(xiàn)場總線工業(yè)控制網(wǎng)絡(luò)技術(shù)[M].北京:航空航天大學(xué)出版社,2005.
[5]陸前鋒,劉波,陳明昭.基于SIAlOOO 的CAN 總線智能控制系統(tǒng)設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2003,22(1):61-64.
[6]徐利梅,童明俶.現(xiàn)場總線及其在樓宇自控系統(tǒng)中的應(yīng)用[J].智能建筑與城市信息,2003(7):17-17.
[7]饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN 原理與應(yīng)用技術(shù)[M].北京:航空航天大學(xué)出版社,2003.