ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

通讯协议-UART

通讯协议-UART 1、UART有两条数据线TX、RX支持同时发送和接收数据。2、UART不支持多设备总线通常用于两个设备之间的点对点通信。UART自身不是总线所以不支持挂载多设备总线Bus一组共享的传输通道通过一套明确的规则包括寻址、时序和仲裁将多个设备连接在一起实现在不同设备之间分时、有序地传输数据、地址和控制信息的通信标准。3、UART无需时钟信号同步依靠两个设备约定好的波特率进行传输常用波特率115200。波特率Baud每秒传输的符号信号变化个数 单位 Baud比特率Bit Rate每秒传输的比特0/1个数 单位 bps比特每秒波特率 × 每个符号承载的比特数 比特率4、发送数据中包括起始位、数据位、校验位可选、停止位。5、UART属于异步串行全双工。UART拓扑结构电平匹配的前提下TX接RXRX接TX两设备共地常见电平1.8V、3.3V、5V由于是点对点通信内部可以采用推挽结构外部也不需要上拉电阻空闲时UART都默认为高电平。协议对比对比维度UARTI2CSPI物理接口TX、RXSDA (数据)、SCL (时钟)MOSI、MISO、SCK、CS通信模式异步串行全双工同步串行半双工同步串行全双工拓扑结构点对点多主多从一主多从最大速率通常 1 Mbps最快 5 Mbps可达 50 Mbps寻址方式无地址依赖硬件直连独立硬件地址软件寻址物理片选信号硬件寻址错误检测可选奇偶校验ACK/NACK 应答机制无硬件级错误检测需额外软件实现UART拓展为了改善UART传输距离、抗干扰性及多设备连接上的局限性 在UART基础上引入了RS232和RS485标准原始UART采用TTL电平标准对比维度TTLRS-232RS-485信号类型单端对GND单端对GND差分A/B两线逻辑电平高3.3V/5V低0V高-3V ~ -15V低3V ~ 15V高AB正差分低BA负差分传输距离极短1米短约15米长可达1200米抗干扰能力弱一般强多设备挂载不支持点对点不支持点对点支持最多32节点连接线数2根TX/RXGND3根TX/RX/GND2根A/B双绞线典型应用芯片间通信、板级调试老式电脑外设、近距工控工业现场、楼宇自控UARTTTLUART采用单端信号Single-ended靠一根信号线对地GND的电压差来表示0和1比如3.3V是10V是0。这种信号极其脆弱一旦线路长了地线上的压降、外界的电磁干扰都会叠加在信号上导致接收端误判。通常UART只能传1-2米。RS-232在UART基础上更换了电平标准仍保留两根信号线TX和RX信号电平逻辑为负电平逻辑其中-3V-15V代表逻辑13V15V代表逻辑0有更强的抗干扰能力和更远的传输距离。传输可达15米RS-485改用差分线Differential传输信号用两根线A和B的电压差来表示逻辑A比B高为1B比A高为0。因为干扰是同时叠加在两根线上的共模干扰相减后干扰被抵消所以RS-485的抗干扰能力极强传输距离可达1200米以上。多设备连接局限UART的局限如前所述UART的推挽输出天生不能并联多个设备只能一对一。RS-232的局限RS-232只是改进了电平但依然是点对点一对一通信没有解决多设备的问题。RS-485的质变RS-485标准规定接收端采用高输入阻抗通常为12kΩ并且允许发送端在“空闲”时处于高阻态相当于断开连接。这就在物理上实现了“一主多从”的总线连接。标准规定一个RS-485总线上最多可以挂载32个标准接收器如果使用更高阻抗的芯片可挂载更多。RS232在UART基础上更换了电平标准仍保留两根信号线TX和RX信号电平逻辑为负电平逻辑其中-3V-15V代表逻辑13V15V代表逻辑0有更强的抗干扰能力和更远的传输距离。传输可达15米,可实现板外通信。RS232的实现需要使用专用的232电平转换芯片为了保证串口的抗干扰能力需要转到232电平DB9接口示意​​引脚编号公头定义母头定义功能说明1DCD载波检测DCD载波检测检测远程设备的数据载波信号表示链路已建立2RXD接收数据TXD发送数据公头用于接收数据母头用于发送数据对接时自动交叉匹配3TXD发送数据RXD接收数据公头用于发送数据母头用于接收数据确保收发通道正确连接4DTR数据终端就绪DTR数据终端就绪主设备声明已初始化完成可通信5GND信号地GND信号地必接引脚所有信号的电压参考基准确保电平一致性6DSR数据设备就绪DSR数据设备就绪从设备声明已就绪可响应主设备请求7RTS请求发送RTS请求发送主设备请求向从设备发送数据8CTS清除发送CTS清除发送从设备确认已准备好接收数据9RI振铃指示RI振铃指示指示远程设备有来电振铃信号RS4851、RS485变为总线架构可以挂载多个设备2、RS485共有两根线分为A、B线以差分线的形式传输信号有更强的干扰能力和更远的传输范围传输方式变为半双工传输距离可达1200米以上。为什么电平逻辑定义差这么多发送端要求严±1.5V由于信号在线路上会衰减若发送端仅输出±0.2V经数百米电缆传输后接收端可能完全无法正确识别。因此驱动端必须提供足够大的差分电压以保证远端接收的可靠性。接收端要求宽±0.2V接收端需面对长距离传输后的衰减信号应具备高灵敏度即使仅有微弱压差也能准确判别。同时该±0.2V的阈值区间构成了一个失效保护带——当总线断路或短路时A与B线间电压差接近0V接收端输出将落入此区域从而可判断线路故障状态。RS485拓扑RS485也需要专用的485电平转换芯片上下拉电阻R1、R2用于在总线空闲时提供确定的高电平。RS-485标准规定接收端采用高输入阻抗通常为12kΩ并且允许发送端在“空闲”时处于高阻态相当于断开连接为什么需要上下拉电阻当总线上没有任何设备在发送数据时比如主机还没开始发或主机发送完一帧后所有设备的驱动器都处于高阻态相当于断开连接。此时A、B两线之间没有任何电压差处于悬浮状态。如果接收端此时去读总线它看到的电压差约等于0V落在不确定区。如果不做处理接收端可能随机输出0或1导致误码。上下拉电阻如何提供高电平分压计算上拉电阻R1将A线拉向高电平VCC。下拉电阻R2将B线拉向低电平GND。由于A和B之间有终端电阻R3电流从VCC经R1→R3→R2流到GND。在R3上产生的压降就是A和B之间的电压差。假设VCC5VR1R2560ΩR3120Ω总电阻 R1 R3 R2 560 120 560 1240Ω电流 5V / 1240Ω 4mA在R3上的压降 4mA × 120Ω 0.48VA比B高0.48V 0.2V接收端判定为逻辑1高电平。总线空闲时接收端稳定读到逻辑1不会误判。如果没有上下拉电阻在有较大的噪声干扰时A/B线压差可能会大于200mV从而传递错误电平为什么上下拉电阻不能太大也不能太小电阻值问题太大如10kΩ分压后A-B压差太小0.2V接收端无法识别失去保护意义太小如100Ω电流过大功耗高且会严重降低信号摆幅影响长距离传输折中方案390Ω ~ 1kΩ确保空闲压差在0.3V~0.8V之间既足够识别又不会过度消耗功率。串行通信标准对比特性UART (TTL)RS-232RS-485传输距离 2 米≤ 15 米≤ 1200 米抗干扰能力弱单端信号中高压单端强平衡差分拓扑结构点对点1:1点对点1:1多点总线1:N电平标准单端信号逻辑 00V逻辑 13.3V 或 5V单端信号负逻辑• 逻辑 0 (SPACE)3V ~ 15V• 逻辑 1 (MARK)-3V ~ -15V差分电平差分A-B 压差•发送端逻辑 12V ~ 6V(A B)逻辑 0-2V ~ -6V(B A)•接收端逻辑 1≥ 200mV(A B)逻辑 0≤ -200mV(B A)速率通常 1 Mbps标准最高20 kbps实际常用 115.2 kbps最大10 Mbps长距离时降速典型场景板内调试、芯片间通信短距离设备调试、老式PC串口工业自动化、远距离通信、多节点组网错误检测可选奇偶校验可选奇偶校验无硬件级校验需上层协议处理
返回列表