轻松体验DSP
时间:02-13
来源:DSP专业资讯网
点击:
第一种商品化的 IC 数字信号处理器是英特尔的 2920,早在 1979 年就在取代全双工、1200bps 数字硬调制解调器中的模拟滤波器组了。同时,迅速增多的微处理器和外设提高了处理以数字表示信号的可行性。那时几乎任何商业化信号处理任务都需要模拟计算,伴有复杂的反馈回路和补偿电路来维持稳定性。各种依赖位片处理器小型电脑和数据采集硬件的技术都极其昂贵,并且通常只适合于研究人员。能够经济地把信号数字化,并在数字领域进行数学计算,从而减少漂移和其它用模拟技术处理也很昂贵的不精确条件,这种逻辑很有吸引力,它直接导致今天市场上出现多种系列的 DSP。
目前,某种形式的 DSP 安装在从自动应答电话机到洗衣机等各种产品的中心部位,很容易使人忘记这场变革就发生在最近。直到最近,通用微控制器和 DSP 芯片之间的巨大差别还使许多嵌入式系统工程师觉得:数字信号处理是门困难的学科。这种感觉来源于第一代 DSP 的架构和编程要求,这一代 DSP 往往设计用来实现数字滤波器。不过,在卷入 DSP 对比微控制器的争论之前,你也许要问,为什么使用数字滤波器?DSP 还适合于别的什么领域?使用数字滤波的经典理由是,你可以实现线性相位 FIR (有限脉冲响应)滤波器,它保持了音频处理等应用中的信号保真度。当你正在尝试处理传感器信号时,避免由于不相等的组延迟(由非线性相位-频率响应特性引起)导致的信号失真可能也是很关键的。正如任何已经尝试过的人所知道的那样,用模拟技术制造线性相位滤波器几乎是不可能的,相比之下,DSP 和软件滤波器工具箱使这种实现不费吹灰之力。
假如你使用针对控制系统建模的仿真工具,你一定知道来自 Mathworks 的 Matlab 和 Simulink 等工具也可以建立 DSP 算法的模型,并自动生成代码,你可以把这些代码移植到各种硬件目标。不过,数字信号处理的能力其实起始于滤波器应用。例如,软件工具也可以毫不费力地实现 FFT(快速傅里叶变换)。然后,你可以对连续时间信号的快照做频率分析。假如你有很多传感器输出要处理,以得到关键的实时控制响应,那么 DSP 通常是惟一的答案。
初学者工具包帮你建立信心
假如你第一次接触数字信号处理,你很可能想得到更多背景信息。不过,阅读产品的相关资料无法取代亲自尝试它们,而初学者工具包提供了一种获得体验的轻松方式。今天,与微控制器最相像的 DSP 系列就是摩托罗拉的 DSP56F800,它主要针对实时控制应用。例如,F805 核心包括一个 16 比特定点引擎,该引擎运行在双哈佛架构上,以实现对程序和数据存储器的三路并行访问。
摩托罗拉的片上仿真技术通过一个 JTAG 标准的端口来提供系统内调试能力。该器件是 144 引脚 LQFP 封装。
开发支持来自 DSP56F805EVM,它包含一个 130mm×165mm 印制电路板、CodeWarrior IDE 和一个 SDK(软件开发工具包),价格为 299 美元。该印制电路板上装有处理器,还有一个 128k×16比特 SRAM(外部代码和数据各为 64k 字)、一个 RS-232 端口,以及一个"并口至 JTAG"接口,便于基于 PC 的调试。一个正交解码器/霍尔效应接口和专用的马达控制逻辑给伺服控制等应用带来了便利。各个跳线器选择不同的运行模式,多个起始码准备信号和 I/O,用于轻松连接。
CodeWarrior 安装的文档很有用地包括了 56F805 的硬件参考手册和数据表,以及该 IDE 的用法说明和参考手册。要想迅速开始,请查看开发板的在线硬件手册,并确保所有跳线器都处在默认位置。接着,把并口连接到你的 PC,并尝试这些在线手册的"瞄准 DSP56F805"(Targeting DSP56F805) 部分。这部分包括一个简要的指南,它示范如何创建、编译和链接 F805 代码。在默认情况下,CodeWarrior 使用"项目用具" (project stationery) 来构造新的项目。这个方法自动创建和解开各种依赖处理器的功能、库、链接器命令和你的代码之间的依赖性。假如你正用 C 语言编程,用具还可以进行启动文件的创建,以分配和初始化系统内存;你可以选择"空项目"并自己控制这些进程。你可以在 CodeWarrior 的编辑器里无缝地混合和匹配 C 语言代码和汇编代码。
假如你使用预制用具,那么项目窗口会打开,显示代码、支持和库子目录;把它们展开,就可以访问恰当的资源,然后你可以编辑这些资源。在项目窗口内选择"运行" (run) 图标,默认的设定就会编译、链接并下载模板程序到开发板的外部 SRAM。线程窗口会打开,让你查看栈、变量和源代码,还有执行控制,比如设置/清除断点、运行、终止以及多种单步运行选项。
检查"视图" (View) 菜单下的可用工具,比如表达式视图、全局变量视图和寄存器视图。这些工具包括原始数据、反汇编、源和混合模式内存表示;你还可以从这儿直接编辑内存单元。不过,你不会找到正式的剖析工具,你只有自己计算时序要求严格的任务。一种替代办法是包含多个调用来启动和停止片上定时器,从而在关键点安插你的代码;除去调用开销,就得到了真实结果。当然,假如你的代码运行没有超出截止期限,并且安插的代码位置适当,那么除去这种开销应该不会对运行造成消极影响。由于片上内存使用和片外内存使用之间可能存在明显的性能差别,因此要确保测试的是真正的目标配置。
CodeWarrior 只安装了一个 F805 例子,这个例子检测从板上开关到交替闪烁 LED 的中断。你可以使用这个例子作为使用 C 语言编译器 pragma 指令、编写中断服务例程以及保存并调用库函数的指导。不过,假如你想要 CAN(控制器区域网络)例子,那你真不走运--这项功能是额外费用高级包中的一个价格为 3000 美元的选项。其它高级功能包括安全例程,这其中含 RSA (Rivest、Shamir 和 Adleman)、DES (数据加密标准)和 3重 DES 算法,以及远程通信和语音处理函数,比如 G711 语音编码器。
其它开发工具包括 200 美元的"并口至 JTAG"命令转换器;USB 至 JTAG 转换器目前正在开发中。你还可以指定 1999 美元的 PCI 至 JTAG 仿真器连接和 2999 美元的以太网同等品。另一方面,对于那些好奇心很重、不需要 F805 的 I/O 功能的用户来说,有一个选项也许更好,那就是 65 美元的 DSP56F801 开发工具包。该工具包还包括并列排线(parallel-cable)仿真、SDK以及 CodeWarrior 的一个免费版本,它局限于 16kB 程序内存。无限制的 IDE 价格为 495 美元。
目前,某种形式的 DSP 安装在从自动应答电话机到洗衣机等各种产品的中心部位,很容易使人忘记这场变革就发生在最近。直到最近,通用微控制器和 DSP 芯片之间的巨大差别还使许多嵌入式系统工程师觉得:数字信号处理是门困难的学科。这种感觉来源于第一代 DSP 的架构和编程要求,这一代 DSP 往往设计用来实现数字滤波器。不过,在卷入 DSP 对比微控制器的争论之前,你也许要问,为什么使用数字滤波器?DSP 还适合于别的什么领域?使用数字滤波的经典理由是,你可以实现线性相位 FIR (有限脉冲响应)滤波器,它保持了音频处理等应用中的信号保真度。当你正在尝试处理传感器信号时,避免由于不相等的组延迟(由非线性相位-频率响应特性引起)导致的信号失真可能也是很关键的。正如任何已经尝试过的人所知道的那样,用模拟技术制造线性相位滤波器几乎是不可能的,相比之下,DSP 和软件滤波器工具箱使这种实现不费吹灰之力。
假如你使用针对控制系统建模的仿真工具,你一定知道来自 Mathworks 的 Matlab 和 Simulink 等工具也可以建立 DSP 算法的模型,并自动生成代码,你可以把这些代码移植到各种硬件目标。不过,数字信号处理的能力其实起始于滤波器应用。例如,软件工具也可以毫不费力地实现 FFT(快速傅里叶变换)。然后,你可以对连续时间信号的快照做频率分析。假如你有很多传感器输出要处理,以得到关键的实时控制响应,那么 DSP 通常是惟一的答案。
初学者工具包帮你建立信心
假如你第一次接触数字信号处理,你很可能想得到更多背景信息。不过,阅读产品的相关资料无法取代亲自尝试它们,而初学者工具包提供了一种获得体验的轻松方式。今天,与微控制器最相像的 DSP 系列就是摩托罗拉的 DSP56F800,它主要针对实时控制应用。例如,F805 核心包括一个 16 比特定点引擎,该引擎运行在双哈佛架构上,以实现对程序和数据存储器的三路并行访问。
摩托罗拉的片上仿真技术通过一个 JTAG 标准的端口来提供系统内调试能力。该器件是 144 引脚 LQFP 封装。
开发支持来自 DSP56F805EVM,它包含一个 130mm×165mm 印制电路板、CodeWarrior IDE 和一个 SDK(软件开发工具包),价格为 299 美元。该印制电路板上装有处理器,还有一个 128k×16比特 SRAM(外部代码和数据各为 64k 字)、一个 RS-232 端口,以及一个"并口至 JTAG"接口,便于基于 PC 的调试。一个正交解码器/霍尔效应接口和专用的马达控制逻辑给伺服控制等应用带来了便利。各个跳线器选择不同的运行模式,多个起始码准备信号和 I/O,用于轻松连接。
CodeWarrior 安装的文档很有用地包括了 56F805 的硬件参考手册和数据表,以及该 IDE 的用法说明和参考手册。要想迅速开始,请查看开发板的在线硬件手册,并确保所有跳线器都处在默认位置。接着,把并口连接到你的 PC,并尝试这些在线手册的"瞄准 DSP56F805"(Targeting DSP56F805) 部分。这部分包括一个简要的指南,它示范如何创建、编译和链接 F805 代码。在默认情况下,CodeWarrior 使用"项目用具" (project stationery) 来构造新的项目。这个方法自动创建和解开各种依赖处理器的功能、库、链接器命令和你的代码之间的依赖性。假如你正用 C 语言编程,用具还可以进行启动文件的创建,以分配和初始化系统内存;你可以选择"空项目"并自己控制这些进程。你可以在 CodeWarrior 的编辑器里无缝地混合和匹配 C 语言代码和汇编代码。
假如你使用预制用具,那么项目窗口会打开,显示代码、支持和库子目录;把它们展开,就可以访问恰当的资源,然后你可以编辑这些资源。在项目窗口内选择"运行" (run) 图标,默认的设定就会编译、链接并下载模板程序到开发板的外部 SRAM。线程窗口会打开,让你查看栈、变量和源代码,还有执行控制,比如设置/清除断点、运行、终止以及多种单步运行选项。
检查"视图" (View) 菜单下的可用工具,比如表达式视图、全局变量视图和寄存器视图。这些工具包括原始数据、反汇编、源和混合模式内存表示;你还可以从这儿直接编辑内存单元。不过,你不会找到正式的剖析工具,你只有自己计算时序要求严格的任务。一种替代办法是包含多个调用来启动和停止片上定时器,从而在关键点安插你的代码;除去调用开销,就得到了真实结果。当然,假如你的代码运行没有超出截止期限,并且安插的代码位置适当,那么除去这种开销应该不会对运行造成消极影响。由于片上内存使用和片外内存使用之间可能存在明显的性能差别,因此要确保测试的是真正的目标配置。
CodeWarrior 只安装了一个 F805 例子,这个例子检测从板上开关到交替闪烁 LED 的中断。你可以使用这个例子作为使用 C 语言编译器 pragma 指令、编写中断服务例程以及保存并调用库函数的指导。不过,假如你想要 CAN(控制器区域网络)例子,那你真不走运--这项功能是额外费用高级包中的一个价格为 3000 美元的选项。其它高级功能包括安全例程,这其中含 RSA (Rivest、Shamir 和 Adleman)、DES (数据加密标准)和 3重 DES 算法,以及远程通信和语音处理函数,比如 G711 语音编码器。
其它开发工具包括 200 美元的"并口至 JTAG"命令转换器;USB 至 JTAG 转换器目前正在开发中。你还可以指定 1999 美元的 PCI 至 JTAG 仿真器连接和 2999 美元的以太网同等品。另一方面,对于那些好奇心很重、不需要 F805 的 I/O 功能的用户来说,有一个选项也许更好,那就是 65 美元的 DSP56F801 开发工具包。该工具包还包括并列排线(parallel-cable)仿真、SDK以及 CodeWarrior 的一个免费版本,它局限于 16kB 程序内存。无限制的 IDE 价格为 495 美元。
- 全面解读 嵌入式DSP上的视频编解码(08-19)
- 基于ADSP-TS201S的图像采集处理系统(08-12)
- 基于Blackfin533的H.264编码(08-18)
- 图形液晶显示模块在嵌入式系统中的应用(09-02)
- 基于DSP和FPGA的电视观瞄系统设计(09-02)
- TI手提多媒体设备解决方案(09-23)