Fork me on GitHub

全站最全最简单的电子通信接口及通信协议总结

以下是对常用电子通信接口及通信协议的总结 ↓

通信

何为通信?在英文中,通信用Communication表示,这个词也有交流的意思。实际上,通信和交流确实是一样的意思。不过在汉语中,交流常用来表示人与人之间的交流;而通信一般用于比较专业正式的场合,也就是所谓的术语。

人与人之间的交流,是信息交换的过程;微机系统或模块之间的通信,就是数据传输的过程了。

接口

人在用语言交谈时,需要用嘴说话,用耳朵听,通过空气来传播。信息的传递依赖嘴巴和耳朵来进行发送和接收。

微机系统的通信,则利用电、光等媒介。最常用的是电,表现在数字电路中,就是高低电平的变化。单片机的IO口能实现高低电平的收发,认为它是一种通信接口。接口是通信所依赖的实体。

信号

模拟信号(analogsignal)和数字信号(digital signal)

任何的信息都可以用模拟信号来表达。

模拟信号是连续而平滑的信号,是传感器直接采集的、不加任何处理(采样、滤波)的自然界中的信号,即自然界中的信号绝大多数都是模拟信号(例如连续变化的电流、人类说话的声音等)。
模拟信号就是把实际的物理值模拟成相应的电信号值,呈现该物理值的信号变化。

但是模拟信号对硬件的灵敏度要求高,因为表现的复杂性,也导致容易变形。

而数字信号呈现为跳变离散的信号,仅取值有限个离散数值,比如二进制编码就是一种数字信号。

所以数字信号:1、实现了高度保真,在传输和存储的时候不容易变形。2、对硬件的要求低,不需要太精确。

协议

人在说话时,通过声带振动、口型的变化发出不同的声音。这些声音按照一定的规则,承载了我们所要表达的思想和信息,这套规则称为语言。两个人对话,需要使用两个人都能理解的语言进行,一个只懂中文和另一个只懂英文的人,根本没法用语言交流(当然可以用其他方式,比如面部表情、肢体语言等)。

同样,微机系统通信时,也要有这样一套双方都遵从的规定,而这个规定被称为协议。通信协议和接口都可以有多种,并且两者之间存在一定的关联。

接口的种类

在微机系统中,为了更快速、更准确、更方便的传输数据,往往会有各种接口。

数字接口/模拟接口

这里主要讨论电子形式的接口。可分为数字接口和模拟接口,数字接口用二进制高低电平表示数据,模拟接口则可以用电压电流表示信息。模拟形式的接口,最常见的就是音频接口,也就是耳机插座。数字形式的接口,例如我们熟悉的USB接口,前面提到单片机程序烧写所用的串口等都是。数字接口又有很多分类,下面进行介绍。

串行口/并行口

数字接口传输的是二进制数据,通常每8位二进制数字组成一个字节。并行口用八根线同时传输8位数据;而串行口则一位一位的传输。每隔一段时间,接口上的电平按照要传输的下一位数据改变。

同样的电平切换时间间隔下,显然并行口更快。早期技术不够,很多设备使用并行口通信以提高速度,例如并口打印机、并口的IDE硬盘等。后来技术进步了,串行口传输速度提上去了,由于接线少,更加方便可靠,并行口就逐步被淘汰了,USB就是串行口。

备注:此处“行”的发音和“行走”中“行”的发音一致。

一、物理层与协议层

对于通信协议,按分层的方式去理解

物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。

协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。

 

二、串行通信与并行通信

(1)、 串行、并行主要是考虑通信线的根数,就是发送方和接收方同时可以传递的信息量的多少

(2)、在电平信号下, 1 根参考电平线+1 根信号线可以传递 1 位二进制;如果我们有 3根线(2 根信号线+1 根参考线)就可以同时发送 2 位二进制;如果想同时发送 8 位二进制就需要 9 根线。

(3)、在差分信号下, 2 根线(彼此差分)可以同时发送 1 位二进制;如果需要同时发送 8 位二进制,需要 16 根线。

总结:并行通信比串行通信要快,但是需要的信号线较多,串行通信速度较慢,但成本低。在实际应用中,串行通信比并行通信用的更为广泛

 

三、全双工与半双工通讯

根据数据通讯的方向,通讯又分为全双工、半双工及单工通讯,它们主要以信道的方向来区分。

全双工:在同一时刻,两个设备之间可以同时收发数据;典型的例子,电话

半双工:两个设备之间可以收发数据,但不能在同一时刻进行;典型的的例子,对讲机

单工:在任何时刻都只能进行一个方向的通讯,即一个固定为发送设备,另一个固定为接收设备;典型的例子,Call机

 

