多线程串口通信技术在gps导航中的应用

多线程串口通信技术在gps导航中的应用

ID:11487916

大小:528.50 KB

页数:9页

时间:2018-07-12

多线程串口通信技术在gps导航中的应用_第1页
多线程串口通信技术在gps导航中的应用_第2页
多线程串口通信技术在gps导航中的应用_第3页
多线程串口通信技术在gps导航中的应用_第4页
多线程串口通信技术在gps导航中的应用_第5页
资源描述:

《多线程串口通信技术在gps导航中的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多线程串口通信技术在GPS导航中的应用摘要:GPS导航系统需要实时获取来自接收机串口的定位数据,在对串口实时监控的同时还可以在前台进行一些其他的操作,利用基于多线程的串口通信编程思想方法可以很好地解决这一问题。介绍多线程的基本概念和串口通信编程技术,分析了GPS导航系统的功能和需求,着重阐述了采用基于多线程的CSerialPort类的串口通信方法来获取定位数据,并且给出了CSerialPort类的使用方法。经过调试,程序运行平稳。  0引言  GPS(GlobalPositionSystem)具有全球性、全天候性优势的定位、定时、测速系统,用户利用GPS接收

2、机接收卫星发射的信号,从而获取当前位置的大地坐标、高程和时间等信息,达到定位、导航或测量高程的目的。卫星导航定位技术被广泛应用于海洋勘测、海洋工程、海洋开发和军事作战中,高精度、快捷方便、全天候等优良特性,使其越来越受到人们的青睐。在GPS导航中,需要实时采集遵循NMEA0183协议的GPS数据,对数据进行处理后,通过ODBC接口将用户的位置、时间、速度等信息存到数据库,为以后在电子地图上实时显示目标位置提供依据。为了避免由于一直等待串口I/0操作而引起的线程阻塞,要求程序在对串行端口进行实时监控的同时,可以在前台进行数据提取、保存、显示等操作。为了解决实时

3、性和多任务处理,避免某项任务长时间占用CPU,多线程编程是一个比较理想的选择。  1多线程概述  1.1基本概念  进程是程序在计算机上的一个执行实例,线程是程序中的一条执行分支,多线程就是在同一个程序中可以同时执行多个任务。每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其他线程,多个线程并发地运行于同一个进程中。  一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源。  1.2VC  VC++环境对多线程技术的支持visualc++6.0中,MFC类库提供了

4、对多线程编程的支持,使得多线程编程更加方便。MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程通常用来执行后台计算和维护任务。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。  1.3线程创建、挂起、恢复、终止  在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程。Sus-pendThread()和ResumeThrea

5、d()分别用于挂起指定的线程和恢复用SuspendThread()挂起的线程。Exit-Thread(DWORDdwExitC0de)用于线程终结自身的执行。  1.4线程同步  线程之间经常要同时访问一些资源,因此对共享资源进行访问引起冲突是不可避免的。为了解决这种资源冲突问题,必须引入线程同步的概念。Win32API提供了多种同步控制对象来解决共享资源访问冲突,包括使用临界区、使用互斥对象、使用信号量、使用事件。  2串口通信编程  目前,在Windows下编程时,常用的串口通信主要有3种方法:用MSC0mm通信控件;用WindowsAPI进行编程;使用

6、第三方提供的一些串口通讯类进行编写。  (1)MSComm控件  利用MSComm控件会使编程快捷简单。然而,由于做了大量的封装,降低了编程的可控性和灵活性,因此在多线程多串口编程时,需要做许多复杂的处理。  (2)WindowsAPI  利用WindowsAPI编写串口程序,特别是复杂的多线程串口程序时,对于程序员的编程能力要求较高。除了需要程序员熟练掌握和使用众多的API函数,能编写很多底层代码之外,还必须熟悉线程的编程方法。  (3)第三方串口通信类  利用第三方的串口通信类进行串口编程时,既可以使编程效率高,程序可控性强,又比WindowAPI编程简

7、单,其中应用最多的第三方的串口通信类是CSerial-Port。它基于多线程,是一个Win32API的打包类,对处理串口的Win32API类进行了封装,借助这个类可以很方便地对串口进行操作,容易实现多线程的串口通信,编写的程序在Windows98/NT/2000/XP操作系统下可很好地运行。  比较3种串口通信方式,可以发现使用第三方串口通信类CSerialPort是实现Windows下多线程串口编程的较好选择。  3多线程编程技术在GPS数据采集系统中的应用  3.1GPS导航系统功能分析  GPS导航是通过GPS定位技术实时给出用户所在的位置,这就要求需

8、要实时接收来自GPS接收机串口的定位数据,在实时监视

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

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

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