APP下载

基于FPGA的水声信号记录电路设计∗

2018-03-23朱明骏孙现有

舰船电子工程 2018年2期
关键词:水声总线电源

朱明骏 孙现有

(海军驻昆明军事代表办事处 昆明 650051)

1 引言

进行水声研究需要进行大量的测量工作,并对测量数据进行比对、分析。因此对测量到的原始信号进行记录就显得格外重要。行业内存储水声信号主要使用的是磁带机,保存经放大处理的模拟信号。虽然磁带机有可靠性高、容量大、速度快等诸多优点,但是对数据再次使用时需要再次把模拟信号转换成数字信号,这给数据分析带来了不便。而且磁带机受体积、抗冲击性能等方面因素的影响,通常配置于地面设备,无法搭载于水下航行体中,这使磁带机的应用受到了很大的限制。因此,设计一种体积小,环境适应性强,可置于水下设备中的记录电路,替代传统的数据记录设备,以满足行业内特殊条件下水声信号记录的需要,具有重要的实践意义和实用价值。

2 记录电路功能及设计思路

记录电路以标准板卡的结构置于电子组件机箱内。通过接插件与底板连接。接收数字前置放大器输出的串行数字流信号,将其进行串并转换操作后,存入大容量存储器当中。记录电路可将记录数据读出到计算机或通过串行接口回放输出[1]。

记录电路所处理的信号速率达到400kByte/s,需要FIFO进行缓冲,同时要针对CAN总线、IIC总线、串行数字信号接口以及FLASH芯片等开展多种接口设计[2]。FPGA作为目前最流行的可编程逻辑器件,具有应用灵活的特点,成为记录电路硬件构架的首选。数据存储介质选择了普通U盘所使用的FLASH芯片,该类芯片具有存储密度高、可靠性高、价格便宜等优点。

电路还内置电源管理电路,用于电源的自检、上电控制和复位控制功能。同时还配有CAN总线接口,便于接收上级系统的命令并将自检信息上报。

3 电路硬件设计

记录电路的硬件设计主要围绕FPGA电路设计展开,同时进行接口电路部分设计、存储电路部分设计和数据交换电路部分的设计。FPGA电路是以FPGA嵌入式微处理器为核心的电路结构。所谓嵌入式微处理器是FPGA芯片内嵌了MICRO⁃BLZE软内核,内核作为独立的微处理器被FPGA逻辑电路调用以完成和其它处理器一样的功能。整个电路分为电源管理、FPGA电路、存储器和通信几大部分。几部分的连接关系如图1所示。

3.1 电源管理电路设计

电源管理电路的主要功能是向整个电路板供电。除了供电作用外,还具有控制上电顺序和复位管理功能。电路中设有小的51系列单片机,可按需要对各个电源的上电顺序进行控制,同时实时检测电路板的各组供电电压情况和FPGA电路工作情况。电压情况异常或者FPGA电路工作异常时,对电源进行复位操作。

电路采用+24VDC输入的供电模式,通过DC/DC转变成+5VDC。电路板用到的其它直流电源由+5VDC转换提供。为了实现电源控制的功能,电源芯片选用了TI公司生产的TPS5461X系列DC/DC开关电源芯片。可通过单片机控制电源芯片上的“SS/ENA”脚实现对各组电源的控制[3]。

完成电源管理的单片机选用了C8051系列的F206单片机,该单片机体积较小、资源不多,但完全可以满足电源管理的需要。电压检测芯片则选用了国家半导体公司的LM87芯片。单片机通过IIC串行总线控制LM87检测电路的各组电源供电情况和主控芯片的温度信息,当电源电压或者温度出现异常时对电源进行复位操作。

3.2 存储器电路设计

记录电路选用了三星公司的1G ×8bit NAND Flash Memory作为存储介质。需要记录数据的速率为400kByte/s,一片Flash芯片能记录的时间为40多分钟。考虑到存储容量的问题,选用了6片同规格的Flash芯片,可存储数据时间为4个小时。也可选择更大容量的FLASH芯片增加记录时间。

Flash的接口相对简单,除了8位复用的地址、数据线以外,有7个控制引脚。它们分别为R/B、RE、CE、CLE、ALE、WE和WP。其中R/B引脚为状态指示输出脚,向处理器提供FLASH的工作状态;CE引脚为片选信号;CLE和ALE分别为命令使能信号和地址使能信号;RE和WE分别为读写信号;WP为写保护信号。

FPGA内部微处理器MiroBlaze通过通用I/O口连接FLASH芯片的8个地址、数据引脚和7个控制引脚,控制其内部寄存器完成对FLASH的读写操作,将数据记录到FLASH芯片上或者读出。6片FLASH芯片以并联方式与处理器相连,除片选信号CE外其余引脚均为复用。

3.3 通信电路设计(CAN总线设计)

