当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式数字多媒体终端硬件平台的设计与实现

引言
    随着信息时代的到来,信息技术尤其是计算机多媒体技术与网络技术飞速发展,语音教室在各种学校都已有了广泛的应用。现存的语音教学系统一般都是采用模拟电路,可靠性低,抗干扰性弱,易发生串音,从而在传输过程中会失真、衰减,且易受干扰,导致语音质量较差,同时布线也较复杂,建设成本比较高;另外现存的解决方案实现的功能较为单一,只能完成简单的教学功能,没有提供随意分组讨论、点名、选择题问答等应有的功能;另外,现存的解决方案没有发挥出现有的多媒体网络技术优势,无法进行高效、生动的多媒体教学,交互性比较差,教学效果受到很大的影响,严重影响了在实际教学中的推广与应用。要解决传统语音教学面临的问题必须引入数字化的设计。 

数字多媒体终端的硬件设计与实现
    数字语音教学系统由教师端、多个学生端(数字多媒体终端)、数字传输网络组成。其中,教师端一般采用计算机控制,主要完成系统管理及网络管理。学生端既可以基于PC机平台,也可以采用经济型独立设备。数字传输网络是所要传输的多媒体信息的载体。本文就是针对学生端设计一种经济实用的独立设备。它采用嵌入式数字信号处理器DSP+CPLD+接口电路的设计模式。数字信号处理器DSP实现语音信号的处理、网络接口部分的控制及多任务的管理。CPLD完成网络适配部分设计及部分外围电路控制。接口电路包含网络接口、模拟语音输入输出接口。语音传输中要保证语音传输的实时性和交互性,实现学生端与教师端和其他学生端的通信。

    硬件平台构造于DSP嵌入式系统上,该平台采用了TI公司的数字信号处理器TMS320VC5402作为核心部件,利用可编程逻辑器件XC95288开发了外围控制电路和接口电路,其电路如图1所示。它主要包括以下几部分:

          图1 嵌入式多媒体终端硬件平台结构框图
 
多种设备接口
    包括网络输入、输出接口、话筒输入接口和耳机输出接口。 

语音信号前置放大 
    由于从话筒输入的语音信号比较微弱(1~30mV),达不到编解码器对信号强度的要求,因此必须进行前置放大,这里由专用前置放大芯片完成。 

语音信号的转换及编解码
    语音信号的A/D,D/A转换及编解码功能是利用MC145480完成的,它的优点是:①可将语音信号的A/D,D/A转换及编解码集成在一个芯片中,提高了系统稳定性;②只需单电源供电,减少了双电源供电所带来的电源干扰问题,提高了语声质量;③可提供A律及m律两种编码格式,提供符合ITU-T G.711建议的语音数据流。
系统控制、管理与语音压缩

    由数字信号处理器TMS320VC5402完成。该芯片处理速度快,可实现语音的实时处理,并实现语音的回声抑制功能。除了能完成DSP所提供的功能外,利用内嵌的DSP/BIOS实时操作系统,可实现并建立语音实时多任务系统。

网络适配电路
    本网络的拓扑结构参考令牌总线网,物理拓扑采用总线型结构,由一根线形的电缆连接各个站点。逻辑拓扑采用环形结构,每个站点知道自己左边和右边站点的地址,在逻辑上构成一个环,数据沿环逐节点顺序传送。这种物理结构具有以太网电缆的可靠性,不会因某处电缆故障物而在物理上导致整个系统瘫痪。其所需电缆长度短,安装费用低,易于布线、维护和扩充。而且,物理上共享总线的站点之间可以直接通信,响应速度较快。同时,由于总线电缆固有的广播特性,使得应用中广播功能的实现较为容易。另外,由于逻辑环是公平的,每一站点对信道的访问时间有一个确定的上界,因此可以防止某一站点独占信道这种情况的发生。共享媒体语音网是一个局域通信网络,它没有路由问题,任何两个站点之间可以使用一条直接链路,所以不需要单独设置网络层,而可以将寻址、排序、流控、差错控制等功能都放在数据链路层中实现。

    该控制电路利用XILINX公司的可编程逻辑器件CX95288实现。网络适配器把数据总线上的低电平并行信号转换成0、1码流,通过连接网络各站点的电缆传输。它采用特殊技术,以便利用适配器共享局域网线缆、局域网的介质访问控制MAC方式和发送信号的类型。电路包括网络接口、接收电路、发送电路及与DSP的接口电路。其中,网络接口部分采用通用的RS-485通信接口,实现简单。共享媒体语音网络的适配器电路结构如图2所示。
 
             图2 网络适配器电路结构

数字多媒体终端的软件设计与实现
    数字多媒体终端系统除了利用DSP完成信号处理,实现全部系统控制功能之外,在系统软件设计中,需要对DSP、存储器、外设等各种资源加以管理,同时还要处理多任务并发操作和不同任务之间的协调。为了保证系统的可靠性和稳定性,本文采用了DSP/BIOS实现上述工作。

