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