DSP硬件设计包括:硬件方案设计、DSP及周边器件选型、原理图设计、PCB设计及仿真、硬件调试等。前一讲我们详细讲述了硬件方案设计、DSP及
周边器件选型两部分内容,本讲详细讲述原理图设计、PCB设计、硬件调试等内容。以期共享设计的经验,并能够提高大家的设计效率。
一、系统资源规划
硬件设计的前提需要做的一件事是对整个系统的资源进行规划,最终得到系统的资源分配表,即Memory
Map。表1提供了一个用TMS320DM642设计的图像处理系统的地址映射表。
通过表1我们可以清晰地看到程序空间、数据空间、图像输入口等资源的地址。经过对系统资源的规划,我们的硬件设计才能够有整体的规划,不然设计出来的原理图就是非常盲目的“无源之水”。
二、硬件原理图设计
DSP的芯片厂家在设计出每一种DSP芯片时一般都提供了相应的EVM(评估板)参考原理图设计,大家可以通过网络免费下载,或通过购买原装的EVM
板得到。详细的针对某一个板的原理我们就不细讲解,根据作者多年从事DSP设计的经验把设计中的技巧总结出来与大家分享。
硬件设计时,应重点注意以下几点。
(1)时钟电路。DSP时钟可由外部提供,也可由板上的晶振提供。但一般DSP系统中经常使用外部时钟输入,因为使用外部时钟时,时钟的精度高、稳定
性好、使用方便。由于DSP工作是以时钟为基准,如果时钟质量不高,那么系统的可靠性、稳定性就很难保证。因此,若采用外部时钟,选择晶振时应对其稳定
性、毛刺做全面的检验,以便DSP系统可靠地工作。
(2)复位电路。应同时设计上电复位电路和人工复位电路,在系统运行中出现故障时可方便地人工复位。对于复位电路,一方面应确保复位低电平时间足够长(一般需要20ms以上),保证DSP可靠复位;另一方面应保证稳定性良好,防止DSP误复位。
(3)在DSP电路中,对所有的输入信号必须有明确的处理,不能悬浮或置之不理。尤其要注意的是:若设计中没用到不可屏蔽硬件中断NMI,则硬件设计
时应确保将其相应引脚拉高,否则程序运行时会出现不可预料的结果;若设计中用到NMI,也应在程序正常执行阶段置其相应引脚为高电平。
三、高频PCB设计
数字器件正朝着高速、低耗、小体积、高抗干扰性的方向发展,这一发展趋势对印刷电路板的设计提出了很多新要求。作者根据多年在硬件设计工作中的经验,总结一些高频布线的技巧,供大家参考。
(1)高频电路往往集成度较高,布线密度大,采用多层板既是布线所必须的,也是降低干扰的有效手段。
(2)高速电路器件管脚间的引线弯折越少越好。高频电路布线的引线最好采用全直线,需要转折,可用45°折线或圆弧转折,满足这一要求可以减少高频信号对外的发射和相互间的耦合。
(3)高频电路器件管脚间的引线越短越好。
(4)高频电路器件管脚间的引线层间交替越少越好。所谓“引线的层间交替越少越好”是指元件连接过程中所用的过孔(Via)越少越好,据测,一个过孔可带来约0.5
pF的分布电容,减少过孔数能显著提高速度。
(5)高频电路布线要注意信号线近距离平行走线所引入的“交叉干扰”,若无法避免平行分布,可在平行信号线的反面布置大面积“地”来大幅度减少干扰。同一层内的平行走线几乎无法避免,但是在相邻的两个层,走线的方向务必取为相互垂直。
(6)对特别重要的信号线或局部单元实施地线包围的措施,即绘制所选对象的外轮廓线。利用此功能,可以自动地对所选定的重要信号线进行所谓的“包地”处理,当然,把此功能用于时钟等单元局部进行包地处理对高速系统也将非常有益。
(7)各类信号走线不能形成环路,地线也不能形成电流环路。
(8)每个集成电路块的附近应设置一个高频去耦电容。
(9)模拟地线、数字地线等接往公共地线时要用高频扼流环节。在实际装配高频扼流环节时用的往往是中心孔穿有导线的高频铁氧体磁珠,在电路原理图上对
它一般不予表达,由此形成的网络表(netlist)就不包含这类元件,布线时就会因此而忽略它的存在。针对此现实,可在原理图中把它当做电感,在PCB
元件库中单独为它定义一个元件封装,布线前把它手工移动到靠近公共地线汇合点的合适位置上。
(10)模拟电路与数字电路应分开布置,独立布线后应单点连接电源和地,避免相互干扰。
(11)DSP、片外程序存储器和数据存储器接入电源前,
应加滤波电容并使其尽量靠近芯片电源引脚,以滤除电源噪声。另外,在DSP与片外程序存储器和数据存储器等关键部分周围建议屏蔽,可减少外界干扰。
(12)片外程序存储器和数据存储器应尽量靠近DSP芯片放置,
同时要合理布局,
使数据线和地址线长短基本保持一致,尤其当系统中有多片存储器时要考虑时钟线到各存储器的时钟输入距离相等或可以加单独的可编程时钟驱动芯片。对于DSP
系统而言,应选择存取速度与DSP相仿的外部存储器,不然DSP的高速处理能力将不能充分发挥。DSP指令周期为纳秒级,因而DSP硬件系统中最易出现的
问题是高频干扰,因此在制作DSP硬件系统的印制电路板(PCB)时,应特别注意对地址线和数据线等重要信号线的布线要做到正确合理。布线时尽量使高频线
短而粗,且远离易受干扰的信号线,如模拟信号线等。当DSP周围电路较复杂时,建议将DSP及其时钟电路、复位电路、片外程序存储器、数据存储器制作成最
小系统,以减少干扰。
(13)当本着以上原则,熟练设计工具的使用技巧以后,经过手工布线完成后,高频电路为了提高系统的靠性和可生产性,一般都需要利用高级的PCB仿真软件进行仿真。
限于篇幅本文不对具体的仿真做详细介绍,但给大家的建议是如果有条件一定要对系统做仿真,这里给对几个基本的概念给大家做一个基本的说明。
什么是电磁干扰(EMI)和电磁兼容性(EMC)?
电磁干扰(Electromagnetic
Interference)有传导干扰和辐射干扰两种。传导干扰是指通过导电介质把一个电网络上的信号耦合(干扰)到另一个电网络。辐射干扰是指干扰源通
过空间把其信号耦合(干扰)到另一个电网络。在高速PCB及系统设计中,高频信号线、集成电路的引脚、各类接插件等都可能成为具有天线特性的辐射干扰源,
能发射电磁波并影响其他系统或本系统内其他子系统的正常工作。
什么是信号完整性(signal integrity)?
信号完整性是指信号在信号线上的质量。信号具有良好的信号完整性是指当在需要的时候,具有所必需达到的电压电平数值。差的信号完整性不是由某一单一因素导致的,而是板级设计中多种因素共同引起的。主要的信号完整性问题包括反射、振荡、地弹、串扰等。
常见信号完整性问题及解决方法见表2。
什么是反射(reflection)?
反射就是在传输线上的回波。信号功率(电压和电流)的一部分传输到线上并达到负载处,但是有一部分被反射了。如果源端与负载端具有相同的阻抗,反射就不会发生了。
源端与负载端阻抗不匹配会引起线上反射,负载将一部分电压反射回源端。如果负载阻抗小于源阻抗,反射电压为负,反之,如果负载阻抗大于源阻抗,反射电压为正。布线的几何形状、不正确的线端接、经过连接器的传输及电源平面的不连续等因素的变化均会导致此类反射。
什么是串扰(crosstalk)?
串扰是两条信号线之间的耦合,信号线之间的互感和互容引起线上的噪声。容性耦合引发耦合电流,而感性耦合引发耦合电压。PCB板层的参数、信号线间距、驱动端和接收端的电气特性及线端接方式对串扰都有一定的影响。
什么是过冲(overshoot)和下冲(undershoot)?
过冲就是第一个峰值或谷值超过设定电压——对于上升沿是指最高电压而对于下降沿是指最低电压。下冲是指下一个谷值或峰值。过分的过冲能够引起保护二极管工作,导致过早地失效。过分的下冲能够引起假的时钟或数据错误(误操作)。
什么是振荡(ringing)和 环绕振荡(rounding)?
振荡的现象是反复出现过冲和下冲。信号的振荡和环绕振荡由线上过度的电感和电容引起,振荡属于欠阻尼状态而环绕振荡属于过阻尼状态。信号完整性问题通
常发生在周期信号中,如时钟等,振荡和环绕振荡同反射一样也是由多种因素引起的,振荡可以通过适当的端接予以减小,但是不可能完全消除。
什么是地电平面反弹噪声和回流噪声?
在电路中有大的电流涌动时会引起地平面反弹噪声(简称为地弹),如大量芯片的输出同时开启时,将有一个较大的瞬态电流在芯片与板的电源平面流过,芯片
封装与电源平面的电感和电阻会引发电源噪声,这样会在真正的地平面(0V)上产生电压的波动和变化,这个噪声会影响其他元器件的动作。负载电容的增大、负
载电阻的减小、地电感的增大、同时开关器件数目的增加均会导致地弹的增大。
由于地电平面(包括电源和地)分割,例如地层被分割为数字地、模拟地、屏蔽地等,当数字信号走到模拟地线区域时,就会产生地平面回流噪声。同样电源层也可能会被分割为2.5V,3.3V,5V等。所以在多电压PCB设计中,地电平面的反弹噪声和回流噪声需要特别关心。
在时域(time domain)和频域(frequency
domain)之间有什么不同?
时域(time
domain)是以时间为基准的电压或电流的变化的过程,可以用示波器观察到。它通常用于找出管脚到管脚的延时(delays)、偏移(skew)、过冲(overshoot)、下冲(undershoot)以及建立时间(settling
times)。
频域(frequency
domain)是以频率为基准的电压或电流的变化的过程,可以用频谱分析仪观察到。它通常用于波形与FCC和其他EMI控制限制之间的比较。
什么是阻抗(impedance)?
阻抗是传输线上输入电压对输入电流的比值(Z0=V/I)。当一个源送出一个信号到线上,它将阻碍它驱动,直到2*TD时,源并没有看到它的改变,在这里TD是线的延时(delay)。
什么是建立时间(settling time)?
建立时间就是对于一个振荡的信号稳定到指定的最终值所需要的时间。
什么是管脚到管脚(pin-to-pin)的延时(delay)?
管脚到管脚延时是指在驱动器端状态的改变到接收器端状态的改变之间的时间。这些改变通常发生在给定电压的50%,最小延时发生在当输出第一个越过给定的阈值(threshold),最大延时发生在当输出最后一个越过电压阈值(threshold)
,测量所有这些情况。
什么是偏移(skew)?
信号的偏移是对于同一个网络到达不同的接收器端之间的时间偏差。偏移还被用于在逻辑门上时钟和数据达到的时间偏差。
什么是斜率(slew rate)?
Slew rate就是边沿斜率(一个信号的电压有关的时间改变的比率)。I/O
的技术规范 (如PCI)状态在两个电压之间,这就是斜率(slew
rate),它是可以测量的。
什么是静态线(quiescent line)?
在当前的时钟周期内它不出现切换。另外也被称为 "stuck-at"
线或static线。串扰(Crosstalk)能够引起一个静态线在时钟周期内出现切换。
什么是假时钟(false clocking)?
假时钟是指时钟越过阈值(threshold)无意识地改变了状态(有时在VIL
或VIH之间)。通常由于过分的下冲(undershoot)或串扰(crosstalk)引起。
什么是IBIS模型?
IBIS(Input/Output Buffer
Information Specification)模型是一种基于V/I曲线的对I/O
BUFFER快速准
确建模的方法,是反映芯片驱动和接收电气特性的一种国际标准,它提供一种标准的文件格式来记录如驱动源输出阻抗、上升/下降时间及输入负载等参数,非常适合做振荡和串扰等高频效应的计算与仿真。
IBIS本身只是一种文件格式,它说明在一标准的IBIS文件中如何记录一个芯片的驱动器和接收器的不同参数,但并不说明这些被记录的参数如何使用,这些参数需要由使用IBIS模型的仿真工具来读取。欲使用IBIS进行实际的仿真,需要先完成以下四件工作。
(1)获取有关芯片驱动器和接收器的原始信息源;
(2)获取一种将原始数据转换为IBIS格式的方法;
(3)提供用于仿真的可被计算机识别的布局布线信息;
(4)提供一种能够读取IBIS和布局布线格式并能够进
行分析计算的软件工具。
IBIS是一种简单直观的文件格式,很适合用于类似于Spice(但不是Spice,因为IBIS文件格式不能直接被Spice工具读取)的电路仿真工具。它提供驱动器和接收器的行为描述,但不泄漏电路内部构造的知识产权细节。换句话说,销售商可以用
IBIS模型来说明它们最新的门级设计工作,而不会给其竞争对手透露过多的产品信息。并且,因为IBIS是一个简单的模型,当做简单的带负载仿真时,比相应的全Spice三极管级模型仿真要节省10~15倍的计算量。
IBIS提供两条完整的V-I曲线分别代表驱动器为高电平和低电平状态,以及在确定的转换速度下状态转换的曲线。V-I曲线的作用在于为IBIS提供保护二极管、TTL图腾柱驱动源和射极跟随输出等非线性效应的建模能力。
什么是SPICE模型?
SPICE是Simulation Program with Integrated Circuit
Emphasis的缩写。
表3给出了 IBIS模型与SPICE模型的比较。
四、硬件调试技巧
硬件调试时应该注意的一些问题。如在硬件调试前,应先对电路板
进行细致的检查,观察有无短路或断路情况(由于DSP的PCB板布线一般较密、较细,这种情况发生的概率还是比较高的)。加电后,应用手感觉是否有些芯片
特别热。如果发现有些芯片烫得厉害,需立即掉电重新检查电路。排除故障后,接着就应检查晶体是否振荡,复位是否正确可靠。然后用示波器检查DSP的CLK
-OUT1和CLK-OUT2引脚的信号是否正常,若正常则表明DSP本身工作基本正常。
(1)保证电源的稳定可靠
在DSP硬件系统调试前,应确保给实验板供电的电源有良好的恒压恒流特性。尤其要注意的是,DSP的入口电压应保持在5.0V±0.05V。
电压过低,则通过JTAG接口向Flash写入程序时,会出现错误提示;电压过高,则会损坏DSP芯片。
(2)利用仿真软件排除硬件故障
在完成对电路板的检查后,就可通过仿真软件来调试程序。由于仿真时,程序代码下载到目标系统中的片外程序存储器,因而通过仿真软件可以比较容易地检查出一些硬件故障。
在上电后,若仿真软件调试窗口始终无法调入程序,则有两种可能:①
DSP芯片引脚存在断路或短路现象;② DSP
芯片损坏。倘若是第一次利用仿真软件调试程序,此时应对实验板断电,仔细检查DSP芯片各引脚的焊接情况。如果软件调试窗口曾正确调入程序,则可能是
DSP芯片损坏。此时,可通过检测实验板的整板阻抗进一步判断DSP芯片是否受损。若整板阻抗急剧下降,可将给DSP芯片供电的电源线割断,检测DSP芯
片的电阻。
如果软件调试窗口可调入程序,但调入的程序局部出错,如对片外程序存储器或数据存储器操作的代码变成.word
xxxx,此时可能是片外程序存储器或数据存储器出现故障。应仔细检查存储器是否存在短路或虚焊,若不存在则应进一步判断存储器是否受损。
DSP硬件设计是系统设计的“基石”,是系统稳定性的关键。本文介绍的DSP系统硬件开发中应注意的几个问题,可以大大缩短开发时间,希望能给读者提供参考的价值。转载