關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 多視覺傳感器CAN總線檢測系統(tǒng)的設計

多視覺傳感器CAN總線檢測系統(tǒng)的設計

作者: 時間:2012-03-07 來源:網絡 收藏

節(jié)點的軟件

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

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

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

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

結束語

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

風速傳感器相關文章:風速傳感器原理

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