0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术嵌入式主板支持精确延时操作之二介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-17 11:08 次阅读

在《英创嵌入式主板支持精确延时操作》这篇文章中已经讲解了如何在EM335x系列的主板中进行精确延时的操作。现在英创公司已经将这部分工作移植到了EM9x60系列的主板中,这样用户在EM9x60上面同样也可以进行精确延时的操作。

以EM9160工控主板为例,用其内部的定时器来实现精确延时的功能,EM9160内部定时器的输入时钟为50MHz,单位时间为20ns,通过将Linux系统的mem设备文件和mmap()函数结合起来使用,可直接对EM9160内部定时器的寄存器进行操作。为了使用示波器查看定时器的工作效果,再通过同样的方式控制GPIO,通过mmap()的方式操作一路GPIO,在定时器开始计数和结束计数的时候进行拉高拉低的操作,这样就能清楚直观的在示波器中看到实际的延时时间。实现:(1)设置GPIO,(2)启动定时器,当检测到定时器计数完毕,(3)再设置GPIO,共三个步骤,就可产生精确时间间隔的脉冲。

将/dev/mem/设备文件中定时器的地址映射到用户进程空间的代码:
void *timer_em9x60_pin_config(unsigned int BASE)
{
int mem_fd;
void *base;
mem_fd = open('/dev/mem', O_RDWR|O_SYNC);
printf('mem_fd is %d\n', mem_fd);
/* mmap Timer */
base = mmap(
NULL, //起始地址
DMTIMER_DEV_SIZE,//映射的文件内容的大小
PROT_READ|PROT_WRITE,//映射区域可读可写
MAP_SHARED,//映射区域的写入数据会写回到原来的文件
mem_fd,
BASE //被映射的硬件地址
);
close(mem_fd);
return base;
}

成功执行时,mmap()函数返回被映射区的指针。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。只需要使用返回的地址指针在对应的寄存器的偏移地址赋值,就可以完成操作。在例程中已经将函数接口引出(详细的代码请参考例程):
ptr=Timer_Init(); //初始化,将定时器地址映射到用户进程
ptr1=PMC_Init(); //初始化定时器时钟
Timer_Start(ptr, ptr1, GPIO1, 0x00ff); //启动定时器,并设置时间和哪一位GPIO

定时器是从0计数到0xffff,需要实现定时功能,我们就要改变定时器的初值,上面的程序中0x00ff为定时器的初值,前面提到过由于EM9160定时器时钟为50MHz,所以定时器单位时间为1/50000000=20ns,假设程序访问寄存器还需要花费时间T0,在计算初值的时候,就需要加上这一部分时间才能保证准确性,因此定时器取值的计算公式为:

T = 目标延时 / 20ns - T0

经过测试,执行一次程序访问寄存器所需花费的时间大约为T0=600ns。举个例子,比如目标延时为2μs,那么定时器初值为:(2000/20)-0x1b,也就是0x0049,测试的时候带入这个值,再进行微调,即可得到想要的结果。

使用英创工控主板运行例程测试,分别测试延时1μs,1.5μs,2μs,5μs,时的精度,结果如下:

目标延时 定时器取值 实际延时
Min Max
1us 0x0017 0.95us 1.16us

1μs的测试波形

目标延时 定时器取值 实际延时
Min Max
1.5us 0x0030 1.40us 1.62us


1.5μs的测试波形

目标延时 定时器取值 实际延时
Min Max
2us 0x0049 1.86us 2.12us


2μs的测试波形

目标延时 定时器取值 实际延时
Min Max
5us 0x00df 4.88us 5.12us


5μs的测试波形

目标延时 定时器取值 实际延时
Min Max
10us 0x01d9 9.90us 10.20us


10μs的测试波形

可以看到,在1μs时,误差范围在±200ns左右,随着延时的增加,精确度将越来越高,在10μs的时候,误差已经非常小了。

通过以上方案实现了在用户进程对精确延时的操作,详细的操作代码请参考例程。

