首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
数字电路
» 实现EMC2的硬件抽象层
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
实现EMC2的硬件抽象层
发短消息
加为好友
520503
当前离线
UID
872339
帖子
13270
精华
0
积分
6635
阅读权限
90
在线时间
361 小时
注册时间
2012-3-2
最后登录
2016-3-10
论坛元老
UID
872339
1
#
打印
字体大小:
t
T
520503
发表于 2014-1-20 13:59
|
只看该作者
实现EMC2的硬件抽象层
系统软件
,
嵌入式
,
硬件
,
接口
关键字:
HAL
ADS8361
Linux
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,线程。作为一个实时任务的组成部分,线程是一个以特定时间间隔运行的函数序列。函数可以添加到线程并在每次线程运行时调用。
4 HAL架构
系统软件架构如图2所示。用HAL将各I/O通道、ADC通道、DAC通道、脉冲通道、编码器通道抽象成Pin,将对硬件各模块的操作抽象成各个Function,将Pin和Function封装在命名为hal_CNC的Component中。
硬件在Component中被映射为如下数据结构:
由上述结构可以看出,每个Pin对应一个相应类型的指针,该指针指向的内存区便存放该引脚的值。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议