第21节 国产安路FPGA 异步串口通讯UART原理说明

本文介绍了FPGA中UART串口通信的基本原理,包括发送端和接收端的工作机制,异步通信方式、波特率、起始位、数据位、奇偶校验和停止位的作用。同时提到在FPGA开发中,串口实现形式多样,下文将探讨国产安路FPGA的串口代码讲解。
摘要由CSDN通过智能技术生成

        通常FPGA的异步串口通讯的应用是比较常见的通讯方式,比较常见的RS485通讯,RS422通讯,RS232总线通讯也常使用串口通讯格式,在一些MCU控制器中会有这样的外设,但是MCU由于硬件资源固定,UART的外设数量是有限的,MCU的使用过程当中使用多数量的外设通讯也会占用一定的MCU处理性能,但是FPGA具备灵活和并发的优势。在FPGA中UART的使用也是比较重要的,这一节主要介绍UART的原理。

        一、UART串口原理说明

        UART作为异步串口通信协议的一种,其基本原理是通过数据线上传输二进制数据位。UART通信系统主要由发送端和接收端两部分组成,它们之间通过数据线进行数据传输。发送端将待发送的数据转换为并行信号,然后通过驱动电路将并行信号转换为串行信号,并通过发送电路将串行信号发送到数据线上。接收端则通过接收电路将数据线上的信号还原为并行信号,再通过解码电路将并行信号转换为原始数据位。

        UART通信采用异步通信方式,即发送端和接收端之间通过数据线进行数据传输。在异步通信中,发送端和接收端不需要同时处于激活状态,而是通过起始位和停止位来标识数据帧的开始和结束。具体来说,当发送端产生起始位后,发送一个数据位;然后等待接收端的起始位,如果接收到起始位,则继续发送下一个数据位;如果没有接收到起始位,则认为数据帧传输失败。同样,当接收端产生停止位后,发送一个校验位;然后等待发送端的停止位,如果接收到停止位,则认为数据帧传输成功。

        数据传输速率以波特率表示,即每秒传输的位数。例如,如果数据传输速率为120个字符/秒,每个字符为10位(1个起始位,7个数据位,1个校验位,1个停止位),则其传输的波特率为10×120 = 1200个字符/秒= 1200波特。如下图所示:

起始位:每次通信开始时,发送方都会发送一个逻辑“0”信号(VOL),指示传输字符的开始。由于总线在空闲时处于高电平,因此在开始通信时首先发送与空闲状态明显不同的信号,即VOL。 

数据位:起始位之后是我们要传输的数据。数据位可以是 5、6、7、8、9 位等。形成一个字符(通常为 8 位)。如 ASCII 码(7 位)和扩展 BCD 码(8 位)。最低位先发送,最高位最后发送。使用低电平表示“0”,使用高电平表示“1”以完成数据位的传输。

奇偶校验位:将此位添加到数据位后,“1”位的位数应为偶数(偶数奇偶校验)或奇数(奇偶奇偶校验),以验证数据传输的正确性。校验位其实就是调整号,

串口校验分为几种方式:

无奇偶校验

奇偶校验:如果数据位中“1”的数字是偶数,则奇偶校验位为“1”,如果“1”的数字为奇数,则奇偶校验位为“0”。偶数奇偶校验:如果数据中“1”的数字是偶数,则奇偶校验位为“0”,如果是奇数,则奇偶校验位为“1”。

停止位:它是字符数据的结束标记。它可以是 1 位、1.5 位或 2 位 VOH。由于数据是在传输线上定时的,并且每个设备都有自己的时钟,因此在通信中两个设备之间很可能会出现小的不同步。因此,停止位不仅指示传输结束,而且还为计算机提供了校正时钟的机会。停止位越多,数据传输越稳定,但数据传输速度越慢。

        二、总结

        本节主要介绍串口通讯原理,在我开发的经历当中,串口的应用在FPGA中代码实现的方式也有很多种形式,有的形式编码非常简单但是理解起来相对复杂,有的形式编码稍有复杂但是理解起来比较简单,但是实现的功能都是一样的。下一节主要介绍国产安路FPGA的串口UART代码讲解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wave&fpga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值