知名厂商热门MCU芯片应用(一):ADSP系列

嵌入式设计应用

129人已加入

描述

  ADSP——美国模拟器件公司(ADI : Analog Device Instrument)生产的数字信号处理芯片(DSP:Digital Singal Processor),代表系列有 ADSP Sharc 211xx (低端领域),ADSP TigerSharc 101,201(高端领域),ADSP Blackfin 系列(消费电子领域)。

  ADSP与另外一个著名的德州仪器(TI: Texas Instrument)生产的芯片特点相比较,具有浮点运算强,SIMD(单指令多数据)编程的优势, 比较新的Blackfin系列比同一级别TI产品功耗低。缺点是ADSP不如TI的C语言编译优化好.TI已经普及了C语言的编程,而AD芯片的性能发挥比较依赖程序员的编程水平.ADSP的Linkport数据传输能力强是一大特色,但是使用起来不够稳定,调试难度大。

  ADI提供的Visual DSP ++2.0, 3.0, 4.0, 4.5 编程环境,可以支持软件人员开发调试。下面是电子发烧友网编辑推荐的几个关于ADSP系列芯片的一些典型应用。

  一、一种基于ADSP-2188M的多传感器数据采集系统

  摘 要: 在移动智能体的研制中,能够实时地探测周围环境信息的传感器系统是至关重要的。本文介绍了一种以DSP-ADSP-2188M为核心的传感器数据采集系统的软、硬件设计和工作原理,以及与上位机通信的设计和实现过程。该系统可以应用于移动机器人、智能轮椅、自动制导车辆等移动智能系统中。

  引言

  在自主移动机器人系统、智能轮椅、自动制导车辆等智能移动系统中,需要实时地采集未知和不确定环境中的信息,以完成避障、环境地图绘制、导航、定位等运作,然后进行路径规划等任务。这些任务必须依靠能实时感知环境信息的传感器系统来完成。为了在复杂环境中获取有效的信息,这些系统往往安装有种类各异的传感器。目前,常用的有视觉、激光、红外、超声等传感器。激光传感器价格昂贵,而且在室内的结构化环境中存在镜面反射的问题。同时,超声波传感器以其性价比高,硬件实现简单等优点,被广泛地应用到感知系统中。同时,超声传感器也面临镜面反射的问题,方向性上也有欠缺。所以,在众多传感器采集系统中还实现了红外传感器和相位敏感器件(PSD)的数据采集。

  随着微电子技术和计算机集成芯片制造技术的不断发展和成熟,数字信号处理芯片(DSP)由于其快速的计算能力,不仅广泛应用于通信与视频信号处理,也逐渐应用在各种高级的控制系统中。AD公司的ADSP-21xx系列提供了低成本、低功耗、高性能的处理能力和解决方案。其中的ADSP-2188M指令执行速度高达75MIPS,加上独立的算术逻辑单元,拥有强大的数字信号处理能力。此外,大容量的RAM被集成到该芯片内,以形成真正的单芯片控制器,可以极大地简化外围电路设计,降低系统成本和系统复杂度,也大大提高了数据的存储处理能力。我们设计的多传感器数据采集系统以ADSP-2188M为核心控制器。本文着重介绍该系统的软、硬件设计和工作原理,并给出实验结果。

数字信号处理

图1  多传感器数据采集系统方框图
 
