基于SJA1000的CAN總線(xiàn)接口電路的設計與實(shí)現
控制器局部網(wǎng)( CAN——Controller Area Network)屬于現場(chǎng)總線(xiàn)的范疇,它是一種有效支持分布式控制或實(shí)時(shí)控制的串行通訊網(wǎng)絡(luò ),其總線(xiàn)規范已被ISO國際標準化組織制定為國際標準,并被公認為是最有前途的現場(chǎng)總線(xiàn)之一。CAN總線(xiàn)的應用范圍遍及從高速網(wǎng)絡(luò )到低成本的多線(xiàn)路網(wǎng)絡(luò ),廣泛應用于控制系統中的各檢測和執行機構之間的數據通信。
現場(chǎng)總線(xiàn)領(lǐng)域中, CAN總線(xiàn)得到了計算機芯片商的廣泛支持,他們紛紛推出直接帶有CAN接口的微處理器(MCU)芯片。帶有CAN的MCU芯片總量已經(jīng)達到1億3千萬(wàn)片(不一定全部用于CAN總線(xiàn));因此在接口芯片技術(shù)方面,CAN已經(jīng)遙遙領(lǐng)先于FF、PROFIBUS、LONWORKS等其它所有現場(chǎng)總線(xiàn)。
現場(chǎng)總線(xiàn)標準及其技術(shù)日益成為國際自動(dòng)控制領(lǐng)域關(guān)注的一大焦點(diǎn),其原因是它改變了傳統控制系統的結構,形成了全新的網(wǎng)絡(luò )集成分布式控制系統。在我國,現場(chǎng)總線(xiàn)已經(jīng)發(fā)展到推廣應用階段,中國已經(jīng)成為各種現場(chǎng)總線(xiàn)激烈爭奪的重要戰場(chǎng)。因此研究現場(chǎng)總線(xiàn)技術(shù)及其產(chǎn)品就顯得尤為重要。
1 CAN總線(xiàn)技術(shù)的特點(diǎn)
CAN總線(xiàn)與其它通信網(wǎng)的不同之處有二:一是報文傳送中不包含目標地址,它是以全網(wǎng)廣播為基礎,各接收站根據報文中反映數據性質(zhì)的標識符過(guò)濾報文,該收的收下,不該收的棄而不用。其好處是可在線(xiàn)上網(wǎng)下網(wǎng)、即插即用和多站接收;二是特別強化了對數據安全性的關(guān)注,滿(mǎn)足控制系統及其它較高數據要求的系統需求。CAN具有以下主要技術(shù)特性:
( 1)CAN遵從ISO/OSI模型,采用了其中的物理層、數據鏈路層與應用層。采用雙絞線(xiàn),通信速率最高可達到1Mbps/40m,直接傳輸距離最遠可達10km/5kbps.同一段總線(xiàn)內最多可掛接110個(gè)設備。
( 2)CAN的信號傳輸采用短幀結構,每一幀有效字節數為8個(gè)。因而傳輸時(shí)間短,受干擾的概率低。當節點(diǎn)發(fā)生嚴重錯誤時(shí),具有自動(dòng)關(guān)閉的功能,切斷該節點(diǎn)與總線(xiàn)的聯(lián)系,使總線(xiàn)上其它節點(diǎn)不受影響,具有很強的抗干擾能力。
( 3)CAN支持多主工作方式,網(wǎng)絡(luò )上任一節點(diǎn)均可在任何時(shí)候主動(dòng)向其它節點(diǎn)發(fā)送信息,支持點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)和全局廣播方式接收/發(fā)送數據,而優(yōu)先級低的節點(diǎn)則主動(dòng)停止發(fā)送,從而避免了總線(xiàn)沖突。
2 CAN總線(xiàn)接口硬件電路的設計
硬件電路的設計主要是 CAN通信控制器與微處理器之間和CAN總線(xiàn)收發(fā)器與物理總線(xiàn)之間的接口電路的設計。CAN通信控制器是CAN總線(xiàn)接口電路的核心,主要完成CAN的通信協(xié)議,而CAN總線(xiàn)收發(fā)器的主要功能是增大通信距離,提高系統的瞬間抗干擾能力,保護總線(xiàn),降低射頻干擾(RFI),實(shí)現熱防護等。
2.1 CAN節點(diǎn)核心器件及其選擇
目前廣泛流行的 CAN總線(xiàn)器件有兩大類(lèi):一類(lèi)是獨立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一類(lèi)是帶有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本課題選取PHILIPS公司的SJA1000 CAN控制器以及82C250總線(xiàn)收發(fā)器,主要是考慮到SJA1000支持CAN 2.0A/B規約。而82C250可以支持110個(gè)CAN節點(diǎn),并且國內市場(chǎng)上PHILIPS的產(chǎn)品型號比較多,購買(mǎi)比較方便。
2.2 CAN總線(xiàn)接口電路
SJA1000在電路中是一個(gè)總線(xiàn)接口芯片,通過(guò)它實(shí)現上位機與現場(chǎng)微處理器之間的數據通信。該電路的主要功能是通過(guò)CAN總線(xiàn)接收來(lái)自上位機的數據進(jìn)行分析組態(tài)然后下傳給下位機的控制電路實(shí)現控制功能,當CAN總線(xiàn)接口接收到下位機的上傳數據,SJA1000就產(chǎn)生一個(gè)中斷,引發(fā)微處理器產(chǎn)生中斷,通過(guò)中斷處理程序接收每一幀信息并通過(guò)CAN總線(xiàn)上傳給上位機進(jìn)行分析。AT89C51是CAN總線(xiàn)接口電路的核心,其承擔CAN控制器的初始化、CAN的收發(fā)控制等任務(wù)。CAN總線(xiàn)接口框圖見(jiàn)圖1.
現場(chǎng)總線(xiàn)領(lǐng)域中, CAN總線(xiàn)得到了計算機芯片商的廣泛支持,他們紛紛推出直接帶有CAN接口的微處理器(MCU)芯片。帶有CAN的MCU芯片總量已經(jīng)達到1億3千萬(wàn)片(不一定全部用于CAN總線(xiàn));因此在接口芯片技術(shù)方面,CAN已經(jīng)遙遙領(lǐng)先于FF、PROFIBUS、LONWORKS等其它所有現場(chǎng)總線(xiàn)。
現場(chǎng)總線(xiàn)標準及其技術(shù)日益成為國際自動(dòng)控制領(lǐng)域關(guān)注的一大焦點(diǎn),其原因是它改變了傳統控制系統的結構,形成了全新的網(wǎng)絡(luò )集成分布式控制系統。在我國,現場(chǎng)總線(xiàn)已經(jīng)發(fā)展到推廣應用階段,中國已經(jīng)成為各種現場(chǎng)總線(xiàn)激烈爭奪的重要戰場(chǎng)。因此研究現場(chǎng)總線(xiàn)技術(shù)及其產(chǎn)品就顯得尤為重要。
1 CAN總線(xiàn)技術(shù)的特點(diǎn)
CAN總線(xiàn)與其它通信網(wǎng)的不同之處有二:一是報文傳送中不包含目標地址,它是以全網(wǎng)廣播為基礎,各接收站根據報文中反映數據性質(zhì)的標識符過(guò)濾報文,該收的收下,不該收的棄而不用。其好處是可在線(xiàn)上網(wǎng)下網(wǎng)、即插即用和多站接收;二是特別強化了對數據安全性的關(guān)注,滿(mǎn)足控制系統及其它較高數據要求的系統需求。CAN具有以下主要技術(shù)特性:
( 1)CAN遵從ISO/OSI模型,采用了其中的物理層、數據鏈路層與應用層。采用雙絞線(xiàn),通信速率最高可達到1Mbps/40m,直接傳輸距離最遠可達10km/5kbps.同一段總線(xiàn)內最多可掛接110個(gè)設備。
( 2)CAN的信號傳輸采用短幀結構,每一幀有效字節數為8個(gè)。因而傳輸時(shí)間短,受干擾的概率低。當節點(diǎn)發(fā)生嚴重錯誤時(shí),具有自動(dòng)關(guān)閉的功能,切斷該節點(diǎn)與總線(xiàn)的聯(lián)系,使總線(xiàn)上其它節點(diǎn)不受影響,具有很強的抗干擾能力。
( 3)CAN支持多主工作方式,網(wǎng)絡(luò )上任一節點(diǎn)均可在任何時(shí)候主動(dòng)向其它節點(diǎn)發(fā)送信息,支持點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)和全局廣播方式接收/發(fā)送數據,而優(yōu)先級低的節點(diǎn)則主動(dòng)停止發(fā)送,從而避免了總線(xiàn)沖突。
2 CAN總線(xiàn)接口硬件電路的設計
硬件電路的設計主要是 CAN通信控制器與微處理器之間和CAN總線(xiàn)收發(fā)器與物理總線(xiàn)之間的接口電路的設計。CAN通信控制器是CAN總線(xiàn)接口電路的核心,主要完成CAN的通信協(xié)議,而CAN總線(xiàn)收發(fā)器的主要功能是增大通信距離,提高系統的瞬間抗干擾能力,保護總線(xiàn),降低射頻干擾(RFI),實(shí)現熱防護等。
2.1 CAN節點(diǎn)核心器件及其選擇
目前廣泛流行的 CAN總線(xiàn)器件有兩大類(lèi):一類(lèi)是獨立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一類(lèi)是帶有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本課題選取PHILIPS公司的SJA1000 CAN控制器以及82C250總線(xiàn)收發(fā)器,主要是考慮到SJA1000支持CAN 2.0A/B規約。而82C250可以支持110個(gè)CAN節點(diǎn),并且國內市場(chǎng)上PHILIPS的產(chǎn)品型號比較多,購買(mǎi)比較方便。
2.2 CAN總線(xiàn)接口電路
SJA1000在電路中是一個(gè)總線(xiàn)接口芯片,通過(guò)它實(shí)現上位機與現場(chǎng)微處理器之間的數據通信。該電路的主要功能是通過(guò)CAN總線(xiàn)接收來(lái)自上位機的數據進(jìn)行分析組態(tài)然后下傳給下位機的控制電路實(shí)現控制功能,當CAN總線(xiàn)接口接收到下位機的上傳數據,SJA1000就產(chǎn)生一個(gè)中斷,引發(fā)微處理器產(chǎn)生中斷,通過(guò)中斷處理程序接收每一幀信息并通過(guò)CAN總線(xiàn)上傳給上位機進(jìn)行分析。AT89C51是CAN總線(xiàn)接口電路的核心,其承擔CAN控制器的初始化、CAN的收發(fā)控制等任務(wù)。CAN總線(xiàn)接口框圖見(jiàn)圖1.

