历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2019年11月26日 | 以通俗易懂的话解释CM3内核时钟源

2019-11-26 来源:51hei

最近一直在做单片机通信方面的程序测试,成果之一就是以战舰板串口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内核有个更清晰的认识,能解决很多初学者心头的许多疑问。

推荐阅读

史海拾趣

Delphi Connection Systems公司的发展小趣事

Delphi Connection Systems公司自创立之初,就致力于在电子行业中的连接器技术上进行创新。公司投入大量研发资源,开发出一种新型的高性能连接器,这种连接器具有更小的体积、更高的可靠性和更低的传输损耗。这一创新成果迅速获得了市场的认可,为公司带来了大量的订单和合作机会。

DURATOOL公司的发展小趣事

人才是企业发展的第一资源。DURATOOL公司一直高度重视人才的培养和引进。公司建立了一套完善的人才选拔和培养机制,通过内部培训、外部招聘等方式不断吸纳优秀人才加入公司。同时,公司还为员工提供了广阔的发展空间和良好的福利待遇,激发了员工的积极性和创造力。这些举措使得DURATOOL公司拥有一支高素质、专业化的员工队伍,为企业的发展提供了有力的人才保障。

华润微(CRMICRO)公司的发展小趣事

华润微的前身可以追溯到1983年成立的香港华科电子公司。这家公司在电子行业中默默耕耘,逐渐积累了技术实力和市场份额。1999年,公司开始涉足6英寸晶圆代工业务,标志着其向半导体制造领域的进军。经过数年的发展和积累,华润微于2002年收购了中国华晶电子集团公司,进一步扩大了其业务范围和市场份额。此后,华润微不断壮大,逐步成为电子行业的佼佼者。

柯爱亚(ceaiya)公司的发展小趣事

在稳固国内市场的同时,柯爱亚积极寻求海外市场的发展机会。公司不仅参加了多个国际电子展览会,还与国际知名企业建立了合作关系。此外,柯爱亚还通过投资、并购等方式,不断拓展业务范围,实现了多元化发展。这些举措使柯爱亚在国际市场上的影响力逐渐增强。

ebm-papst公司的发展小趣事

ebm-papst一直致力于通风和驱动技术的研发与创新。在中国市场,公司针对数据中心等特定应用场景,推出了革命性的创新产品——“数据中心列间空调用轴流风机”。该产品凭借其独特的设计和优异的性能,荣获了2022年中国制冷展创新产品奖。这一技术创新不仅解决了数据中心散热的难题,也进一步巩固了ebm-papst在通风与驱动技术领域的领先地位。

ABL Heatsink公司的发展小趣事

ABL Heatsink公司在电子散热领域一直默默耕耘,直到某天,公司的研发团队成功开发了一种新型的高效散热材料。这种材料不仅导热性能卓越,而且成本相对较低,立即引起了业界的关注。随着这种新型散热材料的广泛应用,ABL Heatsink公司的订单量激增,公司规模迅速扩大。

问答坊 | AI 解惑

使用 PROTEL FOR WINDOWS 1.5 的一点体会

使用 PROTEL FOR WINDOWS 1.5 的一点体会…

查看全部问答>

AT命令的问题

AT的拨号指令、APN PDP、ppp的指令都是什么啊 知道几个说几个 ,谢谢了。…

查看全部问答>

学习MFC 用的编译器是VS

学习MFC 用的编译器是VS 大侠们给提供一本好书吧…

查看全部问答>

Windows CE的启动问题

我自己定制了一个镜像,已经成功的下载的目标板上了,我想让Windows CE启动后自动启动触摸屏校准程序,我知道触摸屏校准的系统调用是TouchCalibrate(),请问如何实现?…

查看全部问答>

求用149输出正余弦波程序

请问各位高手,我是430的初学者,我想用149编写一个程序来输出正,余弦波,但是不知道该如何编写,求那位大侠有此程序,小妹不胜感激.…

查看全部问答>

纳米测量最优解决方案

本文仅仅探讨了纳米技术[1]的多种应用中的少数几个,以及需要更为深入地理解所研究的器件和材料时必须采用的测量方法。每天,各研发实验室都诞生各种新的思想和创新点。随着新点子的出现,人们也需要各种新的、不同的测量手段。例如,研究者们感 ...…

查看全部问答>

本人想购买一套二手EKK-LM3S8962用于学习

本人想购买一套二手EKK-LM3S8962用于学习,要有下载线,买回来就能使用,价钱不要太高。 如果那位前辈有要转手的,请给我发邮件anu36@qq.com,谢谢! …

查看全部问答>

【MSP430超低功耗时钟】第一次小组讨论

如果说实现是一种技能,方案的讨论和拟定就是一种思维。很多时候我们只关注实现而忽略在制定方案的过程中自己全局思维的一种成长。为了更完整的把这次DIY的活动的过程呈现给大家,我在此贴上整理后的讨论记录。基本是无删减版的,必要的地方我注释 ...…

查看全部问答>

帮同学转OK6410开发板

同学2012年3月14号买的,上了几次电就闲着了,现在他去培训了,要我帮忙转给需要的同学,480包顺风!可走淘宝二手街,企鹅 五六四六九九四灵一OK6410/ARM开发板/s3c6410/arm11开发板+4.3\'LCD+光盘(含国嵌OK6410视频教程)+网线+串口线+电源256M内存 ...…

查看全部问答>

KEIL 调试无法进入main

KEIL 调试无法进入main ,在主程序开始处设置断点,发现不能进入主程序,一直在三条不知道什么语句间循环运行。真的弄憔悴了!!求帮忙!!…

查看全部问答>