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

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

3天内不再提示

基于软件的时钟的设计方案与应用

电子设计 来源:郭婷 作者:电子设计 2019-01-28 08:12 次阅读

时钟硬件设计人员的标准概念,但不太熟悉软件工程师。但是,在嵌入式编程(尤其是实时嵌入式编程)中,软件开发人员必须在其软件程序中处理时钟。本文讨论基于软件的时钟的基础知识。

什么是时钟

时钟是一种交替固定频率的信号

基于软件的时钟的设计方案与应用

图1:时钟信号。

时钟周期是信号连续上升沿之间的时间。频率是上升沿出现的速率(即1/周期)。时间或频率表征时钟。在软件中,要跟踪时钟,您只需存储其中一个值。在本文中,这些示例使用其周期来表征时钟,因为这使得它们更容易编码。为了说明,让我们使用浮点类型来表示它(例如,C double类型)。在实践中,可以使用任何可以表示时间的类型。通常使用定点表示。

使用时钟

一旦软件中有时钟频率,您可以通过乘以或除以周期来轻松地对时钟进行乘法或除法。有关时钟的信息可以传送到远程系统以远程重建,或控制与时钟同步传输的数据流。

输出时钟

要输出时钟,需要对输出端口进行高位和低位交替打击。以下C风格的伪代码显示了这个想法:

double t;

int val = 0;

t = get_current_time();

while(1){

t + = period/2;

output_at_time(t,val);

val = ~val;

}

此处 get_current_time 获取当前时间, output_at_time 在指定时间向端口输出值。但是,这些功能仅对软件系统中固有的某些分辨率是准确的。输出时钟的频率被量化为该分辨率,这意味着频率可以远离所需值。你可以通过跟踪这种量化引起的误差并随着时间的推移进行调整来改善这一点。以下代码显示了这一点:

double t;

int val = 0;

double hi = floor((期间/2)/分辨率)*分辨率;

double lo =(期间/2)-hi;

double err = 0;

t = get_time();

