BISSC 工作模式
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 协议支持寄存器读写命令的操作,实现方式,如下图寄存器读写所示。
Slave 在每次发送位置信息的 Start 比特后插入 1 bit 的 CDS 数据,同样通过连续多次的位置获取的时序,组合成完整的 CDS 数据信号。
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 的发送均是比特取反后传输。
- 配置 BR 寄存器,选择 MA 输出的时钟频率
- 配置 SIZE 寄存器,配置 RXD0、RXD1、DTSIZ 的数据大小,其中数据的构成情况与 Mode0 一致
- 配置 MOD 寄存器,设置为寄存器模式
- 配置 REGACS 寄存器,设置 ROW = 0(寄存器读操作),配置 ADR、ID 数据
- 配置 STF 寄存器,触发数据传输开始
- 等待 Status 寄存器的 END 比特置 1,表示本次的数据传输完成
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 的发送均是比特取反后传输。
- 配置 BR 寄存器,选择 MA 输出的时钟频率
- 配置 SIZE 寄存器,配置 RXD0、RXD1、DTSIZ 的数据大小,其中数据的构成情况与 Mode0 一致
- 配置 MOD 寄存器,设置为寄存器模式
- 配置 REGACS 寄存器,设置 ROW = 1(寄存器写操作),配置 ADR、ID、TXD 数据
- 配置 STF 寄存器,触发数据传输开始
- 等待 Status 寄存器的 END 比特置 1,表示本次的数据传输完成