<var id="1fxxl"><span id="1fxxl"></span></var><cite id="1fxxl"><span id="1fxxl"></span></cite>
<cite id="1fxxl"></cite>
<ins id="1fxxl"></ins>
<var id="1fxxl"><span id="1fxxl"></span></var>
<cite id="1fxxl"></cite>
<ins id="1fxxl"></ins>
<var id="1fxxl"></var><var id="1fxxl"></var>
<cite id="1fxxl"><video id="1fxxl"></video></cite>
<ins id="1fxxl"></ins>
<ins id="1fxxl"></ins>
<var id="1fxxl"><span id="1fxxl"></span></var>
<menuitem id="1fxxl"><strike id="1fxxl"><thead id="1fxxl"></thead></strike></menuitem>
<var id="1fxxl"></var><cite id="1fxxl"><video id="1fxxl"></video></cite>
<cite id="1fxxl"><span id="1fxxl"></span></cite>

中自網

熱門搜索:plc  工業以太網  變頻器  PID  電機  低壓  傳感器  無線通訊 

當前位置:首頁>>論文首頁>>解決方案>>正文

一種多視覺傳感器控制系統的實現

發布日期:2011-09-24   瀏覽次數:35321
分享到:
【摘   要】:結構光傳感器是應用較早、發展較成熟的視覺傳感器,因此本系統采用結構光傳感器來采集圖像并經圖像采集卡送給計算機處理。由于視覺傳感器在視覺測量中擔負著視頻圖像信號(測量數據)的采集、切換與傳輸。因此,如何讓視覺傳感器測控系統快速、精確地獲得理想的視頻圖像信息,進而為后期的圖像處理提供可靠的支持,亦即視覺傳感器的測控系統的設計顯得尤為重要。


1 引言
結構光傳感器是應用較早、發展較成熟的視覺傳感器,因此本系統采用結構光傳感器來采集圖像并經圖像采集卡送給計算機處理。由于視覺傳感器在視覺測量中擔負著視頻圖像信號(測量數據)的采集、切換與傳輸。因此,如何讓視覺傳感器測控系統快速、精確地獲得理想的視頻圖像信息,進而為后期的圖像處理提供可靠的支持,亦即視覺傳感器的測控系統的設計顯得尤為重要。
2 視覺系統的概述
視覺檢測系統中采集被測物體圖像的視覺傳感器有單目和雙目兩種之分,本測控系統可以使用單目視覺傳感器也可以使用雙目視覺傳感器來采集數據,本文主要討論由多個雙目視覺傳感器組成的多視覺傳感器測控系統,其中的每個視覺傳感器采用的是目前技術已經比較成熟的線結構光視覺傳感器,其結構是由雙CCD攝像機、一個激光投射器和一塊MCU控制電路組成,基于立體視差原理,利用兩臺攝像機來模仿實現人眼的功能,利用空間點在兩攝像機像面上的透視或像點坐標來求取空間點的三維坐標。當被測工件較大需要不止一個視覺傳感器時,上述多個視覺傳感器加上多路視頻切換開關就構成了多視覺傳感器測控系統。如對汽車車身上的很多特征點進行檢測時,就需要幾十甚至上百個傳感器來測量,由于控制器局部網CAN(controller area network)總線具有很強的帶負載能力,一個CAN網絡上最多能接110個節點,所以本系統采用CAN總線進行通訊和網絡控制。

