基于CAN總線智能節(jié)點的設(shè)計
3.1 初始化CAN控制器
C8051F550上電復(fù)位后,控制寄存器CANOCN的INIT位和CCE位置‘1’。允許寄存器初始化并寫入設(shè)置信息。需要寫入的寄存器主要包括位定時寄存器和擴(kuò)展寄存器,命令掩碼寄存器。主要完成時序參數(shù)的配置和消息對象的初始化。本設(shè)計中,使用晶振頻率為11.05MHz,位定時設(shè)置為996.65~1000ns。初始化程序如下:
3.2 CAN中斷服務(wù)程序
C8051F550的CAN支持的中斷方式有狀態(tài)中斷和模塊中斷。狀態(tài)中斷方式是在報文成功傳輸或檢測到CAN總線出錯時發(fā)生的。模塊中斷也稱消息中斷。CAN控制器允許用戶按需求配置消息對象成為中斷源。通過設(shè)置消息控制寄存器的中斷懸掛位可實現(xiàn)此功能。在CAN中斷寄存器中以最高優(yōu)先級來指向這些掛起的中斷,而不考慮時序。狀態(tài)中斷有最高優(yōu)先級,讀取狀態(tài)寄存器會自動清除狀態(tài)中斷值(8000h)。消息中斷優(yōu)先級是隨消息編號的增加而減小。消息中斷是由清除消息對象的INTPND位來清除的。中斷服務(wù)流程圖如圖3所示。
圖3 中斷服務(wù)流程
4 結(jié)束語
本系統(tǒng)的總線通信網(wǎng)絡(luò)已實現(xiàn)三個節(jié)點與上位機(jī)的連調(diào),系統(tǒng)軟件采用結(jié)構(gòu)化程序設(shè)計方案,使其具有較好的模塊化和可移植性,對于不同的系統(tǒng)功能或不同的應(yīng)用環(huán)境,可以方便地進(jìn)行編程重組。
本文設(shè)計的CAN總線通信網(wǎng)絡(luò)中的主從智能節(jié)點經(jīng)過試驗調(diào)試,硬件電路工作正常,在總線數(shù)據(jù)采集系統(tǒng)中抗干擾能力強(qiáng)。軟件部分實時性強(qiáng),準(zhǔn)確率高。從節(jié)點可以實時地將信息傳送給主節(jié)點,以便主節(jié)點實時監(jiān)控。整個節(jié)點通信系統(tǒng)工作穩(wěn)定,可以滿足現(xiàn)場環(huán)境要求。
在設(shè)計過程中,認(rèn)識到目前基于CAN2.0B協(xié)議的CAN控制器無法為實時和非實時性數(shù)據(jù)動態(tài)分配優(yōu)先權(quán),基于事件觸發(fā)模式的訪問機(jī)制無法滿足眾多節(jié)點的實時訪問。
評論