0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AsixOS和MC68EZ328处理器实现手持信息终端的设计

电子设计 来源:电子产品世界 作者:缪爱国;刘昊;严菊 2021-06-11 17:08 次阅读

作者: 缪爱国;刘昊;严菊明

引言

MIDI(乐器数字接口)是一种电子乐器之间以及电子乐器与电脑等设备之间的统一交流协议。该协议是一个二进制形式的音乐描述语言,每一个描述乐器演播动作的字都赋给一个特定的二进制代码,通过它指示乐器即MIDI设备做什么和怎样做,如演奏音符、加大音量、生成音响效果等。

由于MIDI本身不是声音信号,而只是让声音设备产生声音的一系列的指令,所以MIDI文件本身非常小,特别适用于对存储容量有限制的手持设备,如手机和掌上电脑。本文将着重介绍如何在手持信息终端嵌入式系统平台上实现MIDI的播放。

MIDI的基本原理

MIDI文件主要由MIDI消息组成。MIDI消息又可分成通道消息和系统消息两大类,如图1所示。

图1 MID I消息的组成 从上面的描述中,

可以看到MIDI实际上只是一组数字信号,并不包括声音信号,它记录的是音乐在什么时间用什么音色发多长的音等等。MIDI音乐每个乐音是由三个要素组成的:音色、音高(音调)和音长。可以把各种乐器的音色先录下来,然后给每个音色编号,如钢琴编为00;再给音高编号,如C5编为49;然后是音符播放的时间的编码,如把8分音符编号为60。此时,数字串“00 49 60”就表示演奏的是钢琴的C5音,演奏时间为8分音符。MIDI在播放时,会根据MIDI文件纪录的乐曲信息向预先录制好的乐器(如钢琴)的波表发出指令,从波表中找出对应的声音信息,经过合成、加工后再回放出来,就形成了美妙的音乐。

手持信息终端软硬件平台

手持信息终端包括手机、个人数字助理(PDA)、掌上电脑(HPC)等等,它们可以实现多种功能,如PIM(电话簿、日程安排、备忘录、记事本、时钟)、计算器、录音、辞典、游戏和播放音乐等功能;也可以加入无线通信的功能,如电话、短信、无线Email等等;还可以通过数据线与PC相连,互通数据、进行备份和数据交换。

该手持信息终端平台采用的是业界流行的Motorola公司的MC68EZ328处理器;存储模块由4M字节的Flash闪存和2M字节的EDO DRAM组成;显示模块采用160×240的16级灰度的黑白屏,屏上合成有四线电阻式触摸屏。音频处理模块的作用是用来播放音乐,它由两部分构成:滤波电路和音频功率放大电路。该模块接受来自处理器内部输出的PWM脉冲信号和音频模块的开启关闭的控制信号。硬件平台的结构如图2所示。

图2 手持信息终端的硬件平台结构

该手持信息终端是以自主研发的多任务嵌入式操作系统AsixOS为基础,包括操作系统(Asix OS)、驱动程序包(Driver)、应用程序包(Application)、图形用户接口(AsixWIN)、图形库软件包(AsixGPC)、嵌入式数据库(AsixDB)、嵌入式文件系统(AsixFS)、网络协议软件包(Asixnet)等等。Asix模块原理框图如图3所示。

图3 Asix模块原理框图

由图可以看出,音频驱动模块是播放MIDI音乐的基础,它控制硬件设备的打开关闭等等操作;音频服务层是连接应用程序和底层驱动的枢纽,它包含了对底层操作的接口;应用程序是整个手持终端产品的具体功能的体现,MIDI播放器是其中一个用来测试MIDI播放的小应用程序,它是建立在音频服务模块和音频驱动模块基础之上的。

MIDI播放的实现

MIDI的播放需要软硬件协同工作,要播放MIDI文件,首先必须对MIDI文件进行解码:若是控制信息(如节拍、时间格式等等),则进行相应的控制;若遇到音符信息,则将相应的数据(音符代码、时间值)存储在音频缓冲区。

解码完成后,声音处理程序将对音频缓冲区中的音频数据进行处理,根据音符代码从各个软波表中取出相应音符的真实采样值送往音频设备,再由音频设备的滤波电路进行滤波排除电路中的高低频干扰,然后再经过音频放大电路对音频信号进行放大,驱动喇叭放出音乐,音乐时间的长短则根据音频缓冲区中记录音符长短的数据来控制音频设备的开启和关闭来实现。

