当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于嵌入式操作系统的控制系统平台设计

 1 引言

  近年来,嵌入式系统在工业控制领域的应用越来越广泛。随着嵌入式控制系统的发展,嵌入式控制系统将在一定程度上取代现有的工业PC控制系统,在微型TDCS(集散控制系统)、现场总线系统、PLC控制系统、智能化仪表等领域得到广泛的应用。由于其相对于大型的TDCS系统来说具有较强的成本优势和灵活性,其应用领域正在进一步扩大。本文建立了一套完整的嵌入式控制系统软件平台,该平台建构于嵌入式硬件系统之上,包括嵌入式实时操作系统、软PLC系统、嵌入式组态软件等。

  平台包括运行环境和开发环境两部分。使用开发环境,用户可以方便组态和二次开发,而将开发重点集中到具体的控制系统应用上,而诸如系统的软件架构设计、实时性保证、通用的控制系统软件如网络通信、控制算法等复杂而繁琐的软件工作,则交由平台完成。

  2.3平台的总体框架

  嵌入式控制系统平台是以嵌入式实时操作系统为核心,包括硬件平台、硬件驱动、图形库运行环境、实时数据库管理与通信、人机界面、软PLC、网络通信、用户应用程序等。

  嵌入式控制系统平台总体框架如图1所示。

图1嵌入式控制系统软件平台总体框架

  由图1可知,嵌入式控制系统软件平台主要包括以下部分:

  (1) 嵌入式硬件平台  (2) 嵌入式实时操作系统  (3) 硬件驱动程序 (4) 图形库与运行环境  (5) 实时数据库管理与通信  (6) 人机界面 (7) 软PLC  (8) 网络通信  (9) 用户应用程序

  3嵌入式控制系统软件平台主要模块的实现

  嵌入式控制系统软件平台是个非常复杂的系统,从总体框架图可以看出平台包括实时操作系统、实时数据库管理与通信、图形库与运行环境、人机界面等许多模块,本章着重介绍嵌入式实时操作系统、实时数据库管理与通信等模块的实现。

  3.1嵌入式Linux实时操作系统

  Linux是一种能运行于多种平台、功能强大、源代码公开、免费的操作系统,基于Linux开发一个开放的、标准的、高效廉价的实时操作系统是完全可行的。本文介绍的嵌入式控制系统软件平台就采用嵌入式Linux实时操作系统,使用双内核RTAI解决方案。RTAI的实现方案类似于RT-Linux,是双内核系统,即利用Linux内核,同时增加一个实时内核,两个内核共同工作。RTAI利用Linux提供的内核模块机制完成实时任务,提供实时服务。模块是内核的一部分,但是没有被编译到内核里去。模块被编译成一组目标文件,根据需要,这些文件能够被插入到正在运行的内核中,也可以从正在运行的内核中移去。RTAI实现的主要模块有RTAI核心模块、RTAI调度器模块、RTAI先进先出模块、RTAI共享内存模块和LXRT模块等。

  3.1.3基于RTAI的Linux实时操作系统的实现

  我们实现基于RTAI的Linux实时操作系统的过程是:在标准Linux的基础上,打上RTAI的实时补丁包,根据特定硬件条件和运行环境的要求进行适当的配置,再对内核进行裁剪后编译成一个支持实时性的内核。

  3.1.4基于RTAI-Linux的应用程序开发

  在编写基于RTAI-Linux的应用程序时,根据实时系统的具体要求,将应用程序分为实时任务和非实时任务。实时任务是实时模块,作为Linux核心可加载模块运行在核心态。一般地,定义init_module()函数,它在执行insmod命令装载模块时被调用,在该函数中一般是作一些初试化工作,并且启动实时任务。同样的,还需要定义cleanup_module()函数,它在执行rmmod卸载模块时被调用,在该函数中一般是做一些资源释放工作。实时任务的设计应该尽可能简单,仅包含那些有强实时要求的处理模块,如实时数据采集、外部设备控制等。

  非实时任务是普通的Linux进程,它在用户态运行,运行那些对实时要求不高的任务,如数据处理、图形显示等。

  实时任务(RTAI核心态)并不能直接调用系统调用,它必须通过特定的方法和非实时任务(Linux进程)进行通信。它们可以通过共享内存和FIFO等方法通信。

  基于RTAI应用程序的结构图如图2所示。

