微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 浅谈EMC2的硬件抽象层原理与实现

浅谈EMC2的硬件抽象层原理与实现

时间:01-05 来源:互联网 点击:

对于高层不可见。

6 HAL的使用

以DAC为例,在Linux下的命令行输入“halrun”进入EMC2的HAL运行界面,输入:

loadrt threads namel=thread periodl=1000000

创建名为“thread”的线程,该线程执行周期为1 ms。

执行:

loadrt hal_CNC

将所编写的硬件系统组件调入,执行:

addf CNC.DAC.write thread

将DAC的写函数加入到前面创建的线程thread,使之以与thread相同的执行周期被调用。然后使可通过控制DAC的引脚来输出相应的电压。如:

setp CNC.DAC.0.value 1

该语句将使电路板上的DAC输出端子输出1 V的电压。

用类似的方法将其他软件模块通过与HAL的引脚连接,便实现了其他软件对HAL的调用。

7 HAL在ClassicLadder中的调用

以从DAC输出5 V为例,将classicladder的一个名为“classicladder.0.s320ut-00”的有符号32位整型Pin赋值为5。该值经过HAL中的一个类型转换Component“s32tofloat”变为浮点数,再连接到hal_CNC中的DAC单元的引脚“CNC.DAC.0.value”,便在实际硬件电路板的DAC输出端输出5 V的电压。引脚连接如表1所列。

其中“→”和“←”表示引脚之间的连接,用HAL中的Sig-nal实现。

在软PLC中设置变量W10的值为5,则在DA输出端子引脚上用万用表测到5 V的电压。软PLC中的操作输出如图3所示。

其中4个窗口表示DAC的4个通道,分别令DAC输出5 V、2 V、3 V、4 V的电压。

8 结 论

实践证明,HAL的引入可极大提高嵌入式软件实现的硬件无关性。从软件的角度来看,其面向的硬件具有同质的接口,对硬件的操作具有相似的方法与架构,极大地简化了软件对硬件的控制,方便了同类软件在不同硬件平台间的移植。这就为软硬件同步设计、分工协作奠定了良好的基础。该架构已成功应用在文中所述的锂电池卷绕恒张力控制器中,取得了良好效果。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top