小黑人嘿嘿 发表于 2020-6-17 17:55:22

请教各位RS485如何发送16bit字长的数据?

最近控制伺服电机,使用的编码器是尼康多圈绝对值式的,发现尼康的编码器通讯协议是基于RS485的,其数据帧格式如下:

我用的是STM32做的控制芯片,想用它串口实现与编码器的通讯,但是发现STM32的数据帧格式是这样的,字长只能是8或9:

请教下各位这样的话要怎么实现双方之间的通讯呢?

我是一个大白菜 发表于 2020-6-17 17:57:36

自己软件实现串口?

ddplys 发表于 2020-6-17 18:19:58

需要串口转485芯片

gaolf_2012 发表于 2020-6-17 18:22:51

拆成2个字节呗

Himem 发表于 2020-6-17 18:26:02

本帖最后由 Himem 于 2020-6-17 18:32 编辑

gaolf_2012 发表于 2020-6-17 18:22
拆成2个字节呗

拆成两字节会多一个启动位停止位

发送可以用SPI之类同步串口来模拟时序,这样4帧加起来72bit,8位spi刚好,
就算多一些,最后一帧末尾补1也符合时序

不过接收看起来还是要软件实现

小黑人嘿嘿 发表于 2020-6-17 18:32:38

Himem 发表于 2020-6-17 18:26
拆成两字节会多一个启动位停止位

还不如用SPI之类同步串口来模拟时序,这样4帧加起来72bit,8位spi刚好 ...

是的,会多出起始位和停止位。但如果用SPI的话,尼康编码器又是基于RS485的,这要怎样通讯呢?

Himem 发表于 2020-6-17 18:33:54

本帖最后由 Himem 于 2020-6-17 18:37 编辑

小黑人嘿嘿 发表于 2020-6-17 18:32
是的,会多出起始位和停止位。但如果用SPI的话,尼康编码器又是基于RS485的,这要怎样通讯呢?
...

逻辑时序对就行,485只是物理层

擦鞋匠 发表于 2020-6-17 18:46:35

这个论坛上有人发过 模拟串口,这个是软件实现的,应该可以改成你要的时序。

20061002838 发表于 2020-6-17 22:02:05

用软件模拟吧

linjpxt 发表于 2020-6-17 23:31:51

我是用CPLD来做的,因为还有帧是带CRC的。

jufr12315 发表于 2020-6-17 23:48:40

io模拟串口

小黑人嘿嘿 发表于 2020-6-18 16:12:48

20061002838 发表于 2020-6-17 22:02
用软件模拟吧

嗯,看来只能这样了,谢谢哈

AMBB 发表于 2023-8-19 09:17:03

小黑人嘿嘿 发表于 2020-6-18 16:12
嗯,看来只能这样了,谢谢哈
(引用自12楼)

大哥,请问下问题解决了吗?我最近也在搞尼康的设备,协议格式差不多,想请教下

ibmx311 发表于 2023-8-19 09:48:22

坚决上epm240,又不是太贵

wxws 发表于 2023-8-19 13:23:04

一颗树莓派rp2040搞定,对就是那个破解switch游戏机的IC
页: [1]
查看完整版本: 请教各位RS485如何发送16bit字长的数据?