维特智能角度传感器WT901C—485入门原理+软件使用+通讯学习

一.基础原理

为什么要写RS-485通信基础呢?因为我们主要要讲的设备是维特智能角度传感器WT901C—485,我们从它的名字分析这个设备:

WT:这个就单纯是公司缩写没什么好说;WT901:代表九轴姿态传感器;C:表明该型号支持:

  • 加速度计 / 陀螺仪 / 磁力计全传感器校准
  • 温度漂移补偿
  • 动态卡尔曼滤波算法(与基础版的差异)

最后就是通信接口标识(485)这个表示采用RS—485差分通信接口,下面就说RS—485通信基础和里面涉及的半双工通信原理。

1.1RS-485通信基础

一个通信协议涉及硬件层协议和软件层协议,硬件层协议就是类似RS—485等,软件层典型是Modbus协议,TCP等,在RS—485通信协议里我用我的理解简单概括描述一下我对这个通信的硬件的基本了解:

通过硬件芯片将 MCU 输出的单端 TTL 信号(0V/5V)转换为抗干扰的 RS-485 差分信号(A/B 线电压差表示 0/1),接收端再逆向转换回 TTL 信号供 MCU 识别,全程无需软件参与,属于物理层硬件转换。

里面的核心流程:

发送(TTL电平转换为RS—485信号)

  • MCU 输出单端 TTL 信号:逻辑 0(0V)或 1(5V),单信号线易受干扰。
  • 硬件芯片转换为差分信号:
    • TTL 低电平(0V)→ 转换芯片使 RS-485 的 B 线电压 高于 A 线(如 B-A=+2V~+6V,代表逻辑 0)。
    • TTL 高电平(5V)→ 转换芯片使 RS-485 的 A 线电压 高于 B 线(如 A-B=+2V~+6V,代表逻辑 1)

接受(RS—485信号转换为TTL电平)

  • 芯片检测 A/B 线差分电压:

    • 若 A-B>+2V → 转换为 TTL 高电平(5V)。
    • 若 B-A>+2V → 转换为 TTL 低电平(0V)。
  • 输出单端 TTL 信号:供接收端 MCU 识别,完成信号还原。

1.2半双工通信

半双工是一种通信模式,指数据可以在两个方向传输,但 同一时间只能单向传输(即发送时不能接收,接收时不能发送)。通信双方共享一条传输通道,通过 分时复用 的方式交替发送和接收数据。

在RS—485里通信线有两条,但是我们每一次传输这两条通信线都要被使用,所以没有办法双向传输,所以RS—485是一个半双工通信,但是这个通信需要我们在上位机的软件里面进行约束,也就是岔开时间区间,因为我们的两个MCU传输数据时候,不知道对方是否传数据了所以我们不区分就可能导致两个信号的冲突。

二.软件使用

使用维特智能的角度传感器要进行驱动调试,所以我们要先下载驱动,这个我们可以在官网下载,地址为下:

CH340串口驱动

你可以在这个官网页面里查到角度传感器USB方法连接电脑之后驱动的下载和按照方法,官方网站的下载和驱动方案很详细了我这里不过多赘述,仔细看着来就好;还有软件的下载地址我也放在下面了:

软件下载

操作方法在官方文章里写了,放在下面:

六轴九轴产品上位机使用说明

在我们连接成功之后就可以实时看见各种信息了。

我们这个地方官方文件里给出了很详细的步骤了我们就不多过赘述了。

三.通讯学习

我这篇博客主要想要讲述的其实就是串口通信利用Modbus报文通信接受维特智能角度传感器的WT901C—485的信息,我们先看一下维特的角度传感器的私有协议,也就是角度传感器的所有功能的寄存器地址和数据,还是看我们的官方文档:

WIT私有协议

我们想做的是使用串口调试助手给角度传感器写入报文并通过返回值判断,我的串口调试助手是UartAssist,现在基本流行的串口调试助手应该都没什么问题都可以使用。

我们在WitMotion里可以看见我们的通讯里面通讯速率(波特率)和设备地址(记住设备地址)
在这里插入图片描述

然后我们打开我们的串口调试助手,在串口设置里面设置为相同的波特率,还有串口号

在这里插入图片描述

这里面我们设置Modbus指令,我们写下ModbusRTU的报文,我们可以看左边,从站设备ID号就是我们上面的设备地址我设置的是0*50,功能码用3读取保持寄存器,因为我要测的是X,Y,Z角官方文档里X角寄存器为3D,报文要的是16进制,所有写入的报文地址是00 * 3D,寄存器地址就是00 *3D,寄存器数量为3,所以最后我们的报文为:50 03 00 3D 00 03 99 86最好两位是CRC检验码你可以从Modbus指令功能块里生成,并发送。

在这里插入图片描述

接受设置一定要选择HEX。

我们来解析一下这个回应报文:

50 03 06 00 23 FF F9 94 10 9A 08

根据官方文章给的计算方法:
在这里插入图片描述

这个计算方法算完之后就可以接受到我们的角度值。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