Edit online

BISSC 工作模式

Read time: 4 minute(s)

BISS_IF 支持四种工作模式:

  • Mode0:获取位置数据模式。

  • Mode1:连续获取位置数据模式。

  • Mode2:读寄存器模式。

  • Mode3:写寄存器模式。

Mode0

Mode0 模式为获取位置数据模式,工作时序如下:



Mode0 的工作时序说明:

  • Mode0 的工作时序是 BISSC 的基本数据传输时序。

  • 输出信号 MA 以及输入信号 SLO,默认 IDLE 状态为高电平,MA 信号的拉低则表示主机通知从机要准备开始进行数据传输。

  • 从机在 MA 的第二次上升沿的时候,将 SLO 信号拉低,表示 ACK 信号。

  • 从机以 1-bit 高电平的 Start 作为数据发送的起始,但是从 ACK 到 Start 比特的发送的时间,从机不同的状态有可能不一致;

  • 从机的数据发送为 MA 的上升沿进行发送,发送的内容如上图所示,其中位置数据以及 CRC 数据均是 MSB 先发送,LSB 最后发送。CRC 计算范围包括位置数据 + Alarm + Warn;

  • 最后 MA 在接收完 CRC 的数据后,回到 IDLE 状态,从机则发送 1 bit 低电平的 STOP 信号,主机接收完 STOP 信号,才认为此次的数据传输完成。

Mode0 工作模式数据传输前,BISS_IF 配置方式如下:

  • 配置 BR 寄存器,选择 MA 输出的时钟频率。

  • 配置 SIZE 寄存器,配置 RXD0、RXD1、DTSIZ 的数据大小,其中数据结构 如下图描述。

  • 配置 MODE 寄存器,设置为位置信息获取模式。

  • 配置 STF 寄存器,触发数据传输开始。

  • 等待 Status 寄存器的 END 比特置 1,表示本次的数据传输完成。



Mode1

Mode1 为连续获取位置数据模式,即完成一次的位置数据获取后,通过硬件设置间隔时间,经过间隔时间后,自动进行下一次的位置数据获取,BISS_IF 的配置维持与上一次一致的配置。

在连续获取位置数据的过程中,如果出现异常状态,可以选择是停止获取数据操作,或无视异常继续进行获取数据。

Mode2&Mode3

BISSC 协议支持寄存器读写命令的操作,实现方式,如下图寄存器读写所示。

Master 在每次获取位置信息的 Stop 时刻,在 MA 输出信号中携带 1 bit 的取反的 CDM 数据,通过多次的位置获取的操作,组合成完整的的 CDM 控制信号。
注: CDM 的起始需要连续输出 0,超过 14 bits 的时间长度。

Slave 在每次发送位置信息的 Start 比特后插入 1 bit 的 CDS 数据,同样通过连续多次的位置获取的时序,组合成完整的 CDS 数据信号。



1. Mode2

Mode2 为读寄存器模式 ,工作时序如下:



Mode2 的工作时序说明:
  • Mode2 的工作时序是需要多个连续的 BISSC 的基本数据传输时序组成,因为需要连续的多个 CDM 和 CDS 完成寄存器读操作的交互逻辑。
  • CDM 的发送开始需要保证多于 14 个周期的连续 0 低电平后,才可以开始发送 bit。
  • CDM 发送 bit 后仅接着的是 CTS 比特,CTS = 1 表示进行寄存器的操作,而 CTS = 0 的情况式表示进行命令操作,命令操作暂不支持。
  • CDM 依次发送 ID、ADR、CRC,ID 为从机的 ID 号,ADR 为寄存器的地址,这里的 CRC 的多项式为 x^4+x^1+x^0,CRC 初始值为 0,CRC 计算的范围为 ID + ADR。
  • CDM 紧跟着是 R 比特(高有效表示寄存器读操作)、W 比特(高有效表示寄存器写操作)、Start 比特(高有效表示寄存器操作开始)。
  • 从机在检测到 CDM 的第一次 Start 比特后,则会发送 8-bit 的 IDL 数据,完成后则保持 Idle 状态,在从机接收到 R 比特+W 比特+S 比特后,会发送相同的 R 比特+W 比特,若从机已经准备好也会随即发送 Start 比特。
  • 主机检测到从机的 Start 比特后,则不再输出(保持低电平),开始接收 CDS 发送的寄存器数据和 CRC 数据,完成后在经过 1 个 P 比特(结束位),那么则完成了一次读寄存器的操作。CRC 的计算公式仍然是 x^4+x^1+x^0,CRC 初始值为 0,CRC 计算的范围为 DATA。
  • 另外需注意,若主机接收不到从机的 Start 比特,那么主机则维持发送 Start 比特,此时状态寄存器的 REGNRD 值 1,直至接收到从机的 Start 比特才进行后续的操作。
  • 最后需注意,CDM 的发送均是比特取反后传输。