图2 RTAI应用程序结构图

  3.2实时数据库管理与通信[!--empirenews.page--]

  本系统的实时数据库管理着全局I/O数据。通过硬件驱动程序,将数据采集,并放入到实时数据库中,同时,上层软件从实时数据库中获得数据。

  3.2.1数据结构设计

  实时数据库与其他一般数据库一样,包含一组对象及其结构,由于目前对实时数据库还没有提出统一的数据模型,所以不同厂家开发的数据库的数据结构都有很大差别。本系统的实时数据库,一个基本的数据对象为“数据”,一个数据包含若干信息,如数据名称、数据类型、数据位置、数据长度等。


  考虑到数据的存取效率,程序运行一开始,我们将在内存区开辟一段缓冲区,缓冲区中只存放数据,如果缓冲区大小不够,即缓冲区的数据较多,可以自动扩展缓冲区大小。实时数据存放在缓冲区时,我们采取这种思想:如果不是bit型数据,由于数据长度都是字节的整数倍,存入缓冲区中以字节来进行存储,该数据的长度length是以字节来计算。如果是bit型数据,存入缓冲区中,该数据的长度length是以位来计算,接着再存储一个实时数据,若为非bit型数据,则从下一个字节开始存放,即原来的bit型数据占用一个字节,若为bit型数据,根据此数据的长度来判断其存放位置,这里又分两种情况,如果这两个bit型数据的长度没有超过8位,则紧接着前一个bit型数据后存储这个bit型数据,如果两个bit型数据的长度超过8位,则从下一个字节开始存放,即原来的bit型数据占用一个字节。


  3.2.2数据存取设计

  为了存取方便,我们将所有的实时数据组成一个链表,链表的节点类型为上述的rtdb_data_t结构。当向实时缓冲区中加入一条数据时,就自动会计算出数据存储位置、长度等信息,并在实时数据库链表中加上一个节点。这样,取实时数据就非常灵活和方便,如果知道实时数据的名称,则可以遍历链表得到数据,如果知道数据的存储位置和长度,则可以利用实时数据库提供的接口直接从缓冲区中获得数据,而不必遍历链表,因为遍历链表需要花费一些时间,这在实时性要求较高的本系统中不太适合,所以本系统常常采用后一种方法存取数据。实时数据库链表结构如图3所示。

图3实时数据库链表结构

  3.3人机界面软件

  人机界面模块是本系统重要的部分,它提供用户与底层控制的交互平台。

  3.3.1人机界面数据库

  人机界面数据是指与界面相关的数据,包括全局I/O数据和内存数据。I/O数据指的是需要系统和其它应用程序(包括I/O服务程序)交换数据的变量,与实时数据库中的全局I/O数据相似。内存变量是只在系统内需要的变量,比如计算过程的中间变量。为了存取方便,我们使用链表来组织人机界面数据,形成两个链表:I/O数据链和内存数据链。人机界面数据库也是依据XML配置文件hmidb.xml来填充的,XML配置文件来自于开发环境。

  3.2.2界面图元

  图元是构成画面的基本元素,包括基本图元,如线条、矩形、椭圆等,以及组合图元,如油罐、阀门等,它们是由基本图元组合而成。本系统提供了大量的图元,这些图元的绘制将调用特定系统下的平台函数,如Linux系统和Windows CE系统,即对于用户来说,不管使用哪个系统,这一层是相同的。

  描述人机界面需要一个XML配置文件,如hmiwidget.xml,这个配置文件是用户在开发环境中设计界面时生成的。系统还支持图元的变化,即动态属性,以及事件响应。因此人机界面图元还有动态属性和事件属性,解析配置文件hmiwidget.xml时,会分析这些属性,并将其链起来。

  在系统初始化时,MiniGUI分为两种情况:服务器(Server)和客户端(Client)。这主要取决于全局变量mgServer的值,如果为TRUE,表示为服务端,如果为FALSE,表示为客户端。我们将MiniGUI应用程序名改为mginit,则该应用程序为服务端,如果MiniGUI应用程序名作为客户端运行,则必须先运行MiniGUI提供的服务端程序mginit。

图4 MiniGUI应用程序流程

  本文作者创新点:

  本文讨论的嵌入式控制系统软件平台是一个复杂、庞大的系统,而且每个组成部分其内部结构和实现也非常复杂。我在此课题中做了很多研究,提出了系统设计的框架,如今已经实现部分为: 嵌入式Linux实时操作系统、实时数据库管理与通信、图形库与运行环境等,取得了优秀的成果。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