CAN/GPRS無(wú)線車(chē)載網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)
1 引言
隨著汽車(chē)電子技術(shù)的不斷發(fā)展,車(chē)上的電子裝置越來(lái)越多,并與傳感器和執(zhí)行器一起共同組成了許多復(fù)雜的電子控制系統(tǒng)。結(jié)果連接這些電子裝置的電子線路迅速膨脹,布線變得越來(lái)越困難,導(dǎo)致了車(chē)身重量明顯增加,車(chē)輛運(yùn)行的可靠性降低。傳統(tǒng)點(diǎn)對(duì)點(diǎn)的連接方式已經(jīng)無(wú)法滿足現(xiàn)代汽車(chē)電子技術(shù)發(fā)展的要求,多路傳輸?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/車(chē)載">車(chē)載網(wǎng)絡(luò)技術(shù)成為解決這些問(wèn)題的必然選擇。德國(guó)BOSCH 公司[1]推出的控制局域網(wǎng)CAN(Controller Area Network)依靠其穩(wěn)定的性能、低廉的價(jià)格和很高的可靠性和實(shí)時(shí)性,現(xiàn)在已經(jīng)被廣泛地應(yīng)用于汽車(chē)內(nèi)部網(wǎng)絡(luò)。CAN總線的采用使汽車(chē)內(nèi)部的信息數(shù)據(jù)共享成為現(xiàn)實(shí)。然而,現(xiàn)在信息數(shù)據(jù)的共享不僅僅局限于汽車(chē)內(nèi)部,許多數(shù)據(jù)信息需要與外界進(jìn)行交換。這些信息主要用于汽車(chē)導(dǎo)航、汽車(chē)GPS 定位、汽車(chē)防盜、汽車(chē)遠(yuǎn)程監(jiān)控、汽車(chē)遠(yuǎn)程調(diào)度和收費(fèi)等方面。由于汽車(chē)可移動(dòng)性的特點(diǎn),很多與外界交互的信息需要通過(guò)無(wú)線傳輸,所以我們選擇具有覆蓋面廣、接入速度快、按流量計(jì)費(fèi)等優(yōu)點(diǎn)的通用分組無(wú)線業(yè)務(wù)GPRS(General Packet Radio Service)來(lái)承載無(wú)線數(shù)據(jù)通信。GPRS 是在GSM 基礎(chǔ)上發(fā)展起來(lái)的一種無(wú)線分組交換技術(shù)[2],被稱(chēng)為2.5G,最高帶寬可達(dá)171.2Kb/s,可較好的滿足無(wú)線通信的要求。
2 總體網(wǎng)絡(luò)拓?fù)?br />總體網(wǎng)絡(luò)拓?fù)淙鐖D 1 所示,汽車(chē)內(nèi)部的電子控制單元都掛接到CAN 網(wǎng)上,汽車(chē)的內(nèi)部數(shù)據(jù)信息通過(guò)CAN 總線進(jìn)行傳遞,而需要與外界交互的數(shù)據(jù)則通過(guò)CAN/GPRS 無(wú)線車(chē)載網(wǎng)關(guān)進(jìn)行收發(fā)。
數(shù)據(jù)經(jīng)過(guò)基站收發(fā)信機(jī) BTS(Base Transceiver Station)、基站控制器BSC(Base Station Controller)和GPRS 服務(wù)支持節(jié)點(diǎn)SGSN(Serving GPRS Support Node)進(jìn)入GPRS 骨干網(wǎng);然后再通過(guò)GPRS 網(wǎng)關(guān)支持節(jié)點(diǎn)GGSN(Gateway GPRS Support Node),進(jìn)入Internet 互聯(lián)網(wǎng);并可以通過(guò)TCP 或UDP 協(xié)議把數(shù)據(jù)傳送到Internet 遠(yuǎn)程服務(wù)器。
3 CAN/GPRS 無(wú)線車(chē)載網(wǎng)關(guān)硬件實(shí)現(xiàn)
因?yàn)檎麄€(gè)汽車(chē)內(nèi)部CAN網(wǎng)與外界交互的數(shù)據(jù)都需要通過(guò)CAN/GPRS無(wú)線車(chē)載網(wǎng)關(guān)進(jìn)行收發(fā),所以網(wǎng)關(guān)需要配備一個(gè)性能較高的微處理器。我們選擇具有較高性價(jià)比的一款三星公司的32 位ARM9 微處理器S3C2410X 來(lái)作為網(wǎng)關(guān)的主控制器。S3C2410X 包含ARM920T核,最高處理速度為203MHz[6],豐富的外圍設(shè)備包括3 通道的UART、4 通道的DMA、2個(gè)SPI 接口、117 個(gè)通用I/O 口和24 個(gè)外部中斷源等。采用一片三星的K9F1208 NAND Flash芯片(64M *8Bit)來(lái)儲(chǔ)存網(wǎng)關(guān)軟件系統(tǒng)的Bootloader,Linux 內(nèi)核,根文件系統(tǒng)和網(wǎng)關(guān)程序。由兩片HYNIX 的HY57V561620 DRAM 芯片(4Banks*4M*16Bit)構(gòu)成64M 的SDRAM,用于加載Linux 操作系統(tǒng)和運(yùn)行程序。采用12MHz 的有源晶振。設(shè)計(jì)了一個(gè)20 針JTAG 接口,用來(lái)燒寫(xiě)B(tài)ootloader。使用1 片MAX3232 構(gòu)成UART 調(diào)試接口。因?yàn)檎麄€(gè)系統(tǒng)的輸入電壓為5V,所以需使用AMS1117-3.3 和AMS1117-1.8 分別得到穩(wěn)定的3.3V 和1.8V 電壓。
CAN 控制器選擇Microchip 的MCP2510,CAN 收發(fā)器選擇Philips 的TJA1050 以組成網(wǎng)關(guān)的CAN 通信模塊。MCP2510 支持CAN 總線V2.0A 和V2.0B 技術(shù)規(guī)范,通信數(shù)率可達(dá)1Mb/s,擁有3 個(gè)發(fā)送緩沖器、2 個(gè)接收緩沖器,高速SPI 接口支持0,0 和1,1SPI 模式。TJA1050具有對(duì)總線差分信號(hào)的收發(fā)功能和抗汽車(chē)環(huán)境下的瞬間干擾等能力。網(wǎng)關(guān)的GPRS 接口采用SIMCOM 公司的SIM300 GSM/GPRS 模塊,該模塊可為GSM 語(yǔ)音、短消息和GPRS 上網(wǎng)等業(yè)務(wù)提供無(wú)線接口。采用6 腳SIM 卡座來(lái)連接SIM 卡。網(wǎng)關(guān)的硬件結(jié)構(gòu)如圖2 所示。
在實(shí)際硬件連接時(shí),S3C2410 的SPI 接口與MCP2510 的SPI 接口直接相連。MCP2510的TXCAN、RXCAN 引腳分別與TJA1050 的TXD、RXD 引腳相連,而TJA1050 的CANH和CANL 引腳分別接到CAN 總線的CANH 線和CANL 線上。因?yàn)镾3C2410 的UART 口并沒(méi)有引出DCD、 DTR、DSR 和RI 信號(hào)引腳,要通過(guò)SIM300 無(wú)線聯(lián)網(wǎng),最好使用全部的信號(hào)引腳,所以我們使用PHILIPS 的SC16C550 從S3C2410 上擴(kuò)展出標(biāo)準(zhǔn)的UART 接口與
SIM300 的UART 接口進(jìn)行連接。CAN/GPRS 網(wǎng)關(guān)主要通信模塊的硬件電路原理圖如圖3 所示。
4 CAN/GPRS 無(wú)線車(chē)載網(wǎng)關(guān)軟件實(shí)現(xiàn)
4.1 ARM-Linux 操作系統(tǒng)移植.
評(píng)論