当前位置: 首页 > article >正文

低速接口项目之串口Uart开发(一)——串口UART

在这里插入图片描述

本节目录

一、串口UART
二、串口协议
三、串口硬件
四、往期文章链接

本节内容

一、串口UART

串口UART,通用异步收发传输器(Universal Asynchronnous Receiver / Transmitter),一种异步收发传输器,全双工传输。数据发送时,将并行数据转换为串行数据;数据接收时,将接收到的串行数据转换成并行数据。包括了RS232、RS422、RS485等异步串行通信总线。
通常FPGA与电脑之间采用RS-232的串行数据通信接口标准,也就是计算机串行接口,显示COMX等,可以采取拔插串口的操作,通过在PC电脑的设备管理器下查看新增的串口COM,在上位机上进行连接。此种方式是为了解决调试电脑上存在多个串口,如何在上位机成功连接与FPGA相连的串口。
在这里插入图片描述

通常上位机,需要对串口进行配置,通过刷新实现串口名的更新,PC上位机要与FPGA保持一致的波特率,是否支持校验等等。常见的设置包括数据位数、波特率大小、奇偶校验类型和停止位数。
数据位(Data bits):该参数定义单个UART数据传输在开始到停止期间发送的数据位数。可选择为 5、6、7、8 位,其中 8 位数据位是最常用的,在实际应用中一般都选择 8 位数据位。
波特率(Baud):是指从一设备发到另一设备的波特率,即每秒钟可以通信的数据比特个数。典型的波特率有300, 1200, 2400, 9600, 19200, 115200等。通信两端设备都要设为相同的波特率。
奇偶校验类型(Parity Type):是用来验证数据的正确性。奇偶校验一般不使用,如果使用,则既可以做奇校验(Odd)也可以做偶校验(Even)。在偶校验中,因为奇偶校验位会被相应的置 1 或 0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误,如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误,要么发生了偶数个的错误。如果用户选择数据长度为 8 位,则因为没有多余的比特可被用来作为奇偶校验位,因此叫“无奇偶校验(Non)”。
停止位(Stop bits):在每个字节的数据位发送完成之后,发送停止位,来标志着一次数据传输完成,同时用来帮助接受信号方硬件重同步。可选择为:1(默认)、1.5或者2位。

二、串口协议

发送端按照预先设定好的波特率,发送起始位(Start)+数据位(data)+奇偶校验位+结束位。其中,起始位为逻辑 0,结束位为逻辑 1,发送端在空闲状态为 1。
在这里插入图片描述

在 RS-232 标准中,最常用的配置是八个数据位+无奇偶校验+一个停止位,按照一个完整的字节包括一位起始位、8 位数据位、一位停止位即总共十位数据来算,要想完整的实现这十位数据的发送,就需要 11个波特率时钟脉冲,第 1 个脉冲标记一次传输的起始,第 11 个脉冲标记一次传输的结束。
在这里插入图片描述

三、串口硬件

UART 串口通信需要两根信号线来实现,一根用于串口发送,另外一根负责串口接收。PC电脑端通常都是Usb接口,这中间就需要一个串口芯片进行转换,比如CH340、CP2102等。
在这里插入图片描述

一个CH340的转换模块,淘宝上也就5块钱左右,用于FPGA和PC之间的调试很方便。
在这里插入图片描述

四、往期文章链接

UltraScale+FPGA中Serdes的多lane对齐异常解决方案
vivado时序报告中slack是如何计算的?如何优化时序?
UltraScale+FPGA中GTY的TX路径时钟详解——以40G的ETH MAC IP为例
vivado时序优化——约束异步时钟组set_clock_groups
基于FDMA和AXI4接口的DDR4遍历读写测试
基于fpga的图像处理之3x3_5x5算子模板设计
基于fpga的图像处理之3x3_5x5算子模板中值排序
基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)
AXI协议之AXILite开发设计(一)
AXI协议之AXILite开发设计(二)
AXI协议之AXILite开发设计(三)
AXI协议之AXILite开发设计(四)
AXI协议之AXILite开发设计(五)
FPGA和Matlab的FFT功能验证(一)
FPGA和Matlab的FFT功能验证(二)
FPGA和Matlab的FFT功能验证(三)
跟小灰灰一起学vivado:7系列FPGA的MultiBoot和Fallback功能更新固件
跟小灰灰一起学vivado:7系列FPGA配置模式之配置数据文件格式和配置时序步骤
跟小灰灰一起学vivado:7系列FPGA配置模式之主SPI四路(x4)
跟小灰灰一起学vivado:PCIe XDMA实现远程更新FPGA固件
Xilinx UltraScale+DDR4项目开发(一)——DDR4 MIG的ip接口信号

Xilinx UltraScale+DDR4项目开发(二)——DDR4 MIG的时钟网络
Xilinx UltraScale+DDR4项目开发(三)——DDR4器件选型与MIG IP的配置
低速接口项目之串口Uart开发(一)——串口UART
低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试
低速接口项目之串口Uart开发(三)——串口发送模块和接收模块
低速接口项目之串口Uart开发(四)——UART串口实现FPGA内部AXILITE寄存器的读写控制
低速接口项目之串口Uart开发(五)——QT实现Uart串口寄存器读写工具
低速接口项目之串口Uart开发(六)——zynq系列ps-pl端uart实现共享Axilite内部寄存器的读写
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
低速接口项目之串口Uart开发(八)——如何通过ps侧的串口实现zynq的在线升级(一)
低速接口项目之串口Uart开发(九)——如何通过ps侧的串口实现zynq的在线升级(二)
低速接口项目之串口Uart开发(十)——基于EMIO的自定义PL串口实现zynq的在线升级


http://www.kler.cn/a/403305.html

相关文章:

  • Oracle 19C 安装RAC磁盘投票失败
  • 实验室管理效率提升:Spring Boot技术的力量
  • 设计模式之 享元模式
  • Java Swing-1.基本概念及组件
  • C/C++精品项目之图床共享云存储(8):将项目最后变成多线程
  • 【软考】系统架构设计师-计算机系统基础(4):计算机网络
  • 物联网中基于MQTT协议的EMQX代理的实现与分析
  • MySQL 死锁
  • Linux移植IMX6ULL记录 一:编译源码并支持能顺利进入linux
  • 【Git】工作区、暂存区和版本库
  • 单元测试框架gtest学习(三)—— 事件机制
  • 解决 npm xxx was blocked, reason: xx bad guy, steal env and delete files
  • PW系列工控电脑复制机:效率与精度双重提升
  • 2.7 以太网的 MAC 层
  • 【动手学深度学习Pytorch】2. Softmax回归代码
  • [Unity] 【游戏开发】Unity开发基础1-创建Unity项目:从Unity Hub选择合适的渲染管
  • Unity资源包导入与导出
  • node.js中express的基本了解
  • Eclipse 查找功能深度解析
  • 安卓CameraX的使用
  • C#里实现日期比较
  • 重构代码之删除对参数的赋值
  • Aws云服务使用场景和优势在哪里
  • android中webview加载图片使用的图片资源代理
  • mysql日志写满出现The table ‘xxxx_amazon_order’ is full
  • 高级网络安全——IP 安全(week5)