四、同步通信与异步通信

根据通讯的数据同步方式,又分为同步和异步两种,可以根据通讯过程中是否有使用到时钟信号进行简单的区分。


1、同步通信中,通信双方按照同意节拍工作,一般需要发送放给接收方发送信息的同时发送时钟信号。同步通信用在通信双方信息交换频率固定,或经常通信时。


2、异步通信又叫异步通知。在通信双方频率不固定时适合用异步通信。发送在发送信息时会首先给接收方一个起始信号,接收方收到起始信号之后,就知道后面的是有效信息,知道发送放发过来的结束信号标志才停止接収。


五、电平信号与差分信号

(1)、电平信号和差分信号是用来描述通信线路传输方式的。也就是说如何在通信线路上表达1 和 0.

(2)、电平信号的传输线中有一个参考电平线(一般是 GND),然后信号线上的信号值是由信号线电平和参考电平线的电压差决定。

(3)、差分信号的传输线中没有参考电平,所有都是信号线。然后 1 和 0 的表达靠信号线之间的电压差。

总结:电平信号的 2 根通信线之间的电平差异容易受到干扰,传输容易失败;差分信号不容易受到干扰因此传输质量比较稳定,现代通信一般都使用差分信号,电平信号几乎没有了。

总结 2:看起来似乎相同根数的通信线下,电平信号要比差分信号要快;但是实际还是差分信号快,因为差分信号抗干扰能力强,因此 1 个发送周期更短。

 

六、通信速率

衡量通讯性能的一个非常重要的参数就是通讯速率,通常以比特率(Bitrate)来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)。

模拟接口/硬件接口

在51单片机中,传输数据主要利用32个IO口管脚。作为数字接口,串口以及后面要介绍的I2C等,本质都是通过IO口的高低电平实现的。如果对串口的协议有了解,可以给单片机写程序,将任意两个IO口做成串口,和电脑进行通信。但是事实上用到串口的时候,很少有人会这么做。

用程序实现串口的方法,一般叫做模拟串口,或者软件串口;而实际上常用到的是硬件串口。串口是一种很基本的接口,单片机一般都有硬件串口。

使用软件模拟串口需要消耗很多CPU资源(也就是说CPU需要花很多时间处理串口相关的数据收发工作)。

而硬件串口根据串口协议设计好并集成在单片机中,也就是一个模块,大大简化了串口通信的软件编程。串口发送数据需要一位一位的进行,有了硬件串口,在软件上只需把要发送的一个字节数据放到硬件串口相关的寄存器中,硬件就会自动一位一位的把数据发送出去。CPU的全部工作就是执行软件程序,这样就大大减轻了CPU的负担。接收数据也是类似的道理。

这里又体现了模块化设计中模块可代换的特点,甚至是软硬件之间也可以互相代换或补偿。读者或许对此感到不可思议,学到原理篇就能慢慢理解这里的原因了。

这里主要讨论电子形式的接口。可分为数字接口和模拟接口,数字接口用二进制高低电平表示数据,模拟接口则可以用电压电流表示信息。模拟形式的接口,最常见的就是音频接口,也就是耳机插座。数字形式的接口,例如我们熟悉的USB接口,前面提到单片机程序烧写所用的串口等都是。数字接口又有很多分类,下面进行介绍。

  包括IIC、SPI等等协议都是建立在数字接口上的,而模拟接口是大自然的信号用电压电流等模拟出来的波形(就像声音)然后通过ADC及算法转化成数字信号存储起来(二进制)

  GPIO是指通用I/O接口:即使用通用协议的通用接口,由你自己去实现一个协议,比如流水灯。

ADC/DAC 模数/数模转换器

既然接口有数字和模拟形式的,那么他们之间也应该能互相转换。例如电脑听音乐时,CPU、存储器都是数字器件,结果却能输出模拟的声音信号。

能把模拟信号转换成数字信号的器件叫做模数转换器(ADC=Analog To Digital Converter),反过来,数字转模拟就是数模转换器了(DAC=Digital-to-Analog Converter)。

ADC/DAC也是两种常见的微机系统模块。在STC89C52RC单片机中没有内置的ADC/DAC,但是可以使用外置的转换芯片,而在STC的其他一些型号51单片机或430等单片机中往往会有内置的转换模块。

 

通信手段

单片机常见片上通信协议

单片机的片上资源有多种通信方式,常用的如IIC、SPI、UART/USART、CAN,甚至高端一点的还具有以太网和USB通信、蓝牙等等。这么多的通信方式,为什么不统一成一种的?因为每种通信方式所出现的时间不同,使用场合不同,用户的要求和方案也不同,无法做到一种通信协议覆盖所有的应用环境和客户群体。下面分析一下这些通信协议的应用情况。

