UART串口主从通信的时钟频率校准和频率测量方法技术

技术编号:26761282 阅读:20 留言:0更新日期:2020-12-18 22:56
本发明专利技术公开了一种UART串口主从通信的时钟频率校准和频率测量方法。通过主机MCU向从机芯片发送脉宽预先设置的复位信号,从机芯片接收复位信号脉宽检测,计算第一频率偏差系数,并根据其调整从机内部RC时钟的频率;在主机MCU和从机芯片正常通讯过程中,从机芯片实时检测从主机MCU接收的每一帧通讯的数据变化情况,检测出时钟频率的第二频率偏差系数,第二频率偏差系数保存,主机MCU根据其对从机芯片检测接收到的测量量进行调整修正。本发明专利技术能解决UART串口主从通信间的时钟频率不同步及其测量数据不准确的问题,在不改变串口通讯的帧结构、不用增加额外的帧结构情况下能进行校正频率,提升了串口通讯的效率。

【技术实现步骤摘要】
UART串口主从通信的时钟频率校准和频率测量方法
本专利技术涉及电子
的一种时钟频率校准和频率测量方法,具体是涉及了一种具有时钟频率校准和频率测量功能的UART从机芯片和用于UART串口主从通信的时钟频率校准和频率测量方法。
技术介绍
UART(串口)、SPI和IIC通讯是最常用的几种MCU与外部设备(外设)间的通讯接口电路。UART串口通讯仅需TX/RX两根信号线,在不需隔离的半双工通讯里,两根信号线可以合并为一根。在隔离通讯领域里,也仅需两个隔离器件,并且协议简单可靠,因此在不需要特别高速通讯的应用领域里获得了大量的应用。串口通讯包含主机和从机,可以一对一,也可以一对多。主机一般为主机MCU,从机为外部设备,例如ADC芯片、计量芯片、传感器芯片等。串口通讯要求主机和从机的频率偏差系数在一定范围之内,一般要求是+/-5%之内,更可靠些的要求是+/-3%之内。主机MCU一般会采用具有精确频率的晶体时钟,而从机芯片出于成本考虑,则可能仅使用芯片内部的RC时钟。从机芯片内的RC时钟离散度偏差可能会超过5%,超过的芯片会导致串口通讯失败,从而影响良率。
技术实现思路
为解决串口通讯时从机芯片内部RC时钟偏差过大、导致通讯失败的问题,本专利技术提出一种串口通讯流程和技术实现方式,具体是一种UART串口主从通信的时钟频率校准和频率测量方法。本专利技术所采用的技术方案是:首先,通过主机MCU向从机芯片发送脉宽预先设置的复位信号RX,从机芯片接收复位信号RX,进而通过对复位信号RX中的脉宽检测,计算出自身内部时钟的第一频率偏差系数,然后根据第一频率偏差系数进行第一次调整时钟频率到更小的偏差范围之内,同时将第一频率偏差系数保存;然后,在主机MCU和从机芯片后续的正常通讯过程中,从机芯片实时检测从主机MCU接收的每一帧通讯的数据变化情况,检测出时钟频率的第二偏差系数,将同时将第二频率偏差系数保存到寄存器里并发送到主机MCU读取,由主机MCU根据第二频率偏差系数对从机芯片检测接收到的测量量进行调整修正。第二偏差系数保存在寄存器里供主机MCU读取,再由主机MCU进行第二次修正,第二偏差系数不对RC时钟频率做进一步精细化调整,这样解决了RC时钟频率的调节精度有限的问题。第一次检测能将RC时钟频率实际调节到百分之一精度,第二次检测能提供时钟频率千分之一精度的系数,供MCU读取以便对频率敏感的数据进行系数修正。所述的方法用于带有晶体时钟的主机MCU和带有RC时钟的从机芯片之间的通讯。设置复位信号RX包括一个时长为TRST的’0’低电平(复位电平),从机芯片接收复位信号RX开始,当初始接收到RX信号中的’0’低电平后,用内部RC时钟对’0’低电平进行计数,等到复位信号RX变高成’1’高电平后停止计数,获得实际计数值Nact,进而计算Nact/Nideal作为第一频率偏差系数,其中Nideal表示从机芯片内部RC时钟的理想频率Fideal下的理想计数值。所述复位信号RX中的’0’低电平的时长大于串口最低串口通讯波特率时发送全’0’低电平信号的时间长度。本专利技术中的低电平和高电平是相对的,可以认为低电平是较低电平,高电平是较高电平。复位信号RX中,在’0’低电平后增加固定脉宽的若干BIT的验证数据,通过增加验证数据避免RX复位时的’0’低电平信号受干扰导致计数错误。所述的主机MCU具有不同串口通讯波特率,根据不同的通讯波特率设定不同的’0’低电平复位信号RX脉宽,每种波特率对应一个理想计数值Nideal;此时与从机芯片实际计数值Nact最接近的那个理想计数值Nideal所对应的通讯波特率,即为当前所用的波特率,根据当前实际计数值Nact和理想计数值Nideal获知从机芯片的RC时钟频率偏差。在主机MCU和从机芯片之间正常的UART串口通讯过程中,从机芯片的寄存器内初始设置计数值为0,从机芯片在刚接收到主机MCU发过来的信号的起始位’0’后,除正常的UART串口接收操作之外,立刻用自身内部RC时钟开始计数,在检测到复位信号RX出现’1’高电平的上升沿之后,将一次计数更新到从机芯片的寄存器里,更新寄存器中的计数值NTact;同时继续计数,在下一次又出现’0’低电平到’1’高电平的信号变化时,再将变化时刻的计数值更新到从机芯片的寄存器,更新寄存器中的计数值NTact;不断计数,从机芯片接收到停止位并且检验到数据正确时,停止计数;然后以最后寄存器中的计数值NTact计算NTact/(X×NTideal)作为第二频率偏差系数,其中X表示理想计数值序数,X=[NTact/NTideal],[]表示取整数函数,NTideal表示串口通讯波特率周期对应的理想计数值。根据第一频率偏差系数或者第二频率偏差系数进行调整具体均是在从机芯片所检测获得测量量基础上乘以或者除以偏差系数进行处理。所述的测量量为测量的频率和电压等,但不限于与此。本专利技术的有益效果是:本专利技术能解决UART串口主从通信间的时钟频率不同步的问题,以及该问题带来的测量数据不准确的问题,在不改变串口通讯的帧结构、不用增加额外的帧结构的情况下能进行校正频率,提升了串口通讯的效率。附图说明图1为复位信号获得计数值为Nact的示意图;图2为复位信号后额外增加了验证数据的示意图;图3为典型的UART通讯帧格式示意图;图4为一个串口通讯波形例子的数据结构示意图;图5为另一个串口通讯波形例子的数据结构示意图。具体实现方式下面结合附图和具体实施对本专利技术作进一步说明。本专利技术的具体实施例如下:S1、本专利技术具体实施中,从机芯片除没有精确的晶体时钟外,也没有复位引脚,本专利技术里利用串口通讯的复位信号RX线给从机芯片发送复位信号。复位信号设置为一个持续较长时间的’0’低电平,满足大于串口最低串口通讯波特率时发送全0信号的长度即可,将复位信号’0’低电平具体的持续时间设置为TRST,以进行脉宽预先设置。从机芯片的内部RC时钟实际频率为Fact,RC时钟对应的理想频率为Fideal。从机芯片在复位信号RX上接收到低电平(’0’低电平)后,即开始用内部RC时钟对’0’低电平进行计数,等到复位信号RX变高(即’1’高电平)后停止计数,如图1所示,此时获得实际计数值为Nact。在从机芯片内部RC时钟的理想频率Fideal下的理想计数值是Nideal,则根据Nact与Nideal的比值得到内部RC时钟实际频率Fact=(Nact/Nideal)×Fideal,提取频率偏差系数Nact/Nideal,能用于调节从机芯片内部的RC时钟频率,使其从超过+/-5%的初始频率偏差系数降至+/-1%之内,从而保证可靠的串口通讯。同时将精细的频率偏差系数Nact/Nideal的数值保存在从机芯片的寄存器里,以便主机MCU读取。然后MCU与从机芯片进行串口通讯,如果通讯不成功,说明RX复位信号期间受干本文档来自技高网...

