历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2018年02月12日 | 基于DLNA标准的数字媒体适配器的系统设计方案

2018-02-12 来源:eefocus

   为了能够实现传统的家电影音设备与网络媒体服务的互连互通,满足人们对数字媒体资源家庭网络共享的要求,提出了一种基于DLNA标准的数字媒体适配器的系统设计方案,并完成了系统的软硬件架构设计、以及基于UP-NP协议栈中间层的软件设计。该系统的硬件部分采用AmlogIC公司的AML 8726-M芯片,构成可组合的模块化硬件平台,软件部分完成对内核的裁剪以及硬件驱动,中间层基于UPNP协议栈及UPNP AV架构,以嵌入式linux为操作系统进行编程,能够实现DLNA设备间的零配置连接,实现媒体资源的输出播放。

    随着数字媒体的流行,大量的媒体资源已出现在家庭之中。然而,它们并不能相互合作,更困难的是不能将电脑中的资源应用于其他设备。DLNA的出现,旨在连接有线和无线网络,实现电脑、移动设备之间的媒体资源相互连通,实现任何时间,任何地点,无限制的分享音乐、照片以及视频等。DLNA并不是创造了一种新的技术,而是制定了一种解决问题的办法,一种大家都需要遵守的规则。
    数字媒体适配器的主要价值是可以连接计算机或手机中的音频、视频文件,经过数字媒体适配器的解码,输出到其他的展示设备。然而关键问题是各种设备之间如何使用一种公共的标准协议来实现互相连接,从而共享家庭网络中的媒体资源。另一方面,如何在低成本的前提下,实现高速率低功耗。随着数字媒体内容种类及数量的增多,人们迫切的等待着更加成熟的数字家庭技术方案,以更好地服务数字生活。

1 系统整体设计
    本系统整体上采用了ARM-Linux嵌入式体系,被广泛的应用于数字媒体设备中。图1表明系统整体整体框架,包含了系统软、硬件两大部分的层次结构。其中UPNP协议以及UPNP AV架构作为整个系统最重要的构成,实现了设备之间互通互控的主体功能,也是文中重要的研究部分。

a.JPG

   

    2 数字媒体适配器的硬件设计

    数字媒体适配器实现的主要功能是网络流媒体数据接收、流媒体解码、音视频流格式转换以及对流媒体服务的控制(如媒体内容选择、播放、暂停等)。硬件设计上,文中选用了Amlogic公司的AML 8726-M作为主控芯片,专为移动网络互联设备、平板电脑、机顶盒以及电视应用设备而设计。

    系统采用ARM Cortex-A9单核架构,主频800 MHz,大容量缓存提高了系统性能。另外配有MedioCPU完成音频解码,双DSP硬件解码器可以解码所有的视频格式,包括H.264,MVC,MPEG-1/2/4,VC-1/WMV,AVS,RealVideo以及MJPEG。

    系统在主控芯片的基础上,还配有丰富的输出接口和外围设备模块。外围存储包括64 M字节的SDRAM,用来处理数据的外部缓存;通过NAND FLASH接口外接512 M大容量存储芯片,用来存储启动引导程序、U-boot、内核以及文件系统;配有Mini SD接口,为媒体资源提供更大的存储空间。网络连接方面,总线连接网络接口芯片,作为读取接收流媒体的入口;WIFI无线网卡,实现无线上网功能;配有4个USB接口,读入移动存储设备中的媒体内容。此外,系统配有3.5-mm标准音频输出接口和HDMI高清接口,支持多格式的音视频媒体输出。

b.JPG

    
    系统通过有线或无线连接网络,与手机或电脑互联提供控制端;通过HDMI高清接口连接电视,作为显示端。外存中的多媒体文件通过SDRAM缓冲后,将视频流和音频流进行分解,在主控芯片解码完成后,由音/视频接口输出。

    3 数字媒体适配器软件设计

    本系统作为DLNA产品,符合其开发标准。表1中列出了DLNA互操作架构下的关键技术,系统功能实现所需技术也如表1所列。软件程序采用C语言编写,利用Intel SDKfor UPNP DevICes的库文件代码一起进行交叉编译成ARM平台Linux动态连接库文件,供上层应用调用。开发主机采取在VMWare中安装Linux虚拟机(Ubuntu11.10),以及arm-linux-gCC 4.3.2编译器作为开发工具链。



