电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术维修教程知识电子制作基于AT90S2313-4PC的MP3无线遥控自动点播机

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

09-08 12:10:53 | http://www.5idzw.com | 电子制作 | 人气:753
标签:电子小制作,http://www.5idzw.com 基于AT90S2313-4PC的MP3无线遥控自动点播机,http://www.5idzw.com

我们已经从唱片及八轨录音时代跨入了CD和MP3时代。把音乐转换成MP3已经变得很流行, 时下如何储存MP3文件是一个有趣的话题。本设计将教你MP3的存储方法,?使你能在室内较宽范围内欣赏到MP3音乐。

小型MP3播放机正在和CD、磁带随身听争夺移动应用方面的霸主地位。随著计算机用户对网络访问的不断推动和上网人数的增多,要是我的计算机能成?MP3 无?遥控自动点播机的服务器那该多好啊。 
    
下面让我慢慢给你介绍我的实现方案吧。该方案可以让你在家中任何有FM收音机(例如一个WALKMAN随身听)的地方欣赏MP3音乐。具体就是通过在计算机的音频输出口接上一个小功率FM发射机来实现,另外用一个移动单元用来显示服务器上MP3文件夹的内容,以便你可以从头至尾浏览你收藏的音乐。

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

照片1、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到遥控单元一个方向,因此不用“握手”方式工作,所以我选用1200bps数据传输率,每隔 8.3ms处理一次输入的数据字符。这个间隔可以提供足?的时间把数据发送到I2C闪存,即使使用软件实现I2C功能,仍然有5ms的空馀时间来写 EEPROM。

我没有采用诸如MAX232之类成熟的RS-232接口,而是用一个2N3904 NPN三极管和一些无源器件将主机的RS-232电平转换成TTL电平。

选用Abacom公司AM-RT5-433作?无?发射机模块,其小型SIP封装很容易装配。Abacom公司慷慨地寄给我一对发射机和接收机的样品。这些廉价的模块是针对100码左右距离应用的,采用简单的载波开关调制来实现数据的发射。

我使用小型无?传输模块的其它经验来自价格较贵的Linx HP-II系列(900 MHz)。Linx HP-II系列采用FSK调制,发射机可直接由UATR驱动。

Abacom公司的技术人员说我选用的廉价模块不能直接与UART端口接口,然而Abacom公司设计了一个复合芯片NKM2401-N,该芯片根据mode?的连接不同可以充当编码器或者解码器来用。本设计中我在每个无?数据连接末端均用了这个器件。

遥控单元中NKM2401从AT90S2313 UART端口接收8字节的数据包(以2400 bps数据率),加上同步、预缓冲/後缓冲字节和CRC後再对最终数据进行Manchester编码。因?NKM2401的数据包格式?8个字节,但我的指令仅有2字节长,因此我自己加上同步字节和补充字节?成了一个8字节的数据包。NKM2401的数据输出直接连接到AM-RT5-433发射机上。至于天?,我使用了1/4波长的鞭状天?。

我想在遥控单元中取消NKM2401而改用AT90S2313固件程序实现相应的功能。遥控单元的固件是用汇编语言写的,仅用了AT90S2313 2KB闪存中大约1/3大小的空间,因此可留下很多的空间供其它有需要的程序用。然而在接收端我不打算使用微控制器,因此必须用NKM2401来解码。我未能从Abacom公司取得详细的通信协议(他们的协议比较容易看懂)因此我无法编写程序实现数据包的编码。给我点时间的话我可能会用示波器或者计算机上的程序捕捉到数据流?对它进行反向工程最後实现这个编码过程,遗憾的是没时间了。

在继续进行之前我补充几点。AT90S2313使用陶瓷振荡器工作在4MHz,这对于比较低的串行数据通信速率来说是足?了的。我必须把UART的速率设定在1200bps(数据下载期间)来接收数据,但发射时?把速率设定在2400bps(通过NKM2401和发射机发送命令)。我不得不这?做,因? NKM2401仅工作在2400bps速率,1200bps是可用于下载的最高速率(考虑串行闪存的写入时间)。

最後遥控单元上有一个标著J1 Link Test的跳?。如果装上跳?NMK2401-N将会不断地发送“ABACOM”信息,该信息可以用来检测无?连接。

无?接收机模块
无?接收机的作用是接收MP3遥控单元发射的433MHz信号?把信号转换成RS-232电平送到服务器PC。

Abacom公司的AM-HRR3-433接收机如图2所示。接收机模块跟发射机一样使用同样的1/4波长鞭状天?。


[1] [2] [3]  下一页

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