while(1){

t + = hi;

err + = lo;

if(err》 = resolution){

err - = resolution;

t + = 1;

output_at_time(t,val);

val = ~val;

}

算法会跟踪错误,当错误变得足够大以便合并到输出中时,它会这样做。使用此方法,输出时钟将具有正确的频率,但量化仍将导致时钟上的可观察到的抖动。

恢复时钟

有时您需要从输入信号中恢复时钟,以便将其用作系统中其他处理的基础。

匹配频率

最简单的事情是匹配传入时钟的频率。在特定时间段内,计算时钟上升沿的数量,然后计算每个上升沿的周期:

period = sample_period/ticks_in;

传入时钟随时间变化,因此您必须定期重新采样。

使用反馈回路

有时只是匹配时钟的频率是不够的。随着时间的推移,小的不匹配和调整会增加,导致您的内部时钟概念和实际时钟长时间漂移。恢复时钟的滴答数可以与原始时钟的滴答数不同。为了解决这个问题,您需要不断调整时钟之间的累积误差,这是一个可以使用PID控制循环完成的任务。¹

假设您想要将输出时钟与输入时钟匹配。其思想是定期调整输出时钟周期。在每个调整点,查看自上次调整传入时钟(ticks_in)以来的滴答数以及自上次调整传出时钟(ticks_out)以来的滴答数。它们之间的区别在于时钟的比例误差。

从比例误差中,您还可以计算积分(或累计)误差和差分误差。然后基于这些值调整周期以将时钟周期移向正确的值。随着时间的推移,算法停留在固定点上,并且比例误差趋向于零。以下代码可用于调整每次更新的时间段:

P = ticks_out -ticks_in;

I = I + P;

D = P -prevP;

period = period + Kp * P + Ki * I + Kd * D;

常数Kp,Ki和Kd的设置会影响算法的稳定速度以及它可以处理的输入时钟的扰动程度。有一套方法可以正确地为你的应用程序计算这些常量,这里没有讨论,但一个很好的起点是关于PID控制循环的维基百科页面。

下图显示了此类算法随时间推移的典型误差。

基于软件的时钟的设计方案与应用

图2:PID误差进程。为什么?

对于硬件工程师来说,上一节的结果并不突出。时钟已经以相当复杂的方式路由。那么为什么需要将时钟带入软件领域呢?一个原因是,将时钟作为软件中的逻辑实体,您可以对其进行分析并对其进行操作。例如,您可以将要在其他地方使用的时钟进行小数乘法,或者可以将其频率报告给某个更高级别的应用程序。但是,一个很大的应用是,您可以将时钟传输到系统的另一部分,并通过仅数字传输进行恢复,而无需显式传输时钟。例如,时钟可以通过USB总线或以太网传输。如果必须明确连接系统中的每个时钟信号,这在连接性和灵活性方面带来了很多好处,这将受到严重限制。

要远程恢复时钟,您需要传输反馈信息(例如,滴答计数)。这种计算在一段时间内仍然需要一个共同的时基,因此系统的所有部分必须具有相同的全球时间感。如何做到这一点超出了本文的范围,但对于基于总线的系统(如USB或Firewire),总线可能带有全局时钟。对于更松散耦合的系统,如以太网或其他分组交换网络,需要全局时钟恢复协议。

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

    关注

    5082

    文章

    19111

    浏览量

    304847
  • 存储
    +关注

    关注

    13

    文章

    4298

    浏览量

    85807
  • 时钟
    +关注

    关注

    10

    文章

    1733

    浏览量

    131458
收藏 人收藏

    评论

    相关推荐

    LM4890采用差分设计方案,为什么没有声音?怎么解决?

    1、LM4890采用差分设计方案(如下图),为什么没有声音?怎么解决? 2、采用差分方案设计的功放能用非差分输出或普通音频输出?
    发表于 11-05 06:33

    在KeyStone器件实现IEEE1588时钟方案

    电子发烧友网站提供《在KeyStone器件实现IEEE1588时钟方案.pdf》资料免费下载
    发表于 09-26 09:10 0次下载
    在KeyStone器件实现IEEE1588<b class='flag-5'>时钟</b><b class='flag-5'>方案</b>

    复杂电磁环境模拟系统设计方案

    智慧华盛恒辉复杂电磁环境模拟系统的设计方案是一个综合性的工程任务,涉及多个方面的考虑和技术实现。以下是一个基于现有技术和应用需求的设计方案概述: 智慧华盛恒辉系统目标 复杂电磁环境模拟系统的目标
    的头像 发表于 07-17 17:06 421次阅读

    电磁频谱数据综合管理系统设计方案

    智慧华盛恒辉电磁频谱数据综合管理系统的设计方案是一个复杂且精细的过程,旨在实现对无线电频谱资源的全面监控、分析和管理。以下是一个基于当前技术和应用需求的设计方案概述: 智慧华盛恒辉系统目标 优化频谱
    的头像 发表于 07-15 17:19 483次阅读

    电磁频谱管理系统设计方案

    智慧华盛恒辉电磁频谱管理系统设计方案是一个综合性的项目,旨在有效地管理和利用电磁频谱资源,确保各种无线通信服务的顺畅进行,并避免频谱资源的冲突和浪费。以下是一个基于当前技术和应用需求的电磁频谱管理
    的头像 发表于 07-15 16:40 456次阅读

    电磁轨迹预测分析系统设计方案

    智慧华盛恒辉电磁轨迹预测分析系统的设计方案是一个综合性的项目,它结合了电磁学、运动学、数据分析以及可能的人工智能或机器学习技术,以实现对电磁运动轨迹的精确预测和深入分析。以下是一个基于当前技术
    的头像 发表于 07-15 16:22 401次阅读

    UPS系统设计方案解读

    UPS的应用场景日趋多样化,每个场景都有其独特的需求,对应不同的方案。UPS系统方案指南继续上新,本文将聚焦UPS设计方案展开讲述。
    的头像 发表于 06-26 10:06 782次阅读
    UPS系统<b class='flag-5'>设计方案</b>解读

    基于8位MCU TM57P8640/P8645的智能电风扇设计方案

    基于8位MCU TM57P8640/P8645的智能电风扇设计方案
    的头像 发表于 04-03 09:44 784次阅读
    基于8位MCU TM57P8640/P8645的智能电风扇<b class='flag-5'>设计方案</b>

    3KW工业变频器电路设计方案详细说明

    3KW工业变频器电路设计方案详细说明
    的头像 发表于 03-19 08:33 928次阅读
    3KW工业变频器电路<b class='flag-5'>设计方案</b>详细说明

    单板上时钟的注意事项 单板上时钟晶体下面铺地的好处

    单板上时钟的注意事项 单板上时钟晶体下面铺地的好处 单板上时钟是指将时钟晶体组件直接铺装在电路板上,这种设计方案在电子设备中广泛应用。在介绍
    的头像 发表于 02-06 16:06 581次阅读

    FPGA时钟内部设计方案

    时钟设计方案 在复杂的FPGA设计中,设计时钟方案是一项具有挑战性的任务。设计者需要很好地掌握目标器件所能提供的时钟资源及它们的限制,需
    发表于 01-22 09:30 628次阅读
    FPGA<b class='flag-5'>时钟</b>内部<b class='flag-5'>设计方案</b>

    城市轨道交通电气火灾监控系统的具体设计方案

    电子发烧友网站提供《城市轨道交通电气火灾监控系统的具体设计方案.docx》资料免费下载
    发表于 01-18 09:06 0次下载

    AKM成化旭推出全新车载音频DSP提供设计方案应用

    AKM成化旭推出全新车载音频DSP提供设计方案应用
    的头像 发表于 01-15 11:11 1124次阅读
    AKM成化旭推出全新车载音频DSP提供<b class='flag-5'>设计方案</b>应用

    时钟域的解决方案

    在很久之前便陆续谈过亚稳态,FIFO,复位的设计。本次亦安做一个简单的总结,从宏观上给大家展示跨时钟域的解决方案
    的头像 发表于 01-08 09:42 903次阅读
    跨<b class='flag-5'>时钟</b>域的解决<b class='flag-5'>方案</b>

    rct设计方案的要点及主要内容

    RCT(随机对照试验)是一种科学研究方法,用于评估某种干预措施的有效性。在设计RCT的方案时,有几个要点和内容需要被详细考虑和描述。本文将详细介绍RCT设计方案的要点和主要内容。 一、研究目的与研究
    的头像 发表于 01-02 16:41 5627次阅读