数字信号处理
图2  超声波接收电路
数字信号处理
图3 系统软件流程图

  系统的硬件设计

  整个多传感器数据采集系统的结构如图1所示。从图中可以看出,系统由DSP主控制器、超声波环境探测电路、红外传感器数据采集电路、PSD数据采集电路和通信模块等部分组成。系统的核心为ADSP 2188M,主要完成对各种传感器的控制,信号的发射与接收,信息的融合及与上位PC主机进行通讯等功能。由于系统对传感器的信息已经进行了集中的预处理,与PC上位机进行通信的数据量将得到很大的降低,RS232串口通信方式已经能够满足系统在实时性方面的要求。

  超声波环境探测电路

  超声波探测电路主要由16路超声波发生电路和超声波接收电路等模块组成。移动智能系统在运动过程中需要实时地了解环境信息,常常根据实际需要将超声传感器均匀地布置在系统四周,从而构成环境探测系统。超声测距的原理较简单,一般采用渡越时间法,即:

  D=Ct / 2 (1)

  其中D为移动机器人与被测障碍物之间的距离,C为声波在介质中的传输速率,t为渡越时间,声波在空气中传输速率为:

  (2)

  其中,T为绝对温度。在不要求测距精度很高的情况下,一般可以认为C为常数。测量超声波从发射到返回的时间间隔t,然后根据式(1)计算距离。

  超声波发射部分主要由激励信号发生电路,缓冲升压放大和超声波换能器等环节构成。超声波发射过程是:首先由DSP控制多路模拟开关ADG438F,选择性地启动16路发射电路中的4路。然后由ADSP2188M的一个I/O口产生脉宽为25μs的40kHz的调制脉冲波,通过缓冲放大器7406,再经变压器升压放大电路产生幅度达60V的瞬间高能激励信号,同时激发4路超声换能器产生超声波信号。ADG438F的最大开启时间为250ns,不会影响系统的实时性。

  超声波的接收与发射必须协调一致工作,才能保证信号准确灵敏的接收。接收部分主要由接收换能器、放大滤波、整形触发输出等环节组成,如图2所示。由于超声波在传播中,其能量会随传输距离的增大而减小,从远距离障碍物反射的回波信号一般比较弱(为mv级),所以需要经过多级信号放大处理。本系统采用了三级放大处理,将信号放大约150万倍,然后经整形电路输出。4路超声传感器接收电路将经过整形以后的信号作为中断申请信号,通过多路模拟开关再接入ADSP-2188M的外部中断引脚,触发DSP的外部中断。

  实验测得该超声传感器的灵敏范围大约为30度,测距范围为0.30~3m,重复测距精度在1%以内。

  红外传感器数据采集电路

  红外传感器数据采集模块主要由8路红外传感器、光电隔离电路和电子开关组成。红外传感器的探测距离一般比较短,通常被用作近距离障碍目标的识别,可以在一定程度上弥补超声传感器盲区特性的不足。其输出为0或1的开关量。红外传感器一般在静态时工作电流为25mA左右,而在动态工作时可达60mA。因而,红外传感器阵列的使用将会对系统的供电系统带来很大的负担。为此,在红外传感器数据采集模块中引入三极管的电子开关,控制红外传感器的供电电源,当需要采集红外传感器信息时,才接通红外传感器的电源。经过实验测定,该电子开关的反应速度达到5.6μs,对系统的实时性几乎没有影响。

  8路红外传感器的数据通过光电耦合电路直接连接到ADSP2188M的高8位数据线上,实现并行采集。

  PSD数据采集电路

  PSD数据采集电路由4个PSD传感器组成,用于目标距离的检测。它的工作原理就是通过测量发射和反射红外光之间的相位差来测量反射物体的距离,被测物体的颜色也不会影响其测距精度。PSD可以弥补超声传感器方向性差,测量响应时间较长等缺点。我们使用的是Sharp公司的GP2Y0A02YK红外测距器件。该器件能够把相位差的变化转化为输出电压的变化,可以连续的读出距离。测量范围为20~150cm,输出电压范围0~2.7V。

  系统的软件描述

  系统软件主要由主循环模块、超声回波中断接收模块、通讯模块等组成。具体流程图如图3所示。

  隙钔獾氖奔淅醋槌擅で?邮薄Q邮币院缶涂梢钥?敉獠恐卸希?⒀?返却©超声回波信号。最后,不管有没有接收到回波,应该进行适当的延时,避免在室内工作环境下超声波的余波效应。

  实验结果

  首先,我们对多传感器数据采集系统中的超声传感器和PSD的测距性能进行了测试:让该系统的不同传感器对同一个目标进行测距,超声传感器的实际结果如表1所示。试验证明两种传感器的重复测量精度均在1%之内,两者之间的误差也不超过2%,精度完全能够满足一般移动智能系统的要求。

  同时,为了验证整个多传感器数据采集系统的实时性,我们计算了系统的主循环模块在最差条件下(即所有的超声传感器都没有探测到回波信号),所用的时间约为35.33ms。也就是说,系统数据的更新频率能够达到30Hz左右,证明系统有良好的实时性。

  结语

  本文研究了一种高性能、低成本、低功耗多传感器数据采集系统的硬、软件实现和工作原理。系统以高性能的数字信号处理器ADSP2188M为核心处理器,集中实现多个红外、超声和PSD传感器数据的采集和传输。实验验证了硬件系统的可靠性、实时性和算法的有效性。

  二、基于ADSP-21160的液晶驱动电路设计及系统软件实现

  薄膜晶体管液晶显示器(TFT-LCD)具有重量轻、平板化、低功耗、无辐射、显示品质优良等特点,其应用领域正在逐步扩大,已经从音像制品、笔记本电脑等显示器发展到台式计算机、工程工作站(EWS)用监视器。对液晶显示器的要求也正在向高分辨率、高彩色化发展。

  由于CRT显示器和液晶屏具有不同的显示特性,两者的显示信号参数也不同,因此在计算机(或MCU)和液晶屏之间设计液晶显示器的驱动电路是必需的,其主要功能是通过调制输出到LCD电极上的电位信号、峰值、频率等参数来建立交流驱动电场。

  本文实现了将VGA接口信号转换到模拟液晶屏上显示的驱动电路,采用ADI公司的高性能DSP芯片ADSP-21160来实现驱动电路的主要功能。

  硬件电路设计

  AD9883A 是高性能的三通道视频ADC可以同时实现对RGB三色信号的实时采样。系统采用32位浮点芯片ADSP-21160来处理数据,能实 时完成伽玛校正、时基校正、图像优化等处理,且满足了系统的各项性能需求。ADSP-21160有6个独立的高速8位并行链路口,分别连接ADSP- 21160前端的模数转换芯片AD9883A和后端的数模转换芯片ADV7125。ADSP-21160具有超级哈佛结构,支持单指令多操作数 (SIMD)模式,采用高效的汇编语言编程能实现对视频信号的实时处理,不会因为处理数据时间长而出现延迟。

  系统硬件原理框图如图1所示。系统采用不同的链路口完成输入和输出,可以避免采用总线可能产生的通道冲突。模拟视频信号由AD9883A完成模数转 换。AD9883A是个三通道的ADC,因此系统可以完成单色的视频信号处理,也可以完成彩色的视频信号处理。采样所得视频数字信号经链路口输入到 ADSP-21160,完成处理后由不同的链路口输出到ADV7125,完成数模转换。ADV7125是三通道的DAC,同样也可以用于处理彩色信号。输 出视频信号到灰度电压产生电路,得到驱动液晶屏所需要的驱动电压。ADSP-21160还有通用可编程I/O标志脚,可用于接受外部控制信号,给系统及其 模块发送控制信息,以使整个系统稳定有序地工作。例如,ADSP-21160为灰度电压产生电路和液晶屏提供必要的控制信号。另外,系统还设置了一些 LED灯,用于直观的指示系统硬件及DSP内部程序各模块的工作状态。

  

