當(dāng)前位置:首頁 > 汽車電子 > 汽車電子
[導(dǎo)讀]1 引言 隨著汽車電子技術(shù)的不斷發(fā)展,車上的電子裝置越來越多,并與傳感器和執(zhí)行器一起共同組成了許多復(fù)雜的電子控制系統(tǒng)。結(jié)果連接這些電子裝置的電子線路迅速膨脹,布線變得越來越困難,導(dǎo)致了車身重量明顯增加,

1 引言
隨著汽車電子技術(shù)的不斷發(fā)展,車上的電子裝置越來越多,并與傳感器和執(zhí)行器一起共同組成了許多復(fù)雜的電子控制系統(tǒng)。結(jié)果連接這些電子裝置的電子線路迅速膨脹,布線變得越來越困難,導(dǎo)致了車身重量明顯增加,車輛運(yùn)行的可靠性降低。傳統(tǒng)點(diǎn)對點(diǎn)的連接方式已經(jīng)無法滿足現(xiàn)代汽車電子技術(shù)發(fā)展的要求,多路傳輸?shù)能囕d網(wǎng)絡(luò)技術(shù)成為解決這些問題的必然選擇。德國BOSCH 公司[1]推出的控制局域網(wǎng)CAN(Controller Area Network)依靠其穩(wěn)定的性能、低廉的價格和很高的可靠性和實(shí)時性,現(xiàn)在已經(jīng)被廣泛地應(yīng)用于汽車內(nèi)部網(wǎng)絡(luò)。CAN總線的采用使汽車內(nèi)部的信息數(shù)據(jù)共享成為現(xiàn)實(shí)。然而,現(xiàn)在信息數(shù)據(jù)的共享不僅僅局限于汽車內(nèi)部,許多數(shù)據(jù)信息需要與外界進(jìn)行交換。這些信息主要用于汽車導(dǎo)航、汽車GPS 定位、汽車防盜、汽車遠(yuǎn)程監(jiān)控、汽車遠(yuǎn)程調(diào)度和收費(fèi)等方面。由于汽車可移動性的特點(diǎn),很多與外界交互的信息需要通過無線傳輸,所以我們選擇具有覆蓋面廣、接入速度快、按流量計(jì)費(fèi)等優(yōu)點(diǎn)的通用分組無線業(yè)務(wù)GPRS(General Packet Radio Service)來承載無線數(shù)據(jù)通信。GPRS 是在GSM 基礎(chǔ)上發(fā)展起來的一種無線分組交換技術(shù)[2],被稱為2.5G,最高帶寬可達(dá)171.2Kb/s,可較好的滿足無線通信的要求。
2 總體網(wǎng)絡(luò)拓?fù)?br />總體網(wǎng)絡(luò)拓?fù)淙鐖D 1 所示,汽車內(nèi)部的電子控制單元都掛接到CAN 網(wǎng)上,汽車的內(nèi)部數(shù)據(jù)信息通過CAN 總線進(jìn)行傳遞,而需要與外界交互的數(shù)據(jù)則通過CAN/GPRS 無線車載網(wǎng)關(guān)進(jìn)行收發(fā)。
500)this.style.width=500;" border="0" />

