《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 多視覺傳感器CAN總線檢測(cè)系統(tǒng)的設(shè)計(jì)
多視覺傳感器CAN總線檢測(cè)系統(tǒng)的設(shè)計(jì)
摘要: 本文主要著重于多視覺傳感器控制系統(tǒng)的設(shè)計(jì)研究,。鑒于CAN網(wǎng)絡(luò)的優(yōu)良性能,能夠快速,、可靠地交換信息,,特別適合多通訊節(jié)點(diǎn)的互連,形成多主機(jī)控制器局部網(wǎng),,實(shí)驗(yàn)表明控制系統(tǒng)能做到各個(gè)視覺傳感器的快速切換傳輸視頻圖像,,且切換時(shí)圖像抖動(dòng)小,效果好,。該系統(tǒng)具有較好的網(wǎng)絡(luò)擴(kuò)展能力,,在系統(tǒng)工作過程中靈活地增減一些傳感器節(jié)點(diǎn)不會(huì)影響系統(tǒng)工作,只需對(duì)主控軟件進(jìn)行少量修改即可,。
Abstract:
Key words :

引言 

隨著計(jì)算機(jī)技術(shù),、人工智能、光電檢測(cè),、圖像處理以及模式識(shí)別等各學(xué)科的不斷完善和互相滲透,,視覺檢測(cè)技術(shù)作為一種多領(lǐng)域、各學(xué)科交叉的技術(shù)已取得了突飛猛進(jìn)的發(fā)展,它是以機(jī)器視覺為基礎(chǔ)的新型測(cè)試技術(shù),,具有測(cè)量時(shí)非接觸,、速度快、信息量大,、應(yīng)用領(lǐng)域廣等特點(diǎn),。視覺檢測(cè)技術(shù)廣泛用于產(chǎn)品質(zhì)量在線監(jiān)測(cè),自動(dòng)巡視商店,、銀行或其他重要場(chǎng)所的安防監(jiān)視,,產(chǎn)品的標(biāo)簽文字標(biāo)識(shí)檢查,紡織印染業(yè)中的自動(dòng)分色,、配色,,大型物體三維結(jié)構(gòu)尺寸的測(cè)量,各種復(fù)雜三維表面形狀的檢測(cè),、恢復(fù)重構(gòu)以及逆向工程等很多領(lǐng)域,。視覺檢測(cè)系統(tǒng)通常是由計(jì)算機(jī)、視覺傳感器與控制系統(tǒng)三大模塊組成,。對(duì)于多視覺傳感器大型實(shí)時(shí)測(cè)量系統(tǒng),,為了讓視覺檢測(cè)系統(tǒng)快速、精確地獲得理想的圖像信息,,視覺傳感器的控制系統(tǒng)的作用尤為重要,。視覺傳感器的控制系統(tǒng)根據(jù)其使用的串行控制總線標(biāo)準(zhǔn)不同,其控制與通訊的性能將不同,。這里采用CAN (Controller Area Network) 總線作為系統(tǒng)的串行控制總線,。 

由于CAN 總線具有通訊速率高、實(shí)時(shí)性好,、帶負(fù)載能力強(qiáng),、可靠性及抗干擾能力好、總線利用率高及硬件成本低等優(yōu)點(diǎn),,非常適于大型測(cè)試系統(tǒng)控制網(wǎng)絡(luò)的通訊,。因此,本文將基于CAN 總線分布式網(wǎng)絡(luò)控制技術(shù),,介紹多視覺傳感器的實(shí)時(shí)控制方法與控制系統(tǒng)的設(shè)計(jì),。 

視覺傳感器的檢測(cè)原理與系統(tǒng)組成 

視覺檢測(cè)一般基于三角法,由攝像機(jī),、光源跟被測(cè)物體構(gòu)成測(cè)量三角,,CCD 相機(jī)把光源投射到被測(cè)物體表面的經(jīng)過調(diào)制后的三維深度信息轉(zhuǎn)換成二維圖像傳給計(jì)算機(jī)再經(jīng)由圖像處理、特征提取等恢復(fù)解調(diào)出被測(cè)物體的三維形貌信息,。如圖1 所示,,簡(jiǎn)單的結(jié)構(gòu)光視覺傳感器可由一個(gè)平面結(jié)構(gòu)光投射器L 與一個(gè)CCD 攝像機(jī)A 組成,,但當(dāng)被測(cè)物體表面曲率變化較大時(shí),有時(shí)會(huì)出現(xiàn)死區(qū)現(xiàn)象,,即光平面與物體表面的交線被旁邊的曲面遮擋,,使攝像機(jī)無法看到該交線,以致測(cè)量信號(hào)消失,。為避免由測(cè)量復(fù)雜表面物體時(shí)產(chǎn)生的死區(qū)現(xiàn)象,,可用兩個(gè)相機(jī)A 和B 對(duì)稱分布于光平面兩側(cè),接收光條的漫反射光,。本例使用波長(zhǎng)為650nm 的紅色激光器作為光源,,因其與環(huán)境光反差大,干擾小,,較易進(jìn)行圖像特征點(diǎn)的提取,,雙目視覺傳感器組成的多視覺傳感器測(cè)量系統(tǒng)為研究對(duì)象,研究其CAN 總線分布式網(wǎng)絡(luò)控制技術(shù),。  



