基于Pcomm组合导航系统高效串行通讯技术实现

2005年1月第27卷第1期系统工程与电子技术SystemsEngineeringandElectronicsJan.2005Vol127No11文章编号:10012506X(2005)0120066204基于Pcomm组合导航系统高效串行通讯技术实现卞鸿巍1,2,金志华1,田蔚风1(1.上海交通大学仪器工程系,上海200030;2.海军工程大学电气工程系,湖北武汉430033)摘要:为使组合导航系统串行通讯满足多通道、稳定、快速等多种特殊要求,在对常规WindowsAPI函数、多线程控制和异步OverlappedI/O等技术利弊分析的基础上,采用面向对象的程序设计方法,对MoxaPcomm函数库功能进行了分析和封装,建立了一种新的高速串行通讯类的通讯程序设计方法。该技术方法在Windows平台的组合导航系统设计中得到了有效的验证和应用,可使通用串行通讯程序的设计更加简便、紧凑、可靠和易于维护。关键词:组合导航系统;串行通讯;面向对象中图分类号:V241.5文献标识码:ADevelopmentofgeneralhigh2speedmulti2portcommunicationbasedonPcommforintegratednavigationsystemBIANHong2wei1,2,JINZhi2hua1,TIANAbstract:Serialcommunication,whichisoneofthemostimportantmethodsfordataaccessandstatecontrolinintegratednavigationsystem(INS),requiresmultiplechannels,highrateandhighmorereliability.Anewwaytoim2plementageneralserialcommunicationdevicewithVC++,MFCandPcommfunctionsbasedonobject2orientedpro2grammingprincipleisdiscussedmainly.Thenewmethodisprovedtobemorecompact,reliableandscalableintheprogrammingofthehigh2speedmulti2portcommunicationforanINSsystem.Keywords:integratednavigationsystem;serialcommunication;object2oriented道高速的数据通讯问题。1引言2常用串行通讯设计方法及问题串行通讯程序设计方法多样而且灵活,适应于不同的应用环境。最常用的方式是在程序中直接调用或使用被类封装的WindowsAPI函数,API函数通过对设备驱动程序的底层控制实现串口操作。进一步采用多线程控制技术和异步OverlappedI/O技术可以使用户实现更复杂的自定义串行通讯类设计。多线程控制技术的采用,可以较好利用Windows操作系统的多任务性能,使被分解的用户工作分别执行,互不影响。在串行通讯的具体设计中,主线程(也称UI线程)用来进行正常的Windows消息处理,完成工序控制和界面操作等任务。初始化时主线程对各串口进行设置,并根据各串口的具体要求创建相应的监控子线程和读写子线程2。当多个串口进行工作时,各线程只单独处理对应串口的通讯任务,完成串口事件的实时监视和数据的预处理,并通过Windows的消息分发机制,将串口事件传递给父窗口,父窗口的消息响应函数实现对数据的进一步处高精度的多功能组合导航系统(integratednavigationsystem,INS),集数据通讯、计算处理、决策规划、监测告警、虚拟仪表、数据管理以及黑匣子等多种功能于一体,可以较好地保障运载体的航行安全、提高控制精度和简化人员作业。INS系统的基本工作方式是在各导航设备独立工作的基础上,对各设备提供的导航数据进行综合处理和信息融合,提供比单一设备精度更高、性能更强的系统导航功能。串行通讯技术是INS系统主要的数据获取和状态控制方式,是其它技术实现的前提。目前在研的某型面向大型舰艇的INS系统需要与GPS系统、惯导系统、计程仪等多种设备通讯连接,设备数多,数据量大;系统串行通讯的精确性和实时性好坏会直接影响INS的整体性能。由于收稿日期:2003-11-06;修回日期:2004-05-10。基金项目:国家自然科学基金资助课题(40125013,40376011)作者简介:卞鸿巍(1972-),男,博士研究生,讲师,主要研究方向为惯性系统与组合导航技术理论及应用。理。线程间的同步则通过事件同步对象完成。在监视子线程中经常使用Win32OverlappedI/O实现对串口的异步控制。该技术可以使程序在系统进行I/O操作的过程中继续处理其它事务,操作系统同样以线程方式执行OverlappedI/O操作。它使用了一个Overlapped数据结构,处理系统和用户程序双向数据传输。程序则在后台等待串口通讯事件,通过WaitCommEvent()API函数检测特定的串行通讯事件。采用多线程技术和OverlappedI/O技术的串行通讯类设计方法应用广泛,其中RemonSpekre...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?