DSP/BIOS实时操作系统
    DSP/BIOS是TI公司推出的一个实时操作系统(RTOS),与TI的Code Composer Studio(CCS)集成在一个开发环境下。目前最新的版本是CCS 2.0 中的DSP/BIOS II。它支持软件模块化,通过修改内核提供占先式多任务服务;具有设备独立的I/O数据流模型;可以对内存进行动态分配与内存管理。DSP/BIOS实际上是一个可调用的系统模块API的集合,利用DSP/BIOS调试工具可以对程序进行实时跟踪与分析,提高应用程序开发的可靠性。通过DSP/BIOS 插件(Plug-ins)可实时观察内核中各线程的执行状态和对象的当前属性。利用配置工具(Configuration Tool)开发者可以对各个模块实行配置。非常有效地提高项目了开发效率,简化了DSP应用程序的开发和调试。

DSP/BIOS实时语音处理多任务系统
    对语音信号的处理利用DSP/BIOS建立实时多任务系统。DSP与音频编解码器之间的通信通过DSP的外设多通道缓冲串行口(McBSP)实现闭环测试。简单的语音处理系统由采集线程和播放线程两个应用任务组成。每个应用任务分别对应一个输入SIO和一个输出SIO流,通过两个半双工通道(一个输入,一个输出)来访问连接到音频编解码器的DSP多通道缓冲串行口。另外,在两个任务之间的数据交换通过DPI设备驱动完成。具体实现包括:
● 建立设备驱动
    设备驱动采用DAX驱动程序作为管理设备的软件模块。DAX驱动模块由DAX头文件和DAX函数组成。DAX_Params作为配置工具设备驱动对象的属性。每个设备驱动模块同时还需要一个控制模块,控制模块由外部函数bind、start、stop和unbind等组成,通过DAX_Params参数结构和配置工具配置控制器。其中,控制器的bind(unbind)函数负责绑定(解除绑定)设备驱动模块对设备端口的控制。控制器的start函数负责调用流SIO_get时打开设备端口,也就是打开McBSP的接收和发送中断使ISR中断服务线程正常运行。控制器的stop函数使停止中断运行并关中断。

    DAX函数由配置工具中设备对象的函数表调用,在dax.c中初始化驱动函数表DAX_FXNS,DAX函数表的结构如下所示:
DEV_Fxns DAX_FXNS = {
DAX_close,
DAX_ctrl,
DAX_idle,
DAX_issue,
DAX_open,
DAX_ready,
DAX_reclaim
};

    应用程序不直接调用驱动函数,这个函数表用于SIO模块调用特定的设备驱动函数,SIO模块依次发送通常的函数调用适当的驱动函数。

● 建立SIO流
    本文利用静态配置工具为每个任务建立一个输入流和一个输出流,采样线程对应采样输入流inSample和输出流outSample,播放线程对应播放输入流inSink和输出流outSink。

● 建立任务
    系统利用DSP/BIOS建立两个任务tasksample和tasksink,分别对应Sample 和Sink线程,以完成语音的采集处理与播放处理。采样线程Sample和播放线程Sink调用相同的I/O处理函数,I/O处理函数如下所示:
static Void doStreaming(SIO_Handle input, SIO_Handle output, Uns nloops)
{
Ptr buf;
Int i, nbytes;
if ( SIO_staticbuf(input, &buf) == 0) {
SYS_abort("Error reading buffer");
}
while(1) {
if ((nbytes = SIO_get(input, &buf)) < 0) {
SYS_abort("Error reading buffer %d", i);
}
if (SIO_put(output, &buf, nbytes) < 0) {
SYS_abort("Error writing buffer %d", i);
}
}
}

    虽然两个线程调用了相同的I/O处理函数,但是由于对应不同的输入/输出流,因此在多任务操作中,不会出现冲突。

● 建立中断服务程序 
    使用HWI硬件中断服务管理器HWI配置相应的中断服务程序ISR。当接收发生中断时,ISR将接收的数据放入缓冲区,当接收缓冲区满时,通知设备驱动程序DAX,将缓冲区的数据发送到inSample流中,供上层任务处理。

结语

    本文针对传统模拟语音教学系统的弊端提出了数字语音教学系统,并设计实现。该系统平台主要为数字语音教室的随意分组讨论、点名、选择题问答、播放备课文件、回放等一系列功能提供了实现基础。同时通过共享多种媒体,如声音、音乐、文字、图象等,减少时间浪费,使教学高效、生动,从而激发学生的学习积极性和想象力,有很好的开发应用价值。

参考文献:
1.TMS320C54XDSP Applications Guide.Texas Instuments, 1999.
2. TMS320C54XDSP Enhanced Peripherals.Texas Instuments, 1999.
3. 朱之剑、吕进,《多媒体技术及其应用》,浙江科学技术出版社,1997年5月.
4. 胡道元,《计算机局域网》(第二版),清华大学出版社,1996年12月.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机

为增进大家对嵌入式主板的认识,本文将对嵌入式主板以及嵌入式主板常见问题及其解决方法予以介绍。

关键字: 嵌入式 指数 主板

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

为增进大家对嵌入式的认识,本文将对嵌入式、嵌入式工作相关的内容予以介绍。

关键字: 嵌入式 指数 嵌入式技术

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存
关闭
关闭