《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于SJA1000的CAN總線控制系統的設計與實現
基于SJA1000的CAN總線控制系統的設計與實現
互聯網
摘要: CAN-bus(ControllerAreaNetwork)即控制器局域網是國際上應用最廣泛的現場總線之一。最初CAN-bu...
關鍵詞: SJA1000 CAN總線 控制
Abstract:
Key words :

0 引言

    CAN-bus(Controller Area Network)即控制" title="控制">控制器局域網是國際上應用最廣泛的現場總線之一。最初CAN-bus被設計作為汽車環境中的微控制器通訊工具,用于在車載各電子控制裝置ECU之間交換信息,從而形成汽車電子控制網絡。如今,CAN-bus作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,已被廣泛應用到各個自動化控制系統中。而且CAN-bus總線在通信能力、可靠性、實時性、靈活性、易用性、傳輸距離等方面較RS-485總線有著明顯的優勢。因而用CAN總線" title="CAN總線">CAN總線取代RS-485總線將是大勢所趨。

1 CAN總線的主要特性

CAN總線與其它通信網的不同之處有二:一是報文傳送中不包含目標地址,它是以全網廣播為基礎,各接收站根據報文中反映數據性質的標識符來過濾報文,該收的收下,不該收的棄而不用。其好處是可在線上網下網、即插即用和多站接收;二是特別強化數據安全,可滿足控制系統及其它較高數據要求的系統需求。CAN具有以下主要技術特性:

(1)CAN遵從ISO模型,采用了其中的物理層、數據鏈路層與應用層。采用雙絞線,通信速率最高可達到1 Mbps/40 m,直接傳輸距離最遠可達10 kin/5 kbps。同一段總線內最多可掛接110個設備。

(2)CAN的信號傳輸采用短幀結構,每一幀有效字節數為8個。因而傳輸時間短,受干擾的概率低。當節點發生嚴重錯誤時,CAN可自動關閉該節點,同時切斷與總線的聯系,以使總線上其它節點不受影響,因此CAN總線具有很強的抗干擾能力。

(3)CAN可支持多主工作方式,網絡上任一節點在任何時候均可主動向其它節點發送信息,同時也支持點對點、一點對多點和全局廣播方式來接收/發送數據。處于優先級低的節點會主動停止發送,以此來避免總線沖突。

2 CAN總線接口硬件電路的設計

硬件電路的設計主要是CAN通信控制器與微處理器之間和CAN總線收發器與物理總線之間的接口電路的設計。CAN通信控制器是CAN總線接口電路的核心,主要完成CAN的通信協議,而CAN總線收發器的主要功能是增大通信距離,提高系統的瞬間抗干擾能力,保護總線,降低射頻干擾(RFI),實現熱防護等。

2.1 CAN總線接口電路

SJA1000" title="SJA1000">SJA1000硬件接口原理圖如圖l所示。圖中,CAN總線控制器SJA1000的ADO-AD7連接到AT89C51的P0口。片選端CS取反后連接到AT89C51的P2.7,當P2.7為1時,CPU片外存儲器地址可選中SJA1000。CPU通過這些地址可對SJA1000執行相應的讀/寫操作(即:SJA1000首地址為8000H)。SJA1000的RD、WR、ALE分別與AT89C51的對應引腳相連。由于SJA1000是低電平復位,而AT89C51是高電平復位,所以兩者的復位端接法不同。另外,當SJA1000的11腳MODE接高電平時,可選擇Intel二分頻模式。SJA1000的16腳(INT)是中斷信號輸出端,在中斷允許的情況下,有中斷發生時,16腳會輸出由高電平到低電平的跳變,因此將AT89C51的外部中斷輸入腳(INT0)與該腳相連接,即可通過中斷方式來訪問SJA1000。為了增強CAN總線節點的抗干擾能力,本設計采用SJA1000的具有光電隔離的CAN總線接口。SJA1000的發送輸出端TX0與接收輸入端RXO、RX1分別經高速集成光電耦合器6N137隔離后,與CAN總線接口驅動芯片82C250的TXD和RXD相連,82C250直接與CAN物理總線相連。CAN總線驅動器PCA82C250是CAN控制器和物理總線之間的接口,具有可向總線的差動發送數據和CAN控制器的差動接收數據的功能。


2.2設計注意事項

在進行電路設計時應注意以下幾點:

(1)總線兩端必須接兩個終端匹配電阻Rs,若忽略掉它們,會使數據通信的抗干擾性及可靠性大大降低。

