第一篇博客,首先记录一下这一个多星期来的学习内容。
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