控制器局域網(wǎng)CAN(Controller Area Network)是一種具有很高保密性,有效支持分布式控制及實時控制的串行通信網(wǎng)絡(luò)。CAN總線屬于現(xiàn)場總線范疇,與現(xiàn)有的其它總線相比,它屬于一種分散式、數(shù)字化、雙向、多站點、多變量的通信系統(tǒng),具有通信速率高、可靠性強、連接方便、性能價格比高等諸多優(yōu)點,非常適用于分布式測量系統(tǒng)的數(shù)據(jù)通信。
計算機視覺檢測是目前正在發(fā)展的一種新型檢測技術(shù)。汽車車身視覺檢測站是用于測量車身關(guān)鍵點三維空間坐標的大型專用檢測系統(tǒng)。其主要原理是通過視覺傳感器(Visual Sensor),采用三角法獲取車身表面點的信息,通過三維視覺算法求取各關(guān)鍵點的坐標,從而完成對車身各頂點位置、擋風(fēng)玻璃框尺寸、定位孔大小及位置、車門安裝處棱邊位置及走向等主要參數(shù)的測量。
本文結(jié)合CAN總線在汽車車身視覺檢測站中的應(yīng)用,研究了基于CAN總線的多主分布控制系統(tǒng),并對該控制網(wǎng)絡(luò)的物理層接口、拓撲結(jié)構(gòu)、通訊協(xié)議等作了較為詳細地說明。
1. 車身視覺檢測站的工作過程及控制系統(tǒng)
汽車車身視覺檢測是目前正在發(fā)展的一種新型車身檢測方法。它是由機械及定位系統(tǒng)、三維視覺傳感器系統(tǒng)、測量控制與接口系統(tǒng)、標定系統(tǒng)以及計算機軟件五大部分組成。主要方法采用視覺傳感器,經(jīng)標定系統(tǒng)標定后,通過控制系統(tǒng)選取被測點,采集圖像,結(jié)合視覺檢測算法,求出被測點坐標等參數(shù)。汽車車身長寬高都是幾米范圍,被測控制點一般都要求在50個以上,網(wǎng)絡(luò)布線要求300米以上,系統(tǒng)中針對不同的測量對象,采用了單光條傳感器、多光條傳感器、十字叉絲傳感器和雙目立體視覺傳感器等,總數(shù)在50臺以上。檢測站的控制系統(tǒng)應(yīng)能對這些傳感器的動作進行實時控制。此外控制系統(tǒng)還應(yīng)實現(xiàn)對檢測站中的機械及定位系統(tǒng)的控制。根據(jù)需要檢測站的控制系統(tǒng)應(yīng)完成以下任務(wù):
(1) 主控機實時控制各個傳感器,使其動作相互協(xié)調(diào);
(2) 自動控制白車身運載小車(用于將白車身運送到被測工位)的前進、后退、上升、下降、加速、減速等動作;
(3) 手動控制運載小車的上述各種動作;
(4) 位置傳感器能夠?qū)崟r發(fā)送白車身的位置信息。
為了實現(xiàn)系統(tǒng)控制功能,控制網(wǎng)絡(luò)主要由以下四部分構(gòu)成:
(1) 主控機:微機,它為控制系統(tǒng)的核心;
(2) 控制臺:完成手動控制運載小車、接受位置傳感器信息并發(fā)送給主控機及執(zhí)行主控機指令等功能;
(3) CAN接口卡:完成主控機信號和CAN協(xié)議標準信號之間的轉(zhuǎn)換;
(4) 傳感器控制部分:接受主控機指令,完成對傳感器的控制和向主控機發(fā)送傳感器狀態(tài)信息等功能。
系統(tǒng)中,主控機作為控制核心,負責(zé)傳感器和控制臺的管理??刂婆_既能通過執(zhí)行主控機指令控制運載小車,又能獨立控制,所以網(wǎng)絡(luò)應(yīng)具有多主機控制能力,CAN總線支持多主機方式,且能在低層解決數(shù)據(jù)碰撞問題,出于以上各方面考慮,系統(tǒng)采用CAN總線作為本控制網(wǎng)絡(luò)的通信標準。
整個系統(tǒng)控制示意圖如圖1所示。
2.CAN總線控制網(wǎng)絡(luò)
2.1 CAN總線技術(shù)簡介
CAN總線是80年代初德國Bosch公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它有效支持分布式控制或?qū)崟r控制,并采用了帶優(yōu)先級的CSMA/CD協(xié)議對總線進行仲裁,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。因此,CAN總線具有以下優(yōu)點:它可實現(xiàn)全分布式多機系統(tǒng)無主、從機之分,各節(jié)點均可主動發(fā)送報文,這樣就保證了信息處理的實時性,并使得CAN總線網(wǎng)絡(luò)可以構(gòu)成多主結(jié)構(gòu)的系統(tǒng),保證系統(tǒng)的可靠性。此外,CAN總線采用短幀結(jié)構(gòu),每幀信息都有校驗及其它檢錯措施,具有強有力的錯誤檢測功能,能自動完成出錯處理和應(yīng)答處理,保證了數(shù)據(jù)傳輸?shù)目煽啃?。基于上述?yōu)點,CAN總線非常適用于抗強干擾的大型多機控制系統(tǒng)中的網(wǎng)絡(luò)數(shù)據(jù)通信,由此將其應(yīng)用于汽車白車身尺寸激光視覺檢測站中。
2.2基于CAN的通訊網(wǎng)絡(luò)
在車身檢測站中,對各傳感器的數(shù)據(jù)采集及圖像處理等工作主要由PC機完成,為操作簡便,對機械部分的控制還應(yīng)能通過控制臺進行。本系統(tǒng)控制節(jié)點多,可靠性要求高,傳統(tǒng)的集中控制方式雖然功能集中,速度較快,但具有硬件結(jié)構(gòu)復(fù)雜(每個控制節(jié)點都對應(yīng)于一個I/O端口)、現(xiàn)場布線困難、擴展能力低(受硬件端口數(shù)量限制)、故障診斷困難等缺點。
所以采用單片機作為直接控制單元,用于對傳感器的直接控制。每個單片機都是控制網(wǎng)絡(luò)上的一個節(jié)點,各節(jié)點直接掛接在數(shù)據(jù)總線上。PC機和控制柜也同樣各作為一個節(jié)點掛接在總線上,即控制網(wǎng)絡(luò)應(yīng)具有多主機控制能力,所以整個網(wǎng)絡(luò)采用多主機結(jié)構(gòu),即每一個節(jié)點也是一個主機,通過主機之間的通訊以實現(xiàn)控制要求。為此采用總線型廣播式網(wǎng)絡(luò)拓撲結(jié)構(gòu),利用CAN靈活方便、支持多主機方式等優(yōu)點,建立控制網(wǎng)絡(luò)。不難看出,只要解決好“碰撞”問題,這種方法具有結(jié)構(gòu)簡單、安全系數(shù)高、靈活性好、易于擴展等特點,可以充分滿足本檢測站的控制要求。其結(jié)構(gòu)示意圖如圖2所示。
根據(jù)所攜帶的信息類型不同,CAN總線共有四種幀格式:數(shù)據(jù)幀、遠地幀、錯誤幀和超載幀。在本通訊系統(tǒng)中,主要用到數(shù)據(jù)幀和遠地幀。數(shù)據(jù)幀用于在發(fā)送節(jié)點到接受節(jié)點之間傳送數(shù)據(jù)??偩€上的接收節(jié)點通過發(fā)送遠地幀的方式,請求發(fā)送節(jié)點重發(fā)與該請求幀標識符相同的報文(往往因為原發(fā)報文接收出錯),遠地幀與數(shù)據(jù)幀的區(qū)別是無數(shù)據(jù)場。遠地幀的引入,使系統(tǒng)的服務(wù)請求、狀態(tài)查詢等工作得以簡化,可以通過發(fā)送遠地幀,實現(xiàn)與響應(yīng)節(jié)點的鏈路連通和數(shù)據(jù)傳輸。
本系統(tǒng)中,根據(jù)檢測系統(tǒng)的需要和CAN的幀結(jié)構(gòu),重點結(jié)合測量傳感器和控制柜的功能要求,對網(wǎng)絡(luò)的通信協(xié)議進行了研究。CAN總線采用幀格式以報文為單位進行數(shù)據(jù)傳輸,并采取位仲裁的方式對總線進行訪問,即在報文起始部分發(fā)送節(jié)點標識符。由于標識符唯一且與各節(jié)點一一對應(yīng),故通過標識符可以實現(xiàn)對網(wǎng)絡(luò)介質(zhì)的訪問控制。網(wǎng)絡(luò)節(jié)點的優(yōu)先級與節(jié)點標識符相對應(yīng),規(guī)定主控機和控制臺的優(yōu)先級最高,各傳感器的優(yōu)先級依重要性排列,以保證網(wǎng)絡(luò)的傳輸效率最高。
由于CAN總線標準數(shù)據(jù)幀的仲裁場有11位標識符,它主要用于解決總線上的碰撞問題,數(shù)據(jù)幀標識符越小,其優(yōu)先權(quán)越高。即當兩幀數(shù)據(jù)同時由高位向低位發(fā)送時,一旦有不同的電平,發(fā)送“凹槽”電平的數(shù)據(jù)幀將停止發(fā)送。這樣,CAN總線自身就解決了數(shù)據(jù)碰撞問題。系統(tǒng)中,每個節(jié)點設(shè)立一個8位DIP開關(guān),通過它可以方便的改變傳感器單元地址,并且,以它代表的數(shù)據(jù)作為該節(jié)點發(fā)送的數(shù)據(jù)幀的標識符的高8位。從而,依據(jù)節(jié)點的重要性安排其地址,有效的解決了碰撞和優(yōu)先權(quán)問題。
PC機方面,是采用接口卡使PC機接入CAN總線,通過PC機與內(nèi)部帶有支持CAN協(xié)議接口的單片機MC68HC05X16進行通訊,然后由單片機與總線通訊,最終實現(xiàn)PC機與總線通訊。其接口電路如圖3所示。
采用16V8的GAL進行地址譯碼。并設(shè)有撥碼開關(guān),可進行地址段選擇。8255工作于方式2,A口作為雙向輸入口,C口的IBFA、STBA、ACKA和OBFA作為A口控制口,分別與MC68HC05X16的四個I/O口PB3~PB6相連。單片機通過查詢接收PA口數(shù)據(jù)。從CAN總線傳來的數(shù)據(jù)經(jīng)過單片機轉(zhuǎn)換后,由IRQ2向PC機申請中斷,中斷過程負責(zé)數(shù)據(jù)接收。MC68HC05X16單片機工作流程如圖4所示:
在信道訪問方式的控制上,采用主從式與自由競爭式相結(jié)合的通信方式,即以PC機和控制臺作為主控節(jié)點,兩主控節(jié)點的優(yōu)先級與節(jié)點標識符相對應(yīng),主控節(jié)點命令及信息的發(fā)送可通過外部設(shè)置約定,也可通過自由競爭實現(xiàn)。
圖4 CAN接口轉(zhuǎn)換卡工作流程圖
3.結(jié)語
調(diào)試期間,為了測試系統(tǒng)的抗干擾能力,將上述通信網(wǎng)絡(luò)系統(tǒng)置于強干擾環(huán)境中,經(jīng)連續(xù)試驗,在1000m距離,1Mbps傳輸速率下,完全可以保證數(shù)據(jù)的可靠傳輸。
本系統(tǒng)利用CAN總線實時性、靈活性好等特點,較好的解決了在強干擾環(huán)境中大型自動檢測系統(tǒng)的數(shù)據(jù)通信可靠性問題。同時,由于采用多主機分布式控制結(jié)構(gòu),使網(wǎng)絡(luò)功能十分靈活,通過軟件的編寫,可以完成十分強大的功能,并可以進行擴展,這對于檢測站功能的進一步完善及其它控制工作的完成,有著十分重要的意義。