xilinx cpri ip 开发记录

news/2024/5/18 19:37:21

CPRI是无线通信里的一个标准协议,连接REC和RE的通信。
Xilinx有提供CPRI IP核。

区别于其它通信协议,如以太网等,CPRI是一个同步系统。

这就意味着两端的Master和Slave应当是同源时钟的,两边不存在频差,并且内部延时也都是固定的,每次运行可以通过计算获得,供上层应用使用。因此,可以让Master有一个参考时钟使用,而Slave则利用GT从串行数据中恢复出来的时钟,经过外部一个Cleanup的PLL,产生参考时钟送回来,供Slave参考使用。这样,两端就能同源了。

注意,由于Xilinx的GT模块限制,这里外部需要提供一个,在还没有恢复钟送到,就能自主产生相同频率(但有ppm差异)时钟的PLL;等到Slave收到数据,同步并产生恢复时钟后,外部的这个PLL也能将频率渐渐对齐到恢复时钟(即对端Master真正频率上面),最终实现整个同步系统。

在这里插入图片描述

CPRI的内部结构如下图所示。CPRI数据,主要指的是IQ数据通道,另外还有控制数据,包括Vendor Specific,Slow C&M(即HDLC数),Fast C&M(即Ethernet数),这些数据共同分享CPRI物理层通道。

接下来,分析CPRI的数据帧格式,以帮助我们进一步了解这些不同类型的数据,是如何共同复用CPRI通道的。
image.png

无线通信中,UTRA-FDD的Chip Rate为3.84MHz(fc)。因此在CPRI的协议中,一个基本帧(Basic Frame)的时间长度就是1/fc=260.416667ns。

那么,CPRI的基本帧的结构就如下图所示,如果是614.4Mbps的CPRI应用,那Y就只会等于0,数据为Z.X.0打头,有16个bytes数组成,第1个byte一般做控制用,后15个bytes就是IQ数据。

如果是2457.5Mbps的CPRI应用,带宽更大,Y就可以为0,1,2,3,按照下图所展示的发送顺序发数,一个基本帧里有Z.X.0,Z.X.1,Z.X.2,Z.X.3,四个控制字,和60个bytes的IQ数据。

在这里插入图片描述

进一步,CPRI每隔10ms是一个完整的无线帧,其中由150个超帧(hyperframe)组成,每个超帧又由256个上面的基本帧组成。

image.png

之前已经提到过,每个基本帧的第1个byte一般做控制用;下图就展示了一个超帧,里面含有256个基本帧,这样一个超帧里就有256个bytes可作控制用途,非IQ数据的Control Words。

并且,由图里的位置,可以看到每个control words的用途,如Z.0.0是用作同步的帧头数据;Z.1.0作为Slow C&M,也就是HDLC数据用;而Z.2.0,Z.66.0,Z.130.0,Z.194.0这一排四个控制字,会在协议通信,对照信息的时候,都有各自不同的用途定义。

在这里插入图片描述

于是,我们结合Xilinx IP,看下CPRI是如何收发数的。由于CPRI是一个完全同步的系统,用户在使用CPRI IP的时候,需要主动每隔10ms,给IP一个nodebfn_tx_strobe输入。IP会根据用户此输入,对应每隔一个基本帧的时间,给出一个iq_tx_enable输出。

基本帧的开头几个bytes为control words,来自于各个对应控制数据接口;用户不用在IQ数据接口(iq_tx,iq_rx)管这几个数,后面则是正常的IQ数据收发。

在这里插入图片描述

了解了CPRI的数据业务如何使用之后,再来看下CPRI的初始化流程。

CPRI IP支持自协商,根据用户选择的IP的可支持速率,从高到低依次下降,与对方互通,直到通信成功为止。

初始化状态机的运行可以观察IP的stat_code[3:0]输出信号。该状态机参考CPRI协议设计,如下。因此其具体细节,建议直接参照CPRI协议。

例如,如果初始化状态机卡在状态B不前进,那意味着此时IP无法实现与对端任何通信,可能是GT初始化有问题,或者link没有成功,可以先做下近端环回实验。注意,如果这是一个Slave的CPRI IP,需要先使能Slave Transmit Enable,再做环回。

或者卡在状态C的话,按照CPRI协议,是Protocol Setup两边没有对应上,需要检查IP的相关设置,或者看下两边收发的Z.2.0这个数是否是相一致。

