首页/协议速查/RS485
🔌

RS485 差分总线

工业总线
工业现场总线之王:差分信号传1200m、一主多从,仪表组网标配。
🧩 核心原理
📈 时序 / 工作过程图
RS485 差分信号与方向控制差分抗共模干扰 → 1200m 远距离 · 半双工需切换收发A-B 差分AB逻辑1(A>B 差分>200mV)逻辑0(A<B 差分<-200mV)DE 方向控制接收发送半双工:DE 拉高才能发送 · 终端电阻120Ω 匹配 · 共模范围 -7V~+12V
⚙️ 配置 / 使用要点
  1. UART + RS485 收发芯片(如SP3485/MAX485)
  2. DE/RE 引脚控制收发方向
  3. 总线两端120Ω终端电阻
  4. 从机地址分配:Modbus地址1-247
  5. 软件:发送前DE置1,发完延时置0
🛠️ 项目示例
RS485 半双工方向切换发送
// MAX485: RO→UART_RX, DI→UART_TX, DE/RE→PA1
#define DIR_TX  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET)
#define DIR_RX  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET)

void rs485_send(uint8_t* buf, uint16_t len){
  DIR_TX;                              // 切发送
  HAL_UART_Transmit(&huart2, buf, len, 100);
  while(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TC) == RESET);
  delay_us(20);                        // 等最后一位发出
  DIR_RX;                              // 切回接收
}
❓ 面试高频
RS485为什么抗干扰强?
差分信号只认A/B电位差,共模干扰(地电位差、电磁感应)被抵消;接收门限±200mV
为什么速率高了距离就短?
高速率位周期短,线缆分布电容/反射导致信号畸变占位比更大,需更高质量线或缩短距离
终端电阻怎么接?
只在总线物理两端各接一个120Ω,中间节点不接;阻值过小加重驱动负载
怎么防总线冲突?
一主多从架构+轮询机制;从机只在被点名时发送;加方向切换延时防止抢线
✅ 自查清单 (点击勾选,本地保存)
0/0
知道A/B差分逻辑
知道DE方向控制
会接终端电阻
知道速率-距离权衡
会写收发切换代码