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
    +关注

    关注

    88

    文章

    11628

    浏览量

    217987
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们在资源利用、可靠性、可预测性、任务调度和中断处理等方面提供了更加严格的要求和机制。 实时
    发表于 11-13 06:30

    嵌入式主板的选型与应用

    一、嵌入式主板核心元器件选型的关键考量在嵌入式主板设计中,核心元器件的选型直接决定产品性能与可靠性,需结合场景需求精准匹配。以处理器为例,除算力与功耗外,还需关注工业级温度范围——如
    的头像 发表于 11-03 17:20 502次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>的选型与应用

    RT-Thread睿赛德荣获工博会“CIIF信息技术奖”,“1+X+N”战略推动国产操作系统体系化发展 | 新闻速递

    在第二十五届中国国际工业博览会(工博会)上,国产嵌入式操作系统领军企业RT-Thread睿赛德凭借其在嵌入式操作系统领域的持续创新与产业贡献,荣获2025年“CIIF
    的头像 发表于 10-10 10:05 782次阅读
    RT-Thread睿赛德荣获工博会“CIIF<b class='flag-5'>信息技术</b>奖”,“1+X+N”战略推动国产<b class='flag-5'>操作</b>系统体系化发展 | 新闻速递

    一文带你了解嵌入式主板

    嵌入式主板是专为嵌入式系统设计的计算机主板。它与我们常见的台式机或笔记本电脑主板有着显著的区别,核心在于它不是为了通用计算,而是为了执行特定
    的头像 发表于 06-30 16:12 479次阅读
    一文带你了解<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>

    嵌入式主板详解与选购指南

    什么是嵌入式主板嵌入式主板是专为嵌入式系统设计的核心计算平台。它与我们日常使用的台式机或笔记本电脑主板
    的头像 发表于 06-06 13:23 555次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>详解与选购指南

    嵌入式主板特点与应用场景解析

    嵌入式主板(EmbeddedMotherboard)是专为嵌入式系统设计的重要硬件平台,通常集成处理器、内存、存储、接口等关键组件,用于控制和管理特定设备或应用。与通用计算机主板不同,
    的头像 发表于 05-26 15:12 633次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>特点与应用场景解析

    嵌入式主板开发详细指南

    嵌入式主板开发涉及硬件设计、软件集成、系统优化等多个环节,需要结合具体应用场景进行深度定制。以下是嵌入式主板开发的详细指南,涵盖关键步骤、工具、挑战及实际案例:一、开发流程与关键步骤1
    的头像 发表于 04-02 11:35 937次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>开发详细指南

    高可靠性嵌入式主板设计

    设计直接影响整个系统的稳定性和寿命。因此,设计高可靠性的嵌入式主板不仅是技术挑战,也是提高产品竞争力的关键因素。本文将深入探讨高可靠性嵌入式主板
    的头像 发表于 03-25 15:11 812次阅读
    高可靠性<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>设计

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细
    的头像 发表于 02-27 14:53 936次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>选型与应用指南

    小身材大能量:解读小尺寸嵌入式主板

    此前,已经带大家认识了嵌入式主板的尺寸版型,相信大家对此已有了初步印象。在科技日新月异的当下,各类设备都朝着更小体积、更高性能的方向发展。小尺寸嵌入式主板正悄无声息改变着我们的生活与商
    的头像 发表于 02-17 18:02 999次阅读
    小身材大能量:解读小尺寸<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>

    盘点无风扇嵌入式主板应用优势

    在科技飞速发展的今天,嵌入式主板在各个领域发挥着重要作用。而无风扇嵌入式主板以独特优势在工业自动化、医疗设备和智能交通等领域广泛应用。今天,就让我们一起深入了解无风扇
    的头像 发表于 02-15 18:04 655次阅读
    盘点无风扇<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>应用优势

    嵌入式主板:智能设备的“大脑”,驱动未来无限可能

    在当今这个万物互联的时代,嵌入式主板作为智能设备的“大脑”,正悄然改变着我们的生活。从智能家居到工业自动化,从医疗设备到交通系统,嵌入式主板无处不在,为各种应用场景提供强大的计算和控制
    的头像 发表于 02-07 11:34 827次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>:智能设备的“大脑”,驱动未来无限可能

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对
    的头像 发表于 01-13 16:30 1185次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解为嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对
    的头像 发表于 12-31 16:03 1840次阅读
    ARM架构<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>特点

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统、计算机组成原理等。这些知识将帮助你
    发表于 12-12 10:51