最终,这个stat_code状态走到F或者G,IP达到了link状态,可以开始进行正常的业务数据收发工作了。

image.png

Xilinx IP核手册编号为pg056,首先通过配置好IP核,生成example工程,该IP为付费IP,需要特定lic文件,硬件设计部分和普通SFP类似,本项目采用通信速率10.137G
在这里插入图片描述
IP核可分为master和slave两种模式
在这里插入图片描述

10g IQ数据打包方式为:
在这里插入图片描述
其中控制字节为16字节,即图中CW字符,一个基本帧内数据分为16个块(W),每个块的数据量用byte表示(Y),线速率不同Y不同,Y=0~47
CPRI基本帧的定义:
1.W=0为控制字,W=1~15为IQ数据;
2.不同速率下byte数量(Y)不同,如10.1376Gbps下Y=0~19(bit长度T = 20*8 = 160);
3.需要注意的是,在10G及以上速率,控制字仅16byte,W=0且Y大于15的控制字位置为保留数据;
4.在时域上,串行数据传输顺序为W0的Y0-Y47,W1的Y0-Y47,依次类推,最后传输W15的Y0~Y47

在这里插入图片描述
一个基本帧占用80个Clock的原因
在这里插入图片描述
iq_module模块完成UTRA-FDD I/Q Module数据的打包,最大支持48通道的数据


http://www.mrgr.cn/p/81731132

相关文章

【性能监控】如何有效监测网页静态资源大小?

前言 作为前端人员肯定经常遇到这样的场景:需求刚上线,产品拿着手机来找你,为什么页面打开这么慢呀,心想自己开发的时候也有注意性能问题呀,不可能会这么夸张。那没办法只能排查下是哪一块影响了页面的整体性能,打开浏览器控制台一看,页面上的这些配图每张都非常大,心想…

HarmonyOS 实战开发-Worker子线程中解压文件

本示例介绍在Worker子线程使用@ohos.zlib提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作,解压成功后将解压路径返回主线程,获取解压文件列表。介绍 本示例介绍在Worker子线程使用@ohos.zlib提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操…

3年经验来面试20K的测试岗,连基本功都不会,还不如去招应届生

为了新项目做准备,这段时间公司面了不少人,竟然没有一个满意的。一开始瞄准的就是中高级的水准,也没指望来技术大牛,提供的薪资在15-25K,面试的人很多,但结果让人失望。 从简历上来说都是3-4年工作经验,但面试中,不会工具方法和编程框架,基本功的技术很多也不熟练,多…

java-spring-mybatis -学习第一天-基础知识讲解

目录 前置条件(创建一个项目) Mybatis 定义 可能出现的问题 这边如果连接不上数据库 ​编辑 Dao接口设计 Mybatis流程 创建实体类 User 和其属性 创建Mapper的接口类 测试类测试 实例数据库数据的更新 实例数据库数值的删除 最重要的是有一个原始的数据库 -我这边…

C语言实现双人贪吃蛇项目(基于控制台界面)

一.贪吃蛇 贪吃蛇是一款简单而富有乐趣的游戏,它的规则易于理解,但挑战性也很高。它已经成为经典的游戏之一,并且在不同的平台上一直受到人们的喜爱和回忆。 二.贪吃蛇的功能 游戏控制:玩家可以使用键盘输入设备来控制蛇的移动方…

Pycharm远程连接服务器调试过程(个人记录)

