基于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ù)流程圖

  圖2 中斷函數(shù)流程圖

上一頁1234下一頁

本文導(dǎo)航

標(biāo)簽:CDMA(334)CDMA模塊(1)車載監(jiān)控(1)