注意事项:我们推荐客户直接使用例程中引出的接口进行操作,不推荐客户对硬件访问这一部分代码进行修改,以免在操作的时候出现无法预估的错误。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11196

    浏览量

    208662
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6084

    浏览量

    35148
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入
    的头像 发表于 10-16 10:14 323次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式
    的头像 发表于 09-30 10:05 299次阅读

    开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束

    粤港澳大湾区国家技术创新中心操作系统业务负责人柯善风做了“国创面向工业机器人的OS解决方案和落地实践”专题报告。柯善风介绍中心的发展情况,分享了面向工业场景、自主可控、中立普惠
    发表于 08-30 17:24

    飞凌嵌入式技术创新日(深圳站)精彩回顾

    工的分享,则更加侧重于嵌入式技术的研发和创新,为与会者提供了新的问题解决思路;最后,粤港澳大湾区国中心技术专家的温老师 介绍了openEu
    发表于 08-28 09:06

    宇珑RK3576核心板与嵌入式主板通用平台介绍

    宇珑RK3576核心板与嵌入式主板通用平台介绍
    的头像 发表于 08-26 17:23 437次阅读
    宇珑RK3576核心板与<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平台<b class='flag-5'>介绍</b>

    RK3576核心板与嵌入式主板通用平台介绍

    RK3576核心板与嵌入式主板通用平台介绍
    的头像 发表于 08-26 11:37 610次阅读
    RK3576核心板与<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>通用平台<b class='flag-5'>介绍</b>

    RT-Thread出席第六届中国嵌入式技术大会,共话嵌入式操作系统与智能工业

    第六届中国嵌入式技术大会将于8月27-28日在深圳会展中心(福田)1号馆举行。本届大会以“AI与开源,开启嵌入式系统智能新时代”为主题,聚焦人工智能与嵌入式应用、
    的头像 发表于 08-03 08:35 334次阅读
    RT-Thread出席第六届中国<b class='flag-5'>嵌入式</b><b class='flag-5'>技术</b>大会,共话<b class='flag-5'>嵌入式</b><b class='flag-5'>操作</b>系统与智能工业

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    嵌入式系统快速发展,操作系统在智能系统正在发挥越来越大的作用,嵌入式操作系统急需升级换代适配智能系统技术和应用架构的新发展。 第六届国产
    发表于 07-26 10:54

    嵌入式工控机主板应用场景

    嵌入式工控机主板在多个领域中有着广泛的应用,其特点包括体积小、集成度高、功耗低以及控制功能强等。以下是嵌入式工控机主板的一些主要应用领域:
    的头像 发表于 04-25 17:06 1029次阅读

    嵌入式主板,你了解多少?

    嵌入式主板,也称为嵌入式计算机主板,是一种专门设计用于嵌入式系统的计算机主板。与台式机和笔记本电脑中使用的常规
    的头像 发表于 04-17 15:11 1372次阅读

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式
    的头像 发表于 04-09 17:27 705次阅读
    再谈<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>操作</b>系统

    定制嵌入式主板,需要考虑的功能有哪些?

    随着科技的不断发展和进步,嵌入式系统在各行各业中得到了广泛的应用。嵌入式主板作为嵌入式系统的核心组件,起着至关重要的作用。在定制嵌入式
    的头像 发表于 02-29 17:38 457次阅读
    定制<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>,需要考虑的功能有哪些?

    菁蓉联获得首个openEuler嵌入式操作系统技术测评证书

    近日,成都菁蓉联科技有限公司(简称:菁蓉联)携手四川鲲鹏&欧拉生态创新中心完成首个openEuler嵌入式操作系统技术测评证书。
    的头像 发表于 11-28 10:18 956次阅读
    菁蓉联<b class='flag-5'>创</b>获得首个openEuler<b class='flag-5'>嵌入式</b><b class='flag-5'>操作</b>系统<b class='flag-5'>技术</b>测评证书

    定制嵌入式主板:满足客户的实际需求

    随着物联网、智能家居、智能工厂等应用的不断发展,嵌入式系统的应用场景也越来越广泛。嵌入式系统的核心部分是嵌入式主板,而定制化的嵌入式
    的头像 发表于 11-24 11:51 835次阅读
    定制<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>:满足客户的实际需求

    嵌入式主板购买需要考虑哪些内容?

    众所周知,各种先进电子器件和计算机处理技术在我国自动化工业生产中的应用,极大地提高了发展的效率和发展水平。而嵌入式主板以其多元化的设计特点在我国工业系统的控制中表现得越来越明显,消费者在选择这种
    的头像 发表于 11-22 17:39 494次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>购买需要考虑哪些内容?