一种片上可变滤波器快速调谐的方法与流程

文档序号:24345000发布日期:2021-03-19 12:28阅读:98来源:国知局
一种片上可变滤波器快速调谐的方法与流程

本发明涉及芯片控制领域,具体涉及一种片上可变滤波器快速调谐的方法。



背景技术:

随着无线通信技术的发展,频谱资源越来越紧张,无线通信系统需要使用滤波器消除多种电磁信号干扰,尤其是无线频谱感知技术的发展更希望通过扩频加跳频的方式提高系统的抗干扰能力,这就要求在射频/模拟域使用滤波器滤除带外干扰。

传统抗干扰射频/模拟系统采用滤波器组,通过射频开关切换选择滤波器通道实现跳频选择,但这个方式存在滤波器组的体积和重量大,扩跳组合不灵活的问题。为了实现更加灵活的滤波器带宽和滤波器中频选择,可以用芯片的方式实现片上可变滤波器,通过配置不同级滤波器的lc阵列参数实现带宽和中频调整。片上可变滤波器一般通过spi或者uart串行配置寄存器改变lc阵列参数,当配置寄存器数量较多的时候,寄存器配置时间很长,而且滤波器串行配置顺序会导致振荡稳定时间长,最终调谐稳定时间很慢,如几十甚至上百毫秒量级,这个调谐稳定时间不满足快速跳频的系统需求。



技术实现要素:

针对上述问题,为了满足无线通信系统对片上可变滤波器快速调谐的要求,本发明提出了一种实现片上可变滤波器快速调谐的方法。

本发明解决技术问题所采取的技术方案为:

一种片上可变滤波器快速调谐的方法,将片上可变滤波器对应所有滤波器模式所需要的寄存器配置字都存储在芯片内部,另外通过一个全局配置管脚让所有寄存器同步完成配置,该方法涉及接口模块、译码状态机模块、配置字存储模块、地址分发模块和配置字锁存模块。

其中接口模块为上位机对片上可变滤波器的配置通道;

译码状态机模块完成对接口模块指令的译码,识别操作模式;

配置字存储模块完成多种滤波器调谐模式配置字的存储;

地址分发模块用于将配置字存储模块中存储的配置字分发到对应的寄存器或者由译码状态机模块解析的调试模式对单一寄存器地址做读写;

配置字锁存模块完成滤波器配置字的缓存。

一种片上可变滤波器快速调谐的方法具体是:

译码状态机模块识别配置初始化指令后,根据滤波器模式索引号和配置寄存器数量,计算在配置字存储模块的起始地址偏移值,然后将所有寄存器配置字存储到后续连续地址中。依次类推,将所有滤波器模式所需要的寄存器配置字都存储在片内配置字存储模块中,完成初始化操作。

译码状态机模块识别滤波器配置指令后,根据滤波器模式索引号计算配置字存储模块的起始地址,将顺序地址的配置字通过地址分发模块分配到相应寄存器锁存,直到该滤波器模式下所有寄存器都完成锁存,由译码状态机模块反馈给上位机锁存完成的标志,由上位机控制全局配置信号跳变,所有锁存在寄存器中的配置字同步释放生效,完成一个滤波器模式的调谐配置。

本发明的有益效果:本发明通过寄存器模式索引的方式,极大减少了上位机通过串行接口的配置时间开销,可以实现微秒级的滤波器调谐稳定时间,提高了系统抗干扰能力;同时避免了芯片io接口频繁读写导致的数字脉冲对滤波器的模拟信号的干扰,提高了收发链路的动态范围,进一步提高了系统的抗干扰能力。本发明为下一代无线通信的片上可变滤波器提供了一种灵活高效的控制方法。

附图说明

图1为本发明的基本硬件框架;

图2为片上可变滤波器快速配置流程图;

图3为配置模式初始化流程图;

图4为滤波器配置操作流程图;

图5为实施例中写操作指令的时序图;

图6为实施例中读操作指令的时序图;

图7为实施例中接口模块读入指令的时序图。

具体实施方式

影响滤波器调谐时间的因素主要有两个,一个是寄存器写入配置时间,一个是滤波器不同级之间相互影响的振荡稳定时间。针对这两个影响调谐时间的因素,本发明主要是将片上可变滤波器对应所有滤波器模式所需要的寄存器配置字都存储在芯片内部,降低接口写每一bit寄存器导致的漫长的配置时间,另外通过一个全局配置管脚让所有寄存器同步完成配置,避免逐个寄存器配置后多级滤波器相互影响,缩短振荡稳定时间。

本发明的基本硬件框架包括5部分,见图1,包括接口模块、译码状态机模块、配置字存储模块、地址分发模块和配置字锁存模块。

其中接口模块和译码状态机模块相连接;译码状态机模块和接口模块、配置字存储模块以及地址分发模块相连接,同时译码状态机模块向芯片管脚反馈状态机状态信息;配置字模块和译码状态机模块和地址分发模块相连接;地址分发模块分别和配置字存储模块、配置字锁存模块以及译码状态机模块相连接;配置字锁存模块和地址分发模块相连接,同时和一个全局配置io口相连接。

