本课程是信息及电类专业的专业平台课。该课程讲述TI的C674x-DSP的硬件结构、DSP技术开发工具、集成开发环境CCS、软件仿真开发、DSP算法优化技术、StarterWare应用开发、SYS/BIOS系统软件开发、C674X-DSP应用设计实践等内容。通过本课程教学,让学生了解TI DSP芯片的基本原理和常用DSP芯片的应用;熟悉DSP芯片开发工具及使用,包括CCS集成开发环境和使用开发工具进行设计和应用。为后续课程或技术研发奠定平台基础。弱化硬件,强化软件,提供所学工程案例源代码,是本课程的特色与亮点。
通过本课程的学习,使学生具备下列能力:
1. 认识、理解DSP适于实时数字信号处理的特点和优势,DSP开发工具及使用区别,C674x-DSP硬件结构,CCS软件开发及调试基本流程和方法。
2. 调试、分析DSP项目工程,创建和调试CCS应用系统,掌握工程的文件构成及其作用,分析各种不同的优化技术方法和实践过程,使用软仿和硬仿调试DSP系统。
3. 应用、设计DSP在控制、通信和信号等领域的嵌入式系统开发,实现DSP外设数据采集、数据通信、功能控制,具备DSP算法的不同技术优化方法,培养复杂工程设计、分析和应用能力。
考试成绩100%。
1、C语言程序设计,特别是:指针、结构体、动态内存、函数 、文件等的编程。
2、计算机原理或单片机知识,如寄存器、存储器、CPU、指令与操作数、汇编等概念。
1、参考教材
路锦正 等,《C674x-DSP嵌入式开发与实践》,科学出版社,2019年1月
2、网络资源
CCS软件及教材配套源代码下载地址:
链接:https://pan.baidu.com/s/1pBCKl627oyaR28Ju2ZP8VA
提取码:ytms
3、TI官网
https://www.ti.com/
https://www.ti.com.cn/
Q : DSP的全称是什么?
A : Digital Signal Processor,数字信号处理器
Q: DSP技术开发通常用到C语言的哪些知识点?
A: 主要用到指针、结构体、动态内存、文件等。
Q: C语言对DSP技术开发的重要性如何?
A: DSP开发主要采用C语言,少量的汇编语言(线性汇编)。一个典型的DSP程序通常约95%的C语言,5%的线性汇编。或者全部采用C语言,在核心函数使用Intrinsic指令(类似函数)实现数据快速处理。
Q: DSP与ARM、FPGA、GPU的关系如何?
A: 这些都是可编程器件。ARM适于人机交互、多任务管理,FPGA适于时序转换、高速数据采集等,GPU适合密集型数据处理,DSP适于数字信号处理。
Q: DSP与图像处理有什么关系?
A: DSP特别适于图像处理、视频处理等,算法完全自己定制、能够深度优化。
Q: DSP技术开发的工具有哪些?
A: 开发工具包括硬件工具和软件工具。硬件包括仿真器和评估板(EVM),软件包括CCS和SDK。
Q: DSP技术开发的重点和难点有哪些?
A: DSP开发包括硬件开发和软件开发,软件开发占总开发周期的约80%,因此软件开发是重点。硬件通常借鉴EVM做裁剪;软件包括系统软件和算法软件。算法优化是难点。
Q: DSP技术开发必须使用硬件仿真器或EVM吗?
A: 不是的,如果只是验证数据处理、算法优化,可只采用CCS的软件仿真功能。
Q: CCS有几种工作模式?
A: 两种工作模式:软件仿真(Simulator)和硬件仿真(Emulator)。
Q: CCS软件版本越高越好吗?
A: CCS6及以后的版本不再支持软件仿真功能,这对于没有仿真器或EVM的用户来说,无法进行算法的软件仿真。实际上,CCS5.5功能就可满足绝大部分需求。当然如果安装了高版本,可以从5.5中拷贝软仿文件使高版本CCS支持软仿。
Q: CCS软件免费吗?
A: 是的,可以从TI官网免费下载、安装。建议使用CCS5.5
Q: DSP与单片机(MCU)有何区别?
A: DSP可以看做是高级单片机,都采用C语言编程。DSP适于做信号处理、控制、通信,单片机适于做控制。
Q: 衡量DSP的性能或处理,是不是只看主频即可。
A: 不是的,衡量DSP的CPU处理能力要看MIPS(Million Instructions per Second),不能纯粹的看CPU主频。因为DSP的单指令周期可以运行多条指令,如ADI的DSP可并行2条,TI的C55x可并行2条,而TI的C6000系列最高可并行8条指令。如C6748 DSP的主频为456Mhz,则其处理能力为3648 MIPS。
Q: TI的DSP主要有哪些系列?
A: C2000主要用于控制,C5000主要用于便携式、低功耗处理,C6000主要用于高性能、复杂运算。C2000代表型号C2812,C5000代表型号C5509,C6000又分为C64/C67/C66。
Q: TI的C6000系列DSP具体有哪些型号?
A: C6000最早的是C62x(纯定点);后来有了C64x(纯定点)、C67x(纯浮点);升级后,C64x+与C67x+处理能力增强;C674x为定浮点DSP,性能更强;C66x为多核DSP,性能最强,如8核的C6678为业界性能最强DSP。
Q: TI的C6748 DSP是多少位的处理器?
A: 32位,即数据的基本宽度是32位。当然也可以访问8、16、40、64的数据。
Q: SYS/BIOS的全称是什么?
A: System, Basic input and output system。是TI提供的可运行在ARM和DSP上的嵌入式操作系统。
Q: 裸程序和任务程序是什么概念?
A: 裸程序就是采用C语言编程时,有main函数,有中断服务程序,CPU在main中死循环(while、for),main函数生命周期长(除非复位或掉电)。任务程序就是基于操作系统开发的程序,用户编写线程或任务,操作系统调度这些线程或任务,此时的main函数只是做一些初始化工作,执行完后main生命周期结束。
Q: DSP开发图像处理有可借鉴的SDK吗?
A: 有的,如IMGLIB(图像处理库,开源),VLIB(视觉库,可免费使用目标代码)。
Q: DSP技术开发的系统SDK有哪些?
A: 网络开发包NDK、NSP,初始化固件包StarterWare,芯片支持库CSL,轻型网络开发包LWIP。
Q: C6000系列DSP为什么可以并行8条指令?
A: 因为C6000系列的CPU有两组功能相同的功能单元,每边有四个,即:L1/L2, S1/S2, M1/M2, D1/D2,共八个,每个功能单元执行一条指令。
Q: C6000系列的DSP有多少个通用寄存器?
A: 分两组,A和B,每边32个,共64个:A0~A31, B0~B31。