CN103684949A - 一种高精度波特率通用串口 - Google Patents
一种高精度波特率通用串口 Download PDFInfo
- Publication number
- CN103684949A CN103684949A CN201310701622.2A CN201310701622A CN103684949A CN 103684949 A CN103684949 A CN 103684949A CN 201310701622 A CN201310701622 A CN 201310701622A CN 103684949 A CN103684949 A CN 103684949A
- Authority
- CN
- China
- Prior art keywords
- module
- nco
- baud rate
- data
- serial port
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明涉及一种通用串口,利用数字控制振荡器(NCO)产生高精度的串口波特率,并设计了发送缓冲区和接收缓冲区,以增强高波特率下串口通信的可靠性和稳定性,属于数据通信技术领域。本发明的通用串口具有可移植性,不受硬件平台的限制,可灵活移植到具有FPGA或者ASIC的硬件平台上,通过微处理器接口进行参数设置,实现异步串口的功能。
Description
技术领域
本发明涉及一种通用串口,利用数字控制振荡器(NCO)产生高精度的串口波特率,并设计了发送缓冲区和接收缓冲区,以增强高波特率下串口通信的可靠性和稳定性,属于数据通信技术领域。
背景技术
随着科学技术的进步,FPGA的速度越来越快、规模越来越大,串口通信对数据吞吐量的要求也越来越高,对异步串口波特率的需求已不再是传统的38.4kbps、115.2kbps,有些应用已达到600kbps以上,甚至达到Mbps以上。在这种背景条件下,传统的串口波特率生成方式已经不能满足需要,因为传统的串口波特率时钟采用整数分频方式产生,这种分频方式生成的波特率往往离基准值偏差较大,在高波特率通信时存在隐患,极易使通信变的不可靠。因此,有必要对现有的串口波特率生成方式进行革新,研究一种新的高精度波特率通用串口设计方法,来提高高波特率下串口通信的可靠性和稳定性。
发明内容
本发明的目的是为了克服现有技术的不足,提出一种高精度波特率通用串口。
本发明的目的是通过以下技术方案实现的。
本发明的一种高精度波特率通用串口,该通用串口包括控制模块、NCO模块、发送模块和接收模块;
(1)控制模块接收微处理器配置的参数,包括频率控制字M和奇偶校验方式,并把M值写入NCO累加器中;控制模块根据接收到的奇偶校验方式来控制接收模块所接收到的数据的校验方式以及发送模块所发送的数据的校验方式;
奇偶检验方式包括奇校验、偶校验和无校验三种方式;
频率控制字M的计算方法为:微处理器根据该通用串口的主时钟频率fs和串口波特率fout,以及NCO模块中保持寄存器的长度N,计算出频率控制字M;
串口波特率fout包括标准串口波特率和非标准串口波特率;
(2)NCO模块实现数字控制振荡器的功能,NCO模块包括累加器和保持寄存器;NCO模块的实现方法为:
控制模块将接收到的频率控制字M发送给累加器,累加器按照主时钟频率fs进行累加,每次累加值为M,得到累加计数值并存储在保持寄存器中供下一次累加使用;当累加计数值小于等于2N时,累加器继续累加,直至累加计数值大于2N时,产生一个时钟上升沿,之后重新进行累加,再次产生时钟上升沿,重复重新进行累加,再次产生时钟上升沿的过程;
产生时钟上升沿的频率为串口波特率fout的16倍;
N为NCO模块中保持寄存器的长度,单位为比特;
(3)发送模块包括一个发送缓冲区,该发送模块把待发送数据放入发送缓冲区,发送模块根据控制模块的校验方式计算待发送数据的检验位,并按照NCO模块产生的时钟发送数据,实现数据的并串转换功能;
(4)接收模块包括一个接收缓冲区,该接收模块按照NCO模块产生的时钟监测该通用串口的接收数据端,当监测到起始位按照NCO模块产生的时钟解调数据位,并根据控制模块的校验方式对数据位进行校验,实现数据的串并转换功能。
有益效果
(1)本发明中串口波特率时钟采用NCO方式产生,代替原来的整数分频方式,可大大提高串口波特率的精度。
(2)本发明中串口波特率的最小步进量计算公式为:
当串口工作主时钟频率为60MHz,波特率为115.2kbps时,利用上述公式计算串口波特率的最小步进量可达到0.01bps,因此本发明可使通用串口的波特率取值更加灵活可变,不局限于标准波特率的限制。
(3)本发明的通用串口设计了发送缓冲区和接收缓冲区,防止在高波特率通信时数据来不及处理而丢失。
(4)本发明的通用串口具有可移植性,不受硬件平台的限制,可灵活移植到具有FPGA或者ASIC的硬件平台上,通过微处理器接口进行参数设置,实现异步串口的功能。
附图说明
图1为本发明高精度波特率通用串口的组成框图;
图2为本发明所使用的数字控制振荡器(NCO)模块方框图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例
如图1和图2所示,一种高精度波特率通用串口,基于Altera CycloneⅢ系列FPGA EP3C120F484I7硬件平台,该通用串口包括控制模块、NCO模块、发送模块和接收模块;
(1)控制模块接收微处理器配置的参数频率控制字M和奇校验方式,把M值写入NCO累加器中;控制模块根据奇校验方式来验证接收模块所接收数据的校验位是否正确以及计算发送模块所发送数据的校验位;
(2)NCO模块实现数字控制振荡器的功能,NCO模块包括累加器和保持寄存器;NCO模块的实现方法为:
控制模块将接收到的频率控制字M发送给累加器,累加器按照主时钟频率fs进行累加,每次累加值为M,得到累加计数值并存储在保持寄存器中供下一次累加使用;当累加计数值小于等于2N时,累加器继续累加,直至累加计数值大于2N时,产生一个时钟上升沿,之后重新进行累加,再次产生时钟上升沿,重复重新进行累加,再次产生时钟上升沿的过程;
(3)发送模块包括一个发送缓冲区,该发送模块把待发送数据放入发送缓冲区,发送模块根据控制模块的校验方式计算待发送数据的检验位,并按照NCO模块产生的时钟发送数据,实现数据的并串转换功能;
(4)接收模块包括一个接收缓冲区,该接收模块按照NCO模块产生的时钟监测该通用串口的接收数据端,当监测到起始位按照NCO模块产生的时钟解调数据位,并根据控制模块的校验方式对数据位进行校验,实现数据的串并转换功能。
把该通用串口实例应用在GPS接收机产品中,进行串口数据通信。为了易于测量数据波特率,将发送数据固定为0x55,用示波器测量GPS接收机通用串口的发送数据端,得知数据比特位的周期为8.6806μs(测量精度受限于示波器性能),即实际波特率为115199.41bps,与基准值115200bps绝对误差为-0.59bps。
在同一GPS接收机产品中应用整数分频方式生成波特率时钟的通用串口,利用相同的测试手段,得到数据比特位的周期为8.7742μs(测量精度受限于示波器性能),即实际波特率为113970.50bps,与基准值115200bps绝对误差为-1229.5bps。由此可证明:采用NCO方式生成串口波特率的通用串口,串口波特率精度得到了大幅度的提高。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (1)
1.一种高精度波特率通用串口,其特征在于:该通用串口包括控制模块、NCO模块、发送模块和接收模块;
控制模块接收微处理器配置的参数,包括频率控制字M和奇偶校验方式,并把M值写入NCO累加器中;控制模块根据接收到的奇偶校验方式来控制接收模块所接收到的数据的校验方式以及发送模块所发送的数据的校验方式;
奇偶检验方式包括奇校验、偶校验和无校验三种方式;
频率控制字M的计算方法为:微处理器根据该通用串口的主时钟频率fs和串口波特率fout,以及NCO模块中保持寄存器的长度N,计算出频率控制字M;
串口波特率fout包括标准串口波特率和非标准串口波特率;
NCO模块实现数字控制振荡器的功能,NCO模块包括累加器和保持寄存器;NCO模块的实现方法为:
控制模块将接收到的频率控制字M发送给累加器,累加器按照主时钟频率fs进行累加,每次累加值为M,得到累加计数值并存储在保持寄存器中供下一次累加使用;当累加计数值小于等于2N时,累加器继续累加,直至累加计数值大于2N时,产生一个时钟上升沿,之后重新进行累加,再次产生时钟上升沿,重复重新进行累加,再次产生时钟上升沿的过程;
产生时钟上升沿的频率为串口波特率fout的16倍;
N为NCO模块中保持寄存器的长度,单位为比特;
发送模块包括一个发送缓冲区,该发送模块把待发送数据放入发送缓冲区,发送模块根据控制模块的校验方式计算待发送数据的检验位,并按照NCO模块产生的时钟发送数据,实现数据的并串转换功能;
接收模块包括一个接收缓冲区,该接收模块按照NCO模块产生的时钟监测该通用串口的接收数据端,当监测到起始位按照NCO模块产生的时钟解调数据位,并根据控制模块的校验方式对数据位进行校验,实现数据的串并转换功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310701622.2A CN103684949B (zh) | 2013-12-19 | 2013-12-19 | 一种高精度波特率通用串口 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310701622.2A CN103684949B (zh) | 2013-12-19 | 2013-12-19 | 一种高精度波特率通用串口 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103684949A true CN103684949A (zh) | 2014-03-26 |
CN103684949B CN103684949B (zh) | 2017-01-11 |
Family
ID=50321328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310701622.2A Active CN103684949B (zh) | 2013-12-19 | 2013-12-19 | 一种高精度波特率通用串口 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103684949B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298315A (zh) * | 2014-10-08 | 2015-01-21 | 北京中科泛华测控技术有限公司 | 智能串口通信卡及其波特率配置方法 |
CN105553617A (zh) * | 2015-12-21 | 2016-05-04 | 大连三高集团有限公司 | 一种串口通讯数据分析方法 |
CN108804362A (zh) * | 2018-06-08 | 2018-11-13 | 北京无线电测量研究所 | 串口批量数据传输方法、装置及存储介质 |
CN111796579A (zh) * | 2020-06-30 | 2020-10-20 | 东风电驱动系统有限公司 | 车辆远程监控终端的can总线波特率配置方法及系统 |
CN112364397A (zh) * | 2020-11-27 | 2021-02-12 | 天津七所精密机电技术有限公司 | 一种基于fpga的异步串口安全通信系统及方法 |
CN112835841A (zh) * | 2021-03-05 | 2021-05-25 | 大唐半导体科技有限公司 | 基于串口通讯的asic数据安全传输与存储装置及方法 |
CN114518781A (zh) * | 2022-01-07 | 2022-05-20 | 西安电子科技大学 | 一种双模可调高精度波特率时钟发生器及分频方法 |
CN114615104A (zh) * | 2022-03-14 | 2022-06-10 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102324927A (zh) * | 2011-05-04 | 2012-01-18 | 中颖电子股份有限公司 | 波特率发生器 |
-
2013
- 2013-12-19 CN CN201310701622.2A patent/CN103684949B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102324927A (zh) * | 2011-05-04 | 2012-01-18 | 中颖电子股份有限公司 | 波特率发生器 |
Non-Patent Citations (3)
Title |
---|
张文,薛顺瑞: "《基于FPGA的UART实现》", 《内江师范学院学报》 * |
王鹏,宋智国: "《基于FPGA的串口通信设计》", 《电子制作》 * |
田乐,张勇: "《基于FPGA实现异步串行通信》", 《现代电子技术》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298315A (zh) * | 2014-10-08 | 2015-01-21 | 北京中科泛华测控技术有限公司 | 智能串口通信卡及其波特率配置方法 |
CN105553617A (zh) * | 2015-12-21 | 2016-05-04 | 大连三高集团有限公司 | 一种串口通讯数据分析方法 |
CN108804362A (zh) * | 2018-06-08 | 2018-11-13 | 北京无线电测量研究所 | 串口批量数据传输方法、装置及存储介质 |
CN111796579A (zh) * | 2020-06-30 | 2020-10-20 | 东风电驱动系统有限公司 | 车辆远程监控终端的can总线波特率配置方法及系统 |
CN112364397A (zh) * | 2020-11-27 | 2021-02-12 | 天津七所精密机电技术有限公司 | 一种基于fpga的异步串口安全通信系统及方法 |
CN112364397B (zh) * | 2020-11-27 | 2023-01-13 | 天津七所精密机电技术有限公司 | 一种基于fpga的异步串口安全通信系统及方法 |
CN112835841A (zh) * | 2021-03-05 | 2021-05-25 | 大唐半导体科技有限公司 | 基于串口通讯的asic数据安全传输与存储装置及方法 |
CN114518781A (zh) * | 2022-01-07 | 2022-05-20 | 西安电子科技大学 | 一种双模可调高精度波特率时钟发生器及分频方法 |
CN114518781B (zh) * | 2022-01-07 | 2024-05-14 | 西安电子科技大学 | 一种双模可调高精度波特率时钟发生器及分频方法 |
CN114615104A (zh) * | 2022-03-14 | 2022-06-10 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
CN114615104B (zh) * | 2022-03-14 | 2023-11-28 | 鹍骐科技(北京)股份有限公司 | 一种基于国产化fpga实现的智能串口通讯方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103684949B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103684949A (zh) | 一种高精度波特率通用串口 | |
CN109669899B (zh) | 自适应调节串口通信波特率的方法及串口装置 | |
CN102123060B (zh) | 一种基于fpga的误码测试方法 | |
CN103684678A (zh) | 一种用于uart的波特率自适应方法、装置及uart | |
CN103117742B (zh) | Gps/北斗双模卫星时钟晶体振荡器驯服系统 | |
CN102263690B (zh) | 一种用于随钻测量系统数据上传的方法 | |
CN102331979A (zh) | 应用于usb设备的动态时钟频率校准方法 | |
CN103746790A (zh) | 一种基于内插的全数字高速并行定时同步方法 | |
CN104065470A (zh) | 一种混沌无线通信及发送编码方法 | |
CN102752098B (zh) | 用于通信系统的基于伪随机码序列同步的误码测量方法 | |
CN103543333A (zh) | 高频信号相位差测量方法及测量装置 | |
CN103957003A (zh) | 一种时间数字转换器、频率跟踪装置及方法 | |
CN104536285A (zh) | 一种高效率的晶振频率守时方法 | |
CN103235501A (zh) | 一种利用脉冲时间记录设备进行星地校时的方法 | |
CN105227503A (zh) | 一种基于无线随钻测量系统的井下信源信道联合编码方法 | |
CN104614737B (zh) | 一种qpsk扩频卫星动态信号模拟方法 | |
CN107327292B (zh) | 一种随钻测井信号的编码方法 | |
CN105610745A (zh) | 一种用于fsk信号的快速载波频偏估计及校正方法 | |
CN105306077B (zh) | 信号解码方法及装置 | |
CN103763063A (zh) | 不改变数据传输波特率而减少数据位宽的变速箱电路及工作方法 | |
CN103763064A (zh) | 适用于超高速通讯系统的循环冗余校验码生成方法与电路 | |
JP5291395B2 (ja) | 伝送システム、送信装置、受信装置、及び、伝送方法 | |
CN112230291B (zh) | 一种用于井间电磁探测的信号同步收发方法及系统 | |
CN106941386B (zh) | 基于高动态pcm/fm信号模型的信号传输方法及信号模型模拟方法 | |
CN102142835B (zh) | 相位数字化装置及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |