概要
安卓音频附件是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.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原理图
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接口
USB模块
Freescale Kinetis K70 MCU集成了OTG模块,OTG实现了USB 2.0全速/低速的HOST和DEVICE功能,并且通过主机交换协议实现主机与设备之间的角色转换。在AOA 协议2.0中规定安卓设备为device,附件为主机,所以 本方案中使用MCU USB 全速HOST功能。
图4: USB模块
I2S模块
Freescale Kinetis MCU K系列I2S模块提供同步音频接口 (SAI总线),它支持I2S、AC97、CODEC/DSP等全双工同步串行接口。本方案中,I2S模块主要负责将从来自安卓设备的音频流传输给SGTL5000 CODEC。MCU作为I2S主机,SGTL5000作为设备。
图5 I2S模块
触摸感应输入(TSI)模块
Kinetis系列MCU提供高灵敏度、高稳定性的电容触摸感应检测功能。每个TSI引脚实现一个电极的电容测量。TSI来源主要有两部分,一个为TWRK70板上的4个模拟按钮的电极,另外12个按钮连接到了触摸Tower开发板上;本方案使用板上的4个触摸按钮作为音频附件人机输入接口来控制安卓设备媒体播放。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 软件架构框图
程序在Flash的布局
程序在flash中的布局如图8所示,0x0000 0000~0x0000 6000空间分配给boot loader,用于对安卓音频附件固件进行SD卡升级,剩下部分为应用程序空间。
图 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主机迎合了安卓设备对功耗的要求。
上一篇:2013面板行业热门事件大盘点TOP10(四)
下一篇:选用液晶拼接屏的几点关键注意事项
推荐阅读最新更新时间:2023-10-12 20:54
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况
- 直播已结束【安森美半导体超低功耗 RSL10 蓝牙 SoC 开发板详解】
- 2009 EEWORLD 年度人物大评选活动评奖揭晓
- 有奖直播|大唐恩智浦半导体 | 电池管理芯片方案设计和注意事项
- 用 TI 汽车电子方案充充电吧,看你止步不前还是勇往直前!
- 是德科技感恩月直播已结束|高速示波器基础与是德新品示波器解析
- 了解Keithley 4200-SCS参数分析仪,下载技术文章,抽奖赢礼!
- ST传感器闯天下之驱动移植大赛+骨振动传感器评测,分高者胜
- RIGOL那些年我们用过的仪器出炉,赶紧为你喜欢的作品投票吧!
- 下载有礼:数据中心养生秘籍《福禄克数据中心解决方案》等你带回家!
- 答题赢好礼!ADI技术直通车——汽车应用娱乐与信息交互解决方案