基于STM32F405平台的多摩川协议编码器通讯过程(1)

文章目录[隐藏]

RS485通讯

多摩川通讯采用RS485通讯协议。
简单来说,485通讯的特点就是半双工差分信号,总线通讯。
下图是某国产品牌采用了多摩川通讯协议的绝对值编码器接口。
某国产品牌采用了多摩川通讯协议的绝对值编码器接口
差分:图中可以看到,该接口有485+、485-这两个数据接口,这两个接口电平信号的差值,作为传递数据的总线,此外还有5V和GND为编码器供电。
半双工:所谓半双工,即MCU既可以收,又可以发,但是不能同时收和发。

而我们一般用到的MCU芯片,不论是ST芯片上的串口USART,还是DSP上面的串口SCI,都是具有两条线的,一条TX用于发送数据,一条RX用于接收数据,这样的结构叫作单端信号。而且从原理上讲,这样的结构是可以同时实现数据的收和发的,这样的通讯方式叫作全双工
但是,对于STM32F405这款芯片来说,由于数据的发送和接收都用了同一个数据寄存器DR,所以在工程的开发过程中要注意合理调配数据的收发时刻。

为了将MCU的单端全双工信号,转成差分的半双工信号,我们要用到一款转换芯片SN65HVD75DR。
在这里插入图片描述
除去辅助电路,这款芯片的工作原理就是:

  • 当我们把2、3引脚同时拉低时,6、7引脚上的差分数据会被传递到1引脚上,1引脚连接MCU的RX引脚,进而实现读取数据。
  • 当我们把2、3引脚同时拉高时,4引脚上的数据会被传递到6、7引脚上变成差分数据,4引脚上的数据是MCU的TX引脚发出的,进而实现发送数据。
    好,现在我们已经具备了数据的收和发的功能了。那么我们怎样与采用了多摩川协议的编码器“对话”呢?

多摩川通讯协议

下图所示是多摩川通讯协议。
图片3
简单来说就是MCU发出一条CF指令,编码器就会接着返回一组报文,报文中包含CF、SF、DF以及CRC等内容。

  • CF
    在这里插入图片描述
    上图所示为多摩川文档对CF指令做出的解释。
    图中给出的bit位是线路上面的传送顺序,而STM32的串口通讯是小端模式。也就是先传输的是低字节,每个字节里先传输的也是低位。这也很好理解,硬件嘛,对于依次接收的每一位,都是由低地址到高地址保存下来的。所以字节之间的读取顺序和字节里每一位的读取顺序应该是一致的,那么就是小端模式。

    总的来说就是ID0=0x02,ID3=1A。这两个是我们经常用到的两个指令。
    需要说明的是,编码器返回的CF与MCU发出的CF是一致的,便于我们进行通讯检查。

  • SF
    SF是状态位,反应了编码器的状态,包括编码器是否过热、电池供电是否正常以及数据的解析是否正确等。
    在这里插入图片描述

  • DF
    根据MCU发出的CF的不同,编码器返回的DF也会随之而不同,具体的对应状态如下图所示。
    在这里插入图片描述
    ABS0~ABS2:表达的是编码器的单圈值。再一次,因为串口的传输是小端通讯,因此
    编码器单圈位置值 = (ABS2 << 16) | (ABS1 << 8) | (ABS0 << 0)

    ABM0~ABM2: 表达的是编码器的圈数值。
    圈数 = (ABM2 << 16) | (ABM1 << 8) | (ABM0 << 0)

    ALMC:编码器错误,每一位表达了不同的错误。
    在这里插入图片描述

  • CRC
    在这里插入图片描述
    同样是小端,计算方法在图中。

版权声明:本文为CSDN博主「嵌入式相关入门」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40864299/article/details/122645222

生成海报
点赞 0

嵌入式相关入门

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32读取编码器数据(STM32-1)

编码器(encoder)是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。按照外形可以分为实心轴和空心轴;按照工作原理编码器可分为增量式和绝对式两类。增量式编码器是将位移转换成周期性

HAL库中断下降沿解决编码器问题方案

EC11旋转编码器 下降沿中断触发判断正反转问题解决方案 首先上一张旋转编码器的电平逻辑图: 先说一下思路:A引脚我设置了下降沿中断触发,B引脚设置了读输入。当A引脚出现由高电平向低电平转换的现象&

基于STM32F4系列 之 霍尔编码器减速直流电机

文章目录 前言一、关于编码器介绍二、编码器工作原理三、编码器电机配置四、代码配置五、实验工程链接前言 这篇博文为作者实验经历写下的笔记,借鉴学习了多位博主的博文,并总结了互联网资料。本篇使用的是JGB37-520减