真菌镜检阳性是什么意思| 什么叫牙齿根管治疗| 不怕热是什么体质| 痛风吃什么食物| 打哈哈是什么意思| 吃什么药能快速降血压| 肝脏在什么位置| 玉米淀粉可以用什么代替| 痢疾吃什么药最有效| 1月5号什么星座| 低置胎盘有什么危险| 榄仁是什么| 男性性功能障碍吃什么药| 什么人没有国籍| 陆勤合格什么意思| 如来佛祖叫什么名字| 黄瓜是什么科| 大便每天四五次是什么病| 炒菜什么油最好| 鸡蛋属于什么类食品| 失足妇女是什么意思| 姐姐的孩子叫我什么| 着床出血是什么样子的| 经常想吐恶心是什么原因| 坐高铁不能带什么| 舌苔黄腻是什么原因| 微不足道什么意思| 化疗前吃什么补充营养| 参商是什么意思| 五行缺什么查询免费| 什么是个性| 1966年属什么今年多大| 造瘘手术是什么意思| 什么是数字货币| 病字是什么结构| 夏天喝什么好| 6月15日是什么日子| 游离甲状腺素是什么| 甲状腺结节用什么药| 脂肪液化是什么意思| 聊胜于无的聊是什么意思| 林冲到底属什么生肖的| 生吃洋葱有什么好处| 2024年属龙的是什么命| 死缓什么意思| ivory是什么意思| 左手无名指戴戒指什么意思| 牙疼吃什么药好| 地位是什么意思| 猫咖是什么| 双鱼女和什么星座最配| 查激素六项挂什么科| 梦见打雷是什么意思| cyan是什么颜色| 早上8点到9点是什么时辰| 例假期间吃什么好| 小孩便秘吃什么通便快| 一什么亮光| 补脑吃什么食物| 铁路12306什么时候放票| 结缔组织病是什么病能治愈吗| 男人吃什么补身体| 跻身是什么意思| 胃疼可以吃什么| cts是什么意思| 难舍难分是什么意思| 两脚发热是什么原因| 偏光眼镜是什么意思| 无的放矢什么意思| 什么东西不能一起吃| 火龙果不能和什么一起吃| 31年属什么生肖| 窦性心律t波改变是什么意思| 文五行属什么| 格桑是什么意思| 便秘吃什么药见效快| 3月7日是什么星座| 开心果树长什么样| 飞蚊症用什么滴眼液| 气血不足有什么症状| 贾宝玉和林黛玉是什么关系| 为什么怀孕了就不来月经了| 丙型肝炎吃什么药最好| 全身酸痛吃什么药好| 鬼剃头是因为什么原因引起的| 咽炎什么症状| 濡湿是什么意思| 38岁属什么的生肖| 白内障有什么症状表现| 查甲状腺功能挂什么科| 手术室为什么在三楼| 水生木是什么意思| 头上戴冠是什么生肖| 卵泡刺激素是什么意思| 包皮龟头炎用什么药| 十二年义务教育什么时候实行| 什么相接| hope是什么意思啊| 舌苔厚白吃什么中成药| 经常嗓子哑是什么原因| 缺陷是什么意思| 代字五行属什么| 山竹不能和什么水果一起吃| 例假为什么第一天最疼| 天喜星是什么意思| 处女座的幸运色是什么颜色| 夜盲症缺什么维生素| 便秘不能吃什么食物| 什么是强迫症有哪些表现| pi什么意思| 玉兔是什么意思| 拔智齿第二天可以吃什么| 吃猪心有什么好处和坏处| 有胆结石的人不能吃什么东西| 早上5点多是什么时辰| 水母吃什么| dha中文叫什么| 吃什么去胃火口臭| 胃气上逆有什么好的办法治疗| 针眼用什么眼药水| 二月初四是什么星座| 浅笑安然是什么意思| 复方丹参片治什么病| 八月节是什么节| 杨玉环是什么星座| 柠檬泡水喝有什么作用| ky是什么| xl是什么尺码| 脉弦滑是什么意思| 使节是什么意思| 泡桐是什么| 凌晨1点是什么时辰| 抗原体阳性是什么意思| 基诺浦鞋属于什么档次| 滢是什么意思| 三楼属于五行属什么| 电话正在通话中是什么意思| 骨头坏死是什么原因造成的| 老叹气是什么原因| 挂号特需是什么意思| 惜字如金是什么意思| 凋谢是什么意思| 什么的红枣| 赟读什么| 结婚50年是什么婚| 梦到钓鱼是什么意思| 吃什么对脾胃好| 文昌星是什么意思| 闹乌龙是什么意思| 牙齿掉了一小块是什么原因| 为什么会感染hpv| 硬不起来是什么原因| 东北人喜欢吃什么菜| 什么生金| 梦见捡钱了是什么预兆| 阴阳什么意思| 核磁共振是什么| 熬中药用什么锅好| 咀嚼什么意思| 半夜会醒是什么原因| acl医学上是什么意思| 追什么| 梦见吐痰是什么意思| 葡萄膜炎是什么原因引起的| 小便泡沫多是什么原因| 茉莉什么时候开花| s 是什么意思| 尿酸高可以吃什么水果| 睡觉打嗝是什么原因| 盘根是什么| 突然流鼻血是什么原因| 牙齿挂什么科| 吃肠虫清要注意什么| acl是什么意思| 种什么药材最快又值钱| 做梦梦见考试是什么意思| 年轻人手抖是什么原因| 大理寺卿是什么职位| 善良是什么| 脸颊两侧长斑是什么原因怎么调理| 烧心胃酸吃什么药| 检查骨密度挂什么科| 急性阑尾炎吃什么药| 失足是什么意思| 什么是腺样体面容| 啤酒和什么不能一起吃| 兰花什么时候开| 甲己合化土什么意思| 夏天脚底冰凉是什么原因| 螃蟹的什么部位不能吃| 一氧化碳是什么| 早上8点是什么时辰| 空调开什么模式最凉快| 贫血有什么症状| 妄想症有什么症状| mrt是什么意思| 日本的町是什么意思| 中暑喝什么| 鱼吐泡泡是什么原因| 支气管疾患是什么意思| 六字真言是什么意思| 例行是什么意思| 做什么饭简单又好吃| 血小板降低是什么病| fe是什么元素| 白天不懂夜的黑是什么意思| 处女座的幸运色是什么| 腈纶是什么面料优缺点| 美国绿卡有什么好处| 痔疮发痒是什么原因| 脑干堵塞什么症状| 男朋友有什么用| 兆字五行属什么| cmyk代表什么颜色| 一箭双雕是什么意思| mild是什么意思| 脖子黑是什么病| 五行木生什么| 胸部什么时候停止发育| 脑血管堵塞吃什么药最好| 经期吃榴莲有什么好处| 什么方法睡觉快速入睡| 心脏超声检查是什么| 牦牛角手串有什么作用| 吃了紧急避孕药会有什么反应| 汗疱疹是什么原因引起| 食管炎有什么症状| 沉香什么味道| 小孩腮腺炎吃什么药| 晚上失眠是什么原因| 梦见换房子是什么预兆| 饺子有什么馅| 报考护士资格证需要什么条件| 寿辰是什么意思| 47岁属什么| 基因突变发生在什么时期| 哮喘不能吃什么| 打喷嚏是什么预兆| 妇科活检是什么意思| 贴切是什么意思| 叶酸什么时候吃最好| nbp是什么意思| 蜂蜜吃了有什么好处| 芒种可以种什么菜| 睾丸痛吃什么药| 霜花店讲了什么故事| L是什么| 什么样的人容易得抑郁症| emma什么意思| 八月三十日是什么星座| 4.20什么星座| 手串断了是什么预兆| 痞子是什么意思| 黑色搭配什么颜色好看| 老夫聊发少年狂什么意思| 噗噗噗是什么意思| 舞蹈症是什么病| 爷爷的兄弟叫什么| 玉米什么的什么的| 鸽子和什么一起炖汤最有营养| 1990属马佩戴什么最佳| 螃蟹不能和什么水果一起吃| 蓝眼睛的猫是什么品种| 电气火灾用什么灭火器| 百度

