1 CAN總線通信網(wǎng)絡系統(tǒng)
如圖1所示,本設計中通過帶有終端器(120歐電阻)的通信介質(雙絞線)將上位機和底層模塊連接起來。實驗中,終端電阻和雙絞線阻抗的匹配確保了數(shù)據(jù)信號不會在總線的兩端反射。上位機(主節(jié)點)采用USB—CAN接口適配器(型號GYB507),使PC機直接通過USB接口就可連入CAN總線網(wǎng)絡,成為一個標準的CAN節(jié)點。配合總線通信測試軟件CANtool的使用,可直接配置PC機的發(fā)送與接收狀態(tài),通信速率和報文濾波功能等。同時,還可實時監(jiān)測顯示網(wǎng)絡中各從節(jié)點與PC機的數(shù)據(jù)通信,應用簡單、方便。
2 智能節(jié)點硬件設計
傳統(tǒng)的從節(jié)點設計是將CPU與CAN總線控制器和總線收發(fā)器相連后再連入總線網(wǎng)絡,這樣使CPU外圍電路復雜化,整個系統(tǒng)受外部影響較大。為了解決這一問題,很多單片機廠商都將CAN控制器集成在單片機上。本文中選用C8051F550該單片機,它是內部集成的CAN控制器,完全按照BoshchCAN全功能的CAN模塊實現(xiàn),符合CAN2.0B協(xié)議,工作位速率可達1Mpbs??刂破靼幸粋€CAN內核,消息緩沖區(qū),報文處理狀態(tài)機和CAN控制寄存器。通信控制器有32個消息對象,可以配置為發(fā)送或接收數(shù)據(jù)。輸入數(shù)據(jù),消息對象及其標識符存儲在CAN消息緩沖區(qū)中,能實現(xiàn)CAN協(xié)議的數(shù)據(jù)鏈路層的全部功能及物理層大部分功能。CIP-51CPU可通過特殊功能寄存器直接或間接訪問CAN控制寄存器(CANOCN),測試寄存器(CANOTST)和狀態(tài)寄存器(CANOSTA)。所有其它寄存器只能通過CANOADR,CANODATH和CANOTAL寄存器以地址索引方式間接訪問。
CAN總線的驅動器采用隔離CAN總線收發(fā)器CTM1050,通信速率1Mbps,至少可連接110個節(jié)點。內部集成的電氣輸入級隔離電路,可隔離高達2 500V的直流電壓。輸入級兼容3.3V和5V的CAN控制器,輸出級驅動具有溫度保護,內部TVS管可防止總線過壓功能。與傳統(tǒng)的PCA82C250總線收發(fā)器相比,主要優(yōu)點是無需外加光耦可直接使用,外圍電路簡單,安全,可滿足工業(yè)現(xiàn)場惡劣條件的使用。圖2所示為C805117550與CTM1050的接口電路。
3 智能節(jié)點軟件設計
圖1中三個節(jié)點與上位機的通信方式采用的是節(jié)點1、3與上位機實現(xiàn)點對點通信工作方式。節(jié)點1、3的微處理器C8051F550上電復位后,自動采集模擬電壓信號,通過C8051F550內部集成的12位A/D轉換,將數(shù)字量發(fā)送到上位機。上位機實時進行數(shù)據(jù)監(jiān)控,如果收到的數(shù)據(jù)出現(xiàn)錯誤,可以通過CANtool軟件,發(fā)送自定義的錯誤數(shù)據(jù)標識給兩個節(jié)點,兩節(jié)點收到該數(shù)據(jù)后,停止A/D采樣工作。節(jié)點1、3與節(jié)點2是主從工作方式。當節(jié)點2的開關量有按鍵按下時,1、3節(jié)點將實時采集到的數(shù)據(jù)在發(fā)送給節(jié)點2,并在節(jié)點2的LCD上顯示。
3.1 初始化CAN控制器
C8051F550上電復位后,控制寄存器CANOCN的INIT位和CCE位置‘1’。允許寄存器初始化并寫入設置信息。需要寫入的寄存器主要包括位定時寄存器和擴展寄存器,命令掩碼寄存器。主要完成時序參數(shù)的配置和消息對象的初始化。本設計中,使用晶振頻率為11.05MHz,位定時設置為996.65~1000ns。初始化程序如下:
3.2 CAN中斷服務程序
C8051F550的CAN支持的中斷方式有狀態(tài)中斷和模塊中斷。狀態(tài)中斷方式是在報文成功傳輸或檢測到CAN總線出錯時發(fā)生的。模塊中斷也稱消息中斷。CAN控制器允許用戶按需求配置消息對象成為中斷源。通過設置消息控制寄存器的中斷懸掛位可實現(xiàn)此功能。在CAN中斷寄存器中以最高優(yōu)先級來指向這些掛起的中斷,而不考慮時序。狀態(tài)中斷有最高優(yōu)先級,讀取狀態(tài)寄存器會自動清除狀態(tài)中斷值(8000h)。消息中斷優(yōu)先級是隨消息編號的增加而減小。消息中斷是由清除消息對象的INTPND位來清除的。中斷服務流程圖如圖3所示。
本系統(tǒng)的總線通信網(wǎng)絡已實現(xiàn)三個節(jié)點與上位機的連調,系統(tǒng)軟件采用結構化程序設計方案,使其具有較好的模塊化和可移植性,對于不同的系統(tǒng)功能或不同的應用環(huán)境,可以方便地進行編程重組。
本文設計的CAN總線通信網(wǎng)絡中的主從智能節(jié)點經(jīng)過試驗調試,硬件電路工作正常,在總線數(shù)據(jù)采集系統(tǒng)中抗干擾能力強。軟件部分實時性強,準確率高。從節(jié)點可以實時地將信息傳送給主節(jié)點,以便主節(jié)點實時監(jiān)控。整個節(jié)點通信系統(tǒng)工作穩(wěn)定,可以滿足現(xiàn)場環(huán)境要求.