由于手持信息终端存储容量的限制,该手持信息终端的软波表只包含了大钢琴(Acoustic Grand Piano)的一种音色,具有3阶音色(12×3个音符)。该软波表采用16kb/s和8bit的采样率进行录制,每个音符采样0.5秒,即每个音符占有8000个字节,所以整个软波表的大小为12×3×8000=288K字节,这样的大小对于手持信息终端来说应该是可以承受的。

声音处理程序是利用MC 68EZ328的定时功能和PWM输出功能来实现的。PWM具有三种工作模式:回放(playback)模式、单音调(tone)模式、D/A模式。由于tone模式发出的声音的频率比较单一,不能达到真实乐器的效果,所以采用了回放模式。回放模式是利用软波表来实现的,它根据真实乐器的采样值进行回放,从而能达到比较真实的效果。

MIDI播放的实现在硬件上是由两部分组成的:M68EZ328内部的PWM模块和外部滤波放大电路。具体原理如下:

PWM(脉冲宽度调制)是一种对模拟信号电平进行数字编码的方法。通过对方波的占空比调制来对一个模拟信号的电平进行编码。

音频处理的外围电路比较简单,它主要用来处理由PWM输出的MIDI音乐,由滤波电路和音频功率放大电路组成。MC68EZ328内部具有PWM输出电路,经过一个由两级运算放大器构成的滤波电路,滤除噪声后取出音乐信号;滤波后的信号,在经过功率放大电路放大后,推动扬声器发出音乐声。为了减小功耗,音频功率放大电路和滤波电路都有使能控制信号控制,当需要播放音乐时将电路使能,平常关闭该模块。

软件的实现

通过对软件平台的介绍,可以知道Asix OS是一个嵌入式的多任务实时操作系统,所有应用程序都是通过任务调度机制来实现的。因此要实现MIDI的播放需要软件在以下三个层次给予支持:音频驱动模块、音频服务模块、应用程序(MIDI播放器)。当点击应用程序(如MIDI播放器)后,操作系统就会进行任务调度,然后启动相应的服务模块(音频服务模块),通过服务模块再调用底层驱动来播放MIDI音乐。下面将具体阐述一下各模块的功能和实现:

该模块是MIDI能够播放声音的基础,它直接和底层硬件相关,通过CPU中PWM模块的一些寄存器来实现声音设备的打开关闭等操作。它通过声音服务模块被所有的需要发音的程序所调用,是所有发音程序得以正常工作的基础。

它由以下几个子模块组成:PWM音频设备初始化模块;PWM音频设备回放率配置模块;PWM音频设备启动模块和关闭模块;PWM音频设备工作模式选择模块。

该模块屏蔽了底层的驱动,为应用程序访问音频设备提供了统一的接口,使用户无需关心底层的具体实现即可以完成声音设备的控制,使之具有较好的移植性。它主要通过消息机制来实现,为应用程序和底层驱动模块的通信提供了一个桥梁,从而避免了直接和硬件打交道。服务层主要由定时播放模块、定长播放模块和配置模块组成。

音频服务模块是播放MIDI的关键,它处于承上启下的作用,用于连接上层的应用程序和底层的设备驱动。该模块中MIDI解码子模块完成对MIDI文件的解释,并得到最终要播放的音符信息和各种控制信息链表,由于MIDI的解码涉及到MIDI文件的规范协议和具体的算法,这里不作详细的描述。

音频服务模块提供两个层次的接口,面向应用程序的接口和面向底层的接口。

服务模块的接口工作原理如图4所示。

图4 服务模块接口

MIDI播放模块包括MIDI播放器(用来测试MIDI播放的应用程序之一),此外还可以在手机铃声、信息提示音、笔触音等等程序中实现MIDI的播放,但其实现原理基本上都是一样的。除了界面上的设计,主要就是调用MIDI服务模块提供的几个接口函数即可实现MIDI的播放,这里不作详细介绍。

结语

本文的手持信息终端平台经过实际测试,播放效果令人满意,能够和一般的手机铃声相媲美。由于MIDI文件的体积较小,正好可以弥补手持信息终端存储容量小的缺陷,因此它具有广阔的应用前景。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19155

    浏览量

    229059
  • 接口
    +关注

    关注

    33

    文章

    8488

    浏览量

    150809
  • 操作系统
    +关注

    关注

    37

    文章

    6732

    浏览量

    123182
