您的位置:電子發(fā)燒友網(wǎng) > 電子技術(shù)應(yīng)用 > 汽車電子 >
基于CDMA模塊的車載監(jiān)控終端的設(shè)計方案(2)
2012年05月14日 10:42 來源:本站整理 作者:秩名 我要評論(0)
3.系統(tǒng)軟件設(shè)計
系統(tǒng)以任務(wù)的形式對軟件功能進(jìn)行模塊劃分,軟件實現(xiàn)的任務(wù)包括:任務(wù)調(diào)度;車輛位置信息、速度信息的獲取;短信息的接受、處理與發(fā)送;電話的撥打與接聽;屏幕顯示。
程序流程為:車輛發(fā)動之后,系統(tǒng)上電,首先進(jìn)行系統(tǒng)初始化,然后開定時中斷與串口中斷,啟動完畢后啟動進(jìn)入中斷監(jiān)聽狀態(tài),每隔10ms 掃描一次串口buffer 中的數(shù)據(jù),并根據(jù)不同的狀態(tài)調(diào)用不同的接口函數(shù)實現(xiàn)各種功能。車輛監(jiān)控終端最重要的任務(wù)就是實時交通信息的獲取和傳輸數(shù)據(jù), 下文著重介紹GPS 信息的獲取和短消息的接收與發(fā)送。
3.1 串口中斷函數(shù)
在本系統(tǒng)中,處理器對DTGS800 模塊的控制是通過串口發(fā)送AT 指令實現(xiàn)的, 當(dāng)發(fā)送某種AT 命令后,DTGS 模塊會通過串口與處理器進(jìn)行數(shù)據(jù)交換。因此,如何進(jìn)行串口數(shù)據(jù)管理是系統(tǒng)性能優(yōu)劣的關(guān)鍵。在本文的設(shè)計中,采用了基于中斷的管理方式,并設(shè)置了一個200Bytes 的串口緩沖區(qū),以循環(huán)隊列的形式實時讀取串口的接收數(shù)據(jù)。實現(xiàn)的步驟如下:
3.1.1 定義全局變量
#define REC_BUF_LEN 200
idata volatile BYTE datain;輸入數(shù)據(jù)的長度
idata volatile BYTE dataout;;輸出數(shù)據(jù)的長度
BYTE xdata dat[REC_BUF_LEN]; 串口緩沖區(qū)
3.1.2 操作函數(shù)的實現(xiàn)
bit BuffOut(BYTE *dp);從緩沖區(qū)讀出數(shù)據(jù)
bit BuffIn( BYTE *dp);向緩沖區(qū)寫入數(shù)據(jù)
3.1.3 中斷函數(shù)
處理器與DTGS800 模塊之間通過串口通信,當(dāng)接收短信息,有來電提醒時,都會引發(fā)串口中斷,因此串口中斷函數(shù)的核心就是將接受數(shù)據(jù)存儲到循環(huán)隊列中。其實現(xiàn)的流程圖如下:
圖2 中斷函數(shù)流程圖
本文導(dǎo)航
- 第 1 頁:基于CDMA模塊的車載監(jiān)控終端的設(shè)計方案(1)
- 第 2 頁:系統(tǒng)軟件設(shè)計
- 第 3 頁:接口函數(shù)
- 第 4 頁:定位任務(wù)
標(biāo)簽:CDMA(334)CDMA模塊(1)車載監(jiān)控(1)