給出了多視覺傳感器CAN 總線網(wǎng)絡(luò)控制檢測(cè)系統(tǒng)的基本組成原理,。本系統(tǒng)采用主從式結(jié)構(gòu),上位機(jī)為PC 機(jī),,下位機(jī)為8051 單片機(jī)控制單元(MCU) ,上,、下位機(jī)之間用CAN 總線進(jìn)行通訊,,由于PC 機(jī)中并不帶CAN 總線接口,因此需要一個(gè)CAN 接口卡,,這里選用USBCAN 智能接口卡來通信,,因其具有體積小、外置且即插即用等特點(diǎn),。這樣,,PC 可通過USB 總線方便地連接至CAN 總線網(wǎng)絡(luò),控制各個(gè)CAN 節(jié)點(diǎn),,進(jìn)行數(shù)據(jù)采集和處理,。 

視覺傳感器的控制電路(MCU) 主要包括視頻切換、電源供給和CAN 通訊接口三個(gè)模塊,。電源供給電路模塊提供CCD 攝像機(jī),、激光投射器與MCU的電源,并且由MCU 控制單元控制著它們的開啟與關(guān)閉,。為了避免激光投射器使用時(shí)間過長(zhǎng)導(dǎo)致激光器( 或普通照明光源) 發(fā)熱引起光能分布不穩(wěn)或視覺傳感器受熱變形從而影響測(cè)量精度,,以及延長(zhǎng)投射器的使用壽命,我們采用如下的控制方式: 當(dāng)傳感器開始測(cè)量時(shí),,先上電初始化,,再打開激光器,,測(cè)量完畢后即關(guān)閉光源電源。由于每個(gè)傳感器里面含有一到兩個(gè)CCD 相機(jī),,而任一時(shí)刻傳感器只能輸出一路視頻信號(hào),,因此需要視頻切換開關(guān)對(duì)二路視頻信號(hào)進(jìn)行自動(dòng)分時(shí)切換。

為了滿足大尺寸物體的視覺檢測(cè)需要,,充分利用CAN 總線的特點(diǎn),,使整個(gè)控制系統(tǒng)具有積木式的可擴(kuò)充能力,本控制系統(tǒng)按最少能帶64 個(gè)傳感器的負(fù)載能力進(jìn)行了設(shè)計(jì),。如果設(shè)每個(gè)視覺傳感器里面都有兩個(gè)攝像機(jī),,即最多共有128 路視頻輸入,而任一時(shí)刻系統(tǒng)只選取其中一路視頻圖像傳給計(jì)算機(jī)圖像采集卡進(jìn)行圖像采集處理,,因此在圖2 每個(gè)視覺傳感器的單路視頻輸出處,,需再加上一個(gè)多路視頻切換器,如圖3 所示,,每8 個(gè)視頻輸入1 路視頻輸出作為一個(gè)視頻信號(hào)切換單元,,實(shí)現(xiàn)8 選1 方式的視頻切換。那么按圖3 中的積木式連接方式,,9 個(gè)單元就可驅(qū)動(dòng)64 路傳感器,。每個(gè)視頻切換單元都有自己的CAN 總線接口,連接到整個(gè)控制系統(tǒng)的分布式網(wǎng)路上,,與單個(gè)傳感器控制系統(tǒng)一起協(xié)同工作,。我們采用8 選1 視頻切換為一個(gè)單元,采用積木式結(jié)構(gòu)進(jìn)行擴(kuò)充,,主要是考慮到在實(shí)際的多視覺傳感器測(cè)量系統(tǒng)中,,對(duì)于具體不同的測(cè)量對(duì)象,使用的傳感器的數(shù)目可能不同,。這種方式的最大優(yōu)點(diǎn)是可以根據(jù)使用的傳感器的多少進(jìn)行自由組合,。 

