基于Windows CE的嵌入式网络收音机

发布者:草莓熊猫最新更新时间:2010-11-18 来源: 电子设计工程 关键字:WinCE  网络收音机  嵌入式  S3C2440A 手机看文章 扫描二维码
随时随地手机看文章

  引言

  目前,国内收音机设备还停留在模拟收音技术阶段,而国外网络收音机均采用专用集成芯片接收方案,成本高昂且均以ODM(原始设计制造商)方式投入市场,技术封闭且界面单调,这无疑给信息家电和数字化家庭信息化系统的推广增加了阻力。

  本设计将嵌入式技术应用于实体网络收音机系统设计中,以Samsung公司ARM920T内核的S3C2440A为核心处理器,以Windows CE操作系统为软件平台,通过加载必要的驱动程序和应用程序构建一个完整的实体网络收音机系统,通过网络连接访问国内外网络电台并获取音频信息,下载播放并实现网络收音功能。系统可以通过有线连接或者无线连接(WiFi)接入网络,分析网络电台传输协议:对于采用顺序流式传输MMS协议的网络电台,利用Windows CE系统自带的Windows Media Player控件进行下载和播放;而对于采用实时流式传输RTSP协议的网络电台,利用相应的运行库实现网络收音功能,并通过软件音频解码后发送到音频设备,实现解码播放。

  1  系统硬件设计

  系统结构框图如图1所示。系统包括核心处理器S3C2440A、支持802.11b/g的USB无线网卡、快速以太网控制处理器DM9000网卡、I2S接口音频编解码芯片UDA1341声卡、触摸屏、存储器、USB外设和电源管理模块等。


图1  系统结构框图

  S3C2440A最高频率可达400 MHz,其包含有丰富的外围设备资源,支持SDRAM的外部存储控制器、AC97编解码器接口和TFT/STN液晶触摸屏接口。这些特性为系统的硬件电路设计提供了很多便利,能够在体积更小的单系统封装内提供更强大的运算与存储能力,同时减少产品使用的组件数量,让制造商开发出新型与独特功能设计的产品。

  2  软件系统设计

  操作系统采用Windows CE5.0。它提供了一个开放的标准基础平台,具有多线程、多任务、完全抢占式的特点。其模块化设计使嵌入式系统和应用开发者能够方便地定制以适应不同的产品。

  Windows CE包含4个主要模块:设备管理模块、对象存储模块、GWES模块和通信模块。除此之外,它还包括一些可选的操作系统模块,主要有以下几种:安装型设备驱动程序、多媒体(声音)支持模块、COM支持模块和Windows CE外壳模块。Windows CE模块化设计使嵌入式系统和应用程序开发者能够方便地定制以适应一系列产品的不同要求。

  Platform. Builder是微软公司为开发基于Windows CE操作系统的可定制平台而设计的集成开发平台。它包括集成开发环境、平台生成器、SDK导出器、调试器、远程实用工具和仿真器等,可以帮助用户方便地设计和调试基于Windows CE的平台。

  2.1  操作系统的定制


图2  Windows CE操作系统定制流程

  如图2所示,操作系统的定制主要包括Bootloader(系统引导程序)的开发、OAL(设备商适配层)的开发、本地驱动程序的开发以及平台文件配置等。

  Windows CE操作系统已为其中大部分硬件外设提供了可供参考的Bootloader程序、OAL程序和驱动源代码,为系统设计开发提供了样本程序,可有效提高开发的工作效率,减少重复性工作。

  针对本系统中采用的核心处理器S3C2440A,BSP(板级支持包)可由Samsung公司提供的SMDK2440BSP包克隆生成,因此源代码配置文件只需要对系统新添加的模块进行设置,完整编译即可完成。

  本系统除了要加入一些系统级模块(例如文件系统支持、触摸屏支持等)之外,还要加入Windows Media Player模块和VIA公司提供的无线网卡驱动模块。修改注册表中对应模块的设置,即在platform.reg中添加对VIA公司无线网卡的支持:

  [HKEY_LOCAL_MACHINECommVNUWLC5]

  "DisplayName"="VNT VT6656 Wireless LAN"

  "Group"="NDIS"

  "ImagePath"="VNUWLC5.dll"

  添加对以太网控制器DM9000的支持:

  [HKEY_LOCAL_MACHINECommDM9CE]

  "DisplayName"="DM9000 ISA Fast Ethernet Adapter"

  "Group"="NDIS"

  "ImagePath"="dm9isa.dll"

  2.2  SDK的生成

  SDK(软件开发工具包)是软件开发商提供给二次开发人员的针对性开发工具。SDK提供核心连接支持,用来支持桌面操作系统与嵌入式系统之间的通信,开发人员通过它来使用开发工具与嵌入式操作系统进行应用程序的运行测试。在Platform. Builder集成开发环境里,针对定制的镜像文件(nk.bin)输出SDK。

  2.3  应用程序开发

  Windows CE应用程序使用Embedded Visual C++集成开发环境,并且需要具体平台的SDK支持。本系统利用Platform. Builder定制生成的SDK直接进行开发,有效地提高了开发效率。目前,主要流媒体协议分为支持实时流式传输的RTSP协议和支持顺序流式传输的MMS协议。如rtsp://real.cnr.cn:554/encoder/cnr2(中央人民广播电台2台)的地址格式,这类网络数字广播采用RTSP协议来进行数据传输;如mms://windows_media_server/sample.asf的地址格式,这类网络数字广播采用MMS协议来进行数据传输。


图3  系统设计框图

  为了尽可能接收到所有网络电台,系统设计兼容两种传输协议。针对系统的特殊性,适用于该方案的系统设计框图如图3所示。

  系统通过解析用户输入的网络电台网址,分辨出所访问电台支持的流媒体传输协议,针对两类不同协议作出实时响应,接收数据并播放。

  2.3.1  实时流式传输RTSP协议

  实时流协议RTSP,用于建立和控制时间同步的连续媒体流,以及控制具有实时特征的数据发送。RTSP提供控制机制,能够处理更高层的问题(例如会话建立和注册),在体系结构上工作在RTP、TCP、UDP等协议的上层。正因为如此,RTSP可以很好地利用人们对现有工业标准的改善和提高,而不需要额外的优化工作。

  本系统采用开源软件LIVE库来实现RTP/RTCP协议,包括RTP/RTCP会话的建立、数据的接收。其主要任务是解析RTSP协议,通过DESCRIBE、SETUP、PLAY请求来获得音频数据格式,并将RTP包解包获得MP3帧数据,写入数据接收缓冲区。

  LIVE库仅包含4个基本的类:BasicUsageEnvironment、UsageEnvironment、groupsock以及livemedia。BasicUsageEnvironment和UsageEnvironment负责任务的调度和环境的配置;groupsock负责socks套接字的创建以及相应信息(询问信息和数据信息)的发送接收;Livemedia是整个工程的核心,负责rtsp、session(subsession)和rtcpinstance的运转。

  在数据传输过程中,LIVE库根据RTSP协议来建立会话描述。RTSP会话的建立分为以下几个步骤:

  ① 建立使用环境对象,创建客户端。

  ② 由RTSPClient对象向服务器发送OPTION消息并接收回应。

  ③ 发送DESCRIBE请求,并解析回应。

  ④ 根据SDPDescription在MediaSession中创建MediaSession对象。

  ⑤ 配置所有子会话对象。

  ⑥ 由RTSPClient对象向服务器发送SETUP消息并接收回应。

  ⑦ 由RTSPClient对象向服务器发送PLAY消息并接收回应。

  接收到的经过压缩编码的MP3音频数据只有经过解码后发送给音频设备,才能实现解码播放。为了缩短开发周期,本文使用LIBMAD库来实现MP3解码。LIBMAD库是一个开源的高精度MPEG音频解码库,支持MPEGLayer I、 MPEGLayer II和MPEGLayer III。LIBMAD提供24位的PCM输出,完全是定点计算,非常适合应用在没有浮点支持的平台上。使用LIBMAD提供的一系列 API(应用程序编程接口),就可以非常简单地实现 MP3 数据解码。

  为了使系统接收到的音频流数据能够正常解码并播放,系统采用双线程(数据接收线程和音乐播放线程)、双缓冲(数据接收缓冲和音乐播放缓冲)操作。两个线程并发运行,且音乐播放线程运行速度较慢。如果网络速度较快,数据接收线程的接收缓冲区已满,而当前音乐播放线程正在播放音乐,那么数据接收线程必须停止接收数据。如果不让数据接收线程进入等待状态,它会一直轮询音乐播放线程观察其是否需要数据。简单的轮询会浪费 CPU 资源,在这种情况下,有必要让数据接收线程进入等待状态。本系统使用信号量机制来动态控制线程的运行,有效地提高程序执行效率。

  2.3.2  顺序流式传输MMS协议

  MMS(Microsoft Media Server,微软媒体服务器)协议由微软制定,用来访问以及用于流式接收Windows Media服务器中的流文件,也是连接Windows Media单播服务的默认方法。在Windows Media Player中输入一个URL以便连接播放内容时要使用这个协议,当用MMS协议连接到发布点后,服务器会使用“协议翻转”来获得最佳的连接。

  Windows CE操作系统自带Windows Media Player组件,在操作系统定制时也特别加入了该组件。Windows Media Player 具有模块化体系结构,用户界面与音频和视频内容的播放功能相互独立,因此在本设计中只使用了其播放功能,并且将其外观功能隐藏,通过应用程序建立自己的应用界面。在应用程序中,只需要新建Windows Media Player ActiveX变量,设置其属性并调用Open方法即可实现连接和播放。

  2.4  界面设计

  人机界面设计首先要确立用户类型。嵌入式实体网络收音机定位于信息家电市场,因此界面设计要求操作简单、信息量最少以减小用户记忆负担,要有恢复出错现场的能力,在系统内部处理工作要有提示,尽量把主动权让给用户。

  工程利用Visual Studio 2005平台进行开发,选择基于对话框结构模式设计,并且要求Windows Sockets支持和ActiveX控件支持。根据系统分析,需要5个按钮控件(Button Control)、1个进度条控件(Slider Control)、1个树目录控件(Tree Control)和1个图表控件(Picture Control)。系统主界面如图4所示。


 图4  系统主界面

  完成控件的拖放后,拖动各个控件调整其布局,并对其属性和功能进行完善,实现网络收音机的基本功能。

  结语

  本文基于Windows CE系统实现的嵌入式实体网络收音机,内嵌WiFi技术,充分利用Windows CE系统资源实现访问网络电台并获取音频信息,下载播放并实现网络收音功能。它将电子信息技术融入传统家电设备中,有利于数字化和网络技术更广泛地深入家庭生活。

关键字:WinCE  网络收音机  嵌入式  S3C2440A 引用地址:基于Windows CE的嵌入式网络收音机

上一篇:基于嵌入式Linux和MiniGUI的SIP电话设计
下一篇:Chips&Media发布支持VP8解码的双路IP核

推荐阅读最新更新时间:2024-05-02 21:12

基于MSP430单片机的嵌入式手持数据采集系统
简介:uC/OS在手持数据采集系统的成功应用为手持设备软件系统的设计探索了一条新的道路。使用uC/OS设计嵌入式软件克服了传统的前后台式的软件设计方法的弊端,提高了系统的实时性和稳定性,使得软件系统代码模块化,更进一步增强了系统升级扩展的能力。未来,在嵌入式系统软件设计中uC/OS的应用领域必将变得更加的广泛。 本数据采集系统主要是使用TI公司的MSP430单片机与嵌入式系统uC/OS相结合而设计的,uC/OS在手持数据采集系统的成功应用为手持设备软件系统的设计探索了一条新的道路。使用uC/OS设计嵌入式软件克服了传统的前后台式的软件设计方法的弊端,提高了系统的实时性和稳定性,使得软件系统代码模块化,更进一步增强了系统升级扩展
[单片机]
基于MSP430单片机的<font color='red'>嵌入式</font>手持数据采集系统
基于嵌入式Linux与S3C2440双USB接口的视频存储
  针对长途客车“三超”(中途超载上人,超时,超速)以及在非正常停靠站私自停车上人导致的客车超载,同时目前市面上视频监控设备由于体积大、成本高等,使其难以推广应用在车辆中等问题,整合USB摄像头低成本、USB存储介质较SD(Secure Digital Memory Card)卡存储速度更快、支持更大容量等优点,提出了基于嵌入式。Linux及S3C2440平台的双USB接口车载视频存储方案。本方案主要利用单片机判别模块采集车辆行驶过程中运动状态信息(是否超速,存在急刹车、中途停车超时等),并结合车门在车速为零时的开闭对长途客车在非正常停靠点超载上人进行主动视频监控,便于以后的责任追究和认定,为监控中心的管理提供辅助。    1
[嵌入式]
基于IPP的嵌入式音频解码器设计与优化
  1前言   随着信息技术的飞速发展,形式多样的数字化产品已经开始成为继PC机后的信息处理工具,在这种数字化潮流下,嵌入式系统已成为当前研究和应用的热点之一。嵌入式手持设备的视音频多媒体应用也越来越广泛.由于嵌入式系统的应用要求及成本因素决定了嵌入式系统在系统资源, 包括硬件资源和软件资源方面都是非常精简和高效的。因此通过IPP底层API函数实现针对特定处理器的特定关键算法进行程序结构重组和优化,为嵌入式系统低功耗高代码执行效率提供一种很好的解决方案。   2 Intel IPP简介   Intel集成高性能原件(Intel IPP)是一个交叉架构的跨平台软件库,提供了大量库功能,用于多媒体,音频编码,视频编码,计算机
[嵌入式]
联手本土厂商 英特尔加强嵌入式应用
2008 年 04 月 03 日 , 英特尔(中国)有限公司和盛博科技嵌入式计算机有限公司(以下 简称“盛博科技”)在上海举行的 IDF 期间签署战略合作备忘录,宣布双方将加强合作和创新,发展盛博科技基于英特尔下一代嵌入式计算平台的解决方案在行业中的应用。 盛博科技总经理赵勇展示 凌动微处理器的嵌入式模板 一年前,英特尔曾庆祝其嵌入式领域的 30 周年,而此次和盛博的活动可以看成是在中国嵌入式市场努力的表现之一。由英特尔发明的 51 系列曾是最成功的单片机,然而最近 ARM 则风头正劲。在此次合作之前,英特尔刚发布了其凌动微处理器,这款英特尔历史上体积最小和功耗最小的处理器采用了 45 纳米
[嵌入式]
中科创达联合产学研共谋嵌入式人工智能未来发展
2017年11月3日,ThunderWorld2017中科创达嵌入式人工智能技术论坛在北京国际会议中心隆重举行。中科创达邀请来自于知名学府、人工智能领域的资深学者和产业大咖齐聚一堂,共同探讨嵌入式人工智能的技术趋势和商业应用。当前正值人工智能发展的转折点,此次技术论坛对于业界意义非凡,受到社会各界的广泛关注。 本次论坛邀请嘉宾有美国高通公司全球副总裁孙刚、旷视科技CTO唐文斌、嵌入式视觉联盟创始人Mr. Jeff Bier、寒武纪科技陈云霁博士、高通资深产品市场经理刘学徽、清华大学副教授邓仰东、Arm战略联盟业务发展总监金勇斌、Luxoft高级总监Mr. Alexey Rybakov、英特尔平台解决方案架构师何轲、中科视拓董事
[半导体设计/制造]
十年经验教你如何学习嵌入式系统(基于ARM平台)
一、嵌入式系统的概念 着重理解“嵌入”的概念 主要从三个方面上来理解。 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡。比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址,
[单片机]
TDK推出全新内存可扩展的嵌入式电机控制器
新的嵌入式电机控制器,带有64KB闪存和4KB SRAM 在智能执行器领域满足OEM对诊断功能增长的需求 产品将在2019年2月26日至28日于纽伦堡Embedded World展览的3A展厅438号展台展出 TDK集团成员Micronas公司推出新的嵌入式电机控制器HVC 4420F ,产品特色是具有用于驱动小的有刷、步进或无刷电机的扩展内存。设计该产品的目的是为了满足汽车工业智能执行器对于提供诊断功能的新要求。2019年3月起提供样品。计划2020年量产。 该产品扩展的64 KB闪存和4 KB SRAM能满足OEM对功能性和诊断的新增需求。而目前OEM采取各自不同的思路和手段来实现诊断。这包括传感器数据融合策略
[电源管理]
TDK推出全新内存可扩展的<font color='red'>嵌入式</font>电机控制器
基于ARM的嵌入式车载GPS定位系统设计
0 前言 车载定位系统作为车载信息系统的重要部分,利用GPS等装置,以一定精度实现车辆定位,包含位置、速度和行车方向等车辆姿态信息。继一些国家之后,我国一些科研院所和高校也开始研究自己的车载定位系统,市场空前的繁荣。但是传统系统功能单一、集成度不高。随着ARM处理器在全球范围的流行,32位的RISC嵌入式处理器已经成为嵌入式应用和设计的主流。同时嵌入式Linux是一个非常好的免费的操作系统内核,具有稳定、良好的移植性、优秀的网络功能、完备的各种文件系统的支持、以及标准丰富的API等特点。因此,本文提供了一套具有先进性及工程实用性的车载定位系统整体解决方案,使得系统的性能、集成度和可扩展性大大提高。 1 系统的硬件设计 1.1
[单片机]
基于ARM的<font color='red'>嵌入式</font>车载GPS定位系统设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved