# bissc **Repository Path**: fengdaokanhai/communication-protocol ## Basic Information - **Project Name**: bissc - **Description**: 编码器Bissc通信原理及VHDL实现 - **Primary Language**: VHDL - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-29 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Bissc通信协议 #### 概述 Biss C 是一种数字式、全双工、同步串行通信协议,主要用于绝对式编码器(旋转或线性)与控制器(如PLC、驱动控制器)之间的高速、高可靠性数据传输,尤其适用于电机反馈系统。 驱动器(主)——>编码器(从):BissC主模块通过两种信号与一个或多个从设备相连,分别是用于同步的时钟信号Clock、用于传输数据的Data(Data In 或Data out)。数据在 MA+ 和 MA- 差分线上传输,时钟在 SLO+ 和 SLO- 差分线上传输,支持全双工(双向同时传输)。 BissC主机和从机之间的数据交换通过连续的BissC帧控制,在可配置(主机驱动器可配置)的BISS周期(两帧数据之间的时间间隔)内异步触发(不受外部共享时钟的同步,自己决定什么时候开始通信)BISS周期通过预定义的超时来同步,每个Biss从机在Biss帧结束时各自自动识别超时。 以点对点连接为例,Biss主设备只与一个从设备连接,主机通过MA与时钟线连接,通过SL与数据输出线相连,从机数据输入线SLI不使用,接地。 ![输入图片说明](bissc.png) #### 程序框架 MA引脚产生的时钟信号控制通信帧,为BISS从机提供时钟源,并定义周期的开始和结束。 **此外,时钟信号还用于从BISS主机向从机传输单个控制数据位,用于控制通信。** ![输入图片说明](bissc_1.png) 时钟序列MA(MAI)主要可分为四个阶段:闲置、数据头、数据通道和超时。每个阶段的长度取决于BISS从机的特性和当前BISS配置。 1、闲置:BISS帧通常在有规律的周期内传输,前后两帧中的这个阶段称为空闲,空闲不传输数据,MA和SLO都是高电平; 2、数据头:表示启动了一个新的周期,并通过Slo来传输Biss从机的数据。Biss帧由MA传输线上的下降沿和上升沿启动,第一个上升沿LAT(锁存)被用作触发器,在Biss从机内锁存或者生成过程数据(即从机准备数据时间)。Biss从机在MA时钟信号上升沿,SLO产生响应,因此,除LAT外,每个上升沿代表Biss帧的一个比特(bit)。 对于高精度控制,在特定时间生成传感器数据非常重要,因此过程数据会在每个BISS周期开始时生成,第一个MA上升沿; 第1位:应答位(ACK),用于Biss从机向Biss主机确认新的Biss周期开始。由于SLO空闲始终为"1",因此ACK的确认应答位是"0"; 第2位:起始位(STR),表示Biss从机已准备好向Biss从机已准备向主机传输数据; 第3位:属位(CDS),实际数据传输从控制数据从属位开始(CDS) 3、数据通道:数据通道在每个Biss周期内倍全部传输,处理能力最强; 第4位:数据位(DATA):在CDS位之后,为每个连接的从机BISS传输 **多达64位** 的处理数据(DMSB~DLSB); 第5位:校验位(CRC):在数据之后,每个数据通道通常由 **多达16位** 的循环冗余校验保护(CRC),CRC在传输前被反转。 4、超时:Biss帧的最后一个阶段,用于同步Biss从机和BISS主机的BISS周期结束后提供的握手机制。此时,BISS主机停止MA上的时钟,每个BISS从机单独测量超时(TO)。超时后,BISS主机将通过SLO的上升沿来指示,因此,BISS从机在MA(STP)的最后一个上升沿产生停止位。 第6位:超时(TIMEOUT):支持静态超时和自适应超时,静态超时时BISS从机预先定义一个恒定时间间隔(通常20s),自适应超时则在每个BISS帧开始时根据当前BISS时钟频率进行调整,为高性能引用缩短时间。 超时的几个作用:(1)主机发送完最后一个时钟脉冲,用于读取从机数据的最后一位,随后,主机主动停止产生时钟,让时钟线保持静止(低电平),这段时钟线保持静止的无时钟时期,就是超时。从机检测到这个“一段时间的寂静”,就明确知道:“主机已经收到所有数据,本次通信周期正式结束了”。同时,主机也利用这段寂静来确认从机没有更多数据要发送。(2)超时不仅标志着一个周期的结束,更关键的是,它预定义了下一個周期开始的确切时刻。超时的长度是主机和从机预先约定好的(例如,固定为时钟周期的1.5倍)。从机内部有一个计时器,从最后一个时钟下降沿开始计时。当计时达到这个预设的超时时间时,从机就精确地知道:“主机马上就要在MA线上发送CDM位了,我必须在这个瞬间对其进行采样”。这就创造了我们之前讨论的那个关键瞬间,为传输CDM位提供了同步点。(3)超时机制也是一种简单有效的错误检测手段。如果由于电磁干扰(EMI)或其它原因,主机或从机发生错误(例如,从机一直试图发送数据,或主机时钟意外停止)。一方会一直等待,但协议规定任何一方在检测到线路寂静时间超过最大超时时间后,就必须强制将通信重置到一个已知的初始状态(空闲状态)。这样,系统就不会永远“卡死”在错误状态,而是能在下一次主机发起通信时自动恢复。(4)在一些特定的配置中,超时可以用于协调多个从机设备。 第7位:主机数据控制位(CDM):通常1~8Bit,告诉从机,主机在这次通信中想要什么,或者想要从机做什么;为了传输用于控制通信的主机数据控制位(CDM),BISS从机在超时结束时结束对MA进行采样。 握手机制确保BISS主机在所有连接的BISS从机都准备好处理另一个BISS帧之前,不会启动另一个BISS周期。每个BISS从机都能独立确定自己的超时时间间隔。因此,在MA停止切换时,BISS从机会启动一个内部定时器,定时器到期时,数据输出SLO设置位"1",CDM位被评估(处理主机后续控制需求),BISS从机回到空闲状态。至此,整个系统准备就绪,可以开始新的BISS周期; 在实际应用中,BISS主机产生的时钟信号MA和BISS从机产生的数据输出通过信号线传输,可能增加通信信号延迟,因此BISS从机对确认位(ACK)的响应延迟,BISS主机会在数据头中插入额外两个时钟,直到SL上收到确认位"0" ;(ACK变为3个) BISS主机异步触发BISS周期,则LAT的采样边沿和过程数据的锁存点叶以异步方式出现。如果BISS帧的采样边沿经过处理,使得过程数据生成仅具有恒定延迟,则控制装置总是从BISS周期开始的一个固定时间点接收传感器数据,这样生成时间抖动被减小到BISS从机设备的处理性能。BISS协议的一种高性能实现方式,它通过硬件同步和固定延迟设计,将传感器数据与通信周期的开始时刻严格绑定,从而极大地减少了数据的时间戳抖动。这对于需要极高同步精度和确定性的应用至关重要,例如:多轴协同运动的机器人、高精度数控机床(CNC)、航空航天领域的飞控系统。在这种应用中,知道一个位置的精确发生时间,比知道这个位置值本身更加重要。这种优化正是为了满足这一苛刻要求。 处理时间:从锁存点(LAT)到起始位(STA)之间的时间被定义为处理时间(tbusy)。如果BISS从机设备处理时间至少为两个时钟周期,对于处理时间较长的设备,可在确认位STR之后发送"0",直到过程数据准备好。 总线复位/初始化:上电报错后,BISS主机必须中断BISS通信40us后才能启动新的BISS帧,确保BISS超时已过和所有从机都准备好进行数据传输;在点对点连接中,BISS帧的起始位和停止位必须由0号从机生成。 空值(数据位全为0):在BISS中,用于表示无效传感器数据,当它由BISS从机传输时,表示自上一帧后未更新;由主机BISS传输时,表示执行器数据未更新; 控制通信CDM(S+CTS+address):与SSI不同,BISS能双向传输,即从BISS主机到BISS从机或反向传输,从BISS主机到BISSC从机的数据传输可用于访问BISS从机内存资源(例如多圈信息、存储的电机参数);每个BISS帧包括两个用于通信的位,CDM位和CDS位,用于过程数据传输或主机、从机间控制数据传输。CDM和CDS位在每个BISS帧内传输,组成一个数据帧。单个CDM位由BISS主机在BISS周期结束时生成,由BISS从机在超时期间捕获。BISS从机处理传输信息,并通过在下一个BISS周期开始时生成CDS位来响应BISS主机,因此,BISS主机负责启动、定义类型和终止控制通信。只要没有控制数据帧正在处理,BISS主机就会发送CDM=0,BISS从机就会响应CDM=0。BISS主机通过在CDM上发送控制数据启动位(S)触发新的控制通信,从而开始在BISS从机中处理新的控制通信。控制选择位(CTS)定义BISS主机选择控制通信类型。CTS=0:BISS命令,用于寻址不同从机设备等,根据规范定义作用。CTS=1:寄存器命令,用于对连接到BISS系统特定BISS从机内存映射进行字节寻址数据访问。另外,在控制选择位之后,BISS从机传输10位寻址信息,每个从机都要处理这些信息。每个控制数据帧的数据头都受到4位循环冗余校验CRC的保护,CRC在传输前反向,并包括CTS位和寻址位。计算CRC不包括起始位。 点对点通信初始化实例: 1. 设置时钟频率,250K