CAN總線(xiàn)節點(diǎn)電路的設計與實(shí)現
CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò )。由于其具有較強的抗干擾能力、通訊中沒(méi)有地址的概念及節點(diǎn)數不受限制等優(yōu)點(diǎn),已經(jīng)被廣泛應用于汽車(chē)、數控機床、儀器儀表、現場(chǎng)總線(xiàn)控制等領(lǐng)域。在CAN總線(xiàn)的節點(diǎn)設計中,目前應用較多的是通過(guò)單片機的控制來(lái)實(shí)現。有的單片機已經(jīng)嵌入了CAN控制器的功能,比如Philips的P8XC592,Motorola的68HC05X4等,但這類(lèi)單片機的應用并不普及,而且價(jià)格相對較高。對于目前應用最為普及、價(jià)格也很便宜的MCS-51系列單片機,本身并不嵌有CAN控制器的功能。下面就給出一種基于MCS-51單片機和SJA1000的CAN總線(xiàn)節點(diǎn)設計方法。
1 CAN總線(xiàn)簡(jiǎn)介
CAN 總線(xiàn)是現場(chǎng)總線(xiàn)的一種,它是德國B(niǎo)osch 公司在1986 年為解決現代汽車(chē)中眾多的控制與測試儀器之間的數據交換而開(kāi)發(fā)的一種串行數據通訊總線(xiàn)。它與其它總線(xiàn)最大的區別是兩個(gè)節點(diǎn)之間傳送信息時(shí)報文中沒(méi)有地址信息,而是對不同性質(zhì)的數據加以標識。在通訊時(shí),以全網(wǎng)廣播為基礎,各接收節點(diǎn)根據報文中反映數據性質(zhì)的標識符過(guò)濾報文,該收的收下,不該收的棄而不用。雖然CAN總線(xiàn)最初是為在汽車(chē)行業(yè)應用而開(kāi)發(fā)的,但由于其具有很強的糾錯能力,支持差分收發(fā),因而適合高噪聲環(huán)境,而且傳輸距離比較遠。另外,象Philips,Motorola,Intel等半導體制造商相繼開(kāi)發(fā)出了支持CAN協(xié)議的集成芯片,更是推動(dòng)了CAN總線(xiàn)的應用。目前,CAN總線(xiàn)在數控機床、醫療設備、工業(yè)控制等領(lǐng)域也取得了廣泛的應用。1993年,國際標準化組織正式頒布了CAN總線(xiàn)的國際標準ISO11898。其具體特性如下:
(1)CAN網(wǎng)絡(luò )上的節點(diǎn)信息可以分成不同的優(yōu)先級,用來(lái)滿(mǎn)足不同的實(shí)時(shí)要求。
(2)CAN為多主工作方式,網(wǎng)絡(luò )上任一節點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上的其他節點(diǎn)發(fā)送信息,而不分主從。
(3)當多個(gè)節點(diǎn)同時(shí)向總線(xiàn)發(fā)送信息時(shí),CAN采用非破壞性總線(xiàn)仲裁技術(shù),低優(yōu)先級的節點(diǎn)會(huì )依此退出發(fā)送,而最高優(yōu)先級的節點(diǎn)正常發(fā)送,不會(huì )受到任何影響,極大地節省了總線(xiàn)沖突仲裁時(shí)間。
(4)發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動(dòng)重發(fā)送。
(5)CAN的直接通訊距離最遠可達到10km(速率5kbps以下),通訊速率最高可以達到1Mbps(此時(shí)通訊距離最長(cháng)為40m)。
(6)CAN的每幀信息都有CRC校驗及其它檢錯措施,保證了出錯率很低。
(7)CAN節點(diǎn)在錯誤嚴重的情況下具有自動(dòng)關(guān)閉,退出總線(xiàn)的功能,從而使總線(xiàn)上的其它接點(diǎn)不受影響。SOC開(kāi)發(fā)平臺360元 單片機開(kāi)發(fā)系統498元 單片機學(xué)習板138 無(wú)線(xiàn)nRF-9E5模塊100元 51單片機試驗開(kāi)發(fā)板238元 Genius NSP通用編程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9開(kāi)發(fā)板800
2 SJA1000的介紹
SJA1000是Philips生產(chǎn)的獨立CAN總線(xiàn)控制器,它是早期的PCA82C200的替代產(chǎn)品。它與PCA82C200在管腳、電氣特性上完全兼容,不僅有和PCA82C200一樣的基本CAN(BasicCAN)工作模式,而且新增加了增強CAN(PeliCAN)工作模式,這種模式支持具有很多新特性的CAN2.0B協(xié)議。經(jīng)過(guò)簡(jiǎn)單連接和正確設置的SJA1000,能自動(dòng)完成CAN總線(xiàn)物理層和數據鏈路層的所有功能,對于單片機來(lái)說(shuō),只要把它看成一個(gè)基本的I/O設備即可,使用非常簡(jiǎn)單、方便。SJA1000的主要特性如下:
(1)擴展的接受緩沖器(64字節,先進(jìn)先出FIFO)。
(2)和CAN2.0B協(xié)議兼容。
(3)同時(shí)支持11位和29位識別碼。
(4)位速率最高可達1Mbits/s。
(5)支持多種微處理器接口。
(6)增強的溫度適應性。
3 節點(diǎn)硬件電路設計說(shuō)明
目前廣泛流行的CAN器件分兩大類(lèi),一類(lèi)是獨立的CAN控制器,如PCA82C200、SJA1000等,另一類(lèi)就是帶有CAN功能的微控制器,如Philips的P8XC592,Motorola的68HC05X4等??紤]芯片的市場(chǎng)普及程度、開(kāi)發(fā)工具及成本等因素,在這次設計中選用單片機AT89C51為核心,SJA1000為CAN控制器,同時(shí)還使用了PCA82C250,它是CAN控制器的接口芯片。從功能上來(lái)分,SJA1000主要完成CAN的通訊協(xié)議,實(shí)現報文的裝配和拆分、接收信息的過(guò)濾和校驗等。PCA82C250則是實(shí)現CAN控制器和通訊線(xiàn)路的物理連接,提高CAN總線(xiàn)的驅動(dòng)能力和可靠性。具體電路如下圖所示,雖然整個(gè)電路比較簡(jiǎn)單,但結合本人設計、現場(chǎng)調試的體會(huì ),給出下面幾點(diǎn)說(shuō)明。
評論