文章目录
- 前言:什么是软件无线电SDR
- 第1章 什么是OAI(OpenAirInterface)
- 1.1 来自官网的概述
- 1.2 来自github的概述
- 1.3 来自我的解读
- 第2章 什么是OSA
- 2.1 OSA概述:
- 2.2 OSA联盟职责
- 2.3 OpenAirInterface github成员的角色
- 第3章 常见的其他问题
- 3.1 OAI包括哪几部分
- 3.2 OAI 支持哪些无线技术和无线系统?
- (1)LTE
- (2)5G
- 3.3 支持哪些射频硬件平台?
- 3.4 谁可以使用OAI?
- 3.5 谁在建设OAI?
- 3.6 OpenAirInterface与ETTUS N210 RF一起工作吗?
- 3.7 运行OAI需要考虑哪些射频因素?
- 3.8 CPU要求是什么?
- 3.9 平台软件需求是什么?
- 3.10 UE的要求是什么?
- 3.11 有教程吗?
- 3.12 我如何贡献/报告错误?
- 3.13 有持续集成框架吗?
- 3.14:是否需要在手机上启用任何特定设置?
- 3.15 使用什么配置文件作为起点?
- 3.16:可以为任何波段使用上述配置文件吗?
- 3.17:有时手机不想连接到OAI。有什么问题
- 第4章 OAI在github中源代码的存放结构
- 4G/5G RAN目标系统的架构
- LTE数据处理、仿真流程
- 协议栈
- 说明
- build目标代码
- nfapi openair1 PHY与openair2 MAC接口
- openair1 (L1: PHY+RF)
- openair2 (L2 + L3)
- openair3
前言:什么是软件无线电SDR
软件定义的无线电(Software Defined Radio,SDR) 是一种无线电广播通信技术,它基于软件定义的无线通信协议而非通过硬连线实现。
频带、空中接口协议和功能可通过软件下载和更新来升级,而不用完全更换硬件。
OpenAirInterface是软件无线电SDR的一种实现。
第1章 什么是OAI(OpenAirInterface)
1.1 来自官网的概述
OpenAirInterface是一种开放软件,汇集了来自世界各地的开发人员,他们共同构建无线蜂窝接入网络(RAN)和核心网络(CN)技术.
1.2 来自github的概述
OAI是一个开源的硬件和软件无线技术平台(模拟、仿真和实时),用于部署具有高度真实感的模拟无线蜂窝网络。
OAI github源代码:oai / openairinterface5G · GitLab
1.3 来自我的解读
OpenAirInterface不仅仅包括无线空口, 还包括整个无线接入网RAN,也包括核心网Core。
OpenAirInterface不仅仅包括4G LTE, 还包括5G,也包括未来的6G
OpenAirInterface不仅仅包括软件实体,还包括硬件与仿真(仿真硬件实体)。
Open的含义:
开放:是接口
开源:是代码
第2章 什么是OSA
2.1 OSA概述:
OSA:OpenAirInterface Software Alliance, 开源空口软件联盟。
OSA成立于2014年,是一个由公司赞助商资助的法国非营利组织(又称为“Dotation基金会”)。
OSA是OpenAirInterface成员的大本营。
2.2 OSA联盟职责
–软件的发展和演进路线图(进度和范围管理)
–软件的质量控制(质量管理)。
–推动OAI软件包,在学术界和工业界,针对不同的用例场景的部署 (市场管理)
2.3 OpenAirInterface github成员的角色
User:用户,使用者,这些人只使用github上提供的OpenAirInterface源代码,不参与开发。
Developer:开发者,这些人参与OpenAirInterface源代码的开发,OpenAirInterface欢迎任何人参与开发。
administrator:OpenAirInterface项目在github上的管理员。
第3章 常见的其他问题
(1)OAI官网:OpenAirInterface – 5G software alliance for democratising wireless innovation
(2)OAI github源代码:oai / openairinterface5G · GitLab
(3)OAI github home page:Home · Wiki · oai / openairinterface5G · GitLab
(4)常见问题列表:FAQ · Wiki · oai / openairinterface5G · GitLab
3.1 OAI包括哪几部分
OpenAirInterface主要包含四个部分:
(1)OpenAir0:无线嵌入式系统设计,包含了一些RF物理硬件相关的设计文件和firmware之类。
(2)OpenAir1:基带信号处理,包含了一些物理层的功能模块,例如OFDM,调制解调,信道估计,编解码等等。
(3)OpenAir2:MAC层介质访问协议,包括在PC上通过Linux的IP网络设备驱动与MPLS的互联开发第二层协议栈。
(4)OpenAir3:无线网络,包括为全IP蜂窝与IP/MPLS网状而开发的第三层协议栈。
上述部分,反应了5G NR的协议栈结构。
3.2 OAI 支持哪些无线技术和无线系统?
(1)LTE
协议栈:OAI提供了一个完整的实验性的LTE实现(主要是Rel 8,包括部分Rel 10)。
底层的硬件+OS平台:基于x86优化的实时Linux操作系统,并具有互通功能(也就是说它不支持ARM硬件平台和windows操作系统)
无线系统:它包括无线接入EUTRAN(eNB和UE)和LTE核心网EPC(MME、xGW和HSS)。
(2)5G
目前,该项目正在与社区密切合作,以使软件朝着3GPP未来5G版本的方向发展。
也就是说开源的5G项目正在开展,还不像4G LTE那样成熟。
3.3 支持哪些射频硬件平台?
法国 Eurecom EXMIMO II
NI/ETTUS B210/X300
BladeRF,
LMSSDR。
三款SDR平台对比:HackRF,bladeRF和USRP - h2z - 博客园
3.4 谁可以使用OAI?
作为一个开源平台,它可供学术机构、工业界和政府的研究人员使用。
3.5 谁在建设OAI?
OAI最初由EURECOM开发,并获得了欧洲委员会和法国政府的资助)。
目前,它由OpenAirInterface软件联盟(OSA,www.OpenAirInterface.org)管理。
OSA有几个工业/非营利成员;有关更多详细信息,请参阅OSA成员列表。
3.6 OpenAirInterface与ETTUS N210 RF一起工作吗?
简短回答:否。
长回答:软件应该运行,但N210卡上的参考频率不足以生成所需的7.68/15.36 MHz采样频率,因此虽然软件功能工作,但无法提供业务。
3.7 运行OAI需要考虑哪些射频因素?
需要一个双工器、射频电缆。天线,RF电路才能正常工作。
射频部件应与运行系统的频带/射频频率正确匹配。
有关更多详细信息,请参阅OAI系统需求页面上的双工器部分。
3.8 CPU要求是什么?
最好在最新的Intel Core i5/i7上运行,最少4核。
有关更多详细信息,请参阅OAI系统需求页面。
3.9 平台软件需求是什么?
需要在计算机上运行Ubuntu 14.04或更高版本。
Ubuntu 16.04 LTS的测试正在进行。
OAI的内核也有特定的要求。有关更多详细信息,请参阅OAI软件支持页面。
3.10 UE的要求是什么?
理论上没有,但最好使用官网尝试过的手机。
最好不要从运营商处购买解锁手机,而是直接从亚马逊/易趣上的第三方供应商处购买。
包括SIM卡编写工具。
3.11 有教程吗?
是的,在官网的教程页面有很多教程。
3.12 我如何贡献/报告错误?
需要签署许可协议,然后按照gitlab工作流/编码指南提交分支机构进行合并。
有关更多详细信息,请参阅如何贡献页面。
3.13 有持续集成框架吗?
是的,官网githut上有一个CI框架,可以在不同的系统上构建多个不同的变体,运行模拟器和物理层测试。
它还远程控制UEs、EPC、ENB并运行吞吐量测试。
3.14:是否需要在手机上启用任何特定设置?
是的,必须将手机置于仅LTE模式。
如果您使用oai EPC,您还必须将蜂窝设置中的APN设置为“oai.ipv4”,或者根据您的EPC配置设置为其他内容。
3.15 使用什么配置文件作为起点?
对于USRP,$OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE EPC/CONF/enb.band7.tm1.usrpb210.CONF
对于BladeRF,$OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.CONF
对于LMSSDR,$OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.LMSSDR.CONF
对于EXMIMO2,$OPENAIR\u DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.EXMIMO2.CONF
3.16:可以为任何波段使用上述配置文件吗?
否。以上配置文件仅适用于频带7。
SDR需要对其他波段进行校准。
官方已经为其他波段校准了一些SDR平台。
可以在文件夹中查找其他波段的配置文件,$OPENAIR\u DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF
注意:请勿随意更改TX/RX增益设置,因为它们会影响其他LTE参数。
3.17:有时手机不想连接到OAI。有什么问题
尽量避免从某个运营商购买手机。运营商的手机都有一个包装,将阻止该手机接入到其他网络,例如OAI。这是另一个解决方案,但请自行承担风险,
https://lists.eurecom.fr/sympa/arc/openair5g-user/2016-06/msg00076.html
第4章 OAI在github中源代码的存放结构
4G/5G RAN目标系统的架构
注意,上述架构,分为3大组成部分, RCC, RAC, RRU
RRU: RU => L1_Low + RF simulator =》 openair1
RAC: DU => RLC, MAC, L1-High =》 openair2
RRC: CU => RRC, PDCP层 =》 openair2
F1接口:RRC与RLC接口 =》 openair2
nFAPI接口:L1-High与L1-Low接口 =》 nFAPI
UE核心网对等层: =》 openair3
LTE数据处理、仿真流程
协议栈
说明
本文只包括UE和基站的代码结构,不包括EPC和5G核心网的源代码。
(1)EPC代码:Home · OPENAIRINTERFACE/openair-epc-fed Wiki · GitHub
(2)5G NR核心网代码:
build目标代码
openairinterface5g
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI. =》存放持续集成所需要所有脚本和配置文件。
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files. =》 存放交叉编译所需要的各种工具以及交叉编译生成的目标文件。
├── common : Some common OAI utilities, other tools can be found at openair2/UTILS. =》存放一些公共的OAI工具,这些工具,主要用于目标系统。
├── doc : Contains an up-to-date feature set list and starting tutorials. =》支持的功能列表以及快速入门帮助文件。
├── executables : Top-level executable source files. =》可执行文件
├── LICENSE : License file.
├── maketags : Script to generate emacs tags. =》Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。
nfapi openair1 PHY与openair2 MAC接口
├── nfapi : Contains the NFAPI code. A local Readme file provides more details. =》 N
FAPI接口的源代码文件, nFAPI是openair1的PHY层与openair2 MAC层之间的接口。
openair1 (L1: PHY+RF)
├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details. =》 物理层代码,包括LTE R10/12和NR R15, 包括基站和UE.
│ ├── PHY =》 PHY + RF 源代码
│ ├── SCHED =》4G基站侧调度器代码
│ ├── SCHED_NBIOT =》NBIOT调度器
│ ├── SCHED_NR =》 5G 基站侧调度器
│ ├── SCHED_NR_UE =》 5G UE侧调度器
│ ├── SCHED_UE =》4GUE侧调度器代码
│ └── SIMULATION : => PHY + RF simulation. (包括部分PHY的仿真和RF的全部仿真)
openair2 (L2 + L3)
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│ ├── COMMON
│ ├── DOCS =》 文档说明
│ ├── ENB_APP =》 4G LTE 基站侧负责空口与核心网接口的桥接
│ ├── F1AP =》 4G+5G RRC与RLC的接口,也是openair2与openair3的接口
│ ├── GNB_APP => 5G GNB 基站侧负责空口与核心网接口的桥接
│ ├── LAYER2/RLC/ : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0. => 4G + 5G共用RLC层
│ ├── LAYER2/PDCP/PDCP_v10.1.0 => 4G + 5G共用PDCP层
│ ├── M2AP ???
│ ├── MCE_APP ???
│ ├── NETWORK_DRIVER =》 传输层驱动程序,用于硬件加速
│ ├── NR_PHY_INTERFACE =》NR 基站MAC层与PHY层的接口
│ ├── NR_UE_PHY_INTERFACE =》NR 手机MAC层与PHY层的接口
│ ├── PHY_INTERFACE =》LTE 基站/手机MAC层与PHY层的接口
│ ├── RRC =》RRC层
│ ├── UTIL =》工具
│ └── X2AP =》 X2AP接口
openair3
├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│ ├── COMMON =》 核心网的common代码 ???
│ ├── DOCS
│ ├── GTPV1-U =》 GTPV1
│ ├── M3AP =?????
│ ├── MME_APP => MME APP
│ ├── NAS => NAS层消息
│ ├── S1AP => S1AP
│ ├── SCTP
│ ├── SECU => Security
│ ├── TEST
│ ├── UDP
│ └── UTILS
└── targets : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW. => 硬件环境仿真。???