目录

I、串口通信简介

一、定义

二、意义

三、分类

II、异步串行通信详解

一、数据格式

1. 起始位

2. 数据位

3. 奇偶校验位

4. 停止位

二、通信制式

1. 单工

2. 半双工

3. 全双工

三、通信速率


I、串口通信简介

一、定义

一条传输线上,数据以“位”为单位进行逐个传输,即为串行通信。

二、意义

并行通信控制简单、相对传输速度快,但由于传输线较多,长距离传输时成本高,因此仅适合短距离的数据传输;

相对的,在满足“传输速度 ≥ 最大需求速度”的前提下,使用串行通信便是大势所趋了。

三、分类

串行通信分为两种方式,异步串行通信同步串行通信

异步串行通信,是指发送方与接收方,使用各自的时钟控制数据发送和接收过程(为使双方收发协调,要求双方时钟尽可能一致);

同步串行通信,则是发送方时钟直接控制接收方时钟,使双方完全同步(同步方法有“外同步和自同步”两种)。

串行通信的最小传输单位是“位”,一次完整的“接收/发送”的最小单位是“字符”(单独收发一个位的数据,通常没有意义)。

  • 使用异步串行通信时,由于收发双方时钟不严格一致,所以每个字符都要用到起始位和停止位来作为字符开始和结束的标志,从而保证数据传输的准确性(由于每个字符都有开始和停止位,因此字符之间的时间间隔是任意的);
  • 使用同步串行通信时,由于收发双方时钟严格一致,所以仅在数据块(有效数据)传输的一开始和结束时,用到了开始符和结束符,在有效数据传输完毕后,发送空闲字符。

对比两种串行通信方式,同一数据块,后者仅在头尾处添加了开始与结束标记,因此后者的传输效率较高,但实现的硬件设备也更复杂,所以各设备之间,通常采用的还是异步串行通信方式。

接下来将详细介绍异步串行通信。

II、异步串行通信详解

一、数据格式

一次完整的“接收/发送”的最小单位是“字符”,我们将其称为一个字符帧,字符帧由四部分组成:起始位、数据位、校验位、停止位。

1. 起始位

起始位为0。

  • 通讯线在空闲状态时保持高电平,因此出现下降沿即可判定为数据传输开始;
  • 另外,由于数据位定长,且起始位在一次接收中只判定一次,所以不用担心数据位中的0误识别成起始位。

2. 数据位

数据位可以是5/6/7/8位,传输时低位在前、高位在后。

3. 奇偶校验位

校验位可以省略,当需要使用校验位时:

  • 奇偶校验位为1或0;
  • 奇校验时,数据位、校验位中1的个数,应该是奇数;
  • 偶校验时,数据位、校验位中1的个数,应该是偶数。

4. 停止位

停止位为1。

  • 停止位可以是1位的长度、1.5位的长度、2位的长度(位数的本质含义是信号出现的时间,故可有分数位);
  • 另外,由于数据位定长,所以停止位位置固定可知,接收时只需判定停止位是否为1即可。

二、通信制式

1. 单工

数据仅能沿一个方向传输,不能实现反向传输(只能A→B,不能B→A)。

2. 半双工

数据可以沿两个方向传输,但同一时刻,只能接收或者发送。

3. 全双工

数据可以沿两个方向传输,且可以同时进行。

三、通信速率

  • 串口通讯的速率用波特率表示,定义为每秒传输二进制码的位数,单位是bps(位/秒);
  • 以9600bps为例,假设一个字符帧共有10位(1起始位、8数据位、1结束位),那么每秒钟能传输的最大字符数为“9600/10 = 960”;
  • 最大传输距离,与波特率成反比关系(9600bps,最大传输距离约为76m)。