数字信号处理
图1 系统硬件原理框图

  本设计采用从闪存引导的方式加载DSP的程序文件,闪存具有很高的性价比,体积小,功耗低。由于本系统中的闪存既要存储DSP程序,又要保存对应于 不同的伽玛值的查找表数据以及部分预设的显示数据,故选择ST公司的容量较大的M29W641DL,既能保存程序代码,又能保存必要的数据信息。

  图2为DSP与闪存的接口电路。因为采用8位闪存引导方式,所以ADSP-21160地址线应使用A20~A0,数据线为D39~32,读、写和片选信号分别接到闪存相应引脚上。

  

数字信号处理
图2 DSP和Flash的接口电路

  系统功能及实现

  本设计采用ADSP-21160完成伽玛校正、时基校正、时钟发生器、图像优化和控制信号的产生等功能。

  伽玛校正原理

  在 LCD中,驱动IC/LSI的DAC图像数据信号线性变化,而液晶的电光特性 是非线性,所以要调节对液晶所加的外加电压,使其满足液晶显示亮度的线性,即伽玛(γ)校正。γ校正是一个实现图像能够尽可能真 实地反映原物体或原图像视觉信息的重要过程。利用查找表来补偿液晶电光特性的γ校正方法能使液晶显示系统具有理想的传输函数。未校正时液晶显 示系统的输入输出曲线呈S形。伽玛表的作用就是通过对ADC进来的信号进行反S形的非线性变换,最终使液晶显示系统的输入输出曲线满足实际要求。

  LCD的γ校正图形如图3所示,左图是LCD的电光特性曲线图,右图是LCD亮度特性曲线和电压的模数转换图。

  

数字信号处理
图3 LCD的γ校正示意图

  伽玛校正的实现

  本文采用较科学的γ校正处理技术,对数字三基色视频信号分别进行数字γ校正(也可以对模拟三基色视频信号分别进行γ校正)。在完成γ校正的同时,并不损失灰度层次,使全彩色显示屏图像更鲜艳,更逼真,更清晰。

  某 单色光γ调整过程如图4所示,其他二色与此相同。以单色光γ调整为例:ADSP-21160 首先根据外部提供的一组控制信号,进行第一次查表,得到γ调整系数(γ值)。然后根据该γ值和输入的显示数据进行第 二次查表,得到经校正后的显示数据。第一次查表的γ值是通过外部的控制信号输入到控制模块进行第一次查表得到的。8位显示数据信号可查表数字 0~255种灰度级显示数据(γ校正后)。

  数字信号处理
图4 单色光γ调整的过程

  图像优化

  为了提高图像质量,ADSP-21160内部还设计了图像效果优化及特技模块,许多 在模拟处理中无法进行的工作可以在数字处理中进行,例如,二维数字滤波、轮廓校正、细节补偿频率微调、准确的彩色矩阵(线性矩阵电路)、黑斑校正、g校 正、孔阑校正、增益调整、黑电平控制及杂散光补偿、对比度调节等,这些处理都提高了图像质量。

  数字特技是对视频信号本身进行尺寸、位置变 化和亮、色信号变化的数字化处理,它能使图像变成各种形状,在屏幕上任意放缩、旋转等,这些是模拟特技无法实现的。还可以设计滤波器来滤除一些干扰信号和 噪声信号等,使图像的清晰度更高,更好地再现原始图像。所有的信号和数据都是存储在DSP内部,由它内部产生的时钟模块和控制模块实现的。

  时基校正及系统控制

  由于ADSP-21160内部各个模块的功能和处理时间不同,各模块之间 存在一定延时,故需要进行数字时基校正,使存储器最终输出的数据能严格对齐,而不会出现信息的重叠或不连续。数字时基校正主要用于校正视频信号中的行、场 同步信号的时基误差。首先,将被校正的信号以它的时基信号为基准写入存储器,然后,以TFT-LCD的时基信号为基准读出,即可得到时基误差较小的视频信 号。同时它还附加了其他功能,可以对视频信号的色度、亮度、饱和度进行调节,同时对行、场相位、负载波相位进行调节,并具有时钟台标的功能。

  控 制模块主要负责控制时序驱动逻辑电路以管理和操作各功能模块,如显示数据存储器的管理和操作,负责将显示数据和指令参数传输到位,负责将参数寄存器的内容 转换成相应的显示功能逻辑。内部的信号发生器产生控制信号及地址,根据水平和垂直显示及消隐计数器的值产生控制信号。此外,它还可以接收外部控制信号,以 实现人机交互,从而使该电路的功能更加强大,更加灵活。

  此外,ADSP21160的内部还设计了I2C总线控制模块,模拟I2C总线的工作,为外部的具有I2C接口的器件提供SCLK(串行时钟信号)和SDA(双向串行数据信号)。模拟I2C工作状态如图5和图6所示。

  数字信号处理
