基于CAN總線多視覺傳感器測(cè)控系統(tǒng)的設(shè)計(jì)
Init_Can(void)
{MODE=0x09;file://進(jìn)入復(fù)位模式,對(duì)SJA1000進(jìn)行初始化;
CDR=0x88;file://選擇PeliCan;
CMR=0x0C;file://清除數(shù)據(jù)溢出和釋放接收緩沖器;
IER=0x03;file://開放接收中斷和發(fā)送中斷;
ACR0=0x66;
ACR1=0x66;
ACR2=0x66;
ACR3=0x66;file://根據(jù)具體的協(xié)議定義設(shè)置驗(yàn)收碼寄存器;
AMR0=0xFF;
AMR1=0xFF;
AMR2=0xFF;
AMR3=0xFF;file://根據(jù)具體的協(xié)議定義設(shè)置驗(yàn)收屏蔽寄存器;
BTR0=0x41;
BTR1=0x1B;file://12MHz晶振下,設(shè)置波特率為200kbps;
OCR=0XAA;
EWLR=0x60;
RBSA=0x00;file://RX緩存器起始地址寄存器設(shè)置為0;
TXERR=0x00;file://發(fā)送錯(cuò)誤接收器設(shè)置為0;
ECC=0x00;
MODE=0x08;file://單向?yàn)V波方式,進(jìn)入正常模式,初始化完畢;
由于視覺傳感器測(cè)控系統(tǒng)要進(jìn)行視覺檢測(cè)多為在線檢測(cè),實(shí)時(shí)性要求較強(qiáng),這里各傳感器節(jié)點(diǎn)采用中斷接收方式接收上位機(jī)的控制命令,節(jié)點(diǎn)初始化后,當(dāng)一幀信息經(jīng)過出錯(cuò)檢測(cè)確認(rèn)為正確信息后裝入接收緩沖器,SJA1000的INT腳會(huì)產(chǎn)生中斷信號(hào),該信號(hào)連接到單片機(jī)P89C668的外邊中斷0引腳,在外部中斷0中斷處理程序中判別該信息的標(biāo)志符如果是本節(jié)點(diǎn)地址,便讀出接收緩沖器的數(shù)據(jù)并保存在RAM中,中斷接收程序框圖如下:
系統(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ā)送。
CAN信息格式分為信息和數(shù)據(jù)兩部分,頭兩個(gè)字節(jié)是信息部分,其前11位為標(biāo)志符,標(biāo)志符的前八位用作接收判斷,應(yīng)包含本信息包的目的節(jié)點(diǎn)地址,然后是一位RTR位(0為數(shù)據(jù)幀,1為遠(yuǎn)程幀,本例使用數(shù)據(jù)幀),最后是四位的DLC。其余八個(gè)字節(jié)為是數(shù)據(jù)部分,存有實(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用的是16M晶振,而各傳感器節(jié)點(diǎn)內(nèi)的 SJA1000與P89C668使用12M晶振,因此對(duì)于不同的通訊速率一定要計(jì)算出兩種晶振都相一致的BTR0、BTR1來設(shè)置總線波特率。
6結(jié)束語
本文主要著重于多視覺傳感器控制系統(tǒng)的設(shè)計(jì)研究,目前系統(tǒng)軟硬件已初步調(diào)試完成,并能做到各個(gè)視覺傳感器的快速切換傳輸視頻圖像,且切換是圖像抖動(dòng)較小,效果較好。在系統(tǒng)應(yīng)用于視覺檢測(cè)之前還必須對(duì)各視覺傳感器進(jìn)行標(biāo)定以及系統(tǒng)的總體標(biāo)定,系統(tǒng)標(biāo)定完成后即可投入使用。本系統(tǒng)的精度主要由硬件決定,選用高精度、高分辨力的CCD攝像機(jī)和激光器,激光器投射出的線結(jié)構(gòu)光越細(xì)光強(qiáng)分布越均勻,則測(cè)量精度越高。測(cè)量精度高必然導(dǎo)致測(cè)量視場(chǎng)范圍小,而傳感器有效視場(chǎng)大小又與相機(jī)同激光器的擺放夾角以及攝像機(jī)的內(nèi)部參數(shù)有關(guān),限于篇幅這里不再贅述。
鑒于CAN網(wǎng)絡(luò)的優(yōu)良性能,能夠快速、可靠的交換信息,特別適合多通訊節(jié)點(diǎn)的互連,形成多主機(jī)控制器局部網(wǎng)。本文探索了它在多視覺傳感器測(cè)控系統(tǒng)上的控制應(yīng)用,本視覺系統(tǒng)不僅要有較好的網(wǎng)絡(luò)擴(kuò)展能力,在系統(tǒng)工作過程中增減一些傳感器節(jié)點(diǎn)不會(huì)影響系統(tǒng)工作,只需對(duì)軟件進(jìn)行少量修改即可,針對(duì)不同測(cè)量目標(biāo),視覺傳感器里的激光器還可以換成鹵素?zé)簦▊鞲衅麟娐分蓄A(yù)先留有電源接口),這樣系統(tǒng)可很方便地面對(duì)不同測(cè)量任務(wù)。CAN總線驅(qū)動(dòng)能力強(qiáng)、網(wǎng)絡(luò)性能恰好,能滿足不同測(cè)量系統(tǒng)的要求,系統(tǒng)節(jié)點(diǎn)數(shù)可靈活調(diào)整而不影響系統(tǒng)的可靠性。CAN總線網(wǎng)絡(luò)性價(jià)比較高,可移植性強(qiáng),本文所設(shè)計(jì)的多視覺傳感器測(cè)控系統(tǒng),已經(jīng)成功應(yīng)用于汽車車身在線視覺檢測(cè),而且稍作修改后能夠適用于工業(yè)自動(dòng)化領(lǐng)域中其他測(cè)量控制系統(tǒng)。
評(píng)論