基于Infineon單片機的CAN網(wǎng)關(guān)研究
在歐洲乃至世界上的很多汽車廠家,大部分的車內(nèi)電子控制單元大量使用原德國西門子半導體部門英飛凌科技(Infineon Technologies)的微控制器,特別是C166系列MCU,其優(yōu)良特性得到各大汽車廠家的公認[1]。Infineon XC2000系列MCU是英飛凌新推出的具有32位處理器性能的16位MCU。XC2000家族又下分3個系列:XC2200、XC2300和XC2700。XC2200主要針對車身網(wǎng)關(guān)的應(yīng)用;XC2300主要針對汽車安全性能的應(yīng)用;XC2700則主要針對傳動系統(tǒng)的應(yīng)用。XC2000系列相對XC166系列,其內(nèi)部的Flash和SRAM更大、主頻更快、外設(shè)(如CAN節(jié)點)更多。其中,片內(nèi)Flash最大為768 KB,片內(nèi)SRAM最大為82 KB,主頻最高為80 MHz。
本網(wǎng)關(guān)采用Infineon公司生產(chǎn)的XC2200單片機,利用該單片機MultiCAN模塊的網(wǎng)關(guān)(Gateway)功能實現(xiàn)CAN網(wǎng)關(guān)[2]。
1 CAN總線協(xié)議
CAN總線是一種多主總線,支持分布式實時控制的串行數(shù)據(jù)通信網(wǎng)絡(luò),可以有效地構(gòu)成分布式實時監(jiān)測控制系統(tǒng)。CAN提供高達1 Mb/s的數(shù)據(jù)傳輸速率,這使實時控制變得非常容易。另外,硬件的錯誤檢定特性增強了CAN的抗電磁干擾能力。CAN 協(xié)議支持4種不同的幀類型:數(shù)據(jù)幀、遠程幀、出錯幀、超載幀。
在各種幀類型中,最常用的是數(shù)據(jù)幀。CAN標準幀類型的數(shù)據(jù)幀如圖1所示,這也是CiA推薦的CANopen數(shù)據(jù)幀格式。本文引用地址:http://butianyuan.cn/article/173388.htm
2 CAN總線通信硬件實現(xiàn)
通常,1個完整的CAN節(jié)點應(yīng)該包括以下3個部分:微控制器(MCU)、CAN控制器、CAN收發(fā)器。在本系統(tǒng)中,由于XC2200單片機內(nèi)部集成了CAN控制器,因此在外圍電路設(shè)計上只需考慮CAN收發(fā)器[3]。
本系統(tǒng)CAN收發(fā)器采用PCA82C250,PCA82C250與CAN總線的接口部分采用了安全和抗干擾措施。CANH和CANL與地之間并聯(lián)了2個30 pF的小電容,可以濾除總線的高頻干擾。另外,在2根CAN總線接入端與地之間分別反接1個保護二極管,當CAN總線有較高的負電壓時,通過二極管的短路可起到一定的過壓保護作用。PCA82C250的Rs腳上接有1個斜率電阻,電阻大小可根據(jù)總線通信速度適當調(diào)整,一般在16~140 kΩ之間。
用光電隔離芯片6N137將CAN控制器和收發(fā)器PCA82C250隔離, 以便有效地增加通信距離和抗干擾能力。CAN 總線物理層接口電路如圖2所示,隔離器把單片機的TXD、RXD與PCA82C250的TXD、RXD分別連接,然后把PCA82C250的CANH和CANL腳分別接到CAN 總線的CANH和CANL上。
3 MultiCAN模塊及網(wǎng)關(guān)功能實現(xiàn)
3.1 MultiCAN模塊[4]
本方案采用XC2267單片機,該單片機MultiCAN模塊擁有5個CAN節(jié)點和128個信息對象。本方案只使用其中4個CAN節(jié)點,每個節(jié)點都連接獨立的CAN收發(fā)器,構(gòu)成CAN通道。在MultiCAN模塊中,每個CAN節(jié)點可以被獨立地配置,且每個節(jié)點所在的CAN總線波特率可以不同。
利用該模塊的Gateway模式可方便地實現(xiàn)CAN網(wǎng)關(guān)功能,完成不同CAN總線上的數(shù)據(jù)交換[5]。這個過程無需CPU參與,有效減輕了CPU負荷,而使硬件承接了更多的工作量,改進了CAN網(wǎng)關(guān)設(shè)備的實時性能。
網(wǎng)關(guān)模式以信息對象為基礎(chǔ),在該模式下,數(shù)據(jù)在2個信息對象之間傳遞,從而實現(xiàn)信息對象所隸屬的CAN節(jié)點之間的數(shù)據(jù)交換。利用信息對象之間的交換機制可以在任意2個CAN節(jié)點之間建立起網(wǎng)關(guān),通常需要指明信息對象的具體傳輸方向(接收或發(fā)送)。
該單片機MultiCAN模塊擁有多達128個信息對象,所有的CAN節(jié)點共享有這些信息對象,每個對象都可獨立地分配給MultiCAN模塊內(nèi)任1個CAN節(jié)點。每個CAN節(jié)點都有1個相應(yīng)的雙向信息對象列表,通過這個列表來管理該節(jié)點的信息對象,每個CAN節(jié)點只能把CAN信息儲存在位于自身列表中的信息對象中。
3.2 CAN網(wǎng)關(guān)軟件設(shè)計
3.2.1 PC端網(wǎng)關(guān)配置軟件
利用MFC編寫PC端網(wǎng)關(guān)配置軟件。PC機通過異步串行通信接口連接到網(wǎng)關(guān)設(shè)備,對其進行配置,配置即時生效。其配置界面如圖3所示。
西門子plc相關(guān)文章:西門子plc視頻教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
交換機相關(guān)文章:交換機工作原理
隔離器相關(guān)文章:隔離器原理
評論