基于AT89C51型單片機的CAN總線智能節(jié)點設(shè)計
發(fā)布時間:2008/8/16 0:00:00 訪問次數(shù):580
介紹can(控制器局域網(wǎng))總線的特點,給出can總線系統(tǒng)智能節(jié)點電路原理及用c51語言編寫的開發(fā)程序,方便使用者學(xué)習(xí)和掌握。
1 引言
can(controller area network)是控制器局域網(wǎng),主要用于各種設(shè)備檢測及控制的現(xiàn)場總線。can總線是德國bosch公司20世紀(jì)80年代初為解決汽車中眾多控制與測試儀器間的數(shù)據(jù)交換而開發(fā)的串行數(shù)據(jù)通信協(xié)議。這是一種多主總線,無論是在高速網(wǎng)絡(luò)還是在低成本的節(jié)點系統(tǒng),應(yīng)用都很廣泛。由于采用了許多新技術(shù)及獨特的設(shè)計,與一般的通信總線相比,can總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,其主要特點如下:
●通信方式靈活,可以多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,不分主從。
●can節(jié)點只需對報文的標(biāo)識符濾波即可實現(xiàn)點對點、點對多點及全局廣播方式發(fā)送和接收數(shù)據(jù),其節(jié)點可分成不同的優(yōu)先級,節(jié)點的優(yōu)先級可通過報文標(biāo)識符進(jìn)行設(shè)置,優(yōu)先級高的數(shù)據(jù)最多可在134μs內(nèi)傳輸,可以滿足不同的實時要求。
●can總線通信格式采用短幀格式,每幀字節(jié)數(shù)量多為8個字節(jié),可滿足一般工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的要求,同時,8個字節(jié)不會占用總線時間過長,保證了通信的實時性。
●采用非破壞性總線仲裁技術(shù),當(dāng)多個節(jié)點同時向總線發(fā)送信息出現(xiàn)沖突時,優(yōu)先級低的節(jié)點會主動退出數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線沖突仲裁時間,在網(wǎng)絡(luò)重載的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓。
●直接通信距離最大可達(dá)10 km (速率在5 kb/s以下),最高通信速率可達(dá)1 mb/s (此時距離最長為40 m);節(jié)點數(shù)可達(dá)110個,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。
●can總線采用crc檢驗并可提供相應(yīng)的錯誤處理功能,保證數(shù)據(jù)通信的可靠性,其節(jié)點在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,使總線上其他節(jié)點的操作不受影響。
2 can總線系統(tǒng)結(jié)構(gòu)
由于can總線采用多主方式工作,所以具有與dcs(分布式控制系統(tǒng))不一樣的拓?fù)浣Y(jié)構(gòu)。其控制系統(tǒng)由計算機和智能節(jié)點組成,如圖1所示。該系統(tǒng)最大的特點是所有的節(jié)點都能以平等的地位掛接在總線上。1個總線節(jié)點通常至少包括3部分:控制節(jié)點任務(wù)的單片機、總線控制器及總線驅(qū)動器。本文主要介紹can總線智能節(jié)點的簡單設(shè)計。智能節(jié)點由89c5l型單片機、sja1000型總線控制器、82c250型總線驅(qū)動器及pc構(gòu)成。在實際應(yīng)用中可以連接不同的傳感器件,完成數(shù)據(jù)的采集和傳輸。
3 硬件電路設(shè)計
筆者設(shè)計的can總線系統(tǒng)智能節(jié)點采用intel公司的at89c51型單片機作為節(jié)點的微處理器。at89c51具有64kb的尋址空間。本身不帶can控制器,所以要實現(xiàn)與can總線之間的通信需外加can控制器和can驅(qū)動器。在本設(shè)計中采用sjal000型can總線通信控制器和at82c250型總線驅(qū)動器。
can總線系統(tǒng)智能節(jié)點硬件電路如圖2所示。從圖2可以看出,硬件電路主要由at89c51、sjal000、at82c250、6n137型高速光電耦合器和max202型電平轉(zhuǎn)換器件組成。at89c51負(fù)責(zé)sjal000的初始化,控制sjal000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。max202用于ttl電平與rs232電平的相互轉(zhuǎn)換,可以將接收的數(shù)據(jù)顯示在pc上。sjal000的ado-ad7連接到at89c51的p0口,cs連接到at89c51的p2.7。p2.7為0時,cpu片外存儲器地址可選中sja1000,cpu通過這些地址可對sjal000執(zhí)行相應(yīng)的讀/寫操作。
sjal000的rd、wr、ale分別與at89c51的相應(yīng)引腳相連,sjal000的int接at89c51的intl,at89c51也可通過中斷方式訪問sja1000。
為了增強總線節(jié)點的抗干擾能力,sjal000的tx0和rx0并不直接與82c250的txd和rxd相接,而是通過6n137與at82c250相接,這樣,很好地實現(xiàn)了總線上各節(jié)點間的電氣隔離。不過,光耦電路用的2個電源vcc和vdd必須隔離。電源的完全隔離可采用小功率電源隔離模塊實現(xiàn)。這雖然增加了接口電路的復(fù)雜性,但卻提高了節(jié)點的穩(wěn)定性和安全性。
at82c250與總線的接口也采取了一定的安全和抗干擾措施。
at82c250的canh引腳和canl引腳各自通過1只5 ω的電阻器與總線相連,電阻器可起到一定的限流作用,保護(hù)at82c250免受過電流沖擊。canh和canl與地之間并聯(lián)了2只30pf的小電容器,可以濾除總線上的高頻干擾并具有一定的防電磁輻射能力。另外,在2條can總線輸入端與地之間分別接了1個防雷擊管,當(dāng)2個輸入端與地之間出現(xiàn)瞬變干擾時,防雷擊管的放電起到一定的保護(hù)作用。at82c250的rs引腳接1只斜率電阻器,其阻值的大小可根據(jù)總線通信速度適當(dāng)調(diào)整,一般在16 kω~140 kω之間。
4 軟件設(shè)計
4.1 網(wǎng)絡(luò)通信規(guī)則
can總線為多主工作方式,網(wǎng)絡(luò)上任一節(jié)點均可在任意時刻主動向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息而不分主從,通信方式靈活。為禁止總線沖突,can總線采用非破壞性總線仲裁技術(shù),根據(jù)需要將各個節(jié)點設(shè)定為不同的優(yōu)先級,并以標(biāo)識符id標(biāo)定,其值越小,優(yōu)先級越高?
介紹can(控制器局域網(wǎng))總線的特點,給出can總線系統(tǒng)智能節(jié)點電路原理及用c51語言編寫的開發(fā)程序,方便使用者學(xué)習(xí)和掌握。
1 引言
can(controller area network)是控制器局域網(wǎng),主要用于各種設(shè)備檢測及控制的現(xiàn)場總線。can總線是德國bosch公司20世紀(jì)80年代初為解決汽車中眾多控制與測試儀器間的數(shù)據(jù)交換而開發(fā)的串行數(shù)據(jù)通信協(xié)議。這是一種多主總線,無論是在高速網(wǎng)絡(luò)還是在低成本的節(jié)點系統(tǒng),應(yīng)用都很廣泛。由于采用了許多新技術(shù)及獨特的設(shè)計,與一般的通信總線相比,can總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,其主要特點如下:
●通信方式靈活,可以多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,不分主從。
●can節(jié)點只需對報文的標(biāo)識符濾波即可實現(xiàn)點對點、點對多點及全局廣播方式發(fā)送和接收數(shù)據(jù),其節(jié)點可分成不同的優(yōu)先級,節(jié)點的優(yōu)先級可通過報文標(biāo)識符進(jìn)行設(shè)置,優(yōu)先級高的數(shù)據(jù)最多可在134μs內(nèi)傳輸,可以滿足不同的實時要求。
●can總線通信格式采用短幀格式,每幀字節(jié)數(shù)量多為8個字節(jié),可滿足一般工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的要求,同時,8個字節(jié)不會占用總線時間過長,保證了通信的實時性。
●采用非破壞性總線仲裁技術(shù),當(dāng)多個節(jié)點同時向總線發(fā)送信息出現(xiàn)沖突時,優(yōu)先級低的節(jié)點會主動退出數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線沖突仲裁時間,在網(wǎng)絡(luò)重載的情況下也不會出現(xiàn)網(wǎng)絡(luò)癱瘓。
●直接通信距離最大可達(dá)10 km (速率在5 kb/s以下),最高通信速率可達(dá)1 mb/s (此時距離最長為40 m);節(jié)點數(shù)可達(dá)110個,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。
●can總線采用crc檢驗并可提供相應(yīng)的錯誤處理功能,保證數(shù)據(jù)通信的可靠性,其節(jié)點在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,使總線上其他節(jié)點的操作不受影響。
2 can總線系統(tǒng)結(jié)構(gòu)
由于can總線采用多主方式工作,所以具有與dcs(分布式控制系統(tǒng))不一樣的拓?fù)浣Y(jié)構(gòu)。其控制系統(tǒng)由計算機和智能節(jié)點組成,如圖1所示。該系統(tǒng)最大的特點是所有的節(jié)點都能以平等的地位掛接在總線上。1個總線節(jié)點通常至少包括3部分:控制節(jié)點任務(wù)的單片機、總線控制器及總線驅(qū)動器。本文主要介紹can總線智能節(jié)點的簡單設(shè)計。智能節(jié)點由89c5l型單片機、sja1000型總線控制器、82c250型總線驅(qū)動器及pc構(gòu)成。在實際應(yīng)用中可以連接不同的傳感器件,完成數(shù)據(jù)的采集和傳輸。
3 硬件電路設(shè)計
筆者設(shè)計的can總線系統(tǒng)智能節(jié)點采用intel公司的at89c51型單片機作為節(jié)點的微處理器。at89c51具有64kb的尋址空間。本身不帶can控制器,所以要實現(xiàn)與can總線之間的通信需外加can控制器和can驅(qū)動器。在本設(shè)計中采用sjal000型can總線通信控制器和at82c250型總線驅(qū)動器。
can總線系統(tǒng)智能節(jié)點硬件電路如圖2所示。從圖2可以看出,硬件電路主要由at89c51、sjal000、at82c250、6n137型高速光電耦合器和max202型電平轉(zhuǎn)換器件組成。at89c51負(fù)責(zé)sjal000的初始化,控制sjal000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。max202用于ttl電平與rs232電平的相互轉(zhuǎn)換,可以將接收的數(shù)據(jù)顯示在pc上。sjal000的ado-ad7連接到at89c51的p0口,cs連接到at89c51的p2.7。p2.7為0時,cpu片外存儲器地址可選中sja1000,cpu通過這些地址可對sjal000執(zhí)行相應(yīng)的讀/寫操作。
sjal000的rd、wr、ale分別與at89c51的相應(yīng)引腳相連,sjal000的int接at89c51的intl,at89c51也可通過中斷方式訪問sja1000。
為了增強總線節(jié)點的抗干擾能力,sjal000的tx0和rx0并不直接與82c250的txd和rxd相接,而是通過6n137與at82c250相接,這樣,很好地實現(xiàn)了總線上各節(jié)點間的電氣隔離。不過,光耦電路用的2個電源vcc和vdd必須隔離。電源的完全隔離可采用小功率電源隔離模塊實現(xiàn)。這雖然增加了接口電路的復(fù)雜性,但卻提高了節(jié)點的穩(wěn)定性和安全性。
at82c250與總線的接口也采取了一定的安全和抗干擾措施。
at82c250的canh引腳和canl引腳各自通過1只5 ω的電阻器與總線相連,電阻器可起到一定的限流作用,保護(hù)at82c250免受過電流沖擊。canh和canl與地之間并聯(lián)了2只30pf的小電容器,可以濾除總線上的高頻干擾并具有一定的防電磁輻射能力。另外,在2條can總線輸入端與地之間分別接了1個防雷擊管,當(dāng)2個輸入端與地之間出現(xiàn)瞬變干擾時,防雷擊管的放電起到一定的保護(hù)作用。at82c250的rs引腳接1只斜率電阻器,其阻值的大小可根據(jù)總線通信速度適當(dāng)調(diào)整,一般在16 kω~140 kω之間。
4 軟件設(shè)計
4.1 網(wǎng)絡(luò)通信規(guī)則
can總線為多主工作方式,網(wǎng)絡(luò)上任一節(jié)點均可在任意時刻主動向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息而不分主從,通信方式靈活。為禁止總線沖突,can總線采用非破壞性總線仲裁技術(shù),根據(jù)需要將各個節(jié)點設(shè)定為不同的優(yōu)先級,并以標(biāo)識符id標(biāo)定,其值越小,優(yōu)先級越高?
熱門點擊
- 教你做2SD315AI的驅(qū)動電路設(shè)計
- 1-Wire總線與DS18B20應(yīng)用仿真
- 在嵌入式系統(tǒng)中應(yīng)用NAND Flash閃存作
- Molex推出新系列2.00mm間距SMT線
- 韋爾推出用于超高速接口的靜電保護(hù)芯片ESDA
- 基于μPD780822型單片機的客車CAN總
- 基于USB的ARINC429總線接口模塊設(shè)計
- 賽普拉斯2Mb/8Mb nvSRAM無需電池
- ST7267單片機與SIM卡的接口設(shè)計
- 基于鐵電存儲器FM25640在電表數(shù)據(jù)存儲中
推薦技術(shù)資料
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動器單
- 數(shù)字恒定導(dǎo)通時間控制模式(CO
- Power Management Buck/
- 反激變換器傳導(dǎo)和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究