《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于C8051F550的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)
基于C8051F550的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)
摘要: CAN總線最早是德國的BOSCH公司為解決汽車的監(jiān)測(cè),,控制系統(tǒng)而設(shè)計(jì)的?,F(xiàn)在,已由汽車行業(yè)擴(kuò)展到過程工業(yè),,機(jī)械工業(yè),,機(jī)器人和樓宇自動(dòng)化等領(lǐng)域,。總結(jié)各個(gè)領(lǐng)域中的應(yīng)用實(shí)例,,CAN通信設(shè)計(jì)的關(guān)鍵在于各個(gè)通信模塊的設(shè)計(jì)與實(shí)現(xiàn),。通信信號(hào)一般有模擬量輸入/輸出(電壓電流采集模塊),,開關(guān)量輸入\輸出,數(shù)字量輸入\輸出(如計(jì)數(shù)器模塊)等,。本文重點(diǎn)就模擬量輸入模塊和開關(guān)量輸入模塊的設(shè)計(jì),,采用具有CAN接口的C8051F550單片機(jī)作為系統(tǒng)設(shè)計(jì)的從節(jié)點(diǎn),用來采集模擬量和開關(guān)量,,實(shí)現(xiàn)與上位機(jī)中央控制器的通信,。
Abstract:
Key words :
  CAN總線最早是德國的BOSCH公司為解決汽車的監(jiān)測(cè),控制系統(tǒng)而設(shè)計(jì)的?,F(xiàn)在,,已由汽車行業(yè)擴(kuò)展到過程工業(yè),機(jī)械工業(yè),,機(jī)器人和樓宇自動(dòng)化等領(lǐng)域,。總結(jié)各個(gè)領(lǐng)域中的應(yīng)用實(shí)例,,CAN通信設(shè)計(jì)的關(guān)鍵在于各個(gè)通信模塊的設(shè)計(jì)與實(shí)現(xiàn),。通信信號(hào)一般有模擬量輸入/輸出(電壓電流采集模塊),開關(guān)量輸入\輸出,,數(shù)字量輸入\輸出(如計(jì)數(shù)器模塊)等,。本文重點(diǎn)就模擬量輸入模塊和開關(guān)量輸入模塊的設(shè)計(jì),采用具有CAN接口的C8051F550單片機(jī)作為系統(tǒng)設(shè)計(jì)的從節(jié)點(diǎn),,用來采集模擬量和開關(guān)量,,實(shí)現(xiàn)與上位機(jī)中央控制器的通信。

  1 CAN總線通信網(wǎng)絡(luò)系統(tǒng)

  如圖1所示,,本設(shè)計(jì)中通過帶有終端器(120歐電阻)的通信介質(zhì)(雙絞線)將上位機(jī)和底層模塊連接起來,。實(shí)驗(yàn)中,終端電阻和雙絞線阻抗的匹配確保了數(shù)據(jù)信號(hào)不會(huì)在總線的兩端反射,。上位機(jī)(主節(jié)點(diǎn))采用USB—CAN接口適配器(型號(hào)GYB507),,使PC機(jī)直接通過USB接口就可連入CAN總線網(wǎng)絡(luò),成為一個(gè)標(biāo)準(zhǔn)的CAN節(jié)點(diǎn),。配合總線通信測(cè)試軟件CANtool的使用,,可直接配置PC機(jī)的發(fā)送與接收狀態(tài),通信速率和報(bào)文濾波功能等,。同時(shí),,還可實(shí)時(shí)監(jiān)測(cè)顯示網(wǎng)絡(luò)中各從節(jié)點(diǎn)與PC機(jī)的數(shù)據(jù)通信,應(yīng)用簡(jiǎn)單,、方便,。

a.jpg

  2 智能節(jié)點(diǎn)硬件設(shè)計(jì)

  傳統(tǒng)的從節(jié)點(diǎn)設(shè)計(jì)是將CPU與CAN總線控制器和總線收發(fā)器相連后再連入總線網(wǎng)絡(luò),這樣使CPU外圍電路復(fù)雜化,,整個(gè)系統(tǒng)受外部影響較大,。為了解決這一問題,,很多單片機(jī)廠商都將CAN控制器集成在單片機(jī)上。本文中選用C8051F550該單片機(jī),,它是內(nèi)部集成的CAN控制器,,完全按照BoshchCAN全功能的CAN模塊實(shí)現(xiàn),符合CAN2.0B協(xié)議,,工作位速率可達(dá)1Mpbs,。控制器包含有一個(gè)CAN內(nèi)核,,消息緩沖區(qū),,報(bào)文處理狀態(tài)機(jī)和CAN控制寄存器。通信控制器有32個(gè)消息對(duì)象,,可以配置為發(fā)送或接收數(shù)據(jù),。輸入數(shù)據(jù),消息對(duì)象及其標(biāo)識(shí)符存儲(chǔ)在CAN消息緩沖區(qū)中,,能實(shí)現(xiàn)CAN協(xié)議的數(shù)據(jù)鏈路層的全部功能及物理層大部分功能,。CIP-51CPU可通過特殊功能寄存器直接或間接訪問CAN控制寄存器(CANOCN),測(cè)試寄存器(CANOTST)和狀態(tài)寄存器(CANOSTA),。所有其它寄存器只能通過CANOADR,,CANODATH和CANOTAL寄存器以地址索引方式間接訪問。

  CAN總線的驅(qū)動(dòng)器采用隔離CAN總線收發(fā)器CTM1050,,通信速率1Mbps,,至少可連接110個(gè)節(jié)點(diǎn)。內(nèi)部集成的電氣輸入級(jí)隔離電路,,可隔離高達(dá)2 500V的直流電壓,。輸入級(jí)兼容3.3V和5V的CAN控制器,輸出級(jí)驅(qū)動(dòng)具有溫度保護(hù),,內(nèi)部TVS管可防止總線過壓功能,。與傳統(tǒng)的PCA82C250總線收發(fā)器相比,主要優(yōu)點(diǎn)是無需外加光耦可直接使用,,外圍電路簡(jiǎn)單,安全,,可滿足工業(yè)現(xiàn)場(chǎng)惡劣條件的使用,。圖2所示為C805117550與CTM1050的接口電路。

