• 长连接:指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。
  • 短连接:是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。
  • 同步:报文发送和接收是同步进行,既报文发送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报文发出去后不能无限等待,需要设定超时时间,超过该时间发送方不再等待读返回报文,直接通知超时返回。
  • 异步:报文发送和接收是分开的,相互独立的,互不影响。这种方式又分两种情况: (1)异步双工:接收和发送在同一个程序中,由两个不同的子进程分别负责发送和接收 (2)异步单工:接收和发送是用两个不同的程序来完成。
  • 单工(Simplex):通信双方设备中发送器与接收器分工明确,只能在由发送器向接收器的单一固定方向上传送数据。
  • 全双工(Full Duplex):通信双方设备既是发送器,也是接收器,两台设备可以同时在两个方向上传送数据。
  • 半双工(Half Duplex):通信双方设备既是发送器,也是接收器,两台设备可以相互传送数据,但某一时刻则只能向一个方向传送数据。

    同步和异步

    1. 在cpu和外设通信时外设要和cpu同步,所有使用的时间频率的一致的。
      • 如:i2c总线中有scl时钟线、sda数据线。我们可以把它看成两个普通gpio接口,当时钟线为高时,数据寄存器读 或写。
    1. 同步通信与异步通信:

关于长链接,短链接,异步,同步,单工,双工的定义 - 图1
a. 同步(如上图):
1. 把许多字符组成一个信息组,字符可以一个接一个地传输,每一次是传送一组信息(信息帧),中间没有空隙
2. 开始要加上同步字符,在没有信息要传输时,要填上空字符
3. 发送方除了发送数据,还要有同步时钟信号(cpu),传输双方用同一时钟信号线,确定传输中每1位的节拍的位置

关于长链接,短链接,异步,同步,单工,双工的定义 - 图2
b. 异步(如上图):
1. 一次发送一个字符,所发送的字符之间的时间间隔可以是任意的。
2. 接收端必须时刻做好接收的准备,发送端可任意时刻开始发送字符
3. 必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,确地将每一个字符接收下来
4. 特性:通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。

c. 同步、异步区别
1. 同步通信时钟频率一致(同一条时钟线相连),发送端发送连续的比特流;异步通信时不要求
接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2. 同步通信效率高;异步通信效率较低。
3. 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
4. 同步通信可用于点对多点;异步通信只适用于点对点。

全双工、半双工

  1. 单工:简单的说就是一方只能发信息,另一方则只能收信息,通信是单向的。
    2. 半双工:比单工先进一点,就是双方都能发信息,但同一时间则只能一方发信息。
    3. 全双工:比半双工再先进一点,就是双方不仅都能发信息,而且能够同时发送。

基本通信协议

  1. uart: 全双工、异步通信
    2. spi : 全双工、同步通信
    3. i2c : 半双工、同步通信