MCU常见通信方式及其使用总结(TTL、RS232、RS485、I2C,SPI,CAN)

一、TTL电平:

全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)

1、硬件框图如下,TTL用于两个MCU间通信

android ttl 协议_嵌入式

2、‘0’和‘1’表示(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)

android ttl 协议_android ttl 协议_02

二、RS-232电平:

全双工(逻辑1:-15V–-3V 逻辑0:+3V–+15V)

传输速率较低,在异步传输时,比特率为20Kbps;传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。

1、硬件框图如下,TTL用于MCU与PC机之间通信

android ttl 协议_单片机_03

2、‘0’和‘1’表示(逻辑1:-15V–-3V 逻辑0:+3V–+15V)

android ttl 协议_1024程序员节_04

三、RS-485:

半双工、(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。

1、硬件框图如下

注意:末端需要加120欧姆的匹配电阻

android ttl 协议_物联网_05

2、‘0’和‘1’表示

(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。通过压差大小来表示逻辑信号

android ttl 协议_1024程序员节_06

四、CAN总线:

逻辑1:-1.5V–0V 逻辑0:+1.5V–+3V)这里的电平指CAN_High、CAN_Low 两线间的电压差。

1、硬件框图如下

android ttl 协议_1024程序员节_07

2、‘0’和‘1’表示

android ttl 协议_物联网_08

以上总结:

1、从单片机软件编程角度来说,RS232、RS-485最终结果都是转换为TTL电平方式与单片机通信(CAN收发器把差分信号转化为TTL–>CAN控制器(MCU))。其目的都是提高通信质量,提高抗干扰能力。

2、TTL、RS232是逻辑电平信号(逻辑电平需要共地操作)。RS-485、CAN为差分信号。

3.关于传输速率和距离:

串口232:其传送距离最大为约15米(//标准参数是50英尺),最高速率为20kb/s。

串口485:RS-485的数据最高传输速率为10Mbps,数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,长度被限制在1200M

CAN:通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M)

五、I2C

1 、I2C物理层

上拉电阻可以取的范围是1.53K~7K VDD = 5V,一般取5.1K ,3.3V VDD低功耗设计中,通常选用4.7K牺牲速度换取电池使用时间,此阻值也是常规阻值。

android ttl 协议_android ttl 协议_09

2、 I2C协议层

7地址位,1位读写标志位

android ttl 协议_物联网_10

3.数据的起始信号与停止信号

android ttl 协议_嵌入式_11

4.数据有效性

android ttl 协议_物联网_12

I2C 协议在 SCL 高电平时对 SDA 信号采样, SCL 低电平时 SDA准备下一个数据。

5.传输速率和距离

I2C总线理论上传输速度可以为100KHz(标准)、400KHz(快速)和3.4MHz(高速)。

一般小于200mm~300mm,跟传输速度、布线等有关系,延长距离可以用 I2C中继器芯片,NXP如P82B715、P82B96等等。

六、SPI

SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接 口。SPI有4个引脚:SS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SCK(同步串行时钟线)。

1、硬件框图如下

android ttl 协议_嵌入式_13

2.传输速率和距离

SPI模块的最大时钟频率为系统时钟频率的1/2。虽然SPI的传输速率主要受限于CPU处理SPI数据的能力,但在同另一个非常高速率的SPI设备通讯时,SPI的最大时钟频率将有可能制约其传输速率。
SPI属于一般的TTL电平,传输距离一般为12米(一般用于板载通信,不用于设备通信)