摘要:CAN總線上的節(jié)點是網(wǎng)絡(luò)上的接收和發(fā)送站。智能節(jié)點能通過編程設(shè)置工作方式、ID地址、波特率等參數(shù)。它主要由單片機和可編程的CAN通信控制器組成。本文介紹這類節(jié)點的硬件設(shè)計和軟件設(shè)計。軟件設(shè)計包括SJA1000的初始化、發(fā)送和接收等應(yīng)用中的最基本的操塊子程序。
關(guān)鍵詞:總線 節(jié)點 CAN控制器
引言
CAN(Controller Area Network)總線,又稱控制器局域網(wǎng),是Bosch公司在現(xiàn)代汽車技術(shù)中領(lǐng)先推出的一種多主機局域網(wǎng)。由于其卓越的性能,極高的可靠性,獨特靈活的設(shè)計和低廉的價格,現(xiàn)已廣泛應(yīng)用于工業(yè)現(xiàn)場控制、智能大廈、小區(qū)安防、交通工具、醫(yī)療儀器、環(huán)境監(jiān)控等眾多領(lǐng)域。CAN已被公認為幾種最有前途的現(xiàn)場總線之一。CAN總線規(guī)范已被ISO國際標準組織制訂為國際標準。CAN協(xié)議也是建立在國際標準組的開放系統(tǒng)互聯(lián)參考模型基礎(chǔ)上的,主要工作在數(shù)據(jù)鏈路層和物理層。用戶可在其基礎(chǔ)上開發(fā)適合系統(tǒng)實際需要的應(yīng)用層通信協(xié)議,但由于CAN總線極高的可靠性,從而使應(yīng)用層通信協(xié)議得以大大簡化。
CAN總線與其它幾種現(xiàn)場總線比較而言,是最容易實現(xiàn)、價格最為低廉的一種,但其性能并不比其它現(xiàn)場總線差。這也是目前CAN總線在眾多領(lǐng)域被廣泛采用的原因。節(jié)點是網(wǎng)絡(luò)上信息的接收和發(fā)送站。所謂智能節(jié)點是由微處理器和可編程的CAN控制芯片組成,它們有兩者合二為一的,如芯片P8XC59;有如本文介紹的獨立的通信控制芯片與單片機接口。后者的優(yōu)點是比較靈活。當然,也有不要微處理器的節(jié)點。下面以CAN通信控制器SJA1000為例,對CAN總線系統(tǒng)智能節(jié)點硬件和軟件設(shè)計作一下全面的介紹。
一、CAN通信控制器SJA1000功能簡介
CAN的通信協(xié)議主要由CAN控制器完成。CAN控制器主要由實現(xiàn)CAN總線協(xié)議的部分和實現(xiàn)與微處理器接口部分的電路組成。對于不同型號的CAN總線通信控制器,實現(xiàn)CAN協(xié)議部分電路的結(jié)構(gòu)和功能大多相同,而與微處理器接口部分的結(jié)構(gòu)和方式存在一些差異。這里主要以SJA1000為代表對CAN控制器的功能作一個簡單介紹。
SJA1000是一種獨立CAN控制器。它是PHILIPS公司的PCA82C200 CAN控制器的替代產(chǎn)品。SJA1000具有Basic CAN和Peli CAN兩種工作方式。PeliCAN工作方式支持具有很多新特性的CAN 2.0B協(xié)議。
SJA1000在軟件和引腳上都是與它的前一款PAC82C200獨立CAN控制器兼容的(SJA1000引腳功能如表1所列),在此基礎(chǔ)上增加了很多新的功能。為了實現(xiàn)軟件兼容,SJA1000采用了兩種工作方式:Basic CAN方式(PCA82C200兼容方式)和Peli CAN方式(擴展特性方式)。工作方式通過時鐘分頻寄存器中的CAN方式位來選擇。上電復(fù)位默認工作方式是Basic CAN方式。Basic CAN和PeliCAN方式的區(qū)別如下:
在PeliCAN方式下,SJA1000有一個重新設(shè)計的含很多新功能的寄存器組。SJA1000包含PCA82C200中的所有位,同時增加了一些新的功能位。PeliCAN方式支持CAN2.0B協(xié)議規(guī)定的所有功能(29位的標識符)。
表1 SJA1000引腳功能
| 符 號 | 引 腳 | 功 能 |
| AD0AD7 | 2,1,2823 | 地址/數(shù)據(jù)復(fù)用總線 |
| ALE | 3 | ALE信號(INTEL方式)或AS信號(MOTOROLA方式) |
| CS | 4 | 片選輸入,低電允許訪問SJA1000 |
| RD | 5 | 微控制器的讀信號(Intel方式)或E信號(MOTOROLA式) |