在檢測(cè)系統(tǒng)中,我們分別采用了MAXIM 公司的視頻復(fù)用放大器max4313 和max4315 進(jìn)行多路視頻信號(hào)的切換傳輸,。在雙目視覺傳感器內(nèi)部用單片機(jī)控制max4313 進(jìn)行二選一視頻切換,。max4313 和max4315 是低功耗高速多路視頻復(fù)用放大器,增益均為+ 2V/ V ,,具有通道切換速度快,、切換瞬變低、差分增益誤差低,、相位誤差小等良好的視頻特性,,本例中用±5V 的雙電源供電。由于視頻信號(hào)頻率較高,,頻帶較寬,,因此當(dāng)兩路視頻信號(hào)相距較近時(shí)容易產(chǎn)生串?dāng)_,,為了盡量減小串?dāng)_,要把數(shù)字模塊與視頻切換模塊在一個(gè)板子上分成二個(gè)區(qū)域,,以及盡可能減少視頻引線的長(zhǎng)度并注意使用75Ω 匹配電阻,,視頻引線使用帶屏蔽層的優(yōu)質(zhì)視頻同軸電纜。 

傳感器節(jié)點(diǎn)硬件接口 

傳感器節(jié)點(diǎn)控制電路的CAN 總線接口主要由微控制器,、CAN 控制器和CAN 收發(fā)器構(gòu)成,。CAN控制器實(shí)現(xiàn)了CAN 通訊中物理層和數(shù)據(jù)鏈路層的功能,提供了與微控制器和總線的物理線路接口,,這樣用戶只需編寫符合自己通訊和控制要求的應(yīng)用層協(xié)議即可,。本系統(tǒng)中微控制器使用Philips 公司的8 位增強(qiáng)型單片機(jī)P89C668 ,CAN 控制器和總線驅(qū)動(dòng)器分別采用Philips 公司的SJA1000 ,、PCA82C250 來構(gòu)成典型的CAN 通訊節(jié)點(diǎn),。  

電路的核心部分是P89C668 單片機(jī),它以80C51為內(nèi)核,,具有ISP (在系統(tǒng)編程) 和IAP (在應(yīng)用編程) 功能的片內(nèi)Flash 存儲(chǔ)器,,片內(nèi)Boot ROM 包含底層FLASH 編程子程序,可以實(shí)現(xiàn)通過串行口下載升級(jí)程序,。數(shù)顯部分用兩片74HC164 驅(qū)動(dòng)兩個(gè)共陰極數(shù)碼管以顯示選擇第幾個(gè)傳感器進(jìn)行檢測(cè)任務(wù),。,這里不再贅述,。需要注意的是,,本例中SJA1000 的12MHz 的晶振由P89C668 的外部晶振產(chǎn)生電路同時(shí)提供; 總線傳輸介質(zhì)( 這里采用雙絞線) CANH,、CANL 之間要加上120Ω的終端匹配電阻才能保證總線的正常通訊。 

傳感器節(jié)點(diǎn)的CAN總線軟件設(shè)計(jì) 

傳感器節(jié)點(diǎn)的CAN 總線軟件設(shè)計(jì)主要包括三個(gè)部分: CAN 節(jié)點(diǎn)初始化,、報(bào)文發(fā)送和報(bào)文接收,。CAN 節(jié)點(diǎn)的通訊實(shí)質(zhì)上就是對(duì)CAN 控制器內(nèi)部各寄存器進(jìn)行讀寫,由于這些寄存器或發(fā)送,、接收緩沖器均有確定的地址,,CPU 可通過外設(shè)訪問指令對(duì)它們進(jìn)行讀寫操作。CAN 總線通訊的成功與否重點(diǎn)是SJA1000 的初始化設(shè)置,,初始化程序通過將CAN 控制器的寄存器寫入控制字,,確定CAN 的工作方式。用P89C668 的P217 作為片選信號(hào)與SJA1000 的CS引腳相連,,SJA1000 的片內(nèi)寄存器和P89C668 單片機(jī)寄存器是重疊編址的,,因此SJA1000 寄存器尋址時(shí)要定義成片外RAM 尋址。 

由于視覺傳感器檢測(cè)系統(tǒng)要進(jìn)行的視覺檢測(cè)任務(wù)多為在線檢測(cè),,實(shí)時(shí)性要求較強(qiáng),,這里各傳感器節(jié)點(diǎn)采用中斷接收方式接收上位機(jī)的控制命令,,節(jié)點(diǎn)初始化后,當(dāng)收到上位機(jī)發(fā)出的一幀信息后,,判斷其報(bào)文標(biāo)志符是否符合自己的接收代碼寄存器和驗(yàn)收屏蔽寄存器的設(shè)置,,若不符則不接收,若通過則確認(rèn)為本節(jié)點(diǎn)應(yīng)收信息后裝入接收緩沖器,,SJA1000 的INT 腳會(huì)產(chǎn)生中斷信號(hào),,該信號(hào)連接到單片機(jī)P89C668 的外部中斷0 引腳,在外部中斷0中斷處理程序執(zhí)行如圖5 所示的程序流程,,讀出接收緩沖器的數(shù)據(jù)并保存在RAM 中,,并啟動(dòng)本視覺傳感器節(jié)點(diǎn)進(jìn)行測(cè)量。 



