基于CDMA模塊的車(chē)載監控終端的設計方案
【摘要】結合現有的車(chē)載監控終端的解決方案,確定了基于CDMA 模塊的車(chē)載監控終端的總體設計方案,介紹了系統的組成、功能模塊,給出了系統的硬件設計以及相應功能單元軟件的設計。
本文引用地址:http://dyxdggzs.com/article/196720.htm隨著(zhù)無(wú)線(xiàn)通信技術(shù)的發(fā)展, 智能交通系統(Intelligent TransportSystem,即ITS)已得到廣泛應用。ITS 總體來(lái)說(shuō)包括四部分:交通信息采集部分、車(chē)輛調度控制部分、電子收費系統與交通信息服務(wù)。其中四個(gè)部分都需要車(chē)載終端的參與,車(chē)載終端是ITS 系統中非常重要的部分。傳統的車(chē)載監控終端系統通常采用GSM/GPS 方案。這種方案成本較低,在一些領(lǐng)域有了成功應用。車(chē)載終端最重要的功能是交通信息采集,提供車(chē)輛的準確定位和車(chē)輛運行情況(包括速度信息、行進(jìn)方向等)。而定位信息和速度信息通常都是靠外置的GPS 模塊獲取,但在車(chē)輛駛入隧道或者停放在高樓旁,車(chē)輛處于GPS 衛星的覆蓋盲區,這段時(shí)間內的調度中心無(wú)法準確得到車(chē)輛的交通信息,影響了監控調度系統的可靠性。本文提出了一種以ATMEL 公司89S51 為控制器,CDMA 模塊DTGS800 為通信、定位系統平臺的車(chē)載監控終端系統。
1.DTGS-800 簡(jiǎn)介
DTGS800 是AnyDATA 公司生產(chǎn)的一款CDMA 無(wú)線(xiàn)通信模塊。
DTGS800 工作在832MHz 頻段,功耗為0.32W,擁有高達153kbps 的數據傳輸速率,可通過(guò)AT 命令進(jìn)行遠程控制,內置TCP/IP 協(xié)議棧,提供短消息服務(wù)。模塊內部集成了具有g(shù)psOne 功能的芯片, 能夠采用gpsOne 解決方法實(shí)現定位功能。
DTGS800 的模塊主要接口包括:通用異步串行口UART,通用I/O口GPIO、編解碼器接口CODEC、用戶(hù)接口User Interface、PM 接口。
2.系統硬件設計
車(chē)載監控終端主要用來(lái)與監控中心進(jìn)行實(shí)時(shí)的信息交互, 包括:
獲取車(chē)輛的位置信息、速度信息;發(fā)布調度信息;在車(chē)輛出現異常情況下進(jìn)行遠程控制。另外給車(chē)輛司機提供移動(dòng)通信服務(wù),可利用此模塊撥打和接聽(tīng)電話(huà),甚至可以進(jìn)行三方通話(huà)。其硬件系統是一個(gè)綜合利用電子技術(shù)和通信技術(shù)的嵌入式單片機系統,主要由控制器和通信模塊兩部分組成。
控制器是車(chē)載監控終端的核心,它對整個(gè)系統的安全運行、可靠性有很大影響。本設計中CPU 選用了ATMEL 公司的8 位單片機89C51RD2, 它是CMOS 單片8 位微控制器80C51 的高性能CMOSFLASH 版本。其特性包括:1 個(gè)64-Kbyte FLASH 存儲區,用于存儲代碼和數據;256 字節的內部RAM,1 個(gè)9 源4 級中斷控制器和3 個(gè)定時(shí)/計數器;1 個(gè)1792 字節的XRAM,1 個(gè)硬件看門(mén)狗定時(shí)器,SPI 接口,鍵盤(pán),1 個(gè)更加通用的串行頻道,便于多處理器通信(EUART)和加速機制(X2 Mode)。
這款CPU 采用全靜態(tài)設計,減少了系統功耗,允許時(shí)鐘頻率降至任何數值而不導致數據損失。另外有兩種軟件可選的工作模式,降低8 位時(shí)鐘分頻器的活動(dòng)狀態(tài),進(jìn)一步減少了功耗??臻e模式下,CPU 被凍結,而外設和中斷系統繼續工作。在掉電模式,RAM 內容被保存,而其他所有功能都無(wú)效。
系統的框架圖如下所示:
圖1 系統結構框架圖
3.系統軟件設計
系統以任務(wù)的形式對軟件功能進(jìn)行模塊劃分,軟件實(shí)現的任務(wù)包括:任務(wù)調度;車(chē)輛位置信息、速度信息的獲??;短信息的接受、處理與發(fā)送;電話(huà)的撥打與接聽(tīng);屏幕顯示。
程序流程為:車(chē)輛發(fā)動(dòng)之后,系統上電,首先進(jìn)行系統初始化,然后開(kāi)定時(shí)中斷與串口中斷,啟動(dòng)完畢后啟動(dòng)進(jìn)入中斷監聽(tīng)狀態(tài),每隔10ms 掃描一次串口buffer 中的數據,并根據不同的狀態(tài)調用不同的接口函數實(shí)現各種功能。車(chē)輛監控終端最重要的任務(wù)就是實(shí)時(shí)交通信息的獲取和傳輸數據, 下文著(zhù)重介紹GPS 信息的獲取和短消息的接收與發(fā)送。
3.1 串口中斷函數
在本系統中,處理器對DTGS800 模塊的控制是通過(guò)串口發(fā)送AT 指令實(shí)現的, 當發(fā)送某種AT 命令后,DTGS 模塊會(huì )通過(guò)串口與處理器進(jìn)行數據交換。因此,如何進(jìn)行串口數據管理是系統性能優(yōu)劣的關(guān)鍵。在本文的設計中,采用了基于中斷的管理方式,并設置了一個(gè)200Bytes 的串口緩沖區,以循環(huán)隊列的形式實(shí)時(shí)讀取串口的接收數據。實(shí)現的步驟如下:
3.1.1 定義全局變量
#define REC_BUF_LEN 200
idata volatile BYTE datain;輸入數據的長(cháng)度
idata volatile BYTE dataout;;輸出數據的長(cháng)度
BYTE xdata dat[REC_BUF_LEN]; 串口緩沖區
3.1.2 操作函數的實(shí)現
bit BuffOut(BYTE *dp);從緩沖區讀出數據
bit BuffIn( BYTE *dp);向緩沖區寫(xiě)入數據
3.1.3 中斷函數
處理器與DTGS800 模塊之間通過(guò)串口通信,當接收短信息,有來(lái)電提醒時(shí),都會(huì )引發(fā)串口中斷,因此串口中斷函數的核心就是將接受數據存儲到循環(huán)隊列中。其實(shí)現的流程圖如下:
圖2 中斷函數流程圖
3.1.4 接口函數
在實(shí)際工作狀態(tài)下,通話(huà)任務(wù),短信息任務(wù)都需要通過(guò)串口向DTGS800 模塊發(fā)送數據, 這些任務(wù)的實(shí)質(zhì)都是向串口發(fā)送字節數據。因此接口函數最重要的就是定義發(fā)送字節函數,定義如下:
void WriteToComm(BYTE c)
{
SBUF = c;
while (! TI);
TI = 0;
}
3.2 系統任務(wù)設計
根據不同的任務(wù)定義了不同的系統狀態(tài),其中一部分定義如下:
typedef enum
{
SYS_NET_FAIL, 網(wǎng)絡(luò )不通
SYS_MISSED_CALL, 未接來(lái)電
SYS_CALL_SPEAKING, 通話(huà)中
SYS_END_CALL, 掛電話(huà)
SYS_GET_GPS_INFO, 獲得GPS 數據
SYS_SMS_INFO, 短消息接收
SYS_SMS_DISPLAY, 短信息顯示
}sys_app_sta;
系統啟動(dòng)完畢以后,進(jìn)入main 函數中的死循環(huán),對不同狀態(tài)響應不同的任務(wù)。以未接來(lái)電為例,定義如下函數:
cdma相關(guān)文章:cdma原理
評論