新年第一篇!
这三种协议有相同的地方,也有不同的地方,使用范围相互覆盖,密不可分。
就一块单片机来讲:
其板子上主控芯片(MCU)和其他芯片之间,通信属于用的是串口UART、SPI、IIC等协议,如:因为MCU内存不够扩展一个外部Flash可以用SPI协议或者IIC协议。主控芯片和WIFI模块通信可以用串口UART。(你可以理解为硬件协议,PCB板子上用的)
当WiFi模块被MCU控制后,连入此WiFi的其他设备就可以继续其他操作了,其他设备与WIFI模块的通信属于WIFI协议。(蓝牙和Zigbee同理)(市面上WiFi模块(如ESP8266)使用之前可以用AT指令配置好,然后MCU可以正常控制它)(在WIFI连接后,线路上可以使用TCP/IP通信,设置客户端和服务器端,让上位机和硬件板子通信)
TCP/IP/UDP/HTTP/NFS大概上属于上位机通信协议,大部分用在纯软件通信上面,比如网页、前端和服务器访问、远程访问等,他们有一个协议栈,如图:
这三块协议,在实际产品使用过程中,都是一环扣一环,缺一不可。要做产品还是要全部都懂(类似于要求你既懂硬件,也懂软件)
补充:
IIC协议
两根线:SCL时钟线 , SDA数据线, 主从设备都可用将控制线拉底。数据线也要传片选地址。
是半双工总线,结构简单,总线上可以同时挂多个设备,一般不超过8个。
SPI协议
四根线:
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。
有统一时钟控制,收发同时进行,全双工总线。
IIS协议
是用与数字音频的总线:
DATA, 用于串行数字音频数据。
LRCK, 左右声道开关
SCLK, 时钟,采样频率采样位数2,两个声道所以要乘2
UART
通用异步收发器:只有收发两根线(TXD、RXD)和GND地线,电源线。
TTL电平
0V / 5V
RS232:
异步串行通信接口,用于近距离(1-10m)低速通信。距离长了抗干扰性能差。距离越大,速率下降越快。
逻辑1(MARK)=-3V~-12V
逻辑0(SPACE)=+3~+12V
转换成UART连接芯片,需要电平转换芯片。MAX232芯片是TTL电平与RS232电平的专用双向转换芯片,可以TTL转RS-232,也可以RS-232转TTL。
RS485:
RS-485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。
为解决RS232抗干扰性能差的问题而设计的物理层通信协议。RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米。
半双工,两根线,逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示,电平与TTL兼容,使用电压差表示信号提高抗干扰能力,距离长(1km),最高10Mbps.