当前位置:网站首页>BISS绝对值编码器_TI方案_线路延迟补偿
BISS绝对值编码器_TI方案_线路延迟补偿
2022-08-09 11:11:00 【王崇卫】
这篇主要是介绍一下BISS编码器协议,以及TI的对于绝对值编码器的方案。主要针对BISS的是线路延迟补偿的一些介绍。顺便一提,有一说一,TI的文档写的全,还细致。
关于SSI的绝对值编码器协议可以看这里:
SSI编码器通信
首先简单的介绍一下BISS的编码器协议。
它和SSI的硬件一样,兼容SSI接口。为了通信速度更快,BISS加入了传播延迟的补偿功能。又怕数据出错,加入的数据诊断CRC校验。在SSI只能单向通信的情况,那BISS又有了双向通信,可以对编码器进行设置。并且不满足点对点的通信,那又有组网功能。所以其特点:
- 高速通信
- 低时延且固定
- 延迟补偿
- 数据诊断(crc)
- 双向通信
- 组网能力
在TI文档:《Universal Digital Interface to Absolute Position Encoders》中有表进行了几个编码器的对比:
线路延迟
TI文档《Interface to a 5-V BiSS Position Encoder》有描述线缆的长度和信号传输的延迟关系。
电缆对较长电缆长度的传播延迟有显着贡献,这远远超过了 RS485 收发器的传播延迟。电缆的传播延迟取决于电缆的电气参数,根据经验,大约使用 5 ns/m。
理想情况下,传播延迟与相对介电常数εr和相对磁导率μr的平方根成反比。 对于PVC,在1 MHz时的相对介电常数εr约为4至4.5。 假设µr约为1,则传播速度为0.3 / sqrt(4)[m / ns] = 0.15 [m / ns]。 倒数是6.6 ns / m
而1M的时钟,其一个时钟单位才1us。要是10M的时钟,一个时钟单位100ns。
BISS的线路延迟补偿原理
BISS-C的ACK提供了可以检测准确延迟的机制。BiSS主设备以时钟MA开始传输帧。 MA的第一个上升沿用于从站的同步。 随着MA的第二个上升沿,从机将SLO线设置为0并生成一个确认信号(Ack)。
延迟补偿原则:
从时钟脉冲MA到SL信号输入的总信号延迟可以分别由主机检测和补偿。 为了确定线路延迟,主机测量从第二个MA上升沿到从机响应的Ack位(SL:Ack)下降沿的延迟。
TI的方案
这《适用于 C2000 MCU 的 BiSS-C 绝对编码器主接口参考设计》这个文档中有详细的介绍:
这个文档中有TI对于biss的通信库的介绍,TI的 control suit里面还有这几种编码器通信的库,以及例程。
ti使用c2000系列的F28379D,它带有可编程逻辑块。
这个模块能让多个外设共同协调,配置,计算相关值。以下是内部实现图:
其原理大致:
利用了两路PWM,SPI,和INNPUT XBAR 以及CLB,四个外设。
- PWMB是作为SPI从机的时钟
- PWMA是作为编码器的MASTER,
- 其接受数据还是用的SPI的外设,不过是作为从机。两路PWM即是为了检测到线延迟,进行相位时间的调整。
- Ack的检测即是图中INNPUT XBAR监测SPISIMO来确定时间。
- 可编程逻辑块就是把pwm模块,spi模块,INNPUT XBAR把他们连接起来。
mcu对于BISS的开发
在禹衡光学《新型传感器通信总线BISS介绍》这篇文章中较为详细介绍了BISS。https://wenku.baidu.com/view/1b9fa24a6c175f0e7cd13768.html
提到MCU开发BISS的难点:
随着MCU的发展,对于电机控制类的MCU,很有可能会开发加上对于这些绝对值编码器的外设。可能在一些驱动器产品中就可以省去一片FPGA或者CPLD。
我也确实看到的有MCU介绍,去集成这种外设:
反正牛逼就是了。
禹衡光学《新型传感器通信总线BISS介绍》
《适用于 C2000 MCU 的 BiSS-C 绝对编码器主接口参考设计》
《Interface to a 5-V BiSS Position Encoder》
《Universal Digital Interface to Absolute Position Encoders》
被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫
边栏推荐
猜你喜欢
Error: Cannot find module ‘./application‘
c语言函数的递归调用(汉诺塔问题,楼梯递归问题等)
链表基本操作(详解)
【VIBE: Video Inference for Human Body Pose and Shape Estimation】论文阅读
剖析STM32F103时钟系统
Arduino学习总结 + 实习项目
fork creates multiple child processes
x86异常处理与中断机制(1)概述中断的来源和处理方式
People | How did I grow quickly from programmer to architect?
API接口是什么?API接口常见的安全问题与安全措施有哪些?
随机推荐
PAT1006
依赖注入(Dependency Injection)框架是如何实现的
matlab fcnchk 函数用法
PTA习题 三角形判断
Beauty Values
FreeRTOS列表和列表项源码分析
How tall is the B+ tree of the MySQL index?
Use gdb to debug multi-process programs, debug parent and child processes at the same time
gdb tui的使用
双向链表的各种操作
golang 标准库json Marshal、Unmarshal坑
log4net使用指南(winform版,sqlserver记录)
图片查看器viewer
x86 Exception Handling and Interrupt Mechanism (3) Interrupt Handling Process
Paper Sharing | ACL2022 | Argument Relation Extraction Based on Transfer Learning
杂记(6)
二叉树 前序是根在前(根左右)中序(左根右)
PAT1011
富媒体在客服IM消息通信中的秒发实践
ECCV 2022 Oral | CCPL: 一种通用的关联性保留损失函数实现通用风格迁移