一种BiSS协议的编码器数据读取方法

摘要:针对目前BiSS协议编码器数据读取多采用FPGA实现的实际情况 , 文中介绍一种基于XMC4500微控制器的BiSS协议编码器数据读取实现方案 。 采用该方案 , 可将使用BiSS协议编码器的伺服系统控制电路常用的DSP+FPGA双控制器架构方式简化为XMC4500单控制器方式 , 在一定程度上降低了硬件成本和开发难度 。 用该方案采集BiSS协议编码器数据的实物平台 , 使用LabVIEW显示对读取的数据 , 并与电机自带增量编码器值进行对比 , 同时记录BiSS协议编码器实际数据波形图 , 结果表明 , 该方案具有较高的采样速率和较好的读取效果 , 具有一定参考价值 。
0引言
BiSS协议是一种快速双向通信协议 , 具有通信速率高、抗干扰能力强、硬件电路简单等优点 , 在伺服系统位置传感器领域得到了越来越广泛的使用[1-2] 。 BiSS通信协议物理接口采用全双工差分RS422方式 , 但由于其时序较为独立及长度不定 , 难以使用常用的通用异步串口直接对BiSS协议编码器数据解码读取 。 实际使用中 , BiSS协议的编码器数据可通过编码器厂商提供的专用解码芯片、微控制器或FPGA读取[3] 。 编码器厂商提供的专用解码芯片一般价格较高且功能单一;文献[4]中提出使用CY8C29466微控制器对BiSS协议编码器数据进行解码 , 以读取正确的解码值 , 但受限于微控制器功能及性能 , 只能实现较低的采样速率 , 难以满足高速、高性能伺服控制系统的要求;文献[5]提出使用A3P400型FPGA对BiSS协议编码器数据进行解码 , 以准确读取解码值且具有较高采样速率 , 但FPGA只用于编码器数据采集 , 实际伺服电机由DSP驱动 , 即伺服系统电路结构采用DSP+FPGA方式实现 。 这种双控制器方式通过高性能DSP实现控制算法的快速准确计算 , 同时利用FPGA的并行机理完成信号采集[6] 。 如果可以使用较为简化的硬件电路实现对BiSS协议编码器数据准确的解码 , 并具有较高的数据采样速率 , 这样的方式显然具有更高实用价值 。
一种BiSS协议的编码器数据读取方法
文章图片
1设计方案
BiSS-B在BiSS协议中应用最为广泛 , 由于涉及专利保护问题 , 随之开发出BiSS-C协议 , BiSS-C与BiSS-B可实现物理接口兼容[7] , 不同点在于两者时序定义略有差异 , 文中编码器使用BiSS-B协议 。 BiSS协议具有传感器模式和寄存器模式两种不同工作模式 , 前者可实现编码器数据的快速读取 , 后者可实现编码器寄存器数据的读写双向访问[8] , 文中基于传感器模式对方案的可行性进行了验证 。
BiSS协议编码器使用Hengstler公司的AD36-1213AF.0RBI多圈绝对式光电编码器 , 其具有500kHz带宽 , 适合作为无刷伺服电机位置传感器 。 BiSS-B协议传感器模式时序如图1所示 。
MA为BiSS总线的时钟线 , SLO为Biss总线的数据线 。 当MA和SLO同为高电平状态时 , 总线处于空闲时间 , 不进行数据传送 。 非空闲时间BiSS-B协议编码器数据线SLO上的数据帧格式如图2所示 , 图中括号内的数字表示该段数据所占用的MA时钟个数 , 不带括号的表示与MA时钟个数无关 。
一种BiSS协议的编码器数据读取方法
文章图片
根据3种不同BiSS协议编码器数据解码方式特点和BiSS-B协议编码器时序的分析 , 文中采用XMC4500微处理器实现对BiSS-B协议编码器数据的解码 , 该方案硬件电路组成如图3所示 。
一种BiSS协议的编码器数据读取方法
文章图片
XMC4500是Infineon公司推出的基于ArmCortex-M4内核的微控制器 , 主频可以达到120MHz , 其内部集成多种专用电机控制外设 , 有多达6个通信接口方面 , 分别用于UART、SPI、IIC和IIS等4种不同功能的通用串行接口 。 本文使用其SPI功能接口实现对BiSS-B编码器数据的解码 。 XMC4500的SPI接口MOSR引脚作为输出引脚 , 输出BiSS协议编码器时钟线MA信号;MRSO引脚作为输入引脚 , 采集BiSS协议编码器数据线SLO上的信号 。 LabVIEW是一种图形化编程的数据采集软件 , 具有数据读取、数据分析、数据管理等功能 , 可减少程序代码编写 , 缩短设计时间[9] 。 为方便对BiSS编码器数据的观察 , 使用LabVIEW设计了对应的上位机 , 显示XMC4500通过UART接口定时发出的编码器解码数据 。