基于WINCE的CAN驅(qū)動的研究與實(shí)現(xiàn)
1 引言
CAN,全稱為“Controller Area Network”,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。最初,CAN被設(shè)計(jì)作為汽車環(huán)境中的微控制器通訊,在車載電子控制裝置ECU之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。比如:發(fā)動機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置。
一個由CAN 總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。例如,當(dāng)使用Philips P82C250作為CAN收發(fā)器時,同一網(wǎng)絡(luò)中允許掛接110個節(jié)點(diǎn)。CAN 可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時控制變得非常容易。另外,硬件的錯誤檢查特性也增強(qiáng)了CAN的抗電磁干擾能力。
CAN具有十分優(yōu)越的特點(diǎn),使人們樂于選擇。這些特性包括:
(1)低成本,極高的總線利用率。
(2)很遠(yuǎn)的數(shù)據(jù)傳輸距離(長達(dá)10Km),高速的數(shù)據(jù)傳輸速率(高達(dá)1Mbit/s)。
(3)可靠的錯誤處理和檢錯機(jī)制;發(fā)送的信息遭到破壞后,可自動重發(fā)。
(4)節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動退出總線的功能。
因此,實(shí)現(xiàn)符合工業(yè)標(biāo)準(zhǔn)的嵌入式CAN總線驅(qū)動具有非常重大的現(xiàn)實(shí)意義和研究價(jià)值。
2 CAN總線協(xié)議
CAN總線協(xié)議棧,按下圖分層為:
1、CAN卡內(nèi)已經(jīng)實(shí)現(xiàn)了CAN協(xié)議層。對于具體的某個智能模塊設(shè)備,雖然通訊協(xié)議層都采用CAN協(xié)議層,但應(yīng)用層還不一致,所以還需要對具體的設(shè)備進(jìn)行特定的驅(qū)動開發(fā)。
2、CAN協(xié)議層并不能保證數(shù)據(jù)可靠的傳輸,所以對具體的設(shè)備進(jìn)行驅(qū)動開發(fā)時要注意對協(xié)議數(shù)據(jù)進(jìn)行檢查。
3、MCGS應(yīng)用CAN總線,對應(yīng)也分為3層,對應(yīng)關(guān)系如上圖所示。子設(shè)備協(xié)議完成應(yīng)用層協(xié)議,父設(shè)備完成CAN協(xié)議層。
4、從上圖可以看出,父設(shè)備完成CAN協(xié)議層,封裝了CAN控制器(MCP2515、SJA1000),并提供上層子設(shè)備協(xié)議層接口。
3 應(yīng)用模式
第一種,主從模式:
在此模式中,只有1個主機(jī)(TPC)會輪詢采集數(shù)據(jù),或發(fā)送設(shè)備命令;其它設(shè)備(CAN設(shè)備)不會主動發(fā)送數(shù)據(jù),只是被動響應(yīng)。此模式應(yīng)用比較多,但對子設(shè)備有要求:子設(shè)備(CAN設(shè)備)不會主動發(fā)送數(shù)據(jù)。
第二種,分布模式:上面的主從模式對子設(shè)備造成了限制,網(wǎng)絡(luò)如果更復(fù)雜限制就會更多。本來CAN總線網(wǎng)就是分布實(shí)時控制網(wǎng)絡(luò),所以就應(yīng)該設(shè)計(jì)成分布模式。該方式對子設(shè)備沒有要求,但對子設(shè)備(CAN設(shè)備)開發(fā)驅(qū)動有所要求,要求子設(shè)備按自己的協(xié)議做,不能假設(shè)任何情況。這要求開發(fā)驅(qū)動的人員深入了解CAN 總線協(xié)議的數(shù)據(jù)幀和遠(yuǎn)程幀。
相關(guān)推薦
-
beibeidong | 2008-03-18
-
-
-
jobs | 2014-01-18
-
-
-
-
呼啦呼啦 | 2009-03-02
-
-
Hugo801122 | 2014-03-21
-
-
-
-
halibote523 | 2010-12-01
-
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論