转载自微信公众号“玩儿转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 源码免费 下载
你可能还感兴趣
|