基于ACoreOS的相对水平度差分测量系统软件开发

电子设计工程
Electronic Design Engineering
第27卷Vol.27第10期No.102019年5月May.2019
收稿日期:2018-09-18
稿件编号:201809073
作者简介:刘爱东(1968—),男,山东烟台人,教授。研究方向:嵌入式系统
舰船系泊或航行阶段,由于受船体摇摆影响,无法保证水平对准时相对水平度测量的精确性[1],因此考虑运用无线传感器网络技术开发一款相对水平度测量差分系统,代替目前操作复杂、精度较低的人工测量。
由于采用差分测量方式,使得该测量系统对时间敏感性很高。因此需要一款实时性强、稳定性高
的操作系统,[2]
来保证测量系统软件运行的准确性和
可靠性。
本文拟在国产嵌入式强实时操作系统—天脉操作系统基础上,研究相对水平度差分测量系统应用软件的开发。1相对水平度差分测量系统
1.1
功能需求分析
相对水平度差分测量系统是一款相对水平度自动测量设备,本系统希望可以使操作人员从繁琐的相对水平度测量工作中解放出来,使得测量更加精确、简便,该系统应具有以下功能:
1)可以同时测量分布于舰船不同位置处的两个或以上设备基座相对基准面的相对水平度;2)可以集中显示不同位置处的设备基座相对水平度;
3)可以实现对整个系统集中控制;
4)可以根据对准工作要求增加或减少测量设备
基于ACoreOS 的相对水平度差分测量系统软件开发
马斯洛
刘爱东,王鹏超
(海军航空大学山东烟台264001)
摘要:基于天脉操作系统(ACoreOS )对相对水平度差分测量系统应用软件进行开发,以解决该软件直接开发难度大、效率低、实时性和稳定性无法保证等问题。在充分分析ACoreOS 内核特点、开发环境和任务调度方式等的基础上,结合相对水平度差分测量系统的功能需求和结构组成,重点进行了软件多任务的划分、设计和实现,并对显示控制、串口通信和中断功能的实现进行了测试,验证了在ACoreOS 上对实时性要求较高的复杂应用软件开发的可行性。关键词:天脉操作系统;相对水平度测量;软件开发中图分类号:TN9
文献标识码:A
文章编号:1674-6236(2019)10-0188-06
局域表面等离子体共振Software development of relative level difference measurement system based on
AcoreOS
LIU Ai⁃dong ,WANG Peng⁃chao
(Naval Aeronautical University ,Yantai 264001,China )
Abstract:The software of the relative level difference measurement system was developed based on the AcoreOS ,in order to solve the problem that the real time and stability can not be guaranteed if the
software is developed directly.Based on the fully analyzing the characteristics of Acoreos kernel ,the development environment and task scheduling method ,combined with the functional requirements and structure of the relative level difference measurement system ,the software multitask division ,design and implementation were mainly carried out ,and the realization of display and control ,serial communication
and interrupt function was tested.The feasibility of the development of complex application software with high real-time requirement on Acoreos was validated.
Key words:ACoreOS ;measurement of relative level ;software development -
DIGITAL GAP-188
数量,以适应不同船只的不同任务需要。
1.2组成结构
相对水平度差分测量系统总体架构遵循典型的分布式传感器网络架构,逻辑上采取层次性结构,共分为3层,分别为感知层、网络层和应用层[3]。
根据功能需求,从模块划分角度,又在物理上将整个系统分成终端设备、路由设备和协调器设备3个部分来分别进行设计,每种设备均由硬件和软件两部分组成。
1)终端设备
终端设备实现感知层和网络层终端部分的功能,硬件上需要电子水平仪、时钟模块、存储器模块、显控模块和无线通信模块支持。
水平仪负责采集所测平面水平度信息,守时时钟为水平仪所测水平度信息提供当前采集时间信息,保证数据测量的同步性要求,采集到的相关数据暂时性的存储在存储器模块中,等待接收到命令后由无线通信模块发出。
2)路由设备
路由设备实现网络层路由器部分的相关功能,硬件上主要由无线通信模块和显控模块支持。
路由设备起到了终端设备与协调器设备之间数据传输的桥梁作用,以透明传输方式为设备间提供数据转发服务。
3)协调器设备
协调器设备实现网络层协调器部分和应用层功能,硬件上需要无线传输模块和显控模块支持。
终端、路由和协调器硬件上完全相同,根据其上运行软件差异决定模块功能。
由于该测量系统软件功能复杂,实时性要求比较高,需要合理选择选用合适的嵌入式操作系统(EOS),有效降低程序开发难度,减少开发时间,更方便的实现任务的调度、系统资源的管理,确保程序执行的可靠性、实时性[4]。该测量系统软件基于国产强实时嵌入式操作系统—天脉操作系统开发。
2天脉操作系统
ACoreOS原是由中航工业631所为航空嵌入式设备软件应用研发的一款实时操作系统,用于摆脱对国外同类产品的依赖。由于其优良的性能,现已扩展应用于如交通、工控等其他领域的各类项目之中,且随国产化力度不断加大,正被越来越广泛地接受。2.1天脉操作系统特点
应用天ACoreOS的各领域工程有一些通用性需求,要求ACoreOS具有一些特点:
1)实时性:基于天脉操作系统运行的如航空等领域应用软件,对实时性都有很高要求,天脉操作系统可以保证其在特定时间内得到正确响应。2)多任务:一个应用软件大多要求可同时完成多个任务,实现多种功能,天脉操作系统能够满足宏观上多任务并发执行。
3)优先级:并发执行的任务在重要性和紧急性上也并不相同,为划分任务紧要程度,保证重要紧急任务能优先执行,天脉操作系统为每个任务提供优先级标识。
2.2应用开发环境
ACoreOS应用开发环境为基于Eclipse开发的LambdaAE,支持C语言与C++语言开发,[5]开发环境满足应用软件完整生命周期开发需求,具有以下特性:全国党校工作会议
1)提供丰富的项目向导和应用框架,省去通用内容开发过程,一次编辑多次运用,简化软件开发的过程;
2)可视化配置环境,可在配置视图中直接对目标板、内存、操作系统和应用组件配置;
3)提供交叉调试环境,在局域网直接对系统级、任务级调试,在宿主机上直接调试目标机中的软件映像;
4)系统资源情况实时监视,根据系统事件分析数据,清楚掌握目标机的运行状况。
2.3任务调度
ACoreOS是一个单应用多任务操作系统,宏观上允许多个任务并发运行,但实际上每个任务相互独立,每一时刻只能一个任务独占CPU,微观上任务之间异步运行,为保证任务间互不干扰,应用有序运行,需要进行任务调度。水头损失
在天脉多任务环境中,为完成任务调度,将任务分为4种状态:休眠态、就绪态、运行态、阻塞态[6]。
休眠态:任务刚刚创建或已经停止,处于该状态的任务不具备竞争CPU的权利。
就绪态:任务已经取得除CPU以外的资源,一旦获得CPU即可执行。
运行态:任务拥有CPU控制权并正在执行。
四面墙内
阻塞态:任务被挂起或由需要的资源条件未被
刘爱东,等基于ACoreOS的相对水平度差分测量系统软件开发
-
-
189
《电子设计工程》2019年第10期
满足,没有资格竞争CPU。
ACoreOS为保证紧要任务能够优先执行,会为每个任务根据紧要程度分配优先级,在不同优先级任务之间采用优先级调度方式,在任务拥有相同优先级情况下,为保证每个任务都能得到运行机会,采用时间片轮转调度方式。
在采取优先级调度时应注意使能任务“抢占”属性,时间片轮转调度时应注意同时使能“抢占”和“时间片”属性[7]。
3系统软件总体设计
3.1软件开发流程
测量系统软件部分包括操作系统和运行其上的应用软件,操作系统又由模块支持层(Module Support Layer,MSL)和操作系统层(Operating System Layer,OSL)两部分组成[8]。
软件开发包括板级支持包(BSP)开发、MSL配置、OSL配置和应用软件开发[9]。
在软件开发时,首先应针对处理器类型和IO设备等模块硬件要求开发BSP。天脉操作系统针对常用处理器,如X86、ARM和PowerPC等系列,提供基础BSP包,在使用到没有提供BSP包的处理器时,可以在现有模板基础上扩展。
在BSP包开发完成后,需要在MSL中选择需要用到的设备,并进行设备属性的配置。在MSL中除设备配置外,还要配置处理器、组件和空间。
除MSL配置外,还需要配置OSL,包含内核配置、目标机代理、VxWorks兼容包和其他可配置组件配置。
以上开发流程,天脉操作系统在其LambdaAE 中都提供了友好的可视化配置环境。在完成操作系统配置后,进行最主要的应用软件的开发。
3.2应用软件开发
相对水平度差分测量系统应用软件运行于硬件平台和操作系统之上,根据设备类型不同,应用软件分为协调器软件、路由软件和终端软件。应用软件决定设备功能,是设备最重要的组成部分之一。
无论哪一种应用软件,其实现的功能并不单一,且不同类型软件之间功能也有重叠。为保证设备能同时实现多个功能,也为了提高软件开发效率,系统应用软件开发采用多任务方式[10]。
3.3多任务设计
在应用开发时需首先合理设计相关任务,合理
的任务设计可以提高系统的运行效率,增强实时性,任务设计主要包括任务划分和任务调度。
在任务划分时主要依据系统功能,同时遵循一些基本原则。任务划分不能太细,以造成不必要的任务切换开销过大,也不能过于粗糙,使系统并发性变差,运行效率变低。任务的划分需要遵循以下原则:
1)不同的两个任务之间功能上应该是可以互相区分的。
2)不同的两个任务之间应有不同的周期频率。
3)不同的两个任务之间没有确定的时间关系。
4)不同的两个任务之间耦合应当尽量松散。
根据系统的相关功能和以上基本原则,将任务划分为显控任务、通信任务、时间同步任务、数据采集任务和数据处理任务。
3.3.1显控任务
显控任务主要为系统提供更友好的人机交互界面。用于系统的控制界面、设备状态和结果显示,控
制命令的接收。
图1显控任务流程图
显控任务工作流程如图所示,其中最主要的工作是对话框的创建。对话框通常是一个包括多个控件的窗口,为模块化和非模块化两种。
一个模块化对话框会阻塞执行的线程,必须在线程继续执行前被用户关闭,通过调用函数GUI_CreateDialogBox()创建。非模块化对话框不会阻塞调用的线程,在它显示的时候,允许任务继续运行,调用函数GUI_ExecDialogBox()创建[11-13]。
对话框创建流程依次为“定义一个资源表,指定包括在对话框中的所有控件”—>“建立对话框”—>“初始化对话框”—>“定义对话框行为”。
3.3.2通信任务
通信任务主要负责通过无线通信模块发送和监听、接收通信帧,主要分为发送和接收两个组成部分[14]。为保证通信帧能够及时接收,就要保持时时监听,这种方式会造成任务阻塞,导致下次发送动作无法完成,因此将通信任务又分为发送任务和接收任务两
--190
个子任务。
图2通信任务流程图
3.3.3时间同步任务
时间同步任务只运行于终端设备与协调器设备
上,负责同步各终端设备与协调器设备之间的时钟,保持一个全局一致的时钟。时间同步任务在终端设
备与协调器设备上有不同的工作任务。
图3
终端设备时间同步任务流程图
图4
协调器设备时间同步任务流程图
3.3.4数据采集任务
数据采集任务只运行于终端设备上,负责每间
隔特定时间控制电子水平仪采集一次数据,并将数据暂时存储。根据需求分析可知,水平度采集频率应保不低于5Hz ,即每隔200ms 采集一次。因此,设
定为在整秒、200ms 、400ms 、600ms 和800ms 时采集水平度。每次采集到的水平度储存在相应时刻的数组中,
等待协调器命令统一通过发送分任务发送。
图5数据采集任务流程图
3.3.5数据处理任务
数据处理任务主要任务是根据各电子水平仪采
集到的绝对水平度数据计算出相对水平度数据,运
行于协调器设备上。
图6数据处理任务流程图
4软件关键功能实现
相对水平度差分测量系统软件开发主要涉及到显示、串口通信、中断等几个关键功能在天脉操作系统上的实现。
4.1显示功能实现
显示界面主要用于系统的可视化控制、命令提
示、设备状态显示和结果显示,通过Ucgui 开发工具GUIBuilder 开发功能。不同类型设备显示界面外观统一,功能不同。
显示界面由两个下拉列表控件、4个按钮控件和
刘爱东,等
基于ACoreOS 的相对水平度差分测量系统软件开发
-
-191
《电子设计工程》2019年第10期
一个多行文本控件组成。
“设备类型控件”负责定义该设备为终端、路由或协调器设备。
“终端编号控件”设置设备地址。
“启动控件”在终端设备上依次执行“终端设备启动”—>“请求加入网络”—>“等待命令”,在路由设备上执行“路由设备启动”—>“等待转发数据”,在协调器上执行“协调器启动”—>“等待设备加入网络”。
“关闭控件”在终端上依次执行“退出网络”—>“关闭设备”,路由上执行“关闭设备”,协调器上执行“通知所有终端退出网络”—>“关闭设备”。
“开始同步控件”在路由设备上无效,在终端上用于后加入网络终端单独请求与协调器对时,在协调器上执行与所有已加入网络终端对时。
“开始测量控件”只在协调器上有用,通知所有已加入网络终端设备开始数据测量。
“多行文本控件”负责命令提示、设备状态显示和结果显示,在不同设备上显示内容不同。
4.2串口通信功能实现
在天脉操作系统中,串口通信功能主要通过系统提供的I/O系统实现。通过文件描述符统一对文件或设备进行操作。
在对一个串口执行读写操作之前,首先要用一个文件描述符来标识该串口。通过以下的服务可以进行文件或者设备的读写操作[15]:
ssize_t read(int fd,void*buffer,size_t count);
ssize_t write(int fd,const void*buffer,size_t count);
fd—文件描述符;
buffer—缓冲区地址;
count—读/写的字节数。
可以通过如下接口实现I/O控制:
int ioctl(fd,command,buffer);
在测量系统中,串口通信主要指与电子水平仪的通信,应用软件通过串口控制水平仪,并获取回传
的水平度数据。
图8水平度数据
4.3GPIO中断功能实现
天脉操作系统作为一种强实时性操作系统,需要对外部异步事件及时做出响应。中断就是确保天脉操作系统能够对外部激励做出及时响应的一种硬件机制。
中断的响应时间指的是从中断开始发生到用户中断服务程序开始执行第一条指令的这段时间,其大小与系统性能和应用运行时的硬件和软件环境有关,其在多次中断响应中的误差称为中断响应稳定度[16-18]
图9中断响应时间
中断机制在数据采集任务和时间同步任务等多种任务中均有运用,如时间同步任务中的时间戳获取,数据采集任务中定时采集,由于在这些任务中对实时性要求很高,
中断响应时间作为系统随机误差图7系统显示界面
-
-192

本文发布于:2024-09-21 14:51:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/358793.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:任务   设备   系统   测量   水平度   开发   功能
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议