GPS导航数据提取的设计与研究

汽车电子 时间:2025-08-06来源:网络
百度 我从小学书法,最初学颜柳,后来转习篆隶、魏碑、米芾、王铎,影响我最深最久的还是王铎。

Windows CE 是一个开放的、可裁剪的、32位实时嵌入式窗口操作系统,具有可靠性好、实时性高、内核体积小的特点,广泛应用于各种智能式设备的开发。系统通过微软提供的Platform Builder定制需要的Windows CE5.0系统,运行在硬件平台上。硬件平台采用博创科技PXA270实验箱,该实验箱嵌入式处理器是基于ARMV5E的Xscale核心PXA270,并支持串口通信。

GPS导航芯片采用天宝iQ 46240,将接收到的数据通过串口发送给处理器。串口是计算机系统与外部串行设备之间的数据传输通道,是嵌入式通信最可靠、最通用的通信方式。程序员利用Windows API函数可以编写出高效、可移植性的应用程序。Windows CE不支持Windows下常用的串行通信异步I/O方式(Overlapped,非阻塞),因此在嵌入式环境下采用了同步I/O方式的通信程序设计方法。

实验设计根据GPS导航数据有效性确认的标准,对提取的数据进行处理,把缓存中接收到的GPS数据格式转化为电子地图上常用的浮点型格式。此设计已应用于智能阅读器盲用定位模块中。

1 串口通信同步I/O方式的程序设计

串口通信是串行通信的一种,串行通信的模式一般分为上位机和下位机通信。上位机可以读取下位机的状态数据,也可以设置下位机的状态。一般串行通信协议可分为两类,即读和写。读写协议的描述如图1所示,常用的效验码有异或、累加和、CRC等[1]。


在实验设计中,GPS接收装置作为下位机只负责提供固定格式的数据,实验箱作为上位机不必发送指令,只负责定时读取GPS接收装置发送的数据。即可以简化通信协议,提高工作效率。

1.1 设计开发环境

在Windows NT/ME环境下安装eVC4.0编程环境,设置顺序如下:

(1)安装同步软件Microsoft ActiveSync 4.0;
(2)安装eVC4.0;
(3)利用PB(Platform Builder5.0)定制Wince系统对应的SDK并安装;
(4)利用PB将定制的wince系统下载到实验箱上,并与PC机同步[2]。

1.2 同步I/O方式读取的设计方法

为完成串口通信同步I/O方式程序设计,分为三个部分,每个部分有一个函数完成其对应的功能[3]。函数原型为:

OnOpenCom(); //打开并设置串口
ReadThreadFunc(LPVOID lparam); //串口接收线程
OnSeriesRead(CWnd *pWnd, BYTE *buf, int bufLen);
//串口接收数据成功回调函数

串口接收的具体流程图如图2所示,图中对应了串口设置的三个功能函数。

1.3 程序设计的核心代码实现

1.3.1 打开并设置通信串口参数

以同步读取方式打开串口COM1

m_hComm=CreateFile(_T(COM1:), GENERIC_READ|GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

//配置串口,得到打开串口的当前属性参数,修改后再重新设置串口。

DCB portDCB;
portDCB.DCBlength=sizeof(DCB); //DCB结构大小
portDCB.BaudRate=CBR_4800; //波特率
portDCB.ByteSize=8; //字符位
portDCB.Parity=NOPARITY; //奇偶校验位
portDCB.StopBits=ONESTOPBIT; //停止位
//设置串口读写时间,配置超时
COMMTIMEOUTS CommTimeouts;
GetCommTimeouts(m_hComm,CommTimeouts);
CommTimeouts.ReadIntervalTimeout= MAXDWORD;
CommTimeouts.ReadTotalTimeoutMultiplier=0;
CommTimeouts.ReadTotalTimeoutConstant=0;
//指定端口监测的事件集
SetCommMask (m_hComm, EV_RXCHAR);
//分配设备缓冲区
SetupComm(m_hComm,512,512);
//初始化缓冲区中的信息
PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_
RXCLEAR);
m_hReadCloseEvent=CreateEvent(NULL,TRUE,FALSE,
NULL);

