CN116185924A - 波特率时钟产生方法和电子装置 - Google Patents
波特率时钟产生方法和电子装置 Download PDFInfo
- Publication number
- CN116185924A CN116185924A CN202111423183.4A CN202111423183A CN116185924A CN 116185924 A CN116185924 A CN 116185924A CN 202111423183 A CN202111423183 A CN 202111423183A CN 116185924 A CN116185924 A CN 116185924A
- Authority
- CN
- China
- Prior art keywords
- fractional
- baud rate
- integer
- divide
- clock
- 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
Images
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Manipulation Of Pulses (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
公开了一种波特率时钟产生电路和电子装置。该电路包括:整数分频计数器,用于读取一个预定值,在每接收到一个输入时钟时进行一次计数,在总计数次数达到预定值时产生一个波特率分频时钟并重新读入一个预定值;以及分数分频调试器,用于初始加载分频系数的分数部分,并且在每一个所述波特率分频时钟产生时,累加所述分频系数的分数部分,其中,在累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为所述预定值;在累加值未溢出时,读取所述分频系数的整数部分作为所述预定值。由此,本发明通过对分数分频器累加溢出的判定确定整数分频器何时加载初值,何时加载初值加1,由此能够以相对简单的电路实现波特率容忍度提升的分数波特率。
Description
技术领域
本公开涉及一种异步通信领域,尤其涉及一种波特率时钟产生方法和电子设备。
背景技术
UART(Universal Asynchronous serial Receiver and Transmitter,通用异步串行接收/发送接口),也称UART串口,是嵌入式系统里最为重要的接口之一,有着简单、实用的特性,常用作调试系统的重要工具。它不仅用于板级芯片之间的通讯,而且应用于实现系统之间的通信和系统调度中。
串行通信是指利用一条传输线将资料一位位地顺序传送。异步通信则以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。
UART作为同步/异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输。UART的数据传送速率用波特率来表示,即每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位(1个起始位,7个数据位,1个校验位,1个结束位),则其传送的波特率为10×120=1200字符/秒=1200波特。
图1示出了UART字符数据帧格式的一个例子。从图1中的帧格式可知,UART数据帧由1个开始同步位,1个数据字(图示为7个数据位,也可以是其他不同的位数),1个结束停止位,以及可选的校验位组成。由于UART为异步通讯,因此,其按位发送时必须严格遵守设定的波特率,而接收方也必须在相同的波特率下才能正确解析发送的字符数据。
于是,波特率的设置和产生就相当关键。
发明内容
本公开要解决的一个技术问题是提供一种波特率时钟产生电路,该电路通过分数调试器的进位调节每个波特率时钟的产生间隔,由此以简单的电路结构和可接受的正确率实现了异步串行信号的有效传输。
根据本公开的第一个方面,提供了一种波特率时钟产生电路,包括:整数分频计数器,用于读取一个预定值,在每接收到一个输入时钟时进行一次计数,在总计数次数达到所述预定值时产生一个波特率分频时钟并重新读入一个计数值;以及分数分频调试器,用于初始加载分频系数的分数部分,并且在每一个所述波特率分频时钟产生时,累加所述分频系数的分数部分,其中,在所述分数分频调试器中的累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为读取的预定值;在所述分数分频调试器中的累加值未溢出时,所述整数分频计数器读取所述分频系数的整数部分作为读取的预定值。
可选地,所述分数分频调试器具有N位,并且所述波特率电路还包括:比较器,用于获取所述分数分频调试器累加值溢出的进位,当累加值溢出时,使得所述整数分频计数器读取分频系数的整数部分加1作为读取的预定值。
可选地,所述波特率时钟产生电路还包括:分频系数整数部分寄存器,用于存储所述分频系数的整数部分;以及分频系数分数部分寄存器,用于存储所述分频系数的分数部分。
可选地,所述分频系数整数部分寄存器和所述分频系数分数部分寄存器构成波特率寄存器,其中前N位存储所述分频系数的分数部分,后M位存储所述分频系数的整数部分。
根据本公开的第二个方面,提供了一种波特率时钟产生方法,包括:整数分频计数器初始读取分频系数的整数部分作为读取的预定值,并且分数分频调试器初始加载分频系数的分数部分;所述整数分频计数器在每接收到输入时钟时进行一次计数,在总计数次数达到所述预定值时产生一个波特率分频时钟并重新读入一个预定值,并且所述分数分频调试器在所述波特率分频时钟产生时,累加所述分频系数的分数部分,其中,在所述分数分频调试器中的累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为读取的所述预定值,在所述分数分频调试器中的累加值未溢出时,所述整数分频计数器读取所述分频系数的整数部分作为读取的所述预定值
根据本公开的第三个方面,提供了一种电子装置,包括如上述第一方面所述的波特率时钟产生电路,用于为存储器芯片的通用同步/异步收/发器提供波特率分频时钟。
由此,本发明通过对分数分频器累加溢出的判定确定整数分频器何时加载初值何时加载初值加1,由此能够以相对简单的电路实现在一定波特率范围内的波特率容忍度有一定程度的提升分数波特率。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了UART字符数据帧格式的一个例子。
图2示出了包括UART模块的电子装置的组成示意图。
图3示出了根据本发明一个实施例的波特率分频时钟产生示意图。
图4示出了根据本发明一个实施例的波特率时钟产生电路的组成示意图。
图5示出了根据本发明一个实施例的波特率分频时钟产生的例子。
图6示出了波特率分频时钟产生的时序图的例子。
图7示出了根据本发明一个实施例的波特率时钟产生方法的示意性流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,UART接口是电子装置,尤其是嵌入式系统与外界进行异步通信的关键模块。图2示出了包括UART模块的电子装置的组成示意图。
如图所示,UART模块可以包括UART发送器310、UART接收器320、控制单元330和波特率时钟产生电路340。UART模块可以在中央控制器100经由总线200的控制下,实现数据的串行发送和接收。
在需要发送数据时,中央控制器100将数据写入UART发送器310的发送缓存寄存器311中,随后,UART模块可以例如在控制单元330的控制下,将发送缓存寄存器311中的数据复制到发送移位器312中。发送移位器312(例如,移位寄存器)再基于波特率时钟产生电路340产生的时钟将数据一位一位地发送到TxDn数据线上,并根据设定的格式,插入开始、校验和停止位。
在需要接收数据时,接收移位器322(例如,移位寄存器)同样基于波特率时钟产生电路340产生的时钟将RxDn数据线上的数据一位一位的接收进来,然后复制到接收缓存寄存器321中。CPU即可经由系统总线200从接收缓存寄存器321中读取数据,例如,提取出去除了插入的开始、校验和停止位的原始发送数据。
UART是以异步方式实现通信的,其采样速度由波特率决定,波特率产生器的工作频率可以由PCLK(外围设备频率),FCLK/n(CPU工作频率的分频),UEXTCLK(外部输入时钟)三个时钟作为输入频率UCLK。波特率设置寄存器是可编程的,用户可以设置其波特率决定发送和接收的频率。
除了如前所述的UART串口之外,USART(Universal Synchronous Asynchronousserial Receiver and Transmitter,通用同步异步串行接收/发送接口)也可用于系统间的异步串行通信。USART可以看作是在UART基础上增加了同步功能,例如通过提供主动时钟来实现同步通信。在但用于异步通信时,USART与UART串口一样,需要在波特率时钟产生电路产生的波特率控制下进行数据收发。换句话说,图2所示的UART模块,也可以看作是进行异步通信时的USART模块。
用于波特率是用户可设置的。波特率时钟产生电路中通常包括一个波特率寄存器UART_BRR。通过对波特率寄存器UART_BRR进行设置,就可以通过对输入时钟进行分频来获取期望的波特率。波特率的计算表达式如下:
波特率=fCK/(16*UARTDIV)
在此,fCK指代串口的时钟源,例如图2中的UCLK。进一步地,该式引入了一个新量UARTDIV,用于表示对串口的时钟源fCK进行分频。假设波特率和fCK时钟频率的大小已知,通过上式便可以计算出UARTDIV的具体大小,然后再通过UART的值大小对波特率寄存器进行设置。
UARTDIV通过如上表达式得出,并且可以是一个带有小数的浮点数(如27.75)。将小数部分和整数部分分开,分别得到一个整数值n(如27)和一个小数值m(如0.75)。有了这两个值便可填写寄存器UART_BRR进而设置串口波特率大小。
具体地,在寄存器UART_BRR具有16位,且12位用于存储整数部分,后4位用于存储分数部分时,可以将整数部分m(27=0x1B)直接写入UART_BRR的后12位部分;将小数部分n乘以16(乘以16是因为使用4位来存储分数部分)后得到的整数值(如0.75x 16=12=0xC)写入UART_BRR前4位部分,最后得到USART_BRR的值为0x1BC。而如果小数部分乘以16之后仍带有小数,则可以四舍五入去除小数部分得到一个新的整数,再将其写入UART_BRR的前四位。
波特率时钟实际上是比特率时钟,每1位(1bit)所要花费的时间周期。而波特率(实际是比特率)发生器生成的分频时钟实际是对每1位进行采样的时钟,它是波特率时钟的16倍(这一解释了波特率计算表达式中16的由来)。
根据图2可知串口通信是通过TxD和RxD这两条线进行通信的。例如,当一个微控制器(MCU)与系统主板进行通信时,MCU接收器的RxD连接着系统主板发送器的TxD,系统主板接收器的TxD连接着MCU发送器的RxD。由此,MCU和主板可以通过RxD和TxD互传数据。换句话说,在进行串口通信的两方,都存在着如图3所示的发送器与接收器的连接。在数据的传输中,信号可能受到一些干扰而产生一些抖动。图3示出了串口通信信号在接收端形变的例子。即,发送端发出的矩形波在接收端接收时会发送形变。如果接收端只对这些信号数据采样一次,则可能采样到的抖动的不准确数据,进而导致数据传输错误。为此,接收端需要在每个波特率时钟内多次采样数据线上的数据,以获取更为准确的数据。换句话说,图2所示的波特率时钟产生电路340需要对输入时钟UCLK进行分频,以获取用户设置波特率16倍的分频时钟。该分频时钟可以直接提供给接收器320以对接收的数据进行一个波特率时钟内的16次采样,也可以在进行一次16分频以作为波特率时钟提供给发送器310进行数据发送。
如前所述,波特率寄存器UART_BRR中存储的UARTDIV(其后可称为分频系数)可能不是整数,这就意味着无法通过简单的整数分频来获取分频时钟。在现有技术中,存在对每一个分频时钟位都进行微调的方案。该方案虽然能将每比特误差限定下一个较小的预定范围内,但需要复杂的电路配合并且会消耗大量的算力。
为此,本发明提出了一种改进的波特率时钟产生方案,该方案通过简单设置的电路和处理,就能够获得允许误差范围内的分频时钟,从而为高效准确的异步串口通信奠定基础。
图4示出了根据本发明一个实施例的波特率时钟产生电路的组成示意图。如图4所示,波特率时钟产生电路340主要包括整数分频计数器341和分数分频调试器342。
整数分频计数器341会读取一个预定值,并且在每接收到一个输入时钟UCLK时进行一次计数,并在总计数次数达到所述预定值时产生一个波特率分频时钟bit_cke并重新读入一个预定值。在此,单向变化可以指的是例如每收到一个UCLK计数值+1,或是每收到一个UCLK计数值-1,而计数值是持续+1,还是-1取决于计数器是从0开始计数,还是从所述预定值开始计数。在一个实施例中,整数分频计数器341读取所述预定值作为计数值,在每接收到一个输入时钟UCLK时计数值减1,在计数值减为0时产生一个波特率分频时钟bit_cke并重新读入一个计数值。在另一个实施例中,整数分频计数器341读取所述预定值,并将0作为起始计数值,在每接收到一个输入时钟UCLK时计数值+1,在计数值增加到所述预定值时产生一个波特率分频时钟bit_cke并重新读入一个预定值。
分数分频调试器342可以用于对整数分频计数器341读取的预定值进行微调。具体地,分数分频调试器342基于分频系数的分数部分来对整数分频计数器341读取的预定值进行微调,进而对产生的波特率分频时钟bit_cke的间隔时间进行问题。
为此,分数分频调试器342首先可以初始加载分频系数的分数部分,并且在每一个所述波特率时钟产生时,累加所述分频系数的分数部分。在分数分频调试器342中的累加值溢出时,整数分频计数器341读取分频系数的整数部分加1作为读取的预定值;在分数分频调试器342中的累加值未溢出时,整数分频计数器342读取所述分频系数的整数部分作为读取的预定值。
在一个实施例中,整数分频计数器341从存储了分频系数整数部分的分频系数整数部分寄存器343_2中读取分频系数的整数部分。相应地,分数分频调试器342从存储了分频系数分数部分的分频系数分数部分寄存器343_1中读取分频系数的分数部分。
分频系数整数部分寄存器343_2和分频系数分数部分寄存器343_1可以对应于如上所述的波特率寄存器UART_BRR,其中前N位存储分频系数的分数部分,后M位存储分频系数的整数部分。在图4的例子中,波特率寄存器UART_BRR是一个20位的寄存器,前8位[7:0]存储分频系数的分数部分,后12位[19:8]存储分频系数的整数部分。
上述分频系数可以对应于如上根据波特率分频时钟的表达式:波特率=fCK/(16*UARTDIV)得到的UARTDIV的数值。其中该数值的整数部分存入UART_BRR[19:8],作为所述分频系数的整数部分;该数值的小数部分则乘以256(=28)存入UART_BRR[7:0],作为所述分频系数的分数部分。
在一个实施例中,可以通过比较器来判定分数分频调试器342中的累加值溢出。此时,所述波特率电路还包括:比较器,用于获取所述分数分频调试器累加值溢出的进位,当累加值溢出时,使得所述整数分频计数器读取分频系数的整数部分加1作为读取的预定值。具体地,该比较器可以是0和1比较器,用于获取所述分数分频调试器累加溢出的进位(可以看作是向第N+1位的进位),在进位为1时,使得所述整数分频计数器读取分频系数的整数部分加1作为读取的计数值,并将所述进位清零。
为了方便理解本发明,图5示出了根据本发明一个实施例的波特率分频时钟产生的例子。图6示出了波特率分频时钟产生的时序图的例子。
图5的图示可以看作是图4所示产生电路的优选实施例,并且包括了具体的流程。如下将同时结合图5和图6来描述本发明的优选实施例。
在此,假设根据用户设置的波特率和输入时钟(在图6中示出为低功率UCLK,即LPUCLK)的取值基于波特率计算表达式求出UARTDIV的值为3.61328125。此时,将整数3作为分频系数的整数部分存入低功率波特率寄存器LPUART_BRR的后12位,即,LPUART_BRR[19:8]存储的值为0X3(16进制表示);将小数部分0.61328125乘以256得到157,并将157作为分频系数的分数部分存入低功率波特率寄存器LPUART_BRR的前8位,即,LPUART_BRR[7:0]存储的值为9D(16进制表示)。为此,LPUART_BRR[19:0]=0X39D。
波特率产生器分为两部分,实现为12-Bit计数器的整数分频计数器和实现为8-BitCounter的分数分频调试器。在此,整数分频计数器的位数与波特率寄存器中的整数部分位数相一致,分数分频调试器的位数则与波特率寄存器中的分数部分位数相一致。
整数分频器采用递减计数的方式(即,此时预定值等于读取的计数值),并且用分频系数的整数部分作为计数器的初始值,在LPUCLK时钟有效进行递减,递减到1产生一个波特率分频时钟bit_cke。当bit_cke有效时如果分数调试器的计数值大于256时,整数分频器的计数值加载LPUART_BRR[19:8]+1,反之重新加载寄存器LPUART_BRR[19:8]。
分数调试器将LPUART_BRR[7:0]内的值作为分频器的初值。每当bit_cke有效时(即,每输出一个波特率分频时钟时),如果分数调试计数值未溢出(即,小于256),则计数值加LPUART_BRR[7:0];如果分数调试计数值溢出(即,大于256),则计数值减去256再加LPUART_BRR[7:0]。
以图6的时序图为例,假设LPUART_BRR[19:0]=0X39D,即LPUART_BRR[19:8]内的值为3,LPUART_BRR[7:0]内的值为157。此时,整数分频器(即,12-bit计数器)内的初始读取值为3,分数调试器(即,8-bitcounter)内的初始值为157。
波特率时钟产生电路接收输入时钟LPUCLK,并在t1时刻(即,图示时钟LPUCLK的第二个上升沿,并作为整数分频器计数器计算开始的第一个上升沿)开始工作。由于整数分频器的初始值读取为3,因此在t1时刻后的第三个上升沿所对应的t2时刻,输出一个分频时钟bit-cke。在t3时刻,整数分频器的计数器减为0,此时分数调试器内的值157,没有溢出,则整数分频器的计数器重新读取LPUART_BRR[19:8]=3,分数调试器则再累加一个157,等于314。同样,在对应于作为整数分频器计数器计算开始的第六个上升沿的t4时刻,输出一个分频时钟bit-cke。在t5时刻,整数分频器的计数器减为0,此时分数调试器内的值314,发生溢出,则整数分频器的计数器重新读取LPUART_BRR[19:8]+1=4,分数调试器则减取256后再累加一个157,等于314-256+157=215。由于整数分频器从4开始计数,因此在对应于作为整数分频器计数器计算开始的第十个上升沿的t6,输出一个分频时钟bit-cke。在t7时刻,整数分频器的计数器减为0,此时分数调试器内的值215,没有溢出,于是整数分频器重新读取3,分数调试器则仍然累加157。
虽然如上结合图6描述了在t5时刻,整数分频器的计数器减为0,此时分数调试器内的值314,发生溢出,则整数分频器的计数器重新读取LPUART_BRR[19:8]+1=4,分数调试器则减取256后再累加一个157,等于314-256+157=215。但在实际操作中,由于分数调试器内存储的是一个8位值,157可被存储为10011101。因此在t3时刻再累加一个157(即10011101)时,累加结果实际为100111010。由于分数调试器只有8位,因此实际上存储的是00111010,而第9个位的1,则可由0或1比较器获取。由此,在t5时刻,0或1比较器中的1可以用于整数分频器的计数器读取值+1(即,3+1=4),同时0或1比较器清零,分数调试器的00111010继续累加10011101(即,十进制的157),从而得到11010111(即,十进制的215)。
另外,应该理解的是,在其他实施例中,也可以在计数器为零的那个输入时钟上升沿来进行波特率分频时钟的输出,本发明对此不作限制。同样地,波特率时钟产生电路输出的可以是直接用于发送数据的波特率时钟,也可以输出波特率时钟16倍的分频时钟,本发明对此不做限制。换句话说,UART_BRR中可以存储与UARTDIV相对应的值,也可以存储与16*UARTDIV相对应的值,本发明同样对此不做限制。
在一个实施例中,本发明还可以实现为一种波特率时钟产生方法。图7示出了根据本发明一个实施例的波特率时钟产生方法的示意性流程图。该方法可有本发明的波特率时钟产生电路实施。
在步骤S710,整数分频计数器初始读取分频系数的整数部分作为读取的预定值,并且分数分频调试器初始加载分频系数的分数部分。
在步骤S720,整数分频计数器在每接收到输入时钟时进行一次计数,在总计数次数达到所述预定值时产生一个波特率时钟并重新读入一个预定值,并且所述分数分频调试器在所述波特率时钟产生时,累加所述分频系数的分数部分。
其中,在所述分数分频调试器中的累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为读取的预定值,在所述分数分频调试器中的累加值未溢出时,所述整数分频计数器读取所述分频系数的整数部分作为读取的预定值。
在一个实施例中,本发明还可以实现为一种电子装置,包括如前所述的波特率时钟产生电路,用于为存储器芯片的通用同步/异步收/发器(即,UART或USART接口)提供波特率时钟。例如,本发明可以实现为图2所示的电子装置,例如,MCU等,并且包括图4或图5所示的波特率时钟产生电路作为图2的波特率时钟产生电路340。
上文中已经参考附图详细描述了根据本发明的波特率时钟产生方案。本发明通过对分数分频器的累加溢出的判定确定整数分频器何时加载初值何时初值加1,由此能够以相对简单的电路实现在一定波特率范围内的波特率容忍度有一定程度的提升分数波特率。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (6)
1.一种波特率时钟产生电路,包括:
整数分频计数器,用于读取一个预定值,在每接收到一个输入时钟时进行一次计数,在总计数次数达到所述预定值时产生一个波特率分频时钟并重新读入一个预定值;以及
分数分频调试器,用于初始加载分频系数的分数部分,并且在每一个所述波特率分频时钟产生时,累加所述分频系数的分数部分,
其中,在所述分数分频调试器中的累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为所述预定值;在所述分数分频调试器中的累加值未溢出时,所述整数分频计数器读取所述分频系数的整数部分作为所述预定值。
2.如权利要求1所述的波特率时钟产生电路,其中,所述波特率电路还包括:
比较器,用于获取所述分数分频调试器累加值溢出的进位,当累加值溢出时,使得所述整数分频计数器读取分频系数的整数部分加1作为读取的预定值。
3.如权利要求1所述的波特率时钟产生电路,还包括:
分频系数整数部分寄存器,用于存储所述分频系数的整数部分;以及
分频系数分数部分寄存器,用于存储所述分频系数的分数部分。
4.如权利要求3所述的波特率时钟产生电路,其中,所述分频系数整数部分寄存器和所述分频系数分数部分寄存器构成波特率寄存器,其中前N位存储所述分频系数的分数部分,后M位存储所述分频系数的整数部分。
5.一种波特率时钟产生方法,包括:
整数分频计数器初始读取分频系数的整数部分作为读取的预定值,并且分数分频调试器初始加载分频系数的分数部分;
所述整数分频计数器在每接收到输入时钟时进行一次计数,在总计数次数达到所述预定值时产生一个波特率分频时钟并重新读入一个预定值,并且所述分数分频调试器在所述波特率分频时钟产生时,累加所述分频系数的分数部分,
其中,在所述分数分频调试器中的累加值溢出时,所述整数分频计数器读取分频系数的整数部分加1作为读取的所述预定值,在所述分数分频调试器中的累加值未溢出时,所述整数分频计数器读取所述分频系数的整数部分作为读取的所述预定值。
6.一种电子装置,包括:如权利要求1-4中任一项所述的波特率时钟产生电路,用于为存储器芯片的通用同步/异步收/发器提供波特率分频时钟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423183.4A CN116185924A (zh) | 2021-11-26 | 2021-11-26 | 波特率时钟产生方法和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423183.4A CN116185924A (zh) | 2021-11-26 | 2021-11-26 | 波特率时钟产生方法和电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185924A true CN116185924A (zh) | 2023-05-30 |
Family
ID=86444748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111423183.4A Pending CN116185924A (zh) | 2021-11-26 | 2021-11-26 | 波特率时钟产生方法和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185924A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501679A (zh) * | 2023-06-21 | 2023-07-28 | 北京智芯微电子科技有限公司 | 面向高速串行总线通信的自适应波特率生成方法及芯片 |
-
2021
- 2021-11-26 CN CN202111423183.4A patent/CN116185924A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501679A (zh) * | 2023-06-21 | 2023-07-28 | 北京智芯微电子科技有限公司 | 面向高速串行总线通信的自适应波特率生成方法及芯片 |
CN116501679B (zh) * | 2023-06-21 | 2023-11-21 | 北京智芯微电子科技有限公司 | 面向高速串行总线通信的自适应波特率生成方法及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7555590B2 (en) | Fast buffer pointer across clock domains | |
KR100434833B1 (ko) | 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 | |
CN102708086A (zh) | 一种应用于usb3.0的弹性缓冲结构及方法 | |
US5504927A (en) | System for controlling input/output data for an integrated one-chip microcomputer utilizing an external clock of a different speed for data transfer | |
CN116185924A (zh) | 波特率时钟产生方法和电子装置 | |
US7409023B2 (en) | Method and apparatus for effecting synchronous pulse generation for use in serial communications | |
US5131015A (en) | Combined BAUD rate generator and digital phase locked loop | |
US4740998A (en) | Clock recovery circuit and method | |
US7102553B2 (en) | Signal transmission method and signal transmission device | |
CN111934707B (zh) | 数据发射代码和接口 | |
CN202904568U (zh) | 一种应用于usb3.0的弹性缓冲结构 | |
CN113491082B (zh) | 一种数据处理装置 | |
US7366207B1 (en) | High speed elastic buffer with clock jitter tolerant design | |
EP0299265A2 (en) | Receiver synchronization in encoder/decoder | |
CN113722258A (zh) | 读取资料的方法和资料读取装置 | |
US5680644A (en) | Low delay means of communicating between systems on different clocks | |
US6594325B1 (en) | Circuitry, architecture and method(s) for synchronizing data | |
US20030002589A1 (en) | Serial communication circuit and serial transmitting and receiving system | |
US6553503B1 (en) | Circuitry, architecture and method(s) for synchronizing data | |
CN110601784B (zh) | Tdm接口扩展方法及装置、设备、可读存储介质 | |
US7050507B2 (en) | Adaptive throughput pulse width modulation communication scheme | |
Gupta et al. | Analysis of Universal Asynchronous Receiver-Transmitter (UART) | |
KR950002305B1 (ko) | 수신데이타에 의한 동기클록발생회로 | |
KR20180020164A (ko) | 라인 동작 검출기를 구비한 uart | |
EP1540863B1 (en) | Staged locking of phase locked loops |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |