基于Freescale MCU与Audio Codec的安卓音频附件设计

最新更新时间:2013-12-06来源: 互联网关键字:Freescale  MCU  Audio  Codec  安卓音频 手机看文章 扫描二维码
随时随地手机看文章

概要

  安卓音频附件是Android Open Accessory (AOA) protocol 2.0中新增的功能,它通过标准USB Audio Class Interface将来自安卓设备音频输出到附件中,将音频通过附件声卡播放出去;并且附件可以作为一个人机接口设备来控制安卓设备,比如媒体播放的简单控制等。本文详细描述了基于Freescale MCU与Audio CODEC的安卓音频附件设计方案。

  Freescale安卓音频附件简介

  本安卓音频附件方案采用Freescale Kinetis K(Cortex-M4)系列的MCU MK70FN1M0VMJ12作为主控芯片,Freescale 的SGTL5000音频编解码器将音频输出。MCU与安卓设备通过USB接收原始音频数据,并通过I2S输出到SGTL5000音频编解码器。下面是Freescale安卓音频附件的主要特点:

  ·安卓设备到附件采用44.1KHz 采样率、双声道、16比特原始PCM音频输入

  ·通过HID实现安卓设备音乐曲目切换与暂停控制

  ·通过I2C调节SGTL5000输出音量

  ·采用SGTL5000低功耗高性能立体声输出

  ·Xtrinsic Low-Power Touch-Sensing interface控制输入

  1 安卓音频附件硬件介绍

  1.1 硬件整体结构

  硬件框图

 图1 安卓音频附件硬件框图 

图1 安卓音频附件硬件框图

  安卓音频附件基本构成

安卓音频附件基本构成

  1.2 硬件功能模块设计

  Freescale Kinetis MCU MK70FN1M0VMJ12

  Freescale Kinetis K系列是一款基于ARM Cortex-M4 的低功耗、高性能微控制器。本方案采用该系列中的MK70FN1M0VMJ12进行安卓音频附件设计,具备1MB Flash与128KB RAM容量,同时具备USB 2.0接口。安卓音频附件使用以下MCU功能:

  ·MCU工作平率120 MHz

  ·采用USB Full Speed 作为音频输入

  ·通过I2S 音频接口与SGTL5000 CODEC通讯传输音频信号

  ·通过I2C 与CODEC通讯传输控制信号

  ·使用Xtrinsic Low-Power Touch-Sensing Interface作为媒体控制输入

图 2 Kinetis MCU原理图

图 2 Kinetis MCU原理图

  Freescale SGTL5000 CODEC

  本方案采用Freescale SGTL5000高性能、低功耗立体声CODEC,支持I2S IN/OUT, SPI/I2C控制通道。支持主/从模式。HP输出-100dB 信噪比,-80dB谐波失真。支持8KHz~96KHz采样率,16/20/24/32位宽。

  在安卓音频附件设计中,MCU与SGTL5000交互主要有以下几个方面:

  ·MCU作为I2S 主机,SGTL5000作为设备,由MCU提供SCLK;

  ·MCU通过I2C配置SGTL5000工作模式以及输入输出配置;

  ·SGTL5000输出音频过程中,支持MCU对其进行音量、音质等配置;

  图3 SGTL5000接口

图3 SGTL5000接口

  USB模块

  Freescale Kinetis K70 MCU集成了OTG模块,OTG实现了USB 2.0全速/低速的HOST和DEVICE功能,并且通过主机交换协议实现主机与设备之间的角色转换。在AOA 协议2.0中规定安卓设备为device,附件为主机,所以 本方案中使用MCU USB 全速HOST功能。

图4: USB模块

  图4: USB模块

  I2S模块

  Freescale Kinetis MCU K系列I2S模块提供同步音频接口 (SAI总线),它支持I2S、AC97、CODEC/DSP等全双工同步串行接口。本方案中,I2S模块主要负责将从来自安卓设备的音频流传输给SGTL5000 CODEC。MCU作为I2S主机,SGTL5000作为设备。

图5 I2S模块

  图5 I2S模块

  触摸感应输入(TSI)模块

  Kinetis系列MCU提供高灵敏度、高稳定性的电容触摸感应检测功能。每个TSI引脚实现一个电极的电容测量。TSI来源主要有两部分,一个为TWRK70板上的4个模拟按钮的电极,另外12个按钮连接到了触摸Tower开发板上;本方案使用板上的4个触摸按钮作为音频附件人机输入接口来控制安卓设备媒体播放。TSI模块支持边缘和范围检测,并且在触摸板短路时发生中断。

