本文所设计的通用型多功能接口模块包括3个接口子模块,即与外部航电系统通信的1553B总线接口子模块(MBI)、雷达内部分系统之间的通信控制子模块(M0)和航电显示接口子模块(TVJ)。这些子模块功能彼此独立并具有实时性要求,对于MBI模块,需要系统能够实时地响应外部数据收发和高可靠性,处理速度不一定很高,对于显示控制模块,需要系统具有较高处理速度和能力以便能完成彩色雷达图像的分层叠加显示和地图画面的连续显示,针对这些要求,充分采用SoPC技术,将3个嵌入式计算机系统都放在FPGA内部设计实现,很好地满足了设计需求。图1为该系统的总体框图,3个子模块分别连接3种外部接口,同时它们通过公用的与Multibus的接口独立完成与主控计算机的数据交换。
2系统功能和实现
2.1MBI子模块电路设计
图2为1553B总线接口子模块(MBI)系统框图,Microblaze是MBI功能块的32位核心微处理器,它是一个专门为XilinxFPGA优化的RISC嵌入式软处理器,具有32个32b通用寄存器、硬件乘法器、32b地址总线和32b数据总线、三操作数32b指令字,片内总线遵循OPB(On-chipPeripheralBus)标准,OPB是一种完全同步总线,OPB总线接口提供分离的32位地址总线和32位数据总线。通过OPB总线实现对1553B协议芯片、32位实时钟、异步串行口(UART)、GPIO和双口RAM的扩展和控制。在双口RAM1的另一个端口设计了与Multibus的存储器接口功能,使Multibus总线和OPB总线上的主设备可同时对RAM1进行存取不会产生冲突,且可在Multibus上实现双向中断功能,此外通过Multibus的I/O接口和OPB总线接口也可以对32位雷达实时钟同时进行存取而不产生冲突。
2.2M0子模块电路设计
图3为内总线接口子模块(M0)系统框图,W8051是与8051单片机兼容的IP软核,它通过工作在方式2下的8051串行口实现雷达内总线M0主控器功能,分别为W8051扩展了4KB的程序ROM和256B的RAM,同时扩展了4KB的双口RAM2并挂接在Multibus上,以实现与主控计算机的数据交换。主控计算机通过一个I/O(INT)来中断W8051,整个M0控制系统均在FPGA内部实现,软件在这个独立的计算机系统上实现自定义的M0内总线通信协议,以完成主控计算机与内总线上雷达其他从设备(如发射机、接收机等)的可靠通讯。
2.3TVJ子模块电路设计
2.4TVJ子模块视频控制电路设计
视频控制电路是TVJ子模块的关键电路,它包括PLB总线接口、VRAM切换控制电路、视频时序发生器、VRAM地址发生器、彩色查找表和控制/状态寄存器,如图5所示。
PLB总线接口主要完成视频控制电路与系统PLB总线的符合IBMCoreConnect总线规范的无缝接口电路。VRAM切换控制电路完成系统对两块显存读/写控制的交替切换。PLB_EMC是Xilinx嵌入式开发套件EDK自带的PLB总线外部存储器控制接口IP。VRAM_A和VRAM_B都是存储视频图像数据的显存,切换控制电路在任意时刻总是将1块显存挂接在PLB_EMC接口上,而从另一块显存读出视频图像数据经过调色板变换后输出给D/A产生要显示的彩色图像信号。修改显示画面时CPU通过PLB总线先对挂接在PLB_EMC接口上的VRAM_A进行改写,同时用VRAM_B读出的数据来完成显示,然后通过设置控制寄存器切换到另一状态,再用VRAM_A完成显示,而对VRAM_B改写以使两块显存数据保持相同,这样系统读/写显存时就不会影响显示了,同时VRAM切换控制电路可以设置为只对高8位、只对低8位和对16位这3种显存存取方式,以此来实现显存的快速存取和背景叠加显示功能。
VRAM地址发生器就是根据PAL视频时序发生器给出的行、场同步和消隐信号来产生读显存需要的地址,并与PAL制式信号时序同步。
彩色查找表的功能是将从显存读出的视频图像数据经过查表处理后形成24位RGB彩色数字视频提供给D/A变换输出到显示器显示。查找表共512个单元,将其分为两部分,0~255为第一个表,256~511为第二个表,显存输出的数字视频要么通过第一个表,要么通过第二个表来转换,不能同时,当数字视频高8位为全0时,将使用低8位去索引第一张表,当高8位不为全0时,将使用高8位去索引第二张表,这样系统可以由软件来灵活地设置修改彩色查找表的内容从而实现多种分层和叠加的彩色显示方式。
3SoPC技术在设计中的应用
开发采用Xilinx公司的EDK(嵌入式开发套件)和ISE工具软件。EDK工具包中集成了硬件平台生成器(Platgen)、软件平台生成器(Libgen)、仿真模型生成器(Simgen)、软件编译器(Mb-gcc/ppc-gcc)和软件调试工具(Mb-gdb/ppc-gdb)等,通过集成开发环境XPS,用户可以调用上述所有工具,来完成嵌入式系统开发的整个流程。
可配置嵌入式系统的配置层面包括,处理器配置:如指令或数据缓冲配置,协处理器或硬件加速器;系统配置:如I/O外设选择、定制、DMA选择、存储器外设选择、定制等;用户专用外设和电路:将专用电路设计成为用户自定义的IPCore,然后在系统中添加调用来实现。用户自定义的IPCore要求必须用HDL设计并满足片内总线接口和EDK工程的规范,如有专门目录结构和处理器外设定义文件(.MPD)、外设分析定义文件(.PAO)等。如果自定义的IPCore要具有软件驱动,那设计还要完全符合相应的总线底层驱动接口规范。总之将SoPC技术应用在接口模块的设计中具有以下优点:由于接口模块往往是实现专用功能的嵌入式计算机小系统,在芯片RAM资源可以满足系统的设计要求的前提下,可以将系统存储器都集成到FPGA内部,大大减小体积和功耗,减少芯片数量;硬件设计的更改可通过重新配置FPGA器件来实现,增加设计灵活性,降低设计风险。
4结语
由于FPGA内部集成的通信接口和IPCore的种类的不断丰富,使得在更多的应用领域使用SoPC技术进行嵌入式系统设计已成为可能。该多功能接口模块已成功地应用于实际产品中,取代了以往3个单独的接口模块,大大减小了体积,降低了功耗,在提高了性能的同时也提高了系统的可靠性,并为设计体积更小、性能更强的雷达接口模块提供了发展方向。