UART学习之路(一)基本概念
第一篇博客,首先记录一下这一个多星期来的学习内容。
UART学习之路第一篇,是UART的基本概念介绍。后续会用STM32F103的串口与PC机通信。最后使用Verilog HDL写出串口发送模块和接收模块,完成仿真,在ZedBoard板上完成通信。
首先明确什么是UART,COM口,TTL,RS-232。
通用异步收发传送器(Universal Asynchronous Receiver/Transmitter, UART)有4个管脚分别为VCC,GND,TX,RX,电平标准为TTL电平。低电平为0,高电平(3.3V)为1。左图为UART转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的升级版本,在时钟上可以设置为同步时钟或者异步时钟。但在使用USART的时候一般是作为UART使用的。
波特率、比特率和奇偶校验
1.波特率:在某通道下,每秒传送被定义的符号(symbol)的速率。也就是每秒调制状态变化的次数。单位是baud, symbol/s。
2.比特率:每秒传送的比特数,单位是bit/s。
3.奇偶校验:根据传送的一组二进制码中1的个数是奇数还是偶数来进行校验,采用奇数为标准就是奇校验,反之为偶校验。
举例子详细说明:
1.波特率和比特率
定义传送的符号为一个字节(8bit),如果每秒能传送240个字节,则波特率为240Baud。串口的比特率为9600bit/s,则串口的波特率为9600/8=1200Baud。如果定义传送的的符号为一个比特(1bit),如果每秒能传送9600个bit,则波特率为9600Baud,而比特率是9600bit/s。
2.奇偶校验
假设传送的一组数据为1100。以奇校验为例子,该组数据的1的个数为2个,则奇偶校验位是0。将数据以1100 0的形式发送,在接收端接收的数据为1101 0,此时数据为1101,奇偶校验位应该为1,而收到的奇偶校验位是0,因此说明数据错误。
UART学习之路(一)基本概念的更多相关文章
- UART学习之路(四)VerilogHDL实现的简单UART,VIVADO下完成仿真
用VerilogHDL实现UART并完成仿真就算是对UART整个技术有了全面的理解,同时也算是Verilog入门了.整个UART分为3部分完成,发送模块(Transmitter),接收模块(Recei ...
- UART学习之路(三)基于STM32F103的USART实验
关于STM32串口的资料可以在RM0008 Reference Manual中找到,有中文版的资料.STM32F103支持5个串口,选取USART1用来实验,其对应的IO口为PA9和PA10.这次的实 ...
- UART学习之路(二)基本时序介绍
这次我们来介绍一下UART的基本时序,了解一下底层信号怎么传送的.方便以后使用Verilog HDL实现收发逻辑. 9600bit/s 的意思是每秒发送9600bit,因此可以理解为将1s分解为960 ...
- spring源码学习之路---AOP初探(六)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近工作很忙,但当初打算学习 ...
- Linux内核学习之路
每当学习到一定阶段自己觉得还行时,就会搜一些别人的文章. 这篇文章是原作者14年3月写的.转过来与自己共勉.学习累了就换着学也挺好 原文: 现在回首看看,接触Linux已经很长时间了. 在大三的时候开 ...
- OpenGL学习之路(一)
1 引子 虽然是计算机科班出身,但从小对几何方面的东西就不太感冒,空间想象能力也较差,所以从本科到研究生,基本没接触过<计算机图形学>.为什么说基本没学过呢?因为好奇(尤其是惊叹于三维游戏 ...
- [EntLib]微软企业库5.0 学习之路——第一步、基本入门
话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...
- WPF学习之路初识
WPF学习之路初识 WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...
- 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)
初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...
随机推荐
- 沉淀再出发:spring boot的理解
沉淀再出发:spring boot的理解 一.前言 关于spring boot,我们肯定听过了很多遍了,其实最本质的东西就是COC(convention over configuration),将各种 ...
- scala当中的文件操作和网络请求
1.读取文件当中每一行的数据 def main(args: Array[String]): Unit = { //注意文件的编码格式,如果编码格式不对,那么读取报错 val file: Buffere ...
- WinRAR(5.21)-0day漏洞-始末分析
0x00 前言 上月底,WinRAR 5.21被曝出代码执行漏洞,Vulnerability Lab将此漏洞评为高危级,危险系数定为9(满分为10),与此同时安全研究人员Mohammad Reza E ...
- 怎么在Linux环境下通过VS Code调试Python 3+?
今天突然想写一写Python了,于是就开始弄.使用源码包安装好Python3.6.6之后,发现Linux下只能通过python3来调用python 3.6.6.如果直接使用python的话,调用的是系 ...
- BZOJ 1192 鬼谷子的钱袋 找规律
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1192 题目大意: 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向 ...
- 网络Socket编程(简易qq实现之C/S通信1)
1. 目标:实现两个用户之间的通信,利用的是简单的Socket知识以及简略界面 2. 界面:分为客户端与服务器端(如下图) 3. 基本功能:客户端先向服务器端发送一个消息,这样就可以让客户端与服务器端 ...
- (六)Linux下的压缩命令
======================================================================================== .zip格式的压缩和解 ...
- BZOJ3175:[TJOI2013]攻击装置(二分图最大独立集)
Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2), ...
- [CTSC2018]假面
题目 先来考虑一下第一问,血量有\(P\)的概率减\(1\) 由于我们最后需要求每一个人的期望血量,于是考虑维护出每个人处于不同血量时候的概率 一个简单\(dp\)即可 \[dp_{i,j}=dp_{ ...
- 子查询 SQL
SELECT *,(SELECT COUNT(*) FROM yd_order o WHERE FROM_UNIXTIME(o.`ctime`,'%Y-%m')='2016-06' AND o.uid ...