TMS320F206定点DSP芯片开发实践
时间:06-23
来源:互联网
点击:
1 引言
高速数字信号处理器是当前信息产业的热点技 术之一,采用最先进的DSP无疑会使所开发的产品具有更强的市场竞争力。与传统的普通单片机 相比,DSP芯片放弃了冯·诺依曼结构,代之以程序和数据分开的哈佛结构。从而大大提高了处 理速度,指令周期多为ns级,比普通单片机(多为ms级)快了3个数量级。因此,在硬件设计 中要考虑高频干扰问题。同时,DSP芯片广泛采用流水线操作,这也会给软件设计和调试带来一 定不便。诸如此类的问题在实际开发中还有许 多。笔者以TI公司的TMS320F206为例,就DSP 芯片的软硬件设计与调试中可能遇到的问题及解决方法进行阐述。
2 TMS320F206简介
F206是TI公司近年推出的一种性价比较高的 定点DSP芯片。它的主要特点有:
(1)采用静态CMOS集成工艺制作而成,先 进的哈佛结构使得程序和数据存储器独立编址、独立访问,两条总线可允许数据与指令的读取同 时进行,从而使数据的吞吐率提高了一倍;高度专业化的指令系统提供了功能强大的信号处理操 作;闪速存储器内嵌于DSP中,可减小系统体积,提高系统稳定性,而且毋需专门的编程器 (XDS510仿真器即具有编程功能),从而减少了开发成本。
F206为100引脚的TQFP(正方扁平)封装, 体小质轻,适于便携式仪器的设计。
(2)F206用一个 16×16的硬乘法器来进行有符号或无符号数的乘法运算,积为32位。乘累 加指令仅需一个机器周期 (20M时钟时为50ns),而在51及196等普通单片机中,乘法需利用软件 实现,执行时间为ms级。
(3)F206地址映射分为4个可独立选择的空 间: 64k字程序存储器;64k字本地数据存储器;32k字全局数据存储器;64k字的I/O空间。
(4)由于与目标系统之间采用了JTAG逻辑 扫描电路接口(基于IEEE1149.1标准),从而可真正做到完全的硬件仿真,在仿真时不占用硬件 资源,且可随时察看CPU内部及外设的工作情况,为程序的调试和除错带来极大方便。
3 硬件设计与调试
3.1 硬件设计
硬件设计应注意如下要点:
(1)认真处理好复位和时钟信号;
(2)在DSP电路中,对所有的输入信号必 须有明确的处理,不能悬浮和置之不理;
(3)模拟电路和数字电路独立布线,最后单 点连接电源和地;
(4)片外程序存储器和数据存储器应靠近 DSP芯片放置,要合理布局,保证数据线和地址线长短基本一致(可参照最小用户板或EVM板的 布线);
(5)关键部分建议布上地网。
在DSP硬件系统的印制电路板设计阶段,关 键是要使布线正确合理。布线正确一般都能做到,但要做到合理,则并不容易。DSP硬件系统 中最易出现的问题是高频干扰,因此,在布线 时应尽量使高频线短而粗,且远离易受干扰的信号线,如模拟信号线。此外,电源滤波、模拟 线与数字线分离等也是不容忽视的。
设计并加工好印制电路板后就可以进入硬件调 试阶段。在这个阶段,首先应对电路板作细致的常规检查,防止短路和断路现象。加电后,先检 查晶体是否振荡,复位是否正确可靠,用示波器检查DSP的CLKOUT1和CLKOUT2的信号是否正 常,若正常表明DSP本身基本正常。在做完这些基本检查之后,就可以进行系统硬件调试。
3.2 硬件调试中应注意的问题
3.2.1 保证电源的稳定可靠
在DSP硬件系统的调试过程中,应确保给实 验板供电的电源有好的恒压恒流特性。因为在调试中要经常对实验板开断电,若电源质量不好, 则很可能在突然上电时因电压陡升而烧坏芯片(F206首当其冲)。这样既会造成经济损失 (F206芯片较为昂贵),又将影响开发进度。因此,在调试初期应高度重视电源的选择。
3.2.2 对受损芯片的判断
实验板上电运行时,要经常查看各芯片的发 热情况,发现过热现象应及时分析处理。当怀疑有芯片损坏而又难以确认时,可通过测量对地电 阻的方法加以判断。
笔者曾做过一块实验板,正常时检测它的不 带电对地电阻为1MW左右;运行一段时间后,发现软件调试窗口无法正常调入程序,再次检测整 板的对地电阻,发现已降到90kW。由此,怀疑有芯片受损。根据现象初步判定是F206的问题, 故采取以下措施加以判断:将F206的电源引脚与实验板的电源线之间的连线割断,再测量整板的 对地电阻,发现电阻值(原为90 kW)开始回升;判断有可能是受损的F206拉垮了整板电阻。进一 步检测被损的F206芯片,其对地电阻仅为几十k欧姆,而正常的F206电阻约为2~3M欧姆。由此断定F206已被烧坏,更换芯片后,系统恢复正常。
当然,并非总能一次就判断准确。若将怀疑 的芯片割线后阻值仍未回升,说明该芯片没有问题,可试着再割其他的芯片,直至找到结症。
3.2.3 结合软件检查短路与虚焊
F206为100引脚的TQFP(正方扁平)封装; 为追求开发板的小巧轻便,与此相应的外部程序存储器和数据存储器以及其他功能模块也多采用表 贴元件。由于引脚细密繁多,一些隐蔽的短路和虚焊情况很可能被忽略。此时,利用软件调试的 方法可以较容易地查出硬件上的错误。
我们设计了一套利用TMS320F206控制56k调 制解调芯片组进行异/同步数据传输的实际系统。在软硬件相结合的调试中,由于是划分模块进行 调试的,出错的芯片目标明确,一些遗漏的硬件错误很快暴露出来并得以解决。下面举例加以说明。
现象一:用软件调试器调入可执行的输出文 件,即 *.out文件。发现无论什么文件都调用失败,就连开始的vector.h文件(中断矢量标志定 义文件)也变成了一些不相干的代码。
根据经验判断可能是F206有问题。仔细复查 实验板上的DSP芯片,发现芯片上有两个引脚发生了短路。排除故障后,程序成功调入。
现象二:用软件调试器调入的文件局部出 错。例如,应该是SPLK # lk,dma(存储立即数到数据存储器空间)的地方都变成了. word xxxx。初步判断可能是数据存储器或程序存储器出了问题。再仔细复查实验板上的相关芯片,最 终发现有一片程序存储器的接地引脚是虚焊。故障排除后,程序调入正确。
现象三:局部功能模块不能实现。在本设计 中,要求调制解调器上电后,先接受DSP发来的ATZ命令(调制解调器复位命令);若调制解调 器正常复位,则会返回结果码OK。在实际调试中,发现始终收不到正确的结果码;而程序设计 又没有错误。因此考虑硬件方面。
该模块涉及到的芯片是RC56D/SP(Conexant 公司出品的56k调制解调芯片)。它包括一片微控制器MCU和一片数据泵MDP(分别为80引脚和 100引脚的TQFP封装),通过执行固化在1Mbit(128k×8)RAM和2Mbit(256k×8)ROM/Flash ROM内的固件来完成操作[3]。对这几片芯片仔细 检查,发现微控制器(MCU)有两处引脚虚焊。排除故障后,调制解调器正常复位。
3.3 软件设计与调试
哈佛结构、流水线操作、专用的硬件乘法 器、特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期达到几十ns。快速 的指令周期使得DSP芯片能够实时实现许多DSP应用。然而在实际的程序设计中,由于DSP芯片 的上述特点,程序员们常常会遇到许多意想不到的麻烦。这里我们将编程与调试中应注意的问题 和技巧作一介绍。
3.3.1 流水线冲突
TMS320F206采用了4级流水线操作,有4个 独立的操作阶段:取指令、译码、取操作数和执行 。由于4个操作阶段是独立的,因此,这些操作可以交叠进行;在任意的指定周期内,1到4 个不同的指令均可有效,各处于不同的完成阶段。
由此可见,流水线冲突是不可避免的。一般 情况下,当发生流水线冲突时,由DSP自动插入 延迟解决。当无法自动解决时,需要程序员通过 调整程序语句的次序或在程序中插入一定数量的NOP来解决。因此,若在调试时查不出代码本身 的问题,不妨试着在相关的位置插入几个NOP指令。
3.3.2 软件等待状态发生器
为实现TMS320F206与慢速外部逻辑和存储 器的接口,等待状态是十分必要的。当CPU对慢速存储器或端口进行读写时,通过增加等待状 态,可延长CPU等待外部存储器或外部I/O端口的时间以便更好地响应。为此,CPU为每个等待 状态提供了1个额外的周期。为避免总线冲突,所有向外部地址的写操作均需要至少2个周期。
在程序的调试过程中,我们常用设置断点的 方法判断局部功能模块能否实现。若发现程序在尚未到达断点时就随机的停止运行,或仿真窗口 出现 “Time out waiting for device ” 红色告警字样时,可优先考虑调整等待状态发生器控制寄存 器(WSGR)的设置。
许多初学者在学习例程时发现其中的WSGR 值均设为0000h(零等待状态),就误以为在任何情况下都可行,这是很不可取的。笔者在初次 调试大型程序时,曾因为这个问题耗日多时;后来试着将WSGR值由0000h改为0002h就顺利解决了(将片外低端程序空间的读/写等待状态数设为2)。
图1显示了等待状态发生器控制寄存器(WSGR)的具体位设置。
高速数字信号处理器是当前信息产业的热点技 术之一,采用最先进的DSP无疑会使所开发的产品具有更强的市场竞争力。与传统的普通单片机 相比,DSP芯片放弃了冯·诺依曼结构,代之以程序和数据分开的哈佛结构。从而大大提高了处 理速度,指令周期多为ns级,比普通单片机(多为ms级)快了3个数量级。因此,在硬件设计 中要考虑高频干扰问题。同时,DSP芯片广泛采用流水线操作,这也会给软件设计和调试带来一 定不便。诸如此类的问题在实际开发中还有许 多。笔者以TI公司的TMS320F206为例,就DSP 芯片的软硬件设计与调试中可能遇到的问题及解决方法进行阐述。
2 TMS320F206简介
F206是TI公司近年推出的一种性价比较高的 定点DSP芯片。它的主要特点有:
(1)采用静态CMOS集成工艺制作而成,先 进的哈佛结构使得程序和数据存储器独立编址、独立访问,两条总线可允许数据与指令的读取同 时进行,从而使数据的吞吐率提高了一倍;高度专业化的指令系统提供了功能强大的信号处理操 作;闪速存储器内嵌于DSP中,可减小系统体积,提高系统稳定性,而且毋需专门的编程器 (XDS510仿真器即具有编程功能),从而减少了开发成本。
F206为100引脚的TQFP(正方扁平)封装, 体小质轻,适于便携式仪器的设计。
(2)F206用一个 16×16的硬乘法器来进行有符号或无符号数的乘法运算,积为32位。乘累 加指令仅需一个机器周期 (20M时钟时为50ns),而在51及196等普通单片机中,乘法需利用软件 实现,执行时间为ms级。
(3)F206地址映射分为4个可独立选择的空 间: 64k字程序存储器;64k字本地数据存储器;32k字全局数据存储器;64k字的I/O空间。
(4)由于与目标系统之间采用了JTAG逻辑 扫描电路接口(基于IEEE1149.1标准),从而可真正做到完全的硬件仿真,在仿真时不占用硬件 资源,且可随时察看CPU内部及外设的工作情况,为程序的调试和除错带来极大方便。
3 硬件设计与调试
3.1 硬件设计
硬件设计应注意如下要点:
(1)认真处理好复位和时钟信号;
(2)在DSP电路中,对所有的输入信号必 须有明确的处理,不能悬浮和置之不理;
(3)模拟电路和数字电路独立布线,最后单 点连接电源和地;
(4)片外程序存储器和数据存储器应靠近 DSP芯片放置,要合理布局,保证数据线和地址线长短基本一致(可参照最小用户板或EVM板的 布线);
(5)关键部分建议布上地网。
在DSP硬件系统的印制电路板设计阶段,关 键是要使布线正确合理。布线正确一般都能做到,但要做到合理,则并不容易。DSP硬件系统 中最易出现的问题是高频干扰,因此,在布线 时应尽量使高频线短而粗,且远离易受干扰的信号线,如模拟信号线。此外,电源滤波、模拟 线与数字线分离等也是不容忽视的。
设计并加工好印制电路板后就可以进入硬件调 试阶段。在这个阶段,首先应对电路板作细致的常规检查,防止短路和断路现象。加电后,先检 查晶体是否振荡,复位是否正确可靠,用示波器检查DSP的CLKOUT1和CLKOUT2的信号是否正 常,若正常表明DSP本身基本正常。在做完这些基本检查之后,就可以进行系统硬件调试。
3.2 硬件调试中应注意的问题
3.2.1 保证电源的稳定可靠
在DSP硬件系统的调试过程中,应确保给实 验板供电的电源有好的恒压恒流特性。因为在调试中要经常对实验板开断电,若电源质量不好, 则很可能在突然上电时因电压陡升而烧坏芯片(F206首当其冲)。这样既会造成经济损失 (F206芯片较为昂贵),又将影响开发进度。因此,在调试初期应高度重视电源的选择。
3.2.2 对受损芯片的判断
实验板上电运行时,要经常查看各芯片的发 热情况,发现过热现象应及时分析处理。当怀疑有芯片损坏而又难以确认时,可通过测量对地电 阻的方法加以判断。
笔者曾做过一块实验板,正常时检测它的不 带电对地电阻为1MW左右;运行一段时间后,发现软件调试窗口无法正常调入程序,再次检测整 板的对地电阻,发现已降到90kW。由此,怀疑有芯片受损。根据现象初步判定是F206的问题, 故采取以下措施加以判断:将F206的电源引脚与实验板的电源线之间的连线割断,再测量整板的 对地电阻,发现电阻值(原为90 kW)开始回升;判断有可能是受损的F206拉垮了整板电阻。进一 步检测被损的F206芯片,其对地电阻仅为几十k欧姆,而正常的F206电阻约为2~3M欧姆。由此断定F206已被烧坏,更换芯片后,系统恢复正常。
当然,并非总能一次就判断准确。若将怀疑 的芯片割线后阻值仍未回升,说明该芯片没有问题,可试着再割其他的芯片,直至找到结症。
3.2.3 结合软件检查短路与虚焊
F206为100引脚的TQFP(正方扁平)封装; 为追求开发板的小巧轻便,与此相应的外部程序存储器和数据存储器以及其他功能模块也多采用表 贴元件。由于引脚细密繁多,一些隐蔽的短路和虚焊情况很可能被忽略。此时,利用软件调试的 方法可以较容易地查出硬件上的错误。
我们设计了一套利用TMS320F206控制56k调 制解调芯片组进行异/同步数据传输的实际系统。在软硬件相结合的调试中,由于是划分模块进行 调试的,出错的芯片目标明确,一些遗漏的硬件错误很快暴露出来并得以解决。下面举例加以说明。
现象一:用软件调试器调入可执行的输出文 件,即 *.out文件。发现无论什么文件都调用失败,就连开始的vector.h文件(中断矢量标志定 义文件)也变成了一些不相干的代码。
根据经验判断可能是F206有问题。仔细复查 实验板上的DSP芯片,发现芯片上有两个引脚发生了短路。排除故障后,程序成功调入。
现象二:用软件调试器调入的文件局部出 错。例如,应该是SPLK # lk,dma(存储立即数到数据存储器空间)的地方都变成了. word xxxx。初步判断可能是数据存储器或程序存储器出了问题。再仔细复查实验板上的相关芯片,最 终发现有一片程序存储器的接地引脚是虚焊。故障排除后,程序调入正确。
现象三:局部功能模块不能实现。在本设计 中,要求调制解调器上电后,先接受DSP发来的ATZ命令(调制解调器复位命令);若调制解调 器正常复位,则会返回结果码OK。在实际调试中,发现始终收不到正确的结果码;而程序设计 又没有错误。因此考虑硬件方面。
该模块涉及到的芯片是RC56D/SP(Conexant 公司出品的56k调制解调芯片)。它包括一片微控制器MCU和一片数据泵MDP(分别为80引脚和 100引脚的TQFP封装),通过执行固化在1Mbit(128k×8)RAM和2Mbit(256k×8)ROM/Flash ROM内的固件来完成操作[3]。对这几片芯片仔细 检查,发现微控制器(MCU)有两处引脚虚焊。排除故障后,调制解调器正常复位。
3.3 软件设计与调试
哈佛结构、流水线操作、专用的硬件乘法 器、特殊的DSP指令再加上集成电路的优化设计,可使DSP芯片的指令周期达到几十ns。快速 的指令周期使得DSP芯片能够实时实现许多DSP应用。然而在实际的程序设计中,由于DSP芯片 的上述特点,程序员们常常会遇到许多意想不到的麻烦。这里我们将编程与调试中应注意的问题 和技巧作一介绍。
3.3.1 流水线冲突
TMS320F206采用了4级流水线操作,有4个 独立的操作阶段:取指令、译码、取操作数和执行 。由于4个操作阶段是独立的,因此,这些操作可以交叠进行;在任意的指定周期内,1到4 个不同的指令均可有效,各处于不同的完成阶段。
由此可见,流水线冲突是不可避免的。一般 情况下,当发生流水线冲突时,由DSP自动插入 延迟解决。当无法自动解决时,需要程序员通过 调整程序语句的次序或在程序中插入一定数量的NOP来解决。因此,若在调试时查不出代码本身 的问题,不妨试着在相关的位置插入几个NOP指令。
3.3.2 软件等待状态发生器
为实现TMS320F206与慢速外部逻辑和存储 器的接口,等待状态是十分必要的。当CPU对慢速存储器或端口进行读写时,通过增加等待状 态,可延长CPU等待外部存储器或外部I/O端口的时间以便更好地响应。为此,CPU为每个等待 状态提供了1个额外的周期。为避免总线冲突,所有向外部地址的写操作均需要至少2个周期。
在程序的调试过程中,我们常用设置断点的 方法判断局部功能模块能否实现。若发现程序在尚未到达断点时就随机的停止运行,或仿真窗口 出现 “Time out waiting for device ” 红色告警字样时,可优先考虑调整等待状态发生器控制寄存 器(WSGR)的设置。
许多初学者在学习例程时发现其中的WSGR 值均设为0000h(零等待状态),就误以为在任何情况下都可行,这是很不可取的。笔者在初次 调试大型程序时,曾因为这个问题耗日多时;后来试着将WSGR值由0000h改为0002h就顺利解决了(将片外低端程序空间的读/写等待状态数设为2)。
图1显示了等待状态发生器控制寄存器(WSGR)的具体位设置。
DSP 单片机 CMOS 总线 仿真 电路 模拟电路 示波器 电压 电阻 MCU 集成电路 电子 相关文章:
- F1aSh存储器在TMS320C3X系统中的应用(11-11)
- 基于PIC18F系列单片机的嵌入式系统设计(11-19)
- DSP在卫星测控多波束系统中的应用(01-25)
- 基于PCI总线的双DSP系统及WDM驱动程序设计(01-26)
- 利用Virtex-5 FPGA实现更高性能的方法(03-08)
- DSP与单片机通信的多种方案设计(03-08)