CN110618729A - 波特率发生器、通信设备及波特率时钟信号的生成方法 - Google Patents
波特率发生器、通信设备及波特率时钟信号的生成方法 Download PDFInfo
- Publication number
- CN110618729A CN110618729A CN201810632324.5A CN201810632324A CN110618729A CN 110618729 A CN110618729 A CN 110618729A CN 201810632324 A CN201810632324 A CN 201810632324A CN 110618729 A CN110618729 A CN 110618729A
- Authority
- CN
- China
- Prior art keywords
- value
- accumulated value
- baud rate
- clock signal
- comparator
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提出一种波特率发生器、通信设备及波特率时钟信号的生成方法,涉及数据通信技术领域。该波特率发生器包括减法器、比较器及处理单元,减法器及处理单元均与比较器电连接,减法器计算预先配置的分数的分母值与分子值的差值,处理单元依据该差值计算差值的补码,比较器依据当前累加值与差值控制处理单元选择分子值或差值的补码作为待处理数据,处理单元在系统时钟信号的控制下将当前累加值与待处理数据进行累加,获得新累加值并将新累加值输出至比较器以便比较器将新累加值作为当前累加值;比较器在当前累加值大于或等于差值时,生成频率为预设频率的波特率时钟信号,从而实现了通过纯分数分频法生成波特率时钟信号。
Description
技术领域
本发明涉及数据通信技术领域,具体而言,涉及一种波特率发生器、通信设备及波特率时钟信号的生成方法。
背景技术
随着通信技术的发展,串口通信的应用已经非常广泛,串口通信是指外设和计算机之间通过数据信号线、地线、控制线等,按位进行数据传输的一种通信方式。波特率是串口通信中最重要的参数之一,用于衡量符号传输速率,波特率时钟信号可以由波特率发生器根据输入的系统时钟转换得到,但当系统时钟不是专为波特率发生器设置的时候,即系统时钟信号的频率不是所需波特率时钟信号的频率的整数倍时,波特率发生器需要使用分数分频,否则波特率发生器依据系统时钟分频得到的波特率时钟信号会出现较大偏差。
发明内容
有鉴于此,本发明实施例的目的在于提供一种波特率发生器、通信设备及波特率时钟信号的生成方法。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提出一种波特率发生器,包括减法器、比较器及处理单元,所述减法器及所述处理单元均与所述比较器电连接;所述减法器,用于计算预先配置的分数的分母值与分子值的差值,并将所述差值输出至所述比较器及所述处理单元,以便所述处理单元依据所述差值计算所述差值的补码;所述比较器,用于从所述处理单元获取当前累加值,并依据所述当前累加值与所述差值控制所述处理单元选择所述分子值或所述差值的补码作为待处理数据;所述处理单元,用于在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值输出至所述比较器,以便所述比较器将所述新累加值作为所述当前累加值;所述比较器,还用于在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
在上述第一方面实施例提供的技术方案中,比较器根据获取的当前累加值和差值控制处理单元选择分子值或差值的补码作为待处理数据,处理单元在系统时钟信号的控制下将当前累加值与待处理数据进行累加得到并将新累加值输出至比较器,比较器将新累加值作为当前累加值,于比较器而言,只要获取的当前累加值大于或等于差值,便可生成频率为预设频率的波特率时钟信号。因此,在本申请中,只需给波特率发生器配置分数的分子值与分母值,该波特率发生器便可通过纯分数分频法生成预设频率的波特率时钟信号。
可选地,结合上述第一方面提供的技术方案,在第一方面的第一种可能的设计中,所述处理单元包括累加器、选择器及补码器,所述累加器及所述选择器均与所述比较器电连接,所述补码器与所述选择器、所述减法器均电连接;所述补码器,用于计算所述差值的补码,并将所述差值的补码输出至所述选择器;所述比较器,用于依据所述当前累加值与所述差值控制所述选择器选择所述分子值或所述差值的补码作为所述待处理数据,并将所述待处理数据输出至所述累加器;所述累加器,用于在所述系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得并将所述新累加值输出至所述比较器。在本申请中,该处理单元可由累加器、选择器及补码器实现,即由补码器计算差值的补码输出至选择器,选择器在比较器的控制下,选择将差值的补码或分子值作为待处理数据输出至累加器,累加器在系统时钟信号的控制下将累加器的当前累加值与待处理数据进行累加后得到的新累加值输出至比较器,从而通过补码器、选择器以及累加器的配合使得比较器生成预设频率的波特率时钟信号。
可选地,结合上述第一方面的第一种可能的设计提供的技术方案,在第二种可能的设计中,所述比较器,具体用于在所述当前累加值小于所述差值时,控制所述选择器选择所述分子值作为所述待处理数据。
可选地,结合上述第一方面的第一种可能的设计提供的技术方案,在第一方面的第三种可能的设计中,所述比较器,具体用于在所述当前累加值大于或等于所述差值时,控制所述选择器选择所述差值的补码作为所述待处理数据。
可选地,结合上述第一方面的第一种可能的设计提供的技术方案,在第一方面的第四种可能的设计中,所述累加器,具体用于在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加,获得所述新累加值。
可选地,结合上述第一方面提供的技术方案,在第一方面的第五种可能的设计中,所述预设频率对应于预设波特率时钟信号,所述预先配置的分数由所述预设频率除以所述系统时钟信号的频率得到。因此,当想要获得预设波特率时钟信号时,可将预设频率与系统时钟信号的频率相除,得到该预先配置的分数并对预先配置的分数的分子值与分母值进行配置,保证了预先配置的分数的准确性,进而使生成的波特率时钟信号的精度更高,而传统使用整数加小数的分频法,因受到小数部分的寄存器的位宽的限制,无法选取较准确的数值进行配置,使得产生的波特率时钟信号的偏差较大,精度不高。
第二方面,本发明实施例还提出一种波特率时钟信号的生成方法,所述方法包括:计算预先配置的分数的分母值与分子值的差值以及所述差值的补码;依据获取的当前累加值与所述差值选择所述分子值或所述差值的补码作为待处理数据;在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值作为所述当前累加值;在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
在上述第二方面实施例提供的技术方案中,依据获取的当前累加值和差值选择分子值或差值的补码作为待处理数据,并在系统时钟信号的控制下将当前累加值与待处理数据进行累加得到新累加值并将新累加值作为当前累加值,当该当前累加值大于或等于差值时,便可生成频率为预设频率的波特率时钟信号。因此,在本申请中,只需配置该分数的分子值与分母值,便可以通过纯分数分频法生成预设频率的波特率时钟信号。
可选地,结合上述第二方面提供的技术方案,在第二方面的第一种可能的设计中,所述依据获取的当前累加值与所述差值选择所述分子值或所述差值的补码作为待处理数据的步骤包括:在所述当前累加值小于所述差值时,选择所述分子值作为所述待处理数据;在所述当前累加值大于或等于所述差值时,选择所述差值的补码作为所述待处理数据。
可选地,结合上述第二方面提供的技术方案,在第二方面的第二种可能的设计中,所述在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加的步骤包括:在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加。
第三方面,本发明实施例还提出一种通信设备,包括中央处理器以及上述第一方面所述的波特率发生器,所述中央处理器与所述处理单元电连接,所述中央处理器用于给所述处理单元提供所述系统时钟信号。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述第二方面所述的方法。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的通信设备的结构框图。
图2示出了本发明实施例所提供的波特率发生器的一种结构框图。
图3示出了本发明实施例所提供的波特率发生器的另一种结构框图。
图4示出了本发明实施例所提供的波特率时钟信号的生成方法的流程示意图。
图标:10-通信设备;100-波特率发生器;200-中央处理器;110-减法器;120-比较器;130-处理单元;131-累加器;132-选择器;133-补码器。
具体实施方式
在实现本发明实施例的技术方案的过程中,本申请发明人发现:
在系统时钟信号的频率不是所需波特率时钟信号的频率的整数倍时,若要波特率发生器产生所需波特率时钟信号,则需要使用分数分频的方法来实现。传统的带有分数分频器的波特率发生器是使用整数加小数的分频法,即对系统时钟信号的频率与所需的波特率时钟信号的频率进行相除,得到整数部分和小数部分,然后依据得到的整数部分和小数部分对波特率发生器进行配置。
本申请发明人还进一步发现,被配置为对小数部分进行计数的寄存器,其位宽固定,使得用户在计算过程中会通过四舍五入等方式进行取值,导致最终的取值与原值偏差较大。例如,其位宽为4位,当系统时钟为100MHz,要得到921600的波特率b时,则需要产生16倍的波特率时钟信号b16=921600*16=14.7456MHz,由于100/14.7456≈6.781684,故整数部分配置为6,小数部分因0.781684*16≈12.5(乘以16是因为小数部分的寄存器的位宽为4),将12.5四舍五入得到13,故小数部分配置为13,可见,实际上配置的数值为6+13/16=6.8125,这与原值6.781684偏差较大。因此,传统的使用整数加小数的分频法,因其小数部分对应的寄存器的位宽固定,不能做到与原值最逼近,使得最终配置的小数部分与原值的小数部分偏差较大,进而导致波特率发生器最终产生的波特率时钟信号偏差较大,抖动也较大。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,为本发明实施例所提供的通信设备10的结构框图。该通信设备10包括波特率发生器100及中央处理器200,波特率发生器100与中央处理器200电连接,中央处理器200用于给波特率发生器100提供系统时钟信号(sys_clock),以便波特率发生器100依据系统时钟信号(sys_clock)生成所需的波特率时钟信号。
在本实施例中,所述通信设备10可以是路由器、交换机等。
请参照图2,为本发明实施例所提供的波特率发生器100的结构框图。所述波特率发生器100包括减法器110、比较器120及处理单元130,所述减法器110及所述处理单元130均与所述比较器120电连接,所述处理单元130与所述中央处理器200电连接。
所述减法器110,用于计算预先配置的分数的分母值与分子值的差值,并将所述差值输出至所述比较器120及所述处理单元130,以便所述处理单元130依据所述差值计算所述差值的补码。
所述比较器120,用于从所述处理单元130获取当前累加值,并依据所述当前累加值与所述差值控制所述处理单元130选择所述分子值或所述差值的补码作为待处理数据。
所述处理单元130,用于在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值输出至所述比较器120,以便所述比较器120将所述新累加值作为所述当前累加值。
在本实施例中,很容易理解的是,比较器120首次获取的当前累加值为初始值(初始值为0,可以通过系统复位得到,也可以根据每次设置获取的波特率时进行设置),并依据该初始值与所述差值控制所述处理单元130选择所述分子值或所述差值的补码作为首次待处理数据。
处理单元130将所述当前累加值与所述待处理数据进行累加的过程为:处理单元130首次是将初始值与首次待处理数据进行第一次累加操作后,得到一个新累加值,比较器120获取该第一次累加后得到新累加值,并依据该第一次累加后的新累加值与所述差值控制所述处理单元130选择所述分子值或所述差值的补码作为待处理数据;处理单元130将第一次累加操作得到的新累加值作为第二次累加操作的当前累加值,然后在第二次累加操作中将第一次累加操作得到的新累加值与待处理数据进行累加,得到一个新累加值,然后将第二次累加操作得到的新累加值作为第三次累加操作中的当前累加值,以便进行第三次累加操作,依次类推。很容易理解的是,处理单元130第一次进行累加操作的当前累加值为初始值,处理单元130后续进行累加操作是在初始值的基础上每次累加待处理数据得到的新累加值。因此,除首次外,所述比较器120从所述处理单元130获取的当前累加值为处理单元130得到的新累加值,也即是说,处理单元130将每一次累加操作获得的新累加值输出至比较器120是为了便于所述比较器120将所述新累加值作为所述当前累加值,然后继续依据当前累加值和差值控制处理单元130选择分子值或差值的补码作为待处理数据,处理单元130在系统信号的控制下将当前累加操作对应的当前累加值与待处理数据进行累加,得到新累加值输出至比较器120;比较器120和处理单元130可循环往复地执行上述步骤。
所述比较器120还用于在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
在本实施例中,比较器120和处理单元130通过循环往复地执行上述步骤,比较器120每次从处理单元130获得的当前累加值也因处理单元130的累加操作而不断发生变化,每当该当前累加值大于或等于差值时,比较器120便输出一次波特率时钟信号,通过循环执行,可以持续生成频率为预设频率的波特率时钟信号。
在本实施例中,所述预设频率对应于预设波特率时钟信号,所述预先配置的分数由所述预设频率除以所述系统时钟信号的频率得到,将该分数的分子值与分母值配置进波特率发生器100中,可使波特率发生器100生成频率为预设频率的波特率时钟信号(即预设波特率时钟信号)。例如,当想要该波特率发生器100生成频率为预设频率的波特率时钟信号时,可以根据预设频率与系统时钟信号的频率相除的结果,选取一个最逼近该结果的分数(即最佳逼近分数)作为预先配置的分数,然后将该最佳逼近分数的分子值与分母值配置进波特率发生器100中。由于在本申请中,当分子值与分母值的配置寄存器均为8~12位的位宽时,其表达的分数范围很广,故可以保证选取到最佳的逼近分数,从而提高波特率发生器100生成的波特率时钟信号的精度,使得波特率发生器100每秒钟产生的波特率时钟信号的个数越接近理论值。
下面,对图2所示的波特率发生器100的工作原理进行详细说明。选取分数n/d作为上述预先配置的分数,将该分数n/d的分子值n和分母值d配置进波特率发生器100后,减法器110可获得该分子值n和分母值d,处理单元130可获得分子值n。减法器110将获得的分母值d和分子值n进行相减,得到差值delta=d-n,并将该差值delta输出至比较器120和处理单元130;处理单元130在获得差值delta后,通过对差值delta求补(即取反加一操作),可得到差值的补码(n-d)。比较器120通过比较从处理单元130获取的当前累加值acc与减法器110输出的差值delta的大小关系来控制处理单元130选择分子值n或差值的补码(n-d)作为待处理数据,处理单元130在系统时钟信号(sys_clock)的控制下将处理单元130的当前累加值acc与选择的待处理数据进行累加,得到新累加值,并将新累加值输出至比较器120,此时比较器120将处理单元130输出的新累加值作为当前累加值acc,并在当前累加值acc大于或等于所述差值delta时,输出一次波特率时钟信号。例如,处理单元130中的当前累加值为acc,经过第一次累加操作后,得到的新累加值为acc1=acc+n或acc1=acc+(n-d),并输出至比较器120,而处理单元130将得到的新累加值acc1作为下一次累加操作的当前累加值;比较器120将从处理单元130获取的第一次累加操作后得到的新累加值acc1作为当前累加值与减法器110输出的差值delta的大小进行比较,进而控制处理单元130选择分子值n或差值的补码(n-d)作为待处理数据,处理单元130按照上述过程进行第二次累加操作,再将第二次累加操作得到的新累加值acc2输出至比较器120,比较器120将从处理单元130获取的新累加值acc2作为当前累加值与减法器110输出的差值delta的大小进行比较,进而控制处理单元130选择分子值n或差值的补码(n-d)作为待处理数据,处理单元130按照上述过程进行第三次累加操作,如此循环往复,比较器120便能连续产生出预设频率的波特率时钟信号。
进一步地,如图3所示,在本实施例中,所述处理单元130具体包括累加器131、选择器132及补码器133,所述累加器131及所述选择器132均与所述比较器120电连接,所述补码器133与所述选择器132、所述减法器110均电连接,所述累加器131与所述中央处理器200电连接。
所述补码器133,用于计算所述差值的补码,并将所述差值的补码输出至所述选择器132。
所述比较器120,用于依据所述当前累加值与所述差值控制所述选择器132选择所述分子值或所述差值的补码作为所述待处理数据,并将所述待处理数据输出至所述累加器131。
在本实施例中,所述比较器120具体用于在所述当前累加值小于所述差值时,控制所述选择器132选择所述分子值作为所述待处理数据;在所述当前累加值大于或等于所述差值时,控制所述选择器132选择所述差值的补码作为所述待处理数据。
所述累加器131,用于在所述系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得并将所述新累加值输出至所述比较器120。
在本实施例中,所述累加器131具体用于在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加,获得所述新累加值。
所述比较器120还用于在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
在本实施例中,比较器120在获取的当前累加值小于减法器110输出的差值时,控制选择器132选择分子值输出至累加器131,累加器131在每个系统时钟信号的上升沿将当前累加值与分子值进行累加得到并向比较器120输出新累加值,累加器131将每次累加操作获得的新累加值作为当前累加值继续与分子值进行累加,直到比较器120获得的当前累加值大于差值时,比较器120就可以输出一次波特率时钟信号,并在输出波特率时钟信号的同时,控制选择器132选择差值的补码输出至累加器131,以使累加器131对当前累加值与差值的补码进行累加,此时累加器131实际上执行的是将当前累加值与分子值相加后再减去分母值的操作,所得到的新累加值将在下一个系统时钟信号的上升沿继续与分子值进行累加,从而生成预设频率的波特率时钟信号。
需要说明的是,在本实施例中,可以给累加器131的当前累加值acc设置一个初始值(例如,0)。在一种可行的实施方式中,当波特率发生器100进入初始状态(比如,刚上电)时,累加器131则向比较器120输出该初始值,比较器120将该初始值作为当前累加值acc并根据当前累加值acc与差值delta控制选择器132选择分子值n或差值的补码(n-d)作为待处理数据,累加器131将当前累加值acc与待处理数据进行累加,得到新累加值并输出至比较器120,即比较器120第一次从累加器131获取的当前累加值acc实际上是累加器131中预先设置的初始值,而后续从累加器131获取的当前累加值acc则是累加器131将当前累加值acc与待处理数据进行累加后获得并输出的新累加值;在另一种可行的实施方式中,当波特率发生器100进入初始状态(比如,刚上电)时,累加器131先将当前累加值acc(即初始值)与分子值n累加一次后得到新累加值并输出至比较器120,以使比较器120将该新累加值作为当前累加值acc并根据当前累加值acc与差值delta控制选择器132选择分子值n或差值的补码(n-d)作为待处理数据,累加器131将当前累加值acc与待处理数据进行累加,得到新累加值并输出至比较器120,即累加器131在初始状态时会默认选择分子值n与当前累加值acc(即初始值)累加一次,比较器120从累加器131获取的当前累加值acc均是累加器131将当前累加值acc与分子值n或差值的补码(n-d)进行累加操作后获得并输出的新累加值。
下面,给出一个实例,以对图3所示的波特率发生器100的工作原理进行详细说明。假设中央处理器200当前提供的系统时钟信号(sys_clock)的频率为100MHz,要得到一个921600的波特率b,则需要一个16倍(或8倍)的波特率时钟信号b16=921600*16=14745600Hz,即预设频率为14.7456MHz。通过计算可以得到一个最逼近14.7456/100的分数32/217,使得100*32/217≈14.7465MHz,则实际得到的波特率为14.7465MHz/16≈921656,与理论值b只有万分之6的误差。
将该分数的分子值32和分母值217配置进图3所示的波特率发生器100中,则n=32,d=217,delta=185。假设初始状态时,累加器131中的当前累加值acc为0,累加器131在100MHz系统时钟信号(sys_clock)的上升沿将当前累加值acc与分子值n=32累加一次,得到新累加值acc1(即acc1=acc+n=32)输出至比较器120,此时累加器131将新累加值acc1作为当前累加值acc;比较器120将累加器131输出的新累加值acc1作为当前累加值acc,由于acc1<delta,则控制选择器132选择分子值n=32作为待处理数据并将该待处理数据输出至累加器131,累加器131继续在100MHz系统时钟信号(sys_clock)的上升沿将当前累加值acc(即新累加值acc1)与待处理数据累加一次,得到新累加值acc2(即acc2=acc+n=acc1+n=64)输出至比较器120,此时累加器131将新累加值acc2作为当前累加值acc,重复上述过程,直到累加器131输出的新累加值大于或等于差值delta时(比如新累加值为accx-1时),比较器120会输出一次波特率时钟信号,并控制选择器132选择差值的补码(即n-d)作为待处理数据输出至累加器131,累加器131在100MHz系统时钟信号(sys_clock)的上升沿将当前累加值acc(即新累加值accx-1)与待处理数据累加一次,得到新累加值accx(即accx=accx-1+n-d=acc-185)并输出至比较器120,比较器120判断accx<delta,则选择器132选择分子值n=32作为待处理数据并将该待处理数据输出至累加器131,累加器131在100MHz系统时钟信号(sys_clock)的作用下继续执行累加操作,直到输出的新累加值再次大于或等于差值delta;如此循环往复,该波特率发生器100便可以连续生成需要的波特率时钟信号b16。
在本申请中,由于累加器131在执行累加操作的过程中,每当将当前累加值与待处理数据进行累加后,所得到的新累加值将会在下一个系统时钟信号的上升沿继续与待处理数据进行累加,故该新累加值没有发生损失,使得生成的波特率时钟信号比较均匀,抖动较小。
请参照图4,为本发明实施例所提供的波特率时钟信号的生成方法的流程示意图。该波特率时钟信号的生成方法可应用于上述的波特率发生器100,需要说明的是,本实施例所提供的波特率时钟信号的生成方法,其基本原理及产生的技术效果与上述的波特率发生器100相同,为简要描述,本实施例中未提及部分,可参考前述波特率发生器100的相应内容。下面将对图4所示的具体流程进行详细阐述。
步骤S101,计算预先配置的分数的分母值与分子值的差值以及所述差值的补码。
可以理解,该步骤S101可以由上述的减法器110及补码器133执行。
步骤S102,依据获取的当前累加值与所述差值选择所述分子值或所述差值的补码作为待处理数据。
在本实施例中,该步骤S102具体包括:在所述当前累加值小于所述差值时,选择所述分子值作为所述待处理数据;在所述当前累加值大于或等于所述差值时,选择所述差值的补码作为所述待处理数据。
可以理解,该步骤S102可以由上述的比较器120及选择器132执行。
步骤S103,在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值作为所述当前累加值。
在本实施例中,该步骤S103具体可包括:在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加。
可以理解,该步骤S103可以由上述的累加器131执行。
步骤S104,在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
可以理解,该步骤S104可以由上述的比较器120执行。
本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如前的图4所示的方法实施例中记载的全部步骤。
综上所述,本发明实施例提供的波特率发生器、通信设备及波特率时钟信号的生成方法,该波特率发生器包括减法器、比较器及处理单元,所述减法器及所述处理单元均与所述比较器电连接;所述减法器,用于计算预先配置的分数的分母值与分子值的差值,并将所述差值输出至所述比较器及所述处理单元,以便所述处理单元依据所述差值计算所述差值的补码;所述比较器,用于从所述处理单元获取当前累加值,并依据所述当前累加值与所述差值控制所述处理单元选择所述分子值或所述差值的补码作为待处理数据;所述处理单元,用于在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值输出至所述比较器,以便所述比较器将所述新累加值作为所述当前累加值;所述比较器,还用于在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。在本申请中,累加器在系统时钟信号的作用下执行当前累加值与分子值或差值的补码的累加操作并向比较器输出新累加值以便比较器将该新累加值作为当前累加值,比较器在获得的当前累加值大于或等于差值时,便输出一次波特率采样时钟信号,同时控制选择器选择差值的补码输出至累加器以使累加器将当前累加值与差值的补码进行累加,如此循环往复,使得波特率发生器能够连续产生预设频率的波特率时钟信号,并且产生的波特率时钟信号比较均匀,抖动小;同时,由于预先配置的分数是根据预设波特率时钟信号的预设频率与系统时钟信号的频率相除后选取的最佳逼近分数,使得波特率发生器输出的波特率时钟信号可以达到较高的精度。因此,本申请提供的波特率发生器使用纯分数分频法,并选取最佳逼近分数进行分子值与分母值的配置,使得输出的波特率时钟信号能够达到较高的精度和较好的抖动性能,增加串口通信的质量。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (11)
1.一种波特率发生器,其特征在于,包括减法器、比较器及处理单元,所述减法器及所述处理单元均与所述比较器电连接;
所述减法器,用于计算预先配置的分数的分母值与分子值的差值,并将所述差值输出至所述比较器及所述处理单元,以便所述处理单元依据所述差值计算所述差值的补码;
所述比较器,用于从所述处理单元获取当前累加值,并依据所述当前累加值与所述差值控制所述处理单元选择所述分子值或所述差值的补码作为待处理数据;
所述处理单元,用于在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值输出至所述比较器,以便所述比较器将所述新累加值作为所述当前累加值;
所述比较器,还用于在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
2.如权利要求1所述的波特率发生器,其特征在于,所述处理单元包括累加器、选择器及补码器,所述累加器及所述选择器均与所述比较器电连接,所述补码器与所述选择器、所述减法器均电连接;
所述补码器,用于计算所述差值的补码,并将所述差值的补码输出至所述选择器;
所述比较器,用于依据所述当前累加值与所述差值控制所述选择器选择所述分子值或所述差值的补码作为所述待处理数据,并将所述待处理数据输出至所述累加器;
所述累加器,用于在所述系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得并将所述新累加值输出至所述比较器。
3.如权利要求2所述的波特率发生器,其特征在于,所述比较器,具体用于在所述当前累加值小于所述差值时,控制所述选择器选择所述分子值作为所述待处理数据。
4.如权利要求2所述的波特率发生器,其特征在于,所述比较器,具体用于在所述当前累加值大于或等于所述差值时,控制所述选择器选择所述差值的补码作为所述待处理数据。
5.如权利要求2所述的波特率发生器,其特征在于,所述累加器,具体用于在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加,获得所述新累加值。
6.如权利要求1-5任一项所述的波特率发生器,其特征在于,所述预设频率对应于预设波特率时钟信号,所述预先配置的分数由所述预设频率除以所述系统时钟信号的频率得到。
7.一种波特率时钟信号的生成方法,其特征在于,所述方法包括:
计算预先配置的分数的分母值与分子值的差值以及所述差值的补码;
依据获取的当前累加值与所述差值选择所述分子值或所述差值的补码作为待处理数据;
在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加,获得新累加值并将所述新累加值作为所述当前累加值;
在所述当前累加值大于或等于所述差值时,生成频率为预设频率的波特率时钟信号。
8.如权利要求7所述的波特率时钟信号的生成方法,其特征在于,所述依据获取的当前累加值与所述差值选择所述分子值或所述差值的补码作为待处理数据的步骤包括:
在所述当前累加值小于所述差值时,选择所述分子值作为所述待处理数据;
在所述当前累加值大于或等于所述差值时,选择所述差值的补码作为所述待处理数据。
9.如权利要求7所述的波特率时钟信号的生成方法,其特征在于,所述在系统时钟信号的控制下将所述当前累加值与所述待处理数据进行累加的步骤包括:
在所述系统时钟信号的上升沿将所述当前累加值与所述待处理数据进行累加。
10.一种通信设备,其特征在于,包括中央处理器以及如权利要求1-5任一项所述的波特率发生器,所述中央处理器与所述处理单元电连接,所述中央处理器用于给所述处理单元提供所述系统时钟信号。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器读取并运行时,实现如权利要求7-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632324.5A CN110618729A (zh) | 2018-06-19 | 2018-06-19 | 波特率发生器、通信设备及波特率时钟信号的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632324.5A CN110618729A (zh) | 2018-06-19 | 2018-06-19 | 波特率发生器、通信设备及波特率时钟信号的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618729A true CN110618729A (zh) | 2019-12-27 |
Family
ID=68920257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810632324.5A Pending CN110618729A (zh) | 2018-06-19 | 2018-06-19 | 波特率发生器、通信设备及波特率时钟信号的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618729A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024795A (zh) * | 2021-11-05 | 2022-02-08 | 深圳数马电子技术有限公司 | 波特率自适应方法、装置、计算机设备和存储介质 |
CN114138051A (zh) * | 2021-11-08 | 2022-03-04 | 西安电子科技大学 | 一种用于电化学工作站的波形生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1460328A (zh) * | 2001-03-30 | 2003-12-03 | 皇家菲利浦电子有限公司 | 带有分数分频器的波特率发生器 |
US20050077934A1 (en) * | 2003-10-14 | 2005-04-14 | Fahim Amr M. | Low-power direct digital synthesizer with analog interpolation |
CN103269218A (zh) * | 2013-04-19 | 2013-08-28 | 西安交通大学 | 一种基于fpga/cpld的任意分数分频器实现方法 |
-
2018
- 2018-06-19 CN CN201810632324.5A patent/CN110618729A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1460328A (zh) * | 2001-03-30 | 2003-12-03 | 皇家菲利浦电子有限公司 | 带有分数分频器的波特率发生器 |
US20050077934A1 (en) * | 2003-10-14 | 2005-04-14 | Fahim Amr M. | Low-power direct digital synthesizer with analog interpolation |
CN103269218A (zh) * | 2013-04-19 | 2013-08-28 | 西安交通大学 | 一种基于fpga/cpld的任意分数分频器实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024795A (zh) * | 2021-11-05 | 2022-02-08 | 深圳数马电子技术有限公司 | 波特率自适应方法、装置、计算机设备和存储介质 |
CN114024795B (zh) * | 2021-11-05 | 2023-08-08 | 深圳数马电子技术有限公司 | 波特率自适应方法、装置、计算机设备和存储介质 |
CN114138051A (zh) * | 2021-11-08 | 2022-03-04 | 西安电子科技大学 | 一种用于电化学工作站的波形生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112085183B (zh) | 一种神经网络运算方法及装置以及相关产品 | |
US7205800B2 (en) | Clock frequency divider circuit | |
CN110618729A (zh) | 波特率发生器、通信设备及波特率时钟信号的生成方法 | |
CN106708468B (zh) | 一种除法运算装置 | |
CN107480771B (zh) | 基于深度学习的激活函数的实现方法及装置 | |
CN111399803B (zh) | 除法运算方法、装置、存储介质及电子设备 | |
JP2013025467A (ja) | 対数関数の近似演算回路 | |
Rodríguez et al. | Application-specific processor for piecewise linear functions computation | |
CN112200299A (zh) | 神经网络计算装置、数据处理方法及装置 | |
Thomé | Fast computation of linear generators for matrix sequences and application to the block Wiedemann algorithm | |
CN112910496B (zh) | Chirp信号的生成方法、装置、终端及介质 | |
CN114460363A (zh) | 交流信号同步采样方法、装置和交流采样设备 | |
JP2006172475A (ja) | 電子回路中で乗算演算または除算演算を行う方法およびその装置 | |
CN110968938B (zh) | 一种用于电磁暂态仿真的理想开关过程分析方法及系统 | |
JP3890289B2 (ja) | ラグランジェ補間サンプリングレート変換装置 | |
CN107291658B (zh) | 一种数据信号的处理方法及装置 | |
CN103901940A (zh) | 一种产生数字余弦信号的方法 | |
JP5305392B2 (ja) | Iqデータの二乗和ルート計算手段 | |
JP6826919B2 (ja) | データ分配装置及びデータ分配比率の決定方法 | |
KR101584917B1 (ko) | 멀티 스테이지 필터 장치 및 그것을 이용한 필터링 방법 | |
Babic et al. | A fast algorithm for linear convolution of discrete time signals | |
CN112286490B (zh) | 一种循环迭代乘加运算的硬件架构及方法 | |
CN116088935B (zh) | 应用于磁轴承转子参数辨识的数据的处理方法 | |
JP6327154B2 (ja) | 信号生成装置、信号生成方法及び数値制御発振器 | |
JP2000298665A (ja) | 演算アルゴリズム決定用データベースと演算アルゴリズム決定用データベース作成装置とプログラム記録媒体 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |