底板协议整理

[TOC]

物理接口协议

管脚定义

系统的硬件连接为两块FPGA(我方为altera,底板为xilinx)直连,连接方式描述如下(以我方为参考主机设备):

1
2
3
4
5
6
output SYN;
output CLK;
output WEn;
output [7:0] ADDR;
inout [31:0] DATABUS;
inout GPIO0, GPIO1, GPIO2, GPIO3, GPIO4;

SYN为数据同步信号,在本系统中为周期为50us,高电平宽度为10us的信号。一次SYN脉冲执行一次时间点的数据传送,SYN也指示了数据步长(一个周期400点)。

ADDR[7:0]DATABUS[31:0]为地址总线与数据总线,实际使用中数据总线也是输出方向的。

WEn为写操作信号线,低电平指示写信号状态有效。

CLK为写信号脉冲,一个脉冲进行一次数据写入,同时要做地址和数据的切换。

GPIO为备用信号脚。

数据传输流程

一次完整的同步数据写入示意图如下:

1
2
3
4
5
SYN : ====________________________________________________________====
CLK : _______==___==___==___==___.....==_____==_______________________
WEn : ======______________________________________________============
ADDR : XXXXXX| 00 | 01 | 02 | 03 |....| 142 | 143 |XXXXXXXXXX...XXXXX
DATABUS : XXXXXX|DAT0|DAT1|DAT2|DAT3|....|DAT142|DAT143|XXXXXXXXXX...XXXXX

实验输出时SYN以50us为周期循环控制输出。

数据协议

总线上的有效地址空间为0~143(32bit),划分为格式相同的9个采集器数据空间:

采集器分区 数据空间分区
采集器1 0~15(32bit)
采集器2 16~31(32bit)
采集器9 128~143(32bit)

每个采集器有16*32bit的数据空间,划分为两部分:

数据分区 空间大小
协议类型数据 1*32bit
通道信号数据 15*32bit

协议数据类型在低地址,通道信号数据在高地址。如在采集器1的数据空间中,地址0上为协议类型数据,地址1~15上为通道信号数据。

数据总线字节排列

文档中给出的32位数据总线上的字节排列为大端格式的排列。例如,文档中有这样的自己排列顺序:

字节序号 数据内容
0 0xaa
1 0xbb
2 0xcc
3 0xdd

则这四个字节在32位总线上的排列应为0xaabbccdd,而不是0xddccbbaa。这个是要特别注意的一点。

协议类型数据说明

协议类型数据占用一个32位总线空间,具体组成为:

报文类型 rsvd rsvd rsvd
31  24 23  16 15  8 7  0

报文类型是一个字节的数据,指示了数据协议的厂家,可能的取值与含义为:

  • 0x00:国网同步协议
  • 0x01:国网异步协议
  • 0x11:新宁光电协议
  • 0x21:许继协议
  • 0x31:南自协议
  • 0x41:南瑞继保协议
  • 0xff:无数据

目前支持的是这么多协议,日后还有扩展。

通道信号数据说明

每个采集器通道有15*32bit空间作为信号数据,里面包括线路数据(电压、电流)以及环境数据(温度,延时等),具体的排列方式和内容每个厂家有不同的规定。

新宁光电

每个通道数据长度为8字节,占用2个数据总线空间,具体数据格式为:

字节序号 数据内容
1、2 保护电流1/电压1
3、4 保护电流2/电压2
5、6 测量电流/保留电压
7 采集器状态
8 校验码

许继

每个通道数据长度为24字节,占用6个数据总线空间,具体数据格式为:

字节序号 数据内容
1 0x01
2 温度
3、4 额定延时
5、6 保护电流1
7、8 保护电流2
9、10 测量电流
11、12 电压1
13、14 电压2
15、16 状态字1
17 0x01
18 CRC
19、20 状态字2
21、22 采样计数值
23 0x01
24 CRC

南自

每个通道数据长度为11字节,占用3个数据总线空间,具体数据格式为:

字节序号 数据内容
1 采集器状态
2 温度
3、4 电压
5、6 保护电流1
7、8 保护电流2
9、10 测量电流
11 校验和

南瑞继保

每个通道数据长度为53字节,占用13个数据总线空间,具体数据格式为:

字节序号 数据内容
1~4 0x03e803e8
5~8 0x03e804d2
9、10 0x04d2
11、12 A相电压2
13、14 B相电压2
15、16 C相电压2
17、18 CRC
19、20 A相保护电流1
21、22 B相保护电流1
23、24 C相保护电流1
25、26 A相保护电流2
27、28 B相保护电流2
29、30 C相保护电流2
31、32 A相测量电流
33、34 B相测量电流
35、36 CRC
37、38 C相测量电流
39、40 A相电压1
41、42 B相电压1
43、44 C相电压1
45、46 校验码
47、48 常数
49~52 0x001203e8
53 CRC