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

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学习之路(一)基本概念的更多相关文章

  1. UART学习之路(四)VerilogHDL实现的简单UART,VIVADO下完成仿真

    用VerilogHDL实现UART并完成仿真就算是对UART整个技术有了全面的理解,同时也算是Verilog入门了.整个UART分为3部分完成,发送模块(Transmitter),接收模块(Recei ...

  2. UART学习之路(三)基于STM32F103的USART实验

    关于STM32串口的资料可以在RM0008 Reference Manual中找到,有中文版的资料.STM32F103支持5个串口,选取USART1用来实验,其对应的IO口为PA9和PA10.这次的实 ...

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

    这次我们来介绍一下UART的基本时序,了解一下底层信号怎么传送的.方便以后使用Verilog HDL实现收发逻辑. 9600bit/s 的意思是每秒发送9600bit,因此可以理解为将1s分解为960 ...

  4. spring源码学习之路---AOP初探(六)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近工作很忙,但当初打算学习 ...

  5. Linux内核学习之路

    每当学习到一定阶段自己觉得还行时,就会搜一些别人的文章. 这篇文章是原作者14年3月写的.转过来与自己共勉.学习累了就换着学也挺好 原文: 现在回首看看,接触Linux已经很长时间了. 在大三的时候开 ...

  6. OpenGL学习之路(一)

    1 引子 虽然是计算机科班出身,但从小对几何方面的东西就不太感冒,空间想象能力也较差,所以从本科到研究生,基本没接触过<计算机图形学>.为什么说基本没学过呢?因为好奇(尤其是惊叹于三维游戏 ...

  7. [EntLib]微软企业库5.0 学习之路——第一步、基本入门

    话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...

  8. WPF学习之路初识

    WPF学习之路初识   WPF 介绍 .NET Framework 4 .NET Framework 3.5 .NET Framework 3.0 Windows Presentation Found ...

  9. 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

    初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...

随机推荐

  1. oracle sql练习 菜鸟入门!

    进入公司 ,首先是进行SQL培训 一下是针对oracle的emp与dept表进行的基础查询 --1.选择部门30中的所有员工: ; --2.列出所有办事员(CLERK)的姓名,编号和部门编号: sel ...

  2. 沉淀再出发:使用python进行机器学习

    沉淀再出发:使用python进行机器学习 一.前言 使用python进行学习运算和机器学习是非常方便的,因为其中有很多的库函数可以使用,同样的python自身语言的特点也非常利于程序的编写和使用. 二 ...

  3. docker 17.09.0-ce 启动更换网络地址

    一.环境准备 环境1 台虚拟机,系统为centos7 二.17.09.0-ce 安装 卸载安装的所有Docker组件 在 Docker17.03.0-ce 版本中,与在 Docker 1.12 中引入 ...

  4. [EffectiveC++]item02:尽量以const,enum,inline代替#define

  5. C++计算器项目的初始部分

    作业代码 https://github.com/How-Come/object-oriented/tree/master/Calculator 一.解题思路 1.Scan类 这次题目的难点在于如何将输 ...

  6. UVa 12230 - Crossing Rivers(数学期望)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. 【[USACO08JAN]haybale猜测Haybale Guessing】

    抄题解.jpg 完全完全不会啊,这道题简直太神了 不过抄题解可真开心 首先这道题目保证了每一个位置上的数都是不同的,那么就能得到第一种判断不合法的方式 如果两个区间的最小值一样,但是两个区间的交集为空 ...

  8. showDoc项目文档管理工具

    1:下载showdoc代码文件 https://github.com/star7th/showdoc https://www.showdoc.cc/help?page_id=14 官方帮助文档 2:安 ...

  9. 2、RabbitMQ-simplest thing(简单队列)

    1.项目准备: 使用maven的依赖 <dependencies> <dependency> <groupId>com.rabbitmq</groupId&g ...

  10. Kali-linux Arpspoof工具

    Arpspoof是一个非常好的ARP欺骗的源代码程序.它的运行不会影响整个网络的通信,该工具通过替换传输中的数据从而达到对目标的欺骗.本节将介绍Arpspoof工具的 使用. 9.8.1 URL流量操 ...