串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。 串口按电气标准及协议来划分,包括RS-232、RS-422、RS485等。其中最常用的就是RS-232接口。

  RS-232接口有以下三个特性:
1、用了一个9针的连接器"DB-9"(早期的电脑有用25针的连接器"DB-25")
2、允许全双工通信(即通过串口发送数据和接收数据可以同时进行)
3、通信的最大速率大约在10KBytes/s左右

DB-9接口的实物图如下图所示(早期电脑主机后面可以看到这个接口,现在一般都用USB转串口线进行串口通信):

虽然DB-9接头一共有9根线,但是实现串口通信只需要其中的3根线就可以了,分别是:

1、pin-2:RXD(receive data),接收串行数据

2、pin-3:TXD(transmit data),发送串行数据

3、pin-5:GND(ground),地线
    
  在串口通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送,这个过程称为数据的"串行化(serialized)"过程。由于串口通信是一种异步通信协议,并没有时钟信号随着数据一起传输,而且空闲状态(没有数据传输的状态)的时候,串行传输线为高电平1,所以发送方发送一个字节数据之前会先发送一个低电平0,接收方收到这个低电平0以后就知道有数据要来了,准备开始接收数据从而实现一次通信。串口通信的时序如下图所示:
 
串口通信的规范如下:

1、空闲状态(没有数据传输的状态)下,串行传输线上为高电平1

2、发送方发送低电平0表示数据传输开始,这个低电平表示传输的起始位

3、8-bit的数据位(1 Byte)是从最低位开始发送,最高位最后发送

4、数据位的最高位发送完毕以后的下一位是奇偶校验位,这一位可以省略不要,同时,当不发送奇偶校验位的时候接收方也相应的不接收校验位

5、最后一位是停止位,用高电平1表示停止位

下面以发送字节0x55为例来说明整个的发送过程:
  
   先把0x55转化成二进制为:01010101。显然0x55的最低位bit 0是1,次低位bit 1是0,………,最高位bit 7是0,由于串口是从最低位开始发送一个字节,所以0x55各个位的发送顺序是1-0-1-0-1-0-1-0,波形如下图所示
  
  下面在给出一个波形,根据上面的规则也可以很容易判断这是发送字节0x13的波形

  接下来的最后一个问题是:串口传输的速度是多少?

  实际上,串口传输的速度用波特率(baudrate)来指定。波特率表示的是每秒发送的比特数,单位是bps(bits-per-seconds),例如,1000 bauds表示1秒钟发送了1000个比特,或者说每个比特持续的时间是1ms。关于串口发送的波特率是有一组标准的规定的,并不是随便一个数字。常用的波特率标准有:
  
  1、1200 bps
  2、9600 bps (常用)
  3、38400 bps
  4、115200 bps (常用,而且通常情况下是我们能用的最快的波特率)

  波特率为115200 bps时,每个比特持续的时间为(1/115200)=8.7us,所以发送8个bit(1 Byte)需要的时间是88.7us=69us。在不考虑奇偶校验位的情况下,发送一个字节还需要发送额外的1个起始位和1个停止位,所以发送1个字节实际所需要的最少时间是108.7us=87us,这意味着1s(1000000us)中能发送的字节数为(1000000/87) = 11494,所以在波特率为115200bps的情况下,串口传输数据的速率约为11.5KB/s。而有些电脑的串口有时候需要一个更长的停止位,比如1.5位或2位的停止位,那么发送一个字节所需要的时间比只有一个比特停止位的情况所耗费的时间更长,在这种情况下,串口的传输速率会低于10.5KB/s。

