基于AT90S2313-4PC的MP3无线遥控自动点播机
发布时间:2008/6/5 0:00:00 访问次数:412
我们已经从唱片及八轨录音时代跨入了cd和mp3时代。把音乐转换成mp3已经变得很流行, 时下如何储存mp3文件是一个有趣的话题。本设计将教你mp3的存储方法,使你能在室内较宽范围内欣赏到mp3音乐。
小型mp3播放机正在和cd、磁带随身听争夺移动应用方面的霸主地位。随著计算机用户对网络访问的不断推动和上网人数的增多,要是我的计算机能成为mp3 无线遥控自动点播机的服务器那该多好啊。
下面让我慢慢给你介绍我的实现方案吧。该方案可以让你在家中任何有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低压差整流器为其供电。
很明显,如果不能显示整个歌名和演唱者的名字,歌名显示就没有什么用处了。由于可能会有很多歌曲让你浏览,因此定同时显示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所示。
歌名列表的非易失性存储使用连续的闪存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
我们已经从唱片及八轨录音时代跨入了cd和mp3时代。把音乐转换成mp3已经变得很流行, 时下如何储存mp3文件是一个有趣的话题。本设计将教你mp3的存储方法,使你能在室内较宽范围内欣赏到mp3音乐。
小型mp3播放机正在和cd、磁带随身听争夺移动应用方面的霸主地位。随著计算机用户对网络访问的不断推动和上网人数的增多,要是我的计算机能成为mp3 无线遥控自动点播机的服务器那该多好啊。
下面让我慢慢给你介绍我的实现方案吧。该方案可以让你在家中任何有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低压差整流器为其供电。
很明显,如果不能显示整个歌名和演唱者的名字,歌名显示就没有什么用处了。由于可能会有很多歌曲让你浏览,因此定同时显示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所示。
歌名列表的非易失性存储使用连续的闪存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
上一篇:数字电视的相关技术
上一篇:基于状态机的语音电子密码锁设计