車載信息系統(tǒng)終端的研究與設(shè)計(jì)
1.4 CAN總線節(jié)點(diǎn)硬件設(shè)計(jì)
本文引用地址:http://cafeforensic.com/article/271646.htmCAN總線節(jié)點(diǎn)采用微處理器+CAN控制器+CAN收發(fā)器的設(shè)計(jì)方案,這種方案雖然外部電路設(shè)計(jì)較為復(fù)雜,但是可以根據(jù)應(yīng)用情況靈活地選擇控制芯片,成本比較低。本次設(shè)計(jì)采用的微處理器是高性能、低功耗STC89C52,其內(nèi)部資源完全可以滿足系統(tǒng)的需要,CAN控制器和收發(fā)器分別是SJA1000和TJA1050T,為了提高節(jié)點(diǎn)的抗干擾性,在SJA1000和TJA1050T之間增加了2個(gè)光電耦合器6N137進(jìn)行電氣隔離。STC89C52與SJA1000主要通過(guò)數(shù)據(jù)I/O口相連[6]。SJA1000的片選引腳CS與STC89C52的P2.7相連。圖2為CAN總線控制器和收發(fā)器的原理圖。
2 車載終端的軟件設(shè)計(jì)
論文設(shè)計(jì)的車載終端主要包括3個(gè)功能模塊,分別是:(1)進(jìn)行GPS數(shù)據(jù)的接收與解析;(2)車載終端與GPRS SIM900模塊進(jìn)行通信,實(shí)現(xiàn)上位機(jī)和車載終端之間的交互;(3)車載終端與汽車上的CAN總線節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換,實(shí)現(xiàn)CAN總線協(xié)議與串口協(xié)議之間通信網(wǎng)關(guān)的功能。下面將詳細(xì)介紹這幾個(gè)功能模塊的具體實(shí)現(xiàn)。
2.1 GPS和GPRS軟件設(shè)計(jì)
2.1.1 GPS信息的提取
STM32有多個(gè)串口資源,使用串口1與SIM900通信,串口2與CAN總線進(jìn)行數(shù)據(jù)交互。GPS輸出數(shù)據(jù)遵循NMEA0183協(xié)議,其格式是數(shù)據(jù)中的經(jīng)度、緯度和時(shí)間等信息都是用“,”隔開,通過(guò)判斷“,”的個(gè)數(shù)就可以提取經(jīng)度和緯度信息。同時(shí)還要判斷GPS輸出的數(shù)據(jù)是否有效,數(shù)據(jù)以“$GPRMC”開頭并且第18位為“A”才代表數(shù)據(jù)有效,通過(guò)語(yǔ)句Compare_String(GPS_RxBuf, "$GPRMC", 0, 0, 6) == 1)&&(GPS_RxBuf[18]=='A'))來(lái)判斷,在驗(yàn)證GPS輸出信息有效之后才進(jìn)行下一步的提取經(jīng)緯度信息操作,否則直接過(guò)濾[7]。GPS信息處理流程如圖3所示。
2.1.2 GPRS無(wú)線通信軟件設(shè)計(jì)
SIM900可以工作在透明傳輸模式,也就是說(shuō)不需要對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的封裝,SIM900可以將接收到的數(shù)據(jù)直接通過(guò)網(wǎng)絡(luò)發(fā)送出去。對(duì)SIM900的控制是通過(guò)AT指令來(lái)實(shí)現(xiàn)的,比較常用的透明傳輸AT指令有"AT+CIPMODE=1rn"、AT+CGATT=1rn"、"AT+CIPCCFG=5,2,1024,1rn"等等。
為了保證數(shù)據(jù)的安全性和解析的方便,通信雙方之間定義了一個(gè)應(yīng)用層協(xié)議,協(xié)議內(nèi)容包括幀頭、VIN號(hào)、幀類型、數(shù)據(jù)內(nèi)容、校驗(yàn)和、幀尾等。幀頭使用“$$”字符表示數(shù)據(jù)的開始,幀尾使用“&&”表示數(shù)據(jù)的結(jié)束。車載終端與監(jiān)控中心之間的協(xié)議規(guī)定了幀類型及其對(duì)應(yīng)的編碼,車載終端所發(fā)送的數(shù)據(jù)包格式如下:
2.2 車載終端CAN通信設(shè)計(jì)
2.2.1 CAN總線節(jié)點(diǎn)軟件設(shè)計(jì)
CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì),主要包括初始化函數(shù)、查詢發(fā)送函數(shù)和中斷接收函數(shù)三部分,SJA1000初始化是在復(fù)位模式下進(jìn)行的,主要設(shè)置時(shí)鐘分頻寄存器(CDR)、輸出控制寄存器(OCR)等參數(shù),然后查詢狀態(tài)寄存器的值,若發(fā)送緩沖區(qū)被釋放,則可以進(jìn)行數(shù)據(jù)的發(fā)送。接收過(guò)程是使CPU中斷,若接收中斷,CPU讀取出接收緩沖區(qū)的數(shù)據(jù),根據(jù)這三個(gè)函數(shù)可以實(shí)現(xiàn)CAN總線接點(diǎn)的數(shù)據(jù)收發(fā)功能[8]。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
評(píng)論