基于S3C2410的CAN總線(xiàn)通信設計與開(kāi)發(fā)
網(wǎng)絡(luò )化控制系統是控制系統的發(fā)展趨勢和研究熱點(diǎn),現場(chǎng)總線(xiàn)控制系統作為網(wǎng)絡(luò )化系統的重要組成部分,近年來(lái)在實(shí)際的控制系統中得到了廣泛的應用。CAN(Con- troller Area Network)總線(xiàn)作為一種容錯性強、可靠性高、布線(xiàn)簡(jiǎn)單且成本低廉的現場(chǎng)總線(xiàn)倍受用戶(hù)欽睞,在國內CAN總線(xiàn)已經(jīng)得到了廣泛應用。目前國內廣泛應用的獨立CAN控制器SJA1000因存在如地址、數據總線(xiàn)的分時(shí)復用常導致接口效率低下;接收、發(fā)送緩沖區的個(gè)數太少,導致數據吞吐率不高;幀屏蔽和過(guò)濾器的設置不夠靈活,不能滿(mǎn)足同時(shí)需要更多屏蔽和過(guò)濾條件的要求等。
ARM芯片S3C2410是一種高集成度,高性?xún)r(jià)比的嵌入式處理芯片,已成功用于工控設備上。然而其美中不足的是沒(méi)有集成CAN控制器,使其在工控產(chǎn)品中的應用中受到了一定的阻礙。為了解決這一問(wèn)題,同時(shí)考慮到盡可能降低硬件電路的復雜性,保證CAN總線(xiàn)通訊的穩定性和效率,采用帶SPI接口的獨立CAN控制器MCP2515來(lái)給S3C2410擴展CAN接口。下面以自行開(kāi)發(fā)的人機界面(HMI,Human Machine Interface)中CAN總線(xiàn)通訊接口設計為例進(jìn)行說(shuō)明。
2 CAN總線(xiàn)接口硬件設計
下面先簡(jiǎn)要介紹相關(guān)控制器芯片,后對CAN接口硬件設計作詳細說(shuō)明。
2.1 ARM芯片S3C2410和CAN控制器MCP2515簡(jiǎn)介
S3C2410是三星公司設計的32位RISC嵌入式處理器。該芯片基于A(yíng)RM920T內核,采用五級流水線(xiàn)和哈佛結構,提供1.1MIPS/MHz的性能。為了減少應用系統設計的成本,S3C2410集成了眾多的常用資源,如:LCD控制器、SDRAM控制器、一個(gè)觸摸屏接口、兩個(gè)SPI接口等,內核最高工作頻率可達266MHz。
獨立CAN控制器MCP2515靈活的中斷能力、接收幀屏蔽和過(guò)濾、幀優(yōu)先級設定等特性使其能夠很好的對信息進(jìn)行管理,減輕了處理器的負擔和軟件設計的復雜度。其獨特功能如下:
(1) 有標準幀和擴展幀兩種數據幀可供選擇,每個(gè)幀的數據字段長(cháng)度可為0-8字節,標準幀數據段的前兩個(gè)字節可單獨過(guò)濾;
(2) 內含3個(gè)發(fā)送緩沖器和2個(gè)接收緩沖器,并且其優(yōu)先級可編程設定;
(3) 內含6個(gè)29字節的接收過(guò)濾器和2個(gè)29字節的接收屏蔽器;
(4) 具有Loop-Back(自環(huán)檢測)模式;支持更高層的協(xié)議,如DeviceNet、SAEJ1939;
2.2 硬件接口設計
S3C2410的SPI接口兼容SPI V2.11協(xié)議,可支持查詢(xún)、中斷和DMA三種數據傳送模式。MCP2515連接到S3C2410的SPI0口,其相互連接關(guān)系如圖1所示。
圖1 PROFIBUS 網(wǎng)絡(luò )特性
(2) 為了隔離總線(xiàn)上的干擾信號,提高系統的可靠性,CAN控制器與CAN收發(fā)器之間采用了光隔。光隔的兩邊應該采用獨立的供電電源,不可與系統的其他部分直接共地。
(3) 在CANH和CANL之間使用了兩個(gè)等值電阻(R410、R411)和旁路電容(C408)來(lái)提高EME(Electro Magnatic Emission)性能,減少該部分對系統其他部分的干擾。
(4) MCP2515在初始上電、復位以及從休眠模式喚醒后最初的128 OSC時(shí)鐘周期內,OST(振蕩啟動(dòng)定時(shí)器)保持復位狀態(tài)。應注意在OST超時(shí)前不應對SPI進(jìn)行操作。
(5) RX是為減少EMI(Electro Magnatic Interference)而設計的。CANH、CANL的轉換率與RX上流經(jīng)的電流成正比。
3 CAN總線(xiàn)接口軟件設計
CAN總線(xiàn)軟件接口為應用層訪(fǎng)問(wèn)CAN控制器—MCP2515提供了一個(gè)便捷的“通道”,該“通道”屏蔽了CAN控制器工作的實(shí)現細節,使得應用層面向通信是透明的。該接口通過(guò)SPI接口通信來(lái)實(shí)現對CAN控制器的操作。它們之間的相互關(guān)系如圖2所示。
評論