首页 > 编程知识 正文

uart波特率和时钟的计算(FPGA串口波特率计算)

时间:2023-05-03 17:04:59 阅读:121728 作者:588

:串行端口波特率等概念,115200等到底是什么意思

1 :比特率: 9600bps、115200bps

通过每秒传输9600bit、115200bit,每秒被分成9600等份。

9600 bps :每bit的时间为1/9600秒=104.1666666666666666666666666666666666667 us,约为0.1ms。 因为是9600等分。

在115200bps:中,每位的时间为1/115200秒=8.68us。

每1位接下一位,不存在多馀的间隔。 停止任何开始位、数据位或奇偶校验位的位。

2 :串行端口的数据帧格式、帧间隔。

设置在电脑中,也就是超级终端等端口。 电脑的默认端口设置、9600bps (即默认帧格式)为8个数据位、1个停止位、(前1位为必需)默认为无奇偶校验、无流控制。

所以实际上8 1 1=10bit是一帧。 每秒钟可以发送960位/秒10位960帧/秒,即960个字符。 因为每帧只有一个字符(英语),所以一个字符是帧内的八个数据比特。 (在ascii代码中,一个英文字节占一个字节的bit空间,一个中文字符占两个bit空间。 ) ) )。

将115200位/s :115200位/s10位=11520帧/s

3 :串行通信

串行端口当然是连续的,可以无时间间隔地发送帧。 默认情况下,电脑可以以9600bps的速度发送960帧。

然而,在实际工作中,异步通信通常需要交互过程,因此计算机发送一帧或多帧需要等待设备的响应,而不是总是发送。 听答案实现程序员的目标。

4 :波特率时钟

实际上是比特率时钟,是每1比特需要的时间周期。 波特率(实际上是比特率)生成器生成的分频时钟实际上是每1比特采样的时钟,是波特率时钟的16倍。

波特率发生器实质上是设计分频器,以产生与RS232通信同步的时钟。 系统中使用计数器实现该功能,分频系数n决定波特率的数值。 该计数器通常在高频率的系统时钟下操作,当计数到N/2时将输出设定为高电平,再计数到N/2的值后,将输出设定为低电平,从而依赖于所使用的系统时钟的频率和n的大小如果要求系统时钟频率为40MHz且波特率为9,600 [ ms1 ],则16倍波特率的时钟周期等于约260个系统时钟的周期,如果计数器为260/2=130,则计数为off

(liupeng )

40mhz晶体振动,最小计数脉冲为25ns,波特率16倍的频率为169600,其时钟周期为1/(169600 )=6.5us即输入40mhz晶体振动时,计数器计数=6500/25=260

9600波特率还可被理解为每秒计数9600个的入口时钟的频率,并且如果是16倍的波特率的时钟,则可直接乘以9600。 1秒计数960016=153600。

1/(960016 )除以)1/40000000 ),即时钟周期中除去最小时钟周期后的数值。 简单地说,4000000/(960016 )=260,即如果将频率直接除以,则得到分频计数器的计数。

[MS1]

40000000/960016=260.4

串行通信必须设定波特率,本设计采用的波特率为9,600 bit/s。 生成波特率的时钟频率越高越好,以便能够生成高且准确的波特率。 要选择50M的主频并生成9600位/秒的波特率,每传输一位数据需要5208.33个时钟周期。 取最近的数为5 208,波特率为9600.61,其误差约为0.006%,误码率低,可以确保通信正常。

(liupeng 50000000/5208=9600.61 )

5:误差允许范围

6 :分频系数

计数器容易分频。 可以通过lpm-counter实现。

例如,如果分频系数为2,则直接将q0用作输出即可。 如果分频系数为4,则q0、q1为有效比特。

总之,在n整数分频,即计数了n之后,清除重计数。 关于50%占空比另行考虑。 奇数分频似乎很难实现50%占空比

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。