原创 Windows Embedded Compact 7平台GPS设计-阿里云开发者社区

开发者社区> PSA培训与认证> 正文

原创 Windows Embedded Compact 7平台GPS设计

简介: 本文转载自微软嵌入式中文社区http://www.msembed.com     随着我国国民经济的快速增长的西部大开发的实施,我国的高等级公路建设迎来前所未有的发展机遇,随着公路设计行业软件技术和硬件设备的发展,全球定位系统GPS(Global Positioning System)成为了当前的首选。
+关注继续查看

本文转载自微软嵌入式中文社区http://www.msembed.com

 

 

随着我国国民经济的快速增长的西部大开发的实施,我国的高等级公路建设迎来前所未有的发展机遇,随着公路设计行业软件技术和硬件设备的发展,全球定位系统GPS(Global Positioning System)成为了当前的首选。由于汽车的普及和道路的建设,人们之间的经济交往更加频繁,由此产生了交通堵塞、无法寻找准确的目的地、迷失方向等严重问题。GPS车载导航系统可以有效的改善各种交通问题,为大家提供便捷服务。
 

为适应大多数Windows用户的使用习惯,现在设定移动设备运行环境为嵌入式操作系统Windows Embedded Compact 7,开发过程在Windows 7操作系统下进行。开发软件为Visual Studio 2008,编程语言为C++。基于Windows CE 7的便携式导航系统的开发方法,包括系统的开发工具、平台搭建和系统开发等关键技术。
 

支持WEC7的硬件平台,可以让开发团队轻松做到:创建目标硬件自定义的操作系统运行时映像;使用Silverlight for Windows Embedded,可以开发出极其出色的用户界面。

 

Windows Embedded Compact 7不仅支持X86和MIPS,同时支持最新的ARMv7架构和多核处理器,可以帮助设备制造商更快的速度将产品推向市场。
 

 而VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008,可以高效开发Windows应用,设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时支持项目模板、调试器和部署程序。
 

 由于设定移动设备使用的运行环境为WinCE 7,过程中需要处理大量的数据,所以对开发板要求较高。在同等处理器主频下,ARM内核的芯片面积最小,功耗最低,价格也最低廉,在性能、技术指标、软件支持工具、内置调试工具和开发资料等方面都有优势。固可选用ARM内核的处理器,开发板为GEC2440,主要参数如下所示:


NO.

硬件功能

1

系统稳定运行在400MHz,最高可达533MHz

2

64M字节的SDRAM,由两片K4S561632组成,工作在32位模式下

3

64M字节NAND Flash,采用的是K9F1208,可以兼容16M32M128M 

4

10M以太网接口,采用的是CS8900Q3,带传输和连接指示灯

5

LCD和触摸屏接口

6

2USB HOST,符合USB 1.1,其中一个是HOSTDevice接口复用

7

支持音频输入和音频输出,音频模块由S3C2440IIS音频总线接口和UDA1341音频编码解码器组成

8

2UART串行口,波特率可高达115200bps,并具有RS232电平转换电路

9

SD卡接口,兼容SD Memory Card Protocol 1.0 SDIO Card Protocol 1.0

10

JTAG接口,支持ADSSDT软件的下载和调试以及FLASH 的烧写

11

摄像头接口,支持数字图象输入

12

扩展SPI接口

13

串行EEPROM AT24C02 4Kbytes EEPROMIIC接口

14

蜂鸣器,9LED

15

4个按键 

16

开关电源,分布式电源供电,3V锂电池,提供RTC电源

 


GPS接收模块负责接收GPS射频信号,将信号下变频和解调,输出标准的串口信号供处理器进行下一步处理。
设计主要依照GPS数据信号的流向来进行。

 

GPS数据信号通过串口读入到开发板主程序,然后经过对数据信号进行解码获得当前位置的经纬度信息,再在经纬度数据库中查询获得当前位置的地名,整个过程由触摸屏进行显示,并通过触摸屏完成人机交互。

 

对于每个PC来说,都有一个或者多个称为Host控制器的设备,该Host控制器和一个根Hub(Root Hub)作为一个整体。ROOT HUB是一个特殊的USB HUB,它集成在主机控制器里,不占用地址。

 

USB设备连接到HOST时,HOST必须通过默认的控制管道对其进行枚举,完成获得其设备描述、进行地址分配、获得其配置描述、进行配置等操作方可正常使用。
 

/* 映射中断 */

dwSysIntr = MapIrq2SysIntr(dwIRQ); 

pobMem = HcdMdd_CreateMemoryObject(gcTotalAvailablePhysicalMemory,

gcHighPriorityPhysicalMemory, pvUsbHcca,

(LPVOID)(dwIoPortBase+HD64465_EMBEDED_SDRAM_OFFSET))

 

CdeviceGlobal类的Initialize()函数是对COhcd的进一步初始化并且建立和USBD的联系。
 

 

CHW类的Initialize函数是对主机控制器的初始化,包括主机控制器寄存器的配置等。

 

Microsoft Embedded Tools封装了Windows API函数,便于Windows CE应用程序的开发。在Windows CE中,所有的设备都被看成是文件。
 

 

串口通信可以像访问普通文件那样通过API通信函数来实现,系统的虚拟驱动程序负责执行特定的工作。因此,我们可以利用ReadFile和WriteFile函数读写串口,一般都采用多线程来进行读写串口操作。
 

 

调用CreateFile,用lpFileName(端口名指针)设置COM端口名:COMl;
 

 

调用ReadFile和WriteFile发送和接收数据;
 

 

调用CloseHandle(HANDLE hObject),关闭串口;
 

/* 指定端口监测的事件集 */

SetCommMask (hPort, EV_RXCHAR); 

/* 分配设备缓冲区 */

SetupComm(hPort,512,512); 

/* 初始化缓冲区中的信息 */

PurgeComm(hPort,PURGE_TXCLEAR|PURGE_RXCLEAR); 

/* 配置串行端口 */

if(!InitDCB()) {

   return FALSE; }

/* 设置端口超时值 */

if(!InitCommTimeouts()) {

   return FALSE; }

/* 写入数据 */

ws = WriteFile(hPort,buf,dwCharToWrite*sizeof(TCHAR),&dwBytesWritten,NULL);

……


 

/* 驱动初始化 */

if (USB_ENDPOINT_DIRECTION_IN(lpEndpoint->Descriptor.bEndpointAddress)) {

CreateBulkIn(lpEndpoint);}

else {

CreateBulkOut(lpEndpoint); }

......

初始化完成之后,创建了相应的虚拟串口,然后进行驱动加载。
 

 

编译,完成之后下载到内核当中,测试是否接收到正确数据。
 

 

最终可以使用的功能为:
 

  • 地图查询:可以在操作终端上搜索要去的目的地位置。
     
  • 路线规划:根据设定的起始点和目的地,自动规划一条线路。
     
  • 自动导航:语音导航、画面导航。

 

在该车载导航系统中,有效解决了功耗问题,操作方便,定位及时准确,所占空间小,且效果良好。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9715 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
26748 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11399 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9095 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13433 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7107 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4223 0
44
文章
5
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载