当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于RTX的舵机控制系统研制

摘要 设计并研制了一种基于RTX实时扩展模块的2.4 m风洞虚拟飞行试验的舵机控制系统。该系统用于采集天平、陀螺仪、舵机、光电编码器信号,为飞机各主要部件的气动特性评估提供了重要依据。文中介绍了RTX实时模块和硬件设计、软件设计。并通过实际应用表明,该系统具有实时性强、算法可靠、精度高、用户操作简单等优点。
关键词 RTX;驱动程序;PXI;舵控仿真

    舵机控制是虚拟飞行实验中的关键技术,为满足测试的实时性要求,文中设计了一套基于Windows RTX环境下的舵机控制系统,通过采集天平、陀螺仪、舵机、光电编码器信号,分析飞机各主要部件的气动特性。该控制系统的主要功能包括:舵机控制软件可以自动完成对舵机的上电及解锁操作;舵机响应可根据实际需要作出相应的模式选择和参数设置;采集到的数据可做到实时界面显示,用于现场实验分析。

1 RTX实时模块
    在工业控制、航空航天等领域,对系统实时性有很高的要求。系统的事件响应如果不确定或超时,就可能会导致系统出错,甚至崩溃,Windows系统很难满足实时性的要求。RTX正是应这一要求,利用Windows平台提供的丰富的设备驱动模型,通过定制硬件抽象层(HAL,Hardw are Abstraction Layer),对Windows系统进行了实时扩展。RTX使得系统具有较强的实时性,能在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理RTX是一个嵌入Windows的独立实时系统,支持在Windows平台下基于Visual Studio的实时应用程序开发。RTX给开发者提供了操作系统和实时性的最佳结合,既可以使用Windows的丰富资源和软件开发调试工具,又可以在一个独立的控制子系统上实现硬实时。RTX Release7.1支持绝大部分的Microsoft操作系统,同时支持单处理器(Uniprocessor)、多处理器(Multi-processor)、移动处理器(Mobile Processor)、超线程(Hyper-threading-enabled),以及多核平台(Multiple-core platform)。
    文中基于RTX,在Windows平台上实现了舵控仿真系统中高确定性和高速反应时间的应用部件和模块与其它非实时应用部件的正常运行。

2 系统的硬件设计
    该系统的构成如图1所示。硬件系统包括上位机一工业控制计算、下位机-PXI机箱、位于PXI机箱中的PXI测试板卡、电源和显示器构成,所有这些部件都组装在一个双联测试机柜中。PXI测试板卡包括数字I/O板卡、A/D转换卡、串口卡、RS422卡和PXI转PCI套件。



3 软件设计
    为提高Windows下数据采集的实时性,又满足舵机控制实时性的要求,舵机控制采用模块化的设计,设计分为上下两层,两层之间需要共享内存进行数据通信。软件组成的结构体系如图2所示。


    RTX程序开发平台选择VC6.0+Ardence RTX,RTX将开发环境直接嵌入到用户熟悉的VC6.0中,用RTX提供的向导即可生成RTX环境下的设备驱动和应用程序,大大缩短了开发周期。RTX和Windows运行在一台计算机上,也节省了系统的硬件成本,提高了系统可靠性。[!--empirenews.page--]
3.1 上层软件
    在启动舵机控制程序之前,先要启动RTX实时环境,因为底层驱动程序和上层舵机控制程序是同时运行的。软件的具体操作流程如图3所示。


3.2 底层软件
    根据舵机控制软件对数据采集的实时性要求,首先要对各采集板卡做在RTX下的驱动开发,这是舵机控制系统解决实时性问题的重点和难点。编写基于RTX的驱动程序,可以通过调用实时应用程序编程接口(RTAPI,Real-Time Applieation Programming Interface)函数来访问实时子系统(RTSS,Real-Time Sub-System),并维持其系统的实时性。这样处理的优点是硬件可以通过RTX函数直接访问,驱动开发也更加简单。
    所谓驱动程序,就是直接控制设备进行工作的底层程序,实现了硬件和高层应用程序的交互。如果要使用PXI总线设备上的某个功能,就需要CPU能通过某段范围的地址访问或内存访问的方式与该功能交互。RTX驱动程序可以将获得的基地址转换成系统能够识别的虚拟地址,然后通过读写函数对不同板卡的底层寄存器进行操作,从而实现控制板卡正常工作。PCI定位寄存器配置由BIOS自动完成初始化,如分配总线号、中断向量、地址空间等,驱动程序只需要对数据偏移寄存器,即设备内部寄存器进行配置。访问内部寄存器,首先要获得PCI设备在BIOS上的映射基地址,然后根据设备的寄存器偏移量和格式对寄存器进行访问。

[!--empirenews.page--]
    在RTX环境下,PXI设备驱动程序的基本结构如图4所示。其中,PXI设备和RTX位于结构底层,PXI设备与RTX内核通过中断和I/O端口来进行数据交互,RTX内核通过库函数和设备驱动程序来提供所需服务。上层应用程序与底层驱动程序通过建立共享内存来进行通信。


    在RTX环境下进行PXI设备驱动开发,首先需要将Windows下的设备转换为RTX下的设备。RTX提供实现该功能的属性窗,如图5所示。利用RTX属性窗进行转换分主要分为两个步骤:
    (1)添加RTX的INF支持;
    (2)在设备管理器中更新设备驱动,将PXI设备从Windows支持转换为RTX支持。
    RTX环境下一个完整的PXI驱动程序至少由以下几方面组成:
    (1)设备初始化和释放。查找PCI设备传送设备号和厂家号两个主要参数,并遍历所有的PCI插槽直到匹配为止。找到设备后,读出中断号、基地址等,为以后的工作做准备。
    (2)地址到虚拟地址的映射,使系统能够识别硬件。由于对硬件的读写操作是基于物理地址,而应用程序实现读写操作使用的是虚拟地址,所以驱动程序必须要完成地址映射。
    设计的PXI板卡驱动程序首先用接口函数DeviceSearch()在总线上轮询,并查找到设备。然后通过DeviceInit()函数获得设备的硬件资源,如中断号、内存、输入输出I/O和DMA等。通过RtGetBusDataByOffset()函数访问设备的整个PCI配置空间,得到本地配置寄存器和存储空间内存的基地址和中断号等信息,然后根据获得的基地址利用RtTranslateBusAddress()和RtMapMem ory()函数将读取出来的基地址转换为系统能够访问的虚拟地址。需要指出的是,板卡的本地寄存器和存储空间可以通过Memory映像和I/O直接访问,文中设计的驱动程序的运用的是Memory映像。如选用I/O直接访问,可以通过调用RtEnablePortIo()和RtReadPortUchar()等函数即实现对端口的直接读写。当找到并打开板卡后就可以自定义读写函数对板卡进行读写操作,从而达到控制板卡的目的,具体开发流程如图6所示。



4 结束语
    RTX环境下的驱动程序可以通过RTX函数进行直接访问的,能够随时停止随时配置。文中基于RTX,在Windows平台实现了风洞虚拟飞行试验舵控仿真系统。与直接基于Windows平台设计的系统相比,系统的响应时间提高到ms级,满足了实时性要求。由于测试软件是基于VC++环境开发的可视化软件,系统具有良好的可扩展性,通用性较强。通过联调,验证了仿真系统的可靠性和实时性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