EMC2架构原理与实现.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EMC2架构原理与实现

EMC2的硬件抽象层原理与实现 |?来源:单片机与嵌入式系统?|?2010年09月26日?|?[字体:小?大]?|?点击推荐给好友 关键词: 1 概 述 ????嵌入式系统具有专用性强、外围设备多样的特性,这决定了其应用的硬件环境差异性较大。系统软件模块与硬件之间的接口是嵌入式实时系统的主要特征,是系统设计过程中的必需环节,也是影响嵌入式系统应用前景的关键问题之一。硬件抽象层(Hardware Abstraction Layer,HAL)的引入可有效解决这一问题。HAL是将硬件平台与应用软件隔离开来的软件层次,通过硬件抽象技术实现硬件相关和硬件无关两部分程序代码的隔离,为应用软件提供一个没有硬件特性的接口。硬件抽象层的引入不仅是系统体系结构设计方法的改进,更直接关系到整个系统的开发模式以及嵌入式操作系统的可移植性。硬件抽象层的引入大大推动了嵌入式系统开发的规范化进程。 ??? EMC是一个开放源代码的用于机床或机器人等运动控制系统的计算机控制软件。它能同时驱动9轴电机。其运动控制特性包括:刀具半径和长度补偿、轴同步运动、自适应进给速度、恒速度控制等。EMC2在原有EMC软件的基础上加入了许多新的特性和功能,其中包括了HAL和软件PLC模块ClassicLadder。ClassicLadder是一个基于LGPL协议的梯形图解释器。它随着EMC2一起发布,可以与EMC2的HAL一起工作。本文中的控制系统利用EMC2的HAL为软PLC中的应用程序提供底层硬件操作支持,提高了应用程序的平台无关性与可移植性。 2 硬件架构 ??? 控制器是锂电池卷绕恒张力控制器,采用符合PC/104总线规范的单板计算机(以下简称PC104)与基于FPGA的专用主机板相结合的方法构建系统硬件。PC104中运行实时Linux,ClassicLadder及HAL作为实时模块加载到Linux系统中。 ??? 系统硬件框图如图1所示。其中ADS8361为12位模/数转换器,用于采集张力值等模拟量;AD5624为数/模转换器,用于控制直流电机转速及气压阀压力值;FPGA控制所有外围芯片,并产生电机脉冲方向信号,同时对电机编码器信号进行计数;CPLD控制I/O输入/输出点,并与FPGA交换信息。利用EMC2中HAL的实现原理,可编写组件将硬件系统所有设备抽象成引脚和函数的形式,供软PLC在需要时加载。 3 EMC2中HAL的基本概念 ??? EMC2的HAL提供了一种简便方法,将一些已有软硬件模块进行加载和组合形成一个复杂的系统,从而使EMC2更容易配置,以使用各种硬件设备。硬件资源在HAL中被封装成特定组件,随时被控制系统载入使用。EMC2中的HAL有以下基本概念: ??? Component,组件。是定义好输入、输出及行为的软件模块,可以在需要时安装及连接。 ??? Parameter,参数。许多硬件组件有可调整参数需要进行访问。HAL有输入及输出两种类型的参数。 ??? Pin,引脚。硬件组件用于互联的连接端子。所有Pin都有名称,并在连接时使用。HAL的Pin是只存在于计算机内的软件实体。 ??? Physical_Pin,物理引脚。许多I/O设备有真正的物理引脚或终端连接到外部硬件,这些被称为物理引脚。 ??? Signal,信号。现实中硬件组件使用导线互连。在HAL中导线相当于“信号”。HAL的信号将HAL的引脚连接在一起,可以随意断开或重新连接。 ??? Type,类型。引脚和信号都有类型属性,即信号只能连接到相同类型的引脚。目前,HAL有4种类型:BIT、FLOAT、U32、S32。 ??? Function,函数。每个函数是一个执行具体行为的代码块,执行读取输入、计算输出等操作。系统设计者可以使用“线程”对一系列函数加以调度,以使其按照特定的顺序及时间间隔运行。 ??? Thread,线程。作为一个实时任务的组成部分,线程是一个以特定时间间隔运行的函数序列。函数可以添加到线程并在每次线程运行时调用。

文档评论(0)

cuotian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档