基于VxWorks的嵌入式实时PLC设计

发布者:bluepion最新更新时间:2013-11-30 来源: dzsc关键字:VxWorks  实时PLC  处理器 手机看文章 扫描二维码
随时随地手机看文章

  0、前言

  随着数字信息技术和网络技术的高速发展,人类正步入一个崭新的后 PC 时代。这个时代的主要特点是嵌入式系统无处不在,并不断地向科研生产及人类生活的各个方面渗透。而可编程控制器(PLC)对机床开关量信号进行控制时可靠性高,使用方便,在大多数数控机床,特别是经济型数控机床中,要求的输入输出点数不多的情况下得到广泛应用。在兼用PC 机系统资源的情况下,采用非实时多任务操作系统(如Windows)时,Win32 API 的设计可以满足多控制点复杂的数控功能要求,但由于Windows 的分时性,没有考虑到实时环境的开发用途,其系统调用的效率不高,不能满足数控系统高实时场合PLC 控制的实时性要求。

  VxWorks 作为一运行在目标机上的高性能、可裁减的嵌入式实时操作系统,目前以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域。

  本文基于 VxWorks 操作系统,提出了基于VxWorks 的嵌入式实时PLC 设计的方法与应用,利用VxWorks 的开放性、模块化和可扩展性的系统结构特性以及多线程/多任务的系统环境来达到高实时要求的PLC 控制,在保证实时性的同时,实现多点位、复杂功能的PLC系统控制目标。

  1、传统 PLC 系统的结构

  相比较传统的的基于通用工业 PC 的工业PLC,其数控系统嵌入式PLC 硬件包括:工控机及其外围设备,基于ISA 总线的开关量输入输出接口卡,光电隔离模块,继电器输出模块。其结构如图1 所示。


  工控机采用 Windows 等非实时操作系统,数控系统的人机界面、数控代码处理、轨迹划、参数管理以及PLC 控制都通过工控机由软件来实现,不需要独立的NC 控制器,减少了数控系统对硬件的依赖,有利于提高系统的开放性。I/O 输入输出信息通过PC 机I/O 接口卡实现主机与伺服接口模块和I/O 接口模块之间的信息交换,PC 机I/O 接口卡基于ISA或PCI 的总线。虽然其相较最初的单片机的控制加入了工业PC 来拓展其开放性,但是由于没有充分利用PC 机系统资源,而开发和运行都采用的非实时多任务操作系统(如Windows,Linux)时,其设计没有考虑到实时环境的开发用途,其系统调用的效率不高,数控系统PLC

  控制不能满足一些高精度场合的实时性要求。

  2、基于嵌入式系统的实时PLC 系统结构

  嵌入式实时 PLC 系统,一般由开发系统和实时运行系统两部分组成,是相互独立而又密不可分的两个系统,可以分别单独运行。开发系统基于PC 机,建立在Windows 操作系统平台之上,提供了PLC 应用程序的编写及其编译调试环境。开发系统与实时运行系统的通讯一般通过RS232 接口来实现。如果嵌入式操作系统提供网络服务,也可以通过以太网、Modbus 或CAN 总线进行通讯。应用程序编写完并编译调试无误后通过RS232 或TCP/IP 通信协议下载到嵌入式系统。实时运行系统则用于完成系统配置、输入信号处理、循环调用PLC 程序及控制信号输出等操作,并且可以通过现场总线或TCP/IP 通信协议与硬件层(I/O)实现通信。

  为了更好地支持实时运行系统,嵌入式系统一般要引入操作系统,嵌入式操作系统(如Windows CE,VxWorks 等)为实时运行系统提供了启动代码、串行通讯接口、内存操作(malloc/free)、ANSI 标准库、1ms 的时钟滴答、调试接口等服务。如果实时运行系统整合了相应的功能,系统也可以不引入操作系统。我们所采用的嵌入式实时系统体系结构如图2所示,其实时操作系统采用VxWorks。



  了其通信性能,实时能力大大提高,同时此结构具有完全开放性,高度兼容性,极佳的可扩展性,使得自动控制系统的设计不受硬件的限制,可以有效地提高PLC 的运行速度和可靠性,并且支持多任务的控制策略。另外相应的从嵌入式处理的设计与和BSP 改造方面,也做了相应的优化处理。[page]

  3、基于PPC 的嵌入式处理器设计

  VxWorks 系统运行在基于PPC 的MPC860 处理器上,并作了一些有关改造以适应实时PLC 的现场总线的通信要求。主要包括4 个主要模块(如图3):PowerPC 核心,系统接口单元(SIU),通信处理模块(CPM)和快速以太网控制器(FEC)。


  系统接口单元(SIU)集成几乎所有32-bit 处理器系统的常用功能。MPC860 采用32 位内部总线,可以支持8,16 或32 位的外设和存储器,同时SIU 提供功耗管理、复位控制、PowerPC减法器、PowerPC 时钟基准以及实时时钟等功能。其内存控制器可以控制多达8 个存储体,同时只需通过很少的电路就可实现与DRAM,SRAM,Flash 以及其它外围设备的无缝连接,同时DRAM 接口支持8,16 和32 位的端口,DRAM 控制器提供页模式下的突发传送访问;提供4 个16 位通用定时器或者2 个32 位定时器;同时系统集成单元集成了总线监控、软件看门狗、系统节电模式、时钟合成、实时时钟、复位控制以及支持IEEE 1149.1 调试方式JTAG等。

  通信处理模块(CPM)具有更强大的通信处理能力,拥有独立的简单指令集通信处理器(RISC),能够完成低层次任务以及DMA 控制,使得PowerPC 内核能够空闲出来处理高层次的实时任务,从而降低了系统频率,减少功耗。

  内嵌的 FEC 模块与IEEE 802.3 兼容,支持10-和100-Mbps 连接。不仅完成了以太网协议中的MAC 控制功能,并且使用了突发传送DMA,从而减少了系统总线的负荷。而FEC内部接的收和发送FIFO 通过将所有的冲突碰撞局部化到FEC 内部而进一步减轻总线的负荷。FEC 采用独立的发送缓存描述符和接收缓存描述符来完成具体的收发存取。可支持Modbus,CAN,EIP 等现场总线的应用。

  4、BSP 的改造

  BSP 即Board Support Package,通常指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合。BSP 是一个VxWorks 内核运行的基础。4.1 BSP 与VxWorks 的层次关系在 VxWorks 中,将BSP 简单描述成介于底层硬件环境和VxWorks 之间的一个软件接口。它的主要功能是系统加电后初始化目标硬件,初始化OS,及提供部分硬件的驱动程序如时钟、中断、串口驱动等。其与内核、驱动程序及应用程序之间的关系如图4:


  如图可见 BSP 为上层软件与底层硬件之间进行交互的桥梁,为上层提供统一接口。BSP中包括的驱动程序与具体的硬件相关,在移植到不同的硬件系统的时候,要修改相关的驱动。

  4.2 VxWorks BSP 的特点

  在众多的商用嵌入式实时操作系统中,VxWorks 是使用极为广泛的一种操作系统,它实时性强,占用空间小,提供丰富的网络协议,有众多的调试手段。

  VxWorks 的BSP 可以按功能分为两大部分。

  1)目标系统的系统引导部分:主要是目标系统启动时的硬件初始化,在目标系统上电后开始执行,主要是配置处理器的工作状态,初始化系统的内存等,这部分的程序一般只在系统引导时执行,为操作系统运行提供硬件环境。

  2)目标系统的设备驱动程序:主要是驱动目标系统配置的各种设备,包括字符型设备、块存储设备、网络设备等,这些设备驱动程序完成对硬件的配置,操作系统通过设备驱动程序来访问硬件,从而完成读取数据和外界的交互等。

  在实际应用中,为了获得更好的稳定性和执行效率,许多设备驱动程序会直接和应用程序捆绑在一起,而不是由操作系统来管理。[page]

  4.3 BSP 的设计与修改

  WRS 提供了大量预制的,支持许多商业主版或*估板的BSP,减少了开发时间。

  宏观来看,BSP 包括两部分:

  初始化部分:CPU 初始化;目标板初始化;操作系统的初始化。

  驱动程序部分:一般要包括时钟、中断、串口驱动。

  具体来看,BSP 包括源文件、头文件、派生文件。主要需要修改VxWorks 源码中的以下目录中:

  /target/config/all

  几个重要文件的功用如下:

  1)bootConfig.c:引导ROM 映像的主要初始化和控制文件。

  2)bootInit.c:引导ROM 映像的第二阶段的初始化代码。实现romStart 函数--romInit.s中的romInit()函数执行完后跳转到romStart(),执行解压缩,代码/数据段从rom 拷到ram。

  3)usrConfig.c:VxWorks 映像的主要初始化代码。

  /target/config/comps/vxworks:实时内核基本模块描述(cdf)文件。

  /target/config/comps/src:实时内核模块配置文件。供usrconfig.c 使用。

  /target/config/bspname 该目录下的文件就是要编写的BSP 文件。

  由于 BSP 系统开发的硬件相关性和处理器系列的多样性,不可能有一种通用的程序或方法来解决每一种处理器的BSP 问题,所以必须具体问题具体分析,不断实践,才能使程序运行达到比较高的效率。

  5、其它

  另外,VxWorks 的多任务任务调度策略的实施也是实现嵌入式PLC 的一个关键点,确保高优先级任务在确定的时间内能被执行,并对外部的异步事件作出及时响应。多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。VxWorks系统提供了多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。并具有实时系统的另一关键特性是硬件中断处理。为了获得快速可靠的中断响应,VxWorks 系统的中断服务程序(ISR)有自己的上下文。鉴于篇幅关系,在本文不做详细讨论。

  6、总结与展望

  嵌入式系统已经成为历史发展的必然,其极佳的可扩展性,对多种硬件的支持,同时能够提高PLC 的运行速度和可靠性,并且支持多任务的控制策略,对PLC 的性能有了很大的提高。通过现场运行调试,对现场I/O 设备进行监控,达到了预期的实时性要求,实现了通过现场总线或TCP/IP 通信协议与硬件层(I/O)高速的响应目标。新型的基于VxWorks 的嵌入式实时PLC 具有很高的性能价格比,具有市场竞争优势,有助于我国PLC 企业发展本国市场,发展自主产业的PLC。(作者:谢厚亮,曾永和 中电网  )


