《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于凌陽單片機的CAN總線智能節(jié)點的開發(fā)

基于凌陽單片機的CAN總線智能節(jié)點的開發(fā)

2009-06-05
作者:吳 杰, 詹習生, 劉金華,

  摘 要: 以凌陽SPCE061A處理器和CAN總線控制器SJA1000為核心,設計了一種通用的CAN總線智能節(jié)點。給出了CAN總線智能節(jié)點的整體結構,重點闡述了它的軟硬件設計、實現(xiàn)與注意事項。試驗表明:該系統(tǒng)結構簡單、可靠性高、應用靈活,且易擴展,具有廣泛的應用前景。
  關鍵詞: 凌陽單片機; CAN總線; 智能節(jié)點; SJA1000

?

  隨著計算機科學的發(fā)展,以其為核心的4C 技術(計算機技術、自動控制技術、通信技術、CRT 顯示技術)越來越深入地應用到工業(yè)生產(chǎn)的各個環(huán)節(jié),并引起了自動化系統(tǒng)結構的優(yōu)化和變革, 逐步形成了以網(wǎng)絡集成自動化為基礎的控制系統(tǒng)。現(xiàn)場總線就是順應這一趨勢發(fā)展起來的??刂破骶钟蚓W(wǎng)CAN(Controller Aera Network) 屬于現(xiàn)場總線的范疇[1]。由于CAN總線具有較強的抗干擾能力、通信中沒有地址的概念及節(jié)點數(shù)不受限制等優(yōu)點,已經(jīng)被廣泛應用于汽車、儀器儀表、現(xiàn)場總線控制等領域。CAN總線的智能節(jié)點是由微處理器和可編程的CAN控制芯片組成,它們有合二為一的,如PHILIPS公司的P8XC592、MOTOROLA公司的68HC05X4等,也有由獨立的通信控制芯片與單片機接口構成的。由于前者設計時需專用的開發(fā)工具,而且價格相對較高,而后者可以采用通用的單片機仿真器,在設計時更為靈活,變化也更多,因此,本文以凌陽SPCE061A處理器和CAN總線控制器SJA1000為核心,設計了一種通用的CAN總線智能節(jié)點。該智能節(jié)點利用凌陽公司的61板仿真器進行調試,能模擬實現(xiàn)通信功能,在此基礎上構建CAN總線控制系統(tǒng)具有實際意義,同時針對不同的控制系統(tǒng),只要在軟件上作相應的改動,就可以滿足控制系統(tǒng)的要求。該設計作為CAN總線節(jié)點的一個模塊,能夠和儀器儀表等設備相結合,使其具有網(wǎng)絡通信的能力,有著廣闊的應用前景。
1 CAN 智能節(jié)點的系統(tǒng)構成
  由于CAN 總線采用多自主方式工作, 可掛多達110個節(jié)點??刂葡到y(tǒng)的構成由計算機和智能節(jié)點組成。如圖1所示,與DCS控制系統(tǒng)不一樣的是它的拓撲結構。不是所有的下位機都以上位機為中心,而是所有的節(jié)點(包括上位計算機)都以“平等主體”的形式掛接在總線上。智能節(jié)點能夠采集現(xiàn)場數(shù)據(jù), 并根據(jù)接收到的命令或者主動將數(shù)據(jù)發(fā)送到CAN總線。可以通過事先設置驗收碼和驗收屏蔽碼控制智能節(jié)點從總線上接收哪些數(shù)據(jù)或命令。如果某些數(shù)據(jù)需要進一步復雜的處理,則上位計算機可以從總線上接收數(shù)據(jù)。當上位機需要對某個節(jié)點施加控制動作時, 可以采用點對點方式與該節(jié)點通信;而當它需要同時對所有節(jié)點施加控制動作時,可以采用廣播方式將命令發(fā)送到總線。這樣當系統(tǒng)正常運行時完全可以沒有上位機的參與,大大減少了數(shù)據(jù)的傳輸量,同時提高了系統(tǒng)的實時性和可靠性。本文以開發(fā)設計CAN 總線智能節(jié)點為重點。

?


