常见通信接口

常见通信
异步通信:
异步通信中的接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如一个字符为一组,为这个组配备起始位和结束位。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在低速的传输中。
举个例子,我们的键盘按下一个按键,发出一个字符信号,异步传输机制就会为它加上前后的辅助同步信息,帮助接收方识别到我们按下了哪一个按键。因为我们敲击键盘的节奏不固定,所以异步是一种很适合的方式。
同步通信:
同步通信中双方使用频率一致的时钟,它的分组相比异步则大得多,称为一个数据帧,通过独特的bit串作为启停标识。发送方要以固定的节奏去发送数据,而接收方要时刻做好接收数据的准备,识别到前导码后马上要开始接收数据了。同步这种方式中因为分组很大,很长一段数据才会有额外的辅助位负载,所以效率更高,更加适合对速度要求高的传输,当然这种通信对时序的要求也更高。
单工、半双工、全双工
单工:只允许通信双方的一方向另一方传输。
半双工:允许通信双方相互传输,但在一个时刻,只允许数据在一个方向上传输。
全双工:允许在同一时刻同时接收和发送信息。

单片机的通讯模块常用的有UART、SPI、I2C、CAN等等,当然还有无线模块这里不讨论。UART大多用于单片机与PC的通信,CAN总线常用于单片机与单片机通信,而SPI和I2C则用于单片机和外围设备、外围设备和其它外围设备的通信,根据自己的需要来设计通讯方式。

UART :通用异步收发器,全双工传输和接收
主要有:VCC GND RX TX
收发两端读写接口应相反
可以用中断和DMA接收数据

I2C通信 半双工同步通信,两线串行

在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。
  以读写从机寄存器数据为例:
  假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);
  约定读command为0x01,写command位0x02;
  约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。
  1. 读寄存器数据步骤:
  1.1 主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)
  1.2 从机firmware的处理:
  1.2.1 将command和address分别提取出来;
  1.2.2 判断command的含义(本例中,是读指令还是写指令);
  1.2.3 根据收到的的address,将对应寄存器的的数据放入从机I2C输出buffer;(这个步骤可以使用指针)
  1.3 主机再次发起一次通信,读取从机的数据;(主机发出读操作)

SPI通信
串行外设接口,全双工同步通信,四线: MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。

缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
DMA:直接存储器访问
DMA的出现就是为了解决批量数据的输入/输出问题。DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。这样数据的传送速度就取决于存储器和外设的工作速度。

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

1、能向CPU发出系统保持(HOLD)信号,提出总线接管请求;

2、当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;

3、能对存储器寻址及能修改地址指针,实现对内存的读写;

4、能决定本次DMA传送的字节数,判断DMA传送是否借宿。

5、发出DMA结束信号,使CPU恢复正常工作状态。

对于实现DMA传输,它是由DMA控制器直接掌管总线(地址总线、数据总线和控制总线),因此,存在一个总线控制权转移问题
DMA传输开始前:    CPU------>DMA控制器
DMA传输结束后: DMA控制器------>CPU
一个完整的DMA传输过程必须经历DMA请求、DMA响应、DMA传输、DMA结束4个步骤。

can通信:异步半双工通信
https://blog.csdn.net/tyhaotingdege/article/details/79787589

你可能感兴趣的:(串口通信,单片机,嵌入式)