基于DDS的8路音频相控阵测试信号源的设计与实现

2023-04-01 07:33崔博凯温今凡温怀疆
电子制作 2023年5期
关键词:幅度按键时钟

崔博凯 ,温今凡 ,温怀疆

(1.浙江传媒学院,浙江杭州,310018;2.兰州交通大学,甘肃兰州,730070)

1 绪论

相控扬声器阵列是运用DSP(数字信号处理技术)代替机械偏转措施,相控扬声器阵列主要是由各单元相位的调整,影响空间中声场的指向性函数,使声波波束完成一定角度的偏移,达到指向调控的目的。相控扬声器阵列不仅可以增加扬声器的辐射功率,还可以调整阵列系统声波的辐射范围,大大地提高其指向性。

相控扬声器阵列,如图1所示,在声学工程中,任意一个点声源在与其相距为r处产生的声压,取一次近似后可以表示为:

图1 相控扬声器阵列原理

p(r,t)点声源的声压。

经过推导,得:

其中,p(r,θ)点声源的声压。

阵因子为:

阵因子表达式(3)可以看出,它是影响线阵列中波束形成的主要因素[2~6],它包括:频率、阵元间距、阵元数、空间信号加权方式及阵元间的相位差。其中频率、阵元数(信号路数)、信号加权方式及阵元间的相位差,均对测试信号源提出了较高的具体化的要求,传统信号源测试扬声器阵列时,在信号路数、相位差控制精度和信号加权方式等方面存在着较大的局限性。而基于DDS(直接频率合成器)的信号生成技术以其高分辨率、高稳定性的诸多优势和能够输出多波形(各种调制波形)、多通道、多输出频率的特点,则可以较好地实现多通道、多相位差及不同信号加权方式的输出,使得产生音频相控阵测试信号的解决方案相对简单。

2 系统设计

2.1 DDS基本工作原理

DDS通过频率调节字对系统时钟进行滤波处理的数字分频器。它由相位累加器,相位-幅度变换器,数/模变换器和低通滤波器等组成,如图2所示。

图2 DDS原理框图

(1)相位累加器

DDS合成正弦波的基础是基于信号相位的线性变化。DDS根据频率调节字的位数N,把0°~360°的相位变化平均分成2N等份。假设系统参考时钟为fs;输出频率为fout。在每个时钟周期转过一个角度360°/2N,则可以产生一个频率为fs/2N的相位增量。因此,只需选择恰当的频率调节字M,就可以得到所需的输出频率fout。

由式(4)可以得到DDS的频率分辨率为:

(2)相位幅度转化器

根据相位累加器的输出,可以得到合成fout频率所对应的相位信息,相位幅度转化器可以把累加器输出的数字相位信息变换成相应的幅度值。这个数值以二进制的形式被送入DAC进行数模转换。此相位到幅度的转换通过查表操作完成。

(3)D/A数模变换器

从相位幅度转换器得到的二进制数字信号被送入数/模(D/A)转换器中,变换成模拟信号输出。此处D/A变换器的位数对输出频率的分辨率并没有影响。输出频率的分辨率由频率调节字的位数决定。

2.2 硬件系统整体设计

整个系统的硬件设计框图如图3所示,系统由MCU(STM32F103ZET6以下简称STM32)主控板、电路转接板以及两块DDS(AD9959芯片)电路板组成。用户可通过按键与STM32主控板进行交互,修改输出信号的参数,STM32主控板会输出控制信号;电路转接板为STM32主控板和DDS电路板供电并提供时钟信号,同时将STM32主控板的控制信号分发给两块AD9959电路板,最终由这两块AD9959电路板实现8路信号的输出。

图3 系统硬件框图

2.3 电路设计

2.3.1 AD9959芯片外围电路

AD9959板电路如图4所示,设计时,需将AD9959芯片17脚(DAC_RST)外接一定值电阻Rset,阻值由公式(6)计算得到,一端接地,该电阻用来控制芯片内部DAC的输出电流范围,电流IOUT一般应取8~10mA左右。

图4 AD9959芯片电路图

