UART学习之路(一)基本概念

第一篇博客,首先记录一下这一个多星期来的学习内容。

UART学习之路第一篇,是UART的基本概念介绍。后续会用STM32F407的串口与PC机通信。最后使用Verilog HDL写出串口发送模块和接收模块,完成仿真,在Zedboard板上完成通信。

首先先明确什么是UART,COM口,TTL,RS-232。

通用异步收发传送器(Universal Asynchronous Receiver/Transmitter, UART)有4个管脚分别为VCC,GND,TX,RX,电平标准为TTL电平。低电平为0,高电平(3.3V)为1。图片的左边四个接口就是串口,右边是USB接口。

VCC:UART的电源口,电压为3.3V;

GND:UART的地;

TX/TXD:UART的数据发射口;

RX/RXD:UART的数据接收口;

串行通讯端口(Cluster Communication Port, COM)为DB9或者DB25。电平标准为RS-232,低电平为+5~+12V,高电平为-12~-5V。电平接口的详细定义见下图。

扩展:

1.RS-485是将数据用负逻辑差分信号的形式传送的。+2V~+6V表示低电平,- 6V~- 2V表示高电平;

2.芯片上的某类引脚可以被设置为UART的RX和TX口。使用杜邦线将RX和TX与外设连接起来就可以实现信息传递,例如控制智能液晶屏(USART HMI);

3.UART转成COM口需要将TTL电平转换成RS-232电平,可以用芯片MAX232实现。

4.UART转成USB的电平需要使用PL2303芯片。

总结:

UART和COM是硬件上的接口方式,而TTL和RS-232规定了电平的标准。UART一般使用杜邦线将TX和RX与外设连接,而COM口则使用DB9与外设连接。对比两种连接方式,杜邦线是导线直接连接,在连接端一般有卡槽用来卡紧接口,

DB9自带锁紧螺钉,接口的扎实程度上DB9要好很多。但是杜邦线比较小巧和灵活,而DB9则要大很多。使用哪种硬件接口取决于当时的需求,而采用哪种电平标准则看从设备和主设备支持怎样的电平。所以重点在电平标准与需求的搭配。

补充:

通用同步/异步串行接收/发送器(Universal Synchronous/Asynchronous Receiver/Transmitter, USART)可以理解为UART的升级版本,在时钟上可以设置为同步时钟或者异步时钟。

下面来说一说串口发送中的几个概念,波特率、比特率、奇偶校验

波特率:在某通道下,每秒传送被定义的符号(symbol)的速率。也就是每秒调制状态变化的次数。单位是baud, symbol/s。

比特率:每秒传送的比特数,单位是bit/s。

奇偶校验:根据传送的一组二进制码中1的个数是奇数还是偶数来进行校验,采用奇数为标准就是奇校验,反之为偶校验。

举例子详细说明:

1.波特率和比特率

定义传送的符号为一个字节(8bit),如果每秒能传送240个字节,则波特率为240Baud。串口的通信速率为9600bit/s,则串口的波特率为9600/8=1200Baud。

2.奇偶校验

假设传送的一组数据为1100。以奇校验为例子,该组数据的1的个数为2个,则奇偶校验位是0。将数据以1100 0的形式发送,在接收端接收的数据为1101 0,此时数据为1101,奇偶校验位应该为1,而收到的奇偶校验位是0,因此说明数据错误。

原文地址:https://www.cnblogs.com/jaso0ns-blogs/p/9723052.html

时间: 2024-10-10 01:38:23

UART学习之路(一)基本概念的相关文章

Spark学习之路---Spark核心概念

Spark核心概念简介 一个Spark应用都由驱动器程序发起集群上的各种并发操作,一个驱动器程序一般包含多个执行器节点,驱动器程序通过一个SaprkContext对象访问saprk.RDD(弹性分布式数据集)----分布式的元素集合,RDD支持两种操作:转化操作.行动操作,如map.reduce函数.

Python 学习之路-基本的概念(三)