2.3 節點(diǎn)主要元件電路原理
接口主要元件電路原理圖見(jiàn)圖 2,在進(jìn)行電路設計時(shí)應注意以下幾點(diǎn),否則達不到預期的效果。
( 1)總線(xiàn)兩端必須接兩個(gè)終端匹配電阻R T ,忽略掉它們,會(huì )使數據通信的抗干擾性及可靠性大大降低。
( 2)PCA82C250為CAN控制器和物理總線(xiàn)之間的接口,它可以提供向總線(xiàn)的差動(dòng)發(fā)送能力和CAN控制器的差動(dòng)接收能力,TXD和RXD引腳分別發(fā)送經(jīng)過(guò)驅動(dòng)后的發(fā)送和接收信號。其引腳8(R S )可以選擇2種不同的工作方式:把該引腳直接與地相連,系統將處于高速工作方式,在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線(xiàn);而在波特率較低,總線(xiàn)較短時(shí),一般采用斜率控制方式,上升及下降的斜率取決于R S 的阻值,實(shí)踐表明15-200k為R S 較理想的取值范圍,在這種方式下,可以使用雙絞線(xiàn)作總線(xiàn)(本系統采用該工作方式)。

圖 2 接口主要元件電路原理圖
( 3)SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5V CC 上,否則,將不能形成CAN協(xié)議要求的電平邏輯。因本系統傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可以直接把82C250的V REF 端(約為0.5V CC )與SJA1000的RX1相連,從而簡(jiǎn)化了電路。
( 4)設計時(shí)將SJA1000的CLOCKOUT的時(shí)鐘信號接至AT89C51的時(shí)鐘電路輸入端,作為AT89C51的外部時(shí)鐘輸入,解決了時(shí)鐘同步問(wèn)題;SJA1000中斷輸出信號/INT接至AT89C51的/INT0端,通過(guò)中斷方式與AT89C51通信。
評論