收藏 人收藏

    评论

    相关推荐

    Cortex-A9处理器的精妙应用

    与耗能较低的特点,比较多应用在智能手机,也配置在各大智能终端上。  1.智能手机  市面上除了部分如htc和小米这种用高通的cpu的手机商,其他双核手机基本采用ARM Cortex-A9处理器。比较著名的有MOTO里程碑3代、Atrix4G,LG擎天柱2X,三星9100,
    发表于 11-03 17:02

    适用于Motorola 68020/68EC020和68030/68EC030处理器的HP 64700系列仿真

    适用于Motorola 68020/68EC020和68030/68EC030处理器的HP 64700系列仿真
    发表于 02-27 16:59

    如何利用PXA255处理器的Sitsang开发平台实现红外模块的设计?

    本文将详细讲解基于Inte1的PXA255处理器的Sitsang开发平台红外模块的设计,其中包括Linux下的IrDA驱动程序的开发和基于MC68HC908AP64红外发射的软硬件设计两个部分。
    发表于 04-27 06:03

    MSM8940处理器有哪些特点

    MSM8940处理器是什么?MSM8940处理器有哪些特点?
    发表于 11-09 07:09

    RK3399处理器与AR9201处理器有哪些不同之处呢

    RK3399处理器与AR9201处理器有哪些不同之处呢?hi3559A处理器与RV1126处理器有哪些不同之处呢?
    发表于 02-21 07:29

    Sitara AM62处理器的资料分享

    和预测性维护),有助于赋予HMI全新的意义,而不是仅限于实现人机交互的界面。AM62处理器能够以低功耗实现边缘器件的分析功能(挂起状态功耗低至7mW且无需特殊考虑散热设计),支持工程师灵活地在尺寸受限
    发表于 11-03 06:11

    基于ARM的PC/104处理器模块设计

    提出了一种低成本的PC/104处理器模块的设计。该模块硬件上以ARM处理器为核心实现了PC/104处理模块的基本结构、总线接口,软件上构建了嵌入式Linux操作系统。以ARM
    发表于 08-25 10:36 20次下载

    Intel 64位处理器,Intel 64位处理器结构原理

    Intel 64位处理器,Intel 64位处理器结构原理 现在人们广泛使用的是由32位微处理器构成的计算系统,但是32位的计算和操作系统不能支持
    发表于 03-26 15:07 3291次阅读

    苹果a6处理器怎么样_a6处理器参数

    苹果正式发布iphone5,iphone5采用A6处理器,那么A6处理器怎么样?a6处理器参数是什么呢?a6处理器四核的吗?带着这些疑问,我们来一起了解下A6
    发表于 09-13 14:29 2.6w次阅读

    基于ARM11处理器的嵌入式视频处理终端设计与实现

    首先对嵌入式系统和视频处理进行了简单的介绍,指出了采用$3C6410处理器设计的视频处理终端具有的优势。其次,对$3C6410多格式视频编解码的使用进行了仔细分析,为多格式视频编解码
    发表于 12-17 14:56 21次下载
    基于ARM11<b class='flag-5'>处理器</b>的嵌入式视频<b class='flag-5'>处理</b><b class='flag-5'>终端</b>设计与<b class='flag-5'>实现</b>

    麒麟9000处理器和高通骁龙875处理器相比如何?

    随着华为mate10系列的发布,华为最后一代旗舰处理器,麒麟9000也就此亮相,大家对于麒麟9000处理器十分的看好。因为麒麟9000处理器在安兔兔的跑分竟然高达72万分,较上一代麒麟990
    的头像 发表于 11-03 11:31 5870次阅读

    vivo将首发搭载Exynos 1080处理器终端产品

    芯片将由vivo首发。现在有最新消息,近日三星官方正式予以证实,vivo将首发搭载Exynos 1080处理器终端产品。
    的头像 发表于 11-29 10:42 2370次阅读

    基于Linux和XScale PXA270处理器实现信息交互系统的设计

    本系统采用Client-Server结构,包含两大功能模块:嵌入式信息终端模块和PC服务模块。信息终端以基于XScale PXA270
    的头像 发表于 06-22 16:00 2128次阅读
    基于Linux和XScale PXA270<b class='flag-5'>处理器</b><b class='flag-5'>实现</b><b class='flag-5'>信息</b>交互系统的设计

    rk3566处理器属于什么档次?

    rk3566处理器属于什么档次? RK3566处理器是一款由瑞芯微公司推出的高性能处理器,在硬件配置和性能上都表现出了很强大的实力。目前市场上已经有了很多的RK3566处理器,相信大多
    的头像 发表于 08-15 17:25 3.2w次阅读

    SK-AM68处理器入门套件用户指南

    电子发烧友网站提供《SK-AM68处理器入门套件用户指南.pdf》资料免费下载
    发表于 11-13 15:02 0次下载
    SK-AM<b class='flag-5'>68</b><b class='flag-5'>处理器</b>入门套件用户指南