基于CAN總線(xiàn)汽車(chē)車(chē)身視覺(jué)檢測站的研究
摘要:研究CAN總線(xiàn)和多主機控制在汽車(chē)白車(chē)身視覺(jué)監測站中的應用;提出以采用摩托羅拉MC68HC05X16和微機為主機的多主機分布式控制系統;介紹控制網(wǎng)絡(luò )的物理層接口及有關(guān)硬件,并對通信部分進(jìn)行較為詳細的研究。
本文引用地址:http://dyxdggzs.com/article/255610.htm關(guān)鍵詞:視覺(jué)檢測 三維測量 分布式控制 控制器局域網(wǎng) 數據通信
前言
汽車(chē)車(chē)身視覺(jué)檢測站是用于測量車(chē)身關(guān)鍵點(diǎn)的三維空間坐標的大型的專(zhuān)用檢測系統。它由機械及定位系統、三維視覺(jué)傳感器系統、測量控制與接口系統、標定系統以及計算機軟件五大部分組成。主要方法采用結構光傳感器,經(jīng)標定系統標定后,通過(guò)控制系統選取被測點(diǎn),采集圖像,結合視覺(jué)檢測算法,求出被測點(diǎn)坐標參數。為進(jìn)行測量,必須把計算機與傳輸器聯(lián)系起來(lái)。檢測人員應能通過(guò)計算機選擇測點(diǎn),使傳感器按預先設定的順序進(jìn)入測量狀態(tài),產(chǎn)生測量用的光條平面,還應能夠隨時(shí)調整測量順序,并實(shí)現對光源的實(shí)時(shí)控制及圖像部分的多用戶(hù)采集。
控制器局域網(wǎng)CAN(Controller Area Network)是一種具有很高保密性,有效支持分布式控制及實(shí)時(shí)控制的串行通信網(wǎng)絡(luò )。CAN總線(xiàn)屬于現場(chǎng)總線(xiàn)范疇,與現有的其他總線(xiàn)相比,屬于一種分散式、數字化、雙向、多站點(diǎn)、多變量的通信系統,具有通信速率高、可靠性強、連接方便、性能價(jià)格比高等諸多優(yōu)點(diǎn),非常適用于分布式測量系統的數據通信。
本文主要介紹CAN總線(xiàn)在視覺(jué)檢測站中的研究與應用。
二、視覺(jué)檢測原理及視覺(jué)檢測站控制系統
汽車(chē)車(chē)身視覺(jué)檢測是目前正在發(fā)展的一種新型車(chē)身檢測方法。其主要原理是利用計算機視覺(jué)技術(shù),采用主動(dòng)三角法獲取車(chē)身表面點(diǎn)的信息,通過(guò)三維視覺(jué)算法求取各關(guān)鍵點(diǎn)的坐標,從而完成對車(chē)身各頂點(diǎn)位置、擋風(fēng)玻璃框尺寸、定位孔大小及位置、車(chē)門(mén)安裝處棱邊位置及走向等主要參數的測量。
本系統中,針對不同的測量對象,采用不同類(lèi)型的傳感器,總數在50臺以上。檢測站的控制系統應能對這些傳感器的動(dòng)作進(jìn)行實(shí)時(shí)控制,以使其動(dòng)作相互協(xié)調。另外,本測量系統將用于汽車(chē)生產(chǎn)線(xiàn),車(chē)身先由吊車(chē)放到運放小車(chē)上,然后由小車(chē)運送到檢測站內。吊車(chē)及運送小車(chē)由直流電機驅動(dòng),它們的動(dòng)作應該既可以通過(guò)主機鍵盤(pán)控制,也可以通過(guò)檢測站中的控制柜直接控制。由于以上各方面的考慮,我們決定采用CAN總線(xiàn)作為本控制網(wǎng)絡(luò )的通信標準。
二、網(wǎng)絡(luò )拓撲結構與CAN總線(xiàn)
在車(chē)身檢測站中,對各傳感器的數據采集及圖像處理等工作主要由CP機完成,為操作方便,對機械部分的控制還應能通過(guò)控制臺進(jìn)行。本系統控制節點(diǎn)多(50個(gè)以上),可靠性要求高,傳統的集中控制方式雖然功能集中、速度較快,但具有硬件結構復雜、現場(chǎng)布線(xiàn)困難、擴展能力低等缺點(diǎn),所以我們采用單片機作為直接控制單元,用于對傳感器的直接控制。每個(gè)單片機都是控制網(wǎng)絡(luò )上的一個(gè)節點(diǎn),各節點(diǎn)直接掛接在數據總線(xiàn)上。PC機和控制框也同樣各和為一個(gè)節點(diǎn)掛接在總線(xiàn)上,即控制網(wǎng)絡(luò )應具有多主機控制能力。所以整個(gè)網(wǎng)絡(luò )采用多主機結構,即每一個(gè)節點(diǎn)也是一個(gè)主機,通過(guò)主機間的通信以實(shí)現控制要求。為此,我們決定采用總線(xiàn)型的網(wǎng)絡(luò )拓撲結構,利用CAN靈活方便、支持多主機方式等特點(diǎn),建立控制網(wǎng)絡(luò )。不難看出,只要解決好“碰撞”問(wèn)題,這種方法有結構簡(jiǎn)單、安全系數高、靈活性好、易于擴展等特點(diǎn),可以充分滿(mǎn)足本檢測站的控制要墳??刂凭W(wǎng)絡(luò )的結構示意圖如圖2所示。
現有微機一般都配有兩個(gè)串行接口,其機械特性和電器特性均符合RS-232C標準。由于RC-232C標準采用單端電路,極易引入附加電平,并且負載電容不能大于2500pF,傳輸距離和速度都非常有限;而CAN總線(xiàn)這些方面都遠遠超過(guò)RS-232C。CAN總線(xiàn)是一個(gè)智能化的總線(xiàn),具有自我管理的功能,能夠有效地支持多主機分布式控制,能夠良好地解決“碰撞”問(wèn)題,并具有傳輸速率高(可達1Mbps)、傳輸距離長(cháng)(可達1000m)、信號的傳輸精度高(0.01%)等優(yōu)點(diǎn)。另外,采用循環(huán)冗余CRC校驗及獨特的數據信號表示,使其具有錯誤判別及自動(dòng)重發(fā)功能,漏檢錯誤概率低于5×10 -11。所以,我們采用了CAN總線(xiàn)。由于CAN總線(xiàn)優(yōu)良的性能和智能化的管理,保證了整個(gè)檢測站在惡劣環(huán)境下的正常工作。
在信道訪(fǎng)問(wèn)控制上,采用主從式與自由競爭式相結合的放手式通信方法,即以PC主處理機和控制臺作為主控制節點(diǎn),兩主控節點(diǎn)的優(yōu)先級與節點(diǎn)標總符相對應,主控節點(diǎn)命令及信息的送可通過(guò)外部設置約定,也可通過(guò)自由競爭實(shí)現。
在PC機方面,采用接口卡使PC機跨入總線(xiàn),其接口電路如圖3所示。這里,并行接口采用8255A可編程外圍接口芯片,接口邏輯及CAN轉換主要由MC68HC05X16單片機控制。工作中,信息由PC機數據總線(xiàn)送出,經(jīng)8255A的PA口進(jìn)入單片機,在單片機的控制下將并行輸入的信號轉換為CAN總線(xiàn)輸出。這里,采用16V8的GAL進(jìn)行地址譯碼并實(shí)現部分邏輯關(guān)系。
在傳感器和控制框通信接口方面,選用了MC68HC05X16單片機。由于MC68HC05X16自身帶CAN接口,簡(jiǎn)化了硬件設計,減少了系統故障,增加了通信的可靠性與安全性。本系統硬件設計為128個(gè)節點(diǎn)(可以設計為更多),可以充分滿(mǎn)足檢測站50個(gè)節點(diǎn)的要求,并且可以進(jìn)一步擴展,加入新的檢測設備和檢測點(diǎn)。
三、CAN總線(xiàn)通信協(xié)議
針對測量系統的需要,我們采用了多主機通信方式。該方式可以充分發(fā)揮每個(gè)主機的作用,很容易使各個(gè)節點(diǎn)之間建立起數據聯(lián)系,任意兩個(gè)節點(diǎn)之間都可以根據需要進(jìn)行通信。通信與控制都非常簡(jiǎn)單,可以充分滿(mǎn)足本檢測站迅速、可靠、實(shí)時(shí)性的要求。根據檢測系統的需要和CAN幀結構,重點(diǎn)結合測量傳感器和控制柜的功能要求,我們對網(wǎng)絡(luò )的通信協(xié)議進(jìn)行了研究和設計。
四、采用CAN總線(xiàn)的過(guò)程控制軟件
根據檢測系統的需要,將指令分為通用指令和尋址指令:通用指令是旨所有收到指令的節點(diǎn)都要執行的指令;尋址指令是指收到指令的節點(diǎn)只有相應地址的節點(diǎn)才執行的指令。由于CAN總線(xiàn)標準數據幀最多可帶有8個(gè)字節的數據,們將第一個(gè)字節作為地址(127為通用的地址,帶有通用指令的數據幀第一個(gè)字節為127),第二個(gè)字節作為指令字節,用于表示節點(diǎn)所要執行的動(dòng)作。表1為本系統中所用到的部分代碼及其意義。
表1 本系統部分指令代碼
指令代碼 | 指令內容 | 指令代碼 | 指令內容 |
A1H | 系統復位 | B1H | 打開(kāi)光源 |
A2H | 開(kāi)始運載白車(chē)身 | B2H | 關(guān)閉關(guān)源 |
A3H | 白車(chē)身到位 | B3H | 打開(kāi)左攝像機 |
A4H | 遠地封鎖 | B4H | 關(guān)閉左攝像機 |
A5H | 遠地解封 | B5H | 打開(kāi)右攝像機 |
A6H | 近地封鎖 | B6H | 關(guān)閉右攝像機 |
A7H | 近地解封 | B7H | 測量結束 |
對于不同的節點(diǎn),有時(shí)有些操作應對其封鎖,甚至應禁止操作(如測量時(shí)應禁止對控制柜操作)因此,我們設立了遠地封鎖/解封及相應的近地封鎖/解封命令。封鎖后的節點(diǎn)只有解封后,才近地封鎖/解封命令。封鎖后的節點(diǎn)只有解封后,才能夠繼續執行指令。我們在每個(gè)節點(diǎn)處設立有控制開(kāi)關(guān),以便通過(guò)本地操作實(shí)現近地封鎖/解封命令。這樣,就進(jìn)一步減少了本系統的誤操作,增加了系統的安全性。圖4、圖5分別為傳感器、控制柜方面的工作流程圖。
為了能夠準確掌握各節點(diǎn)的狀態(tài),以便及時(shí)發(fā)現錯誤,并作出相應調整,在每個(gè)節點(diǎn)都設有節點(diǎn)狀態(tài)字。通過(guò)通信,可以讓節點(diǎn)報告各自的工作狀態(tài)。如出現故障或非法操作,則通過(guò)PC機報警,并且PC機定期查詢(xún)各節點(diǎn),如發(fā)現通信故障,則報警。
結束語(yǔ)
為了測試本系統的通信能力及抗干擾性,我們將通信線(xiàn)路置于強干擾環(huán)境中,經(jīng)連續測試實(shí)驗,在500m傳輸距離、2Mbps傳輸速率下,完全可以保證數據傳輸的可靠性。
本系統用新一代的現場(chǎng)總線(xiàn)控制系統FCS(Field Bus Control System)代替傳統的集散控制系統DCS(Distributed Conutrol System),實(shí)現了現場(chǎng)通信網(wǎng)絡(luò )與控制系統的集成。由于采用CAN總線(xiàn),支持多主機方式,具有非破壞性的錯誤界定。CAN沒(méi)有定義物理層的驅動(dòng)器、接收器特性,便于用戶(hù)根據具體需要對發(fā)送媒體和總線(xiàn)的電平進(jìn)行定義,使網(wǎng)絡(luò )功能十分靈活。通過(guò)軟件的編寫(xiě),可以完成十分強大的功能,并可以進(jìn)行擴展,這對于檢測站功能的進(jìn)一步完善及其他控制工作的完成,有著(zhù)十分重要的意義。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論