接口模块是上位机对片上可变滤波器的配置通道,上位机可以但不限于fpga、mcu、电脑等,接口模块是双向接口完成配置模块或者配置字的写入和读取。接口模块的电器协议可以但不限于spi、uart、iic、数字并口等。

译码状态机模块完成对接口模块指令的译码,识别操作模式并完成后续动作。

配置字存储模块完成多种滤波器调谐模式配置字的存储,配置字存储模块可以是但不限于寄存器(dff)、片上sram或者registerfile、flash、efuse或者otprom等。

地址分发模块用于将配置字存储模块中存储的配置字分发到对应的寄存器或者由译码状态机模块解析的调试模式对单一寄存器地址做读写。

配置字锁存模块完成滤波器配置字的缓存,也就是当配置字写入后并不会马上生效,需要等待一个全局配置状态位状态改变后所有配置字同时生效,这样可以减小滤波器不同级相互影响振荡稳定时间(settlingtime)。

片上可变滤波器快速配置流程如图2所示,上位机通过接口模块发送的指令包括两种模式,一种是调试模式,另外一种是配置模式。每种模式又分为读状态和写状态。调试模式为对某一位地址的寄存器做读写操作,用于滤波器调试和校准。配置模式是实际工作状态,用于滤波器快速调谐配置。

译码状态机模块识别操作模式和读写状态,具体的指令及操作描述如下:

1)调试模式写指令:调试模式标志位+写操作标志位+寄存器地址+配置字+结束标志位。译码状态机模块识别该指令后,将寄存器地址+配置字传递到地址分发模块,地址分发模块根据对应寄存器地址,将配置字接入到配置字锁存模块中的寄存器中完成配置。

2)调试模式读指令:调试模式标志位+读操作标志位+寄存器地址+结束标志位。译码状态机模块识别该指令后,将寄存器地址+配置字传递到地址分发模块,地址分发模块根据对应的寄存器地址,将配置字锁存模块中寄存器的值读出并返回到译码器状态机模块,并传递给接口模块完成寄存器读操作。

3)配置模式初始化指令:配置模式标志位+写操作标志位+滤波器模式索引号+连续配置字+结束标志位。译码状态机模块识别该指令后,根据滤波器模式索引号将连续地址的配置字传递到配置字存储模块连续地址中。如配置一个中心频率315mhz、带宽3mhz的带通滤波器,需要配置60个字节的寄存器,滤波器模式索引号为01。译码状态机模块根据该指令,在配置字存储单元中60个字节的连续存储空间放置配置字。译码状态机模块监控初始化指令运行状态,如果配置出错,译码状态机模块反馈初始化错误状态,比如配置字存储模块的地址空间不足,无法存储配置索引号对应的寄存器配置字,则通过状态机反馈给上位机一个错误信息。

4)配置模式配置指令:配置模式标志位+写操作标志位+滤波器模式索引号+结束标志位。译码状态机模块识别该指令后,根据滤波器模式索引号读取对应连续地址的寄存器配置,并传递给地址分发模块,地址分发模块将接收到的配置字分配到相应的寄存器锁存,等待全局配置信号。当全局配置信号触发后,所有配置字同时生效,完成滤波器配置。

5)配置模式读指令:配置模式标志位+读操作标志位+结束标志位。译码状态机模块识别该指令后,将当前滤波器模式索引号以及滤波器所有地址的已经生效的配置字(当前状态)顺序读出,用于配置字检查和备份。

上述5种指令中,每种指令都包含相应的内容,但具体顺序或者协议可以根据开发需要调整。

根据上述5种指令,实现片上可变滤波器快速调谐配置的主要是配置模式初始化和滤波器配置。配置模式初始化流程如图3所示。译码状态机模块识别配置初始化指令后,根据滤波器模式索引号和配置寄存器数量,计算在配置字存储模块的起始地址偏移值,然后将所有寄存器配置字存储到后续连续地址中。依次类推,将所有滤波器模式所需要的寄存器配置字都存储在片内配置字存储模块中,完成初始化操作。

滤波器配置操作流程见图4,译码状态机模块识别滤波器配置指令,根据滤波器模式索引号计算配置字存储模块的起始地址,将顺序地址的配置字通过地址分发模块分配到相应寄存器锁存,直到该滤波器模式下所有寄存器都完成锁存,由译码状态机模块反馈给上位机锁存完成的标志,由上位机控制全局配置信号跳变,所有锁存在寄存器中的配置字同步释放生效,完成一个滤波器模式的调谐配置。

实施例:

以一个片上可变滤波器的2个滤波器模式调试和配置为例。2个滤波器模式分别是:

滤波器模式1:中频315mhz、-3db带宽是3mhz的带通滤波器;

滤波器模式2:中频450mhz、-3db带宽是10mhz的带通滤波器。

首先分别调试2个滤波器模式,片上可变滤波器共需要60个字节(byte)寄存器完成滤波器带宽和中频调谐配置。比如在调试滤波器模式1的第一级q值对应的寄存器地址是0x08,仿真对应的配置值是0x05。假设接口使用spi协议,csb片选信号作为读写开始和结束标志,调试模式写指令为spidw0x080x05;对应时序图如图5所示。