數(shù)據(jù)經(jīng)過基站收發(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);然后再通過GPRS 網(wǎng)關(guān)支持節(jié)點(diǎn)GGSN(Gateway GPRS Support Node),進(jìn)入Internet 互聯(lián)網(wǎng);并可以通過TCP 或UDP 協(xié)議把數(shù)據(jù)傳送到Internet 遠(yuǎn)程服務(wù)器。
3 CAN/GPRS 無線車載網(wǎng)關(guān)硬件實(shí)現(xiàn)
因?yàn)檎麄€汽車內(nèi)部CAN網(wǎng)與外界交互的數(shù)據(jù)都需要通過CAN/GPRS無線車載網(wǎng)關(guān)進(jìn)行收發(fā),所以網(wǎng)關(guān)需要配備一個性能較高的微處理器。我們選擇具有較高性價比的一款三星公司的32 位ARM9 微處理器S3C2410X 來作為網(wǎng)關(guān)的主控制器。S3C2410X 包含ARM920T核,最高處理速度為203MHz[6],豐富的外圍設(shè)備包括3 通道的UART、4 通道的DMA、2個SPI 接口、117 個通用I/O 口和24 個外部中斷源等。采用一片三星的K9F1208 NAND Flash芯片(64M *8Bit)來儲存網(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ì)了一個20 針JTAG 接口,用來燒寫B(tài)ootloader。使用1 片MAX3232 構(gòu)成UART 調(diào)試接口。因?yàn)檎麄€系統(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 個發(fā)送緩沖器、2 個接收緩沖器,高速SPI 接口支持0,0 和1,1SPI 模式。TJA1050具有對總線差分信號的收發(fā)功能和抗汽車環(huán)境下的瞬間干擾等能力。網(wǎng)關(guān)的GPRS 接口采用SIMCOM 公司的SIM300 GSM/GPRS 模塊,該模塊可為GSM 語音、短消息和GPRS 上網(wǎng)等業(yè)務(wù)提供無線接口。采用6 腳SIM 卡座來連接SIM 卡。網(wǎng)關(guān)的硬件結(jié)構(gòu)如圖2 所示。

500)this.style.width=500;" border="0" />

在實(shí)際硬件連接時,S3C2410 的SPI 接口與MCP2510 的SPI 接口直接相連。MCP2510的TXCAN、RXCAN 引腳分別與TJA1050 的TXD、RXD 引腳相連,而TJA1050 的CANH和CANL 引腳分別接到CAN 總線的CANH 線和CANL 線上。因?yàn)镾3C2410 的UART 口并沒有引出DCD、 DTR、DSR 和RI 信號引腳,要通過SIM300 無線聯(lián)網(wǎng),最好使用全部的信號引腳,所以我們使用PHILIPS 的SC16C550 從S3C2410 上擴(kuò)展出標(biāo)準(zhǔn)的UART 接口與
SIM300 的UART 接口進(jìn)行連接。CAN/GPRS 網(wǎng)關(guān)主要通信模塊的硬件電路原理圖如圖3 所示。
500)this.style.width=500;" border="0" />

4 CAN/GPRS 無線車載網(wǎng)關(guān)軟件實(shí)現(xiàn)
4.1 ARM-Linux 操作系統(tǒng)移植.
使用韓國 MIZI 公司開發(fā)的VIVI 作為bootloader、選擇2.6 內(nèi)核的ARM-Linux 作為嵌入式操作系統(tǒng),并用busybox 制作Linux 的根文件系統(tǒng)。在K9F1208 NAND Flash 芯片上存儲區(qū)域的劃分如表1 所示。

500)this.style.width=500;" border="0" />