Pycharm远程调试服务器,这里主要讲的是ssh方法(避免自己主机显存、内存不足的情况,ssh服务如何开启请自行查找)。 主要分为几个步骤: 1、服务器开启ssh服务,开放ssh端口号(一般为22) 2、打开pycharm,设置ssh远程python为解释器(如下,打开设置后点设置添加解释器,随…

ChatGPT在线网页版(与GPT Plus会员完全一致)

ChatGPT镜像 今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?” 从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像…

vis.js工具提示3d图形

代码案例<!DOCTYPE html> <html><head><title>Graph 3D demo</title><style>body {font: 10pt arial;}div#info {width: 600px;text-align: center;margin-top: 2em;font-size: 1.2em;}</style><scripttype="text/javascrip…

Linux下SPI设备驱动实验:测试读取ICM20608设备中数据是否正常

一. 简介 前面文章实现了 SPI设备的读写功能&#xff0c;也对ICM20608设备中&#xff08;即SPI设备&#xff09;寄存器里的数据进行了读取。文章如下&#xff1a; Linux下SPI设备驱动实验&#xff1a;读取ICM20608设备的数据-CSDN博客 本文对驱动功能进行测试&#xff0c;即…

static+单例模式+类的复合继承

汇编语言 汇编语言是最靠谱的验证“编程语言相关知识点”正确性的方式 汇编语言与机器语言一一对应&#xff0c;每一条机器语言都有与之对应的汇编指令 机器语言是计算机使用的语言&#xff0c;它是一串二进制数字 汇编语言可以通过汇编得到机器语言机器语言可以通过反汇编得到…

鸿蒙开发实战:【文件管理】

介绍 本示例主要展示了文件管理相关的功能,使用[@ohos.multimedia.medialibrary]、[@ohos.filemanagement.userFileManager] 、[@ohos.fileio] 、[@ohos.file.fs]、[@ohos.app.ability.contextConstant] 等接口,实现了增添文件、删除文件、查找指定类型文件文件、复制并移动文…

机器学习(四)之无监督学习

前言&#xff1a; 前面写了监督学习的几种算法&#xff0c;下面就开始无监督啦&#xff01; 如果文章有错误之处&#xff0c;小伙伴尽情在评论区指出来&#xff08;嘿嘿&#xff09;&#xff0c;看到就会回复的。 1.聚类&#xff08;Clustering&#xff09; 1.1 概述&#xff…

上位机图像处理和嵌入式模块部署(树莓派4b与视觉slam十四讲)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 实际使用中&#xff0c;树莓派4b是非常好的一个基础平台。本身板子价格也不是很贵&#xff0c;建议大家多多使用。之前关于vslam&#xff0c;也就是…

WAF攻防-漏洞发现协议代理池GobyAwvsXray

知识点 1、Http/s&Sock5协议 2、Awvs&Xray&Goby代理 3、Proxifier进程代理使用 4、Safedog&BT&Aliyun防护在漏洞发现中&#xff0c;WAF会对三个方向进行过滤拦截&#xff1a; 1、速度频率问题&#xff08;代理池解决&#xff09; 2、工具的指纹被识别&am…

XMU《计算机网络与通信》第三次实验报告

一、个人信息 学号:************** 姓名:### 二、实验目的理解TCP和UDP协议主要特点掌握socket的基本概念和工作原理,编程实现socket通信三、实验任务与结果 任务 1 前置任务开启两个终端窗口,分别编译、运行 server_example.c 和 client_example.c,观察它们实现的功能。可…

vis.js样式3d图形

代码案例<!DOCTYPE html> <html><head><title>Graph 3D demo</title><style>body {font: 10pt arial;}</style><scripttype="text/javascript"src="https://unpkg.com/vis-graph3d@latest/dist/vis-graph3d.min.j…

Redis系列之Cluster集群搭建

在上一篇博客&#xff0c;我们学习Redis哨兵Sentinel集群的搭建&#xff0c;redis的哨兵模式提供了比如监控、自动故障转移等高可用方案&#xff0c;但是这种方案&#xff0c;容量相对固定&#xff0c;要进行持续扩容或者数据分片就不适合&#xff0c;所以有另外一种更复杂的集…

使用 ECharts 绘制咖啡店各年订单的可视化分析

使用 ECharts 绘制咖啡店各年订单的可视化分析 在这篇博客中&#xff0c;我将分享一段使用 ECharts 库创建可视化图表的代码。通过这段代码&#xff0c;我们可以直观地分析咖啡店各年订单的情况。 饼图 这段代码包含了两个 ECharts 图表&#xff0c;一个是饼图&#xff0c;用…

vis.js线条3d图形

代码案例<!DOCTYPE html> <html><head><title>Graph 3D demo</title><style>body {font: 10pt arial;}</style><scripttype="text/javascript"src="https://unpkg.com/vis-graph3d@latest/dist/vis-graph3d.min.j…

华为数通HCIA ——企业网络架构以及产品线

一.学习目标&#xff1a;精讲网络技术&#xff0c;可以独立搭建和维护中小企业网络&#xff01; 模拟器&#xff08;华为方向请安装ENSP&#xff0c;Ensp-Lite已有安装包&#xff0c;号称功能更加完善-这意味着要耗费更多的系统资源但是仅对华为内部伙伴申请后方可使用&#x…