CN104360974A - 一种异步串口uart自动波特率调整方法及装置 - Google Patents
一种异步串口uart自动波特率调整方法及装置 Download PDFInfo
- Publication number
- CN104360974A CN104360974A CN201410593284.XA CN201410593284A CN104360974A CN 104360974 A CN104360974 A CN 104360974A CN 201410593284 A CN201410593284 A CN 201410593284A CN 104360974 A CN104360974 A CN 104360974A
- Authority
- CN
- China
- Prior art keywords
- uart
- data
- baud
- measurement module
- count value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种异步串口UART自动波特率调整方法及装置,包括:上位机向中央处理器CPU发送具有特定帧格式的预设字符;所述CPU上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符;所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整,实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
Description
技术领域
本发明涉及波特率调整的技术领域,特别是涉及一种异步串口UART自动波特率调整方法及装置。
背景技术
UART(Universal Asynchronous Receiver/Transmitter,异步串口)常用来传输数据、调试数据,执行搬移程序boot。UART的接口为非源同步接口,没有时钟信号,因此UART的传输波特率需要通信双方约定一致。
CPU(Central Processing Unit,中央处理器)的晶振频率的初始化配置需要在boot启动的过程中实现,但是由于boot通常是固化在ROM(Read Only Memory,只读内存),相应的ROM也称作boot ROM,因此,该固化后的boot不便于对不同的频率设备配置不同的波特率设置程序。
目前,可以通过设置专门芯片引脚指示外部晶振频率,boot读取该专门芯片引脚的参数并据此配置相应波特率。但是这种方式需要增加额外的芯片引脚,增加额外的开销。
发明内容
本发明的目的是提供一种异步串口UART自动波特率调整方法及装置,以实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
为解决上述技术问题,本发明提供以下技术方案。
一种异步串口UART自动波特率调整方法,包括:
上位机向中央处理器CPU发送具有特定帧格式的预设字符;
所述CPU上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符;
所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整。
优选的,所述启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,包括:
所述测量模块中的异步时钟域同步处理器CDC sync通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理,其中,所述数据为8位二进制数据或十六进制数据;
所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
所述Counter1在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready。
优选的,所述使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,包括:
所述配置模块在检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;其中,div=cnt*16/n。
优选的,所述具有特定帧格式的预设字符包括1个起始位,8个数据位,1个偶校验位和1个停止位。
优选的,当所述预设字符中的8个数据位上的数据为0x55时,所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且在所述RXD接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n,包括:
在接收所述复位信号reset或重置信号restart之后进行复位或重置;
在所述RXD接收到所述数据0x55的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1;其中,所述数据0x55的脉宽上升沿共有5个;
在所述RXD接收到所述数据0x55的脉宽的5个上升沿后,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n为5。
优选的,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整之后,还包括:
所述上位机开始向所述CPU传输数据。
一种异步串口UART自动波特率调节装置,包括:上位机和中央处理器CPU;
所述上位机,用于向所述CPU发送具有特定帧格式的预设字符;接收所述CPU反馈的确认字符在验证正确后确定完成UART自动波特率调整;
所述CPU,用于上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符。
优选的,所述上位机包括PC机。
优选的,所述CPU包括:设置有异步时钟域同步处理器CDC sync,计数器Counter1和计数器Counter2的测量模块;
所述CDC sync,用于通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理,其中,所述数据为8位二进制数据或十六进制数据;
所述Counter2,用于在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
所述Counter1,用于在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt准备信号ready。
优选的,所述CPU包括配置模块;
所述配置模块,用于在所述检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;其中,div=cnt*16/n。
本发明所提供的一种异步串口UART自动波特率调整方法及装置,所述CPU上电复位,接收所述上位机向所述CPU发送的具有特定帧格式的预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率并得到调整后的波特率,且所述上位机接收所述调整后的波特率并向所述CPU反馈确认字符,所述CPU接收所述确认字符在验证正确后确定完成UART自动波特率调整,从而实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一所提供的异步串口UART自动波特率调整方法的流程图;
图2为本发明实施例二所提供的异步串口UART自动波特率调整方法的部分流程图;
图3为本发明实施例二所提供的时钟信号uart_clk和数据的波形图;
图4为本发明实施例二所提供的CPU简要的流程图;
图5为本发明实施例三所提供的异步串口UART自动波特率调整方法的部分流程图;
图6为本发明实施例四所提供的异步串口UART自动波特率调整装置中CPU的结构图。
具体实施方式
本发明的核心是提供一种异步串口UART自动波特率调整方法及装置,以实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参考图1,图1为本发明实施例一所提供的异步串口UART自动波特率调整方法的流程图,该方法包括:
步骤S101:上位机向中央处理器CPU发送具有特定帧格式的预设字符;
步骤S102:所述CPU上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,并向所述上位机反馈确认字符;
步骤S103:所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整;
基于本发明实施例所提供的异步串口UART自动波特率调整方法,所述CPU上电复位,接收所述上位机向所述CPU发送的具有特定帧格式的预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率并得到调整后的波特率,并向所述上位机反馈确认字符,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整,从而实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
实施例二
基于上述本发明实施例一所公开的异步串口UART自动波特率调整方法,本发明实施例二主要公开了中步骤S102中的所述启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,如图2所示,并结合图5,优选采用以下步骤实现:
步骤S201:所述测量模块中的异步时钟域同步处理器CDC sync通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理;
在步骤S201中,所述数据为8位二进制数据或十六进制数据。
步骤S202:所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
步骤S203:所述Counter1在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready。
其中,对于步骤S202和步骤S203,结合图3,图3为所述uart_clk和所述数据的波形图,图中start表明测量模块开始启动,在所述数据波形的每一个上升沿处,所述Counter2计数加一,所述Counter1对与所述数据波形的上升沿相应的所述uart_clk波形的周期数进行计数。
基于上述优选及本发明实施例一所公开的异步串口UART自动波特率调整方法,本发明实施例三公开了步骤S102中的使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,优选采用以下步骤实现:
步骤S301:所述配置模块在检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;
在步骤S301中,div=cnt*16/n,当所述配置模块检测到所述准备信号ready为“1”时,即检测到Counter1发送的准备信号ready,获取计数器Counter2中的计数值cnt和计数值n,依据div=cnt*16/n及fbaud=fuart_clk/16/div获得调整后的波特率fbaud,当所述配置模块检测到所述准备信号ready为“0”时,即检测到的准备信号ready为空时,所述CPU重新启动测量模块,再次执行后续步骤。
基于上述优选及本发明实施例一所公开的异步串口UART自动波特率调整方法,优选的,在步骤S103之后还包括:
步骤S501:所述上位机开始向所述CPU传输数据。
在步骤S501执行的过程中,需要执行搬移程序boot收发数据,并跳转至主程序执行数据传输。
基于上述所有优选,需要说明的是,在执行步骤S102中的向所述上位机反馈确认字符的过程中,所述上机位向所述CPU反馈的确认字符包括字符“ACK”,此字符“ACK”为确认字符。
综合以上所述,简要的过程参考图4,图4为所述CPU的简要流程图,流程步骤如下:
S1:上电复位;
S2:接收所述上位机发送的预设字符,启动测量模块;
S3:依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,在结束计数时得到所述准备信号ready;
S4:判断所述ready是否为“1”,若是,进入S4;若不是,进入S2;
S5:获取所述计数值cnt和所述计数值n,配置所述UART的串口波特率,得到调整后的波特率fbaud;
S6:向所述上位机反馈确认字符“ACK”;
S7:所述上位机接收所述确认字符“ACK”在验证正确后确定完成后,执行搬移程序boot收发数据;
S8:跳转至主程序执行数据传输。
基于本发明实施例所提供的异步串口UART自动波特率调整方法,所述CPU上电复位,接收所述上位机向所述CPU发送的具有特定帧格式的预设字符,所述CDC sync通过所述RXD接收所述预设字符的数据位上的数据进行同步处理,所述Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述Counter1发送所述计数使能信号en,并得到计数值n。
进一步的,所述Counter1在复位或重置之后,依据所述uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready,所述配置模块在检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud,并向所述上位机反馈确认字符。
进一步的,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整,之后所述上位机开始向所述CPU传输数据,从而实现在原有芯片上进行UART自动波特率调整,不需要增加额外的芯片引脚,节省开销的目的。
实施例三
基于上述本发明实施例一及本发明实施例二所公开的异步串口UART自动波特率调整方法,优选的,所述具有特定帧格式的预设字符包括1个起始位,8个数据位,1个偶校验位和1个停止位。
基于上述本发明实施例一及本发明实施例二所公开的异步串口UART自动波特率调整方法,当所述预设字符中的8个数据位上的数据为0x55时,本发明实施例三公开了步骤S202:所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n,如图5所示,优选采用以下步骤实现:
步骤S401:在接收所述复位信号reset或重置信号restart之后进行复位或重置;
步骤S402:在所述RXD接收到所述数据0x55的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1;
其中,所述数据0x55的脉宽上升沿共有5个;
步骤S403:在所述RXD接收到所述数据0x55的脉宽的5个上升沿后,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n为5。
基于本发明实施例所提供的异步串口UART自动波特率调整方法,所述CPU上电复位,接收所述上位机向所述CPU发送的具有1个起始位,8个数据位,1个偶校验位和1个停止位的预设字符,所述CDC sync通过所述RXD接收所述预设字符的数据位上的数据0x55进行同步处理,所述Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收到所述数据0x55的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收到所述数据0x55的脉宽的5个上升沿后,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n为5。
进一步的,所述Counter1在复位或重置之后,依据所述uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据0x55的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready,使配置模块依据计数值配置相应的串口波特率并得到调整后的波特率,并向所述上位机反馈确认字符,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整,从而实现在原有芯片上进行UART自动波特率调整不需要增加额外的芯片引脚,节省开销的目的。
实施例四
在上述本发明实施例一至实施例三中公开的异步串口UART自动波特率调整方法,本发明实施例四还对应上述方法公开了一种异步串口UART自动波特率调整装置,包括:
上位机和中央处理器CPU;
所述上位机,用于向所述CPU发送具有特定帧格式的预设字符;接收所述CPU得到的调整后的波特率;接收所述确认字符在验证正确后确定完成UART自动波特率调整;
所述CPU,用于上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符。
优选的,上述装置中的所述上位机包括PC机;
优选的,参考图6,上述装置中的所述CPU包括:设置有异步时钟域同步处理器CDC syncF100,计数器Counter1F200和计数器Counter2F300的测量模块;
所述CDC syncF100,用于通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理,其中,所述数据为8位二进制数据或十六进制数据;
所述Counter2F300,用于在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
所述Counter1F200,用于在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready。
优选的,上述装置中的所述CPU包括配置模块;
所述配置模块,用于在所述检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;其中,div=cnt*16/n。
本发明实施例所提供的一种异步串口UART自动波特率调整装置,所述CPU上电复位,接收所述上位机向所述CPU发送的具有特定帧格式的预设字符,所述CDC sync通过所述RXD接收所述预设字符的数据位上的数据进行同步处理,所述Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述Counter1发送所述计数使能信号en,并得到计数值n。
进一步的,所述Counter1在复位或重置之后,依据所述uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready,所述配置模块在所述检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,且div=cnt*16/n,得到调整后的波特率fbaud,并向所述上位机反馈确认字符,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整,之后所述上位机开始向所述CPU传输数据,从而实现在原有芯片上进行UART自动波特率调整不需要增加额外的芯片引脚,节省开销的目的。
以上对本发明所提供的一种异步串口UART自动波特率调整方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种异步串口UART自动波特率调整方法,其特征在于,包括:
上位机向中央处理器CPU发送具有特定帧格式的预设字符;
所述CPU上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符;
所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整。
2.如权利要求1所述的方法,其特征在于,所述启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,包括:
所述测量模块中的异步时钟域同步处理器CDC sync通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理,其中,所述数据为8位二进制数据或十六进制数据;
所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
所述Counter1在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt及准备信号ready。
3.如权利要求2所述的方法,其特征在于,所述使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,包括:
所述配置模块在检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;其中,div=cnt*16/n。
4.如权利要求3所述的方法,其特征在于,所述具有特定帧格式的预设字符包括1个起始位,8个数据位,1个偶校验位和1个停止位。
5.如权利要求4所述的方法,其特征在于,当所述预设字符中的8个数据位上的数据为0x55时,所述测量模块中的计数器Counter2在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且在所述RXD接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n,包括:
在接收所述复位信号reset或重置信号restart之后进行复位或重置;
在所述RXD接收到所述数据0x55的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1;其中,所述数据0x55的脉宽上升沿共有5个;
在所述RXD接收到所述数据0x55的脉宽的5个上升沿后,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n为5。
6.如权利要求1~5中任意一项所述的方法,其特征在于,所述上位机接收所述确认字符在验证正确后确定完成UART自动波特率调整之后,还包括:
所述上位机开始向所述CPU传输数据。
7.一种异步串口UART自动波特率调节装置,其特征在于,包括:上位机和中央处理器CPU;
所述上位机,用于向所述CPU发送具有特定帧格式的预设字符;接收所述CPU反馈的确认字符在验证正确后确定完成UART自动波特率调整;
所述CPU,用于上电复位,接收所述预设字符,启动测量模块依据异步串口UART的工作时钟对所述预设字符的脉宽进行计数,使配置模块依据计数值配置相应的串口波特率,得到调整后的波特率,并向所述上位机反馈确认字符。
8.如权利要求7所述的装置,其特征在于,所述上位机包括PC机。
9.如权利要求7所述的装置,其特征在于,所述CPU包括:设置有异步时钟域同步处理器CDC sync,计数器Counter1和计数器Counter2的测量模块;
所述CDC sync,用于通过所述UART的接收数据的引脚RXD接收所述预设字符的数据位上的数据进行同步处理,其中,所述数据为8位二进制数据或十六进制数据;
所述Counter2,用于在接收复位信号reset或重置信号restart之后,在所述RXD接收所述数据的情况下开始计数,且所述RXD在接收到所述数据的脉宽为上升沿时计数加一,并生成计数使能信号en发送至所述测量模块中的计数器Counter1,在所述RXD接收完毕所述数据的情况下,停止计数和向所述测量模块中的计数器Counter1发送所述计数使能信号en,并得到计数值n;
所述Counter1,用于在复位或重置之后,依据所述UART输入的工作时钟信号uart_clk,对在接收到所述计数使能信号en的情况下接收所述数据的uart_clk周期数进行计数,并在结束计数时得到计数值cnt准备信号ready。
10.如权利要求9所述的装置,其特征在于,所述CPU包括配置模块;
所述配置模块,用于在所述检测到所述准备信号ready的情况下,获取计数值cnt和计数值n,依据fbaud=fuart_clk/16/div配置所述UART的串口波特率,得到调整后的波特率fbaud;其中,div=cnt*16/n。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410593284.XA CN104360974A (zh) | 2014-10-29 | 2014-10-29 | 一种异步串口uart自动波特率调整方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410593284.XA CN104360974A (zh) | 2014-10-29 | 2014-10-29 | 一种异步串口uart自动波特率调整方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104360974A true CN104360974A (zh) | 2015-02-18 |
Family
ID=52528237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410593284.XA Pending CN104360974A (zh) | 2014-10-29 | 2014-10-29 | 一种异步串口uart自动波特率调整方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360974A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130856A (zh) * | 2016-08-17 | 2016-11-16 | 天津市英贝特航天科技有限公司 | 一种自适应波特率rs485通讯协议 |
CN107450935A (zh) * | 2016-05-30 | 2017-12-08 | 北京信威通信技术股份有限公司 | 一种芯片的bootrom启动配置方法及装置 |
CN109525350A (zh) * | 2018-10-12 | 2019-03-26 | 福建星云电子股份有限公司 | 基于异步串口同步源的模块同步控制方法 |
CN109669899A (zh) * | 2018-11-23 | 2019-04-23 | 中科曙光信息产业成都有限公司 | 自适应调节串口通信波特率的方法及串口装置 |
CN111211869A (zh) * | 2020-01-02 | 2020-05-29 | 深圳震有科技股份有限公司 | 一种自动适配波特率方法、智能终端及储存介质 |
CN111274194A (zh) * | 2018-12-05 | 2020-06-12 | 锐迪科(重庆)微电子科技有限公司 | 数据处理装置及其控制方法 |
CN111400216A (zh) * | 2019-01-03 | 2020-07-10 | 珠海格力电器股份有限公司 | Uart模块、uart模块传输参数的调节方法和***级芯片 |
CN112202528A (zh) * | 2020-08-17 | 2021-01-08 | 北京海泰方圆科技股份有限公司 | 通讯波特率校正方法、装置、电子设备及存储介质 |
CN113448907A (zh) * | 2021-08-31 | 2021-09-28 | 北京智联安科技有限公司 | 一种低功耗串行异步收发器及数据接收方法、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293852A (zh) * | 1998-03-16 | 2001-05-02 | 艾利森公司 | 用于异步串行通信的自动速率检测 |
CN1353828A (zh) * | 1999-03-30 | 2002-06-12 | 西门子能量及自动化公司 | 可编程逻辑控制器方法,***和设备 |
US20050041594A1 (en) * | 2003-08-06 | 2005-02-24 | Jha Mithilesh Kumar | Automatic baud rate determination |
CN102306136A (zh) * | 2011-08-03 | 2012-01-04 | 宁波三星电气股份有限公司 | 基于单片机输入捕获功能的波特率自适应方法 |
CN103036823A (zh) * | 2012-12-14 | 2013-04-10 | 中船重工(武汉)凌久电子有限责任公司 | 基于fpga的波特率快速自适应方法、处理器及接收端 |
CN103412615A (zh) * | 2013-08-22 | 2013-11-27 | 中国航天科工集团第三研究院第八三五七研究所 | 一种用于uart接口芯片的无毛刺自适应时钟切换方法 |
-
2014
- 2014-10-29 CN CN201410593284.XA patent/CN104360974A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293852A (zh) * | 1998-03-16 | 2001-05-02 | 艾利森公司 | 用于异步串行通信的自动速率检测 |
CN1353828A (zh) * | 1999-03-30 | 2002-06-12 | 西门子能量及自动化公司 | 可编程逻辑控制器方法,***和设备 |
US20050041594A1 (en) * | 2003-08-06 | 2005-02-24 | Jha Mithilesh Kumar | Automatic baud rate determination |
CN102306136A (zh) * | 2011-08-03 | 2012-01-04 | 宁波三星电气股份有限公司 | 基于单片机输入捕获功能的波特率自适应方法 |
CN103036823A (zh) * | 2012-12-14 | 2013-04-10 | 中船重工(武汉)凌久电子有限责任公司 | 基于fpga的波特率快速自适应方法、处理器及接收端 |
CN103412615A (zh) * | 2013-08-22 | 2013-11-27 | 中国航天科工集团第三研究院第八三五七研究所 | 一种用于uart接口芯片的无毛刺自适应时钟切换方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450935A (zh) * | 2016-05-30 | 2017-12-08 | 北京信威通信技术股份有限公司 | 一种芯片的bootrom启动配置方法及装置 |
CN106130856A (zh) * | 2016-08-17 | 2016-11-16 | 天津市英贝特航天科技有限公司 | 一种自适应波特率rs485通讯协议 |
CN109525350A (zh) * | 2018-10-12 | 2019-03-26 | 福建星云电子股份有限公司 | 基于异步串口同步源的模块同步控制方法 |
CN109525350B (zh) * | 2018-10-12 | 2020-04-10 | 福建星云电子股份有限公司 | 基于异步串口同步源的模块同步控制方法 |
CN109669899A (zh) * | 2018-11-23 | 2019-04-23 | 中科曙光信息产业成都有限公司 | 自适应调节串口通信波特率的方法及串口装置 |
CN109669899B (zh) * | 2018-11-23 | 2020-07-28 | 中科曙光信息产业成都有限公司 | 自适应调节串口通信波特率的方法及串口装置 |
CN111274194A (zh) * | 2018-12-05 | 2020-06-12 | 锐迪科(重庆)微电子科技有限公司 | 数据处理装置及其控制方法 |
CN111400216A (zh) * | 2019-01-03 | 2020-07-10 | 珠海格力电器股份有限公司 | Uart模块、uart模块传输参数的调节方法和***级芯片 |
CN111211869A (zh) * | 2020-01-02 | 2020-05-29 | 深圳震有科技股份有限公司 | 一种自动适配波特率方法、智能终端及储存介质 |
CN112202528A (zh) * | 2020-08-17 | 2021-01-08 | 北京海泰方圆科技股份有限公司 | 通讯波特率校正方法、装置、电子设备及存储介质 |
CN113448907A (zh) * | 2021-08-31 | 2021-09-28 | 北京智联安科技有限公司 | 一种低功耗串行异步收发器及数据接收方法、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104360974A (zh) | 一种异步串口uart自动波特率调整方法及装置 | |
JP7258199B2 (ja) | 多相クロックデータ復元回路較正 | |
KR102522742B1 (ko) | 3-페이즈 인터페이스에 대한 멀티페이즈 클록 데이터 복구 | |
EP3170090B1 (en) | Systems and methods for chip to chip communication | |
CN110687993B (zh) | 通过usb隧道传送消息从而控制电力输送 | |
JP2017516353A (ja) | 集積回路間(i2c)バス上でインバンドで追加情報を送信するための方法 | |
CN104915237A (zh) | 蓝牙设备固件程序的升级、升级控制方法及设备 | |
CN104461972B (zh) | 一种数据信号采样的方法和设备 | |
US20170104607A1 (en) | Methods to avoid i2c void message in i3c | |
CN115202496A (zh) | 导航***及其时钟校准方法 | |
CN105790756B (zh) | 一种利用uart通讯校准时钟的方法及装置 | |
CN104168080A (zh) | 一种用于自适应波特率的方法、装置和设备 | |
US9608800B2 (en) | Frequency aided clock recovery based on low speed information exchange mechanism | |
KR20140049488A (ko) | 송신 주파수를 자동으로 교정할 수 있는 송신 인터페이스 장치 및 그의 방법 | |
CN108027744B (zh) | 数据传输方法和移动终端 | |
US9772650B2 (en) | Solving unstable universal asynchronous receive transmit (UART) communication between a power manager and a universal serial bus (USB)-bridge device | |
CN106201956B (zh) | 自动更正非晶体振荡器的时钟的装置及其方法 | |
CN102929330A (zh) | 用于产生usb外设时钟的电路及方法 | |
CN112822226B (zh) | 一种数据传输方法、装置、电子设备及机器可读存储介质 | |
CN103336712A (zh) | 一种用于数字电视单频网适配器的控制方法 | |
US8953662B1 (en) | Method and apparatus for baud rate tracking | |
El Kouche et al. | WSN platform Plug-and-Play (PnP) customization | |
JP2002222024A (ja) | マイクロコンピュータ | |
TW202022627A (zh) | 通用序列匯流排裝置及其操作方法 | |
CN108268087B (zh) | 半导体装置、半导体***和操作半导体装置的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190710 Address after: 100097 Jinyuan Times Business Center (Block C) 2E, No. 2 Courtyard, Lanindichang East Road, Haidian District, Beijing Applicant after: The perseverance space Big Dipper (Beijing) development in science and technology Co., Ltd Address before: 201203 West Side of Second Floor, 125 Songtao Road, Zhangjiang High-tech Park, Shanghai Applicant before: Shanghai Jialilue Navigation Co., Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150218 |