2455|3

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

以通俗易懂的话解释CM3内核时钟源 [复制链接]

做单片机通信方面的程序测试,成果之一就是以战舰板串口2向野火开发板串口1发送字符或字符串,战舰板作为主机设计了触摸屏界面,可以根据界面随心所欲地向从机发送字符或字符串还包括汉字。基于此,正在设计一个通过战舰板RS485控制西门子S7-200PLC的程序;这也是现在工业自动化最常见的一种控制模式。言归正传:


     CM3内核的时钟树很复杂,什么系统时钟,总线时钟,外部时钟,内部时钟的搞得有点乱。其实,把 CM3内核的时钟概念和频率概念搞清楚, CM3就不那么艰难了!不信看下面的描述,错误之处请指正!毕竟这只是我个人的理解。


先从原子的基于STM32的一个延时函数delay_init(u8 SYSCLK) 讲起: void delay_init(u8 SYSCLK)  //SYSCLK:系统时钟,战舰板是72
{
  #ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了,则使用了ucosII.
  u32 reload;
  #endif
  SysTick->CTRL&=~(1<<2);//SYSTICK使用外部时钟源
  fac_us=SYSCLK/8;//不论是否使用ucos,fac_us都需要使用,1/9us就是来自这里
  #ifdef OS_CRITICAL_METHOD//如果OS_CRITICAL_METHOD定义了,则使用了ucosII.
  reload=SYSCLK/8;//每秒钟的计数次数,单位为K
  reload*=1000 000/OS_TICKS_PER_SEC;/*根据OS_TICKS_PER_SEC设定溢出时间;OS_TICKS_PER_SEC是OS每秒时钟节拍数  */
   //reload为24位寄存器,最大值:16777216,在72M下,约合1.86s左右
  fac_ms=1000/OS_TICKS_PER_SEC;//代表ucos可以延时的最少单位
  SysTick->CTRL|=1<<1;   //开启SYSTICK中断
  SysTick->LOAD=reload; //每1/OS_TICKS_PER_SEC秒中断一次
  SysTick->CTRL|=1<<0;   //开启SYSTICK   
  #else
  fac_ms=(u16)fac_us*1000;  //非ucos下,代表每个ms需要的systick时钟数
#endif
}


函数比较简单就不分析了;  为了理解上述函数还必须补补课:计算机只认识“0”和“1”信号,说白了就是“开”“关”两种状态。时钟频率就是每秒“开”“关”这两种状态的变化次数。CPU的内部其实就是由大量的寄存器和触发器构成的,这些寄存器或触发器都必须在一定的时钟频率控制下工作才能实现CPU的“有序可控”;这也是CPU“智能化”和“听话”的理论基础。硬件时钟源频率(或者说“开关”速度)越快,CPU的内部的寄存器或触发器等硬件就响应越快。CM3内核中有APB1(最大36mhz)和APB2(最大72mhz)两条片上外设总线,每条总线的时钟频率是不一样的,且每条总线上的外设都有各自的时钟源控制开关,也就是说不同的外设可以根据各自的时钟需求以不同的“开关”速率工作。这样设计主要是基于减少能耗的目的。硬件之间的接口电路的目的就是为了解决时钟源不同步和信号机制不同的问题而设计的。CM3内核有5个时钟源,而51单片机只有一个时钟源11.0592MHZ;时钟源越多说明内核的功能越多,可以适应更多的工作环境和要求。




   时钟周期T是时序中最小的时间单位,具体计算是1/时钟源;假设晶振即时钟源是11.0592,则与之对应的时钟周期就是1/11.0592s。机器周期是CPU完成一个操作的最小时间,普通51单片机一个机器周期是12个时钟周期。就CM3内核中的24位计数器来说,如果时钟源频率是9Mhz,如何理解时钟源频率是9Mhz呢?根据上述M3内核的时钟周期(即CPU完成一个操作的最小时间,秒)=1/9MHz;即1/9us;换句话说m3内核的cpu开或关一次操作所需的时间是1/9微秒.  公式如下:
T(周期,单位秒)*F(频率,单位hz)=1(脉冲个数)


   在电子技术中,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。脉冲信号之间的时间间隔称为周期;而将在单位时间(如1秒)内所产生的脉冲个数称为频率。频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位是Hz(赫)。电脑中的系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器。频率在数学表达式中用“f”表示,其相应的单位有:Hz(赫兹)、kHz(千赫兹)、MHz(兆赫兹)、GHz(千兆赫兹)。其中1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz。计算脉冲信号周期的时间单位及相应的换算关系是:s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000ns。


   相信看完上述讲解,会对CM3内核有个更清晰的认识,能解决很多初学者心头的许多疑问。

最新回复

所以我才建议楼主结合手册上示意图来说会更好  详情 回复 发表于 2019-3-11 08:50
 
点赞 关注(1)

回复
举报

1368

帖子

6

TA的资源

版主

沙发
 
需要结合手册上芯片内部的示意图看讲解会更直观一些

点评

我怎么感觉像是从哪复制来的太杂太乱了  详情 回复 发表于 2019-3-10 10:49
 
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 

回复

424

帖子

7

TA的资源

一粒金砂(高级)

板凳
 
懒猫爱飞 发表于 2019-3-9 21:20
需要结合手册上芯片内部的示意图看讲解会更直观一些

我怎么感觉像是从哪复制来的太杂太乱了

点评

所以我才建议楼主结合手册上示意图来说会更好  详情 回复 发表于 2019-3-11 08:50
 
 
 

回复

1368

帖子

6

TA的资源

版主

4
 
lehuijie 发表于 2019-3-10 10:49
我怎么感觉像是从哪复制来的太杂太乱了

所以我才建议楼主结合手册上示意图来说会更好
 
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表