网站大量收购独家精品文档,联系QQ:2885784924

EMC2的硬件抽象层原理与实现.pdf

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

时间:2009-12-28 来源:单片机与嵌入式系统 作者:林凯宏,游林儒,胡庆华 华南理工大学 关键字:EMC2 硬件 抽象层 原理 1 概 述 嵌入式系统具有专用性强、外围设备多样的特性,这决定了其应用的硬件环境差异性较大。系统软件模块 与硬件之间的接口是嵌入式实时系统的主要特征,是系统设计过程中的必需环节,也是影响嵌入式系统应用前景的 关键问题之一。硬件抽象层(HardwareAbstractionLayer,HAL)的引入可有效解决这一问题。HAL是将硬件平台与 应用软件隔离开来的软件层次,通过硬件抽象技术实现硬件相关和硬件无关两部分程序代码的隔离,为应用软件提 供一个没有硬件特性的接口。硬件抽象层的引入不仅是系统体系结构设计方法的改进,更直接关系到整个系统的开 发模式以及嵌入式操作系统的可移植性。硬件抽象层的引入大大推动了嵌入式系统开发的规范化进程。 QQ群:302377173 LinuxCNC/EMC2 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,线程。作为一个实时任务的组成部分,线程是一个以特定时间间隔运行的函数序列。函数可以添 加到线程并在每次线程运行时调用。 4 HAL架构QQ群:302377173 LinuxCNC/EMC2 系统软件架构如图2所示。用HAL将各 I/O通道、ADC通道、DAC通道、脉冲通道、编码器通道抽象成Pin, 将对硬件各模块的操作抽象成各个Function,将Pin和Function封装在命名为hal_CNC 的Compon

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档