APP下载

声学信号采集及网络传输系统设计

2018-06-11周莹高超魏永星张爽

电子设计工程 2018年11期
关键词:声学寄存器电源

周莹,高超,魏永星,张爽

(国家海洋技术中心天津300112)

众所周知,在人们迄今所熟知的各种能量形式中,在水中以声波的传播性能为最好。声信号采集及传输系统是声信号处理的基础,是声呐、声目标定位、声信号分离、声信号增强等技术的重点,其设计的性能直接影响到这些处理的结果[1-2]。一般情况下,声学信号采集及传输系统需在水下长时间工作,所以系统的功耗及传输方式在一定程度上决定着整个系统的性能。文中所述的声学信号采集系统采用基于嵌入式系统的以太网移植方法,系统上位机通过以太网发送命令或数据给终端,终端收到后启动A/D转换器执行相应的动作,最后终端将得到的信息处理后再次通过以太网上传回上位机。

1 系统硬件设计

声学信号采集及传输系统由声学传感器、信号调理电路、A/D转换模块、电源模块、控制模块及网络传输模块组成,其原理框图如图1所示。控制模块中选用ST公司的STM32F207微控制器作为系统的主控制器[3]。STM32F207内嵌ARM32位Cortex-M3 CPU,自适应实时加速器可以让程序在Flash中以最高120 MHz频率执行时,能够实现高达150DMIPS/1.25DMIPS/MHz性能[4-5]。控制器采用1.65~3.6 V的内核和I/O管脚供电,具有睡眠、停机和待机模式保证系统低功耗应用的要求,具有专用DMA的10/100以太网MAC,支持硬件IEEE 1588v2,丰富的外设配置,使得系统设计简化进一步减少功耗[6-7]。A/D转换模块中,选用TI公司的模数转换器ADS1258完成声学信号的采集,ADS1258具有24位采样精度,定通道采样速率为125 Ks/s,工作电压在2.7~5.25 V范围内可选,具有精度高、转换速率快、低功耗的特性[8-9]。在本系统中ADS1258工作时采取固定通道输入模式,通过配置寄存器确定选择的通道,采集的数据在主控制器的控制下通过网络传输模块传输到上位机[10]。网络传输模块采用SMSC推出的节能、低功耗10/100以太网络物理层收发器LAN8742,其可提供“局域网唤醒”(Wake on LAN),可让系统进入低功耗状态,并在特定的网络流量出现时唤醒系统,因此可在待机期间节省资源。

图1 低功耗声学信号采集系统原理框图

系统中电源的选择对系统是否能正常工作起到至关重要的作用,本系统中STM32F207和LAN8742的芯片工作电源要求+3.3 V,ADS1258不仅需要+3.3 V的工作电源还需要+2.5 V和-2.5 V的基准电源。系统采用凌特公司推出的一款LTC3533高效同步整流降压-升压DC/DC转换器,其在恒定开关频率可确保低噪声,将系统输入电压转换到+3.3 V。系统采用TPS79925低压差线性调节器将+3.3 V调节到+2.5 V,TPS79925具有低噪声、快起动和极好的线荷载瞬态响应,另外采用TPS72325低压降线性稳压器将+3.3 V调节到-2.5 V,此款芯片具有低噪声、高PSRR负输出等特点。由于系统中STM32F207、LAN8742与ADS1258的工作电源要分开,因此在电源设计中分成模拟和数字两组独立的电源。模拟电路与数字电路分开布局可预防数字电路工作在高速脉冲状态时,瞬时的涌浪电流对直流电压产生高频干扰,从而影响小信号的模拟电路工作。所以在PCB板布线时为使干扰降低,将模拟信号部分和数字信号部分分开布局,模拟地和数字地单点共地。系统电源设计如图2所示。

图2 系统电源电路

STM32F207工作需要2个晶振,一个是HSE,采用外部8 MHz频率的晶振,内部PLL倍频使用,分别与OSC_IN和OSC_OUT引脚连接;另一个LSE时钟电路,它为系统待机或低功耗时提供精确的时钟源,LSE电路需要一个32.768KHz频率的外部时钟源,具有50%占空比的外部时钟信号与OSC32_IN和OSC32_OUT引脚相连。

复位电路的作用是确保在系统上电后不让STM32F207立刻进入工作状态,暂时处于上电延时状态;或者在系统供电电压不足的时候提供复位信号。这样可以让系统程序重新执行,而不会陷入无序执行状态,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。STM32F207芯片的复位引脚是NRST,设计中加入电阻和电容,放电回路组成RC复位电路,系统上电时,电源电压有瞬间下降,电容迅速充电,形成一定宽度的电源毛刺保证系统可靠复位。

系统利用STM32F207的通用I/O引脚为ADS1258提供复位及模数转换启动信号;利用片上专有的SPI接口连接ADS1258,两者间采用四线制(片选信号、时钟信号、数据输入信号、数据输出信号)通信方式,ADS1258工作在SPI通信从模式下,且始终处于被选中状态。STM32F207通过读写ADS1258的寄存器配置其工作方式[11-12]。表1为系统对ADS1258工作寄存器的配置详情。

表1 ADS1258寄存器配置

其中CONFIG0、CONFIG1是状态寄存器,MUXSCH代表多路固定通道选择寄存器。CONFIG0的BIT6=0b,复位时间为256fCLK;BIT5=1b,系统采用固定通道模式;BIT4=1b,输入的模拟信号通过共用的外部信号调理通道传输到A/D转换器。系统通过CONFIG1的BIT1-0[1:0]位选择A/D的转换速率,BIT1-0[1:0]=11b时转换速率为125000SPS。ADS1258的模数转换过程如下:STM32F207控制引脚START上的正脉冲启动一次模数转换,当该次转换结束时,数据准备好,DRDY引脚输出低电平信号,提示可以提取采样数据[12]。本系统中,将数据准备好信号(DRDY)作为STM32F207的一个外部中断源,可通过外部中断服务程序来读取转换结果。

系统中声学传感器信号是-2.5~+2.5的模拟信号,单通道模拟输入信号被配置成差分输入方式以抑制噪声干扰[13]。系统中的信号调理电路采用TI公司的运算放大器OPA4340作为跟随器进行信号输入阻抗的调理,提高输入阻抗,对信号起到缓冲隔离的作用,RC滤波电路还可有效滤除高频干扰信号,提高信噪比。另外,系统为提高A/D转换精度,在ADS1258外加高精度参考电压源,当参考电压与AVDD、AVSS一致时,A/D信噪比最高,因此系统采用-2.5 V和+2.5 V为参考电压。另外,系统外接16 MHz有源晶振为ADS1258提供工作时钟,确保系统工作的稳定性[14]。

2 系统软件设计

系统采用嵌入式实时操作系统uc/os-II,uc/os-II规模小,实时性和可靠性较好。系统分解为多个相对独立的任务,降低系统的复杂度,方便应用程序的设计及扩展,一个任务是一个线程,可有休眠、就绪、运行、挂起和被中断状态,提高系统效率。系统的工作是协调多个任务在单个MCU上“同时”运行。uc/os-II不支持时间片轮转法,多任务的启动是通过调用OSStart()实现的,然后再根据消息队列、信号量、内存管理和时间管理等系统服务进行任务之间的切换。文中针对STM32F207微处理器在集成环境keil view MDK上进行uc/os-II操作系统的移植。系统移植的改动主要有两部分,一个是一些头文件的增减,另外一个是向量表内容的修改。系统在OS_CFG.H头文件中配置uc/os-II的系统功能,根据系统需求进行任务剪裁。系统为了使代码适应编译环境需要将OS_CPU_A.ASM文件中的部分内容作出相应改动,内容如表2所示。

表2 OS_CPU_A.ASM文件修改内容

另外将启动代码中所有“PendSV_Handler”修改为“OS_CPU_PendSVHandler”这样μc/os-II就可以通过STM32F207的中断进行系统任务调度;将“Sys⁃Tick_Handler”修改为“OS_CPU_SysTickHandler”,使uc/os-II可以用STM32F207中的嘀嗒定时器Sys⁃Tick作为时间基准,每周期时间向PendSV发出一个中断,进行任务调度。

网络传输模块部分,采用LWIP(Lightweight IP)协议,它是一套用于嵌入式系统的轻量型TCP/IP协议栈,将μc/os-II中的相关函数封装,就可满足LWIP的需求。利用uc/os-II操作系统的函数完成LWIP中信号量、消息队列、定时器和线程创建等功能的封装。LWIP协议工作中分两种模式,Server(客户端)模式和client(服务端)模式。任务间数据流框图如图3所示。

系统初始化完成后,LWIP任务接收来自上位机的数据采集指令;指令被送到消息队列DataTxCommand中,等待 DataTxTask()任务进行处理。DataTxTask()接收到数据采集指令时,启动信号采集和缓存模块,通过套接字接口将数据从网络接口传输到上位机;接收到停止采集指令时,停止信号采集和网络传输。

图3 系统数据流框图

其中CommandRXTask()中创建连接TCP/IP的套接字,接收到来自LWIPTCP/IPTask()的控制指令,调用函数Data_Receive()采集数据,数据采集结束后将数据包通过DataTxCommand队列传送回CommandRXTask()继而传回上位机。任务中程序流程图如图4所示。

根据系统配置要求ADS1258的转换结果采用直接读取模式,STM32F207与ADS1258的SPI接口兼容,根据数据通信时序图,在前3个SCLK时钟跳变中,数据输入引脚DIN的电平保持不变,即可从DOUT引脚直接读取转换结果[15-16]。ADC转换程序软件流程图如图4所示,在ADC转换程序开始时,首先保持START引脚为低电平,以确保ADS1258是停止状态,然后将片选CS引脚置为高电平,用以复位SPI接口,复位结束后STM32F207将CS置成低电平,通过SPI给ADS1258发送指令,对相应寄存器进行配置,工作模式配置为固定通道输入模式,配置完寄存器并进行数据校验后控制START引脚启动ADC转换,数据转换结束后,DRDY引脚输出为低电平,此时可通过读取DOUT引脚的值,获得相应通道的ADC转换值。

图4 网络传输程序流程图

图5 AD转换程序流程图

3 试验应用

系统在消声水池中完成实测,将声学传感器放入水池中固定水深处,通过上位机发送采集指令,可选“连续测量”或“整点测量”,测量数据通过网络传回上位机。图5为系统信号采集结果值比对,从图中可见系统转换误差控制在50 μv以内,完全满足系统设计要求,图6更是直观给出了AD采集数据前后的比对图,可见系统采集精度高,工作性能稳定。

图6 ADC转换结果比对

4 结论

文中提出了一种通过微处理器STM32F207控制模数转换芯片ADS1258实现声学信号采集并采用LAN8742网络控制器进行数据传输的方案,说明了系统硬件电路和软件设计的思想和方法,并给出ADC转换结果的比对。经消声水池实际测试,该采集系统能够正确采集声学信号,性能稳定,采集精度满足系统设计要求。

图7 采集数据比对图

猜你喜欢

声学寄存器电源
爱的就是这股Hi-Fi味 Davis Acoustics(戴维斯声学)Balthus 70
Lite寄存器模型的设计与实现
Cool Invention炫酷发明
Acoustical Treatment Primer:Diffusion谈谈声学处理中的“扩散”
Acoustical Treatment Primer:Absorption谈谈声学处理中的“吸声”(二)
Acoustical Treatment Primer:Absorption 谈谈声学处理中的“吸声”
分簇结构向量寄存器分配策略研究*
哪一款移动电源充电更多?更快?
阳光电源
高速数模转换器AD9779/AD9788的应用