Windows CE 下多线程串口通信

Windows CE 下多线程串口通信

ID:38276138

大小:175.55 KB

页数:5页

时间:2019-05-25

Windows CE 下多线程串口通信_第1页
Windows CE 下多线程串口通信_第2页
Windows CE 下多线程串口通信_第3页
Windows CE 下多线程串口通信_第4页
Windows CE 下多线程串口通信_第5页
资源描述:

《Windows CE 下多线程串口通信》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、WindowsCE下多线程串口通信陈凯,邓明,张启升,李梅(中国地质大学“地下信息探测技术与仪器”教育部重点实验室,北京100083)摘要:本文重点描述了在WindowsCE5.0内核下实现PC/104与GPS的通信,构建了PC/104读写GPS信息的硬件系统,深入剖析了WindowsCE5.0下进行多线程串口通信的软件实现机制,并展现了其在超长周期大地电磁仪中的成功应用。关键词:多线程;WindowsCE5.0;PC/104MultithreadingSerialPortCommunicationunderWindowsCEKernelCHE

2、NKai,DENGMing,ZHANGQiSheng,LIMei(ChinaUniversityofGeosciences,Geo-detectionLaboratory,MinistryofEducation,Beijing100083,China;)中图法分类号:TP316.2文献标识码:BAbstract:ThispapermainlydiscussestheCommunicationbetweenPC/104andGPSunderWindowsCE5.0kernel,constructsthehardwaresystemofPC/104

3、read-writeGPSinformation,analyzesthesoftwaremechanismofmultithreadingCOMcommunication,andexhibitsthesuccessfulapplicationinLMT(LongperiodMagnetotelluricInstrument).Keywords:Multithreading;WindowsCE5.0;PC/1041引言微软WindowsCE(以下简称CE)内核被设计成针对小型设备,以达到RTOS(实时操作系统)最小要求,支持多种处理器的嵌入式设备

4、;CE是抢占式的多任务操作系统,最大支持32个进程,一个进程中包含一个或多个线程,支持多线程处理和线程同步。提供丰富的WIN32API函数,支持用户开发MFC、ATL应用程序。为实现多台空间上独立分散的超长周期大地电磁仪的高精度同步观测,需采用GPS对钟同步测量技术。系统GPS对钟实现由PC/104(PCM-3350)的串口与GPS接收模块(iTrax03)通信完成。串口在接受GPS电文的同时处理电文数据,为保证数据不会丢失,采用CE内核下开辟多线程以实现快速数据访问处理。2硬件总体构架系统硬件总体构架如图1所示。当需要进行GPS对钟时,PC/

5、104开启串口,设置串口参数,实现与GPS参数的匹配。GPS接收卫星电文发至串口请求PC/104接收,PC/104读取串口数据并提取相关时间和经纬度信息,经PC/104总线送至FPGA,请求FPGA将GPS时间信息写入RTC实时钟内。FPGA接收到指令后,将时间信息写入RTC中,同时FPGA将检测由GPS发送的PPS秒脉冲同步信号,并用其来更新RTC内的秒更新信号PPS,由此实现了RTC内时钟与GPS的严格同步,从而达到多台仪器的同步采集的要求。GPS(iTrax03)PC/104(PCM-33RS232PC/104总线PPS秒脉冲RTC实时钟

6、FPGA(EP1K30)(DS17887)图1系统硬件总体构架陈凯等:WindowsCE下多线程串口通信3多线程串口通信的实现串行端口在CE下属于流接口设备,提供串行设备接口常规I/O驱动程序与串口通信API函数。CE的串口函数和Windows的串口函数基本相同,下面分别介绍串口通信API函数、线程及事件同步机制。3.1串口API函数介绍在所有的流设备驱动程序中,均使用CreateFile函数来打开。打开串口实例hPort=CreateFile(lpszPortName,GENERIC_READ

7、GENERIC_WRITE,0,NULL,OPE

8、N_EXISTING,0,NULL);需要注意的是CE不支持重叠的I/O操作,打开串口1参数lpszPortName设置为_T(“COM1:”)。如果打开串口成功,返回打开的串口句柄,否则返回INVALID_HANDLE_VALUE。关闭串行端口比较简单,调用CloseHandle函数就能关闭一个打开的串行端口。可以使用ReadFile和WriteFile函数来读取串口数据和向串口发送数据。由于从串口读写数据的速度比较慢,因此进行大量数据读写时需要开辟专门的线程来完成读写操作。在实际使用串口时,还必须配置好串口的波特率、奇偶校验位、停止位和数据

9、位等参数。CE中提供GetCommState和SetCommState函数来获取串口的当前参数和设置串口的参数。在调用ReadFile和WriteFi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。