Mode2 工作模式数据传输前,BISS_IF 配置方式如下:
  • 配置 BR 寄存器,选择 MA 输出的时钟频率
  • 配置 SIZE 寄存器,配置 RXD0、RXD1、DTSIZ 的数据大小,其中数据的构成情况与 Mode0 一致
  • 配置 MOD 寄存器,设置为寄存器模式
  • 配置 REGACS 寄存器,设置 ROW = 0(寄存器读操作),配置 ADR、ID 数据
  • 配置 STF 寄存器,触发数据传输开始
  • 等待 Status 寄存器的 END 比特置 1,表示本次的数据传输完成

Mode3 为写寄存器模式 ,工作时序如下:



2. Mode3
Mode3 的工作时序说明:
  • Mode3 的工作时序是需要多个连续的 BISSC 的基本数据传输时序组成,因为需要连续的多个 CDM 和 CDS 完成寄存器写操作的交互逻辑。
  • CDM 的发送开始需要保证多于 14 个周期的连续 0 低电平后,才可以开始发送 bit。
  • CDM 发送 bit 后仅接着的是 CTS 比特,CTS = 1 表示进行寄存器的操作。
  • CDM 依次发送 ID、ADR、CRC,ID 为从机的 ID 号,ADR 为寄存器的地址,这里的 CRC 的多项式为 x^4+x^1+x^0,CRC 初始值为 0,CRC 计算的范围为 ID + ADR。
  • CDM 紧跟着是 R 比特(高有效表示寄存器读操作)、W 比特(高有效表示寄存器写操作)、Start 比特(高有效表示寄存器操作开始)。
  • 从机在检测到 CDM 的第一次 Start 比特后,则会发送 8 bits 的 IDL 数据,完成后则保持 Idle 状态,在从机接收到 R 比特 + W 比特 + S 比特后,会发送相同的 R 比特 + W 比特,若从机已经准备好也会随即发送 Start 比特。
  • 主机检测到从机的 Start 比特后,则输出需要写入寄存器的数据 DATA 以及 CRC,最后经过 1 个 P 比特(结束位),那么则完成了一次读寄存器的操作。CRC 的计算公式仍然是 x4+x1+x0,CRC 初始值为 0,CRC 计算的范围为 DATA。
  • 从机在响应主机发送 Start 比特后,也会将将数据 DATA 和接收到 CRC 数据发送出来。
  • 另外需注意,若主机接收不到从机的 Start 比特,那么主机则维持发送 Start 比特,直至接收到从机的 Start 比特才进行后续的操作。
  • 最后,CDM 的发送均是比特取反后传输。
Mode3 工作模式数据传输前,BISS_IF 配置方式如下:
  • 配置 BR 寄存器,选择 MA 输出的时钟频率
  • 配置 SIZE 寄存器,配置 RXD0、RXD1、DTSIZ 的数据大小,其中数据的构成情况与 Mode0 一致
  • 配置 MOD 寄存器,设置为寄存器模式
  • 配置 REGACS 寄存器,设置 ROW = 1(寄存器写操作),配置 ADR、ID、TXD 数据
  • 配置 STF 寄存器,触发数据传输开始
  • 等待 Status 寄存器的 END 比特置 1,表示本次的数据传输完成