图5 串行端口读/写时序

数字信号处理
图6串行接口-典型的字节传送

  系统软件实现

  在软件设计如图7所示,采用Matlab软件计算出校正值,并以查找表的文件形式存储,供时序的调用。系统上电开始,首先要完成ADSP- 21160的一系列寄存器的设置,以使DSP能正确有效地工作。当ADSP-21160接收到有效的视频信号以后,根据外部控制信息确定γ 值。为适应不同TFT-LCD屏对视频信号的显示,系统可以通过调整γ值,以调节显示效果到最佳。再如图4所示,对先前预存的文件进行查表, 得到所需的矫正后的值,然后暂存等待下一步处理。系统还可以根据视频信号特点和用户需要完成一些图像的优化和特技,如二维数字滤波、轮廓校正、增益调整、 对比度调节等。这些操作可由用户需求选择性使用。利用ADSP-21160还可以实现图像翻转、停滞等特技。最后进行数字时基校正,主要用于校正视频信号 中的行、场同步信号的时基误差,使存储器最终输出的数据能严格对齐,而不会出现信息的重叠或不连续。除了以上所述的主要功能以外,ADSP-21160还 根据时序控制信号,为灰度电压产生电路和TFT-LCD屏提供必要的控制信号。另外,ADSP-21160还能设置驱动通用I/O脚配置的LED灯,显示 系统工作状态。

  数字信号处理
图7 软件流程图

  结束语

  本文介绍了基于ADSP-21160的液晶驱动电路设计。该驱动电路能完成伽马校正、图像优化及时基校正等功能,并能提供具有足够驱动能力的时序和 逻辑控制信号,能驱动大部分的TFT-LCD。用ADSP-21160设计驱动电路实时性好、通用性强、速度快且高效;而且还能在ADSP-21160中 嵌入其他功能模块控制,增强系统的功能。这样不仅充分利用了ADSP-21160资源,又节省了外部资源,简化了硬件电路的设计。作者将SONY的 LCX029CPT显示屏应用在本文所设计的驱动电路上,显示出质量很高的图像,因此该设计满足驱动液晶显示器的要求。

  三、基于CY7C68013A和FPGA的ADSP-TS101扩展USB接口设计

  ADI公司的DSP器件(ADSP-TS101)具有浮点实时处理能力强、并行性好等优点,从而广泛被弹载信号处理系统选用。其作为弹载主处理器,在导弹的系统试验中,需要利用上位机对其中的大数据量的软件变量进行实时监控和记录,这就需要一个上行传输给上位机的高速通信接口,数据上行的数据率需要大于6 MB/s。同时这个通信接口还需具有双向特性,通过数据下行可实现在线程序加载与烧写。这样的通信接口,还需具备设备连接简单、通用性强等特性,并能实现远程(大于3m)数据传输。

  ADSP-TS101自身的外总线接口和链路口(Linkport接口),虽速度很快,但连接复杂,难以长线传输,并不具备上述需求特征。可以通过在DSP的Linkport总线接口上增加FPGA实现的适配电路,扩展USB 2.0接口,实现上述应用需求。下文将介绍具体的实现方案。

  1 系统总体方案

  系统实现的总体方案如图1所示。

  

数字信号处理

  在本方案中,USB接口芯片选用Cypress公司的CY7C68013A。该芯片是Cypress公司FX2系列USB 2.0集成微控制器之一。集成了USB 2.0收发器、SIE、增强8051微控制器和GPIF,是一种优秀的高速USB外设控制器。内置的8051微控制器独立于USB数据通道,由SIE实现大部分USB 1.1和USB 2.0协议;USB FIFO和外部从FIFO映射到相同的8个512 B RAM模块,实现内部传输和外部传输的无缝连接,可以较低的代价获得较高的带宽;8.5 KB内部RAM空间,可运行较为复杂的固件,实现软件对硬件的配置。GPIF是由用户可编程有限状态机驱动的柔性8/16位并行口,可编程GPIF向量组成一个GPIF波形,匹配受控接口的时序。

  ADSP-TS101作为弹载主DSP芯片,含4个链路口,每个链路口可在时钟双沿以8位进行双向数据传输,速率高达250 MB/s。通过该接口,DSP每个处理帧将预观测的变量结果以DMA的方式打包向上位机发送。

  FPGA实现ADSP-TS101的Linkport接口与CY7C68013A之间的双向数据缓冲和接口协议转换。考虑到CY7C68013A中的 FIFO容量较DSP的一个处理帧预发送或接收的数据量较小,故在FPGA中设置上行和下行各一个大容量FIFO,用于数据缓冲,以减少对DSP中并行流水运行的程序的打扰。这里,由于DSP链路口的瞬时数据率远高于USB芯片的传输速率(理论上限为60 MB/s),故FIFO的DSP端口的数据传输为:一个处理帧只操作一次,而USB芯片端则分成多次操作。

  限于篇幅,下文将重点对传输数据率要求高、设计难度大的上行通道的设计进行详细描述。

  FPGA需要模拟Linkport口的接口时序,其与DSP的硬件连接关系图如图2所示。

  

数字信号处理

  Link协议通过8位并行数据总线完成双向数据传输,与数据总线配合的还有相应的时钟信号线LxCLKIN,LxCLKOUT。

  2.1 Linkport口的传输协议

  Linkport口传输数据时,每8个周期传送一个4字组(16 B),在时钟的上升沿和下降沿均传送一个字节。在传送过程中,发送端将检测接收端的LxCLKOUT信号,仅当接收端将它的LxCLKOUT置为高时,即接收端处于接收方式,且有空闲的缓冲时,发送端才可以启动下一个传送过程。

  传送启动过程如图3所示,发送端驱动信号LxCLKOUT为低电平,以此向接收端发出令牌请求,发出令牌请求后,发送端等待6个周期,并验证LxCLKIN是否依旧为高,若是则启动传送过程。传送过程启动一个周期以后,接收端将发送端的LxCLKIN驱动为低,以此作为连接测试。若接收完当前4字组后接收端无法再接收另外的4字组,则接收端保持LxCLKIN为低。这种情况下,缓冲空闲后LxCLKIN信号被禁止。若缓冲为空,则接收端将置LxCLKIN为高电平。

数字信号处理

  作为同步信号,LxCLKOUT信号由发送端驱动。数据在LxCLKOUT的上升沿和下降沿处锁存到接收缓冲中,发送和接收缓冲都是128b宽。 LxCLKIN信号由接收端驱动,发往发送端,它通常用作“等待”指示信号,但LxCLKIN信号也可以用作连接测试信号,保证接收端能正确地接收当前传送数据。

  当LxCLKIN信号用于等待指示信号时,接收端驱动LxCLKIN信号为低电平。若LxCLKIN信号保持低电平状态,则发送端可以[完成当前的4字组传送,但无法启动下一个垂字组传送。若还有其余的数据需要传送,发送端需将LxCLKOUT置低,并等待接收端将 LxCLKIN驱动为高电平。如果在第12个时钟沿到来之前LxCLKIN变为高电平,则紧跟着传送的将是新的4字组。

  2.2 FPGA内的Linkport口逻辑设计

  由于Link协议采用双时钟沿传输数据,而同步FPGA系统中,一般只采用单一时钟的上升沿完成操作,因此需要将FPGA系统工作频率SCLK设定为Link时钟的2倍。然后将该时钟的两分频输出作为LxCLKOUT信号,有效数据则在SCLK的上升沿更新。

  FPGA中的Linkport口接口模块电路与ADSP-TS101的Linkport口完全兼容,且采用了双向双倍数据传输DDR技术,能实现双向双倍的数据传输。FPGA中的Link口接口模块电路如图4所示。

  

数字信号处理

  图5是FPGA内实现DSP数据上行的Linkport口接收时序仿真图(基于Modelsim仿真软件)。

  

数字信号处理

  Link口协议的一大特点就是在收发数据时可以选择是否需要校验位VERE比特,VERE的启用或关闭可以通过ADSP-TS101中的寄存器来设置,也可以通过FPGA模块中的Verein信号置高或置低来设置。该设计在FPGA中设置VERE信号的启用或关闭。当VERE启用后,FPGA模块中的输出信号Rx_Vere_Bad用于表征最后接收的128 b数据是否正确。由于使用VERE有两个好处,一是能保证数据的完整性;二是能减小在两个时钟不严格一致的系统中传输数据时产生数据重叠的可能性。因而在设计中采用了带数据校验的传输方式。

  3.1 传输方式的确定

  CY7C68013A芯片具有GPIF模式和从属FIFO(Slave FIFO)模式两种接口工作模式。在本设计中,USB数据传输存储模块负责完成存储算法产生的大量数据的高速传输,由于不涉及到对外部电路的控制,所以不选用GPIF模式,而选择Slave FIFO模式进行连接。在数据传输时,用Slave FIFO接口模式,批量传输,自动输入(AUTOIN)方式,使用EP6端口作为上行输入缓冲区。CY7C68013A的,Slave FIFO接口模式如图6所示。

数字信号处理

 

  3.2 EZ-USB FX2时序设计

  在本设计的FPGA中,设计了如图6的外部主控制器的功能逻辑。由于DSP端Linkport口数据传输速率很高,而在USB端的速率可能无法跟 Linkport口的数据率相匹配,故在FPGA中开辟一个2KB的FIFO,经由Linkport上传的数据首先传送到FIFO中,之后再经由USB口上传至主机。为了保证数据传输的完整性,设计USB的数据传输速率为DSP Link口的1/8。在此,对FPGA逻辑应用Modelsim软件进行了仿真,仿真结果如图7所示。

数字信号处理

  图7中,在LxCLKIN时钟的上升沿和下降沿将DSP_Data中的数据写入到FPGA的FIFO中,然后再把FIFO中的数据从数据线 USB_Data中输出给EZ-USB FX2的FD数据线,最后经由USB传送给主机。图中USB_Data的数据率明显只有DSP_Data数据率的1/8,是符合设计要求的。

  

数字信号处理

  在上传传输时,采用异步自动输入方式。EZ-USB FX2芯片FIFO异步写时序如图8所示。根据此时序,在本设计中,FPGA输出的USB_Data信号提供给USB的FD数据线,FPGA输出的 USB_SLWR提供给USB的SLWR,USB端便能在SLWR的下降沿把数据线FD中的数据写入到FX2芯片FIFO中,并由USB传送给主机。

  4 结语

  本文重点对DSP扩展USB接口的数据上行通道的硬件设计进行了详细论述。本系统经测试验证,通过该扩展USB接口,配合定制的上位机软件,DSP数据上传PC机的速率平均达到8 MB/s以上,连接可靠稳定,满足对DSP变量实时监测的数据率需求,同时可通过此接口完成程序的加载与烧写功能。仅需一台带USB接口的PC机,就能完成弹载DSP系统的实时测试与在线程序加载,简捷、通用、方便,具有显著的工程实用价值。

四、基于SigmaDSP的车载音响噪音降低方案

 

  ADAU1401是一款完整的单芯片音频系统,包括完全可编程的28/56位音频DSP、模数转换器(ADC)、数模转换器(DAC)及类似微控制器的控制接口。信号处理包括均衡、低音增强、多频段动态处理、延迟补偿、扬声器补偿和立体声声场加宽。这种处理技术可与高端演播室设备的效果相媲美,能够弥补由于扬声器、功放和听音环境的实际限制所引起的失真,从而明显改善音质。

  借助方便易用的SigmaStudio开发工具,用户可以使用不同的功能模块以图形化的方式配置信号处理流程, 例如双二阶滤波器、动态处理器、电平控制和GPIO接口控制等模块。

  噪底

  与便携式设备不同,车载音响系统配有高功率放大器,每个功放能够提供高达40 W-50 W功率,每辆汽车至少有四个扬声器。由于功率较大, 噪底很容易被放大,使得人耳在安静的环境下就能感受到。例如,假设扬声器灵敏度约为90 dB/W,则4 Ω扬声器中的1 mV rms噪声可以产生大约24 dB的声压级(SPL),这一水平噪音人耳在安静环境下就能够感受到。可能的噪声源有很多, 如图1所示,主要噪声源包括电源噪声(VG)、滤波器/缓冲器噪声(VF)以及电源接地布局不当引起的噪声VE。VO是来自处理器的音频信号,VIN是扬声器功率放大器的音频输入信号。

  

数字信号处理

  图1. 车载音响系统的噪声源示例

  电源开关期间的爆音:车载音频功率放大器一般采用12 V单电源供电,而DSP则需要使用低压电源(例如3.3 V),滤波器/缓冲器可能采用双电源供电(例如±9 V)。在以不同的电源电压工作的各部分电路之间,必须使用耦合电容来提供信号隔离。在电源开/关期间,电容以极快的速度充电/放电,产生的电压跳变沿着信号链传播,最终导致扬声器发出爆音。图2显示了这一过程。

  

数字信号处理

  图2. 扬声器产生爆音的原理

  虽然知道噪底和爆音的来源,而且也努力采用良好的电路设计和布局布线技术,以及选择噪声更低的优良器件来降低信号源处的噪声,但在设计过程中仍然可能出现许多不确定性。汽车多媒体系统的设计人员必须处理许多复杂问题,因此必须具备高水平的模拟/混合信号设计技能。即便如此,原型产品的性能仍有可能与原来的预期不符。例如,1 mV rms的噪声水平会带来巨大挑战。至于爆音,现有解决方案使用MCU来控制电源开关期间功率放大器的操作顺序,但当MCU距离功率放大器较远时,布局布线和电磁干扰(EMI)会构成潜在问题。

  功耗

  随着车载电子设备越来越多,功耗问题变得日趋严重。例如,如果音频功率放大器的静态电流达到200 mA,则采用12 V电源时,静态功耗就高达2.4 W。如果有一种方法能检测到没有输入信号或信号足够小,进而关闭功率放大器,那么在已开机但不需要扬声器发出声音的时候,就可以节省不少功耗。

  将车载音响系统的噪声和功耗降至最低

  利用SigmaDSP技术,就可以提供这样一种方法, 可以减小系统噪声和功耗,同时不增加硬件成本。图3是一个4扬声器车载音响系统的框图,其中ADAU1401 SigmaDSP处理器用作音频后处理器。除了采样、转换、音频信号数字处理和生成额外的扬声器通道以外,SigmaDSP处理器还具有通用输入/输出 (GPIO)引脚可用于外部控制。微控制器(MCU)通过I2C接口与SigmaDSP处理器进行通信,模拟输出驱动一个采用精密运算放大器 ADA4075-2的低通滤波器/缓冲器级。

  

数字信号处理

  图3. 四扬声器车载音响系统

  SigmaDSP处理器与功率放大器之间的红色信号线控制功率放大器的静音/待机引脚。在正常默认工作模式下,开集GPIO1引脚通过10 kΩ上拉电阻设置为高电平(图中未标注)。ADAU1401具有均方根信号检测功能,可确定是否存在输入信号。当没有输入信号时,GPIO1变为低电平,功率放大器置于静音/待机模式,因而扬声器没有噪声输出,同时功放的待机功耗也很低。当检测到高于预定阈值(例如–45 dB)的输入信号时,GPIO1变为高电平,功率放大器正常工作。这时虽然噪底仍然存在,但由于信号的高信噪比(SNR)将其屏蔽,使它不易被人耳感知到。

  电源开关期间,SigmaDSP处理器(而不是MCU)通过响应MCU的命令直接控制功率放大器的静音/待机。例如,在电源接通期间,来自MCU的控制信号通过I2C接口设置SigmaDSP处理器的GPIO1,使之保持低电平(静音),直到预定的电容充电过程完成,然后MCU将 GPIO1设置为高电平,由此消除启动瞬变所引起的爆音。关闭电源时,GPIO立即变为低电平,使功率放大器处于静音/待机状态,从而消除电源切断时产生的爆音。将功率放大器置于SigmaDSP处理器而不是MCU的直接控制之下的原因是SigmaDSP处理器通常距离功率放大器更近,因此布局布线和 EMI控制也更容易实现。

  如上所述,利用SigmaStudio软件算法可以测量输入信号的均方根电平。使用SigmaStudio图形开发工具,很容易设置均方根检测模块,并用它来控制GPIO状态,如图4的范例所示。

数字信号处理

 

  图4. SigmaStudio均方根检测、GPIO控制和压限器电路图

  均方根检测功能利用均方根算法单元和逻辑单元实现。信号阈值必须具有迟滞功能,用以消除静音功能响应小变化而产生的震颤。例如RMS1阈值设置为–45 dB,RMS2阈值设置为–69 dB。当输入信号高于–45 dB时,GPIO1为高电平。当输入信号低于–69 dB时,GPIO1为低电平。当输入信号位于这两个阈值之间时,GPIO1输出信号保持先前所处的状态(参见图5)。

  图4还显示了用以进一步降低输出噪声的压限器功能。例如,当输入信号低于–75 dB时,扬声器系统的输出信号将会衰减到–100 dB,从而也降低了系统噪底。

  

数字信号处理

  图5. RMS阈值设置以及输入与输出之间的关系

  总结

  噪声和功耗是车载音响系统设计面临的巨大挑战。ADI公司的SigmaDSP处理器已广泛应用于车载音响系统的数字音频后处理,若利用其均方根检测和 GPIO控制功能来显着降低噪声和功耗,则能进一步发挥更大作用。SigmaStudio图形化开发工具支持以图形方式设置各种功能,而不需要编写代码,令设计工作倍加简单。此外,由于功率放大器模块通常离SigmaDSP处理器比离MCU更近,因此用SigmaDSP处理器来控制静音功能,可以简化布局布线工作并提高EMI抗扰度。

五、基于CPCI总线的多片ADSP-TS201引导设计

 

  数字信号处理器DSP是一种具有特殊结构的微处理器,它专门为实现数字信号处理的各种算法而设计,因而在硬件结构上具有特殊性。TS201是ADI公司TigerSHARC系列中集成了定点和浮点计算功能的高速DSP。该处理器广泛应用于视频、通信市场和国防军事装备中,适合于大数据量实时处理的应用领域。

  TigerSHARC系列DSP引导程序的加载方法非常灵活,可根据实际系统的需求灵活选用。某雷达信号处理机采用6U板形,CPCI总线采用欧洲卡尺寸标准,通过CPCI总线与主机进行数据通信。针对该信号处理机硬件系统,本文提出一种引导方案,该方案采用CPCI总线向板卡传输引导代码,进而依靠FPGA通过链路口引导DSP自启动。

  1 ADSP-TS201引导模式

  DSP的引导就是在DSP系统复位的情况下从DSP外部存储器装载算法程序代码的过程。TS201支持两种引导模式:主引导(Master Boot)模式和从引导(S|ave Boot)模式。

  在主引导模式下,TS201作为主动方,用外部口输出地址,读引导方式选择(数字信号处理)等控制信号,从EPROM或FLASH中加载代码。在从引导模式下,TS201作为被动方,不向外部输出控制信号,外部主机或其他设备向TS201的主机或链路口传送要加载的代码,TS201仅启动若干DMA通道,并执行第一个DMA所接收的加载核。

  另外,FS201还可以选择一种“非引导”模式,或利用TS201的(仿真器)USB-ICE加载程序,这种方式可直接将程序加载到TS201内部的RAM或外部的RAM中,DSP直接从RAM中运行程序,常用于DSP的调试过程。

  通过对TS201的数字信号处理引脚的设置,可将DSP的引导过程设置成主引导模式或从引导模式。在DSP复位期间,如果引脚为低电平,则选择主引导模式,DSP从外部EPROM或FLASH中加载程序;若数字信号处理引脚为高电平,则进入从引导模式,DSP为空闲状态,等待主机或链路口加载程序。两种引导模式都有相同的加载过程,具体步骤如下:

  (1)TS201自动启动一个DMA,自动把256个字(32位)传送到内部存储器的地址0x00~0xFF。

  (2)TS201执行上述256个字的指令(加载核),加载核启动其他DMA,把后续指令和数据加载到内部和/或外部存储器中。

  (3)加载核自我覆盖,执行DSP算法程序。

  本系统引导方案采用从引导模式,通过CPCI总线将代码从主机传至FPGA中,再利用FPGA经过链路口启动DSP。

  2 某雷达信号处理机的引导设计方案

  基于某雷达信号处理机硬件处理平台,采用如图1所示的多DSP引导设计方案。

 

数字信号处理

  4片DSP的算法程序代码(.LDR文件)通过上位机软件传输到FPGA中,FPGA通过与DSPA的链路口给DSPA加载程序。DSPA加载成功后,分别引导DSPB,DSPC,DSPD启动。

  采用这种方式加载DSP的优点:调试DSP时可以不使用JTAG仿真器;同时当DSP自启动时,可以不采用FLASH或E2PROM存放程序代码,对于DSP程序的大小没有限制,也节约了电路板的空间及其硬件设计复杂度。

  采用这种方式加载DSP的难点:CPCI总线与FPGA数据传输无误及FPGA与TS201链路口通信,这两个难点在实际工程中都已经解决。CPCI总线与FPGA接口可以采用PLX9656芯片完成数据传输,所以这种加载模式的设计是可行的。

  2.1 自动引导程序设计思路

  为了设计加载(自动引导)程序,首先必须了解ADSP-TS201的软件设计流程,其流程图如图2所示。

  

数字信号处理

  其中,链接描述文件(.LDF)定义了整个系统的存储器配置和程序中数据及代码的具体存放位置。加载核文件(.DEX)是指加载引导核程序,其功能是将用户工程所编译成功的可执行文件(.DXE)合成一个链路口加载方式的输出文件(.LDR)。该加载输出文件用来定义加载过程中TS201的内部和外部存储器如何被初始化。

  在VisualDSP++安装目录的ldr子目录下,ADI公司提供了标准加载核文件和相应的源程序(.ASM)和链接描述文件。一般可直接使用提供的标准加载核文件或对其相应的源程序进行简单修改,重新编译链接生成的加载核文件。加载文件是由引导加载器 (elfloader)将可执行文件进行一定的格式变化,并在起始位置附加上加载核文件生成的。

  由于TS201有三种引导方式(不考虑非引导模式),ADI公司相应地提供了三种不同的加载和文件,分另0为:TS201_prom.dxe,TS201_li- nk.dxe,TS201_host.dxe。三个程序的核心思想和功能完全一致,只是由于使用的加载端口和方式不同,在具体代码实现上稍有差异。由于本系统采用链路口启动,同时对于DSPA,DSPB,DSPC,DSPD都采用不同的链路口启动,因此采用链路口加载核文件,需要对加载核文件稍作修改,满足不用链路口启动的需求。

  2.2 本信号处理机的复位引导设计流程

  如图1所示,4片DSP要运行的程序最终通过上位机读取后,通过CPCI总线传至FPGA,4片DSP为链路口引导模式。DSP复位后,DSPA从FPGA加载程序,DSPA加载完成后,再分别通过链路口加载DSPB,DSPC,DSPD。加载完成后,4片DSP正常执行各自的程序。

  结合以上各部分的分析,可以看出要实现该信号处理机中4片DSP的正确引导,所需的工作由以下几步组成:

  (1)由DSPB要执行的程序(DSPB.dxe),结合链路口的加载核程序生成DSPB的加载文件(DSPB_bin.ldr)。需要注意的是,该链路口加载核程序不能直接使用提供的标准链路口加载程序,必须将提供的链路口加载核文件(TS201_link.asm)中的LINK常数改为 1(#define LINK 1),即DSPB由链路口1引导。

  (2)与(1)类似,生成DSPC的加载文件 (DSPC_bin.ldr),只是需要把链路口加载核文件(TS201_link.asm)中的LINK常数改为2(#define LINK 2),即DSPC由链路口2引导。同样DSPD由链路口2加载,同样生成DSPD的加载文件(DSPD_bin.ldr)。

  (3)由于 DSPA要通过链路口来对DSPB,DSPC,DSPD进行程序引导,所以在进行DSPA编程时,需要在程序的最开始添加给后面所有ADSPTS2 01的引导程序。而每片ADSP-TS201的程序都由引导码和用户程序构成,所以在DSPA给其余DSP传输程序时将传输完整.1dr文件的数据。

  DSPA程序流程图如图3所示。

  

数字信号处理

  (1)DSPA关闭所有中断,所有链路口和所有DMA通道,进行初始化;

  (2)开启链路口3,2,1,0,设置链路口3接收中断,链路口2,1,O发送中断;

  (3)设置链路口3通过DMA模式接收128 b数据;

  (4)判断目前加载的DSP,设置相应的链路口,发送接收到的128 b数据;

  (5)判断DSPB,DSPC,DSPD是否加载完成,否则继续通过链路口3接收数据,直到DSP都加载完成;

  (6)加载完成后,DSPA运行自身DSP程序。

  3 系统测试结果

  上述引导设计在某雷达信号处理机中得到验证,通过上位机软件,能灵活地加载引导代码,使得调试更加便捷。测试上位机软件如图4所示。

  

数字信号处理

  修改雷达系统的数字信号处理算法,成功地将算法代码加载到信号处理机中,从而验证引导设计方案正确可行。

  4 结语

  本文以某雷达信号处理机为平台,设计实现了基于CPCI总线的链路口多DSP引导方案,介绍了软件设计流程及引导方案思想,最后成功验证了本引导方案的正确性和可行性。本引导方案不使用FLASH或E2PROM存放代码,使多DSP的软件编写更加灵活,调试更加方便,同时使得硬件电路设计更加简洁。


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分