一、UART和USART

分别名为通用异步收发器和通用同步异步收发器(具体后文会进行详解),速率不快,可全双工,结构上一般由波特率产生器、UART/USART发送器、UART/USART接收器组成,硬件上两线,一收一发。

二、I2C(IIC)

双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网。

总线仲裁:线与,谁发0就仲裁成功。

三、SPI

高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件3~4线;也是所有基于SPI的设备公共有的,他们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。

四、USB

注:USB广义上也属于串行通信

高速同步串行口,高速,可全双工,由主机、hub、设备组成。设备可以与下级的hub相连构成星型结构。一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+、D-是差分输入线,它使用的是3.3V的电压。数据在USB线里传送是由低位到高位发送的。

五、CAN

采用双线传输,两根导线分别作为CAN_H、CAN_L,并在终端配备有120Ω的电阻。收到总线信号时,CAN收发器将信号电平转化为逻辑状态,即CAN_H与CAN_L电平相减后,得到一个插值电平。各种干扰在两根导线上的作用相同,相减后的插值电平可以滤过这些干扰。

六、DMA

DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。这样数据的传送速度就取决于存储器和外设工作速度。

通常系统总线是由CPU管理的,在DMA方式时,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态(高阻状态),而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。

IIC和SPI多用在芯片级近距离通讯

IIC和SPI是应用非常广泛的通讯方式,主要用在芯片级进行短距离通信,如EEPROM存储芯片AT24C02就是IIC通讯的。这两种只适合长度为cm级别的通信。IIC具有两根总线,分别为SDA和SCL,SPI有三线和四线通讯方法,这两种方式主要用做芯片级的数据传输。不适合远距离传输。

CAN总线适合远距离传输

CAN总线在汽车工业和工控行业用的比较多,具有两根线CAN_H和CAN_L,可以进行km级别远距离传输。CAN总线为主从式通讯方式,一个主节点可以挂接多个从节点,从节点的ID标识符可以用来判断优先级,CAN总线具有仲裁机制。从节点故障推出后,不会影响其他设备的正常工作。

UART可以扩展出其他通信方式

 

UART也就是我们常说的串口,串口几乎为单片机的标配。单纯的UART只适合于近距离的通信,很多芯片也具有UART,所以可以用作芯片级的数据交换。除此之外,UART通过电平转换芯片可以扩展出其他的通信方式,如RS232、RS485以及CAN通讯等。

以太网通信

参考百度百科:https://baike.baidu.com/item/%E4%BB%A5%E5%A4%AA%E7%BD%91%E9%80%9A%E4%BF%A1/21868211?fr=aladdin

高级通信接口 (无线通信)(局域网)

无线通信技术有很多,这里就不一一列举了,我们这里要讲的是红外、蓝牙、WIFI、NFC这四种无线通信的优劣及未来的发展趋势。

从上表比较分析:
1、红外相比其他几种无线通信技术,无论是在速度、安全性、使用体验等方面都没有什么优势,除了家电遥控领域有可能会沿用,在未来必将被淘汰。然而随着物联网的普及,红外在家电遥控领域将失去最后一道堡垒。作为无线局域网的传输方式,红外线方式的最大优点是不受无线电干扰,且它的使用不受国家无线管理委员会的限制。但是,红外线对非透明物体的透过性较差,导致传输距离受限制,也正是这个原因可以用于红外避障等地方。

参考:红外通信协议

2、最近几年蓝牙技术日趋成熟,并逐步取代红外,从笔记本到智能手机,现在家电也逐渐支持蓝牙遥控;尽管WIFI的出现很大程度上削弱了蓝牙的发展,但是随着物联网的发展(物联网发展初期至成熟期,物联网发展成熟以后会逐渐被WIFI取代),蓝牙将迎来新的辉煌。

参考:蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)

3、WIFI的出现,解决了大数据量传输的问题,使得移动设备能够流畅得获取丰富的网络资源;但是由于成本比较高,实现比较复杂,在今后相当长一段时间内,在物联网领域还不能够完全取代蓝牙。

参考:WiFi接入原理

4、至于NFC,由于其安全性高,将大规模使用在门禁、支付、公交等领域,有能力取代现有的一切刷卡领域。

参考:Arduino硬件之NCF技术(近场通信技术)

其他网络通信方式

移动网络:2/3/4/5G;局域网:wifi;个人局域网:bluetooth;低功耗广域网:NB-loT、LoRa、ZigBee

 

posted @ 2020-04-20 20:01  AnimalRabbit  阅读(6217)  评论(0编辑  收藏  举报