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监控系统

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

【力扣经典面试题】12. 整数转罗马数字

一、题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

深入理解 C# 中的 Task:异步编程的利器

深入理解 C# 中的 Task:异步编程的利器 前言一、Task 的基本概念什么是 Task?为什么要使用 Task? Task 的使用方法创建 Task等待 Task 完成Task 返回结果 Task 的进阶用法Task 异常处理Task 同步执行Task 并发限制 Task 的实际应用场景并行计…

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…

numpyNaN

numpyNaN nan(NAN,Nan):not a number表示不是一个数字 什么时候numpy中会出现nan: 当我们读取本地的文件为float的时候,如果有缺失,就会出现nan当做了一个不合适的计算的时候(比如无穷大(inf)减去无穷大) inf(-inf,inf):infinity,inf表示…

JavaScript-1 (forEach方法)

--输出语句 document.write(文档输出内容) alert(警告对话框) console.log(控制台打印) --输入语句 prompt(请输入姓名:) JavaScript的书写位置 1.内联JavaScript <button onclick"alert(hello world!)">点击我</button> <button> 标签: …

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

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

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

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

synchronized 五连问

什么是synchronized? synchronized 是Java中用于实现线程同步的关键字&#xff0c;它可以确保多个线程在访问共享资源时不会发生冲突。 synchronized 关键字的一些主要用法? 修饰方法&#xff1a;当 synchronized 用于修饰方法时&#xff0c;它会将该方法变成同步方法&#…

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

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

什么职业适合报考CISP证书

CISP认证是当前中国信息安全行业中最主流、最专业的证书之一&#xff0c;具有很高的含金量。 那么&#xff0c;CISP认证的含金量高吗?哪些职位需要获得CISP证书?作为国家认证证书&#xff0c;CISP认证&#xff0c;当然&#xff0c;含金量&#xff0c;到底是多么高的含金量&a…

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

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

运维随录实战(10)之上传Maven私服

1,通过第三方仓库(sonatype ossrh)上传,首先在官网注册账号: Loading... 2,新建issue 3,按照评论要求进行代码建立等 4,安装gpg,地址:Gpg4win - Download Gpg4win 相关命令: gpg --version 查看版本(是否安装成功) gpg --gen-key 生成公钥 gpg --keyserver hk…

swagger在java中的基本使用

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

UE Snap01

获取指定文件目录下的所有文件 TArray<FString> LoadFilesPathFromDir(const FString& DirPath) {IFileManager& FileManager IFileManager::Get();TArray<FString> FilesPath;if (FileManager.DirectoryExists(*DirPath)){FileManager.FindFiles(FilesP…