機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于AT89C51型單片機(jī)的CAN總線智能節(jié)點設(shè)計
基于AT89C51型單片機(jī)的CAN總線智能節(jié)點設(shè)計
 更新時間:2008-8-19 11:28:21  點擊數(shù):52
【字體: 字體顏色
摘要:介紹CAN(控制器局域網(wǎng))總線的特點,給出CAN總線系統(tǒng)智能節(jié)點電路原理及用C51語言編寫的開發(fā)程序,方便使用者學(xué)習(xí)和掌握。

關(guān)鍵詞:CAN總線;SJAl000;智能節(jié)點:AT89C51

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)由計算機(jī)和智能節(jié)點組成,如圖1所示。該系統(tǒng)最大的特點是所有的節(jié)點都能以平等的地位掛接在總線上。1個總線節(jié)點通常至少包括3部分:控制節(jié)點任務(wù)的單片機(jī)、總線控制器及總線驅(qū)動器。本文主要介紹CAN總線智能節(jié)點的簡單設(shè)計。智能節(jié)點由89C5l型單片機(jī)、SJA1000型總線控制器、82C250型總線驅(qū)動器及PC構(gòu)成。在實際應(yīng)用中可以連接不同的傳感器件,完成數(shù)據(jù)的采集和傳輸。

3 硬件電路設(shè)計

  筆者設(shè)計的CAN總線系統(tǒng)智能節(jié)點采用Intel公司的AT89C51型單片機(jī)作為節(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。

  為了增強(qiáng)總線節(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)先級越高?偩的節(jié)點之間可以進(jìn)行實時相互通信,當(dāng)1個節(jié)點需要接收另1個節(jié)點的數(shù)據(jù)時,只需把其代碼寄存器的內(nèi)容設(shè)置成和另1節(jié)點的標(biāo)識符一致即可。如果對于標(biāo)識符和其代碼寄存器的內(nèi)容設(shè)置不一致,則節(jié)點所發(fā)的數(shù)據(jù)不予理會。

4.2 SJAl000的工作模式設(shè)置

  SJAl000有二種工作模式:復(fù)位模式和工作模式。在復(fù)位模式下可對接收代碼、接收屏蔽、總線時序寄存器O和1及輸出控制寄存器進(jìn)行設(shè)置。一般在CAN初始化時完成對以上寄存器的設(shè)置,當(dāng)CAN進(jìn)入工作模式后,它們的值就不再變化。在工作模式下可進(jìn)行數(shù)據(jù)的發(fā)送和接收。特別要注意的是:當(dāng)硬件復(fù)位或控制器掉線時會自動進(jìn)入復(fù)位模式,這樣就不能進(jìn)行正常的CAN通信,這就要求對復(fù)位位進(jìn)行監(jiān)控。當(dāng)發(fā)生硬件復(fù)位或控制器掉線而進(jìn)入復(fù)位模式時,要求把復(fù)位位置為0并進(jìn)入工作模式,這樣CAN就能進(jìn)行正常發(fā)送和接收。

4.3 基于C語言的軟件編程

  系統(tǒng)軟件的設(shè)計思想是系統(tǒng)上電后首先對AT89C51和SJAl000進(jìn)行初始化,以確定工作主頻、波特率、輸出特性等。其中任一智能節(jié)點可以利用查詢方式通過SJAl000從CAN總線上獲取所需的數(shù)據(jù)并把該數(shù)據(jù)傳送到PC上顯示,同時可以向總線上發(fā)送數(shù)據(jù)以供其他智能節(jié)點接收顯示。以下是具體實現(xiàn)程序。

[1] [2]  下一頁
  • 上一篇: MP3汽車報站器的實現(xiàn)
  • 下一篇: 空調(diào)溫控電子膨脹閥驅(qū)動電路的設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1