串行通信——异步串行通信相关推荐

  1. UART 异步串行通信发送模块设计与实现

    UART 异步串行通信发送模块设计与实现 串口发送模块接口设计 注意:在每一次设计端口时,我们都要求可以随时控制该模块开始和结束,因此在设计每一个模块时,务必要加模块的使能端口(EN)和模块结束端口( ...

  2. ARM裸机开发——双机异步串行通信

    写在前面  本报告因为期末将至,后续还需要完成一次课程设计,故本次实验较为简单,完成的时间也非常匆忙,故文章内容较为单薄,也可能有着更多疏忽之处,还望大家海涵. 1. 项目任务  1) 利用S3C24 ...

  3. 基于多线程技术和自定义消息编程实现Windows 9x异步串行通信

    基于多线程技术和自定义消息编程实现Windows 9x异步串行通信 张志明 李蓉艳 王 磊 摘  要  分析了基于Windows 95/98平台上的异步串行通信程序开发方法,并结合开发实践,用C++B ...

  4. 同步串行与异步串行通信

    转载:https://blog.csdn.net/u012160319/article/details/43486995 串行通信是微机接口的一个重要组成部分,有着极其广泛的应用.随着微机特别是单片机 ...

  5. 基于FPGA的UART异步串行通信发送模块设计与实现

    欢迎关注微信公众号"FPGA科技室",更多内容请关注 下一篇文请点击下列链接(接收模块设计) [基于FPGA的UART异步串行通信接收模块设计与实现] 本文发送模块: 在电子系统中 ...

  6. 计算机的串行通信分析,串行通信和并行通信的区别分析

    什么是串行通信 串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度.其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机.计算机与外设之间的远距离通信 ...

  7. 基于FPGA实现UART接口设计(异步串行通信)

    时间就是金钱,技术就是饭碗,每天学习,每天积累,做好现在,不担心未来,加油! 1 简介 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通 ...

  8. 通信协议分类(串行通信,并行通信,同步/异步,单工/双工,半双工/全双工)

    通讯的方式分类: 1.并行通信:是指数据的各位同时在多根数据线上发送或接收.如下图 并行通信的特点:控制简单,传输速度快:由于传输线较多,适用于短距离通信. 2.串行通信:是指数据的各位在同一根数据线 ...

  9. S5PV210体系结构与接口06:串口编程

    目录 1. 串口通信基本概念 1.1 通信基础概念 1.1.1 电平信号 & 差分信号 1.1.2 串行通信 & 并行通信 1.1.3 异步串行通信 & 同步串行通信 1.2 ...

  10. 微型计算机接口技术复习

    文章目录 1. 计算机硬件组成:总线概念.总线分类 2. 8086两种工作模式,最小模式下常用引脚的作用和功能,存储器读写时序. 3. 8086CPU特点:字长.地址线根数.数据线根数.寻址空间大小. ...

最新文章

  1. 一个女程序媛征男友的需求说明书
  2. JavaScript 复制对象与Object.assign方法无法实现深复制
  3. 论文参考文献的组织(latex)
  4. Surface Pro 4 和 Surface Book 使用名为 Surface UEFI(统一可扩展固件接口)的新固件接口...
  5. 关于iOS APP 需要支持ipv6-only 开发者需要做的事情
  6. HashMap源码解释
  7. 【推荐】十位笔耕不辍的产品大拿
  8. 页眉中字数未满但自动换行
  9. 微课|中学生可以这样学Python(5.6.1节):列表推导式3
  10. GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
  11. 使用.gitignore忽略编译自动生成的那些文件
  12. 基于python下django框架 实现旅游景区景点售票系统详细设计
  13. 如何成为一名很酷的机器人工程师
  14. sql计算表中计算机的最高分,关于SQL查询面试题,会这些基本够用了
  15. libcef-编译运行模式-MTD/MT-MDD/MD
  16. golang的dep和vender
  17. 计算机网络之(7):TCP流量控制、拥塞控制 + 网络层
  18. JavaScript (递归函数)
  19. Discourse开源论坛搭建
  20. python图片大小怎么算的_python图片大小处理;

热门文章

  1. pytorch历史版本下载_Pytorch、Anaconda安装、Navidia版本更新
  2. ★SMILES数据处理+评价指标所有的代码
  3. 非root用户安装命令
  4. Coursera | Applied Plotting, Charting Data Representation in Python(UMich)| Assignment3
  5. java 替换emoji表情,java 替换掉emoji表情
  6. php中array_unshift,php中array_unshift()修改数组key注意事项分析
  7. js实现类似栈和队列的行为,以及push和unshift两个方法的性能测试
  8. 数据结构 队列顺序储存 医院叫号系统
  9. 软件工程复习笔记——项目计划
  10. 提升电脑性能的经典技巧