首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
EMC2的硬件抽象层原理与实现
来源:本站整理  作者:佚名  2009-12-28 10:41:50




    依照上述做法将所有硬件功能模块全部导出到HAL后,在rtapi_app_main()的最后调用hal_ready(comp_id),表明该Component已经初始化完毕,可以开始使用了。
    在关闭Component退出时,系统会自动调用hal_CNC.C中编写的rtapi_app_exit()。其实现如下:
    void rtapi_app_exit(void){hal_exit(comp_id);)
    hal_exit()关闭并释放HAL及RTAPI使用到的系统资源,使这些资源可被重新使用。
    用EMC2自带的工具comp对源文件hal_CNC.c和hal_CNC.h进行编译,即可得到名为hal_CNC的Compo-nent。该组件自动放入EMC2的模块库中,随时可被其他软件模块调用。


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

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:92,019.53000 毫秒