Python中一些经常用到的概念: 1.在Python中是没有常量的概念,换句话说在Python各种所有量都是可以更改的,规定将项定义为常量的量都定义为大写,eg:CONSTOF = "this is a const". 2.在Python中我们导入一个三方库可以在dos下输入 >>\user\administrator\pip install 库名 3.几个常用的库的语句 import os os.system("ipconfig")         

Python 学习之路-基本的概念(二)

之前在博客园里面写了一篇,地址http://www.cnblogs.com/yutianaiqingtian-sky/,但是在51cto里面混的比较久,所以还是想在51cto里面写出来,本次Python的学习主要是以alex的教程为主,然后希望一步一步的持之以恒的学下去,为入学做准备.这次主要是为了完成一个作业: 作业二:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 按照想法是先写出流程图然后编写自己的算法,但是实际上确有一些出路,虽然画流程图没有画很多的时间,但是最后编

UART学习之路(二)基本时序介绍

这次我们来介绍一下UART的基本时序,了解一下底层信号怎么传送的.方便以后使用Verilog HDL实现收发逻辑. 9600bit/s 的意思是每秒发送9600bit,因此可以理解为将1s分解为9600等分,对于发送端来说,每bit电平的维持时间是1/9600s,对于接收端来说,在1/9600s内要完成数据的采样.因此对于不同时间源的设备,如何实现这个发送"节拍"以及设置接收采样频率非常重要,即主从设备对各自主时钟(SCLK)的分频非常重要. UART的基本时序: 发送端 接收端 UA

我的汇编学习之路(2):主要术语和概念

对于不折不扣的汇编新手来说,第一部分中出现的很多概念可能不是很明白,于是我决定写更多有价值的文章.所以,让我们开始<我的汇编学习之路>的第二部分的学习. 术语和概念 当我写了第一篇之后,我从不同的读者那获得很多反馈,第一篇中有些部分不明白,这就是本文以及接下来几篇从一些术语的描述开始的原因. 寄存器(Register):寄存器是处理器内小容量的存储结构,处理器的主要功能是数据处理,处理器可以从内存中获得数据,但这是一种低速的操作,这就是为什么处理器为什么要有自己数据存储结构,称为"寄

osgi实战学习之路:3. osgi分层概念及相互合作demo

源代码下载 分层: modual: 主要作用于包级管理与共享代码 lifecycle: 主要作用于运行期间的模块管理与访问osgi底层框架 service: 主要作用于多模块之间的相互通信 demo: hello-provider/pom.xml <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.or

我的算法学习之路

关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口--况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的. 这篇文章讲了什么? 我这些年学习数据结构和算法的总结. 一些不错的算法书籍和教程. 算法的重要性. 初学 第一次接触数据结构是在大二下学期的数据结构课程.然而这门课程并没有让我入门--当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾--反正最后考试划个重点也能过,于是这门整个计算机专业本

类与对象的学习之路

---恢复内容开始--- 学习java也有一段时间了,这周踏上了类与对象的学习之路,回过头来总结一下类与对象的基本知识.之前在大一上就接触了Python语言跟C语言,现在开始学习java语言了.我觉得跟之前学的C语言还是有区别的,至于在java书中提及的C++没学习,听别人说C++跟java有点像,这两种编程语言都是面向对象的,并且编程语言本身之间都有很多相似相同的地方. 一.说说类与对象 说到面向对象,那么不得不提的就是类和对象了.Java代码是以类为单位的.在我看来,类就是一个模板,比如一个

Revit学习之路01_Revit基础

序言: 此分类记录自己的Revit学习之路.初学者难免一叶障目,不见泰山,欢迎一起交流学习! Revit介绍 Revit专为建筑信息模型(BIM)构建的一款建模软件.随着BIM概念在国内的兴起,各大设计院对Revit建模的需求增多,相关的基于Revit的二次开发也逐渐增多.具体介绍不在搬运. Revit是专为BIM构建的软件,了解Revit必须先了解BIM.BIM的概念不仅仅是二维图纸到三维模型的变化,BIM是一个信息管理和交互的平台.Revit既然作为专为BIM构建的软件,那么他就必须能够管理