AD9959芯片每个通道均有2个差分输出端,即IOUT和IOUT,其电流输出方式属于源极开路的输出方式,为了完成电流到电压的转换,设计时需要在每个输出端接一个51Ω的上拉电阻。

2.3.2 AD9959信号输出电路与低通滤波器

AD9959中的各信道的输出虽都有差分输出,但在实际应用中可以采用单端输出,如CHxIOUT。由于DDS采用直接数字合成波形,其输出波形中含有时钟频率的杂散干扰,因此,为有效地消除干扰,一般采用低通滤波器LPF对输出信号进行滤波。

通常在每一块AD9959电路板各路输出都设计了如图5所示的9阶的巴特沃斯低通滤波器。巴特沃斯低通滤波器是一种常用的滤波器,其主要特点为:通频带内的频率响应曲线最大限度平坦,没有纹波,而在阻频带则逐渐下降为零。本滤波器要求截止频率为200MHz,输入和输出阻抗均为50Ω。

图5 200MHz巴特沃斯低通滤波器

2.3.3 STM32F103ZET6芯片外围电路

STM32F103ZET6主控板的硬件电路如图6所示。

图6 STM32F103ZET6电路图

图中STM32电源电压为3.3V;复位方式采用手动复位,即按下复位键,使STM32的RESET引脚得到一个低电平实现复位;系统时钟部分则采用了一个32.768kHz的低速晶振和一个8MHz的高速晶振来为系统提供时钟信号;此外,用于显示的2.8寸LCD液晶显示屏通过17×2的排母座与STM32硬件电路板相连接。

除此之外,STM32的硬件电路还设计了3个独立按键用以实现人机交互部分的各个控制功能。

2.3.4 控制信号转接电路

由于控制两块AD9959芯片的控制信号几乎一致,只有CS片选信号需要区分,为了简化接线和方便代码编写,设计了转接电路,如图7所示。

图7 控制信号转接电路

2.3.5 电源电路

电源电路设计方面,采用两片线性稳压芯片AMS1117-5.0和AMS1117-3.3分别给AD9959电路板、STM32主控板以及有源晶振供电,如图8所示。

图8 整体电源电路

而在AD9959电路板中,由于AD9959芯片核心采用1.8V供电,因此又设计了用一块AX1117-1.8降压稳压芯片为该电路板供电,如图9所示。

图9 AX1117-1.8降压电路

还有一个关键问题就是如何解决两块AD9959芯片间8个通道间的信号同步。为此拟采用外部25MHz晶振为两个AD9959电路板同时提供时钟信号,具体电路如图10所示。

图10 25MHz有源晶振电路

之所以要选择由外部晶振来给两片AD9959提供时钟的方案,是因为AD9959芯片内四个通道共用一个时钟系统,它们的同步是没有问题的;因此在设计的时只要保证多块芯片都在同一个时钟下运行,即所有的输出通道都共用一个时钟系统,从理论上来说就可以保证它们的之间的信号也是同步的,当然这里还要考虑两个芯片间的微小系统误差,这个可在测试中视情况进行必要的补偿。

2.4 系统通信接口及协议

系统中的通信主要是由STM32单片机向AD9959发送命令,从而输出相应的正弦波信号,STM32单片机对于AD9959的控制主要是通过串行总线SDIO和SCLK来实现的。

AD9959有4种串行控制传输模式可供选择,分别 是Single-Bit Serial(2-wire and 3-wire)Modes,2-Bit Serial Mode和4-Bit Serial Mode。AD9959四个输出通道共享寄存器0x03~0x18,这种寄存器地址共享模式,能够使4个通道同时写入控制字。如果使4个通道互相独立操作,可以通过通道选择寄存器(CSR)进行选择。

本系统采用的控制传输模式为Single-Bit Serial 2-wire Mode,在该工作模式下,AD9959的数据传输管脚为SDIO0,所有指令和数据均在SCLK信号的上升沿写入,而在SCLK信号的下降沿读出。STM32单片机对AD9959进行操作的过程主要分为以下两个阶段,如图11所示:第一个阶段称为指令周期,在这个阶段STM32单片机把指令写入到AD9959中;第二个阶段称为数据传送周期,主要传送的是波形参数的控制字。

