学习了51单片机以及STM32后总结下单片机与外设或者上位机通讯的几种传输方式
串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)
串行通信:指数据一位一位顺序传送
串行接口:简称串口(COM口)
并行通信:一组数据的各数据位在多线上同时被传输
并行接口:一种接口,各数据位同时被传输,传输速度快,效率高,一般用于MCU
串行通信分为:
单工:数据单项传送
半双工:数据能双向传送但不能同时
全双工:数据能同时双向传送
1、USART串口:
通用的、及支持同步也支持异步的接收、发送“模块”,在芯片内部,与SPI、I2C一起构成单片机的总线“枝干”,对于串口,串口通信指串口按位(bit)发送和接收字节,尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
串行通信技术标准EIA-232/485也就是以前所称的RS-232/485。
232是PC机与通信工业中应用最广泛的一种串行接口,RS232单端通信,传输距离可达15米,最高速率20Kbps。
RS485传输速率为10Mbps,最大传输距离1219米,,采用二线制时可实现真正的多点双向通信,而采
用四线连接时只能实现点对多点通信,无论四线还是二线连接方式总线上可接多达 32 个设备。
串行通信传输速率用于说明传输的快慢。在串行通信中,数据是按位进
行传送的,因此传输速率用每秒钟传送格式位的数目来表示,称之波特率
(band rate)。每秒传送一个格式位就是 1 波特。常用的波特率有:4800、
9600、19200、115200 波特。
串口三个脚:TX、RX、GND
2.IIC:
IIC总线是一种两线式串行总线,支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线,一个主控能够控制信号的传输和时钟频率,当然在任何时间点上只能有一个主控。IIC总线是由数据线SDA和时钟SCl构成的串行总线,可发送和接收数据,在CPU与被控IC之间,IC与IC之间进行双向传送,最高传送速率100Kbps,各种被控制电路均并联在这条总线上,每个设备模块都有唯一的地址,IIC总线上的每一个设备模块既是主控器或被控器,又是发送器或接收器,这取决于你要实现的功能是怎样的。
CPU发出的控制信号分为地址码和控制量两部分
IIC总线传输过程中有三种信号:起始信号,终止信号,应答信号。
起始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据;
终止信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据;
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出
特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,
等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情
况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单
元出现故障。
I2C总线是内部总线,用来连接内部系统内的芯片
3.SPI:
SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。
通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。
注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。
单片机通讯方式