串行通信综述

在日常的学习和工作中,很经常见到一些专有名词,如:串行通信总线串口通信等概念;同时还能见到一些不同的协议,如RS-232RS-422RS-485;以及单工半双工全双工;还有诸如接收中断,DMA中断等等。这些都是些什么内容,很多人就算已经深入了应用层,但依旧是傻傻分不清。

经过了很久的摸爬滚打,我终于将很多东西理顺了。我是一个没有经过系统培训过的电控人,因此更多的是从一个原始理念中自己感悟出来的第一手资料。我将在此进行规整。

串口通信是Robomaster乃至所有嵌入式相关领域中最重要,也是最基础的知识。本专栏:串口通信基础,将基于Robomaster应用实际场景,一米宽,万米深地剖析串口通信的概念。

串行通信与并行通信

  • 串行通信

    串行通信指的是计算机与设备之间,在同一时刻只能传输一个位(1bit)信号。传输顺序依次1bit接着1bit传输,通常在一根数据线上传输,或者一对差分线上传输。

  • 并行通信

    并行通信指的是计算机与设备之间,在同一时刻有多条线传输,能够同时传输多个bit的信号。

这两者有一定的特征和应用范围:

  • 并行通信效率高,成本高,用于快速设备之间的近距离传输,如CPU与储存设备。

  • 串行通信效率低,成本低,抗干扰能力强,用于不同设备之间的远距离传输,如计算机与计算机。

而在我们通常所用的UART串口通信,就是计算机与开发板之间的通信,而非是两个元器件之间的通信。故此,我们使用的是串行通信。

串行通信与串口通信

串行通信是一种概念,串口通信是其通信手段。

具体来说,串行通信是一种概念,即一位一位地发送数据,包括UART通信,I2C通信,SPI通信。

串口通信简介

串口通信顾名思义,就是利用串行接口进行通信。串口可以在使用一根线接收数据的同时,利用另外一根线来接收数据。

串口通信中,采用的高低电平符合的是TTL逻辑,其输出的高电平最小为2.4V,输出的低电平最大为0.4V。这是最为基础的串口标准和协议。

具体的TTL内容,参阅 电控 | 串口通信协议——TTL逻辑概述

串口通信中,双方需要约定一定的数据格式才能正常的收发数据。除了TTL外,常用的协议有:RS-232,RS-422RS-485。他们的主要区别在于其各自电平范围不相同。

具体的协议内容,参阅 电控 | 串口通信基础——串口协议概述

串口通信中,仅仅通过一根接收数据线和一根发送数据线就能够实现全双工通信。而串行通信中,还有半双工通信和单工通信。

具体的分类规则,参阅 电控 | 串口通信基础——通信传输模式

串口通信中,采用的是异步通信的方式。发射器根据其时钟信号生成的位流取代时钟信号,接收器使用其内部时钟信号对输入数据进行采样。

具体的通信特性,参阅 电控 | 数电理论基础——同步与异步

串口通信学习导引

上面的简介中提及的内容,仅仅是平时电控们容易混淆和理解不清的内容,而真正具体的串口是如何实现并完成传输的,才是真正电控们需要精深钻研的内容。

详细的学习内容,请从下面获取:

电控 | 数电理论基础——TTL逻辑概述

电控 | 串口通信基础——串口协议概述

电控 | 串口通信基础——通信传输模式

电控 | 串口通信基础——异步时钟通信

电控 | 串口通信基础——UART串口协议

电控 | 串口通信基础——串口中断与DMA

希望能够对你有所帮助。