新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線節(jié)點(diǎn)電路的設(shè)計(jì)與實(shí)現(xiàn)

CAN總線節(jié)點(diǎn)電路的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時間:2013-04-06 來源:網(wǎng)絡(luò) 收藏

(Controller Area Network)即控制器局域網(wǎng)絡(luò)。由于其具有較強(qiáng)的抗干擾能力、通訊中沒有地址的概念及節(jié)點(diǎn)數(shù)不受限制等優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用于汽車、數(shù)控機(jī)床、儀器儀表、現(xiàn)場總線控制等領(lǐng)域。在總線的節(jié)點(diǎn)設(shè)計(jì)中,目前應(yīng)用較多的是通過單片機(jī)的控制來實(shí)現(xiàn)。有的單片機(jī)已經(jīng)嵌入了控制器的功能,比如Philips的P8XC592,Motorola的68HC05X4等,但這類單片機(jī)的應(yīng)用并不普及,而且價(jià)格相對較高。對于目前應(yīng)用最為普及、價(jià)格也很便宜的MCS-51系列單片機(jī),本身并不嵌有CAN控制器的功能。下面就給出一種基于MCS-51單片機(jī)和SJA1000的CAN設(shè)計(jì)方法。

1 CAN總線簡介

CAN 總線是現(xiàn)場總線的一種,它是德國Bosch 公司在1986 年為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通訊總線。它與其它總線最大的區(qū)別是兩個節(jié)點(diǎn)之間傳送信息時報(bào)文中沒有地址信息,而是對不同性質(zhì)的數(shù)據(jù)加以標(biāo)識。在通訊時,以全網(wǎng)廣播為基礎(chǔ),各接收節(jié)點(diǎn)根據(jù)報(bào)文中反映數(shù)據(jù)性質(zhì)的標(biāo)識符過濾報(bào)文,該收的收下,不該收的棄而不用。雖然CAN總線最初是為在汽車行業(yè)應(yīng)用而開發(fā)的,但由于其具有很強(qiáng)的糾錯能力,支持差分收發(fā),因而適合高噪聲環(huán)境,而且傳輸距離比較遠(yuǎn)。另外,象Philips,Motorola,Intel等半導(dǎo)體制造商相繼開發(fā)出了支持CAN協(xié)議的集成芯片,更是推動了CAN總線的應(yīng)用。目前,CAN總線在數(shù)控機(jī)床、醫(yī)療設(shè)備、工業(yè)控制等領(lǐng)域也取得了廣泛的應(yīng)用。1993年,國際標(biāo)準(zhǔn)化組織正式頒布了CAN總線的國際標(biāo)準(zhǔn)ISO11898。其具體特性如下:

(1)CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息可以分成不同的優(yōu)先級,用來滿足不同的實(shí)時要求。

(2)CAN為多主工作方式,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從。

(3)當(dāng)多個節(jié)點(diǎn)同時向總線發(fā)送信息時,CAN采用非破壞性總線仲裁技術(shù),低優(yōu)先級的節(jié)點(diǎn)會依此退出發(fā)送,而最高優(yōu)先級的節(jié)點(diǎn)正常發(fā)送,不會受到任何影響,極大地節(jié)省了總線沖突仲裁時間。

(4)發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā)送。

(5)CAN的直接通訊距離最遠(yuǎn)可達(dá)到10km(速率5kbps以下),通訊速率最高可以達(dá)到1Mbps(此時通訊距離最長為40m)。

(6)CAN的每幀信息都有CRC校驗(yàn)及其它檢錯措施,保證了出錯率很低。

(7)CAN節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動關(guān)閉,退出總線的功能,從而使總線上的其它接點(diǎn)不受影響。SOC開發(fā)平臺360元 單片機(jī)開發(fā)系統(tǒng)498元 單片機(jī)學(xué)習(xí)板138 無線nRF-9E5模塊100元 51單片機(jī)試驗(yàn)開發(fā)板238元 Genius NSP通用編程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9開發(fā)板800

2 SJA1000的介紹

SJA1000是Philips生產(chǎn)的獨(dú)立CAN總線控制器,它是早期的PCA82C200的替代產(chǎn)品。它與PCA82C200在管腳、電氣特性上完全兼容,不僅有和PCA82C200一樣的基本CAN(BasicCAN)工作模式,而且新增加了增強(qiáng)CAN(PeliCAN)工作模式,這種模式支持具有很多新特性的CAN2.0B協(xié)議。經(jīng)過簡單連接和正確設(shè)置的SJA1000,能自動完成CAN總線物理層和數(shù)據(jù)鏈路層的所有功能,對于單片機(jī)來說,只要把它看成一個基本的I/O設(shè)備即可,使用非常簡單、方便。SJA1000的主要特性如下:

(1)擴(kuò)展的接受緩沖器(64字節(jié),先進(jìn)先出FIFO)。

(2)和CAN2.0B協(xié)議兼容。

(3)同時支持11位和29位識別碼。

(4)位速率最高可達(dá)1Mbits/s。

(5)支持多種微處理器接口。

(6)增強(qiáng)的溫度適應(yīng)性。

3 節(jié)點(diǎn)硬件電路設(shè)計(jì)說明

目前廣泛流行的CAN器件分兩大類,一類是獨(dú)立的CAN控制器,如PCA82C200、SJA1000等,另一類就是帶有CAN功能的微控制器,如Philips的P8XC592,Motorola的68HC05X4等。考慮芯片的市場普及程度、開發(fā)工具及成本等因素,在這次設(shè)計(jì)中選用單片機(jī)AT89C51為核心,SJA1000為CAN控制器,同時還使用了,它是CAN控制器的接口芯片。從功能上來分,SJA1000主要完成CAN的通訊協(xié)議,實(shí)現(xiàn)報(bào)文的裝配和拆分、接收信息的過濾和校驗(yàn)等。則是實(shí)現(xiàn)CAN控制器和通訊線路的物理連接,提高CAN總線的驅(qū)動能力和可靠性。具體電路如下圖所示,雖然整個電路比較簡單,但結(jié)合本人設(shè)計(jì)、現(xiàn)場調(diào)試的體會,給出下面幾點(diǎn)說明。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