spi的时钟为上升沿采样,sdio发送指令,第一位是模式标志位,定义为低电平是调试模式,高电平为配置模式。第二位是读写标志位,定义为低电平是读操作,高电平是写操作。第3bit到第10bit连续8bit是地址位,地址0x08对应二进制00001000,后面8bit是寄存器配置值,0x05对应00000101。写寄存器完成后,csb拉高表示一次操作完成。这时候寄存器锁存模块地址是0x08的8bit寄存器完成配置。

完成单一地址寄存器配置后,根据滤波器形状需要不停地调整这个地址的配置值,直到滤波器形状满足要求为止。这个过程中需要读取这个地址的配置值用于配置字微调。调试模式的读操作指令定义为:spidr0x08;对应时序图如图6所示。

时钟确认csb是低电平表示开始配置,第一位是0表示是调试模式,第二位是0表示读寄存器操作,后续8bit表示需要读的寄存器地址0x08。如果是3线spi就在sdio上返回寄存器值,如果是4线spi从另外sdo返回寄存器值。

逐级完成寄存器配置,得到滤波器模式1即中频315mhz、-3db带宽是3mhz的带通滤波器形状完成配置。这时候可以通过寄存器地址遍历把所有的寄存器配置读出做备份整理,封装成一个模式索引1。同样再通过调试模式完成滤波器模式2,即中频450mhz、-3db带宽是10mhz的带通滤波器的调试,遍历读取所有寄存器配置值,封装形成模式索引2。依次类推,把需要配置的所有滤波器模式都调试完成,分别生成模式索引号。

假设一共需要支持50个滤波器模式,每个模式需要配置60个寄存器,片上配置字存储模块需要支持3kbyte的存储空间。假设使用片上sram,容量是3k*8bit,配置初始化操作具体描述如下:接口模块读入指令:spisw0x1e0x050x010xff……0xa8;对应串口时序如图7所示。

译码状态机模块识别指令,第一位是模式标志位,高电平表示后续是配置模式,第二位是读写操作标志位,高电平表示写操作或者是配置操作,后续8bit表示配置字长度,这里是60byte对应0x3c,再后面8bit表示配置寄存器起始地址,有些寄存器配置是公共配置不影响滤波器模式,所以不需要更改,所以这里从0x05作为开始;后续8bit是模式索引号,根据前面配置字长度可以计算在配置字存储模块中地址偏移值,比如模式索引号从0开始,这里配0x01表示滤波器模式1,配置字存储模块地址从0x3c开始,后续连续60*8bit是60byte寄存器配置字,0xff保存在存储模块的0x3c地址中,第60个字节配置字0xa8保存在存储模块的0x78(十进制地址120)地址中,每次配置字存储模块的地址位做++操作,这样完成一个完整模式配置字的存储。模式初始化完成的标志是csb拉高,存储完成后由译码状态机模块确认数据长度和模式是否和指令一致,如果不一致向上位机反馈错误代码,上位机可以检查配置指令,比如存储模块地址空间不够等情况会反馈错误代码。

完成滤波器模式1的配置字后,可以顺序初始化模式2的配置字,这样存储模块的地址从0x79开始顺序存储60byte的配置字。上述存储模块采用顺序地址存储方式,具体实现上可以有多种寻址方式,如链表等。

配置模式初始化完成后,可以进入滤波器调谐配置模式。

如片上可变滤波器需要配置为模式1即中频315mhz、-3db带宽是3mhz的带通滤波器时,通过接口给出配置指令:spisw0x01;这个指令非常短,只要识别第一位高电平表示配置模式,第二位高电平表示写或者配置操作,后8bit表示配置模式索引号,表示配置为模式1的寄存器配置字。译码状态机模块从配置字存储模块的地址0x3c开始把配置字0xff读出,传递给地址分配模块,地址分配模块将配置字0xff传递给配置字锁存模块的地址是0x05的寄存器。后续配置字存储模块的地址0x20的配置字传递给寄存器地址是0x06的寄存器,依次类推直到将配置字存储模块的地址0x78的值0xa8传递给寄存器地址是0x22的寄存器,完成模式1配置字的锁存。完成上述动作后由译码状态机模块给上位机一个配置锁存完成的标志,由上位机改变全局配置信号状态,所有寄存器完成同步配置,滤波器模式1配置完成。

下一个时刻需要片上可变滤波器调谐到滤波器模式2,即中频450mhz、-3db带宽是10mhz的带通滤波器,上位机给出指令:spisw0x02;根据上述流程完成调谐配置。这样滤波器可以在1us以内完成调谐稳定,这种配置时间比传统的串行配置时间快1000倍以上。

配置模式另外有一个读操作,指令是spisr;这时反馈当前配置的滤波器模式,已经所有已经生效的寄存器配置值,用于状态检查。比如这时候滤波器配置为模式2,上位机发送spisr;指令,反馈前8bit是0x02表示当前配置是模式2,后续连续60byte的寄存器值,可以根据起始地址和初始化配置做检查。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1