低速接口之UART串口相关推荐

  1. (123)FPGA面试题-介绍低速接口(UART、IIC、SPI),SPI有几根线,每根线的作用?(三)

    1.1 FPGA面试题-介绍低速接口(UART.IIC.SPI),SPI有几根线,每根线的作用?(三) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-介 ...

  2. (92)低速接口UART、IIC、SPI介绍,面试必问(十六)(第19天)

    (92)低速接口UART.IIC.SPI介绍,面试必问(十六)(第19天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)低速接口UART.IIC.SPI介绍,面 ...

  3. IMX6ULL学习笔记(20)——UART串口使用

    一.UART简介 i.MX6U 芯片具有多达 8 个 UART 外设用于串口通讯,UART 是在 USART 基础上裁剪掉了同步通信功能,只支持异步通信.简单区分同步和异步就是看通信时需不需要对外提供 ...

  4. Android 模拟Uart 串口通信

    下载串口工具 1.下载模拟串口工具:模拟串口工具 模拟串口工具用于生成模拟的两个串口,而不需要真实的物理串口. 2.下载串口调试工具:串口调试工具 串口调试工具用于直接通过串口发送数据 我这里有整合过 ...

  5. UART串口通信浅谈之(一)--基础概述

    通信按照传统的理解就是信息的传输与交换.UART(Universal Asynchronous Receiver/Transmitter,即通用异步收发器)串行通信是单片机最常用的一种通信技术,通常用 ...

  6. NXP(I.MX6uLL) UART串口通信原理————这个未复习

    参考:Linux NXP (I.MX6uLL) UART串口通信原理 作者:一只青木呀 发布时间: 2020-09-20 16:48:33 网址:https://blog.csdn.net/weixi ...

  7. 树莓派UART串口编程--使用wiringPi库-C开发【1-基础应用】

    一.串口说明 莓派3B+上UART串口位于GPIO的8脚和10脚,分别为GPIO8=Tx,GPIO10=Rx.在连接外部接口时,需要交换接口,即GPIO8连接到外设的Rx,GPIO10连接到外设的Tx ...

  8. SJXXX串口扩展芯片 4串口芯片 UART串口芯片

    SJXX串口扩展芯片 1 概述 SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件,通过模式选择使得该器件工作于以上任何一种主接口模式下.器件的四个通道UART可提供高达2M ...

  9. 【蓝桥杯】单片机学习(7)——UART串口通信

    UART串口通信 一.基础知识介绍 1.通信方式的分类 2.RS232通信接口 3.UART模块介绍 (1)串口控制寄存器SCON(可位寻址) (2)电源控制寄存器PCON(不可位寻址) (3)辅助寄 ...

最新文章

  1. opencv-python处理图片的一些列操作
  2. ol xyz 加载天地图_OpenLayer学习之加载天地图
  3. mybatis查询时间段sql语句
  4. java mvc ef_一个简单MVC5 + EF6示例分享
  5. 【今日CS 视觉论文速览】Thu, 13 Dec 2018
  6. web测试和app测试相关
  7. 广成 USBCAN-II Pro V502 linux下升级经验
  8. idea 搜索快捷键
  9. 多台电脑同步VSCode的配置和插件
  10. 一位声音甜美的小老师的Oracle学习视频
  11. ps图片放大模糊怎么变清晰?
  12. 微信公众号模板消息内容key提取代码
  13. python-opencv-使图片更清晰的几种方法
  14. python 生信分析_生信分析之Python学习1
  15. Linux内核和传统Unix内核的比较
  16. dom影像图形成数字地形图_DOM卫星影像
  17. 转载的java面试题(值得推荐)
  18. 是谁送给秦羽73件鸿蒙,《星辰变》秦羽的6个身份,第一个弱爆了,最后一个大反转...
  19. Vue 项目中使用Lodop进行打印
  20. MDN-CSS-排版社区大学首页

热门文章

  1. “Wishare杯”南邮第九届大学生程序设计竞赛之网络赛 部分题解
  2. 【opencv-python】 cv2.bitwise_or(...)图像算术运算--按位或运算
  3. 商家收款码,你想了解的都在这了
  4. 上传的linux安装里面,没提供安装链接
  5. css table表格相关设置和属性
  6. 推荐算法之隐语义模型(LFM)矩阵分解梯度下降算法实现
  7. 京东发布第三季度财报员工总数近50万 “以实助实”助力高质量就业
  8. Alfred+iTerm2+go2shell+XtraFinder工具组合,使用,破解,下载简单教程
  9. 苹果税遭重击!法院判决:App Store必须90天内开放第三方支付,苹果市值一夜蒸发5477亿...
  10. 微信小应用-小程序-demo-仿芒果TV