b.jpg

  3 智能節(jié)點(diǎn)軟件設(shè)計(jì)

  圖1中三個(gè)節(jié)點(diǎn)與上位機(jī)的通信方式采用的是節(jié)點(diǎn)1,、3與上位機(jī)實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信工作方式,。節(jié)點(diǎn)1、3的微處理器C8051F550上電復(fù)位后,,自動(dòng)采集模擬電壓信號(hào),,通過C8051F550內(nèi)部集成的12位A/D轉(zhuǎn)換,,將數(shù)字量發(fā)送到上位機(jī)。上位機(jī)實(shí)時(shí)進(jìn)行數(shù)據(jù)監(jiān)控,,如果收到的數(shù)據(jù)出現(xiàn)錯(cuò)誤,,可以通過CANtool軟件,發(fā)送自定義的錯(cuò)誤數(shù)據(jù)標(biāo)識(shí)給兩個(gè)節(jié)點(diǎn),,兩節(jié)點(diǎn)收到該數(shù)據(jù)后,,停止A/D采樣工作。節(jié)點(diǎn)1,、3與節(jié)點(diǎn)2是主從工作方式,。當(dāng)節(jié)點(diǎn)2的開關(guān)量有按鍵按下時(shí),1,、3節(jié)點(diǎn)將實(shí)時(shí)采集到的數(shù)據(jù)在發(fā)送給節(jié)點(diǎn)2,,并在節(jié)點(diǎn)2的LCD上顯示。

  3.1 初始化CAN控制器

  C8051F550上電復(fù)位后,,控制寄存器CANOCN的INIT位和CCE位置‘1’,。允許寄存器初始化并寫入設(shè)置信息。需要寫入的寄存器主要包括位定時(shí)寄存器和擴(kuò)展寄存器,,命令掩碼寄存器,。主要完成時(shí)序參數(shù)的配置和消息對(duì)象的初始化。本設(shè)計(jì)中,,使用晶振頻率為11.05MHz,,位定時(shí)設(shè)置為996.65~1000ns。初始化程序如下:

c.jpg

  3.2 CAN中斷服務(wù)程序

  C8051F550的CAN支持的中斷方式有狀態(tài)中斷和模塊中斷,。狀態(tài)中斷方式是在報(bào)文成功傳輸或檢測(cè)到CAN總線出錯(cuò)時(shí)發(fā)生的,。模塊中斷也稱消息中斷。CAN控制器允許用戶按需求配置消息對(duì)象成為中斷源,。通過設(shè)置消息控制寄存器的中斷懸掛位可實(shí)現(xiàn)此功能,。在CAN中斷寄存器中以最高優(yōu)先級(jí)來指向這些掛起的中斷,而不考慮時(shí)序,。狀態(tài)中斷有最高優(yōu)先級(jí),,讀取狀態(tài)寄存器會(huì)自動(dòng)清除狀態(tài)中斷值(8000h)。消息中斷優(yōu)先級(jí)是隨消息編號(hào)的增加而減小,。消息中斷是由清除消息對(duì)象的INTPND位來清除的,。中斷服務(wù)流程圖如圖3所示。

d.jpg

  4 結(jié)束語

  本系統(tǒng)的總線通信網(wǎng)絡(luò)已實(shí)現(xiàn)三個(gè)節(jié)點(diǎn)與上位機(jī)的連調(diào),,系統(tǒng)軟件采用結(jié)構(gòu)化程序設(shè)計(jì)方案,,使其具有較好的模塊化和可移植性,對(duì)于不同的系統(tǒng)功能或不同的應(yīng)用環(huán)境,,可以方便地進(jìn)行編程重組,。

  本文設(shè)計(jì)的CAN總線通信網(wǎng)絡(luò)中的主從智能節(jié)點(diǎn)經(jīng)過試驗(yàn)調(diào)試,,硬件電路工作正常,在總線數(shù)據(jù)采集系統(tǒng)中抗干擾能力強(qiáng),。軟件部分實(shí)時(shí)性強(qiáng),,準(zhǔn)確率高。從節(jié)點(diǎn)可以實(shí)時(shí)地將信息傳送給主節(jié)點(diǎn),,以便主節(jié)點(diǎn)實(shí)時(shí)監(jiān)控,。整個(gè)節(jié)點(diǎn)通信系統(tǒng)工作穩(wěn)定,可以滿足現(xiàn)場(chǎng)環(huán)境要求,。

  在設(shè)計(jì)過程中,,認(rèn)識(shí)到目前基于CAN2.0B協(xié)議的CAN控制器無法為實(shí)時(shí)和非實(shí)時(shí)性數(shù)據(jù)動(dòng)態(tài)分配優(yōu)先權(quán),基于事件觸發(fā)模式的訪問機(jī)制無法滿足眾多節(jié)點(diǎn)的實(shí)時(shí)訪問,。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。