参考文献:

[1]. PLC  datasheet http://www.dzsc.com/datasheet/PLC+_1248813.html.
[2]. PC  datasheet http://www.dzsc.com/datasheet/PC+_2043275.html.
[3]. PCI  datasheet http://www.dzsc.com/datasheet/PCI+_1201469.html.
[4]. RS232  datasheet http://www.dzsc.com/datasheet/RS232+_585128.html.
[5]. MPC860  datasheet http://www.dzsc.com/datasheet/MPC860+_949318.html.
[6]. ROM  datasheet http://www.dzsc.com/datasheet/ROM+_1188413.html.

关键字:VxWorks  实时PLC  处理器 引用地址:基于VxWorks的嵌入式实时PLC设计

上一篇:风河VxWorks被用于倾转旋翼机技术革命
下一篇:高性能DSP在直接转矩控制系统中的应用序

推荐阅读最新更新时间:2024-05-02 22:52

ARM与晨星半导体再度合作授权ARM Cortex-A9处理器
2012年4月24日,中国上海——ARM®今日宣布,领先的显示器与数字家庭解决方案半导体供货商晨星半导体(MStar)在一系列ARM系统IP授权的基础上,又取得了ARM Cortex™-A9 MPCore™ 处理器和ARM926EJ-S™ 处理器授权,用于开发智能电视、机顶盒与智能手机等相关应用。在此之前,晨星半导体采用ARM Mali™-400MP图形处理器(GPU)所开发的智能电视系统级芯片(SoC)解决方案已经开始量产。这次扩大采用ARM IP授权后,晨星半导体将可通过ARM各种功能丰富的技术开发各类解决方案。 此次授权协议也 包括了ARM CoreSight™ 设计包(Design Kit)。通过采用CoreSight
[嵌入式]
3G手机技术发展与设计架构(1)
  当2G繁华日渐消退、3G曙光显现之际,3G通讯竞争则是充满变数;展望未来,3G技术谁将主宰沉浮?摊开各大市调研究机构对于行动通讯报告,从中不难发现对3G手机发展大都抱持乐观想法。例如,行动电话半导体市场在2009年时规模将上看400亿美元,3G手机用晶片数量也远高于目前2G手机…等趋势。   虽然还没有一个单位或专家能精确地预测出3G行动电话大展鸿图时刻,但…众多通讯业者早已虎视眈眈,专心研发自家产品,期望能在下一个手机新通讯时代中佔有一席之地。   ■ 3G手机晶片厂商摩拳擦掌 有备而来   随着UMTS(Universal Mobile Telecommunications System)手机(涵盖日本以亚洲所称的「
[手机便携]
STM32的中断及是如何使用
中断是一种机制,通过这种机制,I/O或指令可以暂停处理器的正常执行,并像具有最高优先级一样先执行自己的任务。也就是说,当外部中断发生时(比如来自某个传感器),处理器暂停其正在执行,首先提供中断服务,然后继续其正常执行。 为了了解 STM32F103C8 中的中断,我们将使用按钮作为外部中断。在这里,我们让一个变量从 0 开始每秒增1,并将其显示在16x2 LCD上,每当按下按钮时,LED 亮起,LCD 显示屏会显示 INTERRUPT。 中断类型和 ISR(中断服务程序) 中断大致可以分为两类: 1.硬件中断: 如果到处理器的信号来自某些外部设备,例如按钮或传感器,或者来自其他信号并告诉处理器执行 ISR 中存在的特定任务
[单片机]
STM32的中断及是如何使用
使用MAXQ3210作为微处理器监控电路
概述 微处理器用于大规模系统设计时,通常需要各种外部器件的支持。这些外部器件为微处理器提供多项任务支持:为微处理器提供满足电压、电流需求的稳压电源、监控其它电源电压、提供外部时钟、控制上电和断电顺序或执行其它任务。这些外部器件通常称为微处理器监控器,是专为特殊监控任务而设计的IC。 使用一个低功耗微控制器可以取代专用的微处理器监控电路,支持上述各种任务。根据其性能,一个微控制器可以提供多个器件所支持的服务,且由于监控功能可通过软件编程,具有很大的灵活性。 本应用笔记介绍了使用带有压电扬声器驱动、稳压器和比较器的低功耗微控制器 MAXQ3210 实现典型微处理器监控功能的方法。MAXQ3210可在单机配置下实现各种功能,采用9
[工业控制]
三星发布Exynos 9810芯片 CES展会将正式登场
北京时间1月4日,三星官方低调发布Exynos 9810芯片,这是三星旗下全新的旗舰级手机处理器。 三星Galaxy S9电商价格读取中。。。   Exynos 9810采用三星第二代10nm(FinFET)工艺制程打造,相较第一代LPE(Low Power Early),可让芯片性能提升10%,功耗降低15%。   Exynos 9810设计为8核心,采用三星基于ARM Cotex的第三代自研架构,其中大核主频2.9GHz,拥有四颗2.9GHz的第三代高性能定制核心和四颗效率优化核心的4+4核心配置。相较于Exynos 8895,单核性能翻番,多核性能提升了40%,外界预计GB4单核心在4000分,多核心有望破万。   基带
[手机便携]
Vicor 推出AI 处理器的最新模块化电源解决方案
Vicor 将出席于 10 月 16 日及至17 日在北京举行的中国领先的数据中心活动 — 开放式数据中心委员会 (ODCC) 峰会,展示其面向 48V 机架配电架构及高级人工智能 (AI) 处理器的最新模块化电源解决方案。 展示的产品有三相至 48V 模块化电源解决方案和 48V 直接至负载的模块化电源解决方案,以及高级散热技术。 ODCC 的使命是打造中国数据中心开放式平台,推动互联网产业的发展及基础设施标准化,并加速互联网产业化的进程。 ODCC 峰会由阿里巴巴、百度、腾讯、中国电信、中国移动、中国信息通信研究院及英特尔联合主办。
[电源管理]
Vicor 推出AI <font color='red'>处理器</font>的最新模块化电源解决方案
AMD调降桌面产品线价格 高端狂砍200美元
4月10日消息,AMD周一公布了其面向台式机的系列处理器调降后的价格,其中位于高端的Athlon 64 FX-70系列降幅高达200美元。 据DigiTimes网站报道,AMD同时还宣布部分产品将退出市场,其中包括基于AM2接口的Athlon 64 FX-64和采用745接口的Sempron 3400+和3000+。 在最新公布的这份价格列表中,除了745接口的产品停售外,仅剩下的三款socket 939接口处理器暗示该架构也将很快淡出。AMD桌面产品线现在大部分都采用AM2接口,而高端的FX系列处理器则采用了Socket F(1207FX)接口。
[焦点新闻]
高通:iPhone 8面部识别不算啥 骁龙处理器很快支持
    新浪科技讯 北京时间8月15日晚间消息,高通公司今日表示,下一代骁龙处理器将支持红外3D感知技术,这意味着Android手机将很快拥有像iPhone 8一样的面部识别功能。   种种迹象表明,苹果公司将使用面部识别技术来取代Touch ID指纹传感器,成为iPhone 8解锁和Apple Pay身份验证方式。而且,该技术还可能成为iPhone 8的最大卖点之一。   但是,相比Android手机,iPhone 8的这种技术优势将是短暂的。高通今日表示,今年12月即将发布的下一代骁龙处理器也将支持类似的技术,甚至还要优于苹果的解决方案。   高通称,下一代骁龙处理器的图形信号处理器(ISP)和深度感知功能将得到进一步增强,处
[半导体设计/制造]
热门资源推荐
热门放大器推荐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved