微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于AT90S2313-4PC的MP3无线遥控自动点播机 (上)

基于AT90S2313-4PC的MP3无线遥控自动点播机 (上)

时间:07-24 来源:微计算机信息 /叶又元 郑世宝 点击:
我们已经从唱片及八轨录音时代跨入了CD和MP3时代。把音乐转换成MP3已经变得很流行, 时下如何储存MP3文件是一个有趣的话题。本设计将教你MP3的存储方法,使你能在室内较宽范围内欣赏到MP3音乐。

  小型MP3播放机正在和CD、磁带随身听争夺移动应用方面的霸主地位。随著计算机用户对网络访问的不断推动和上网人数的增多,要是我的计算机能成为MP3 无线遥控自动点播机的服务器那该多好啊。

下面让我慢慢给你介绍我的实现方案吧。该方案可以让你在家中任何有FM|0">FM收音机(例如一个WALKMAN随身听)的地方欣赏MP3音乐。具体就是通过在计算机的音频输出口接上一个小功率FM发射机来实现,另外用一个移动单元用来显示服务器上MP3文件夹的内容,以便你可以从头至尾浏览你收藏的音乐。

  为使用方便起见,你可以向上滚动浏览最多4个包含不同歌曲列表的文件夹。选曲、开始、停止和跳曲用一般的红外线遥控器控制。红外遥控指令通过433MHz无线连接送到作为MP3服务器的计算机。

  服务器端我设计了两个模块, 433MHz接收机和FM发射机。接收机接收遥控器发过来的指令通过串行端口输入到计算机,後台运行的专用应用程序接收指令把它们分送到 Windows Media Player, Windows Media Player收到指令後播放点播的曲目,第二个模块FM发射机从计算机声卡输出取得音频信号把它发射出去。

  为了降低成本简化设计,433MHz无线连接仅以单工方式工作。也就是说,在你选定一个功能後相应指令通过无线连接发送到MP3计算机服务器上,如果发射机没有把它发送到服务器,你将什么也听不到可再次发命令。为了避免假指令中断操作,设计中使用了专用的编解码芯片,该芯片实现所有必需的功能,确保只有合法的数据包才能传输到MP3服务器。

  为了使遥控单元能显示服务器上的MP3文件夹的内容,使用前必须先把文件夹的内容下载到遥控单元。这可以通过MP3服务器上的串行端口用同样的应用软件把无线输入的指令送到Windows Media Player实现。遥控单元内的固件可控制多达4个不同的音乐文件夹。

  为了避免频繁地更新遥控单元的闪存,建议选定4个稳定的文件夹来进行遥控播放,其它文件夹用来存放新下载的音乐或者经常变动的收藏。遥控单元有32K×8 闪存,每个文件夹可以保存200个歌名(总共800个歌名)。因为闪存是非易失性存储器,所以即使遥控单元电源关掉,歌名数据也会保存下来,对于用电池供电的遥控单元来说这点很重要。

  遥控单元

  系统的核心是遥控单元,如图1所示。遥控单元主要由Atmel AT90S2313-4PC组成,Atmel AT90S2313-4PC提供15条I/O(使用了其中12条)内置一个硬件UART。因为该单元耗电很小,所以我用4节AA电池经过 LM2936CZ5低压差整流器为其供电。

  图1 MP3遥控器单元

  很明显,如果不能显示整个歌名和演唱者的名字,歌名显示就没有什么用处了。由于可能会有很多歌曲让你浏览,因此定同时显示4个歌名,选用4×40 LCD面板作为显示屏。与大多数常见LCD相比,该LCD的控制方式不大一样,用2片HD44780 LSI控制器进行控制,其中一片控制LCD上面两行字符,另一片控制下面两行。

  LCD通过B端口的7根以普通4位数据接口方式与微控制器连接。控制由一根RS和两根ENABLE组成,其中两根ENABLE?每个LSI控制器一根。因为LCD只接收指令不需要读出状态,所以R/*W接低电平。

  在用户接口方面,我没有采取在面板上安置按键和开关来控制的方法,而是用一个红外解码模块和一个通用的红外遥控器代替。红外遥控器采用普通而且容易买到的RCA CRCU410型号,它的遥控编码跟Quasar牌电视机(编码054)一样。我之所以选择这个编码是因为它简单,用软件解码比较容易。各个键和相应功能如表1所示。

  表1、遥控器各个键和相应功能

  歌名列表的非易失性存储使用连续的闪存EEPROM。我选用Mcrochip的24LC256I/P8EA,因为它比较常见容易买到。该芯片I2C器件,因此与微控制器AT90S2313连接仅需双接口。不过AT90S2313没有内置I2C端口的硬件电路,因此必须用软件实现I2C功能。然而幸运的是,Atmel公司提供了一个AT90S2313作为主控芯片时的I2C读/写时序应用笔记。

必须注意的地方是,I2C规格中SDA和SCL均需要用2.2KΩ上拉电阻。根据A0~A2设定的不同,24LC256I可以被设定成8种不同的 I2C地址,因而闪存可以扩展到256KB。本设计中因为仅用了一个芯片,所以3根地址都设定为低电平。

由24LC256I的使用手知道该器件需要5ms闪存写入时间,数据从AT90S2313 UART接收部分写入闪存。我设计的下载协议只有从服务器PC到遥控单元一个方向,因此不用

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top