当前智能汽车上一般配置有12路超声波雷达,这些专用超声波雷达内置了MCU,直接输出数字化的测距结果,一般硬件接口采用串口RS485,通信协议采用modbus。
一、RS485与RS232(UART)有什么不同?
1.接口物理结构
-
RS232接口通常以9个引脚(DB-9)或25个引脚(DB-25)的形态出现,常见于个人计算机上,通常标记为COM1和COM2。
-
RS485接口则没有具体的物理形状,它是根据工程实际情况而选择的接口。
2.接口电子特性
-
RS232接口的信号电平值较高,任何一条信号线的电压均为负逻辑关系。逻辑“1”为-3~-15V,逻辑“0”为+3~+15V,噪声容限为2V。这种高电平容易损坏接口电路的芯片,且与TTL电平不兼容,需要电平转换电路才能与TTL电路连接。
-
RS485接口则采用差分信号传输,逻辑“1”以两线间的电压差+2V~+6V表示,逻辑“0”以两线间的电压差-6V~-2V表示。这种信号电平较低,不易损坏接口电路芯片,且与TTL电平兼容,方便与TTL电路连接。
3.通讯距离
-
RS232适合本地设备的通信,传输距离相对较短,一般限制在20米以内,最大标准值为15米,且只能点对点通讯。
-
RS485则具有更远的传输距离,从几十米到上千米不等,最大无线传输距离可达1200米。
4.多点通讯支持
-
RS232通常用于单端一对一通信(一主一从),在总线上只允许连接1个收发器,不支持多站收发能力。
-
RS485则支持一对多(一主多从)通信,在总线上允许连接多达128个收发器,具有多站通讯能力,方便建立设备网络。
5.传输速率
-
RS232的传输速率相对较低,最大速率为20kB/s。
-
RS485的传输速率则更高,最大传输速率可达10Mbps。
6.通讯线选择
-
RS232可以采用三芯双绞线、三芯屏蔽线等。
-
RS485则可以采用两芯双绞线、两芯屏蔽线等。
7.传输规范
-
RS232是一种异步串口协议,采用异步传输方式,数据帧中不包含时钟信号,通过起始位和停止位确定数据传输时序。
-
RS485则是一种半双工同步协议,采用差分传输方式,具有更好的抗干扰性。
二、Modbus协议是什么?
Modbus协议是一种串行通信协议,由Modicon公司(现为施耐德电气Schneider Electric)于1979年提出,用于可编程逻辑控制器(PLC)的通信。以下是对Modbus协议的主要特点和详细解释:
1.定义与标准
-
Modbus协议已经成为工业领域通信协议的业界标准(De facto),并且是工业电子设备之间常用的连接方式。
-
它是一种基于主从结构的通信协议,定义了一系列规范和命令格式,用于实现不同设备之间的数据传输和通信。
2.版本与变种
-
Modbus协议存在多种版本和变种,以适应不同的网络和接口需求。例如,有Modbus RTU(远程终端单元)和Modbus ASCII两种串行通信变种,以及Modbus/TCP用于TCP/IP网络。
-
Modbus RTU采用二进制表示数据,具有紧凑和高效的特点;而Modbus ASCII则是一种人类可读的表示方式,但相对冗长。
3.特性与优势
-
免费且公开:Modbus协议是公开发表且无版权要求的,这使得它得到了广泛的应用。
-
支持多种接口:Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传输,如双绞线、光纤、无线等。
-
简单易懂:Modbus的帧格式简单,易于开发和部署。
-
可靠性好:Modbus协议需要对数据进行校验,确保数据传输的可靠性。在串行协议中,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。
4.应用与架构
-
Modbus协议被广泛应用于工业自动化领域,用于各种设备间的数据交换和通信。
-
它采用主从方式定时收发数据,在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令。
-
Modbus应用协议是OSl模型第7层上的应用层报文传输协议,用于在通过不同类型的总线或网络连接设备之间的客户机/服务器通信。
5.数据模型与功能
-
Modbus的数据模型是以一组具有不同特征的表为基础建立的,包括离散量输入、线圈、输入寄存器、保持寄存器4个基本表。
-
Modbus应用协议使用功能码列表来读或写数据,或者在远程服务器上进行远程读/写寄存器列表、读/写比特列表、诊断以及标识等处理。
三、如果让你设计一款 12路车载超声波雷达,采用 stm32F103+HC-SR04超声波模块,对外提供RS485和Modbus协议,你的设计方案是什么?
(1)系统概述
本设计旨在开发一款12路车载超声波雷达系统,采用STM32F103作为主控制器,结合HC-SR04超声波模块实现距离测量。系统通过RS485接口和Modbus协议与外部设备通信,提供稳定可靠的数据传输和交互功能。
(2)硬件设计
-
主控制器:采用STM32F103微控制器,具备高性能、低功耗和丰富的外设接口,满足系统对实时性和处理能力的需求。
-
超声波模块:选用HC-SR04超声波模块,该模块具有测量范围远、精度高等优点,适用于车载雷达系统。通过STM32F103的GPIO端口与模块连接,实现距离测量功能。
-
RS485接口:采用RS485通信接口,实现与外部设备的长距离、高速率数据传输。选用合适的RS485收发器,将STM32F103的UART端口转换为RS485接口,实现数据通信。
-
电源管理:设计合适的电源管理电路,为系统提供稳定的电源供应。考虑车载环境的特殊性,采用宽电压输入设计,保证系统在各种电压波动下均能正常工作。
(3)软件设计
-
驱动程序:编写STM32F103的驱动程序,包括GPIO、UART等外设的初始化和配置。确保与HC-SR04超声波模块和RS485收发器的正常通信。
-
超声波测距算法:根据HC-SR04超声波模块的工作原理,编写测距算法。通过STM32F103的定时器功能,精确测量超声波从发射到接收的时间,进而计算出距离值。
-
Modbus协议实现:在STM32F103上实现Modbus协议栈,包括数据帧的封装、解析和通信流程控制等。通过RS485接口与外部设备进行数据交换,支持Modbus RTU和ASCII两种模式。
-
应用程序:编写应用程序,实现系统的整体功能和逻辑控制。包括超声波测距的周期性触发、数据处理和存储、Modbus通信的发起和响应等。
(4)系统测试与优化
-
功能测试:对系统进行全面的功能测试,确保各个模块和接口均能正常工作。测试内容包括超声波测距的精度和稳定性、RS485通信的可靠性和速率等。
-
性能优化:根据测试结果对系统进行性能优化,包括调整超声波测距算法的参数、优化Modbus通信的帧格式和通信流程等。以提高系统的整体性能和稳定性。
-
抗干扰设计:考虑车载环境的复杂性和电磁干扰问题,在硬件和软件上采取相应的抗干扰措施。如采用差分信号传输、增加滤波电路、优化通信协议等。
通过以上设计方案,可以开发出一款稳定可靠、功能丰富的12路车载超声波雷达系统,满足车载雷达应用的需求。