具体实施方式
为使本公开的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本公开作进一步地详细说明。
为了使本公开实施例更加便于理解,下面先对5G-NR TDD制式的组网架构进行说明。如图1所示,是根据本公开一实施例的5G-NR TDD制式的组网架构示意图。
5G-NR TDD制式的组网架构包括:核心网110、基带处理单元120、射频扩展单元130和射频单元140。
核心网110,用于处理端到端的网络连接。
基带处理单元120,通过网线与核心网110连接,用于处理基带信号,对信号进行调制、解调等处理。
射频扩展单元130,通过光纤与基带处理单元120连接,用于拓展基带处理单元120单路下挂的射频单元140个数,以便提高射频单元140的小区覆盖范围。
射频单元140,又称射频拉远模块,通过光纤连接基带处理单元120或者射频扩展单元130,用于在下行将数字信号转成射频信号,并通过天线发送出去,在上行将天线接收的射频信号转成数字信号。
进一步地,射频单元140可以直接连接射频扩展单元130,对应图中射频单元140A的连接方式,使得同一基带处理单元120出光口可以挂载更多的射频拉远模块,提高基带处理光口单光口的小区覆盖范围。射频单元140也可以直接连接基带处理单元120,对应图1中射频单元140B的连接方式。
下面针对射频单元140进行进一步地描述。
如图2所示,是根据本公开一实施例的射频单元的结构图示意图。
本领域技术人员应当知道的是,本实施例的射频单元140的结构图仅为方便描述本实施例,射频单元140的结构不限于此。
在本实施例中,射频单元140包括:控制模块210,切换模块220和射频前端模块。该射频前端模块包括但不限于:RFIC(RF Integrated-Circuit chip,射频集成芯片)230和RFFC(RF Front-Chains,射频前端链)240。
控制模块210用于射频单元140管理、与上层软件交互、初始化配置前端射频链路、管理切换模块220的寄存器。控制模块210可以是ARM(Advanced RISC Machines,嵌入式处理器)。进一步地,控制模块210通过SPI(Serial Peripheral Interface,串行外设接口)或URAT(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)接口或I2C(Inter-Integrated Circuit)接口或AXI(Advanced eXtensible Interface)接口等,可以访问切换模块220的寄存器,并且进行寄存器的读取或者写入。控制模块210通过SPI接口可以对射频单元140进行配置和初始化。
切换模块220通过预设接口连接控制模块210,用于对IQ(in-phase quadrature,同相正交信号)数据链路进行处理,对射频前端模块进行控制。例如:对RFIC230和RFFC240的GPIO(General purpose input output,通用输入输出)管脚进行控制。切换模块220可以是FPGA模块。
RFFC240分别连接切换模块220和RFIC230,用于对前端射频信号进行处理,包含天线进行射频信号的发送和接收。进一步地,RFFC240通过GPIO管脚连接切换模块220的第一管脚。RFFC240通过第一射频接口连接切换模块220的第一射频接口,通过第二射频接口223连接RFIC230的第二射频接口223。第一射频接口可以是204B接口,204B接口为支持JESD204B协议的一种基于高速串行接口的数据传送接口,包含发送和接收两个方向。204B接口在切换模块220和RFFC240两侧都有接口处理模块,两边对接实现数据收发。
RFIC230(又称宽带收发器)分别连接切换模块220和RFFC240,用于将接收到的前端射频信号转换为数字信号,并将模拟信号发送出去。进一步地,RFIC230通过GPIO管脚连接切换模块220的第二管脚。在本实施例中,RFIC230例如是ADRV902x系列芯片。
进一步地,切换模块220包含发送方向模块和接收方向模块。进一步地,IQ数据链路处理包括:发送方向(下行链路)和接收方向(上行链路)之间的链路切换处理。
针对发送方向模块而言,发送方向模块包括但不限于:顺次连接的插入CP(CyclicPrefix,循环前缀)单元、DUC(Digital Up Converter,上变频)单元和第二射频接口223。
插入CP单元221,用于将来自于切换模块220的IFFT(Inverse Fast FourierTransform,反向快速傅里叶变换)模块(图中未示出)的待发送的下行数据加上循环前缀码。在本实施例中,状态机产生插入CP的触发来进行操作。
DUC单元222,用于将插入CP单元221输出的下行数据进行滤波处理并且升采样为RFIC230支持的数据码率的数据。
第二射频接口223,用于将DUC单元222输出的下行数据发送给RFIC230的第二射频接口223。
针对接收方向模块而言,接收方向模块包括但不限于:顺序连接的第二射频接口223、DDC(Digital Down Converters,下变频)单元224和去除CP单元。其中,去除CP单元连切换模块220的FFT(Fast Fourier Transform,快速傅里叶变化)模块(图中未示出)。接收接口可以是204B接口。
第二射频接口223,用于接收来自于RFIC230的第二射频接口223的上行数据。该上行数据是RFFC240从天线接收到的。RFIC230的发送接口可以是204B接口。
DDC单元224,用于将第二射频接口223传送的上行数据进行滤波并降采样到实际数据码率。
去除CP单元225,用于将DDC单元224输出的上行数据去除循环前缀码,并将去除循环前缀码的上行数据发送给FFT模块。在本实施例中,状态机产生去除CP的触发来进行操作。
在本实施例中,首先由控制模块210控制RFFC240和RFIC230的GPIO管脚,根据预设的硬件时序输出GPIO电平(初始化信号),使得RFFC240和RFIC230进行初始化。在初始化完成后,由切换模块220控制RFFC240和RFIC230的GPIO管脚,并且由切换模块220对去除CP单元225和插入CP单元221实时控制,完成对RFFC240和RFIC230的实时控制,实现针对TDD制式的发送、接收链路的实时切换。
在本实施例中,使用寄存器来存储帧结构的结构信息以及链路时延信息,或者存储帧周期中上行链路、下行链路以及切换链路的持续时间。切换模块220按照寄存器中的数据就可以实现任意帧结构对应的TDD制式的链路实时切换,无需为每种帧结构的收发过程开发对应的芯片代码,也无需为了识别不支持的帧结构频繁的更新切换模块220中的芯片代码。下面对本公开实施例的链路过程进行详细描述。
基于上述5G-NR TDD制式的组网架构,根据本公开的实施例,提供了一种在控制模块210执行的数据通信方法。射频单元140中的控制模块210的种类包括但不限于:ARM,DSP(Digital Signal Process,数字信号处理)和CPU(Central Processing Unit,中央处理器)。
图3是根据本公开一实施例的在控制模块执行的数据通信方法的流程图。
步骤S310,控制射频单元的射频前端模块进行初始化。
射频前端模块包括但不限于:射频前端链RFFC和射频集成芯片RFIC。
控制模块通过接口连接所述切换模块,所述切换模块的第一管脚连接所述RFFC的通用输入输出GPIO管脚,所述切换模块的第二管脚连接所述RFIC的GPIO管脚。
控制模块通过接口向切换模块发送初始化信号,使切换模块将初始化信号分别向RFFC和RFIC发送,以便RFFC和RFIC分别根据该初始化信号进行初始化处理。
步骤S320,在所述射频单元的射频前端模块初始化完成后,根据目标帧结构的结构信息以及链路时延信息配置切换模块中的寄存器。
控制模块可以读取RFFC和RFIC的状态,根据RFFC和RFIC的状态确定RFFC和RFIC是否已经初始化完成。
例如:控制模块通过与RFIC连接的接口,读取RFIC的预设寄存器,确定该预设寄存器中的值是否为表示初始化完成的值,如果是,则表示RFIC已经初始化完成。控制模块通过切换模块读取RFFC的GPIO管脚的状态,根据RFFC的GPIO管脚的状态,确定RFFC是否上电完成,如果是,则表示RFFC已经初始化完成。
在RFFC和RFIC已经初始化完成之后,根据目标帧结构的结构信息以及链路时延信息,配置所述切换模块中的基础寄存器或者状态寄存器。进一步地,基站系统的后台网管进行小区创建后,向射频单元下发小区配置,该小区配置包括目标帧结构的结构信息以及链路时延信息,射频单元中的控制模块根据接收的小区配置切换模块的寄存器。进一步地,后台网管可以通过有线或者无线的方式向射频单元下发小区配置。
基础寄存器,用于存储目标帧结构的结构信息以及链路时延信息。
状态寄存器,用于存储根据目标帧结构的结构信息以及链路时延信息确定的每种通信状态对应的运行时间,以及,存储根据链路时延信息确定的帧周期时延时间。
目标帧结构是指需要射频单元支持的帧结构。
目标帧结构的结构信息,包括但不限于:上行符号的信息,下行符号的信息以及循环前缀的信息。
链路时延信息,包括但不限于:网络的收发时延以及射频前端的收发时延。针对结构信息以及链路时延信息的内容将在后面介绍。
帧周期时延时间是指:因为收发链路时延的影响,帧周期的开始时刻相对于同步信号的提前量或者滞后量。帧周期是指一个无线帧占用的时间。
步骤S330,在所述射频单元与基带处理单元同步完成之后,控制所述切换模块根据所述寄存器中的配置数据运行状态机。
在射频单元接收到基带处理单元发送的同步信号时,表示射频单元与基带处理单元同步完成。
状态机包括状态寄存器和组合逻辑电路,能够按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
在本实施例中,将目标帧结构的帧周期划分为多个链路模式(下行链路模式,链路切换模块和上行链路模式),根据划分的多个链路模式在切换模块设置状态机。状态机包括多种通信状态。该多种通信状态顺序运行一次为所述目标帧结构对应的一个帧周期,每种所述通信状态对应所述帧周期中的一种链路模式;所述切换模块在运行所述状态机的过程中,所述状态机每次跳转通信状态,所述切换模块将链路模式向跳转到的所述通信状态对应的链路模式切换,利用切换到的所述链路模式进行数据通信。
在本实施例中,控制所述切换模块根据所述寄存器中的配置数据运行状态机包括:通知切换模块允许向状态机输出工作能使。工作使能是用于保证电路或者器件正常工作的开关。进一步地,该工作使能用于使状态机运行。
由于控制模块和切换模块从底层来讲都是电路,如果需要支持更多的帧结构,则需要更新代码。对于FPGA来说,可以重载新版本的代码,但是重载版本时将影响FPGA挂载的外设。对于ASIC来说,流片后电路固定,无法像FPGA一样通过加载版本来多兼容几种帧结构。为了解决这种问题,在本实施例中,由控制模块配置切换模块中的寄存器,在与基带处理单元同步完成之后,使切换模块中的状态机根据寄存器中的配置数据循环运行,状态机每运行一次对应一个帧周期,状态机的每个通信状态对应帧周期中的一种链路模式,每次通信状态跳转,切换跳转到的通信状态对应的链路模式。本实施例可以通过寄存器动态配置所需的帧结构,控制模块和切换模块仅需根据本实施例就可以实现对不同帧结构的无线帧的收发,无需重载新的代码版本来兼容不同的帧结构,操作方式简单易行,增加了基站系统的兼容性。
根据本公开的实施例,还提供了一种在切换模块执行的数据通信方法。该切换模块可以是射频单元中的FPGA、ASIC(Application Specific Integrated Circuit,专用集成电路)等。如图4所示,是根据本公开一实施例的在切换模块执行的数据通信方法的流程图。
步骤S410,在控制模块的控制下,根据寄存器中的配置数据运行状态机。
寄存器中的配置数据是所述控制模块根据目标帧结构的结构信息以及链路时延信息配置的。
在本实施例中,所述状态机包括多种通信状态,多种所述通信状态顺序运行一次为所述目标帧结构对应的一个帧周期,每种所述通信状态对应所述帧周期中的一种链路模式。
步骤S420,在所述状态机按照多种所述通信状态的排列顺序,循环运行多种所述通信状态的过程中,在每次所述状态机跳转通信状态时,将当前的链路模式向跳转到的通信状态对应的链路模式切换,以便利用切换到的所述链路模式进行数据通信。
状态机的通信状态包括:下行链路状态,切换链路状态和上行链路状态。
下行链路状态对应下行链路模式。切换链路状态对应切换链路模式。上行链路状态对应上行链路模式。
在切换到所述上行链路模式,触发所述切换模块中的去除CP单元,以便利用包括所述去除CP单元的上行通道进行数据接收。进一步地,上行通道包括:顺序连接的第二射频接口、DDC单元224和去除CP单元。
在切换到所述链路切换模式,暂停进行数据通信。
在切换到所述下行链路模式,触发所述切换模块中的插入CP单元,以便利用包括所述插入CP单元的下行通道进行数据发送。进一步地,下行通道包括:顺次连接的插入CP单元、DUC单元和第二射频接口。
具体而言,下行链路状态,切换链路状态和上行链路状态的数量以及排列顺序可以根据帧结构中的上下行符号的配置(帧周期的上下行链路模式以及链路切换模式)进行设置。
由于基站多采用先下行后上行的方式进行数据通信,所以,在本实施例中,状态机的通信状态可以依次包括:接收提前GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态。每种状态的持续时间可以根据帧结构中上下行符号以及CP符合的持续时间进行确定。
接收提前GAP状态是指从上行通信切换到下行通道。
发送提前状态是指基于正式发送数据,定义一个提前状态,用于提前打开射频使能,以便RFFC和RFIC可以进行数据收发。在本实施例中,发送提前状态属于链路切换的过渡。
发送数据状态是指使用下行通道,从下行链路发送数据。
发送GAP数据状态是指从下行通信切换到上行通道。
接收数据状态是指使用上行通道,从上行链路接收数据。
接收提前GAP状态,发送提前状态和GAP状态对应切换链路状态。发送数据状态对应下行链路状态。接收链路状态对应上行链路状态。
在5G-NR TDD制式下,帧结构较为灵活,需要一种兼容不同帧结构的灵活配置方案,提高基站系统的兼容性。在本实施例中,由控制模块配置切换模块中的寄存器,在与基带处理单元同步完成之后,使切换模块中的状态机根据寄存器中的配置数据循环运行,状态机每运行一次对应一个帧周期,状态机的每个通信状态对应帧周期中的一种链路模式,每次通信状态跳转,切换跳转到的通信状态对应的链路模式。本实施例可以通过寄存器动态配置所需的帧结构,控制模块和切换模块仅需根据本实施例就可以实现对不同帧结构的无线帧的收发,无需重载新的代码版本来兼容不同的帧结构,操作方式简单易行,增加了基站系统的兼容性。
具体而言,在5G-NR TDD制式的组网架构中,基站系统包括基带处理单元和射频单元,射频单元需要根据帧结构和同步信号控制RFFC和RFIC的GPIO管脚,按照时序进行发送通道(下行通路)和接收通道(上行通路)的实时切换。进一步地,根据帧结构和同步信号输出触发信号,使得链路按照触发进行插入CP和去除CP的操作。插入CP单元和去除CP单元的实时切换一般通过切换模块来完成。通过切换模块进行射频前端的下行通路、上行通路的切换,需要把控射频前端的链路延时,按照链路延时在对应的时刻切换上下行通路,如果切换时刻控制的不对,会影响UE(User Equipment,用户设备)的接入。
本公开实施例通过配置一组寄存器,可供控制模块读取或者写入,该组寄存器可以是一组基础寄存器或者一组状态寄存器。该组基础寄存器包括控制源选择寄存器,帧结构配置寄存器,链路时延寄存器。其中,帧结构配置寄存器和链路时延寄存器为包含双周期帧结构的配置寄存器。
在初始化时,控制模块通过控制源选择寄存器控制切换模块,进行前端射频的校准和初始化。初始化完成后,控制模块通过控制源选择寄存器,选择由切换模块控制切换模块输出的GPIO管脚,切换模块根据控制源选择寄存器、链路时延寄存器、帧结构配置寄存器、同步信号1PPS(1 Pulse Per Second),行状态机跳转,根据状态机输出触发信号,最终实现插入CP单元和去除CP单元的实时切换。
为了使本公开实施例中对寄存器的应用更加清楚,下面针对本公开实施例的数据通信方法进行进一步地描述。
在本实施例中,切换模块中的寄存器包括:控制源选择寄存器,基础寄存器和状态寄存器。基础寄存器包括帧结构配置寄存器和链路时延寄存器。帧结构配置寄存器和链路时延寄存器的数量都为一个或者多个。
表1为根据本公开一实施例的寄存器结构。表1中控制模块以ARM为例,切换模块以FPGA为例。寄存器的数量可以为多个,多个寄存器用于存储不同的内容,下面将表1的多个寄存器按照存储内容的特征划分为四个分类,每个寄存器按照分类进行命名。当然,本领域技术人员应当知道的是,表1仅用于说明本公开实施例,而不用于限定本公开实施例。
表1
在表1中,数值范围为取值范围。
控制源选择寄存器中配置的数据包括但不限于:版本号,保留信号(reserved),复位信号,同步使能(sm_disable)和GPIO控制源选择开关。
保留信号在后续子寄存器中都可以设置,扩展寄存器配置数据可以使用。
复位信号高电平有效。在每次进行小区改配时,或者输入的1PPS出发偏差较大无法在GAP调整时,可通过复位信号对射频单元进行复位。
同步使能用于指示是否等待向状态机输出工作使能,使状态机工作。高电平为状态机工作使能输出标识。
GPIO控制源选择开关用于选择RFFC和RFIC的GPIO管脚的控制端。0为控制模块标识,1为切换模块标识。
在表1中,帧结构配置寄存器中配置的数据包括但不限于:双周期使能,帧周期时钟数,第一帧结构信息,第二帧结构信息,CP长度,FFT点数,空口传输帧号。这些配置数据可以使用单独的子寄存器来存储。
双周期使能,用于选择当前帧结构是双周期模式,还是单周期模式。在状态机跳转时,判断是否要启用双周期模式。单周期模式表示无线帧(10ms)的上下行切换是固定一种格式切换,双周期模式表示无线帧(10ms)的上下行切换是两种格式循环切换。0表示单周期模式,1表示双周期模式。
帧周期时钟数,用于表示每个10ms无线帧的时钟数,产生10ms触发。
第一帧结构信息,用于指示单周期模式或者双周期模式下第一个帧周期的帧结构。帧结构信息包括:帧周期时钟数,帧周期中的时隙个数TDD_slot,帧周期中下行时隙的个数Tx_whole_slot,帧周期中上行时隙的个数Rx_whole_slot,帧周期的特殊时隙里下行时隙的符号个数Special_tx,帧周期的特殊时隙里GAP时隙的符号个数Special_gap,帧周期中特殊时隙里上行时隙的符号个数Special_rx。
第二帧结构信息secondframe_comprise_reg,用于指示双周期模式下第二个帧周期的帧结构。
CP长度,用于指示插入CP和去除CP的长度。CP长度包括长CP长度和短CP长度。长CP长度用于产生插入CP和去除CP的长CP周期触发。短CP长度用于产生插入CP和去除CP的短CP周期触发。
FFT(fast Fourier transform,快速傅里叶变换)点数,用于与CP长度配合使用,产生插入CP和去除CP的CP周期触发。
空口传输帧号,用于存储射频单元对空口符号号、时隙号、帧号的计数值,可供ARM读取当前无线帧的帧ID(Identity document,身份标识号),以便上报基带处理单元。
在表1中,链路时延寄存器中的配置数据包括但不限于:射频发送提前量,射频接收提前量,网络的接收提前量,接收延时量,发送提前量,发送延时量,发送时间,接收时间,发送和接收切换时间,第二周期的发送时间,第二周期的接收时间以及第二周期的发送和接收切换时间。这些配置数据可以使用单独的子寄存器来存储。
射频发送提前量包括射频前端链发送提前量和射频集成芯片发送提前量。射频前端链发送提前量Trffc_tx_ advance是指:RFFC的发送提前时间。射频集成芯片发送提前量Trfic_tx_ advance是指:RFIC的发送提前时间。RFFC的发送提前时间和RFIC的发送提前时间都可以根据硬件测试获得。
射频接收提前量Trx_advance_gpio是指切换单元接收GPIO管脚的数据的提前时间。该提前时间可以根据硬件测试获得。
接收提前量Tbs_rx_advance,是指5G-NR协议中规定的射频单元的接收提前时间。在表1中时间以晶振的点数为度量。该接收提前量是协议中的规定值,可以通过网管下发获得。
接收延时量Tbs_rx_delay,是指射频单元接收延后时间。该接收延时量为经验值或者根据硬件调测获得。
发送提前量Tbs_tx_advance,是指5G-NR协议中规定的射频单元的发送提前时间。该发送提前量是协议中的规定值,可以通过网管下发获得。
发送延时量Tbs_tx_delay,是指射频单元发送延后时间。该发送延时量为经验值或者根据硬件调测获得。
发送时间Tota_tx,是指:无线帧中下行时隙占用的时间。该时间可以根据帧结构配置寄存器中的配置数据进行计算获得。
接收时间Tota_rx,是指:无线帧中上行时隙占用的时间。该时间可以根据帧结构配置寄存器中的配置数据进行计算获得。
发送和接收切换时间Tota_gap是指无线帧中上下行切换间隙持续时间。该时间可以根据帧结构配置寄存器中的配置数据进行计算获得。
第二周期的发送时间T second-ota_tx是指双周期模式的无线帧的第二周期的发送时间。
第二周期的接收时间T second-ota_rx是指双周期模式的无线帧的第二周期的接收时间。
第二周期的发送和接收切换时间T second-ota_gap是指双周期模式的无线帧的第二周期的发送和接收切换时间。
在本实施例中,射频前端链发送提前量Trffc_tx_advance< 接收提前量Tbs_rx_advance;射频集成芯片发送提前量Trfic_tx_advance<射频前端链发送提前量 Trffc_tx_advance。
在表1中,状态寄存器中的配置数据包括但不限于:接收提前GAP状态的运行时间,发送提前状态的运行时间,发送数据状态的运行时间,发送GAP数据状态的运行时间,接收数据状态的运行时间。其中,在单周期模式下,可以在状态寄存器中配置一组运行时间。在双周期模式下,可以在状态寄存器中配置两组运行时间,每组运行时间一个周期。
接收提前GAP状态的运行时间,发送提前状态的运行时间,发送数据状态的运行时间,发送GAP数据状态的运行时间,RX 接收数据状态的运行时间可以使用单独的子寄存器存储,子寄存器的bit位宽可以根据硬件的管脚数据进行设置。状态机在每种通信状态下可以按照对应的子寄存器中的电平时序(运行时间)输出GPIO信号。
在状态寄存器中还可以包括输出GPIO使能寄存器。输出GPIO使能寄存器中的输出GPIO使能对应硬件GPIO管脚的使能信号,bit位宽根据硬件的管脚数设置。在状态机运行过程中写入状态寄存器的情况下, GPIO管脚由ARM控制时,按照输出GPIO使能设置电平输出GPIO信号,GPIO管脚由FPGA控制时,输出GPIO使能为使能信号与以上几种运行时间分部对应的子寄存器进行逻辑与的电平时序。
在状态寄存器中还可以包括帧周期时延时间。
部分寄存器例如rffc_tx_advance、rfic_tx_advance,调测获得后可以固化成固定值,其它可变的延时例如光纤延时、链路波动延时,可以上报给控制模块体现在Tbs_rx_delay、Tbs_tx_delay等寄存器值中,Tbs_rx_advance、Tbs_tx_advance可以通过后台网管下发下来。而根据帧结构的时隙配比会实时更新的值有Tota_tx、Tota_gap和Tota_rx。
基于表1中的寄存器,对控制模块对切换模块的控制过程进行描述。
如图5所示,是根据本公开一实施例的模块控制步骤流程图。
步骤S510,控制模块在切换模块的控制源选择寄存器中设置控制模块标识。
控制模块标识表示切换模块的第一管脚和第二管脚由控制模块控制。
控制源选择寄存器中的GPIO控制源选择开关用于切换RFFC和RFIC的GPIO管脚是由ARM控制,还是FPGA控制。在初始化阶段,控制模块将控制源选择寄存器中的GPIO控制源选择开关置为0。
FPGA控制RFFC和RFIC是通过控制RFFC和RFIC的GPIO管脚,并通过GPIO管脚向RFFC和RFIC输出电平的方式。
在本实施例中,由于在配置阶段需要有ARM进行全局控制,所以RFFC和RFIC在初始化时,GPIO管脚需要开放给ARM控制。RFFC和RFIC初始化完成后,GPIO管脚需要开放给FPGA控制,以便FPGA通过状态机跳转输出对应电平。
步骤S520,切换模块实时读取控制源选择寄存器。
步骤S530,切换模块在所述控制源选择寄存器被所述控制模块配置控制模块标识的情况下,接受所述控制模块的控制。
在所述控制源选择寄存器被所述控制模块配置控制模块标识的情况下,接收控制模块对RFFC和RFIC的GPIO管脚的控制。
步骤S540,控制模块向所述切换模块发送初始化信号。
步骤S550,切换模块在接受所述控制模块的控制时,将所述控制模块发送的初始化信号向所述RFFC的GPIO管脚和所述RFIC的GPIO管脚输出,以便所述RFFC和所述RFIC分别根据所述初始化信号进行初始化处理。
控制模块通过切换模块的第一管脚向所述RFFC的GPIO管脚输出所述初始化信号,通过切换模块的第二管脚向所述RFIC的GPIO管脚输出初始化信号,以便所述RFFC和所述RFIC分别根据所述初始化信号进行初始化处理。
步骤S560,控制模块在RFFC和RFIC初始化完成之后,将所述控制源选择寄存器中的所述控制模块标识修改为切换模块标识,并在所述控制源选择寄存器中设置状态机工作使能输出标识。
所述切换模块标识表示所述切换模块的所述第一管脚和所述第二管脚由所述切换模块控制。
所述状态机工作使能输出标识表示允许向状态机输出工作使能;其中,所述状态机基于所述工作使能运行。
具体而言,同步使能为高电平为状态机工作使能输出标识,表示使能模块处于等待状态(不能工作),允许切换模块中的使能单元向状态机输出工作使能。同步使能为低电平表示使能单元开始工作。进一步地,射频单元获取到与基带处理单元同步的1PPS信号(同步信号)需要一定的时间,在未获得同步信号前,使能单元不能工作。
步骤S570,切换模块在所述控制源选择寄存器被所述控制模块配置切换模块标识以及状态机工作使能输出标识的情况下,重新对所述第一管脚和所述第二管脚由所述切换模块进行控制,并且等待向所述状态机输出工作使能。
具体何时向状态机输出工作使能将在下面进行介绍。
为了实现TDD上下行切换,可以根据目标帧结构的结构信息以及链路时延信息,配置所述切换模块中的基础寄存器或者状态寄存器,通过所述切换模块中的基础寄存器或者状态寄存器来配合状态机来完成。
基础寄存器,用于存储目标帧结构的结构信息以及链路时延信息。
状态寄存器,用于存储根据目标帧结构的结构信息以及链路时延信息确定的每种通信状态对应的运行时间,以及,存储根据链路时延信息确定的帧周期时延时间。
下面先描述配置基础寄存器来配合状态机进行TDD上下行切换的过程。
如图6所示,是根据本公开一实施例的数据通信方法流程图。
步骤S610,控制模块根据目标帧结构的结构信息以及链路时延信息,配置所述切换模块中的基础寄存器。
基础寄存器包括:用于存储链路时延信息的链路时延寄存器。
链路时延信息包括:网络的接收提前量,接收延时量,发送提前量以及发送延时量。
步骤S620,切换模块从所述链路时延寄存器中读取所述网络的接收提前量,接收延时量,发送提前量以及发送延时量。
步骤S630,确定所述接收提前量和所述接收延时量的第一差值,并且确定所述发送提前量和所述发送延时量的第二差值,并且确定所述第一差值和所述第二差值的时间差值。
由于无线帧与无线帧是连续的,前一个无线帧的最后一个时隙为上行时隙,后一个无线帧的第一个时隙为下行时隙,所以相邻两个无线帧直接需要一个上下行时隙切换间隙(GAP),在本实施例中,所述接收提前量减去所述接收延时量得到的第一差值,表示上行数据基于下行数据提前量(协议规定的接收提前量),经过射频单元上行链路延时(接收延时量)后的时间,即上行链路切换到下行链路的GAP时间。
由于射频单元的发送具有时延,需要确定该时延时间会占用GAP时间,所述发送提前量减去所述发送延时量得到的第二差值,表示下行数据基于基准10ms(同步信号1pps)的提前量(协议规定的提前量),经过射频单元下行链路延时(发送延时量)后的时间,即射频单元的发送延时时间。使用第差值减去第二差值,就可以得到后一个无线帧的真实接收时刻。
在本实施例中,可以将RFFC和RFIC的发送位置作为时间基准,那么可以认为射频单元的发送时延时间为0,也即是说,所述发送提前量和所述发送延时量都为0。
步骤S640,切换模块将所述同步时刻与所述时间差值的差值,确定为所述帧周期时延时间。
步骤S650,切换模块从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行。
如图7所示,是根据本公开一实施例的状态机开始运行的示意图。假设Tstart为帧周期真正开始的时刻。Tstart到帧周期理论开始的时刻T0之间的时间差是由于网络的收发延时造成的,也即是上述的时间差值。由于T0与1PPS对齐,所以用1PPS的时刻(收到前一个同步信号的时刻)减去该时间差值,可以的得到帧周期延时时间。这样,在收到下一个1PPS的时刻,延时该帧周期延时时间,可以推理得到Tstart时刻的位置,在Tstart时刻开始向状态机输出工作使能信号的时刻。
步骤S660,切换模块从所述帧结构配置寄存器读取目标帧结构的结构信息,并且,从所述链路时延寄存器读取链路时延信息。
步骤S670,切换模块根据所述链路时延信息以及所述目标帧结构的结构信息,确定状态机中的多种通信状态分别对应的运行时间。
目标帧结构的结构信息包括:上行符号的信息,下行符号的信息以及循环前缀的信息。
链路时延信息包括:网络的接收提前量,接收延时量,射频单元的射频前端链发送提前量,射频集成芯片发送提前量,接收GPIO数据的提前量。
状态机的多种通信状态包括:接收提前上下行时隙切换间隙GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态。
具体而言,可以根据如下方式确定每种通信状态对应的运行时间。
根据所述网络的接收提前量,接收延时量以及所述射频单元的射频前端链发送提前量,确定所述接收提前GAP状态对应的运行时间。进一步地,发送数据状态(RX_ADVGP)状态的运行时间Ts_rx_advance_gap=Tbs_rx_advance - Tbs_rx_delay - Trffc_tx_advance。
根据所述射频单元的射频前端链发送提前量以及射频集成芯片发送提前量,确定所述发送提前状态对应的运行时间。进一步地,发送提前状态(TX_ADV)状态的运行时间Ts_tx_advance= Trffc_tx_advance– Trfic_tx_advance。
根据下行间隙持续时间(发送时间)以及所述射频单元的射频集成芯片发送提前量,确定所述发送数据状态对应的运行时间;其中,所述下行间隙持续时间是根据所述下行符号的信息确定的。进一步地,发送数据状态(TX_IQ)状态的运行时间Ts_tx= Trfic_tx_advance +Tota_tx。
根据发送和接收切换时间,所述网络的接收提前量,接收延时量以及所述射频单元的接收GPIO数据的提前量,确定所述GAP状态对应的运行时间;其中,所述发送和接收切换时间是根据所述循环前缀的信息确定的。进一步地,GAP状态的运行时间Ts_gap= Tota_gap–(Tbs_rx_advance- Tbs_rx_delay)- Trx_advance_gpio。
根据上行间隙持续时间(接收时间)以及所述射频单元的接收GPIO数据的提前量,确定所述接收数据状态对应的运行时间;其中,所述上行间隙持续时间是根据上行符号的信息确定的。进一步地,RX状态的运行时间Ts_rx = Trx_advance_gpio+ Tota_rx。
进一步地,下行符号的信息包括:下行符号的数量,每个下行符号的CP类型(长CP或者短CP),长CP长度,短CP长度,(每个符号的)发送FFT点数。
循环前缀的信息包括:CP符号的数量,每个CP符号的CP类型(长CP或者短CP),长CP长度,短CP长度,(每个符号的)发送FFT点数。
上行符号的信息包括:上行符号的数量,每个上行符号的CP类型(长CP或者短CP),长CP长度,短CP长度,(每个符号的)发送FFT点数。
其中,长CP长度,短CP长度,(每个符号的)发送FFT点数可以为公共部分,仅在一个信息中存在即可。
步骤S680,切换模块使所述状态机按照多种所述通信状态的排列顺序,循环运行多种所述通信状态;其中,在所述状态机运行过程中,使所述状态机根据每种所述通信状态对应的运行时间,并且在每种所述通信状态持续运行对应的运行时间时,跳转到下一个通信状态。
在本实施例中,可以使用计数器确定通信状态是否达到对应的运行时间。
图7是根据本公开一实施例的状态机开始运行的示意图。图8为根据本公开一实施例的状态机跳转的示意图,五个通信状态循环运行。
如图7所示,在Tstart时刻,开始向状态机输出工作使能,状态机开始在通信状态之间跳转,s0(第一条虚线到第二条虚线之间)为接收提前GAP状态,s1(第二条虚线到第三条虚线之间)为发送提前状态,s2(第三条虚线到第四条虚线之间)为发送数据状态,s3(第四条虚线到第五条虚线之间)为发送GAP数据状态,s4(第五条虚线到第六条虚线之间)为接收数据状态。
在通信状态跳转的时刻,切换模块中的状态机可以触发切换模块中的去除CP单元或者触发所述切换模块中的插入CP单元,还可以触发对RFFC的收发使能以及RFIC的收发使能的设置,以便RFFC和RFIC形成当前通信状态对应的链路。
在接收提前GAP状态下,RF_TX_ENBLE(RFFC发送使能)、RF_RX_ENBLE(RFFC接收使能)、RF_ORX_ENBLE(RFFC反馈接收使能)、9026_TX_ENBLE(RFIC发送使能)、9026_RX_ENBLE(RFIC接收使能)置0,9026_ORX_ENBLE(RFIC反馈接收使能)置1。
在发送提前状态下,RF_RX_ENBLE(RFFC接收使能)、9026_TX_ENBLE(RFIC发送使能)、9026_RX_ENBLE(RFIC接收使能)置0,RF_TX_ENBLE(RFFC发送使能)、RF_ORX_ENBLE(RFFC反馈接收使能)/9026_ORX_ENBLE(RFIC反馈接收使能)置1。
在发送数据状态下,RF_RX_ENBLE(RFFC接收使能)、9026_RX_ENBLE(RFIC接收使能)、9026_ORX_ENBLE(RFIC反馈接收使能)置0,RF_TX_ENBLE(RFFC发送使能)、RF_ORX_ENBLE(RFFC反馈接收使能)、9026_TX_ENBLE(RFIC发送使能)置1。
在发送GAP数据状态下,RF_TX_ENBLE(RFFC发送使能)、RF_RX_ENBLE(RFFC接收使能)、RF_ORX_ENBLE(RFFC反馈接收使能)、9026_TX_ENBLE(RFIC发送使能)、9026_RX_ENBLE(RFIC接收使能)置0,9026_ORX_ENBLE(RFIC反馈接收使能)置1。
在接收数据状态下,RF_TX_ENBLE(RFFC发送使能)、RF_ORX_ENBLE(RFFC反馈接收使能)、9026_TX_ENBLE(RFIC发送使能)置0,RF_RX_ENBLE(RFFC接收使能)、9026_RX_ENBLE(RFIC接收使能)/9026_ORX_ENBLE(RFIC反馈接收使能)置1。
上述被置0的使能的芯片(RFFC或者RFFIC)不工作,被置1的使能对应的芯片工作。
图7示中的时序仅供参考。实际可以根据寄存器中的输出GPIO使能寄存器(输出GPIO使能)、接收提前GAP状态寄存器、发送提前状态寄存器、发送数据状态寄存器、发送GAP数据状态寄存器、接收数据状态寄存器调整输出时序,在硬件管脚变更或时序调整后,直接更改寄存器值即可。另外在去除CP单元和插入CP单元的触发信号产生,可以使用图8所示状态机跳转示意图,寄存器中的配置数据需要根据实际链路调整。去除CP单元和插入CP单元可以共用一个状态机控制,也可以使用不同的状态机控制。RFFC和RFIC可以共用一个状态机控制,也可以使用不同的状态机控制。
下面再描述配置状态寄存器来配合状态机进行TDD上下行切换的过程。
如图9所示,是根据本公开一实施例的数据通信方法流程图。
步骤S910,控制模块根据目标帧结构的结构信息以及链路时延信息,确定每种所述通信状态对应的运行时间并写入状态寄存器。
目标帧结构的结构信息包括:上行符号的信息,下行符号的信息以及循环前缀的信息。
链路时延信息包括:网络的接收提前量,接收延时量,射频单元的射频前端链发送提前量,射频集成芯片发送提前量,接收GPIO数据的提前量。
状态机的通信状态依次包括:接收提前GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态。
具体而言,可以根据以下方式确定每种通信状态对应的运行时间。
根据所述网络的接收提前量,接收延时量以及所述射频单元的射频前端链发送提前量,确定所述接收提前GAP状态对应的运行时间并写入所述状态寄存器。
根据所述射频单元的射频前端链发送提前量以及射频集成芯片发送提前量,确定所述发送提前状态对应的运行时间并写入所述状态寄存器。
根据下行间隙持续时间以及所述射频单元的射频集成芯片发送提前量,确定所述发送数据状态对应的运行时间并写入所述状态寄存器;其中,所述下行间隙持续时间是根据所述下行符号的信息确定的。
根据发送和接收切换时间,所述网络的接收提前量,接收延时量以及所述射频单元的接收GPIO数据的提前量,确定所述GAP状态对应的运行时间并写入所述状态寄存器;其中,所述发送和接收切换时间是根据所述循环前缀的信息确定的。
根据上行间隙持续时间以及所述射频单元的接收GPIO数据的提前量,确定所述接收数据状态对应的运行时间并写入所述状态寄存器;其中,所述上行间隙持续时间是根据上行符号的信息确定的。
步骤S920,控制模块根据链路时延信息,确定帧周期时延时间并写入状态寄存器。
根据所述链路时延信息,以及,所述射频单元与所述基带处理单元的同步时刻,确定所述帧周期时延时间;将所述帧周期时延时间写入所述状态寄存器中;其中,所述切换模块从所述状态寄存器读取所述帧周期时延时间,从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行。
具体而言,所述链路时延信息包括:网络的接收提前量,接收延时量,发送提前量以及发送延时量。确定所述接收提前量和所述接收延时量的第一差值,并且确定所述发送提前量和所述发送延时量的第二差值,并且确定所述第一差值和所述第二差值的时间差值;将所述同步时刻与所述时间差值的差值,确定为所述帧周期时延时间。
步骤S930,切换模块从所述状态寄存器中读取所述帧周期时延时间,从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行。
步骤S940,切换模块使所述状态机从所述状态寄存器中读取每种通信状态对应的运行时间,在每种所述通信状态持续运行对应的运行时间时,跳转到下一个通信状态。
所述状态机的通信状态依次包括:接收提前GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态。
从运行所述接收提前GAP状态开始,所述状态机从所述状态寄存器中读取所述接收提前GAP状态对应的运行时间,在达到所述接收提前GAP状态对应的运行时间时,触发所述状态机跳转到所述发送提前状态。
从运行所述发送提前状态开始,所述状态机从所述状态寄存器中读取所述发送提前状态对应的运行时间,在达到所述发送提前状态对应的运行时间时,触发所述状态机跳转到所述发送数据状态。
从运行所述发送数据状态开始,所述状态机从所述状态寄存器中读取所述发送数据状态对应的运行时间,在达到所述发送数据状态对应的运行时间时,触发所述状态机跳转到所述GAP状态。
从运行所述GAP状态开始,所述状态机从所述状态寄存器中读取所述GAP状态对应的运行时间,在达到所述GAP状态对应的运行时间时,触发所述状态机跳转到所述接收数据状态。
从运行所述接收数据状态开始,所述状态机从所述状态寄存器中读取所述接收数据状态对应的运行时间,在达到所述接收数据状态对应的运行时间时,触发所述状态机跳转到所述接收提前GAP状态。
为了使本公开实施例的数据通信方法更加便于理解,下面提供一个应用实例,来对本公开实施例的数据通信方法进行进一步地描述。
如图11所示,是根据本公开一实施例的无线帧的示意图。每个10ms无线帧包含10个子帧。每个1ms子帧包含2个时隙,每个时隙(slot)为0.5ms。每个时隙包含14个符号,为单周期模式。每个时隙的第一符号为长CP长度,其余符号为短CP长度。帧结构里的上下行配比为3个DL时隙、1个特殊时隙(S)、1个上行时隙,特殊时隙(S)包含8个下行符号、4个上下行切换符号和2个上行符号。
ARM根据目标帧结构的结构信息和链路时延信息,配置表2的寄存器。为了区分各个分类,采用同表1相同的方式,表2将多个寄存器划分为3个分类,按照分类命名寄存器,分类之间隔开一行。进一步地,本实施例为了便于理解寄存器的功能,将寄存器按照存储内容进行更细化的名称(括号中的名称)。
表2
FPGA根据表2中的配置数据计算状态机各通信状态对应的运行时间。
Tstart=T0-(Tbs_rx_advance-Tbs_rx_delay)-(Tbs_tx_advance - Tbs_tx_delay)
= 1228800 -(1600-220)-(0-0)= 1227420。
Ts_rx_advance_gap= Tbs_rx_advance-Tbs_rx_delay- Trffc_tx_ advance=1600-220-800=580。
Ts_tx_advance = Trffc_tx_ advance - Trfic_tx_ advance =800-400=400。
Ts_tx = Trfic_tx_ advance+ Tota_tx =400+219456=219856。
Ts_gap = Tota_gap-(Tbs_rx_advance - Tbs_rx_delay)- Trx_advance_gpio
=17536-1600+220-0=16156。
Ts_rx =Trx_advance_gpio+ Tota_rx=0+70208=70208。
Tota_tx =(短CP长度+发送FFT点数)×短CP长度的下行符号数量+(长CP长度+发送FFT点数)×长CP长度的下行符号数量=(288+4096)×46+(352+4096)×4=219456。在本例中,帧结构中包括3个下行时隙(3×14=42个下行符号),特殊时隙有8个下行符号(首个符号为下行符号),共50个下行符号,50个下行符号中包括4个长CP长度,46个短CP长度。
Tota_gap =(短CP长度+发送FFT点数)×短CP的CP符号数量+(长CP长度+发送FFT点数)×长CP的CP符号数量=(288+4096)×4+(352+4096)×0=17536。在本例中,特殊时隙包括4个CP符号。
Tota_rx =(短CP长度+发送FFT点数)×短CP长度的上行符号数量+(长CP长度+发送FFT点数)×长CP长度的上行符号数量=(288+4096)×15+(352+4096)×1=70208。在本例中,帧结构中包括1个上行时隙(1×14=14个上行符号),特殊时隙有2个上行符号,共16个下行符号,16个下行符号中包括1个长CP长度,15个短CP长度。
FPGA计算得到以上各通信状态的运行时间后,状态机默认处于RX_ADVGP状态,计数器从1PPS开始计数,若计数值等于帧周期时延时间,即达到Tstart,且ARM已配置同步使能,则开始进行状态机运转。计数器复位,并且开始进行RX_ADVGP状态的计数,当RX_ADVGP状态的计数≥Ts_rx_advance_gap时,状态机跳转到下一个状态。
跳转到的下一个状态为TX_ADV状态,计数器复位并对TX_ADV状态进行计数,当TX_ADV状态的计数值≥Ts_tx_advance时,状态机跳转到下一个状态。
跳转到的下一个状态为TX_IQ状态,计数器复位并对TX_IQ状态进行计数,当TX_IQ状态的计数值≥Ts_tx时,状态机跳转到下一个状态。
跳转到的下一个状态为GAP状态,计数器复位并对GAP状态进行计数,当GAP状态的计数值≥Ts_gap时,状态机跳转到下一个状态。
跳转到的下一个状态为RX状态,计数器复位并对RX状态进行计数,当RX状态的计数值≥Ts_rx时,状态机跳转到下一个状态。
下一个状态跳转回到RX_ADVGP状态,依次循环往复,直到ARM对射频单元进行复位,或使能模块停止工作。
在状态机运行过程中,若1PPS间隙有抖动,可在GAP状态吸收。也即是说,检测1PPS(同步信号)的真实接收时刻与理论接收时刻是否对齐(吻合),若未对齐,则将真实接收时刻减去理论接收时刻,得到抖动时间,在GAP状态下,在GAP状态对应的运行时间上加上该抖动时间,得到时间和值,从GAP状态开始,到达时间和值时,跳转到下一个通信状态。
在本实施例中,每个状态机输出的电平,按照寄存器里每个通信状态的电平时序进行输出,从而实现FPGA完全可配,当时序需要调整时,直接改配寄存器里的电平时序即可。
本实施例提供一种数据通信设备。如图10所示,为根据本公开一实施例的数据通信设备的结构图。
在本实施例中,所述数据通信设备,包括但不限于:处理器1110、存储器1120。
所述处理器1110用于执行存储器1120中存储的数据通信程序,以实现上述的数据通信方法。
具体而言,所述处理器1110用于执行存储器1120中存储的数据通信程序,以实现以下在控制模块执行的步骤:控制所述射频单元的射频前端模块进行初始化;在所述射频单元的射频前端模块初始化完成后,根据目标帧结构的结构信息以及链路时延信息配置切换模块中的寄存器;在所述射频单元与基带处理单元同步完成之后,控制所述切换模块根据所述寄存器中的配置数据运行状态机;其中,所述状态机包括多种通信状态,多种所述通信状态顺序运行一次为所述目标帧结构对应的一个帧周期,每种所述通信状态对应所述帧周期中的一种链路模式;所述切换模块在运行所述状态机的过程中,所述状态机每次跳转通信状态,所述切换模块将链路模式向跳转到的所述通信状态对应的链路模式切换,利用切换到的所述链路模式进行数据通信。
其中,所述射频前端模块包括:射频前端链RFFC和射频集成芯片RFIC;所述控制模块通过接口连接所述切换模块,所述切换模块的第一管脚连接所述RFFC的通用输入输出GPIO管脚,所述切换模块的第二管脚连接所述RFIC的GPIO管脚;所述控制所述射频单元的射频前端模块进行初始化,包括:在所述切换模块的控制源选择寄存器中配置控制模块标识;其中,所述控制模块标识表示所述第一管脚和所述第二管脚由所述控制模块控制;向所述切换模块发送初始化信号,以便通过所述第一管脚向所述RFFC的GPIO管脚输出所述初始化信号,通过所述第二管脚向所述RFIC的GPIO管脚输出所述初始化信号,以便所述RFFC和所述RFIC分别根据所述初始化信号进行初始化处理。
其中,所述控制所述切换模块根据所述寄存器运行状态机,包括:将所述控制源选择寄存器中的所述控制模块标识修改为切换模块标识,并在所述控制源选择寄存器中设置状态机工作使能输出标识;所述切换模块标识表示所述切换模块的所述第一管脚和所述第二管脚由所述切换模块控制;所述状态机工作使能输出标识表示允许向状态机输出工作使能;其中,所述状态机基于所述工作使能运行。
其中,所述根据目标帧结构的结构信息以及链路时延信息配置切换模块中的寄存器,包括:根据目标帧结构的结构信息以及链路时延信息,配置所述切换模块中的基础寄存器或者状态寄存器;其中,所述基础寄存器,用于存储所述目标帧结构的结构信息以及所述链路时延信息;所述状态寄存器,用于存储根据所述目标帧结构的结构信息以及所述链路时延信息确定的每种所述通信状态对应的运行时间,以及,存储根据所述链路时延信息确定的帧周期时延时间。
其中,所述目标帧结构的结构信息包括:上行符号的信息,下行符号的信息以及循环前缀的信息;所述链路时延信息包括:所述网络的接收提前量,接收延时量,所述射频单元的射频前端链发送提前量,射频集成芯片发送提前量,接收GPIO数据的提前量;所述状态机的通信状态依次包括:接收提前上下行时隙切换间隙GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态;所述存储根据所述目标帧结构的结构信息以及所述链路时延信息确定的每种所述通信状态对应的运行时间,包括:根据所述网络的接收提前量,接收延时量以及所述射频单元的射频前端链发送提前量,确定所述接收提前GAP状态对应的运行时间并写入所述状态寄存器;根据所述射频单元的射频前端链发送提前量以及射频集成芯片发送提前量,确定所述发送提前状态对应的运行时间并写入所述状态寄存器;根据下行间隙持续时间以及所述射频单元的射频集成芯片发送提前量,确定所述发送数据状态对应的运行时间并写入所述状态寄存器;其中,所述下行间隙持续时间是根据所述下行符号的信息确定的;根据发送和接收切换时间,所述网络的接收提前量,接收延时量以及所述射频单元的接收GPIO数据的提前量,确定所述GAP状态对应的运行时间并写入所述状态寄存器;其中,所述发送和接收切换时间是根据所述循环前缀的信息确定的;根据上行间隙持续时间以及所述射频单元的接收GPIO数据的提前量,确定所述接收数据状态对应的运行时间并写入所述状态寄存器;其中,所述上行间隙持续时间是根据上行符号的信息确定的。
其中,所述存储根据所述链路时延信息确定的帧周期时延时间,包括:根据所述链路时延信息,以及,所述射频单元与所述基带处理单元的同步时刻,确定所述帧周期时延时间;将所述帧周期时延时间写入所述状态寄存器中;其中,所述切换模块从所述状态寄存器读取所述帧周期时延时间,从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行。
其中,所述链路时延信息包括:网络的接收提前量,接收延时量,发送提前量以及发送延时量;所述根据所述链路时延信息,以及,所述射频单元与所述基带处理单元的同步时刻,确定所述帧周期时延时间,包括:确定所述接收提前量和所述接收延时量的第一差值,确定所述发送提前量和所述发送延时量的第二差值,并且确定所述第一差值和所述第二差值的时间差值;将所述同步时刻与所述时间差值的差值,确定为所述帧周期时延时间。
具体而言,所述处理器1110用于执行存储器1120中存储的数据通信程序,以实现以下在切换模块执行的步骤:在控制模块的控制下,根据寄存器中的配置数据运行状态机;其中,所述寄存器中的配置数据是所述控制模块根据目标帧结构的结构信息以及链路时延信息配置的;所述状态机包括多种通信状态,多种所述通信状态顺序运行一次为所述目标帧结构对应的一个帧周期,每种所述通信状态对应所述帧周期中的一种链路模式;在所述状态机按照多种所述通信状态的排列顺序,循环运行多种所述通信状态的过程中,在每次所述状态机跳转通信状态时,将当前的链路模式向跳转到的通信状态对应的链路模式切换,以便所述切换模块利用切换到的所述链路模式进行数据通信。
其中,所述射频单元的射频前端模块包括:RFFC和RFIC;所述控制模块通过接口连接所述切换模块,所述切换模块的第一管脚连接所述RFFC的GPIO管脚,所述切换模块的第二管脚连接所述RFIC的GPIO管脚;所述在控制模块的控制下,根据寄存器中的配置数据运行状态机之前,还包括:实时读取控制源选择寄存器;在所述控制源选择寄存器被所述控制模块配置为控制模块标识的情况下,接受所述控制模块的控制;其中,所述控制模块标识表示所述第一管脚和所述第二管脚由所述控制模块控制;在接受所述控制模块的控制时,将所述控制模块发送的初始化信号向所述RFFC的GPIO管脚和所述RFIC的GPIO管脚输出,以便所述RFFC和所述RFIC分别根据所述初始化信号进行初始化处理。
其中,所述在控制模块的控制下,根据寄存器中的配置数据运行状态机之前,还包括:在所述控制源选择寄存器被所述控制模块配置为切换模块标识以及状态机工作使能输出标识的情况下,将所述第一管脚和所述第二管脚切换为由所述切换模块进行控制,并且等待向所述状态机输出工作使能;其中,所述切换模块标识表示所述切换模块的所述第一管脚和所述第二管脚由所述切换模块控制;所述状态机工作使能输出标识表示允许向状态机输出工作使能;其中,所述状态机基于所述工作使能运行。
其中,所述寄存器为基础寄存器或者状态寄存器;其中,所述基础寄存器,用于存储所述目标帧结构的结构信息以及所述链路时延信息;所述状态寄存器,用于存储根据所述目标帧结构的结构信息以及所述链路时延信息确定的每种所述通信状态对应的运行时间,以及,存储根据所述链路时延信息确定的帧周期时延时间。
其中,在所述寄存器为状态寄存器时,所述根据寄存器中的配置数据运行状态机,包括:从所述状态寄存器中读取所述帧周期时延时间,从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行;使所述状态机从所述状态寄存器中读取每种通信状态对应的运行时间,在每种所述通信状态持续运行对应的运行时间时,跳转到下一个通信状态。
其中,所述状态机的通信状态依次包括:接收提前GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态;所述使所述状态机从所述状态寄存器中读取每种通信状态对应的运行时间,在每种所述通信状态持续运行对应的运行时间时,跳转到下一个通信状态,包括:从运行所述接收提前GAP状态开始,所述状态机从所述状态寄存器中读取所述接收提前GAP状态对应的运行时间,在达到所述接收提前GAP状态对应的运行时间时,触发所述状态机跳转到所述发送提前状态;从运行所述发送提前状态开始,所述状态机从所述状态寄存器中读取所述发送提前状态对应的运行时间,在达到所述发送提前状态对应的运行时间时,触发所述状态机跳转到所述发送数据状态;从运行所述发送数据状态开始,所述状态机从所述状态寄存器中读取所述发送数据状态对应的运行时间,在达到所述发送数据状态对应的运行时间时,触发所述状态机跳转到所述GAP状态;从运行所述GAP状态开始,所述状态机从所述状态寄存器中读取所述GAP状态对应的运行时间,在达到所述GAP状态对应的运行时间时,触发所述状态机跳转到所述接收数据状态;从运行所述接收数据状态开始,所述状态机从所述状态寄存器中读取所述接收数据状态对应的运行时间,在达到所述接收数据状态对应的运行时间时,触发所述状态机跳转到所述接收提前GAP状态。
其中,所述基础寄存器包括:链路时延寄存器;所述链路时延寄存器中的配置数据包括:网络的接收提前量,接收延时量,发送提前量和发送延时量;所述根据寄存器中的配置数据运行状态机,包括:从所述链路时延寄存器中读取所述网络的接收提前量,接收延时量,发送提前量以及发送延时量;确定所述接收提前量和所述接收延时量的第一差值,确定所述发送提前量和所述发送延时量的第二差值,并且确定所述第一差值和所述第二差值的时间差值;将所述同步时刻与所述时间差值的差值,确定为所述帧周期时延时间;从接收到来自于所述基带处理单元的新的同步信号开始,在达到所述帧周期时延时间时,向所述状态机输出工作使能信号,使所述状态机开始运行。
其中,所述基础寄存器包括:帧结构配置寄存器和链路时延寄存器;所述根据寄存器中的配置数据运行状态机,包括:从所述帧结构配置寄存器读取目标帧结构的结构信息,并且,从所述链路时延寄存器读取链路时延信息;根据所述链路时延信息以及所述目标帧结构的结构信息,确定状态机中的多种通信状态分别对应的运行时间;使所述状态机按照多种所述通信状态的排列顺序,循环运行多种所述通信状态;其中,在所述状态机运行过程中,使所述状态机根据每种所述通信状态对应的运行时间,并且在每种所述通信状态持续运行对应的运行时间时,跳转到下一个通信状态。
其中,所述目标帧结构的结构信息包括:上行符号的信息,下行符号的信息以及循环前缀的信息;所述链路时延信息包括:所述网络的接收提前量,接收延时量,所述射频单元的射频前端链发送提前量,射频集成芯片发送提前量,接收GPIO数据的提前量;所述状态机的多种通信状态包括:接收提前上下行时隙切换间隙GAP状态,发送提前状态,发送数据状态,GAP状态以及接收数据状态;所述根据所述链路时延信息以及所述目标帧结构的结构信息,确定状态机中的多种通信状态分别对应的运行时间,包括:根据所述网络的接收提前量,接收延时量以及所述射频单元的射频前端链发送提前量,确定所述接收提前GAP状态对应的运行时间;根据所述射频单元的射频前端链发送提前量以及射频集成芯片发送提前量,确定所述发送提前状态对应的运行时间;根据下行间隙持续时间以及所述射频单元的射频集成芯片发送提前量,确定所述发送数据状态对应的运行时间;其中,所述下行间隙持续时间是根据所述下行符号的信息确定的;根据发送和接收切换时间,所述网络的接收提前量,接收延时量以及所述射频单元的接收GPIO数据的提前量,确定所述GAP状态对应的运行时间;其中,所述发送和接收切换时间是根据所述循环前缀的信息确定的;根据上行间隙持续时间以及所述射频单元的接收GPIO数据的提前量,确定所述接收数据状态对应的运行时间;其中,所述上行间隙持续时间是根据上行符号的信息确定的。
其中,所述链路模式包括:上行链路模式,下行链路模式,链路切换模式;其中,所述接收数据状态对应所述上行链路模式;所述发送数据状态对应所述下行链路模式;所述接收提前GAP状态,所述发送提前状态或者所述GAP状态对应所述链路切换模式;所述利用切换到的所述链路模式进行数据通信,包括:在切换到所述上行链路模式,触发所述切换模块中的去除CP单元,以便利用包括所述去除CP单元的上行通道进行数据接收;在切换到所述链路切换模式,暂停进行数据通信;在切换到所述下行链路模式,触发所述切换模块中的插入CP单元,以便利用包括所述插入CP单元的下行通道进行数据发送。
本公开实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当计算机可读存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现在控制模块执行的所述的数据通信方法的步骤,或者,实现在切换模块执行的所述的数据通信方法的步骤。由于在控制模块执行的所述的数据通信方法以及在切换模块执行的所述的数据通信方法,已经在上面进行了详细描述,故在此不做赘述。
以上所述仅为本公开的实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。