4.2 ARM-Linux 下SPI 驅(qū)動程序編寫
使用 S3C2410 自帶的SPI 通道0 與MCP2510 進(jìn)行通信,其SPI 驅(qū)動程序流程[3]如下:
(1)寫SPPRE0 寄存器,設(shè)置波特率。
(2)寫SPCON0 寄存器,設(shè)置數(shù)據(jù)傳輸為0,0SPI 模式。
(3)向SPIDAT0 寄存器寫10 次0xFF,以初始化MCP2510。
(4)設(shè)置GPIO 引腳,用來充當(dāng)片選,設(shè)定低電平以激活MCP2510。
(5)檢查SPSTA0 寄存器的發(fā)送狀態(tài)位REDY 是否為1,若是,則可以向SPTDAT0 寄存器寫數(shù)據(jù)并發(fā)送出去。
(6)SPCON0 寄存器的TAGD 不使能,向SPTDAT0 寄存器寫入0xFF,在確認(rèn)REDY 有效后,可從SPRDAT0 寄存器中讀數(shù)據(jù);TAGD 使能,確認(rèn)REDY 后,也可從SPRDAT0 寄存器中讀數(shù)據(jù)。
(7)設(shè)置GPIO 引腳,信號設(shè)為高電平,片選不使能。
4.3 ARM-Linux 下CAN 驅(qū)動程序編寫
因?yàn)?CAN 應(yīng)用層協(xié)議是基于CAN2.0B 技術(shù)規(guī)范設(shè)計(jì)的,所以通信報文采用CAN2.0B擴(kuò)展幀格式。
初始化:(1)發(fā)送0xc0 復(fù)位指令,MCP2510 復(fù)位;(2)進(jìn)入配置模式,設(shè)置CAN 總線波特率,關(guān)中斷;(3) 設(shè)置屏蔽寄存器RXM(0、1)SID(L/H)、RXM(0、1)EID(8/0)和濾波寄存器RXF(0~5)SID(L/H)、RXF(0、1)EID(8/0)并啟動;(4)設(shè)置CAN 設(shè)備為普通模式并切換到正常模式;(5)清空接收和發(fā)送緩沖區(qū)。(6)開啟接收或發(fā)送緩沖區(qū),開啟中斷。發(fā)送報文:(1)寫標(biāo)識符寄存器TXB(0~2)SID(L/H)、TXB(0~2)EID(8/0);(2)向發(fā)送緩沖器數(shù)據(jù)長度寄存器TXB(0~2)DLC 寫入要發(fā)送的報文長度;(3) 寫數(shù)據(jù)時,需依次向MCP2510 發(fā)送0x02 寫指令、發(fā)送緩沖器數(shù)據(jù)寄存器TXB(0~2)DM 的8 位地址碼和需要發(fā)送的報文數(shù)據(jù);(4)必須進(jìn)行發(fā)送有效性檢測,即:檢測發(fā)送緩沖器控制寄存器TXB(0~2)CTRL 的TXREQ 位。為1 時,說明正在發(fā)送報文,須等待;當(dāng)此報文發(fā)送完畢后,該位將被自動清零,這時才可寫入下一個將要發(fā)送的報文數(shù)據(jù)。接收報文:(1) 向MCP2510 發(fā)送0xA0 狀態(tài)讀指令,并不斷檢測中斷標(biāo)志寄存器CANINTF,當(dāng)發(fā)現(xiàn)RX(0、1)IF 位為1,說明接收緩沖器已收到報文;(2)這時可從接收緩沖器標(biāo)識符寄存器中讀出幀的ID,從接收緩沖器數(shù)據(jù)長度寄存器RX(0、1)BDLC 讀出收到的報文長度;(3)讀數(shù)據(jù)時,需依次向MCP2510 發(fā)送0x03 讀指令、接收緩沖器數(shù)據(jù)寄存器RXB(0、1)DM 的8 位地址碼后MCP2510 才會將數(shù)據(jù)通過SO 引腳發(fā)送出來。讀完數(shù)據(jù),RX(0、1)IF 位需清零。
4.4 ARM-Linux 下串口驅(qū)動程序修改及加載
因?yàn)槲覀兪褂玫氖桥c 16c550 寄存器兼容的UART 控制器芯片SC16C550,所以需要加載其在Linux 下的驅(qū)動程序serial_8250.c。但SC16C550 芯片是通過外部總線和S3C2410 微處理器連接的,所以在驅(qū)動程序的serial8250_isa_init_ports 函數(shù)中需加入對SC16C550 芯片所在Bank 空間的初始化,包括設(shè)置讀/寫時序、速度和總線寬度等信息[4]。
4.5 ARM-Linux 下GPRS 聯(lián)網(wǎng)
GPRS 通過PPP(Point-to-Point Protocol,點(diǎn)對點(diǎn)協(xié)議)來完成聯(lián)網(wǎng)。PPP 是在直接連接的串行鏈路上創(chuàng)建和運(yùn)行IP 網(wǎng)際協(xié)議或其他網(wǎng)絡(luò)協(xié)議的一個方案。在ARM-Linux 下對PPP的支持需要內(nèi)核和應(yīng)用程序配合管理。對于Linux2.6 內(nèi)核,在配置內(nèi)核時需要選擇對PPP的支持,如:在Network device support 菜單下,選擇支持PPP 協(xié)議、PPP 異步/同步串口通信和PPP 壓縮。此外,還需要移植Linux 下PPP 的應(yīng)用程序工具包,即把交叉編譯后得到的pppd、chat 程序加入根文件系統(tǒng)。在根文件系統(tǒng)的/etc/ppp 目錄下,還需編寫3 個腳本文件:options(pppd 配置腳本)、gprs-connect(pppd 連接腳本)、gprs-disconnect(pppd 斷開腳本)。在options 腳本中需指定串口控制臺設(shè)備/dev/ttse/0、連接波特率115200、連接和斷開腳本的存放路徑; 在gprs-connect 腳本中運(yùn)行chat 程序, 并指定APN 接入點(diǎn), 如:'AT+CGDCONT=1,"IP","CMNET","",0,0'和ISP 呼叫號碼:'ATD*99***1#'等。這樣系統(tǒng)啟動
后,直接使用pppd &命令即可實(shí)現(xiàn)GPRS 無線接入互聯(lián)網(wǎng)。
4.6 CAN 應(yīng)用層協(xié)議與UDP 或TCP 協(xié)議轉(zhuǎn)換
因?yàn)?GPRS 網(wǎng)絡(luò)是建立在TCP/IP 協(xié)議基礎(chǔ)上的,所以通過GPRS 網(wǎng)絡(luò)與Internet 遠(yuǎn)程服務(wù)器通信可以使用UDP 或TCP 協(xié)議。由于S3C2410 上不僅移植了Arm-Linux 操作系統(tǒng),其本身已支持TCP/IP 協(xié)議,而且我們也把CAN 的應(yīng)用層協(xié)議加載了上去。所以在網(wǎng)關(guān)上無線發(fā)送數(shù)據(jù)時,只需將汽車CAN 網(wǎng)上的CAN 數(shù)據(jù)包數(shù)據(jù)域中的數(shù)據(jù)加上UDP 或TCP包頭即可發(fā)送出去;當(dāng)在網(wǎng)關(guān)上無線接收數(shù)據(jù)時,只需去掉UDP 或TCP 數(shù)據(jù)包的包頭,得
到的數(shù)據(jù)可以遵照CAN 應(yīng)用層協(xié)議的報文格式向CAN 網(wǎng)上發(fā)送。協(xié)議轉(zhuǎn)換如圖4 所示。

