基于CDMA模块的车载监控终端的设计方案
来源:中国一卡通网 作者:不详 发布时间:2012-05-14 10:04:08 字体:[大 中 小]
关键字:无线通信技术 车载监控终端 CDMA 模块
摘 要:结合现有的车载监控终端的解决方案,确定了基于CDMA 模块的车载监控终端的总体设计方案,介绍了系统的组成、功能模块,给出了系统的硬件设计以及相应功能单元软件的设计。
3.1.4 接口函数
在实际工作状态下,通话任务,短信息任务都需要通过串口向DTGS800 模块发送数据, 这些任务的实质都是向串口发送字节数据。因此接口函数最重要的就是定义发送字节函数,定义如下:
void WriteToComm(BYTE c)
{
SBUF = c;
while (! TI);
TI = 0;
}
3.2 系统任务设计
根据不同的任务定义了不同的系统状态,其中一部分定义如下:
typedef enum
{
SYS_NET_FAIL, 网络不通
SYS_MISSED_CALL, 未接来电
SYS_CALL_SPEAKING, 通话中
SYS_END_CALL, 挂电话
SYS_GET_GPS_INFO, 获得GPS 数据
SYS_SMS_INFO, 短消息接收
SYS_SMS_DISPLAY, 短信息显示
}sys_app_sta;
系统启动完毕以后,进入main 函数中的死循环,对不同状态响应不同的任务。以未接来电为例,定义如下函数:
if(cmp_com_str("MISSED_CALL ",Locat,1)) 判断状态
{
Missed_call_deal(); 未接来电处理函数
dataout = Locat;//go
Reccnt = Reccnt -4;
clrline(line_1);
display_app(0x82, "未接电话:"); 显示函数
start_nom_ref();
Sys_state = SYS_IDLE_STATE; 进入空闲态
break;
}
3.2.1 定位任务
定位任务负责采集车辆的交通信息,包括经度、维度、速度、行进方向等,在发送定位命令之前首先查询模块的工作状态,然后通过串口发送AT 命令进行定位请求,如果串口接收到"OK"信息,则系统进入到SYS_GET_GPS_INFO 状态。
接收的数据首先存储在串口的buffer 中,定义了如下GPS 数据处理函数:
typedef struct
{
BYTE UTC[10]; //时间
BYTE Latitude[10]; //纬度
BYTE Longitude[11]; //经度
BYTE rec_flg; //状态
BYTE Velocity[5]; //速度
BYTE Direction[5]; //方向
}GPS_STR;
void Gps_Data(WORD head) 将数据读入到GPS 数据buffer 中
void GpsData_PRO(void) 解析GPS 中的相关信息以方便进一步处理;
GPS 数据解析完成以后,再利用短消息的形式将车辆的交通信息发送到监控中心。
3.2.2 短信息任务
DTGS800 提供了两种不同的短信息服务协议,一种为简单协议,适合于一些简单的应用,一种为扩展协议,收发的格式比较复杂。本系统采用了扩展的SMS 协议。
3.2.2.1 短消息发送流程
1)给模块发送命令"AT+CAD? "检测模块的工作状态,如果返回值为1 表示模块工作正常;如果为0 则表示模块暂时不可用,等待几秒空闲后再进行检测;2)给模块发送命令"AT+SMSS? ",通过返回值检测模块的状态,如果模块返回值为3,表示模块等待接受发送的数据;3)发送解析的GPS 信息,又一次给模块发送命令"AT+SMSS? ",如果模块返回值为1,表示发送信息成功;4)调用显示函数,在屏幕上显示"短信息发送成功".
3.2.2.2 短消息接受流程
1)判断系统状态,如收到短信,给模块发送命令"AT+SMSR",读取收到的短信息;2) 对收到的短信息做数据处理, 存放在Buffer 中; 调用函数UnicodeToGB()将收到的Unicode 码转化为GBK 码;3)调用显示函数循环显示未读取的短信息,当用户读取信息后,系统返回到空闲态,等待下一步的指令。
4.结论
通过系统实测,发现本车载监控终端系统可以很好的实现车辆交通信息的采集,接收监控中的调度信息、控制信息,具有通信可靠、良好的扩展性等特点。
新闻投稿合作邮箱:yktchina-admin@163.com 字体[大 中 小] [收藏] [进入论坛]