本课程在课程体系中作为一门必不可少的工程实践课程,其目的在于培养学生综合应用所学知识,解决复杂工程问题的能力。课程内容结合DM6437开发平台,学习CCS开发环境和工具、DSP/BIOS线程管理应用、音频采集和NDK编程等内容,通过软件编程实现音频实时采集和网络传输功能。课程注重简易性与启发性,强调理论与实际的有机结合。力图通过循序渐渐帮助学生掌握基础理论,运用基本知识,理解典型系统,进而发展分析问题与解决问题的能力,提升创新素质。
具体内容三个章节:
第1章:CCS基本开发环境介绍
该章节从一个最基本的“Hello World”例程开始,介绍CCS开发环境的使用以及DSP代码工程文件的构建。重点介绍CMD文件,CCXML目标板配置文件,GEL文件的功能和作用,以及JTAG仿真器的连接和使用。同时,这本章节中还介绍了CCS开发环境下的代码调试工具。通过本章节的学习,掌握基本的代码开发工具的使用。
第2 章:BIOS操作系统下的音频采集
该章节主要介绍使用HWI以及TSK线程框架实现音频直通代码的例程。在本章中,首先介绍了DM6437实验板的基本接口和功能模块,然后对BIOS的代码运行流程进行了简单介绍。所谓音频直通,就是用DM6437实验板完成对外部输入的音频信号进行采集捕获,然后再播放输出的软件。这种直通代码是后续进行网络传输的基础。本章使用了两个例程,其中HWI线程使用硬件中断服务函数的形式完成输入信号的采集和播放。而另外一个例程,在HWI线程的基础上,还添加了TSK,IDL线程以及旗语、队列等工具完成信号采集和播放。后一个例程可以非常方便地添加网络通信模块从而实现捕获音频数据的传输。
第三章:基于NDK的网络UDP编程应用
该章节实现PC机与DM6437实验板的网络通信,将DM6437实验板采集捕获的音频数据通过网络实时传输到PC,并由PC代码保存为WAV文件。要实现UDP的编程应用,需要在PC和DM6437的实验板上各自运行网络相关代码。本章对VS下的WinSock网络应用以及DM6437的NDK下的Socket编程进行介绍,最终完成音频信号的网络传输和记录。
后续可在此基础上,向两个方面进行拓展:
算法层面:在该DSP平台实现其它的信号分析、处理算法,包括音频和视频的处理;
综合应用层面:结合DSP算法以及PC上的相关软件,实现其它更复杂的应用系统。
本课程作为一门工程实践课程,其目的在于培养学生综合应用所学知识,解决复杂工程问题的能力。课程以DM6437开发板为平台,综合了计算机组成原理、计算机网络、操作系统、C语言等多门课程知识,学习CCS开发环境和工具、DSP/BIOS线程管理应用、音频采集和NDK编程等内容,通过软件编程实现音频实时采集和网络传输功能。通过课程学习并完成实验, 帮助学生掌握基础理论,提升实际运用能力,强化分析问题与解决问题的能力,同时增强自主学习的能力。
第一章 CCS开发环境与工具(一)
1.1 CCS开发环境概述
1.2 CMD文件介绍
在CCS环境下,创建project工程,完成"Hello world"打印输出。
第一章 CCS开发环境与工具(二)
1.3 使用CCS的调试工具,进行代码调试
1.4 在不同平台运行代码
第二章 DSP/BIOS的使用-----目的:掌握DSP/BIOS的基本使用,包括线程的创建和使用,学习线程的同步与通信,掌握BIOS的分析工具。通过本章学习,构建音频直通程序,在DM6437实验板上实现音频信号的采集与回放。
2.1 DM6437实验板基本介绍。介绍音频采集和回放功能需要的相关硬件设备,以及如何验证音频采集和回放的正确性。本节视频将展示如何连接实验测试环境,以及连接实验板后,运行音频直通例程代码,完成音频采集和回放的演示,并最终听到板子输出的声音。 (参考代码可从附件下载)
2.2 BIOS的线程管理概述。介绍DSP/BIOS线程管理以及基本概念。-----DSP/BIOS提供了有优先级的多线程处理。它是专为那些需要实时调度、同步以及通信的应用程序设计的。在一个包含DSP/BIOS内核的应用程序里,按优先级从低到高有四种主要线程:后台线程(IDL线程)、任务(TSK线程)、软件中断(SWI线程)、硬件中断(HWI线程)。
2.3 HWI线程。通过实验演示(例程audio_HWI_Lab3),讲解使用HWI线程,完成音频信号的捕获和输出。
2.4 TSK线程。通过实验演示(例程Audio_TSK_Lab5,可从附件下载),讲解使用TSK线程,配合使用旗语和队列操作,完成音频信号的捕获和输出。该例程通过添加网络应用代码后,最终实现音频实时传输功能。
第三章 网络通讯与实时音频数据传输(一)
3.1 Winsock网络编程。介绍Winsock编程涉及到的基本知识,包括套接字类型、工作流程、主要函数和应用示例等,以及Visual Studio C++编程基础。
第3章单元测验
第三章 网络通讯与实时音频数据传输(二)
3.1 Winsock网络编程。Winsock数据报编程示例
第三章 网络通讯与实时音频数据传输(三)
3.2 NDK编程基础。介绍NDK的基本结构、工作流程、函数介绍和编程示例,以及程序调试等。
第三章 网络通讯与实时音频数据传输(四)
3.3 实时音频传输。介绍音频文件的基本格式、DM6437和PC机之间的简单通信协议、PC端程序架构、DSP端程序架构
第三章 网络通讯与实时音频数据传输(五)
3.3 实时音频传输。音频采集、传输、接受和保存的编程示例。
DES5437目标板上的音频网络实时传输的实现
先修课程:C语言程序设计
推荐但不要求先修课程:操作系统,组成原理,计算机网络基础,DSP技术
为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。
电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。
完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。
认证证书申请注意事项:
1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。
2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。
1、参考教材
彭启琮、李玉柏、管庆《DSP技术的发展与应用》高等教育出版社
彭启琮、管庆《DSP实验指导书》高等教育出版社
2、网络资源
https://www.ti.com/
https://www.ti.com.cn/
3、参考文献
NDK网络开发手册