基于CDMA模塊的車(chē)載監(jiān)控終端的設(shè)計(jì)方案(2)

2012年05月14日 10:42 來(lái)源:本站整理 作者:秩名 我要評(píng)論(0)

  3.系統(tǒng)軟件設(shè)計(jì)

  系統(tǒng)以任務(wù)的形式對(duì)軟件功能進(jìn)行模塊劃分,軟件實(shí)現(xiàn)的任務(wù)包括:任務(wù)調(diào)度;車(chē)輛位置信息、速度信息的獲?。欢绦畔⒌慕邮?、處理與發(fā)送;電話的撥打與接聽(tīng);屏幕顯示。

  程序流程為:車(chē)輛發(fā)動(dòng)之后,系統(tǒng)上電,首先進(jìn)行系統(tǒng)初始化,然后開(kāi)定時(shí)中斷與串口中斷,啟動(dòng)完畢后啟動(dòng)進(jìn)入中斷監(jiān)聽(tīng)狀態(tài),每隔10ms 掃描一次串口buffer 中的數(shù)據(jù),并根據(jù)不同的狀態(tài)調(diào)用不同的接口函數(shù)實(shí)現(xiàn)各種功能。車(chē)輛監(jiān)控終端最重要的任務(wù)就是實(shí)時(shí)交通信息的獲取和傳輸數(shù)據(jù), 下文著重介紹GPS 信息的獲取和短消息的接收與發(fā)送。

  3.1 串口中斷函數(shù)

  在本系統(tǒng)中,處理器對(duì)DTGS800 模塊的控制是通過(guò)串口發(fā)送AT 指令實(shí)現(xiàn)的, 當(dāng)發(fā)送某種AT 命令后,DTGS 模塊會(huì)通過(guò)串口與處理器進(jìn)行數(shù)據(jù)交換。因此,如何進(jìn)行串口數(shù)據(jù)管理是系統(tǒng)性能優(yōu)劣的關(guān)鍵。在本文的設(shè)計(jì)中,采用了基于中斷的管理方式,并設(shè)置了一個(gè)200Bytes 的串口緩沖區(qū),以循環(huán)隊(duì)列的形式實(shí)時(shí)讀取串口的接收數(shù)據(jù)。實(shí)現(xiàn)的步驟如下:

  3.1.1 定義全局變量

  #define REC_BUF_LEN 200

  idata volatile BYTE datain;輸入數(shù)據(jù)的長(zhǎng)度

  idata volatile BYTE dataout;;輸出數(shù)據(jù)的長(zhǎng)度

  BYTE xdata dat[REC_BUF_LEN]; 串口緩沖區(qū)

  3.1.2 操作函數(shù)的實(shí)現(xiàn)

  bit BuffOut(BYTE *dp);從緩沖區(qū)讀出數(shù)據(jù)

  bit BuffIn( BYTE *dp);向緩沖區(qū)寫(xiě)入數(shù)據(jù)

  3.1.3 中斷函數(shù)

  處理器與DTGS800 模塊之間通過(guò)串口通信,當(dāng)接收短信息,有來(lái)電提醒時(shí),都會(huì)引發(fā)串口中斷,因此串口中斷函數(shù)的核心就是將接受數(shù)據(jù)存儲(chǔ)到循環(huán)隊(duì)列中。其實(shí)現(xiàn)的流程圖如下:

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

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

上一頁(yè)1234下一頁(yè)

本文導(dǎo)航

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