图6 TSI模块

  图6 TSI模块

  2 安卓音频附件软件设计

  软件架构

  本方案基于Freescale 实时操作系统MQX。在Freescale USB HOST STACK 上实现了AOA 2.0协议栈,并在MQX RTOS上实现了音频输出接口模块。数据流经由USB Host模块流入AOA 2.0协议栈,再由应用程序传递给音频输出接口,通过调用MQX I2S 驱动,将音频数据发送到SGTL5000 CODEC。对于来自TSI的操作命令,分为两种情况处理:音量操作输入经应用处理后直接通过音频输出接口控制I2C来调节SGTL5000输出音量;而媒体曲目切换及播放/暂停命令,经应用处理后,发送给 HID,通过AOA 2.0 Stack发送给安卓设备。

图7 软件架构框图

  图7 软件架构框图

  程序在Flash的布局

  程序在flash中的布局如图8所示,0x0000 0000~0x0000 6000空间分配给boot loader,用于对安卓音频附件固件进行SD卡升级,剩下部分为应用程序空间。

图 8 MCU Flash 布局

  图 8 MCU Flash 布局

  软件功能

  ·支持AOA Protocol 2.0 audio profile及HID*

  ·支持USB同步音频输入(44.1kHz采样率,16位,双声道)*

  ·支持I2S 立体声音频输出*

  ·支持TSI触摸板控制输入,进行音量调节、曲目切换与暂停/播放操作*

  ·支持I2S0的DMA传输以减少CPU负载*

  ·支持I2C与CODEC进行控制传输*

  ·支持SD卡升级固件功能,简单方便*

  编译环境

  采用 CodeWarrior Freescale Tool Chain编译

  结论

  本文主要介绍了基于Freescale MCU与Audio Codec的安卓音频附件设计, 该设计实现了将安卓设备媒体音频轻松传输到附件的进行高品质播放的解决方案。音频附件作为USB主机迎合了安卓设备对功耗的要求。

关键字:Freescale  MCU  Audio  Codec  安卓音频 编辑:神话 引用地址:基于Freescale MCU与Audio Codec的安卓音频附件设计

上一篇:2013面板行业热门事件大盘点TOP10(四)
下一篇:选用液晶拼接屏的几点关键注意事项

推荐阅读最新更新时间:2023-10-12 20:54

