CN102324927B - 波特率发生器 - Google Patents
波特率发生器 Download PDFInfo
- Publication number
- CN102324927B CN102324927B CN201110114661.3A CN201110114661A CN102324927B CN 102324927 B CN102324927 B CN 102324927B CN 201110114661 A CN201110114661 A CN 201110114661A CN 102324927 B CN102324927 B CN 102324927B
- Authority
- CN
- China
- Prior art keywords
- baud rate
- value
- system clock
- serial port
- bfine
- 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.)
- Active
Links
- 238000002720 stereotactic body radiation therapy Methods 0.000 claims description 18
- 230000005574 cross-species transmission Effects 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 16
- 239000013078 crystal Substances 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Microcomputers (AREA)
Abstract
本发明提供一种波特率发生器,包括:独立定时器,与系统时钟相连接,用于产生串行口波特率的起始溢出信号;16分频器,与独立定时器相连接,用于将波特率16等分;比特宽度微调器,分别与系统时钟、16分频器和后续的串口模块相连接,用于对16等分的波特率时钟信号的宽度进行微调输出。本发明可以对串行口波特率进行最大限度的微调,缩小波特率偏差,以满足实际通信需求,避免为了提高通信速度而定制特殊晶振的额外花费,对波特率要求较高的单片机串口通信有着十分重要的意义。另外,本发明对波特率发生器设置独立定时器,防止单片机内部的定时器被波特率发生器过多占用,导致定时器缺乏。
Description
技术领域
本发明涉及数字集成电路设计和串行通信技术领域,具体来说,本发明涉及一种波特率发生器。
背景技术
波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示。波特率发生器本身不产生波特率时钟,其作用是从输入的系统时钟转换出需要的波特率。一般地,波特率时钟频率/波特率因子=波特率。例如,传统单片机串行口波特率(BaudRate)由下式计算:
BaudRate=Fsys/[(32768-TH)*16]
其中BaudRate为串行口波特率,Fsys为晶体振荡器或者系统时钟的频率,TH为通用定时器的重载数据寄存器的值。
图1为现有技术中一个波特率发生器的模块结构示意图,其可以集成于单片机的内部。如图所示,当前的波特率发生器100一般可以包括:
通用定时器101,与系统时钟相连接,用于定时、计数、测量脉冲宽度和产生串口波特率的起始溢出信号;
2分频器102,与通用定时器101相连接,用于控制波特率是否翻倍;
16分频器103,分别与2分频器102和后续的串口模块104相连接,用于把波特率16等分输出。
更具体地,通用定时器101可以包括:
控制寄存器105,用于开关计数器107、选择通用定时器101的工作模式和控制中断;
重载数据寄存器106,与控制寄存器105相连接,用于当计数器107溢出时,把自己的值载入计数器107中;
计数器107,分别与系统时钟、控制寄存器105和重载数据寄存器106相连接,用于以系统频率的速度递增计数,当计数到256时溢出。
现有技术的波特率发生器100的工作原理大致如下:
先设置通用定时器101中重载数据寄存器106的值,再开启通用定时器101;当计数器107从重载数据计数到溢出时,输出反转信号;此反转信号(溢出信号)依次经过2分频器102(由SMODE位控制)和16分频器103后输出给串口模块104,成为串口模块104的移位时钟信号,即串口波特率。
在进行实际的串行通信时,电平分别在7、8和9等分时刻被采样,这样能提高串口通信的抗干扰性能。
但是,目前的波特率发生器至少还存在如下的缺点:
a)目前的单片机内部集成的一个波特率发生器需要单独占用一个通用定时器,如果使用两个波特率发生器将会占用两个通用定时器,这可能导致定时器的缺乏,以至于不能满足应用需求;
b)当系统时钟值不是所需波特率的整数倍时,那么由系统时钟经过定时器和16分频器分出来的波特率就会出现偏差。在波特率较低时,这种偏差不大;而当波特率较高时,偏差太大,甚至无法正确通信。
发明内容
本发明所要解决的一个技术问题是提供一种波特率发生器,能够解决单片机内部的定时器被波特率发生器过多占用,导致定时器缺乏的问题。
本发明所要解决的另一个技术问题是提供一种波特率发生器,能够解决波特率偏差过大,以至于影响正常串行通信的问题。
为解决上述技术问题,本发明提供一种波特率发生器,包括:
独立定时器,与系统时钟相连接,用于产生串行口波特率的起始溢出信号;
16分频器,与所述独立定时器相连接,用于将所述波特率16等分;
比特宽度微调器,分别与所述系统时钟、16分频器和后续的串口模块相连接,用于对所述16等分的波特率时钟信号的宽度进行微调输出。
可选地,所述独立定时器包括:
计数器,分别与所述系统时钟和16分频器相连接,用于以系统频率的速度递增计数,当计数到32768时溢出;
重载数据寄存器,与所述计数器相连接,用于当所述计数器溢出时,把自己的值载入所述计数器中。
可选地,所述比特宽度微调器包括:
比特微调数据寄存器,用于存放需要对所述波特率调节的数值;
乘法器,分别与所述比特微调数据寄存器和系统时钟相连接,用于根据所述系统时钟将所述比特微调数据寄存器的值转化为调节的宽度值;
加法器,分别与所述16分频器和乘法器相连接,用于根据波特率精度的要求改变所述16分频器后的信号宽度。
可选地,所述串行口波特率由下式计算:
BaudRate=Fsys/[(32768-SBRT)*16+BFINE]
其中BaudRate为所述串行口波特率,Fsys为所述晶体振荡器或者系统时钟的频率,SBRT为所述重载数据寄存器的值,而BFINE为所述比特微调数据寄存器的值。
可选地,所述BFINE的调节精度为一个系统时钟,其值为0~15的整数。
可选地,所述SBRT的值由下式计算:
SBRT=32768-Fsys/16/BaudRate
可选地,所述BFINE的值由下式计算:
BFINE=Fsys/BaudRate-(32768-SBRT)*16
然后对上式计算得到的BFINE的值进行四舍五入。
与现有技术相比,本发明具有以下优点:
本发明可以对串行口波特率进行最大限度的微调,缩小波特率偏差,以满足实际通信需求,避免为了提高通信速度而定制特殊晶振的额外花费,对波特率要求较高的单片机串口通信有着十分重要的意义。
另外,本发明对波特率发生器设置独立定时器,防止单片机内部的定时器被波特率发生器过多占用,导致定时器缺乏。
附图说明
本发明的上述的以及其它的特征、性质和优势将通过下面结合附图和实施例的描述而变得更加明显,其中:
图1为现有技术中一个波特率发生器的模块结构示意图;
图2为本发明一个实施例的波特率发生器的模块结构示意图;
图3为本发明一个实施例的波特率发生器的一个位宽度的组成示意图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。
图2为本发明一个实施例的波特率发生器的模块结构示意图。如图所示,该波特率发生器200可以包括:
独立定时器201,与系统时钟相连接,用于产生串行口波特率的起始溢出信号;
16分频器202,与独立定时器201相连接,用于将波特率16等分;其中在进行实际的串行通信时,电平可以分别在7、8和9等分时刻被采样,这样能提高串口通信的抗干扰性能;
比特宽度微调器203,分别与系统时钟、16分频器202和后续的串口模块204相连接,用于对16等分的波特率时钟信号的宽度进行微调输出。
在本实施例中,该独立定时器201可以具体包括:
计数器207,分别与系统时钟和16分频器202相连接,用于以系统频率的速度递增计数,当计数到32768时溢出;
重载数据寄存器206(最高位为开关控制位),与计数器207相连接,用于当计数器207溢出时,把自己的值载入计数器207中。
类似地,在本实施例中,该比特宽度微调器203可以包括:
比特微调数据寄存器208,用于存放需要对波特率调节的数值;
乘法器209,分别与比特微调数据寄存器208和系统时钟相连接,用于根据系统时钟将比特微调数据寄存器208的值转化为调节的宽度值;
加法器210,分别与16分频器202和乘法器209相连接,用于根据波特率精度的要求改变16分频器202后的信号宽度。
下面以图2所示的本发明一个实施例的波特率发生器200为例,简要描述一下本发明的波特率发生器的一般工作原理:
先设置独立定时器201中重载数据寄存器206的值,再开启独立定时器201;当计数器207从重载数据计数到溢出时,输出反转信号;此反转信号(溢出信号)依次经过16分频器202和比特宽度微调器203提供给串口模块204,成为串口模块204的移位时钟信号,即串口波特率。
依照上述过程16分频后的信号宽度,即传统一比特宽度的最小变化单位是系统时钟的16倍。之后,比特宽度微调器203按照比特微调数据寄存器208的值(0~15)对比特宽度增加相应数量的时钟宽度。如此,一比特宽度的最小变化单位就是一个系统周期或者晶体振荡器周期,实现了在晶体振荡器的前提下得到最精密的波特率。
图3为本发明一个实施例的波特率发生器的一个位宽度的组成示意图。在本发明中,波特率的倒数为一个串口通信中1个位的宽度,此宽度等于独立定时器201的溢出率(OverFlowTime)乘以16与比特微调数据寄存器208的值乘以系统周期(BFINE*Tsys)之和。其中,BFINE为比特微调数据寄存器208的值,Tsys为系统周期的值。
在本发明中,单片机串行口波特率(BaudRate)的计算公式可以表达如下:
BaudRate=Fsys/[(32768-SBRT)*16+BFINE]
其中,BaudRate为串行口波特率,Fsys为晶体振荡器或者系统时钟的频率,SBRT为重载数据寄存器206的值,而BFINE为比特微调数据寄存器208的值。
由上式可以看出,BFINE是用来辅助独立定时器201调节波特率的,其调节精度可以为一个系统时钟。BFINE的值则可以为0~15的整数。
令BFINE的值为0时,可以由下式确定SBRT的值:
SBRT=32768-Fsys/16/BaudRate
本发明需要对计算得到的SBRT的值化小数为整,例如SBRT的值为32763.2,则取SBRT的值为32764。
类似地,BFINE的值可以由下式确定:
BFINE=Fsys/BaudRate-(32768-SBRT)*16
然后对通过上式计算得到的BFINE的值进行四舍五入。
本发明可以对串行口波特率进行最大限度的微调,缩小波特率偏差,以满足实际通信需求,避免为了提高通信速度而定制特殊晶振的额外花费,对波特率要求较高的单片机串口通信有着十分重要的意义。
另外,本发明对波特率发生器设置独立定时器,防止单片机内部的定时器被波特率发生器过多占用,导致定时器缺乏。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。
Claims (6)
1.一种波特率发生器,包括:
独立定时器,与系统时钟相连接,用于产生串行口波特率的起始溢出信号;
16分频器,与所述独立定时器相连接,用于将所述波特率16等分;
比特宽度微调器,分别与所述系统时钟、16分频器和后续的串口模块相连接,用于对所述16等分的波特率时钟信号的宽度进行微调输出;
其中,所述比特宽度微调器包括:
比特微调数据寄存器,用于存放需要对所述波特率调节的数值;
乘法器,分别与所述比特微调数据寄存器和系统时钟相连接,用于根据所述系统时钟将所述比特微调数据寄存器的值转化为调节的宽度值;
加法器,分别与所述16分频器和乘法器相连接,用于根据波特率精度的要求改变所述16分频器后的信号宽度。
2.根据权利要求1所述的波特率发生器,其特征在于,所述独立定时器包括:
计数器,分别与所述系统时钟和16分频器相连接,用于以系统频率的速度递增计数,当计数到32768时溢出;
重载数据寄存器,与所述计数器相连接,用于当所述计数器溢出时,把自己的值载入所述计数器中。
3.根据权利要求2所述的波特率发生器,其特征在于,所述串行口波特率由下式计算:
BaudRate=Fsys/[(32768-SBRT)*16+BFINE]
其中BaudRate为所述串行口波特率,Fsys为所述系统时钟的频率,SBRT为所述重载数据寄存器的值,而BFINE为所述比特微调数据寄存器的值。
4.根据权利要求3所述的波特率发生器,其特征在于,所述BFINE的调节精度为一个系统时钟,其值为0~15的整数。
5.根据权利要求4所述的波特率发生器,其特征在于,所述SBRT的值由下式计算:
SBRT=32768-Fsys/16/BaudRate。
6.根据权利要求4所述的波特率发生器,其特征在于,所述BFINE的值由下式计算:
BFINE=Fsys/BaudRate–(32768-SBRT)*16
然后对上式计算得到的BFINE的值进行四舍五入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110114661.3A CN102324927B (zh) | 2011-05-04 | 2011-05-04 | 波特率发生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110114661.3A CN102324927B (zh) | 2011-05-04 | 2011-05-04 | 波特率发生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102324927A CN102324927A (zh) | 2012-01-18 |
CN102324927B true CN102324927B (zh) | 2014-06-04 |
Family
ID=45452608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110114661.3A Active CN102324927B (zh) | 2011-05-04 | 2011-05-04 | 波特率发生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102324927B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653491A (zh) * | 2016-01-04 | 2016-06-08 | 上海斐讯数据通信技术有限公司 | 一种串口通信波特率调整方法及系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684949B (zh) * | 2013-12-19 | 2017-01-11 | 北京遥测技术研究所 | 一种高精度波特率通用串口 |
CN104113391B (zh) * | 2014-07-10 | 2019-03-08 | 佛山市顺德区美的电热电器制造有限公司 | 波特率调整装置和方法以及烹饪器具 |
CN104158538B (zh) * | 2014-08-22 | 2017-04-05 | 深圳芯邦科技股份有限公司 | 波特率生成方法、波特率发生器及通信设备 |
CN109075742B (zh) * | 2018-08-06 | 2022-04-12 | 深圳市汇顶科技股份有限公司 | 波特率校准电路及串口芯片 |
CN111711444B (zh) * | 2019-03-18 | 2024-03-29 | 小华半导体有限公司 | 一种专用波特率发生器及通信方法 |
CN110688338B (zh) * | 2019-09-12 | 2021-03-16 | 深圳市航顺芯片技术研发有限公司 | 一种波特率生成方法、终端及存储介质 |
CN114138053B (zh) * | 2021-11-15 | 2024-05-28 | 中科芯集成电路有限公司 | 一种波特率生成器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399635A (zh) * | 2008-09-28 | 2009-04-01 | 中兴通讯股份有限公司 | 通讯波特率自适应方法、装置以及主机 |
CN101777034A (zh) * | 2010-03-22 | 2010-07-14 | 哈尔滨工业大学 | 具有硬件定时发送功能的rs422异步串行卡及其通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7135933B2 (en) * | 2004-09-29 | 2006-11-14 | Intelliserv, Inc. | System for adjusting frequency of electrical output pulses derived from an oscillator |
-
2011
- 2011-05-04 CN CN201110114661.3A patent/CN102324927B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399635A (zh) * | 2008-09-28 | 2009-04-01 | 中兴通讯股份有限公司 | 通讯波特率自适应方法、装置以及主机 |
CN101777034A (zh) * | 2010-03-22 | 2010-07-14 | 哈尔滨工业大学 | 具有硬件定时发送功能的rs422异步串行卡及其通信方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653491A (zh) * | 2016-01-04 | 2016-06-08 | 上海斐讯数据通信技术有限公司 | 一种串口通信波特率调整方法及系统 |
CN105653491B (zh) * | 2016-01-04 | 2018-07-13 | 上海斐讯数据通信技术有限公司 | 一种串口通信波特率调整方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102324927A (zh) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102324927B (zh) | 波特率发生器 | |
US7945803B2 (en) | Clock generation for multiple clock domains | |
CN103281052B (zh) | 极坐标传送器以及极坐标传送方法 | |
CN100527045C (zh) | 为低功率设计的动态时钟系统与方法 | |
CN102377428A (zh) | 时钟产生器与时钟产生方法 | |
CN102077505B (zh) | 时钟转换电路以及使用其的试验装置 | |
CN101252356B (zh) | 分数分频器锁相环设备及其控制方法 | |
CN102347763A (zh) | 校正装置与校正方法以及时钟产生装置 | |
CN104954015A (zh) | 时钟生成方法以及半导体装置 | |
CN105978539B (zh) | 一种结构精简的快速时钟拉伸电路 | |
CN101359909B (zh) | 具有扩展的范围能力的灵活波形发生器 | |
KR100195855B1 (ko) | 소수배 시스템에 있어서 클록 동기 체계 | |
CN103828237B (zh) | 维持脉冲宽度调制数据集相干性 | |
CN108471303A (zh) | 一种基于fpga的可编程纳秒级定时精度脉冲发生器 | |
CN104821802A (zh) | 时钟生成方法及时钟生成电路 | |
CN103955256B (zh) | 时钟频率调制的方法和时钟频率调制装置 | |
CN102983839A (zh) | 一种基于fpga实现gmsk信号发生器的方法 | |
CN101217277B (zh) | 非整数除频器以及可产生非整数时脉信号的锁相回路 | |
CN101719765B (zh) | 一种低抖动时钟的产生方法和装置 | |
CN104205634A (zh) | 高分辨率脉冲宽度调制器 | |
US8854101B2 (en) | Adaptive clock generating apparatus and method thereof | |
CN207884576U (zh) | 一种数字倍频器 | |
CN109787593A (zh) | 数字脉宽调制电路 | |
CN101807913B (zh) | 低速时钟使能信号产生方法、装置和设备 | |
CN103401540A (zh) | 基于tms320vc5402芯片的可编程脉宽调制产生器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Baud rate generator Granted publication date: 20140604 Pledgee: Luwan Sub branch of Bank of Shanghai Co.,Ltd. Pledgor: SINO WEALTH MICROELECTRONICS Co.,Ltd. Registration number: Y2024310000799 |