[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构

文章目录

  • 前言:什么是软件无线电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)技术.

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第1张图片

1.2 来自github的概述

OAI是一个开源的硬件和软件无线技术平台(模拟、仿真和实时),用于部署具有高度真实感的模拟无线蜂窝网络。

OAI github源代码:oai / openairinterface5G · GitLab

1.3 来自我的解读

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第2张图片

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。

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第3张图片

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目标系统的架构

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第4张图片
注意,上述架构,分为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数据处理、仿真流程

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第5张图片

协议栈

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第6张图片

说明

本文只包括UE和基站的代码结构,不包括EPC和5G核心网的源代码。

(1)EPC代码:Home · OPENAIRINTERFACE/openair-epc-fed Wiki · GitHub

(2)5G NR核心网代码:

[OpenAirInterface-01]什么是OAI?OAI在github中源代码的存放结构_第7张图片

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. => 硬件环境仿真。???

你可能感兴趣的:(github,驱动开发)