系統(tǒng)中發(fā)送報(bào)文采用查詢方式,,傳感器節(jié)點(diǎn)在收到主控機(jī)的數(shù)據(jù)請(qǐng)求命令后發(fā)送數(shù)據(jù),,發(fā)送模塊首先進(jìn)行狀態(tài)查詢,判定總線是否空閑,,如空閑,,則將目的節(jié)點(diǎn)地址寫入發(fā)送標(biāo)志符寄存器,數(shù)據(jù)寫入發(fā)送緩沖器,,完成一幀CAN 信息發(fā)送,。若同時(shí)有多個(gè)節(jié)點(diǎn)都向總線發(fā)送報(bào)文,且都符合驗(yàn)收濾波器的設(shè)置,,則報(bào)文標(biāo)識(shí)碼的二進(jìn)值越低的報(bào)文優(yōu)先級(jí)越高,,從而在總線仲裁過程中首先占據(jù)總線訪問的優(yōu)先權(quán)。系統(tǒng)軟件采用Keil C51 語言來編寫,,具有模塊化功能強(qiáng)且簡(jiǎn)潔易讀等特點(diǎn),。CAN 控制器的發(fā)送緩沖區(qū)被分為描述符區(qū)和數(shù)據(jù)區(qū)兩部分,描述符區(qū)的第一個(gè)字節(jié)是幀信息字節(jié),,它說明了幀格式(標(biāo)準(zhǔn)幀或擴(kuò)展幀) ,、遠(yuǎn)程幀或數(shù)據(jù)幀和數(shù)據(jù)的長(zhǎng)度,擴(kuò)展幀有四個(gè)字節(jié)的標(biāo)志符,,數(shù)據(jù)區(qū)最多長(zhǎng)八個(gè)數(shù)據(jù)字節(jié),,存有實(shí)際要發(fā)送的數(shù)據(jù)。本例中只用到前兩個(gè)數(shù)據(jù),,第一個(gè)表示傳感器地址,,第二個(gè)字節(jié)表示選擇傳感器里的兩路攝像機(jī)中的哪一路采集圖像。 

CAN 節(jié)點(diǎn)之間通訊成功的另一個(gè)關(guān)鍵是波特率的設(shè)置,,不僅CAN 總線上的各下位機(jī)節(jié)點(diǎn)要設(shè)置相同的波特率,,總線與上位PC 機(jī)相連的USBCAN 接口卡也要有相同的波特率,這樣才能保證通訊暢通,。由于USBCAN 接口卡內(nèi)的CAN 控制器SJA1000 用的是16MHz 的晶振,,而各傳感器節(jié)點(diǎn)內(nèi)的SJA1000與P89C668 使用12MHz 的晶振,,因此對(duì)于不同的通訊速率一定要計(jì)算出兩種晶振都相一致的總線時(shí)序寄存器BTR0 、BTR1 來設(shè)置總線波特率,。本例中使用400kbps 作為總線通訊的波特率,,效果很好。 

結(jié)束語 

本文主要著重于多視覺傳感器控制系統(tǒng)的設(shè)計(jì)研究,。鑒于CAN 網(wǎng)絡(luò)的優(yōu)良性能,,能夠快速、可靠地交換信息,,特別適合多通訊節(jié)點(diǎn)的互連,,形成多主機(jī)控制器局部網(wǎng),實(shí)驗(yàn)表明控制系統(tǒng)能做到各個(gè)視覺傳感器的快速切換傳輸視頻圖像,,且切換時(shí)圖像抖動(dòng)小,,效果好。該系統(tǒng)具有較好的網(wǎng)絡(luò)擴(kuò)展能力,,在系統(tǒng)工作過程中靈活地增減一些傳感器節(jié)點(diǎn)不會(huì)影響系統(tǒng)工作,,只需對(duì)主控軟件進(jìn)行少量修改即可。本控制系統(tǒng)的另一個(gè)特點(diǎn)是:傳感器的照明燈的電源功率大小可以由計(jì)算機(jī)通過CAN 總線由傳感器控制單元自動(dòng)調(diào)節(jié),,以適應(yīng)現(xiàn)場(chǎng)環(huán)境光強(qiáng)的變化,。本文所設(shè)計(jì)的多視覺傳感器測(cè)控系統(tǒng),可以廣泛用于各種工業(yè)現(xiàn)場(chǎng)實(shí)時(shí)在線視覺測(cè)量系統(tǒng)中,。 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。