OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8397|回复: 1

6翻了!UART的verilog实现,附带完整源码

[复制链接]

15

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2018-3-7
在线时间
11 小时
发表于 2018-4-21 16:59:19 | 显示全部楼层 |阅读模式
转载自微信公众号“玩儿转FPGA”
原文链接:https://mp.weixin.qq.com/s/Aiq7ahzysLP5mLqdLyMI8Q
什么是UART?
     通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作   UART,是一种异步收发传输器。是异步通信协议。
       特性:两根线,全双工,异步通信,速度较慢。
什么是RS232?
     RS232是物理层的电气接口要求。是一种接口标准。uart可以使用rs232物理层来通信。总的来说,对于一项通信任务,通信协议可以使用UART协议,而UART协议可以通过COM端口来实现硬件连线,此协议下的传输方式可以选用RS232或者RS485等。
电路上的USB转串口一般是:
什么叫线性序列机?
当知晓信号在每个时刻的改变情况,那么就可以用计数器去拟合信号变化,比如在cnt=5的时候信号变1了,cnt=8的时候信号变0;当然这是可以自定义的。
简单的测试逻辑(回环测试):
UART实现方式:状态机或者线性序列机。
    首先看看uart协议的数据格式:信号线上空闲的时候为高电平,当出现下跳到低电平的时候表示数据的起始位,接着的是低位在前高位在后的数据流,尾部可加奇偶校验位,最后加停止位,停止位长度可以定义。本例实现无奇偶校验位,1bit停止位,波特率可改变。
UART实现
编码实现:
波特率产生,波特率选择。波特率模块塞tx以及rx模块中了。rx中的采样时钟要比波特率时钟快16倍,实现在数据中间采样,避免采到错误的数据。
什么叫波特率?
9600bps/s:表示1s信号可以传输9600bit的数据。
波特率与FPGA时钟关系:
总计数等于系统频率除以波特率。比如50m/9600=5208;

大家看了源码可能很蒙,没关系,一个个always把他当做电路去看待,每个always都是一个小电路,把他拼起来就好啦。慢慢练习用电路的方式去看代码,成长会很快哦!
源码百度网盘链接:

作者:东哥
本公众号提供的FPGA
源码免费
下载



你可能还感兴趣


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2018-3-7
在线时间
11 小时
 楼主| 发表于 2018-7-2 21:20:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表