李玉琳,郝巨东,刘开源,于 波,贺瑾瑜
(北方自动控制技术研究所,太原 030000)
随着信息科学的飞速发展,数字I/O板已经成为数字信号处理中非常重要的组成部分,其性能将决定整个数据采集和存储技术系统的性能,它广泛应用于雷达、通信、遥测遥感等领域。数字I/O板具有信号输入输出功能,但其信号传输通道少,一般用于简单的数据I/O设备中,在信号复杂的工作条件下,就难以满足使用需求。另外,现有的数字I/O卡功能单一,仅能对信号进行单一的传输,无法满足设备中不同信号时序不同的需要[1]。
我军某型防空武器系统的火控计算机外围单体信号大部分是数字信号,且信号通道多,时序交互性强[2]。针对以上特点,传统数字I/O板不能满足设计需求,因此,需要设计一种适合于产生火控计算机外围单体信号的数字I/O板[3]。本文利用单片机丰富的外设接口功能以及FPGA的引脚数目多、逻辑控制能力强的特点,设计了基于单片机和FPGA架构的多通道数字I/O板,模拟产生了火控计算机外围单体的数字信号环境,实现了火控计算机与外围单体信号之间的基本交互。
在外围环境模拟系统对火控计算机进行检测与维修的过程中,数字I/O板起着相当重要的作用,上位机与火控计算机的通信主要依靠数字I/O板来实现。其过程如图1所示:
火控计算机与火控控制面板、键盘显示器及其他单体间的信息传输是通过对外接口实现的。火控计算机共有12个接口,分别为:设备测试接口、稳定跟踪计算机接口、激光电子箱接口、电视跟踪箱接口、火炮随动控制箱接口、车体信息处理机接口、检测计算机接口、火控控制面板接口、导弹控制接口、键盘显示器接口、打印机接口和电源接口。说明:1)火控计算机与车体信息处理机的接口是经火控转接盒转接的(火控转接盒XS1接火控计算机、XS3接车体信息处理机);2)火控计算机电源由炮塔配电箱供给,经火控机架滤波后送入火控计算机。
传统的数字I/O板在检测与维修过程中暴露出信号通道少、时序功能缺乏等问题,运用到武器装备上具有一定的局限性。为了解决这些问题,本文将单片机和FPGA相结合设计出具有多通道的数字I/O板,可以很容易实现各信号的时序交互,极大地提高了维修训练模拟器的工作效率,其整体设计思路如图2所示:
某自行高炮火控计算机外围环境模拟系统括上位机、数字I/O板、转接板和火控机。其中上位机、数字I/O板、转接板3部分又称为模拟器实装部组件。其工作原理为[4]:上位机通过RS232串口将不同的模拟信号传输给数字I/O板,数字I/O板将模拟控制信号通过转接口传输到火控计算机中,实现外围信号和火控机单体之间的信号传递。此外,火控机中的故障点信号可以反向传回数字I/O板再到上位机,显示故障点位置,在实装条件下完成装备维修。
单片机硬件电路,主要作用是将上位机发送的模拟信号通过FSMC总线传送到FPGA中。本文选用的STM32的引脚封装为LQFP144,采用STM32最小系统,包括STM32微控制器、JTAG下载接口、晶振、电源和复位电路[5]。
下载和复位:本文使用5针的JTAG接口,通过J-Link在线下载。并在nRST引脚连接简单的复位电路,与JTAG调试端口相连,既可使用开发调试工具强行复位STM32,也可实现手动复位。
启动方式:通过STM32的两个外部引脚BOOT0和BOOT1来选择最小系统的启动方式。这里选择将这两个引脚分别与GND相连,即STM32存储空间的起始地址对齐到用户FLASH模块。
1)晶振电路
在本设计中使用外部时钟源,外接两个晶振为其内部提供时钟源,一个为外部高速时钟(HSE),使用25 MHz晶振系统提供较为精准的168 MHz主频,另一个是外部低速时钟(LSE),接频率为32 768 Hz晶振,提供日历时钟功能。
2)串口转换电路
本设计串口电路采用的是美国电子工业协会EIA制定的RS-232C电气标准。其电气规范为:在逻辑“0”时,电平范围是 -5 V~-15 V,在逻辑“1”时,电平范围是+5 V~+15 V。而单片机的CMOS电路电气规范低电平为0V,高电平为3.3 V,为了实现两种电平之间的转换,要引入如下页图3所示的串口转换电路。
3)电源部分电路
电路提供的电压VCC为5.0 V,单片机和FPGA的工作电压VDD为3.3 V和2.5 V,通过图4的电源电路,可将VCC转换为单片机和FPGA的正常工作电压。
FPGA在多路并行数据处理方面有明显的优势,设计采用STM32F407的FSMC(Flexible Static Memory Controller,可变静态存储控制器)并行总线接口实现与FPGA的连接,可构成具有多通道功能I/O的设备。
1)FSMC总线
FSMC是STM32系列采用的一种新型的存储器扩展技术,支持不同的外部存储器类型,其中就包括多种类型的静态存储器[6]。因此,可将FPGA当成STM32F407的外部SRAM来配置,通过扩展出的数据/地址/控制三总线来实现操作,这样既能保证较快的操作速度,又具有很高的灵活性。
根据应用需求,设计接口数据宽度为16位,地址线为10位,将数据线FSMC_D[15~0]、地址线FSMC_A[9~0]连接到 FPGA 的 I/O 端口,寻址空间为1K字,FSMC_NOE和FSMC_NEW分别是接口读写信号,FSMC_NE1、FSMC_NE2作为片选信号。除此之外,还有一些中断信号(INT),用于FPGA向STM32F417发送中断请求。这样FPGA就作为STM32F417的外设连接在了系统中,通过存储器读写指令就可以访问FPGA[7],接口电路硬件连接如图5所示。
2)设备选择
将FPGA直接连接在STM32F407的FSMC总线上,FSMC总线地址映射分为4个Banks,各占256 M字节空间。每个Bank有独立的片选信号,我们使用的Bank1又分为4个region,设定region对应的片选信号高低电平就可以选用不同的设备,且各设备对应的地址范围也不同。如图6所示:
在FPGA工作过程中,FPGA是通过片内RAM中的程序来设置芯片的工作状态,但是片内RAM的数据掉电会丢失,所以在设计中需要选择一个非易失性的存储器来存储配置程序。通常将这种存储器称为配置芯片[8]。因此,FPGA在上电之后,存储在配置芯片中的配置程序将通过某种模式重新载入到片内的配置RAM中。在芯片配置完成之后,芯片才会按照用户设计的功能正常工作,即进入用户模式。在本文中,为了方便调试,设计选用PS和JTAG两种配置方式。
配置芯片选择Altera公司专用的配置芯片EPC2LC20,通过PS方式在线配置FPGA,JTAG用来配置EPC2LC20。EPC2与FPGA之间用跳线隔开,PS在线下载FPGA时,断开跳线,EPC2不用从板上卸下。当跳线连接时,由EPC2直接配置FPGA。
此外,FPGA外围还配置了双向驱动电路,其功能是利用SN74HCT245PWLE外接电路实现FPGA的双向驱动功能,既可以实现信号采集,又可以输出信号。如下页图7所示。
在装备实际应用过程中,火控机对外接口连接各单体。在检测与维修装备的过程中,火控计算机的对外接口可以通过转接电路连接到FPGA的双向驱动电路上,从而实现火控机与数字I/O卡的连接,满足了其在脱离实装条件下的信号需求。
FPGA能够实现I/O板的数据输出与采集,主要在于FPGA内部逻辑的设计,本文FPGA的设计开发使用Altera公司自己的综合开发平台QuartusⅡ。
单片机的FMSC总线控制产生了4类信号:读写信号、地址信号、片选信号以及数据信号。这4种信号传输到FPGA中控制信号的输出与采集。在FPGA内部,设有地址译码、设备选择总线驱动以及信号输出与采集模块,并采用原理图和Verilog HDL语言输入相结合的方式,实现各部分功能模块的设计。如图8所示。
1)地址译码模块。地址译码电路,主要由74 154译码器组成,外部与STM32的FSMC总线接口地址线相连,能够将对应的地址转换为内部逻辑电路的选通信号,从而对不同地址的输出电路进行操作,实现多通道的目的[10]。
2)设备选择模块。设备选择模块,主要由逻辑模块74688等值比较器组成,与单片机输出的片选信号相连。两块FPGA的片选信号各不相同,可以通过设置每块FPGA内部NE1、NE2、NE3的高低电平不同,与74 688比较器比较,从而选择不同的设备。
3)总线驱动模块。总线驱动电路,使用742541逻辑器件来配合上面的地址译码电路,外部与STM32与FPGA接口的数据线相连,可以使用总线驱动电路对不同地址位置的数据进行读写。
4)信号输出与采集模块。信号输出与采集模块,使用74 374芯片进行写操作,使用74541芯片进行读操作。按一次读写字节长度,可分为16位读写与8位读写。
为测试该设计是否能够满足多通道信号通信进行实验验证。设置高电平:接口X4_S35X4_S37为高电平,其余低电平,连接测试点;探头连接测试点;在输入面板上点击输入(采集);观察采集面板信号变化。采集结果如图9和下页图10所示。
界面设计结合了电路板的信号输出与采集接口的实际分布,考虑到了程序员调试过程中经常需要用到的一些控件。整个设计界面由以下几个部分组成:初始化设置、信号方向及FPGA选择、信号输出显示面板、信号采集显示面板。通过上位机对数字I/O板的控制,模拟产生了火控计算机外围单体的数字信号环境,实现了火控计算机与外围单体信号之间的基本交互。
本文提出的基于单片机和FPGA的数字I/O板设计方案经实际验证验证是可行的,可以容易实现各信号的时序交互,提高了维修训练模拟器的工作效率,满足其功能需求,具有一定军事应用价值。