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