d.JPG

        3.1 控制点软件模块设计

    数字媒体适配器作为数字家庭中的重要设备,能够根据用户提供的某项服务,在设备间实现互操作,包括设备间的通信能力以及交换有效信息的能力。控制点(Control Point)作为UPNP AV网络中最重要的节点,负责在网络中搜索媒体服务器和媒体渲染器,发现用户所需要的媒体信息,协调两者之间的交互操作。软件采用模块化设计思想,全局分为4个模块;设备列表模块、主控管理模块、交互通信模块以及UPNP协议模块。图3为控制点软件模块结构图。

c.JPG

    1)设备列表模块

    设备列表模块用来在网络中实时监听、查找UPNP设备,对设备进行添加和删除,对设备表述的XML文件进行解析,列表与设备之间一一对应。此模块的设计实现了设备信息的缓存处理。在设备列表中,包含所有控制点需要的设备信息和设置参数;设备唯一的识别名称、XML文件描述的网络地址、基础URL以及设备超时时间等。

    2)主控管理模式

    作为软件模块中的中枢部分,主控模块基于UPNP协议模块,与设备列表模块与交互通信模块均相连,完成的主要功能包括:管理设备缓存、处理客户端命令、响应设备请求、解析设备回应。定义CTRlPoiNTCallbackEventHandlel()函数注册UPNP消息回调函数;接收到SSDP发现消息后,管理列表中的UPNP设备,如使用CtrtPointAddDevice()添加设备;调用CtrlPointHandleEvent()函数接收客户端的消息,对消息进行处理;使用CtrlPointHandleSubscribeUpdate()和StateUpdate()更新订阅和状态列表;调用CtrlPointSenDACtion()和CtrlPointSendActi onNumeiicArg()给网络中的UPNP设备发送消息。

    3)交互通信模块

    交互通信模块连接了主控模块与UPNP客户端,实现设备与控制点之间的交互控制,负责与客户端的通讯流程,完成服务端、渲染器以及控制点之间的交互操作。模块首先确定了与UPNP客户端的通信方式,定义Upnp Get ServerIpAddress()设定IP地址、UpnpGetServerProt()设定端口,使用CtrlPoinHandleGetVar()处理主控模块发送过来的数据包,完成对命令的解析,调用CtrlPointCommandLoop()函数连续发送指令,使用CtrlPointProcessCommand()函数将指令传送给主控模块,完成对命令的解析和处理。

    4)UPNP协议模块

    负责所有与UPNP协议有关的内容。系统采用libupnp开发包、以UPNP库作为底层协议,涵盖UPNP协议所需要的API接口及库函数。

    5)UPNP客户端

    UPNP客户端即系统输出展示设备,包括电视、音响等。

    3.2 系统软件工作流程

    根据DLNA产品开发标准中的关键技术,其中“设备发现与控制”和“媒体管理”是系统实现的重要功能,软件开发基于UPNP协议与UPNP AV协议架构。下文分别说明了两主要功能的具体实现。

    3.2.1 设备发现与控制工作流程


    设备在发现与控制技术部分,采用了UPNP协议栈架构。设备在此部分主要完成初始化以及异步操作处理两大主要功能。其软件工作流程如图4所示。