1.3.2 GPS定位信息的接收

在成功打开并设置通信口后,在主程序中创建线程函数ReadThreadFunc(LPVOID lparam):

//创建串口接收线程
hRecvThread=CreateThread(0, 0, CommRecvTread, this, 0, IDThread);
然后在线程函数中采取事件触发方式进行接收处理,通过等待EV_RXCHAR事件的发生来启动ReadFile函数完成对GPS定位信息的接收:
while (TRUE){
if (evtMask EV_RXCHAR){
ClearCommError(m_hComm,dwReadErrors,cmState);
willReadLen = cmState.cbInQue ;
//接收缓冲区中存储的待读取的字符数
readBuf = new BYTE[willReadLen+1];
ReadFile(m_hComm,readBuf,willReadLen,actualReadLen,0);
readBuf[willReadLen]=0; //如果读取的数据大于0,
if (actualReadLen>0){ //触发读取回调函数 m_OnSeriesRead(ceSeries->m_pPortOwner,readBuf,actualReadLen); }}
如果收到读线程退出信号,则退出线程
if(WaitForSingleObject(ceSeries->m_hReadCloseEvent,500) == WAIT_OBJECT_0) break;

2 对导航数据的格式进行处理

对于实验中所使用的iQ46240接收芯片,其发送到计算机的数据(采用NEMA0183语句)主要由帧头、帧尾和帧内数据组成。根据数据帧的不同,帧头也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPRMC”等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾识别一帧的结束。本文中,定位数据经纬度、速度、时间等均可以从“$GPGGA”帧中获取得到。该帧的结构及各字段释义如下[4]:

$GPGGA,1>,2>,3>,4>,5>,6>,7>,8>,9>,10,11>,12>,13>,14>*hh
1>当前位置的格林尼治时间
2>纬度值
3>纬度标识,N或者S(南北)
4>经度值
5>经度标识,E或者W(东西)
6>卫星接收信号质量
7>正在使用卫星的数量

2.1 GPS导航数据有效性确认标准

GPS定位的基本原理是根据高速运动卫星的瞬间位置作为已知的起算数据,采用空间距离后方交会的方法确定待测点的位置。假设t时刻在地面待测点安置GPS接收机,可以测定GPS信号到达接收机的时间,加上接收机所接收到的卫星星历等其他数据可以确定以下4个方程式。卫星定位示意图如图3所示。


xi,yi,zi(i=1,2,3,4)分别代表卫星1、2、3、4在t时刻的空间直角坐标,可由卫星导航电文求得,Vti代表卫星钟差,Vt0为接收机的钟差。

由以上4个方程式可计算出待测点的坐标x、y、z和接收机的钟差Vt0。因此导航数据能够有效计算必须保证接收到4个卫星的星历。对固定格式的导航电码中提取卫星符号进行确认,如果满足4个卫星的接收状态即可确定当前接收的导航电码可用于数据处理。通常,3颗卫星可以在二维平面上得到经度纬度坐标,为精确起见,4颗卫星可以保证获得三维空间坐标。

2.2 有效数据提取和数据格式转化

有效数据的提取和数据格式转化都是在回调函数中进行的[5]。帧内各数据段由逗号分割,因此在处理缓存数据时,可以通过搜索ASCII码“$”来判断是否是帧头。对帧头类别进行识别后,再通过对所经历逗号的个数计数来判断当前处理的是哪一种定位导航参数,并做相应的处理。eVC支持CString类型格式,由于定位信息格式固定,本文先利用mbstowcs函数将缓存中的字符型数据转换为宽字符型,然后强制转化为字符串类型。

WCHAR wszbuf[512];
mbstowcs(wszbuf,(char*)buf,strlen((char*)buf));字符串类型进行处理,然后利用Find函数,搜索$GPGGA,
strRecv.Find(_T($GPGGA),1);
state=strRecv.Mid(pos+37,1);
得到GPS 质量指示指标
strSatelliteNum=strRecv.Mid(pos+39,1) ;
得到接收到的卫星数量字符,将卫星数量字符型转化为整型判断卫星数量是否大于4,作为判断是否为有效数据的标准。
int iSatelliteNum=atoi((LPSTR)(LPCTSTR)strSatelliteNum);
当iSatelliteNum>3 state = =‘1’时说明接收到的是有效数据,可对strRecv中的数据进行提取,并赋给经纬度和时间变量。
strLatitude =strRecv.Mid(pos+16,8);
strLongitude=strRecv. Mid(pos+27,9);
将提取到得经度纬度字符型数据转化为浮点型数据,通过atof函数实现。
double Longitude_new = (atof(strLongitude))/100;
double Latitude_new = (atof(strLatitude))/100;
这样将经度纬度信息提取到GPS结构数组中,后续的处理和高层决策可根据该结构中存储的数据作出相应的处理。

3 程序运行结果分析

程序运行后,在实验平台上收集的部分数据如表1所示。

对以上结果分析,可知通过串口在不同时段接收的数据是比较稳定的,能够以此为基础提取到有效的数据和定位信息,本系统结合超图格式(pwr,pmw)的北京市公交站点地图数据,在编写程序时调用超图接口函数打开电子地图数据,将串口接收到的数据读入,得到附近的公交站点并以文本方式输出到界面。

本文结合相关程序代码陈述了基于eVC环境下串口通信程序的设计,对GPS全球定位系统定位信息的接收和数据提取进行了详细的分析和讨论。主要解决了EVC编程环境下实现串口通信功能、对GPS定位信息的提取和处理的问题。实验对wince5.0自定义平台下开发GPS接收装置给出了代码样例供参考,并已应用于智能阅读器项目中盲用定位模块。

关键词: pxa270 WinCE GPS

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版
分泌多巴胺是什么意思 鳖吃什么 菊花茶为什么会变绿色 陪跑什么意思 声援是什么意思
荔枝不能与什么一起吃 脚底板疼痛是什么原因 mint什么颜色 良代表什么生肖 bunny是什么意思
喝酒肚子疼是什么原因 主管药师是什么职称 弱视是什么 hcg低是什么原因 站姐是什么职业
老鼠疣长什么样子图片 ube手术是什么意思 足勺念什么 溥仪什么时候去世的 中耳炎用什么药
荔枝有什么作用与功效hcv8jop2ns2r.cn 跛脚是什么意思hcv8jop2ns7r.cn 什么叫多巴胺hcv8jop7ns0r.cn 头晕恶心想吐吃什么药hcv9jop6ns1r.cn 海姆立克急救法是什么hcv8jop3ns7r.cn
一个火一个宣念什么hcv7jop6ns1r.cn bpm是什么意思hcv8jop0ns4r.cn 甚嚣尘上什么意思hcv8jop4ns0r.cn 牛仔裤搭配什么鞋hcv9jop4ns1r.cn 头疼是什么引起的hcv7jop9ns0r.cn
结婚36年是什么婚sanhestory.com 军长是什么级别hcv7jop7ns2r.cn 勃起困难吃什么药hcv7jop7ns3r.cn elsevier是什么期刊hcv8jop2ns4r.cn 1942年属什么生肖hcv9jop6ns2r.cn
甘油三酯高吃什么食物好hcv8jop6ns6r.cn 无纺布是什么材料做的hcv9jop3ns8r.cn 射手座男生喜欢什么样的女生hcv8jop9ns0r.cn 大白菜什么时候种hcv7jop5ns2r.cn 三焦指的是什么hcv8jop7ns2r.cn
百度