新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Infineon單片機(jī)的CAN網(wǎng)關(guān)研究

基于Infineon單片機(jī)的CAN網(wǎng)關(guān)研究

作者: 時(shí)間:2010-04-07 來(lái)源:網(wǎng)絡(luò) 收藏
控制器局域網(wǎng)(Controller Area Network)是德國(guó)Robert Bosch公司在20世紀(jì)80年代初為汽車(chē)業(yè)開(kāi)發(fā)的一種車(chē)載專(zhuān)用串行數(shù)據(jù)通信總線(xiàn),經(jīng)過(guò)多年的發(fā)展,現(xiàn)在越來(lái)越多地被眾多汽車(chē)廠(chǎng)商所認(rèn)可。不僅在汽車(chē)領(lǐng)域,而且在工業(yè)控制領(lǐng)域也得到了廣泛的應(yīng)用,如工業(yè)現(xiàn)場(chǎng)控制、小區(qū)安防、環(huán)境監(jiān)控等。由于在具體工程應(yīng)用中往往需要連接2路或者多路子網(wǎng),因此,CAN是必不可少的,是組網(wǎng)的關(guān)鍵設(shè)備之一。
 在歐洲乃至世界上的很多汽車(chē)廠(chǎng)家,大部分的車(chē)內(nèi)電子控制單元大量使用原德國(guó)西門(mén)子半導(dǎo)體部門(mén)英飛凌科技( Technologies)的微控制器,特別是C166系列MCU,其優(yōu)良特性得到各大汽車(chē)廠(chǎng)家的公認(rèn)[1]。 XC2000系列MCU是英飛凌新推出的具有32位處理器性能的16位MCU。XC2000家族又下分3個(gè)系列:XC2200、XC2300和XC2700。XC2200主要針對(duì)車(chē)身的應(yīng)用;XC2300主要針對(duì)汽車(chē)安全性能的應(yīng)用;XC2700則主要針對(duì)傳動(dòng)系統(tǒng)的應(yīng)用。XC2000系列相對(duì)XC166系列,其內(nèi)部的Flash和SRAM更大、主頻更快、外設(shè)(如CAN節(jié)點(diǎn))更多。其中,片內(nèi)Flash最大為768 KB,片內(nèi)SRAM最大為82 KB,主頻最高為80 MHz。
 本采用公司生產(chǎn)的XC2200,利用該MultiCAN模塊的網(wǎng)關(guān)(Gateway)功能實(shí)現(xiàn)CAN網(wǎng)關(guān)[2]。
1 CAN總線(xiàn)協(xié)議
 CAN總線(xiàn)是一種多主總線(xiàn),支持分布式實(shí)時(shí)控制的串行數(shù)據(jù)通信網(wǎng)絡(luò),可以有效地構(gòu)成分布式實(shí)時(shí)監(jiān)測(cè)控制系統(tǒng)。CAN提供高達(dá)1 Mb/s的數(shù)據(jù)傳輸速率,這使實(shí)時(shí)控制變得非常容易。另外,硬件的錯(cuò)誤檢定特性增強(qiáng)了CAN的抗電磁干擾能力。CAN 協(xié)議支持4種不同的幀類(lèi)型:數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀、超載幀。
 在各種幀類(lèi)型中,最常用的是數(shù)據(jù)幀。CAN標(biāo)準(zhǔn)幀類(lèi)型的數(shù)據(jù)幀如圖1所示,這也是CiA推薦的CANopen數(shù)據(jù)幀格式。

本文引用地址:http://m.butianyuan.cn/article/173388.htm

