大白话给你讲讲UART、SPI、I2C这三种通信协议,保证一听就懂!
大白话给你讲讲UART、SPI、I2C这三种通信协议,保证一听就懂! 1. UART(串口通信) 特点:简单、异步、两根线(TX发、RX收)。 大白话: - 就像两个人打电话,不需要对表(没有时钟信号),但必须说好语速(波特率一致)。 - 连线:A的TX接B的RX,A的RX接B的TX(交叉连接)。 - 怎么传数据: 1. 先喊一声“喂!”(起始位,低电平)。 2. 然后说正事(8位数据,比如字母‘A’的二进制)。 3. 最后问“听明白了吗?”(校验位,可省略)。 4. 挂电话前说“拜拜!”(停止位,高电平)。 - 缺点: - 只能一对一聊天(不支持多设备)。 - 如果两人语速差太多(波特率误差>10%),就听不懂了。 典型用途:单片机调试、GPS模块、老式打印机。 2. SPI(高速全双工) 特点:速度快、全双工、同步、四根线(MOSI、MISO、SCLK、CS)。 大白话: - 像老师(主机)和一群学生(从机)上课,老师自带闹钟(SCLK时钟线)。 - 连线: - MOSI:老师讲课(主机输出)。 - MISO:学生举手回答(从机输出)。 - SCLK:老师敲黑板节奏(时钟同步)。 - CS:老师点名(片选信号,低电平选中)。 - 怎么传数据: 1. 老师点名某个学生(拉低对应的CS)。 2. 老师边敲黑板边讲课(时钟+数据),学生边听边回答(同时收发)。 3. 讲完说“下课!”(拉高CS)。 - 优点: - 速度快(比I2C快很多)。 - 可以同时听和说(全双工)。 - 缺点: - 每多一个学生就要多一根点名线(CS线多)。 - 没有“听懂了吗?”确认机制(无错误校验)。 典型用途:SD卡、显示屏、高速传感器。 3. I2C(两根线搞定一切) 特点:省线、同步、多主机多从机、两根线(SDA数据、SCL时钟)。 大白话: - 像一群人在微信群聊天(所有人共用两条线)。 - 连线: - SCL:群主的定时消息(时钟同步)。 - SDA:大家发的消息(数据线)。 - 怎么传数据: 1. 群主喊“开会了!”(起始条件:SCL高时SDA拉低)。 2. 群主点名:“@张三,轮到你发言!”(7位地址 + 读/写位)。 3. 张三回复“到!”(ACK确认,拉低SDA)。 4. 开始传数据(8位一组,每发完一组都要等“收到!”ACK)。 5. 群主说“散会!”(停止条件:SCL高时SDA拉高)。 - 优点: - 两根线连一堆设备(地址区分)。 - 支持多个群主(多主机)。 - 缺点: - 速度慢(比SPI慢)。 - 设备多了会卡(地址冲突或总线负载)。 典型用途:温湿度传感器、EEPROM存储芯片。 总结对比 一句话选型: - 要快且简单?用SPI。 - 要省线且设备多?用I2C。 - 随便调试?用UART。 希望这样讲能让你彻底明白!有问题随时问~
|