新型编码器通信总线BiSS介绍
摘 要:BiSS通信协议是一种全双工同步串行总线通信协议,专门为满足实时、双向、高速的传感器通信而设计,在硬件上兼容工业标准SSI(同步串行接口协议)总线协议。其典型应用是在运动控制领域实现伺服驱动器与编码器通信。
◇ 编码器总线的现状和发展趋势
随着现场总线技术发展,SOC片上系统逐渐普及,控制系统全数字化已成该领域的发展方向和研究热点。编码器也在向数字化发展,从而带来传绝对式编码器和相关通信总线的技术进步。由于编码器在运动控制领域应用最多,编码器总线要满足运动控制器对精度、分辨率、响应速度的要求,应包括如下几个特征:
1、高速通信
2、时延固定
3、数据诊断
4、双向通信
5、低成本
高速通信有助于提高响应速度;编码器的精度和分辨率决定了控制系统的精度,时延是影响编码器精度的重要因素。运动控制器发出“读指令”的时刻到编码器开始采样这段时间理想情况下应是是固定的。这个时延越小,编码器的编码值的物理意义越准确。从而有利于伺服控制器的算法调节。
试想利用CAN总线实现编码器通信的情况。首先,伺服控制器发出一个CAN通信帧;然后,编码器从CAN通信帧提取出“读指令”;最后,编码器进行数据采样,并回传数据。这样的采样滞后是多长时间,时长是固定的么?作为对比,BiSS在MA(MA是主机发出的时钟)的第一上升沿采样数据,理论上是没有延迟的。
可以说,通用现场总线目前还不适合高速编码器通信。专门用于高速数据通信的传感器总线大都是编码器厂商开发,有很强的封闭性。比较有代表性的总线通信协议有EnDat2.2、Hiperface、SSI、NRZ等等。BiSS是国际通用协议且协议开放。BiSS通信协议目前的版本是BISS-C,应用BISS无需任何许可费用,BiSS协会会员还可以申请获得免费的IP核源代码和相关技术支持,维持BiSS协会会员资格无需缴纳任何费用,申请入会也是免费的
◇ BiSS通信协议的关键技术特征
1、二线串行同步数据总线,采用RS422接口,波特率达到10Mbit/s;采用LVDS接口,波特率>10Mbit/s,这反映了BiSS有高的响应速度;
2、通信效率高,每10uS传输超过64个比特,有效负载率大于80%。这反映出BiSS能承载高分辨率编码器数据;
3、线路时分复用,包括每个通信周期传输一帧的数据通信信道和传输一个帧位的寄存器通信信道。其中,寄存器通信和数据通信完全独立,互不干涉。对于不需要寄存器通信的应用场合,可以使用BiSS-CUnidirectional版本。这个版本的协议没有寄存器通信。
这反映了采用BiSS的控制系统有更好的稳定性和便利性。
4、多种安全机制确保数据可靠,BiSS的延迟补偿技术能补偿传输线带来的信号延迟,采用两组CRC生成多项式分别对传感器数据与寄存器数据进行校验。BiSS协议帧还包括一位报警位和一位错误位,CRC生成多项式可自定义。6位CRC能满足大多数应用,对于高安全场合(例如需要满足欧洲安全标准的场合),BiSS可以使用16位CRC。
这反映了BiSS传输更可靠,采用BiSS的控制系统更可靠。
5、数据同步,BiSS利用时钟信号同步传感器数据,传感器在第一个时钟脉冲到来时进行数据更新,每一帧到达后续电子设备的数据其传输延迟都是相同的,方便后续电子设备进行时延补偿,特别适合电机控制等对时间位置关系要求苛刻的应用场合。
这反映BiSS对于编码器精度的影响很小,有助于提高控制系统的高速特性。
6、组网能力,通过BiSS可以构成单总线传感器环网,一个通信周期采集全部传感数据,并且信号采集是同步的。
这反映BiSS的扩展性和前瞻性。
7、即插即用,BiSS支持从寄存器读出编码器参数,来配置数据通信。凡是支持BiSS标准EDS和Profile的编码器和控制系统都可以直接通信,无需修改任何程序。
这反映了BiSS高度的开放性和兼容性。
◇ BiSS通信协议的基本内容
1、组网方式
图1是BiSS的基本组网方式,叫point-to-point方式。后续电子设备(图中为PLC),通过差分信号向传感器提供时钟,传感器同步地通过差分信号向后续电子设备发出传感数据。在BiSS协议中后续电子设备被称为Master,传感器被称为Slave。在point-to-point方式下,Master可以接收Slave的数据,同时与Slave进行双向数据通信。
图1point-to-point组网
图2是BiSS的多从机组网方式,叫Multi-slaveNetworking。Master在一个周期可以内完成与多个Slave之间的通信。所有的设备按照菊花链首尾连接,每个Slave有两个端口,分别用于接收前端信号和向后端发送信号。这是一种类似流水线的工作方式,每个Slave接收上一个Slave的数据放在自己的发送队列队尾,同时将自身的数据优先发出。整个通信由Master发出的时钟信号进行同步。Master通过MO信号将Actuator数据串行地移入到每个Slave,同时通过SL信号依次接收每个Slave的数据。
图2Multi-slaveNetworking组网
2、BiSS的帧结构和数据通信
图3描绘了point-to-point组网时的BiSS通信帧。MA由Master发出用于驱动通信,SL是Slave发出的数据信号。完成1个BiSS通信帧表示Master收到1帧数据。
图3point-to-point组网的BiSS帧结构
图4描绘了Multi-slaveNetworking组网的BiSS通信帧,对于每一个Slave而言,不但要发送自己的数据,而且要接收并转发前一个Slave发过来的数据。
图4Multi-slaveNetworking组网的BiSS帧结构
BiSS通信过程可以描述为如下几个状态的切换:IDLE(空闲),StartFrame(帧开始),Tranmission(发送),Timeout(超时)。
IDLE,空闲状态;BiSS通信空闲,MA,SL保存常高。
StartFrame,开始帧通信:MA发送时钟,在MA第一个上升沿,Slave锁存传感器状态。在MA第二个上升沿,编码器将SL拉低,用于应答Master的通信请求。
理想状态下,SL拉低与MA第二上升沿的时延很小,在实际系统中,由于长线延迟、信号整形、滤波以及信号传递通过多级门电路等因素的综合作用,SL相对MA信号存在一定的相移,造成SL拉低滞后MA第二上升沿一段时间,这个时间被称为line-delay线路延迟,如果SL信号采样电路不能修正这个延迟,那么总线的通信距离和通信速率都要降低,以保证SL信号被可靠地采样。BiSS规定每个通信帧发起时都要检测一次line-delay,并加以修正。从而确保BiSS通信波特率可以达到10Mbit/s。
在line-delay期间,MA持续输出脉冲。
Tranmission,(发送):当SL信号从常高拉低后维持一段时间。这段时间叫ACK,表示Slave响应了MA信号,正在进行数据准备。通常ACK维持0.1us到8us之间,这与Slave数据是否准备就绪有关,对于特定的Slave,其ACK的长度是基本上是固定的。ACK期间MA持续输出脉冲。当SL发送1个BIT的START位(常‘1’),表示Slave数据准备就绪。开始数据发送。
SL会顺次发1个BIT的CDS信号,1个单周期字段(SCD);BiSS规定单周期字段长度要大于4个BIT,小于64个BIT。对于特定应用,字段长度由Slave厂商规定(例如:禹衡公司多圈编码器的单周期位域包括16个BIT的多圈计数、17个BIT的单圈位置,2个BIT的错误告警和6个BIT的CRC校验)。这个期间,MA持续输出脉冲。
Timeout,(超时):当SCD发出完成后,SL维持0.5~40us的低电平,这个时间段被称为Timeout,对于特定的应用,Timeout由Slave厂商规定。MA在Timeout期间发送CDM信号,该信号一直维持到SL被拉高,SL被拉高后,本次通信完全结束。
3、BiSS的寄存器通信
CDM和CDS是Master和Slave进行寄存器通信的信号。当Master与Slave进行个多个周期的数据通信后,Slave收到的Master发送的CDM序列和Master接收的CDS序列构成了BiSS寄存器通信帧,如下图5所示。
图5多个BiSS帧构成的寄存器通信序列
图6、图7描述了BiSS寄存器通信读写时序。通过时序图,可以了解BiSS可以与编码器进行双向数据交换。BiSS的寄存器通信有CRC校验,和读回校验(针对写时序)。
BiSS的寄存器通信占用带宽很少,对比EnData2.2和NRZ等有优势。这是由于伺服控制器初始化时读编码器参数情况多,正常工作时用户通常只关注错误报警信息,BiSS将错误报警信息放在实时性高的数据通信中,把耗时的寄存器通信用CDS和CDM实现,这种根据数据实时性设计不同的通信速率的方法,能够大幅节约通信带宽,有效降低通信时延。所以,使用BiSS编码器能带来更好的控制效果。
图6BiSS寄存器通信写时序
图7BiSS寄存器通信读时序
◇ BiSS通信协议的实现方法
1、硬件解码
对于采用硬件解码的用户,可以根据需要选择IC-HAUS提供的解码芯片,或者采用IC-HAUS提供的IP软核进行解码。也可以选择带有IP硬核的MCU。如果想利用IC-HAUS提供的IP软核实现数据通信和寄存器两种功能,需采用FPGA解码。FPGA资源数需大于1300个LE(将BiSS与MCU的接口设置为SPI时的编译的结果)或等效资源数。如果仅想实现数据通信,可以采用CPLD解码。CPLD资源数需大于96个LE(增加时钟分频电路和SPI接口后需150个以上的LE)或等效资源数。自行设计的难点是线延迟的处理,对于外引线很短或无外引线的应用,线延迟的变化很小,这时可以设计延迟固定的采样时钟,否则每个周期要进行一次线延迟补偿。
2、软件解码
用户可以通过IO模拟的BiSS时序,但这种方法不推荐使用。推荐使用MCU的硬件外设解码,这样能够将BiSS通信速度设定很高。而且节约了外部逻辑电路的成本,对于很多应用,节约的成本十分可观,同时对于产品的系列化有优势。一个功能强大的通用串行解码模块,采用不同的解码程序应该能够支持多种串行通信协议、全双工、半双工等等。例如:对于BiSS可以利用SPI的SCK可以用来模拟MA,MISO可以模拟SL。这样用需考虑三个问题:
1、MCU硬件模块的FIFO深度。有些MCU,外设的SPI寄存器长度是固定的,完成一帧BiSS通信需通信多次,中断多次。结果造成MA的波形不连续。这可能带来问题,造成通信出错。
2、MCU硬件模块是否具备线延迟补偿的能力。具有线延迟补偿能力的外设,可以应对实际应用环境的变化带来的影响,可以是需求的变化,环境的变化,线路老化等等。具有线延迟的系统,其可靠性和适应性比没有线延迟补偿的系统高得多。
3、CRC解码能力,CRC校验对MCU的处理能力提出了要求。
使用MCU进行解码要充分考察不同MCU外设的特点和处理能力,以及芯片厂家技术支持的力度,是否有成熟的设计等等。
3、混合解码
如果既想利用硬件解码,又想降低成本。可以使用混合解码的方法。例如用FPGA或CPLD的部分资源完成数据通信,将CDM和CDS信号引出交给MCU处理。这种方案是一种过渡性质的方案,同时也是很实用的做法。需要注意的是,CDM必须在通信发起前准备好。随着MCU和FPGA的发展。这种方案会逐渐淘汰,以降低系统之间的耦合性。
4、BiSS通信帧实例
图8给出了BiSS通信帧的实例,帮助读者直观地了解BiSS通信过程。
图8:BiSS通信帧实例
◇ BiSS通信协议与其他通信协议的对比
如下表1标所示,BiSS通信协议在协议开放性(Availablity)、网络结构(Connectivity、Master/slavecount、Multi-slavesynchronization)和线延迟补偿(Linedelaycompensation)具有领先优势,在高速性(Transmissionrate)和时延(Mincycletime)与Endat2.2相当。同时,BiSS的数据通信和寄存器通信占用不同的通信信道,互不影响。
表1不同编码器协议的参数对比
◇ BiSS通信协议的现状和发展
BiSS通信协议经过十余年的发展,在欧洲应用较广,在中国也得到主要驱动器、编码器厂商的支持。2002年在欧洲推出BiSS,2003年BiSS解码芯片IC-MB3面世。2009年推出BiSSunidirectional版本。BiSS总线帧格式保持稳定,众多的编码器厂商推出了基于BiSS的编码器产品。目前全球共有超过278家厂商成为BiSS协议会员。
欧洲在工业控制领域引领时代的潮流,从CiA402、IEC61131-3等协议的发展来了,协议开放渐成潮流。BiSS已经先走一步,为用户带来兼容性、低成本、稳定性诸多好处。未来在中国必将取得更大发展。
文章来源:中国传动网