一种波控信息报文缓存方法
【技术领域】
[0001]本发明涉及一种波控信息报文缓存方法,属于雷达数据传输技术,主要是针对相控阵雷达实时波束控制技术。
【背景技术】
[0002]相控阵雷达一般采用CPU应用嵌入式系统做波控资源调度算法,计算一段时间周期下得到多任务波控信息报文。一般使用两个存储器实现乒乓操作,进行循环读写。这样做导致控制比较困难和占用两倍的存储资源。为了提高FPGA内部存储资源使用效率,降低控制难度,提出一种新的缓存技术以降低波控软件设计难度。
【发明内容】
[0003]本发明的目的在于设计一种缓存方法,为满足不同相控阵雷达实时波束控制技术,降低波控信息报文读写控制难度。
[0004]实现本发明目的的技术解决方案为:在相控阵雷达中,波模模块与资源调度软件处于不同的硬件处理器中,波模模块使用FPGA处理器,资源调度软件使用POWERPC处理器。波控模块向资源调度软件申请任务,资源调度软件计算得到一组波控信息报文,通过RAPID10链路发给波控模块。在波控模块内部,将RAPID10链路发来的波控信息报文先经过一个FIFO进行缓存,实现数据率和位宽的变换,根据FIFO中缓存的数据量达到5000之后,用一个写计数器作为地址累加器将FIFO的数据写入到BRAM中,直到FIFO为空为止。波控程序依据雷达工作的需要,每隔一段工作周期从BRAM中读取一段固定大小的数据作为一帧波控信息任务报文,随着工作时序的需要逐一读取各个波控信息报文时,可以方便地使用读计数器作为地址准确无误地读取BRAM中的报文。目前,BRAM的复位信号RST置I时,使输出为零值,并不能清除内部存储的数据,当复位信号RST置O时,读出的值仍然是原来的存储数据。为使得BRAM清零简便易操作,因为BRAM前32个地址是波控信息报文头,可以将这32个地址写入全零数据,使整个BRAM存储的波控信息报文无效,以此完成BRAM清零。当读取完最后一个波控信息报文之后,控制程序完成BRAM清零,再向资源调度软件申请任务,就能在下一组任务周期到来之前更新任务报文。即使没有新任务报文下发,也不会造成错误地读取原来的报文。对BRAM来说,清零和写入波控信息报文两项工作,波控控制程序从时间上完全分开,所以可以确保BRAM读写无误。
【附图说明】
[0005]图1是波控信息缓存方法原理图。
[0006]图2是波控信息产生及缓存时序图。
【具体实施方式】
[0007]本发明的波控信息报文缓存方法,如图2所示,分成如下5个步骤:
[0008]1.波控控制器产生任务报文申请脉冲,以此为基准进行FIFO、BRAM清零。FIFO设为64位输入16位输出方式,BRAM的输入输出均为16位。FIFO清零时,直接将FIFO的RST信号赋值为1,保持3个时钟周期后,再赋值为O。BRAM清零时,向地址O至32地址写入全零数据,因该段地址是波控信息报文头部,头部的有效报文被写入全零数据后,整个BRAM中的波控信息报文都被波控控制器判断为无效报文。
[0009]2.完成第I步后,波控控制器生成任务申请报文及门铃信息,通过RAPID10发送程序发到资源调度软件端。资源调度软件会计算下一时间片的波控参数,形成波控信息报文。波控模块用FIFO接收来自RAPID10接口的波控信息报文,实现由156.25MHz、64位数据变换成100MHz、16位数据的转换。写入FIFO时,通过RAPID10接收地址信号高14位作为写入进程的触发信号,每一次该地址信号为设定的值时,向FIFO写入一个64位数据。
[0010]3.判断FIFO已缓存数据是否超过5000,若超过5000,则立即启动写BRAM控制程序。从地址O开始,逐一将FIFO读出的波控信息报文头、波控信息报文各个子任务报文写入到BRAM中,直到FIFO为空。
[0011]4.从一个工作时间片循环进入下一个时间片时,首先由波控控制器判断是否有更高级的任务命令,若有则进入高优先级的工作模式,若无则进行从BRAM中读取波控信息报文产生波控控制信号及报文。
[0012]5.读取BRAM的地址O至31前32个地址的数据,判断当前BRAM中的波控信息报文是否有效,若无效则终止。若有效,则从波控信息报文头中提取各个子任务在本时间片的起始时间,即可将时间片划分成多个连续的工作周期。在每一个工作周期起始时刻,从BRAM中读取波控子任务报文,并依据波控子任务报文产生各项控制脉冲及光纤控制报文。在最后一个任务报文读取之后,由波控控制器产生任务申请脉冲,进入第I步做FIF0、BRAM清零工作。
【主权项】
1.一种波控信息报文缓存方法,其特征在于:用FIFO+BRAM构成RAPID1接口接收数据的缓存链路;波控控制时序将FIFO和BRAM的清零与读写数据从时间上错开;FIF0写入端由RAPID1接口的控制信号进行控制写入;当FIFO的缓存数据量超过5000时,就一次性连续读完并写入到BRAM中,作为波控信息报文用;当波控信息报文在波控程序的控制下从BRAM中读取完毕后,波控程序将BRAM前32个地址写入全零,即将BRAM内部波控信息报文设置为无效;这样设计,避免了在没有新的波控信息报文写入的情况下,会重新再读取原来报文作为当前时刻报文的错误。2.根据权利要求1所述的波控信息报文缓存方法,其特征在于:所述的FIFO是将RAPID1链路数据由64位转换成16位,并由数据率由156.25MHz变换成实际工作时钟频率。3.根据权利要求1或2所述的波控信息报文缓存方法,其特征在于:所述的BRAM是缓存最多10个周期的波控信息数据,依据雷达工作时序在最后一个波控信息报文读取之后,将BRAM前面32地址写入全零数据,将整个BRAM中的数据设为无效;以此代替清零工作,再向波控资源调度软件申请新的波控信息报文。
【专利摘要】本发明涉及一种波控信息报文缓存方法。本发明在FPGA处理器中实现,接收来自RAPIDIO链路的波控信息数据,采用两级缓存,第一级是先经过一个FIFO,第二级是将波控信息数据存储到BRAM中。FIFO的写入由RAPIDIO链路控制,FIFO在缓存5000个数据后开始读出时。BRAM写入由波控控制器有效控制或由清零使能控制,这样既可以依据计数器作为地址读出波控信息报文,又可以将BRAM进行清零,减少外部控制的难度。为减小BRAM清零时间,只将前32个地址写入全零数据,通过让波控信息报文头部无效,使得整个BRAM存储的波控信息报文无效,达到清零的目的。
【IPC分类】G01S7/00
【公开号】CN104931930
【申请号】CN201510359213
【发明人】周邦华, 于志伟, 刘剑, 吴卫
【申请人】中国船舶重工集团公司第七二四研究所
【公开日】2015年9月23日
【申请日】2015年6月25日