CAN总线是一种全数字化双向和多主的现场总线,在汽车制造业应用非常广泛。现在水声领域应用方面,CAN总线的应用也已经较为普遍。CAN总线采用双线传输方式,设备以节点的方式挂于总线上,通过设置帧ID控制数据的接收与发送。总线上的节点数可根据需要自行增加,应用非常方便。采用SJA1000 CAN控制器结合驱动芯片PCA82C250的电路结构,实现CAN总线通信[4]。

3.4 FPGA电路设计

FPGA选用Xilinx公司Virtex-2 Pro系列产品XC2VP20FG676芯片,此芯片是该电路的核心,中央处理器为其内嵌的软核MicroBlaze。FPGA的配置芯片选取XCF08P的大容量存储芯片。外围电路需要按数据手册的要求完成FPGA芯片与配置芯片的设计,正确配置好电源、晶振、复位芯片和JTAG口,按需求分配好I/O口与相关电路相连。需要注意的是XCF08P具有串行和并行两种加载方式,在配置时需看清相对的电路结构。本设计中为了减短程序加载时间,选择了并行加载的配置方式。

FPGA电路主要逻辑功能仍然由FPGA内部的逻辑门电路部分完成。逻辑门电路在记录状态主要负责串行数字流信号的接收并送入FIFO中进行缓冲,当FIFO标志置位时,向微处理器提出取数申请;在数据回放状态,主要负责将微处理器送出的数据放入FIFO缓冲,再按照规定的速率通过串行数字流输出模块向外发送。

FIFO的主体选用了XILINX公司的IPCORE:FIFO Generator V2.3。FIFO缓冲区缓冲数据宽度为16位,缓冲的深度为8192。这种FIFO具有可编程状态位,当FIFO中数据满足设定状态时,可编程状态位置位,可方便地将FIFO的状态反馈给微处理器。本设计中调用了两个FIFO内核,分别作为输入和输出时的数据缓冲。输入缓冲区设定可编程状态位在缓冲区内数据将要溢出时置位,输出缓冲区设定可编程状态位在缓冲区内数据数将要取空时置位。微处理器可以根据此状态位判断缓冲数据情况,决定是否读取或者写入新的数据。

4 电路软件设计

记录电路软件分为单片机软件和FPGA软件两大部分。其中单片机软件主要负责电源管理功能。通过模拟IIC总线对电压监控芯片LM87进行控制,实现对电源和FPGA电路的监测。在电源不正常或者FPGA电路不正常的情况下,对电源芯片进行复位操作。单片机软件使用C语言编写,功能比较简单,程序流程图如图2所示。

FPGA软件的核心部分是针对内嵌微处理器MiroBlaze的C语言设计,主要功能是完成对串行数字流信号的记录和回放功能。负责将缓冲区中的数据读出并存入FLASH的相应存储区域。如果接收到回放命令,则将FLASH中的数据读出放入FIFO。如果接收到读取命令,则将FLASH中的数据读出并通过高速串口输出到PC机上。[5]FLASH的读写是以页为基本单位的,一页为1056个字。在读写一页之前必须先指明所需读写的页地址,然后发送读写命令。一页1056字需要一次性连续读出或者写入[6]。FPGA软件的流程图如图3所示。

5 应用情况

该记录电路已成功应用于某水下航行器上,通过试验获得了大量宝贵的试验数据。图4中(a)所示的是某次水下试验中电路记录的9分多钟的水声信号图形,(b)和(c)分别显示出数据其中一段的放大后和再次放大后的信号图形。

6 结语

本文提出了一种基于FPGA的水声信号记录电路的设计方案。经过实验室调试和实际应用,证明了电路能有效完成高速率水声信号的记录工作,并且具有稳定的工作状态,可以取代传统的模拟记录设备,满足大多数情况下水声信号的记录需求。

[1]徐欣,于红旗等.基于FPGA的嵌入式系统设计[M].北京:机械工业出版社,2004:60-61.

[2]刘东华.Altera系列FPGA芯片IP核详解[M].北京:电子工业出版社,2014:116-125.

[3]孙航等.Xilinx可编程逻辑器件的高级应用与设计技巧[M].北京:电子工业出版社,2004:267-269.

[4]田耘,胡彬等.FPGA开发指南——DSP、嵌入式与高速传输篇[M].北京:人民邮电出版社,2008:275-276.

[5]彭澄廉,周博等.挑战SOC——基于NIOS的SOPC设计与实践[M].北京:清华大学出版社,2004:256.

[6]汤少为.基于FPGA控制的高速数据采集系统设计与实现[D].成都:电子科技大学,2007.

猜你喜欢

水声总线电源
时间触发通信总线监控技术研究
关于CAN总线的地铁屏蔽门控制思路论述
基于最小二乘法的超短基线水声定位系统校准方法
Cool Invention炫酷发明
有些水声,像乡音
基于CAN/LIN总线的LED车灯控制研究
等效电源法的应用
暮饮
水声悠远
新电源