2 CAN總線(xiàn)通信硬件實(shí)現(xiàn)
通常,1個(gè)完整的CAN節(jié)點(diǎn)應(yīng)該包括以下3個(gè)部分:微控制器(MCU)、CAN控制器、CAN收發(fā)器。在本系統(tǒng)中,由于XC2200內(nèi)部集成了CAN控制器,因此在外圍電路設(shè)計(jì)上只需考慮CAN收發(fā)器[3]。
本系統(tǒng)CAN收發(fā)器采用PCA82C250,PCA82C250與CAN總線(xiàn)的接口部分采用了安全和抗干擾措施。CANH和CANL與地之間并聯(lián)了2個(gè)30 pF的小電容,可以濾除總線(xiàn)的高頻干擾。另外,在2根CAN總線(xiàn)接入端與地之間分別反接1個(gè)保護(hù)二極管,當(dāng)CAN總線(xiàn)有較高的負(fù)電壓時(shí),通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用。PCA82C250的Rs腳上接有1個(gè)斜率電阻,電阻大小可根據(jù)總線(xiàn)通信速度適當(dāng)調(diào)整,一般在16~140 kΩ之間。
用光電隔離芯片6N137將CAN控制器和收發(fā)器PCA82C250隔離, 以便有效地增加通信距離和抗干擾能力。CAN 總線(xiàn)物理層接口電路如圖2所示,隔離器把單片機(jī)的TXD、RXD與PCA82C250的TXD、RXD分別連接,然后把PCA82C250的CANH和CANL腳分別接到CAN 總線(xiàn)的CANH和CANL上。


3 MultiCAN模塊及網(wǎng)關(guān)功能實(shí)現(xiàn)
3.1 MultiCAN模塊[4]

本方案采用XC2267單片機(jī),該單片機(jī)MultiCAN模塊擁有5個(gè)CAN節(jié)點(diǎn)和128個(gè)信息對(duì)象。本方案只使用其中4個(gè)CAN節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都連接獨(dú)立的CAN收發(fā)器,構(gòu)成CAN通道。在MultiCAN模塊中,每個(gè)CAN節(jié)點(diǎn)可以被獨(dú)立地配置,且每個(gè)節(jié)點(diǎn)所在的CAN總線(xiàn)波特率可以不同。
利用該模塊的Gateway模式可方便地實(shí)現(xiàn)CAN網(wǎng)關(guān)功能,完成不同CAN總線(xiàn)上的數(shù)據(jù)交換[5]。這個(gè)過(guò)程無(wú)需CPU參與,有效減輕了CPU負(fù)荷,而使硬件承接了更多的工作量,改進(jìn)了CAN網(wǎng)關(guān)設(shè)備的實(shí)時(shí)性能。
  網(wǎng)關(guān)模式以信息對(duì)象為基礎(chǔ),在該模式下,數(shù)據(jù)在2個(gè)信息對(duì)象之間傳遞,從而實(shí)現(xiàn)信息對(duì)象所隸屬的CAN節(jié)點(diǎn)之間的數(shù)據(jù)交換。利用信息對(duì)象之間的交換機(jī)制可以在任意2個(gè)CAN節(jié)點(diǎn)之間建立起網(wǎng)關(guān),通常需要指明信息對(duì)象的具體傳輸方向(接收或發(fā)送)。
該單片機(jī)MultiCAN模塊擁有多達(dá)128個(gè)信息對(duì)象,所有的CAN節(jié)點(diǎn)共享有這些信息對(duì)象,每個(gè)對(duì)象都可獨(dú)立地分配給MultiCAN模塊內(nèi)任1個(gè)CAN節(jié)點(diǎn)。每個(gè)CAN節(jié)點(diǎn)都有1個(gè)相應(yīng)的雙向信息對(duì)象列表,通過(guò)這個(gè)列表來(lái)管理該節(jié)點(diǎn)的信息對(duì)象,每個(gè)CAN節(jié)點(diǎn)只能把CAN信息儲(chǔ)存在位于自身列表中的信息對(duì)象中。
3.2 CAN網(wǎng)關(guān)軟件設(shè)計(jì)
3.2.1 PC端網(wǎng)關(guān)配置軟件

利用MFC編寫(xiě)PC端網(wǎng)關(guān)配置軟件。PC機(jī)通過(guò)異步串行通信接口連接到網(wǎng)關(guān)設(shè)備,對(duì)其進(jìn)行配置,配置即時(shí)生效。其配置界面如圖3所示。

西門(mén)子plc相關(guān)文章:西門(mén)子plc視頻教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


交換機(jī)相關(guān)文章:交換機(jī)工作原理


隔離器相關(guān)文章:隔離器原理

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