新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C51型單片機(jī)的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

基于AT89C51型單片機(jī)的CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

作者:李金剛 劉永鴻 時(shí)間:2008-07-11 來源:國外電子元器件 收藏

  1 引言

本文引用地址:http://m.butianyuan.cn/article/85600.htm

  CAN(Controller Area Network)是控制器局域網(wǎng),主要用于各種設(shè)備檢測(cè)及控制的現(xiàn)場(chǎng)總線。是德國BOSCH公司20世紀(jì)80年代初為解決汽車中眾多控制與測(cè)試儀器間的數(shù)據(jù)交換而開發(fā)的串行數(shù)據(jù)協(xié)議。這是一種多主總線,無論是在高速網(wǎng)絡(luò)還是在低成本的節(jié)點(diǎn)系統(tǒng),應(yīng)用都很廣泛。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的總線相比,的數(shù)據(jù)具有突出的可靠性、實(shí)時(shí)性和靈活性,其主要特點(diǎn)如下:

  ●通信方式靈活,可以多主方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,不分主從。

  ●CAN節(jié)點(diǎn)只需對(duì)報(bào)文的標(biāo)識(shí)符濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)及全局廣播方式發(fā)送和接收數(shù)據(jù),其節(jié)點(diǎn)可分成不同的優(yōu)先級(jí),節(jié)點(diǎn)的優(yōu)先級(jí)可通過報(bào)文標(biāo)識(shí)符進(jìn)行設(shè)置,優(yōu)先級(jí)高的數(shù)據(jù)最多可在134μs內(nèi)傳輸,可以滿足不同的實(shí)時(shí)要求。

  ●通信格式采用短幀格式,每幀字節(jié)數(shù)量多為8個(gè)字節(jié),可滿足一般工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的要求,同時(shí),8個(gè)字節(jié)不會(huì)占用總線時(shí)間過長(zhǎng),保證了通信的實(shí)時(shí)性。

  ●采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息出現(xiàn)沖突時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)會(huì)主動(dòng)退出數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線沖突仲裁時(shí)間,在網(wǎng)絡(luò)重載的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓。

  ●直接通信距離最大可達(dá)10 km (速率在5 kb/s以下),最高通信速率可達(dá)1 Mb/s (此時(shí)距離最長(zhǎng)為40 m);節(jié)點(diǎn)數(shù)可達(dá)110個(gè),通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。

  ●CAN總線采用CRC檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證數(shù)據(jù)通信的可靠性,其節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,使總線上其他節(jié)點(diǎn)的操作不受影響。

  2 CAN總線系統(tǒng)結(jié)構(gòu)

  由于CAN總線采用多主方式工作,所以具有與DCS(分布式控制系統(tǒng))不一樣的拓?fù)浣Y(jié)構(gòu)。其控制系統(tǒng)由計(jì)算機(jī)和組成,如圖1所示。該系統(tǒng)最大的特點(diǎn)是所有的節(jié)點(diǎn)都能以平等的地位掛接在總線上。1個(gè)總線節(jié)點(diǎn)通常至少包括3部分:控制節(jié)點(diǎn)任務(wù)的、總線控制器及總線驅(qū)動(dòng)器。本文主要介紹CAN總線的簡(jiǎn)單設(shè)計(jì)。由89C5l型、SJA1000型總線控制器、82C250型總線驅(qū)動(dòng)器及PC構(gòu)成。在實(shí)際應(yīng)用中可以連接不同的傳感器件,完成數(shù)據(jù)的采集和傳輸。

  3 硬件電路設(shè)計(jì)

  筆者設(shè)計(jì)的CAN總線系統(tǒng)智能節(jié)點(diǎn)采用Intel公司的AT89C51型作為節(jié)點(diǎn)的微處理器。AT89C51具有64KB的尋址空間。本身不帶CAN控制器,所以要實(shí)現(xiàn)與CAN總線之間的通信需外加CAN控制器和CAN驅(qū)動(dòng)器。在本設(shè)計(jì)中采用SJAl000型CAN總線通信控制器和AT82C250型總線驅(qū)動(dòng)器。

  CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件電路如圖2所示。從圖2可以看出,硬件電路主要由AT89C51、SJAl000、AT82C250、6N137型高速光電耦合器和MAX202型電平轉(zhuǎn)換器件組成。AT89C51負(fù)責(zé)SJAl000的初始化,控制SJAl000實(shí)現(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時(shí),CPU片外存儲(chǔ)器地址可選中SJA1000,CPU通過這些地址可對(duì)SJAl000執(zhí)行相應(yīng)的讀/寫操作。SJAl000的RD、WR、ALE分別與AT89C51的相應(yīng)引腳相連,SJAl000的INT接AT89C51的INTl,AT89C51也可通過中斷方式訪問SJA1000。

  為了增強(qiáng)總線節(jié)點(diǎn)的抗干擾能力,SJAl000的TX0和RX0并不直接與82C250的TXD和RXD相接,而是通過6N137與AT82C250相接,這樣,很好地實(shí)現(xiàn)了總線上各節(jié)點(diǎn)間的電氣隔離。不過,光耦電路用的2個(gè)電源VCC和VDD必須隔離。電源的完全隔離可采用小功率電源隔離模塊實(shí)現(xiàn)。這雖然增加了接口電路的復(fù)雜性,但卻提高了節(jié)點(diǎn)的穩(wěn)定性和安全性。

  AT82C250與總線的接口也采取了一定的安全和抗干擾措施。AT82C250的CANH引腳和CANL引腳各自通過1只5 Ω的電阻器與總線相連,電阻器可起到一定的限流作用,保護(hù)AT82C250免受過電流沖擊。CANH和CANL與地之間并聯(lián)了2只30pF的小電容器,可以濾除總線上的高頻干擾并具有一定的防電磁輻射能力。另外,在2條CAN總線輸入端與地之間分別接了1個(gè)防雷擊管,當(dāng)2個(gè)輸入端與地之間出現(xiàn)瞬變干擾時(shí),防雷擊管的放電起到一定的保護(hù)作用。AT82C250的RS引腳接1只斜率電阻器,其阻值的大小可根據(jù)總線通信速度適當(dāng)調(diào)整,一般在16 kΩ~140 kΩ之間。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