BISS-C 8通道采集renishaw传感器及其CRC校验
背景
BISS-C 是常见的位置编码器传输协议,相对于传统的协议,支持更快的传输速度,电器接口为电压差分RS422或者485,抗干扰能力较强,在精密位置传输中应用广泛。
下述信息源自雷尼绍
典型的请求循环进程如下:
-
- 当空闲时,主接口使MA线保持高电平。光栅通过使SLO线保持高电平显示它已准备就绪。
-
- 主接口通过开始在MA上传输时钟脉冲来请求位置采集。
-
- 光栅通过将MA的第二上升沿的SLO线设为低电平做出响应。
-
- 完成 “Ack” 周期后,光栅将数据传输到与时钟同步的主接口,如上图所示。
-
- 当所有数据都传送完毕,主接口停下时钟,将MA线设为高电平。
-
- 如果光栅尚未准备进行下一个请求周期,它会将SLO线设为低电平(超时周期)。
-
- 当光栅准备进行下一请求周期时,它通过将SLO线设为高电平的方式提示主接口。
-
Ack 这是读数头计算绝对位置的时间段。
参见下面的时序信息表。 -
起始和 “0”(每个为1位)
光栅传输起始位,发信号给主接口开始传输数据。
起始位始终为高电平, “0” 位始终为低电平。 -
位置(26或32位)
绝对位置数据为二进制格式,首先发送给MSB。对于圆光栅,每转正好有2n个脉冲,之后脉冲数溢出绕回到零。
[忽略位置数据的最小有效位可能获得较低的分辨率。 -
error定义如下:
误差位低电平有效: “1”表示传输的位置信息已被读数头的内置安全校验算法校验,结果正确; “0”表示内部检查失败,
位置信息不可信。对于有温度感应的RESOLUTE系统,如果温度超过产品最高指标,错误位也设为“0”。
请注意,产品规格手册中指定了RESOLUTE系统的工作温度限制 -
警告(1位)
警告位低电平有效: “0” 表示应对光栅尺(及/或读数窗口)进行清洁。
请注意,警告位并不表示位置数据可信。只有错误位才能用作此目的。 -
位置数据CRC(6位)
位置、错误及警告数据的CRC多项式为: x6 + x1 + x0。它先被传输为MSB,然后转换。
起始位和 “0” 位从CRC计算中忽略。
设计板卡特点
- 标准3U PCIe/PXIe 接口形式;
- VHDCI68 接头;
- 8 路点对点BISS-C接口;
- 8路BISS-C可以并行处理,支持外采样时钟和内采样时钟2种模式,每个采样时钟触发一次位置信息读取;
- BISS resolution ,即位置信息bit位数,软件可配置,目前测试完成24-32;
- FPGA完成BISS解码后将有效数据送给上位机,软件支持单点、有限点、连续采集模式;
- 采样时钟支持内部与外部;
- 触发支持开始触发、参考触发;
- 8路PFI,只支持静态处理,可以路由触发信号等输入输出;
- c# 驱动
实际运行截图,应用程序使用C# 编写
CRC校验
雷尼绍的传感器使用CRC6,多项式为X6+x1+1 , 0x43 ,输出6bit crc结果取反,这个和ITU的做法不一样,输入是没有取反的,这点要注意,下面给了个例子
可以在该链接进行验证,与传感器实际输出是一致的 https://www.ghsi.de/pages/subpages/Online CRC Calculation/index.php?Polynom=1000011&Message=3977d70fb
给出几组位置信息和对应的CRC校验结果:位置为32bit数据,计算CRC需要左移2bit 然后加上3(1 bit warn, 1 bit error)
position | crc |
---|---|
0xe5df5c3e | 0x0000003a |
0xe5df611b | 0x00000009 |
0xe5df58f5 | 0x0000003e |
0xe5df5eb2 | 0x00000027 |