基于FPGA的RS232异步串行口IP核设计

网友投稿 270 2022-11-23

基于FPGA的RS232异步串行口IP核设计

1 引言

2 异步串行口模块设计与实现

2.1 UART结构

2.2 UART的帧格式

2.3 波特率时钟的控制

2.4 发送模块设计

发送模块分为空闲、载入数据、移位等3种模式。如图3所示。当并行8位数据从总线写入发送模块后,发送模块将并行数据装入锁存器thr中,然后在移位寄存器tsr中将数据移位,产生完整的发送序列(包括起始位,数据位,奇偶校验位和停止位),以相应波特率从tx发送。发送模块的输入时钟mclkx16是串行数据波特率的16倍,模块内部将其16分频后得到波特率时钟txclk。

发送模块部分VHDL程序如下:

2.5 接收模块设计

接收模块也分为空闲、检测起始位、移位等3种模式。如图4所示。首先捕捉起始位,在 mclkx16时钟下不断检测从rx端输入数据的起始位,当检测到起始位后,接收模块由空闲模式转换为移位模式,并且16分频mclkx16产生 rxclk波特率时钟。此时rxclk时钟的上升沿位于串行数据每一位的中间,这样接下来的数据在每一位的中点采样。然后由rxclk控制在上升沿将数据位写入移位寄存器rgr的rsr[7]位,并且rsr右移1位,依次将8位数据全部写入rsr,并且停止产生rxclk波特率时钟。判断奇偶校验、帧结构和溢出标志正确后,rsr寄存器中的数据写入rhr数据锁存寄存器中,最后由8位数据总线输出转换完成的数据。

接收模块部分VHDL程序如下:

4 结果分析

5 结束语

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:hadoop集群的启动与停止
下一篇:fireflyAIO-3399JLCD使用简介
相关文章

 发表评论

暂时没有评论,来抢沙发吧~