e.JPG

    
    初始化操作包括初始化UPNP协议栈、注册根设备以及初始化设备。系统调用函数UpnPINit()初始化协议栈,制定模块根目录,通过注册根设备,实现设备与UPNP库的关联。设备以多播方式发布存在消息,进入事件循环过程。当监听器接收到设备发出的事件请求后,创建时间处理线程,回调UPNP事件处理函数进行处理,随后开始异步操作处理过程。
    设备运行期间,控制点会发送各种请求指令,处理这些异步请求就是设备最主要的工作。这些异步请求包含订阅请求、取值请求和操作请求。订阅请求订阅了UPNP设备中服务状态改变事件,订阅成功后,一旦控制点的订阅信息发生改变,系统都会得到及时的通知。取值请求用于返回服务状态变量的当前值,设备监听到控制点的取值请求后,会激活事件处理回调函数,将返回的当前值提供给接口发送给控制点。操作请求用于改变服务状态变量值,设备从请求文档中得到操作所需的相关参数,建立响应文档后通知控制点设备。
3.2.2 媒体管理工作流程
    系统媒体管理部分基于UPNP AV架构,设备用来连接一个或多个媒体服务器,允许控制点在家庭网络内对媒体资源(例如音频、视频、图片等)进行控制。

f.JPG

    
    图5为媒体管理工作流程。系统进程开始于控制点对媒体服务器的发现,当选择好媒体内容进行播放控制时,首先要对媒体资源进行数据分析,控制点确定以何种传输协议以及数据格式进行数据传输,所有传输参数建立后,控制点通过调用Connection Manager::PrepareFor Conection()发布通知,控制媒体流。随后服务器或渲染器将向控制点返回一个AVTransport InstanclID,用来控制媒体内容的传输,例如播放、暂停等。同样,当媒体渲染器返回一个渲染控制ID,就可以用来对媒体进行控制,例如音量调节、亮度调节等。实际上,媒体内容的传输是媒体服务器和渲染器之间的操作UPNP本身并不参与。控制点利用UPNP协议建立设备间的连接,而媒体传输采用的则是具体的传输协议。

4 结束语
    系统作为DLNA产品的开发,完成了数字媒体适配器软、硬件的设计与实现。通过测试,系统实现了媒体资源共享及设备间的互控,能够对媒体内容进行传输控制和渲染控制。系统作为数字家庭媒体的中心产品之一,很好的实现了DLNA家庭网络的娱乐功能,也预示了电脑与家电产品互联互通的美好前景。


推荐阅读

史海拾趣

Eon公司的发展小趣事

E.ON集团的前身可以追溯到1999年,当时德国的两个能源巨头VEBA和VIAG宣布计划在2000年合并。这一合并标志着E.ON的诞生,成为德国乃至欧洲的重要能源公司。合并后,E.ON迅速崭露头角,通过整合双方的资源和优势,迅速占据了德国及欧洲能源市场的重要位置。

固得沃克(GOODWORK)公司的发展小趣事

深圳市固得沃克电子有限公司(GOODWORK)的故事始于2004年,当时公司正式成立,专注于半导体分立器件的研发、生产和销售。公司总部设在深圳,并创立了自主品牌“GK”。这一时期的固得沃克,凭借对技术的执着追求和对市场的敏锐洞察,逐步在电子行业站稳脚跟。公司初期虽面临诸多挑战,但凭借团队的坚持和创新精神,逐渐赢得了客户的信赖,为后续的快速发展奠定了坚实基础。

FEMA Electronics Corporation公司的发展小趣事

FEMA的创始人李明(化名)是一位资深的电子工程师,他在一次与客户的交流中,发现了市场对高质量电子元件的迫切需求。于是,他毅然决定创办FEMA,专注于研发和生产高性能的电子元器件。创业初期,公司面临着资金短缺、技术瓶颈等重重挑战。然而,李明凭借坚定的信念和不懈的努力,成功攻克了技术难关,并与多家知名企业建立了合作关系,为公司的发展奠定了坚实的基础。

EnerSys公司的发展小趣事

作为一家具有社会责任感的企业,EnerSys积极参与社区回馈活动,并致力于可持续发展。公司不仅在业务上取得了显著成就,还通过参与各种公益活动,回馈社会。同时,EnerSys还关注环境保护和可持续发展问题,努力减少生产过程中的能源消耗和废物排放。这些举措不仅提升了EnerSys的品牌形象,也为公司的长远发展奠定了基础。