PIC单片机电源供电设计经验
使用PIC单片机过程中,我经常遇到使用单片机时,只注重软件,而轻视硬件的设计人员。 功能调试一切正常,但是在产品使用时,常出现各种各样的问题;这不仅与软件的健壮性相关,同时也与硬件设计不够完善有很大关系;有些开发人员(尤其是偏重软件设计的开发人员)会提出:硬件不足的软件来弥补。 但实际情况是在硬件设计严重不足,软件弥补的产品将不能提供很高的可靠性。 就此,简单分享下我在硬件设计,提高可靠性的经验;当然,仅是对我使用PIC单片机积累的经验而已,不足之处,还请见谅。 单片机的电源供电设计: 1.芯片无论是否使用模拟部分和AD部分,外围的VDD和GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬
[单片机]
单片机协处理器在电力系统中的应用
摘要:单片机协处理器能分担主处理器的部分工作,使电力测控系统在运行速度、功能需求等性能上有明显的改善。 关键词:单片机协处理器 硬件略图 软件 前言 在电力测量及保护系统中,通常是由单片机构成数个乃至数十个前端处理器。它们通过串行通信与微机构成的中央处理器相连接,形成一个完整的系统,以实现对电力系统的遥测、遥信、遥调、遥控等功能。 前端处理器的核心就是单片机,从目前的情况来看,以Intel公司的16位单片机80C196系列(KB、KC等)应用最广。单片机要处理的问题很多。如I/O量、A/D模数转换、键盘、通信、显示等,处理一圈所花费的时间常称之为前端处理器的运行周期。在整个系统中,前端处理器的数量较多,中央处理器对其进行巡
[单片机]
单片机定时/计数器工作于定时和计数方式时有何异同点
定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同: 处于计数工作模式时,加法计数器对芯片端子T0(P3.4)或T1(P3.5)上的输入脉冲计数; 处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。 本质都是一样的,都是计数. 定时器,当计数溢出后,会产生中断.
[单片机]
51单片机基于一个定时器实现多个软件定时器
软件定时器是用程序模拟出来的定时器,可以由一个硬件定时器模拟出成千上万个软件定时器,这样程序在需要使用较多定时器的时候就不会受限于硬件资源的不足,这是软件定时器的一个优点,即数量不受限制。但由于软件定时器是通过程序实现的,其运行和维护都需要耗费一定的CPU资源,同时精度也相对硬件定时器要差一些。在RTOS等操作系统中,都带有软件定时器,原理大同小异。典型的实现方法是:通过一个硬件定时器产生固定的时钟节拍,每次硬件定时器中断到,就对一个全局的时间标记加一,每个软件定时器都保存着到期时间,程序需要定期扫描所有运行中的软件定时器,将各个到期时间与全局时钟标记做比较,以判断对应软件定时器是否到期,到期则执行相应的回调函数,并关闭该定时器
[单片机]
51<font color='red'>单片机</font>基于一个定时器实现多个软件定时器
MCS51单片机边沿触发中断响应时刻的测量
MCS51单片机系列属于8位单片机,它是Intel公司继MCS48系列的成功设计之后,于1980年推出的产品。由于MCS51系列具有很强的片内功能和指令系统,因而使单片机的应用发生了一个飞跃,这个系列的产品也很快成为世界上第二代的标准控制器。51系列单片机有5个中断源,其中有2个是外部输入中断源INT0和INT1。可由中断控制寄存器TCON的IT1(TCON.2)和IT0(TCON.1)分别控制外部输入中断1和中断0的中断触发方式。若为0,则外部输入中断控制为电平触发方式;若为1,则控制为边沿触发方式。这里是下降沿触发中断。    1 问题的引出    几乎国内所有的单片机资料对单片机边沿触发中断的响应时刻方面的定义都是不明确的或
[单片机]
MCS51<font color='red'>单片机</font>边沿触发中断响应时刻的测量
基于C8051F000的多通道数据采集范围控制系统
1 引 言      在实际应用中,对被控对象的物理参数(温度、湿度、位移、电流、电压等)在一定的范围内进行控制,是单片机的典型应用之一。很多宏观要求精确控制的场合,其微观控制过程,仍可归结为是对某些参数变化范围的控制。如,传统的三相异步电机从启动到正常运行,其电流、电压和温度的变化;抽水塔水位的变化;机床刀具的行程变化及数字电表的自动量程变换等。这些控制过程最显著的特点是:被控物理量都是一个变化范围,而非某一个精确的“点”。有效控制物理量变化范围的方法很多,本文重点介绍利用C8051F000单片机片内8路高性能的12位ADC数据采集系统和可编程窗口检测器,实现对多路参数变化范围控制的硬件组成和软件设计方法。 2 C805
[单片机]
基于MSP430单片机的行驶车辆检测器的设计
利用环形线圈、MSP430F1121A单片机与输出接口,组成低功耗行驶车辆检测系统,并能根据用户预先设定的灵敏度、工作方式、输出方式进行车辆检测与信号输出。 还应用软件动态刷新基准的方法提高了检测的可靠性和准确性。实验表明:该系统具有结构简单、功耗低、调节方便等优点。 引言 近年来,车辆检测器作为交通信息采集的重要前端部分,越来越受到业内人士的关注。鉴于公路交通现代化管理和城市交通现代化管理的发展需要,对于行驶车辆的动态检测技术——车辆检测器的研制在国内外均已引起较大重视。车辆检测器以机动车辆为检测目标,检测车辆的通过或存在状况,其作用是为智能交通控制系统提供足够的信息以便进行最优的控制。 目前,常用的行驶车辆检测器主
[单片机]
基于MSP430<font color='red'>单片机</font>的行驶车辆检测器的设计
STM32单片机在KIEL4配置开发中的设置
开发环境:KIEL4,芯片STM32F103VCT6。函数库VC3.5 1.配置开发环境。 2.Option for Target,主要是C/C++和debug两个部分设置。 3.变量和函数名自动补全以及中文乱码设置。 4.逻辑分析仪。信号不存在或者不能出图形。
[单片机]
STM32<font color='red'>单片机</font>在KIEL4配置开发中的设置
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved