UART 接口

UART 接口

    • 1. UART 协议原理与编程
      • 1.1 UART 简介
      • 1.2 UART 帧格式
      • 1.3 UART 缺点
      • 1.4 Verilog 代码
    • 2. RS232、RS485 协议原理
      • 2.1 RS232 协议简介
        • 2.1.1 RS232 接口
        • 2.1.2 RS232 信号
        • 2.1.3 RS232 缺点
      • 2.2 RS485
        • 2.2.1 RS485协议简介
        • 2.2.2 RS458 信号
        • 2.2.3 RS458 接口
        • 2.2.4 RS485 优点

1. UART 协议原理与编程

1.1 UART 简介

UARTUniversal Asynchronous Receiver Transmitter 即通用异步收发器,是一种通用的串行异步通信总线该总线有两条数据线,可以实现全双工的发送和接收在嵌入式系统中常用于主机与辅助设备之间的通信。

比特率:每秒传输的比特的数量

波特率:每秒发送的符号(baund)数量

当一个符号只包含两种可能,即一个事件两种可能,那么此时的波特率等于比特率。

  • 确定收到几位数据是通过波特率来数的
  • 串口发送不允许一次发送多个字节, 为了防止累计误差的出现,一旦出现一位错误,后续全错

1.2 UART 帧格式

在这里插入图片描述

  • 起始位:发送1位逻辑0(低电平),开始传输数据。
  • 数据位:可以是5-8位的数据,先发低位,再发高位,一般常见的就是8位(1个字节),其他的如7位的ASCII码。
  • 校验位:奇偶校验,将数据位加上校验位,1的位数为偶数(偶校验) ,1的位数为奇数(奇校
    验)。
  • 停止位:停止位是数据传输结束的标志,可以是1/1.5/2位的逻辑1(高电平)。
  • 空闲位:空闲时数据线为高电平状态,代表无数据传输。

1.3 UART 缺点

  1. 电气接口不统一

    • UART只是对信号的时序进行了定义,而未定义接口的电气特性

    • UART通信时一般直接使用**处理器使用的电平,即TTL电平,**但不同的处理器使用的电平存在差异,所以不同的处理器使用UART通信时一般不能直接相连;

    • UART没有规定不同器件连接时连接器的标准,所以不同器件之间通过UART通信时连接很不方便;

  2. 抗干扰能力差

    UART一般直接使用TTL信号来表示0和1,但TTL信号的抗干扰能力较差,数据在传输过程中很容易出错

  3. 通信距离极短

    因为TTL信号的抗干扰能力较差,所以其通信距离也很短,一般只能用于一个电路板上的两个不芯片之间的通信

1.4 Verilog 代码

常用的波特率标准有:

  • 1200 bps
  • 9600 bps (常用)
  • 38400 bps
  • 115200 bps (常用,而且通常情况下能用的最快的波特率)

波特率为115200bps 时,每个bit需要 (1/115200)=8.7us,在不考虑奇偶校验位的情况下,发送一个字节还需要发送额外的1个起始位和1个停止位,所以发送1个字节实际所需要的最少时间是10*8.7us=87us,这意味着1s(1000000us)中能发送的字节数为 (1000000/87)=11494,所以在波特率为115200bps的情况下,串口传输数据的速率约为11.5KB/S。而有些电脑的串口有时候需要一个更长的停止位,比如1.5位或2位的停止位,那么发送一个字节所需要的时间比只有一个比特停止位的情况所耗费的时间更长,在这种情况下,串口的传输速率会低于10.5KB/S。

通过上面一系列的总结以后,可以得出FPGA与PC之间的串口通信主要包括三个模块:波特率产生模块、发射模块和接收模块

2. RS232、RS485 协议原理

RS232 和 RS485 协议是基于串口,收发时序和串口一样,只是在电气上加以规定,让传输距离更远,抗干扰能力更强。

2.1 RS232 协议简介

RS232协议是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家、计算机终端生产厂家共同制定的用于串行通讯的标准;该标准规定采用一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定

2.1.1 RS232 接口

标准规定采用一个25引脚的DB-25连接器,标准中对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定;后来IBM的PC机将RS232简化成了DB-9连接器,后来成为事实标准;现在工业控制的RS-232接口一般只使用RXD(PIN2)、TXD(PIN3)、GND(PIN5)三条线

在这里插入图片描述

2.1.2 RS232 信号

该标准规定逻辑 “1” 的电平为 -5v 到 -15v,逻辑 “0” 的电平为 +5v 到 +15v,选用该电气标准的目的在于提高抗干扰能力,增大通信距离,其传送距离一般可达15m;

  • 电平转换:虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS232标准的信号,所以一般我们还需要在处理器外部去添加电路对信号的电平进行转换;
2.1.3 RS232 缺点
  • 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接
  • 通信速度较低
  • 易产生共模干扰,抗噪声干扰性弱
  • 传输距离较短(15m)

2.2 RS485

2.2.1 RS485协议简介

该标准由电信行业协会和电子工业联盟定义;使用该标准的通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号;该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。

2.2.2 RS458 信号

RS485标准规定采用差分信号进行数据传输,两线间的电压差为 +2v 到 +6v 表示逻辑 “1”,两线间的电压差为 -2v 到 -6v 表示逻辑 “0” ;使用差分信号能有效地减少噪声信号的干扰,延长通信距离, RS485的通信距离可以达到1500m; RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。

2.2.3 RS458 接口

RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上可以同时存在多个节点;
因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理

  • 电平转换:虽然很多处理器中都会集成UART控制器,但处理器产生的信号一般都是TTL信号并不是符合RS485标准的信号,所以一般我们还需要在处理器外部去添加电路将TTL信号转换成差分信号;
2.2.4 RS485 优点
  • 接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可方便地与TTL电路连接;
  • 通信速度快;
  • 抗噪声干扰性强;
  • 传输距离较远(1500m);
  • 可实现多节点组网.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cocos Creator 3.8.x 制作模糊效果(比如游戏弹窗需要的模糊效果)

接着上一个讨论的话题,关于3.8.x的后效,今天来分享自定义后效来制作模糊效果,并将他应用到弹窗中做背景,话不多说开整。 一:最终效果 首先咱们来看官网自定义后效怎么搞的,从它的实例开始:自定义后效 二:定义PostProcessSettings给节点提供资源(通过编辑器修改参数的…

搭建Zabbix监控系统

简介 在企业网络运维过程中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题.尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便、快捷地获得各种监控信息,通常会借助于一些集中监测软件。 一…

FISCO BCOS区块链平台上的智能合约压力测试指南

引言 在当今的分布式系统中,区块链技术因其去中心化、安全性和透明性而备受关注。随着区块链应用的不断扩展,对其性能和稳定性的要求也越来越高。因此,对区块链网络进行压力测试显得尤为重要。 目录 引言 1. 配置FISCO BCOS节点 2. 安装和…

Windows安装MySQL详细教程

1.1 下载MySQL压缩包 官网下载链接[点击跳转] 按图中选择,然后点击【Download】 点击图中箭头所指方向直接下载 1.2 解压下载好的压缩包后找到【bin】文件夹,并记下文件路径(下文将以路径 D:\mysql-8.0.36-winx64\bin 为例) 1.…

【Python】成功解决TypeError: ‘int‘ object is not iterable

【Python】成功解决TypeError: ‘int’ object is not iterable 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到…

SmartX 携手 openGauss 社区发布联合方案评测与性能最佳实践 | 附优化方法与测试数据

近日,北京志凌海纳科技有限公司(以下简称 “SmartX”)携手 openGauss 社区完成了 openGauss 数据库基于 SmartX 超融合平台(SMTX OS)和 SmartX 分布式存储平台(SMTX ZBS)的性能测试和调优。 结…

Python-sklearn-LinearRegression

目录 1 手动实现/使用sklearn实现线性回归训练 1.1 单特征线性回归(One Feature) 1.2 多特征线性回归(Multiple Features) 1.3 多项式线性回归(Polynomial) 1 手动实现/使用sklearn实现线性回归训练 1…

flowable的java class task,也叫服务任务

源码地址12级程序猿-新年正当红/flowable-ui和服务任务 启动flowable-ui-app 浏览器输入下面的地址 http://localhost:8080/flowable-ui/#/ 在服务任务这里设置java类的路径 com.dmg.flowabledemo.task.MyServiceTask 当请假任务完成之后,自动触发这个服务任务…

Android开发社招面试总结,Android程序员面试必备的知识点

导语 学历永远是横在我们进人大厂的一道门槛,好像无论怎么努力,总能被那些985,211 按在地上摩擦! 不仅要被“他们”看不起,在HR挑选简历,学历这块就直接被刷下去了,连证明自己的机会也没有,学…

关于Java并发多线程的一点思考

写在开头 在过去的2023年双11活动中,天猫的累计访问人次达到了8亿,京东超60个品牌销售破10亿,直播观看人数3.0亿人次,订单支付频率1分钟之内可达百万级峰值,这样的瞬间高并发活动,给服务端带来的冲击可想而…

HplusAdmin ASP.NET基本权限管理系统

HplusAdmin 介绍 一套ASP.NET WebForm(不用控件) hplusasp.netsqlserver 基本权限管理系统 http://hplus.baocaige.top 暂不开源,需要的滴滴或者留下邮箱!!! 账号 普通账号 账号:user 密码:Aa123456普…

swagger在java中的基本使用

自动生成接口文档&#xff0c;和在线接口测试的框架。 导入依赖 <!-- knife4j对swagger进行一个封装--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><versi…

阻塞队列、生产者消费者模型、阻塞队列的模拟实现等干货

文章目录 &#x1f490;生产者消费者模型&#x1f490;模拟实现阻塞队列&#x1f4a1;注意点一&#x1f4a1;注意点二 阻塞队列是一种“特殊”的数据结构&#xff0c;但是也遵循队列的“先进先出”特性&#xff0c;它的特殊在于&#xff1a; 阻塞队列的两个特性&#xff1a; 1…

【C++入门】引用

目录 6.引用 6.1引用概念 6.2引用的写法 6.3引用的特性 6.4常引用 6.5引用的使用场景 6.5.1引用做参数 6.5.2引用做返回值❗❗ &#x1f387;值做返回值 &#x1f387;引用做返回值 &#x1f387;引用在顺序表做返回值 6.5.3传值、传引用效率比较(参数&#xff0…

【OpenGL的着色器03】内置变量和函数(gl_Position等)

目录 一、说明 二、着色器的变量 2.1 着色器变量 2.2 着色器内置变量 三、最常见内置变量使用范例 3.1 常见着色器变量 3.2 示例1&#xff1a; gl_PointSize 3.3 示例2&#xff1a;gl_Position 3.4 gl_FragColor 3.5 渲染点片元坐标gl_PointCoord 3.6 gl_PointCoo…

Android Gradle开发与应用 (三) : Groovy语法概念与闭包

1. Groovy介绍 Groovy是一种基于Java平台的动态编程语言&#xff0c;与Java是完全兼容&#xff0c;除此之外有很多的语法糖来方便我们开发。Groovy代码能够直接运行在Java虚拟机&#xff08;JVM&#xff09;上&#xff0c;也可以被编译成Java字节码文件。 以下是Groovy的一些…

图像处理与视觉感知---期末复习重点(1)

文章目录 一、概述二、图像处理基础2.1 视觉感知要素2.2 像素间的一些基本关系2.2.1 相邻像素2.2.2 连通性2.2.3 距离度量 2.3 基本坐标变换2.4 空间变换与灰度值 一、概述 1. 图像的概念及分类。  图像是用各种观测系统以不同形式和手段观测客观世界而获得的、可以直接或间接…

nodejs版本管理工具nvm安装和环境变量配置

1、下载nvm.exe https://github.com/coreybutler/nvm-windows/releases2、安装 1.在D盘根目录新建一个dev文件夹&#xff0c;在dev里面再新建一个nodejs。 2.双击下载好的nvm.exe 修改文件路径&#xff0c;且路径中不能有中文 3.安装完成后在D:\dev\nvm打开settings.txt&…

kerberos学习系列一:原理

1、简介 Kerberos 一词来源于古希腊神话中的 Cerberus —— 守护地狱之门的三头犬。 Kerberos 是一种基于加密 Ticket 的身份认证协议。Kerberos 主要由三个部分组成&#xff1a;Key Distribution Center (即KDC)、Client 和 Service。 优势&#xff1a; 密码无需进行网络传…

Docker数据卷篇

1. 数据卷&#xff08;容器数据管理&#xff09; 引言&#xff1a;在之前的nginx案例中&#xff0c;修改nginx的html页面时&#xff0c;需要进入nginx内部。并且因为没有编辑器&#xff0c;修改文件也很麻烦。 这就是因为容器与数据&#xff08;容器内文件&#xff09;耦合带…