基于CAN總線的自動光學(xué)檢測通信系統(tǒng)設(shè)計
2.3.1 CAN控制器的初始化
本文引用地址:http://www.ex-cimer.com/article/264096.htm要實現(xiàn)CAN通信,首先要對CAN控制器進(jìn)行正確初始化設(shè)置。初始化主要完成下面的工作:節(jié)點控制寄存器ACP/BCR的設(shè)定;CCE和 INIT置位;錯誤計數(shù)器最大值的設(shè)定;節(jié)點輸出管腳的設(shè)定;節(jié)點傳輸速率的設(shè)定;給節(jié)點配置發(fā)送、接收消息體。對于XCl64CS,CAN控制器的初始化可以使用DAVE進(jìn)行配置,來自動生成代碼,也可以用戶自行編寫。初始化流程如圖4所示。
以下為相應(yīng)的程序代碼:
2.3.2 CAN控制器的發(fā)送和接收程序
CAN模塊初始化成功后,就可以用其來傳送報文。節(jié)點向總線上發(fā)送報文的過程是:將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式,寫入發(fā)送緩沖區(qū),并自動發(fā)送。數(shù)據(jù)幀一幀最多只能傳輸8個字節(jié),大于8個字節(jié)的按照每8個字節(jié)為一幀傳送,剩下不足8個字節(jié)的補成8個字節(jié)。可以在程序中直接調(diào)用 CAN_vTransmit函數(shù)即可實現(xiàn)發(fā)送數(shù)據(jù),該函數(shù)定義如下:
接收數(shù)據(jù)有查詢方式或中斷方式。這里采用中斷方式,要實現(xiàn)的功能是:進(jìn)入中斷接收程序,判斷中斷是否是接受中斷;若是將數(shù)據(jù)讀出緩存器并進(jìn)行判斷,再進(jìn)入相應(yīng)的命令和數(shù)據(jù)處理函數(shù)??刂破鹘邮蘸桶l(fā)送流程如圖5所示。
3 結(jié)束語
該自動光學(xué)檢測通信系統(tǒng)已經(jīng)實現(xiàn)且通過了聯(lián)調(diào),數(shù)據(jù)傳送穩(wěn)定,并已應(yīng)用于PCB板面缺陷自動光學(xué)檢測儀的控制系統(tǒng)。該自動光學(xué)檢測通信系統(tǒng)滿足可靠性和靈活性的高要求,實現(xiàn)控制系統(tǒng)各單元相對獨立,各單元之間的連線簡潔,使系統(tǒng)操作簡單,使用可靠,取得了良好的使用效果。
通信相關(guān)文章:通信原理
評論