基于FPGA的水声信号采样存储系统设计-设计应用_第1页
基于FPGA的水声信号采样存储系统设计-设计应用_第2页
基于FPGA的水声信号采样存储系统设计-设计应用_第3页
基于FPGA的水声信号采样存储系统设计-设计应用_第4页
基于FPGA的水声信号采样存储系统设计-设计应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于FPGA的水声信号采样存储系统设计-设计应用摘要:为了提高水声传感器网络通信系统试验和算法研究的效率,水声传感器网络节点需要具有水声通信的原始波形数据的记录功能。本文设计了一种水声信号采样存储系统,实现了数据变速率AD采集、数据环形存储、数据连续读取、数据飞读等功能。该系统具有结构清晰,集成度高,工作可靠等优点,可以有效提高水声传感器网络试验的效率。

1引言

近几十年来,随着世界各国对海洋开发和利用步伐的加快,对海洋信息进行连续实时监测的意义越来越重要。水声无线传感器网络(UnderwaterAcousticsensornetwork,简称UW-ASN)是海洋环境立体监测系统中的研究热点,它由大量具有计算和通信能力的传感器节点组成,各节点被分布在指定的海域,执行连续的协同监测任务。鉴于水声信道的带宽有限、海洋噪声复杂、具有多途效应和多普勒效应[1],这些特殊性给UW-ASN中的水声通信、协议设计等方面带来了很大的挑战,增加了传感器网络设计的复杂性。

为了充分了解水声通信过程中的数据变化,方便对于信道特性分析以及通信方式的选择,以及大量传感器网络节点之间通信数据的存储,传感器节点必须具备数据采集功能。传统的水声数据采集存储系统主要由数据采集板卡组成,能够满足数据采集功能,缺点是体积大,便携性差,难以作为传感器节点的组成部分应用于实际设计中。

本文针对这一问题,提出了基于SOPC(SystemOnProgrammableChip)的设计方案[2],利用其配置灵活、扩展性强、接口丰富等优点,以Altera公司的CycloneII系列FPGA为基础,设计传感器节点数据采集存储系统,降低了设计的风险,完善了传感器节点功能要求。

2采样存储系统概述

本设计系统的结构如图1所示,在整个传感器节点的系统当中,将AD芯片输出的12位数据,通过设计SDRAM控制IP核,实现数据变速率AD采集、数据环形存储、数据环形读取、以及数据飞读(实时数据读取)等功能。同时,对于NiosIICPU设计串口(UART)协议,以便前置机与传感器节点通信,实现不同命令操作功能,方便对水声试验过程中波形数据的变化进行仿真处理,以满足试验要求。

本设计采用MICRO公司的MT48LC32M8A2型号容量为32Mbyte的SDRAM,芯片地址线为25位,每个地址存储16位数据。根据水声通信试验要求,声波频率为40KHz,每个正弦波采样16个点,则采样时钟要求至少640KHz,本系统设计采样时钟40MHz。同时,环形存储深度为32Mbyte,每次采样存储数据占2byte,则至少可以采样25秒正弦波数据。环形存储区域大小,以及采样时钟都可以进行参数化配置,能够满足试验要求。系统整体分为硬件逻辑设计,与软件程序设计两部分。

3系统整体设计

3.1硬件逻辑设计

硬件逻辑设计主要包括主控IP核设计与主端口IP核设计两部分工作,分别实现对于AD采样数据的存储和读取时序控制,以及AVALON总线的主端口建立的目的。硬件逻辑利用IP核模块化,移植性好的特点,方便整合到传感器节点的整体设计当中。作为传感器节点的组成部分,为水声通信试验的顺利进行提供可靠保证。硬件逻辑设计图,如图2所示。

3.1.1SDRAM主控IP核设计

主控IP核通过对于QuartusII自带的SDRAM控制器进行控制,实现变速率AD采样的功能,以及读写SDRAM的逻辑功能。由于SDRAM控制器实现了对于SDRAM芯片的时序操作,所以读写时序设计是针对SDRAM控制器进行[3]。

