CMU_Document/file_25dd2_ez-Q 2.5子系统间通信协议/[file_25dd2]ez-Q 2.5子系统间通信协...

150 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
html:
toc: true
embed_local_images: true
embed_svg: true
---
# 修订记录
| 版本号 | 日期 | 修订内容 | 修订人|
|:--: | :--: | :--------------------------------------------------------------------- | :----:|
| 1.0 | 2025.12.08 | 初始版本 | 周爽 |
# 1. 引言
本文档用于描述ez-Q 2.5测控系统各子系统(驱动子系统、通信子系统、反馈子系统、调控子系统、读出子系统)间的通信协议。
各子系统间的通信互连关系如图1所示。驱动通过TCP和UDP协议与通信子系统和反馈子系统通信通信子系统通过Aurora 64b/66b协议与调控子系统和读出板通信通过UART协议与泵浦板和混频板通信反馈子系统通过全局反馈板间数据协议GFP与读出板通信。
![子系统通信互连](./attach/子系统通信结构.svg){:height="70%" width="70%"}
<center style="font-size:16px;color:black;">图1. 子系统间通信互连关系</center> <br>
具体地,下表列举了各子系统间的通信协议以及对应的物理接口。
| 序号 | 通信端A | 通信端B | 通信协议 | 物理接口 |
|:--: | :--: |:--: | :------: | :--:|
| 1 | 驱动 | 通信子系统 | TCP, UDP | SFP光口 |
| 2 | 驱动 | 反馈子系统 | TCP, UDP | SFP光口 |
| 3 | 通信子系统 | 调控子系统 | Aurora 64b/66b | PXIe背板 |
| 4 | 通信子系统 | 读出子系统(读出板) | Aurora 64b/66b | PXIe背板 |
| ^ | ^ | 读出子系统(泵浦板、混频板) | UART | PXIe背板 |
| 5 | 反馈子系统 | 读出子系统(读出板) | GFP | PXIe背板 |
# 2. Transaction数据格式
在ez-Q 2.5测控系统中定义了Transaction这一数据格式该数据格式被应用于TCP、UDP、Aurora 64b/66b等通信协议中基于Transaction可以实现寄存器读写、存储器读写、结果上传等所有实验中需要的业务数据传输。
Transaction的具体数据格式定义如下表所示。一个Transaction包括命令CMD和数据DATA两部分其中命令部分又可分为读写标志W/R、主动回读标志ARD FLAG、芯片IDCID、地址ADDR、扩展地址EXADDR和长度LENGTH数据部分要求长度必须是32-bit的整数倍。
| 序号 | 数据结构 | | 长度 | 比特序 | 功能描述 | 备注|
|:--: | :--: |:--: |:--: |:-----:| :--: | :-- |
| 1 | CMD | W/R | 1 bit | [63] | 读写标识0W1R | / |
| ^ | ^ | ARD FLAG | 1 bit | [62] | 主动回读数据标志 | 主动回读模块根据读出芯片读请求读出实验数据|
| ^ | ^ | CID | 5 bits | [61:57] | 芯片组中每个芯片的ID标识 | 包括量子测控芯片组及其他需要配置的芯片组|
| ^ | ^ | ADDR | 25 bits | [56:32] | 低25位地址 | 可与EXADDR拼接使用或直接映射到量子测控芯片的偏移地址|
| ^ | ^ | EXADDR | 12 bits | [31:20] | 扩展地址,可根据需求划分为多个功能区<br>4比特预留+5比特槽位+3比特板卡内部预留 | 可与ADDR拼接使用此时寻址空间为128GByte<br>该4096K的地址空间可按照需求映射给集控中心和外部SIP芯片组|
| ^ | ^ | LENGTH | 20 bits | [19:0] | 指示读写数据长度以Byte为单位 | 最大支持1MByte |
| 2 | DATA | | N*4 bytes | [31:0] | 数据 | 读操作时,无需包含该项|
<br>
在ez-Q 2.5测控系统中使用Transaction扩展地址EXADDR中的EXADDR[7:3]这5个比特来标识槽位号一个机箱中槽位号的使用如下表所示。
| 机箱位置 | 槽位号 | EXADDR[7:3] | 板卡 |
|:--: | :--: |:-------------: |:--: |
| 正面 | 0 | 5b00000 | 调控板 #1 |
| ^ | 1 | 5b00001 | 调控板 #2 |
| ^ | 2 | 5b00010 | 调控板 #3 |
| ^ | 3 | 5b00011 | 泵浦板 #1 |
| ^ | 4 | 5b00100 | 读出板 #1 |
| ^ | 5 | 5b00101 | 混频板 #1 |
| ^ | 6 | 5b00110 | 调控板 #4 |
| ^ | 7 | 5b00111 | 调控板 #5 |
| ^ | 8 | 5b01000 | 调控板 #6 |
| ^ | 9 | 5b01001 | 调控板 #7 |
| ^ | 11 | 5b01011 | 调控板 #8 |
| ^ | 12 | 5b01100 | 调控板 #9 |
| ^ | 13 | 5b01101 | 调控板 #10 |
| ^ | 14 | 5b01110 | 泵浦板 #2 |
| ^ | 15 | 5b01111 | 读出板 #2 |
| ^ | 16 | 5b10000 | 混频板 #2 |
| ^ | 17 | 5b10001 | 调控板 #11 |
| ^ | 18 | 5b10010 | 调控板 #12 |
| ^ | 19 | 5b10011 | 调控板 #13 |
| ^ | 20 | 5b10100 | 调控板 #14 |
| 背面 | 21 | 5b10101 | 时钟同步板 |
| ^ | 23 | 5b10111 | 通信板 |
| ^ | 25 | 5b11001 | 反馈板 |
# 3. TCP与UDP协议
驱动子系统与通信子系统和反馈子系统间通过千兆/万兆光网络进行数据交互数据传输采用标准的TCP协议和UDP协议。其中UDP应用于状态监控和TOE配置TCP应用于子系统配置数据、子系统回传数据和读出主动上传的数据。基于标准的TCP协议和UDP协议对其报文格式中的数据字段部分进行了进一步的协议划分以满足使用需求。
## 3.1 TCP数据协议
TCP协议提供了一种可靠的、面向连接的数据传输服务确保了数据在传输过程中不丢失、不重复并且按顺序到达。因此实验中的配置数据、采集结果等对可靠性要求高的数据均采用TCP协议传输。
TCP报文的数据格式如图2所示在数据字段中包括一个或多个Transaction数据的封装与解析均按照Transaction数据格式执行。驱动软件通过TCP协议将所有的芯片与板卡配置信息发送给通信子系统和反馈子系统实验中所有的采集结果也通过TCP协议上传给驱动。
![TCP数据格式](./attach/TCP数据格式.svg){:height="70%" width="70%"}
<center style="font-size:16px;color:black;">图2. TCP数据格式</center> <br>
## 3.2 UDP数据协议
UDP协议提供了一种简单的、无连接的数据传输服务不提供可靠性、顺序性和流量控制。UDP协议不需要建立连接因此适用于TOE的寄存器配置业务包括IP地址配置、网关配置、启动TCP连接等。状态监控业务对传输可靠性要求不高同时要求支持广播功能因此也使用UDP协议。
UDP报文的数据格式如图3所示在数据字段中包括了数据头部HEADER、数据长度LENGTH、负载数据PAYLOAD和校验值CHECK4个部分其中PAYLOAD包含有一个或多个Transaction。
![UDP数据格式](./attach/UDP数据格式.svg){:height="70%" width="70%"}
<center style="font-size:16px;color:black;">图3. UDP数据格式</center> <br>
UDP数据的具体格式定义如下表所示通过HEADER字段来区分TOE配置业务和状态监控业务。
| 序号 | 数据结构 | 长度 | 比特序 | 功能描述 | 备注|
|:--: | :--: |:--: |:--: |:-----:|:-----|
| 1 | HEADER | 16 bits | [31:16] | 0x4547TOE寄存器<br>0x494e状态监控 | /|
| ^ | LENGTH | 16 bits | [15:0] | PAYLOAD字段的长度单位为byte | /|
| 2 | PAYLOAD | N*4 bytes | [31:0] | 负载数据长度为32-bits的整数倍|一个或多个Transaction|
| 3 | CHECK | 32 bits | [31:0] | CRC32校验计算PAYLOAD字段的CRC32|CRC32生成多项式G(x) = x^32^ + x^26^ + x^23^ + x^22^ + x^16^ + x^12^ + x^11^ + x^10^ + x^8^ + x^7^ + x^5^ + x^4^ + x^2^ + x + 1初始值为0xffffffff|
# 4. Aurora 64b/66b协议
Aurora 64b/66b协议是一种用于点对点串行链路间传输数据的可扩展轻量级链路层协议可为物理层提供透明接口并支持高速收发器应用。该协议具有低延迟、高带宽及高度可配置特性采用64b/66b编码。基于Aurora 64b/66b协议可以实现10 Gbps速率的数据传输适用于通信子系统、调控子系统和读出子系统间的高速数据传输。
Aurora 64b/66b协议的数据格式如图4所示分为数据块Data Blocks和分隔块Separator Block数据块为实际传输的业务数据分隔块标志了数据块的结束理论上数据块没有长度限制可以实现很高的传输效率。实际使用中数据块中包括了一个或多个Transaction。
![Aurora数据格式](./attach/aurora数据格式.svg){:height="70%" width="70%"}
<center style="font-size:16px;color:black;">图4. Aurora 64b/66b数据格式</center> <br>
在数据传输过程中接收端的处理速率跟不上发送端的发送速率时会发生数据的丢失。引入流量控制机制来避免这一问题当接收方接近处理极限时发送流控数据给发送方让发送放停止数据发送待接收端有足够的接收处理能力时再恢复发送。使用Aurora 64b/66b协议中的immediate NFC流控方式即发送端在接收到NFC信号后立即开始流控。
# 5. UART协议
通信子系统与读出子系统的泵浦板和混频板之间的通信数据量少、速率要求低采用UART协议进行数据交互。UART协议采用标准的1-8-1模式即1比特起始位、8比特数据位、1比特停止位。UART通信传输的具体数据内容为寄存器指令每条指令64比特指令采用小字节序传输。例如对于64比特指令0x0807060504030201先传输“08”字节最后传输“01”字节对于字节0b00001111先传输“1”比特最后传输“0”比特。
主控端(通信子系统)发送和接收的指令数据格式如下表所示。
| 序号 | 字节 | 比特序 | 标识 | 说明 |
|:--: | :--: |:--: |:--: |:-----:|
| 1 | 0~3 | [31:0] | DATA | 32比特寄存器数据读寄存器时该域置0xffffffff |
| 2 | 4~6 | [47:32] | ADDR | 寄存器地址,地址单位是字节 |
| 3 | 7 | [61:56] | SLOT | 槽位信息|
| ^ | ^ | 62 | R/W | 读写选择01写|
| ^ | ^ | 63 | MEM_REG | 寄存器/存储器操作指令区分寄存器操作为0|
主控端通信子系统数据发送后从端泵浦板、混频板会发送响应帧响应帧的高32位保持与控制帧高32位相同低32位为读回的数据或者与控制帧低32位保持相同具体数据格式如下表所示。
| 序号 | 字节 | 比特序 | 标识 | 说明 |
|:--: | :--: |:--: |:--: |:-----:|
| 1 | 0~3 | [31:0] | DATA | 32比特寄存器数据读寄存器时该域为读回的寄存器值写寄存器时该域返回实际写入后读回的数据 |
| 2 | 4~6 | [47:32] | ADDR | 寄存器地址,地址单位是字节 |
| 3 | 7 | [61:56] | SLOT | 槽位信息|
| ^ | ^ | 62 | R/W | 读写选择01写|
| ^ | ^ | 63 | MEM_REG | 寄存器/存储器操作指令区分寄存器操作为0|
# 6. 全局反馈板间数据协议GFP
反馈子系统中的反馈主板需要与读出子系统间进行全局反馈信息交互该交互链路要求低通信延迟。基于GT物理链路制定了全局反馈板间数据协议以实现低延迟的反馈信息交互。
全局反馈板间数据协议以帧为单位进行数据传输每帧32字节具体的数据格式如下表所示。
| 序号 | 字节 | 比特序 | 标识 | 说明 |
|:--: |:--: |:--: |:--: |:-----|
| 1 | 0~3 | [31:0] | 帧头 | 固定值0xFCA5B659可自定义|
| 2 | 4~7 | [31:0] | 帧序号 | 每128个量子比特对应1个序号从0开始依次累加4B字节溢出循环序号发送前与0xA5A5A5A5进行异或处理接收序号后进行异或处理后再做序号连续性检测 |
| 3 | 8~15| [63:0] | 消息体1| 量子态信息每2比特标识1个态信息2b000态2b011态2b102态2b11无效态每个读取有效传输只有64bit每读取板4路读取线每个读取线8qubit共32个量子态 |
| 4 | 16~23 | [63:0] | 消息体2 | 默认0xA5A5A5A5_A5A5A5A5预留设计需要态扩充比特位时可以启用 |
| 5 | 24~25 | [15:0] | 校验码 | 生成多项式G(x)=x^16^+x^15^+x^2^+1初相为1只包含序号和消息体校验通过时无需采用后续汉明纠错 |
| 6 | 26~27 | [15:0] | 汉明码 | 校验不通过时,可以使用汉明纠错,暂不启用 |
| 7 | 28~31 | [31:0] | 帧尾 | 固定值0x3BA7A579可自定义 |