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