500)this.style.width=500;" border="0" />

4.7 心跳程序的實(shí)現(xiàn)
因?yàn)?CAN/GPRS 無線網(wǎng)關(guān)與Internet 遠(yuǎn)程服務(wù)器通信時,可能會出現(xiàn)連接的異常情況,所以需要使用心跳程序來檢測異常情況的發(fā)生,并通過心跳程序重新?lián)芴杹肀WC無線通信鏈路的正常連接[5]。我們可以定時Ping 遠(yuǎn)程服務(wù)器,若能Ping 通,則表示無線通信鏈路工作正常;若多次無法Ping 通,則必須斷開連接,重新?lián)芴枴?br />5 結(jié)論
本文詳細(xì)介紹了 CAN/GPRS 無線車載網(wǎng)關(guān)的實(shí)現(xiàn),所實(shí)現(xiàn)的網(wǎng)關(guān)在實(shí)驗(yàn)通信網(wǎng)絡(luò)中能較好地完成汽車內(nèi)部CAN 網(wǎng)數(shù)據(jù)信息與外界的交互任務(wù),并能長時間穩(wěn)定運(yùn)行,基本上達(dá)到了工作要求。
本文作者創(chuàng)新點(diǎn):在CAN/GPRS 無線車載網(wǎng)關(guān)上能成功地運(yùn)行ARM-Linux 嵌入式操作系統(tǒng)、心跳程序和底層硬件驅(qū)動程序,完成了CAN 應(yīng)用層協(xié)議與TCP 或UDP 協(xié)議的轉(zhuǎn)換,使得汽車內(nèi)部CAN 網(wǎng)能與外界進(jìn)行無線數(shù)據(jù)通信。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