2 智能節(jié)點的硬件設計
  本文CAN 總線智能節(jié)點采用凌陽公司的SPCE061A單片機作為CAN 智能節(jié)點的微處理器。SPCE061A是凌陽公司推出的一款16位單片機,內嵌32 KB Flash,其核心具有較高的處理速度,能夠更容易、更快速地處理復雜的數(shù)字信號[2]。CAN 控制器采用PHILIPS公司生產(chǎn)的SJA1000,它是集成的獨立CAN 控制器(與PHILIPS早期的CAN控制器PCA82C200完全兼容),負責完成CAN 總線通信協(xié)議的物理層和數(shù)據(jù)鏈路層的功能[3]。CAN驅動器采用的是TJA1040,它提供了CAN控制器與物理總線之間的接口以及對CAN總線的差動發(fā)送和接收功能,可以向下兼容PCA82C250/251,并可以在很多已有的PCA82C250/251應用中使用,而對硬件和軟件不需要做任何修改。
  CAN智能節(jié)點的電路原理圖如圖2所示。雖然整個電路比較簡單,但結合本文設計、現(xiàn)場調試的體會,給出下面幾點說明:
  (1)SJA1000的片選、讀、寫、復位、中斷、鎖存引腳由SPCE061A的IOA2~IOA7口來控制,因為SPCE061A的IOA0~IOA7用做輸入口時具有喚醒功能(即輸入電平變化引起CPU中斷),能降低功耗。
  (2)SJA1000并沒有和單片機共用復位電路,而是通過SPCE061A的IOA2口來控制,這樣,SJA1000的復位就可以方便地由單片機通過軟件來控制。
  (3)SJA1000的地址/數(shù)據(jù)端和單片機的P0口相連時,不需要再加鎖存器,因為它內部已經(jīng)有地址/鎖存功能[4]。
  (4)SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5 V以上,否則將不能形成CAN協(xié)議所要求的邏輯電平。
  (5)總線上電阻R1、R2一定不能省略,它們對匹配總線阻抗起著相當重要的作用,如果去掉它們[5],系統(tǒng)通信的可靠性和抗干擾能力就會大大降低,甚至不能正常工作。

?

3 CAN智能節(jié)點的軟件設計
  CAN 智能節(jié)點的軟件設計大體可以分為兩部分:一部分為初始化,其中包括單片機SPCE061A的初始化和CAN 控制器SJA1000的初始化; 另一部分為節(jié)點實際要完成的數(shù)據(jù)采集和對執(zhí)行機構的控制功能, 初始化以后,節(jié)點就可以工作。但要完成實際的任務,還要設計出應用層軟件。對于基于SPCE061A單片機的CAN總線系統(tǒng),初始化的流程基本是一致的,下面給出了SPCE061A單片機初始化程序。
  由于SPCE061A沒有專用的片選、讀、寫、復位、中斷、鎖存引腳,因此須用SPCE061A編寫出實現(xiàn)SPCE061A對SJA1000的讀寫操作功能的函數(shù)程序,分別記做read( )write( )。
  _SP_InitRead SJA1000: ?? .PROC
  F_SP_InitRead:?(SPCE061A對SJA1000 PUSH R1 TO [SP]讀時,IOA8~IOA15
  R1=OX00FF ????? 接地址線,設置為帶下拉電阻的輸入
?  [P_IOA_Dir]=R1??
?  [P_IOA_Attrib]=R1???????IOA2~IOA7接SJA1000
?  [P_IOA_Data]=R1?????????的控制線設置為同相高POP ?

??? R1 FROM [SP]??????????? 電平輸出)
????????? RETF
?????????.ENDP????????????????
??? _SP_InitWrite SJA1000:????? .PROC
??? F_SP_InitWrite: ???????????? (SPCE061A對PUSH R1?????
??? TO [SP]? SJA1000????????? 寫時,接地址IOA8-IOA15線,設置為同相高電平輸出,
??? R1=OXFFFF? IOA2-IOA7????? 接SJA1000的控制線設
??? [P_IOA_Dir]=R1??????????? 為同相高電平輸出)
??? [P_IOA_Attrib]=R1??
??? [P_IOA_Data]=R1?
??? POP R1 FROM [SP]
????? ???RETF
????? ???ENDP
??? CAN具有較強的糾錯能力,適用于高噪聲環(huán)境,并具有較遠的傳輸距離[6],現(xiàn)已廣泛應用于許多領域,該智能節(jié)點利用凌陽公司的61板仿真器進行調試,能模擬實現(xiàn)通信功能。在此基礎上構建CAN總線控制系統(tǒng)具有實際意義,但針對不同的控制系統(tǒng),在硬件和軟件上需作相應的改動。該設計作為CAN總線節(jié)點的一個模塊,能夠與儀器儀表等設備相結合,使其具有網(wǎng)絡通信的能力,有著廣闊的應用前景。

參考文獻
[1]?陽憲惠. 現(xiàn)場總線技術及其應用.北京:清華大學出版社,1998.
[2]?羅亞非.凌陽16位單片機應用基礎.北京:北京航空航天大學出版社,2003.
[3]?饒運濤.現(xiàn)場總線CAN原理和應用技術.北京:北京航空航天大學出版社,2002.
[4]?劉光,梁濤.CAN總線智能節(jié)點的設計和實現(xiàn)[J].微計算機信息,2006,22(6-2):102-104.
[5]?謝立,紀榮.基于C8051F023和CAN總線的數(shù)據(jù)采集通信系統(tǒng)設計[J].測控技術,2006,25(5):71-74.
[6]?張云洲,吳成東.基于CAN總線的分布式消防報警系統(tǒng)[J].控制工程,2007,14(3):307-309.

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。