系统读SDRAM操作分为数据飞读与数据环形读取两种功能[4]。其中,数据飞读是将当前AD采样值送回至CPU,并通过串口返回到前置机,方便实时数据监控。对于数据环形读取SDRAM操作,通过设置首地址指针寄存器,在每次写操作之后自动加一,实现环形存储水声通信数据的目的。在每次环形数据读取操作发起之前,预读首地址指针寄存器,以此为起始地址,始终读取时刻的采样存储数据。读操作过程主要状态机,如图3所示。

其中work过程包含的独立状态机,由如下四部分构成:

(1)first:片选有效,读使能有效,送读SDRAM地址。

(2)second:读使能有效,满足SDRAM控制器读时序要求。

(3)third:判断sdram_read_wait信号值,如果为1,则维持当前状态,同时读使能信号置位;如果为0,则进入下一状态。

(4)fourth:判断sdram_read_valid信号值,如果为0,则维持当前状态;如果为1,将读回数据写入读SDRAM数据寄存器,同时读使能信号复位。

变速率AD采集与数据环形存储操作主要是由主控IP核写SDRAM的过程实现。为保持采样时刻数据的稳定性,系统对AD时钟进行分频,通过设置不同分频寄存器,实现变速率采样的目的。数据环形存储SDRAM操作是靠每次分频时钟SDRAM_WRITE_CLK的上升沿触发,基本时序过程与读过程状态机类似。系统从0地址开始写操作,一旦写满预设存储区域,则从下一写时刻开始,数据写入初始地址,以此类推,实现环形存储操作。同时,读写操作不能进行同时进行,通过读写选择控制器的设置,分别按照不同状态进行操作。

3.1.2主端口IP核

因为SDRAM主控IP核在NiosII软核CPU总线控制下作为从端口,所以不能主动发起读写操作,因此必须新建第二条AVALON总线,设计读写主端口IP核,才能实现读写外接SDRAM芯片的功能。主端口IP核的时序操作,是对主控IP核的时序转接,面向SDRAM控制器进行控制。根据读写使能信号不同,进行不同时序传送。

3.2软件程序设计

NiosIICPU作为软核,可方便进行模块化操作,具有可移植,可配置,易整合的特点。在本设计当中,软件设计主要实现以下五种主要功能:单点写SDRAM,单点读SDRAM,数据飞读,连续写SDRAM,连续读SDRAM的功能。在程序当中留有接口,方便其他功能整合,符合模块化设计的要求。

首先,完成功能的初始化,主要是设置选择操作模式与存储AD数据的时钟分频系数。作为SDRAM的读操作必须满足写满之后,方可进行,所以初始化主控IP核为写SDRAM操作。设置分频系数可以按照如下公式计算:

其次,通过对于串口进行协议解析,分别实现五部分预设功能。主程序操作流程如图4所示。

实现的五部分功能依次为:

(1)单点写SDRAM操作:CPU给出地址,数据,以及写操作选择信号。

(2)连续写SDRAM操作:CPU只是给出写操作选择信号,由主控IP核将AD数据写入至SDRAM环形存储区域内。

(3)数据飞读操作:只需要读取飞读数据寄存器,可以将当前状态AD输入值送回至CPU,侦测当前状态。

(4)单点读SDRAM操作:CPU送出读SDRAM地址,然后选择读操作,设置控制寄存器为0x00000001,启动读操作。将读回数据通过串口实时回传。

(5)连续读SDRAM操作:是将基本读操作进行循环执行。设置串口回传缓冲区为80字节,连续读SDRAM数据并连续填写缓冲区,一旦填满,则启动串口发送。同时,读地址在每次读操作结束后自动加一,当操作次数达到环形空间存储数量时,停止连续读操作。

4结束语

本设计作为水下无线传感器网络(UW-ASN)节点的设计组成部分,具有结构清楚,功能完善,整合性强,性能可靠的特点。设计整体架构的模块化操作以及可编程性,使得整个设计开发的具有灵活性与低风险性。经项目试验验证,该数据采集与存储设计满足传感器节点的功能要求,为水声通信试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论