2.5 系统软件设计

整个软件系统的设计流程图如图12所示。系统上电后首先对各个模块进行初始化操作,然后读取EEPROM中的初始参数值,进入主循环之后,判断AD9959输出的波形参数是否需要修改,如果需要修改则将新的波形参数发送给AD9959,不需要修改则进入下一个环节,即显示GUI界面,之后判断是否有按键按下,如果有则执行交互命令完成相应的动作,如果没有则回到循环的开始进行下一轮操作。

图12 系统软件设计流程图

2.5.1 AD9959波形产生

AD9959芯片输出波形,主要包含两个步骤:首先要将输入的信号波形参数值转换为相应格式的控制字,然后将转换得到的控制字写入AD9959的对应寄存器中。具体的程序设计如下所示。

首先是对输出信号波形的频率进行设定,AD9959内置有4颗 DDS内核,每个内核中都包含有32比特的相位累加和相位——幅度转换器。使用公式(7)可以计算每个DDS的输出信号的频率。

其中,fOUT表示输出信号的频率,FTW为频率控制字,0≤FTW≤231,fs表示系统时钟频率。

为了输出某一频率时,首先将要设置的频率值Freq乘以精度得到频率因子,然后将频率因子分为四个字节得到频率控制字,最后通过选择要输出的通道将频率控制字写入对应的寄存器即可完成频率设置。

其次是对输出信号波形的相位进行设定, DDS芯片可以提供相位偏移,它主要通过通道相位偏移字(CPOW)来完成。CPOW是一种用于储存相位偏差的14比特寄存器。该数值被加入到输出相位累加器中,用于使输出的相位信号发生偏移。每个通道都有各自的相位偏移字寄存器,公式(8)则给出了相位偏差的准确值。

与设置频率的方式一样,当我们需要输出某一相位值时,需要先将要设置的相位参数phase的具体数值乘以精度得到对应的相位因子,然后将得到的相位因子分为两个字节得到相位控制字,最后通过选择要输出的通道将相位控制字写入AD9959芯片的对应寄存器即可完成相位设置。

最后是对输出信号波形的幅度进行设定,与之前设置频率值与相位值得方法一致,首先将要设置的幅度参数的具体数值Ampli乘以精度得到幅度因子,然后将幅度因子转换为相应的幅度控制字,最后通过选择要输出的通道将幅度控制字写入对应的寄存器即可完成幅度设置。

2.5.2 人机交互界面

为了能够直观地控制输出波形的参数,还需要设计一个人机交互界面GUI,如图13所示,其中包含各个通道的频率、相位和幅度等信息。整个系统的人机交互界面有3个,分别负责界面切换、参数选择和参数修改。

图13 GUI界面

为了实现对这些信息的修改,则需要使用的单片机上的按键。由于本次设计选用的单片机板上只有三个按键:KEY_UP、KEY1和KEY0,为了能够在不增加按键个数的情况下实现需要的功能,因此在设计时对每个按键的功能做了如表1所示的定义。

表1 按键功能定义表

通过对每个按键在不同界面的功能复用设置,仅使用单片机板上自带的三个独立按键就实现了包括界面切换、参数选择和参数修改在内的多种功能,具体的程序如下:

当检测到某个按键按下时,首先判断是哪一个按键被按下了,直到是哪一个按键被按下之后就要判断当前所在的界面是哪一个,在知道目前处于哪一个界面之后就能够做出对应的反应以实现使用者对其的控制。

2.5.3 波形参数存储

为了能够用户每次上电使用时都能够使用上次使用时调整好的参数而不是从初始值开始重新调整,在系统中还设计了能够存储信号发生器参数到EEPROM芯片AT24C02的模块,具体的程序如下:

首先定义了一个数据表,用来存储各个通道的频率、相位、幅度信息和其他一些要存储的信息。

其次,在存储之前需要将数据表中的值更新为当前最新的参数信息。

最后调用EEPROM芯片AT24C02的存储函数将更新后的数据表存储到EEPROM中。

3 系统测试

3.1 相位精度测试

将制作好的信号发生器通电之后首先可以看到LCD显示了各个通道的频率、相位以及幅度信息,如图14所示。

图14 初始UI界面效果图

将其输出口通过同轴线连接到示波器则上可以观察到各 通道输出的波形,可以看到在相位同为0°的情况下,各通道的波形基本重叠在了一起,表示各个通道基本上是同步的。如图15所示。

图15 示波器观察初始波形

经过测试,当设置各个通道相位都为0°时,各通道输出波形的相位均为0°,没有任何偏差。表2则显示的是在频率为1000Hz,幅度为200mV的情况下各通道相位设计值与实测值的对比。可以看到,在设计相位小于15°时,误差在8%左右;设计相位在15°~30°之间时,误差在1%~2%左右;设计相位大于30°后,误差均在1%以下。

表2 相位参数测试表(Fre = 1000 Hz Amp = 200 mV)

6 30 30.40 1.33 90 90.00 0.00 CH 设计值/°实测值/° 误差/% 设计值/° 实测值/° 误差/%0 0 0.00 0.00 0 0.00 0.00 1 30 30.60 2.00 60 59.55 -0.75 2 60 59.55 -0.75 120 120.20 0.17 3 90 90.00 0.00 180 180.00 0.00 4 120 120.40 0.33 240 239.50 -0.21 5 150 150.15 0.10 300 300.60 0.20 6 180 180.00 0.00 360 360.00 0.00

3.2 频率精度测试

通过按下按键KEY0、KEY1和KEY_UP按键调整不同的频率值,测得的频率数据如表3所示,可以看到,该信号源输出信号的频率与设置频率几乎完全一致,只在最高频率处产生了0.16%的误差。

表3 频率参数测试表(Pha = 0° Amp = 200 mV)

3.3 加权幅度测试

本系统还对信号输出设置了7种模式的7路信号加权方式,分别是:均匀加权、余弦加权、升余弦加权、blackman加权、Kaiser加权、汉明窗加权、比切雪夫加权以及泰勒加权。初始设定为均匀加权。

在均匀加权情况下,设定200mV的幅度值,输出信号幅度为202mV,误差在1%左右。表4则展示了在频率为1000Hz,相位为0°,余弦加权和比切雪夫加权的情况下各通道信号幅度设定值与实测值的对比。可以看到,该7路信号输出的信号幅度误差均在1%以下。

表4 幅度参数测试表(Fre = 1000 Hz Pha = 0°)

4 结语

本次设计的8路相控阵号源(实际测试采用了7路)采用STM32F103ZET6作为核心控制器实现了对AD9959的操作控制,主要可以实现以下几种功能:

(1)输出频率在200~12800Hz之间可变,步长10Hz;

(2)每路信号输出相位差成等差数列,步长5°;

(3)每路信号输出幅度均可独立在0~500mV之间可变,步长1mV;

(4)各路信号可以一定的方式组输出,有均匀加权、余弦加权、升余弦加权、blackman加权、Kaiser加权、汉明窗加权、比切雪夫加权以及泰勒加权等8种模式可供选择。从而更好地适应音频相控阵扬声器的测量。

本信号源在音频相控阵扬声器的实际测量中的表现良好,图16为测试中的具体应用连接图,图中显示信号源连接相控阵扬声器阵列,在有一定隔音和吸音空间里绘制一个一定半径圆弧,并标注上刻度,在刻度线上放置CLIO系统的标准测试话筒,便可对相控阵扬声器阵列的声场偏转情况进行测试,大大提高了测量效率和准确度,同时也减轻了测量的劳动强度,因此本装置是具有一定的应用前景的。

图16 多路移相信号源在测试中的连接图

猜你喜欢
幅度按键时钟
单次止损幅度对组合盈亏的影响
别样的“时钟”
基于有限状态机的按键检测程序设计
古代的时钟
微波超宽带高速数控幅度调节器研制
基于ANSYS的四连杆臂架系统全幅度应力分析
有趣的时钟
一种多方向导光按键结构设计
时钟会开“花”
2014年中期预增(降)幅度最大的50家上市公司