(3)SJA1000的TX1腳懸空時,RX1引腳的電位必須維持在約0.5Vcc上,否則,將不能形成CAN協議所要求的電平邏輯。因本系統傳輸距離近,環境干擾小,可以不用電流隔離,這樣可以直接把82C250的Vref端(約為0.5 Vcc)與SJA1000的RX1相連,從而簡化了電路設計。

(4)設計時將SJA1000的CLOCKOUT的時鐘信號接至AT89C51的時鐘電路輸入端,來作為AT89C51的外部時鐘輸入,從而解決了時鐘同步問題:同時將SJA1000中斷輸出信號/INT接至AT89C51的/INT0端,通過中斷方式與AT89C51進行通信。

3系統軟件設計

系統上電后首先對82C250和SJA1000進行初始化。以確定工作主頻、波特率、輸出特性等,然后通過查詢方式獲取模數轉換采樣值,并把該值通過SJA1000傳送到CAN總線上由上位PC機來進行顯示控制。而對來自CAN總線上的信息則采用中斷方式處理,系統每接收到一幀信息,便產生一次中斷以觸發微處理器進入中斷模式,然后在中斷服務程序中讀取該幀信息并傳送到現場。SJA1000的初始化程序如下:

    MOV DPTR,#CR:控制寄存器CR的地址送DPTR
    MOVA,#01H
    MOVX@DPTR,A:進入復位模式
    MOV DPTR,#CDR
    MOVA,#00H
    MOVX@DPTR,A:選擇BASIC CAN模式、時鐘不輸出
    MOV A,#NODECODE
    MOVX @DPTR,A;節點號NODECODE寫入ACR
    MOVX DPTR,#AMR
    MOV A,#00H
    MOV @DPTR,A;AMR置為0,當且僅當RXID0=ACR時接收數據
    MOV DPTR,#BTR0;設定總線時序寄存器BTR0,系統采用12 MHz晶振
    MOV A,#85H;分頻后總線時鐘頻率為2MHz
    MOVX @DPTR,A;同步跳轉寬度為3tscl
    MOV DPTR,#BTR1;設定總線時序寄存器BTR1
    MOV A,#OB4H:位同步時間為1個tsc1,采樣開始位置TSEG1=5tsc1
    MOVX @DPTR,A;TSEG2=4tsc1,每一位時間10tsc1(200 kHz),每位采樣3次
    MOV DPTR,#OCR;設置輸出控制寄存器
    MOV A,#1AH:數據從TX0按正常輸出模式同極性輸出
    MOV @DPTR,A;TX1不用
    MOV DPTR,#CR;初始化完成,使控制器退出復位模式,進入工作模式工作。
    MOV A,#06H
    MOV @DPTR,A

SJA1000在經過初始化后便開始接收或發送數據,其程序流程分別如圖2和圖3所示。



4結束語

該接口電路在經DP-51H單片機通訊仿真實驗儀的調試后,結果表明它能模擬實現通信功能,且其抗干擾性能優良,通信速率較高,電路也比較簡單,是開發與應用其它CAN總線產品的基礎。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产在线无码视频一区| 幻女free性zozo交| 亚洲欧美日韩成人一区在线| 西西人体444rt高清大胆| 国产美女无遮挡免费网站| 两个人看的www视频免费完整版| 欧美亚洲另类热图| 他强行给我开了苞| 老司机在线精品视频| 国产日产精品_国产精品毛片| 99久久国产亚洲综合精品| 成年免费视频黄网站在线观看| 五月婷婷狠狠干| 毛片一级在线观看| 全部三片在线观看直播| 日韩综合第一页| 国产午夜手机精彩视频| 91国在线视频| 女娃开嫩苞经历小说| 久久99蜜桃精品久久久久小说| 欧男同同性videos免费| 亚洲精品第一国产综合野| 精品视频一区二区三三区四区| 国产在线视频第一页| 伊人色综合久久天天人守人婷| 天天想你视频免费观看完整版高清中文| 久久er国产精品免费观看2| 最近韩国电影免费观看完整版中文 | 小小在线观看视频www软件| 思思99热在线观看精品| 女人18片免费视频网站| 国产高清av在线播放| 久久久久久久综合色一本| 李丽珍蜜桃成熟时电影3在线观看 李丽珍蜜桃成熟时电影在线播放观看 | 青春草在线视频观看| 国产精品VA无码一区二区| avtt天堂在线| 富二代官网下载在线| 中文字幕第23页| 日本黄色片免费观看| 亚洲av无码一区二区三区鸳鸯影院 |