自動光學(xué)檢測儀通信系統(tǒng)設(shè)計
2.2 CAN總線硬件電路設(shè)計
為了保證控制系統(tǒng)的技術(shù)指標(biāo),完成實時數(shù)據(jù)處理和電路保護功能,并考慮到系統(tǒng)的擴展性,采用16位微控制器系列中的XCl64CS。該芯片尺寸小、運算速度高,并集成有TwinCAN模塊,該模塊用于控制幀的自動發(fā)送和接收。該模塊有2個全功能的CAN節(jié)點共享模塊的資源,提供32個報文對象,它們可獨立分配給2個CAN節(jié)點中的任意一個,還可以組合構(gòu)成FIFO結(jié)構(gòu)。每個報文對象分別對應(yīng)有利于濾波的驗收屏蔽寄存器。
全CAN功能和FIFO結(jié)構(gòu)的靈活組合可滿足復(fù)雜嵌入式控制應(yīng)用的實時要求。CAN總線監(jiān)控功能的增強以及報文對象個數(shù)的增加使得CAN的總線通信處理更加精確和方便。網(wǎng)關(guān)功能允許在2個獨立的CAN總線系統(tǒng)之間進行自動數(shù)據(jù)交換,減輕了CPU負載,提高了整個系統(tǒng)的實時性。2
個CAN節(jié)點的位定時都從主時鐘得到,可通過編程使數(shù)據(jù)速率達到1 Mb/s,
CAN總線收發(fā)器采用英飛凌公司的TLE6250G,支持傳送速率高達1 Mb/s,具有抗瞬變、抗射頻和抗電磁干擾的特性,并具有寬泛的工作范圍(-40~150℃),以及短路保護和過溫保護功能。具體的CAN總線節(jié)點原理圖設(shè)計如圖3所示。
另外,總線連接時兩端各加一只120 Ω的電阻,它們對于匹配總線阻抗起著相當(dāng)重要的作用,可減少信號反射干擾。
2.3 CAN總線節(jié)點軟件設(shè)計
CAN總線節(jié)點軟件設(shè)計與整個系統(tǒng)的實時性和可靠性密切聯(lián)系。本系統(tǒng)中各部分間的數(shù)據(jù)交換比較頻繁,CAN總線上傳輸的數(shù)據(jù)幀包括有:1)主機發(fā)送的控制指令幀,主機控制著整個系統(tǒng)的工作模式,通過PCB板為好板或壞板的信號來控制分揀1和分揀2的運作;2)各控制部分傳給主機的狀態(tài)信息,將正在上板中、正在出板中或者系統(tǒng)故障等消息傳給主機,方便操作人員實時了角整個系統(tǒng)信息;3)各控制部分之間的信息交換,如上板部分檢測到一批PCB板檢測完成,通知分揀部分出板的信號,任何部分檢測到故障通知報警信號等。
根據(jù)系統(tǒng)的實際情況未編寫相應(yīng)的軟件程序。這里使用的XCl64CS單片機的CAN控制器遵循CAN V2.0B規(guī)范。報文緩存單元最多保存32個報文對象,每個對象的最大數(shù)據(jù)長度為8字節(jié)。每個報文對象有一個標(biāo)識符和自己的控制和狀態(tài)位集。通過控制相應(yīng)寄存器來存放通信時發(fā)出或者接收到的數(shù)據(jù)以及報文寄存器組的設(shè)置。對報文寄存器進行初始化之后,報文緩存單元無需CPU監(jiān)控就能夠處理數(shù)據(jù)的接收和發(fā)送,簡化了軟件代碼的編寫。而CPU通過訪問CAN控制器狀態(tài)寄存器或者由CAN控制器以中斷的方式通知CPU,即可得到當(dāng)前通信狀態(tài),從而節(jié)省了CPU的占用時間。
2.3.1 CAN控制器的初始化
要實現(xiàn)CAN通信,首先要對CAN控制器進行正確初始化設(shè)置。初始化主要完成下面的工作:節(jié)點控制寄存器ACP/BCR的設(shè)定;CCE和 INIT置位;錯誤計數(shù)器最大值的設(shè)定;節(jié)點輸出管腳的設(shè)定;節(jié)點傳輸速率的設(shè)定;給節(jié)點配置發(fā)送、接收消息體。對于XCl64CS,CAN控制器的初始化可以使用DAVE進行配置,來自動生成代碼,也可以用戶自行編寫。初始化流程如圖4所示。
以下為相應(yīng)的程序代碼:本文引用地址:http://m.butianyuan.cn/article/156906.htm
評論