【技术保护点】
1.一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:/n首先,通过主机MCU向从机芯片发送脉宽预先设置的复位信号RX,从机芯片接收复位信号RX,进而通过对复位信号RX中的脉宽检测,计算出自身内部时钟的第一频率偏差系数,然后根据第一频率偏差系数进行第一次调整时钟频率到更小的偏差范围之内,同时将第一频率偏差系数保存;/n然后,在主机MCU和从机芯片后续的正常通讯过程中,从机芯片实时检测从主机MCU接收的每一帧通讯的数据变化情况,检测出时钟频率的第二偏差系数,将同时将第二频率偏差系数保存到寄存器里并发送到主机MCU读取,由主机MCU根据第二频率偏差系数对从机芯片检测接收到的测量量进行调整修正。/n

【技术特征摘要】
1.一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:
首先,通过主机MCU向从机芯片发送脉宽预先设置的复位信号RX,从机芯片接收复位信号RX,进而通过对复位信号RX中的脉宽检测,计算出自身内部时钟的第一频率偏差系数,然后根据第一频率偏差系数进行第一次调整时钟频率到更小的偏差范围之内,同时将第一频率偏差系数保存;
然后,在主机MCU和从机芯片后续的正常通讯过程中,从机芯片实时检测从主机MCU接收的每一帧通讯的数据变化情况,检测出时钟频率的第二偏差系数,将同时将第二频率偏差系数保存到寄存器里并发送到主机MCU读取,由主机MCU根据第二频率偏差系数对从机芯片检测接收到的测量量进行调整修正。


2.根据权利要求1所述的一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:所述的方法用于带有晶体时钟的主机MCU和带有RC时钟的从机芯片之间的通讯。


3.根据权利要求2所述的一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:设置复位信号RX包括一个时长为TRST的’0’低电平,从机芯片接收复位信号RX开始,当初始接收到RX信号中的’0’低电平后,用内部RC时钟对’0’低电平进行计数,等到复位信号RX变高成’1’高电平后停止计数,获得实际计数值Nact,进而计算Nact/Nideal作为第一频率偏差系数,其中Nideal表示从机芯片内部RC时钟的理想频率Fideal下的理想计数值。


4.根据权利要求3所述的一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:所述复位信号RX中的’0’低电平的时长大于串口最低串口通讯波特率时发送全’0’低电平信号的时间长度。


5.根据权利要求3所述的一种UART串口主从通信的时钟频率校准和频率测量方法,其特征在于:复位信号RX中,在’0’低电平后增加固定脉宽的若干BIT的验证数据。

【专利技术属性】
技术研发人员:钟书鹏
申请(专利权)人:杭州恒芯微电子科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1