请注意,以上故事框架为概述性质,并未详细展开每个故事的细节。在实际撰写时,您可以根据这些框架进一步补充和完善具体内容。

百事通科技(BUDDIES)公司的发展小趣事

在快速发展的同时,百事通科技(BUDDIES)始终不忘履行社会责任。公司积极参与公益事业,为社会做出贡献。同时,公司还注重可持续发展,通过采用环保材料、推广节能技术等方式,降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,还为公司的长期发展奠定了坚实的基础。

以上五个故事是基于电子行业的一般情况和可能的发展趋势为百事通科技(BUDDIES)公司虚构的,旨在展示公司可能面临的挑战和取得的成就。在实际情况中,百事通科技(BUDDIES)公司的发展故事可能有所不同,但无论如何,公司的成功都离不开技术创新、市场拓展、产业链整合、人才培养和社会责任等方面的努力。

Chengdu Sino Microelectronics Technology Co Ltd公司的发展小趣事

成都华微科技深知,在快速发展的电子行业中,单打独斗很难取得长久的成功。因此,公司积极寻求与其他企业和机构的合作,以实现共赢。通过与国内外知名的芯片制造企业、科研院所和高校的合作,华微科技不仅获得了更多的技术支持和市场资源,也推动了整个产业链的协同发展。这种合作与共赢的商业模式,为公司的快速发展提供了有力保障。

问答坊 | AI 解惑

STC系列单片机程序下载工具

用于STC系列单片机芯片的程序下载工具…

查看全部问答>

WinCE如何加载位图

满足如下条件: 1. WinCE5.0(C++) 2. 从文件读取一个RGB24bit的bitmap 3. 读取的数据转化为RGB16bit,即:RGB565的bitmap 4. 将数据加载到屏幕(或者DDraw的后台缓存中) Thanks in advanced!…

查看全部问答>

设备枚举时的描述符首先存放在哪里?

Get_Device_Descriptor、Get_Device_Configuration、Set_Configuration由谁首先下发的?设备枚举时的描述符首先存放在哪里?…

查看全部问答>

谁有ADC.h

周立功的一本书上《ARM&WinCE实验与实践-基于S3C2410》好多例程的头文件都是要光盘的, adc.h 这个是AD采集的, 不地道之处就在于买书不给配盘, 必须买MagicARM2410才有盘。我的是FriendlyARM SBC2410的 谁有看过这本书的,或者谁有光盘的我可 ...…

查看全部问答>

我的智能家居方案v1.0,已经再准备材料中

从一开始接触单片机就萌发了这个想法,刚开始想做一个太阳能热水器的温度水位的无线采集装置的,动机很简单,原来的控制器只有一个,我们家农村的房子有5个卫生间和一个厨房都需要知道现在热水器的温度和水位是多少了,所以在实际应用中添加了这些 ...…

查看全部问答>

CSS2.2或3.3支持Vista或Windows7操作系统吗?

我现在遇到CCS2.2在Windows7下无法安装?该怎么解决?请求帮忙?…

查看全部问答>

求Smart RF05BB外围电路图

请问,各位大牛,我现在买了TI的simpliciTI协议下的开发套件,但是现在想换成zigbee协议进行开发,因此想自己画两个Smart RF05 BB的板子,但是在TI的官网上并没有找到其外围电路图,请问哪位有资源分享下一啊,不甚感激!!!…

查看全部问答>

按钮SW2长按3秒,单片机实现清零

工作原理:单片机控制DC9V电机工作,电机通过减速箱后带动一个机械机构转动,挤压洗手液流出,每旋转一圈挤压一次洗手液,限位开关给系统输入一个信号,LED显示挤压洗手液的次数。SW4为电路板安装盒子前盖开关,当前盖闭合时,红灯亮2秒,红外光控 ...…

查看全部问答>

浅谈单片机应用程序架构

       对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,本人觉得架构是非常必要的。前不就发帖与大家一起讨论了一下《谈谈怎样架构你的单片机程序》,发 ...…

查看全部问答>