視覺傳感器中MCU控制電路提供CCD攝像機、激光投射器的電源并且控制著它們的開啟與關閉,為避免激光投射器使用時間過長激光器發熱引起線結構光光能分布不穩從而影響測量精度,當傳感器開始測量時,先上電初始化,再打開激光器,測量完畢后即關閉以延長投射器壽命。
本系統中,上位機為PC機,下位機為8051單片機控制單元,上、下位機之間用CAN總線進行通訊,由于PC機中并不帶CAN總線接口,因此必需一個CAN接口卡,這里選用廣州周立功公司的USBCAN智能接口卡來通信,因其具有體積小、外置且即插即用等特點。這樣,PC可通過USB總線方便地連接至CAN總線網絡控制各個CAN節點進行數據采集和處理。USBCAN智能CAN接口卡可以與ZLGCANTest通用CAN-bus測試軟件連接運行,執行CAN-bus總線數據的接收、發送測試任務,較易于實現CAN-bus產品開發和數據分析。USBCAN智能CAN接口卡采用周立功公司提供的通用的ZLGVCI驅動庫,支持WIN98、2000和XP操作系統并支持Linux平臺。用戶通過接口卡提供的ZLGVCI動態開發庫可以方便快捷的開發出CAN系統應用產品。為了把模擬CCD相機輸出的被測物體的模擬視頻圖像轉換成數字信號并由計算機進行處理,這里采用了北京大恒圖像公司的CG400型圖像采集卡,其采用PCI總線,所采集的圖像數據傳輸基本不占用CPU時間,并可將圖像直接傳送的計算機內存或顯存。
3 CAN總線簡介
CAN總線是德國BOSCH公司從80年代初為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行數據通信協議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。通信速率可達1Mbps。CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢驗、優先級判別等項工作。CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊進行編碼。采用這種方法的優點可使網絡內的節點個數在理論上不受限制,數據塊的標識碼可由11位或29位二進制數組成,因此可以定義211或229個不同的數據塊,這種按數據塊編碼的方式,還可使不同的節點同時接收到相同的數據,這一點在分布式控制系統中非常有用。數據段長度最多為8個字節,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8個字節不會占用總線時間過長,從而保證了通信的實時性。CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。CAN卓越的特性、極高的可靠性和獨特的設計,特別適合工業過程監控設備的互連,因此,越來越受到工業界的重視,并已公認為最有前途的現場總線之一。
為了滿足大尺寸物體的三維輪廓的檢測,本系統要求最少能帶64個傳感器,每個視覺傳感器里有兩個攝像機,即共有128路視頻輸入,而任一時刻系統只選取其中一路視頻圖像傳給計算機進行圖像采集處理,如對汽車車身周圍布置了幾十個傳感器來檢測車身上關鍵尺寸如擋風玻璃窗尺寸、車門安裝棱邊縫隙、定位孔位置,測量其相應的棱邊、孔表面的空間位置尺寸。視覺傳感器可以按要求順序進行工作,也可以選取被測對象的特定點并通過CAN控制網絡選擇特定傳感器來檢測,計算機采集檢測點圖像并進行處理,將計算值與標準值比對,從而得出視覺檢測的結果。
4 多視覺傳感器的控制設計
視覺傳感器的控制電路主要包括視頻切換、電源供給和CAN通訊接口三個部分。每個傳感器里有兩個CCD相機,即能同時采集兩路視頻輸入,但任一時刻傳感器只能輸出一路視頻信號,這里采用MAXIM公司的視頻復用放大器max4313和max4315進行多路視頻信號的切換傳輸,傳感器內部用單片機控制max4313進行二選一視頻切換,系統中多個傳感器之間通過多個八選一視頻切換芯片max4315的級連來實現多視覺傳感器的切換選擇。多路視頻切換開關電路能很好實現這一功能,P89C668單片機的P2口的三跟地址線控制max4315的三個地址端決定切換哪一路通道的視頻信號。max4313和max4315是低功耗高速多路視頻復用放大器,具有通道切換速度快(40ns)、切換瞬變低(10mVp-p)、差分增益誤差低(0.06%)、相位誤差小(0.02度)等良好的視頻特性,工作在+4~+10.5V的單電源(雙電源正負2V~正負5.25V),本例中工作在正負5V的雙電源下,為了減少干擾與傳感器內部空間安裝方便,電源電路與控制電路分開制作,分別放在投射器二邊。由于視頻信號頻率較高,頻帶較寬,因此當兩路視頻信號相距較近要注意干擾問題,時,容易產生串擾,為了盡量減小串擾,電路設計時應注意以下幾點:要把數字模塊與視頻切換模塊在一個板子上分成二個區域,以及盡可能減少視頻引線的長度并注意使用75歐姆匹配電阻,視頻引線要使用帶屏蔽層的視頻同軸電纜(75歐姆阻抗)。
5 CAN總線通訊
CAN總線是一個多主站現場總線,各節點都有權向其他節點發送信息,其協議簡單,實時性強,可靠性及抗干擾能力好,總線利用率高,硬件成本低。主要特點如下:
1)CAN總線的任一節點在任一時刻都主動向網絡上其他節點發送數據而不分主從,通過優先級確定總線為哪一節點所占用,通信靈活。
2)CAN總線上的節點可通過設置分為不同的優先級,用來滿足不同的實時性要求。
3)CAN總線采用非破壞性總線仲裁,當多個節點同時向總線發送數據時,優先級低的節點主動停止發送數據,退出競爭,而優先級高的節點將擁有總線使用權,繼續發送數據。
4)CAN總線具有點對點,一點對多點及全局廣播等多種數據通訊傳送方式。
5)節點間通訊位速率與節點間距離有關,總線最遠通訊距離為10km,此時通訊速率為5kbps,最大通訊速率能達到1Mbps(通訊距離40m內)。
6)可根據報文的ID決定接收或屏蔽該報文,發送的報文遭到破壞后可自動重發。
7)可靠的錯誤處理和檢錯機制,節點在錯誤嚴重的情況下具有自動退出總線的功能。
8)報文不包含源地址和目標地址,僅用報文標志符來來指示功能信息和優先級信息。
5.1 CAN節點硬件接口
CAN總線接口硬件部分主要由微控制器、CAN控制器和CAN收發器構成。CAN控制器實現了CAN通訊中物理層和數據鏈路層的功能,提供了與微控制器和總線的物理線路接口,這樣用戶只需編寫符合自己通訊和控制要求的應用層協議即可。本系統中微控制器使用Philips公司的8位增強型單片機P89C668,CAN控制器和總線驅動器用的分別是Philips公司的SJA1000、PCA82C250來構成典型的CAN通訊節點。其硬件電路圖如圖3所示:
電路的核心部分是P89C668單片機,它以80C51為內核,具有ISP(在系統編程)和IAP(在應用編程)功能的片內Flash存儲器,片內Boot ROM包含底層FLASH編程子程序,以實現通過串行口下載升級程序,擁有8K字節RAM(可外擴到64K)和64K字節FLASH ,還有4個中斷優先級、8個中斷源和4個8位I/O口,可方便地進行各種片內操作和片外擴展。CAN控制器相對于微控制器來說相當于一個存儲器I/O映象設備,SJA1000片內有模式寄存器、狀態寄存器、命令寄存器、中斷寄存器和收、發寄存器等。單片機就是通過讀寫這些寄存器來實現對SJA1000的控制,芯片的TX0、TX1、RX0、RX1引腳用于CAN總線的接口,SJA1000的12M晶振由P89C668的外部晶振產生電路同時提供;PCA82C250是控制器與物理總線的接口,可提供對總線的差動發送和接收功能,其TXD、RXD引腳分別接收和發送經驅動后的信號,再由CANH、CANL接至總線傳輸介質(這里采用雙絞線)上,同時還要注意CANH、CANL之間要加上120歐姆的終端匹配電阻才能保證總線的正常通訊。
5.2 CAN節點的軟件設計
CAN總線智能節點的軟件設計主要包括三個部分:CAN節點初始化、報文發送和報文接收。CAN節點的通訊實質上就是對CAN控制器內部各寄存器進行讀寫,由于這些寄存器或發送、接收緩沖器均有確定的地址,CPU可通過外設訪問指令對它們進行讀寫操作。系統上電復位后,CPU對SJA1000的各個控制寄存器寫入相應控制字信息,以完成CAN控制器的初始化。本例中,系統軟件采用結構化程序設計方法,程序具有較好的模塊性和可移植性,對于不同的檢測系統和應用環境,可以方便地進行程序重組。編程語言采用單片機C語言Keil C51,它具有較高的效率,可讀性好,能夠有效減輕系統軟件編程的工作量。
CAN總線通訊的成功與否重點是SJA1000的初始化設置,初始化程序通過將CAN控制器的寄存器寫入控制字,確定CAN的工作方式。用P89C668的P2.7作為片選信號與SJA1000的CS引腳相連,SJA1000的片內寄存器和P89C668單片機寄存器是重疊編址的,因此SJA1000寄存器尋址時要定義成片外RAM尋址。下面給出了CAN節點的初始化程序:
Init_Can (void)
{ MODE = 0x09; file://進入復位模式,對SJA1000進行初始化;
CDR = 0x88; file://選擇PeliCan;
CMR = 0x0C; file://清除數據溢出和釋放接收緩沖器;
IER = 0x03; file://開放接收中斷和發送中斷;
ACR0 = 0x66;
ACR1 = 0x66;
ACR2 = 0x66;
ACR3 = 0x66; file://根據具體的協議定義設置驗收碼寄存器;
AMR0 = 0xFF;
AMR1 = 0xFF;
AMR2 = 0xFF;
AMR3 = 0xFF; file://根據具體的協議定義設置驗收屏蔽寄存器;
BTR0 = 0x41;
BTR1 = 0x1B; file://12MHz晶振下,設置波特率為200kbps;
OCR = 0XAA;
EWLR =0x60;
RBSA = 0x00; file://RX緩存器起始地址寄存器設置為0;
TXERR= 0x00; file://發送錯誤接收器設置為0;
ECC =0x00; ?
MODE= 0x08; file://單向濾波方式,進入正常模式,初始化完畢;
由于視覺傳感器測控系統要進行視覺檢測多為在線檢測,實時性要求較強,這里各傳感器節點采用中斷接收方式接收上位機的控制命令,節點初始化后,當一幀信息經過出錯檢測確認為正確信息后裝入接收緩沖器,SJA1000的INT腳會產生中斷信號,該信號連接到單片機P89C668的外邊中斷0引腳,在外部中斷0中斷處理程序中判別該信息的標志符如果是本節點地址,便讀出接收緩沖器的數據并保存在RAM中,中斷接收程序框圖如下:
系統中發送報文采用查詢方式,傳感器節點在收到主控機的數據請求命令后發送數據,發送模塊首先進行狀態查詢,判定總線是否空閑,如空閑,則將目的節點地址寫入發送標志符寄存器,數據寫入發送緩沖器,完成一幀CAN信息發送。
CAN信息格式分為信息和數據兩部分,頭兩個字節是信息部分,其前11位為標志符,標志符的前八位用作接收判斷,應包含本信息包的目的節點地址,然后是一位RTR位(0為數據幀,1為遠程幀,本例使用數據幀),最后是四位的DLC。其余八個字節為是數據部分,存有實際要發送的數據。本例中只用到前兩個數據,第一個表示傳感器地址,第二個字節表示選擇傳感器里的兩路攝像機中的哪一路
 
 
[ 論文搜索 ]  [ ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關閉窗口 ]  [ 返回頂部 ]

0條 [查看全部]  網友評論

 
ThePornDude