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