首页 > 其他分享 >BISS-C 8通道采集renishaw传感器及其CRC校验

BISS-C 8通道采集renishaw传感器及其CRC校验

时间:2023-04-12 17:55:21浏览次数:52  
标签:位置 share renishaw 接口 BISS CRC 光栅

背景

BISS-C 是常见的位置编码器传输协议,相对于传统的协议,支持更快的传输速度,电器接口为电压差分RS422或者485,抗干扰能力较强,在精密位置传输中应用广泛。

下述信息源自雷尼绍

典型的请求循环进程如下:

    1. 当空闲时,主接口使MA线保持高电平。光栅通过使SLO线保持高电平显示它已准备就绪。
    1. 主接口通过开始在MA上传输时钟脉冲来请求位置采集。
    1. 光栅通过将MA的第二上升沿的SLO线设为低电平做出响应。
    1. 完成 “Ack” 周期后,光栅将数据传输到与时钟同步的主接口,如上图所示。
    1. 当所有数据都传送完毕,主接口停下时钟,将MA线设为高电平。
    1. 如果光栅尚未准备进行下一个请求周期,它会将SLO线设为低电平(超时周期)。
    1. 当光栅准备进行下一请求周期时,它通过将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校验

不了解CRC的可以观看资料https://www.bilibili.com/video/BV14A411h7tk/?buvid=XX83ABF8119634A173595B257F2A937E93ED5&is_story_h5=false&mid=okzdJIv17RhWwU32C0i5OQ%3D%3D&p=1&plat_id=114&share_from=ugc&share_medium=android&share_plat=android&share_session_id=23e6b13f-bde2-42c3-b0c8-bc95f4c01c6e&share_source=WEIXIN&share_tag=s_i&timestamp=1681139085&unique_k=zHWuvAE&up_id=60091607

雷尼绍的传感器使用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

标签:位置,share,renishaw,接口,BISS,CRC,光栅
From: https://www.cnblogs.com/xingce/p/17310601.html

相关文章

  • CRC Cyclic Redundancy Check 循环冗余校验 CRCs Cyclic Redundancy Codes
    前言在数据传输过程中,难免会因为硬件问题,信号干扰,缓存问题,代码逻辑等导致读取到的数据与写入的数据不一致,对于这种错误的数据,我们需要能够及时发现并且进行错误处理。如果把错误的数据当作正常数据使用,会导致不可预料的各种错误。如何校验数据是否正确,正常做法就是声明一种算法,......
  • modbus CRC校验源码转载
     c#CRC校验 用于学习记录原文载自:https://www.cnblogs.com/ayxj/p/11481969.html用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)   ......
  • 关于CRC校验的解释
    CRC校验(循环冗余校验)CRC即循环冗余校验码(CyclicRedundancyCheck):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查......
  • 设要采用CRC编码传送的数据信息x=1001,当生成多项式为G(x)=1101时,请写出它的循环校验码
    题目:设要采用CRC编码传送的数据信息x=1001,当生成多项式为G(x)=1101时,请写出它的循环校验码。若接收方收到的数据信息x'=1101,说明如何定位错误并纠正错误根据题目描述,需......
  • scrcpy软件的使用
    一、scrcpy软件介绍:scrcpy是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需......
  • modbusCRC 16校验 本机通过
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacemodbusCRC16{publicclassCla......
  • CRC 基础介绍
    CRC的用途CRC(CyclicRedundancyCheck)校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称......
  • scrcpy安装与adb常用命令
    一、资源下载scrcpy安装包:https://download.csdn.net/download/qq_28807911/87527008github:https://github.com/Genymobile/scrcpy二、scrcpy安装1.右击此电脑-属性......
  • Modbus指令CRC校验位生成例程解析
    010607D001F48950,可以分为以下部分:项目Value从机地址01功能号06数据地址07D0数据01F4CRC8950循环冗余校验(CyclicRedundancyCheck,CRC)是一种根据网络数据包或计算机文......
  • 使用C++实现Modbus CRC16检验相关内容
    使用C++实现ModbusCRC16检验相关内容ModbusCRC-16校验代码以下为ModbusCRC-16校验代码函数:其中参数int*crc_sum为校验返回值,分为两个字节;参数int*data_blk_ptr......