电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术维修教程知识电子制作基于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

预加重网络中的RC值视立体声接收机的输出以取得较平坦的频响?目标而确定,图4中的设定值还是比较合理的。别指望选定的元件值会达到北美FM广播的去加重常数标准值75us,要考虑到还有很多存在于VCO中的因素会影响调制特性,我设定的参数值可使发射机获得比较平坦的频响。注意,图4中没有提到天?,如果设备放在塑料壳内其发射距离能达到50码,那就很好,因?政府相关法规规定禁止使用发射半径大于50码的发射机。

我用一片1.5x1平方英寸的小型单面PCB板制作了电路的VCO部分(如图4虚?部分所示)。电路剩下部分在一块Simm-Stick面包板上手工连?。VCO PCB板设计成SIP封装的样子垂直安装在Simm-Stick面包板上。

软件和固件

应用软件包括计算机上运行的应用程序和运行在遥控器上的客户固件。PC端服务软件用Visual Basic 6语言编写。

遥控器固件用AVR汇编语言编写。FM发射机另外用一片AT90S2313稳频。现在所用软件是试用版,因此我暂时用BASCOM-AVR编译器代替AT90S2313。

客户端应用软件

运行在PC上的客户端应用软件主要有两个主要功能∶大多数时间它一直在检测COM1端口搜寻遥控器发给它的指令∶另一个功能是用它来浏览文件目录?指定4个文件夹作?自动点播文件夹。这些文件夹中的文件名接著就被转换成数据记录,用COM1端口的发射部分发送到遥控器上。除非文件夹的内容更改,否则只下载一次,因?这些数据存储在遥控器中的歌名列表闪存中,见照片2。



照片2 用以控制媒体播放器上的MP3文件的播放的PC应用程序

我详细地介绍一下第一个功能。正如前面提到的,计算机和遥控器之间通过433MHz无?连接,在PC端433MHz接收机以2400bps速率接收RF信号?把它转换成串行数据,接著把它送到COM1端口。所有数据格式和数据纠错均由NKM2401编/解码器芯片组成的硬件电路完成。这样做可以确保客户端应用软件接收到的的指令都是合法的。

NKM2401采用8字节数据包格式。遥控器发送的所有指令由2字节同步数据(0xAA, 0x55)後跟16位指令字和4个补充字节组成。2字节指令字用来区别4种指令∶播放(停止),播放下一曲,播放前一曲,播放全部和暂停。其它14位数据用来选择当前文件夹和该文件夹内歌名的一些附加信息。

当你选出要用的文件夹时,文件夹就会打开,接著分析该文件夹然後显示出唱片长度信息。在应用中我效仿了这个功能,把它应用到了发射机和遥控器上。这样做使你可以在遥控器的LCD上看到所有歌名。另外它意味著你仅需发送数据库文件中歌曲位置的相应编号就可以点播歌曲。

客户端程序确定播放哪一首歌曲後怎样使计算机播放这首歌曲呢?如果歌曲是WAV格式,那就很简单,因?Visual Basic内置的多媒体支持功能包括WAV文件的播放,然而它不支持MP3文件的播放,起码我所用的版本是这样。我到处寻找能播放MP3文件的控件但没能找到免费的或者价格合理的。

在这方面我又碰钉子了。我刚下载了Microsoft免费发布的Windows Media Player V.7。这个多用途程序能?很好地播放MP3文件?且有很多你所需要的附加功能。像很多Windows程序一样它有支持快捷键的优点。我的想法是同时运行我的MP3自动点播机客户端程序和Windows Media Player,然後用我的客户端软件控制Windows Media Player。这可以用一系列的Visual Bsic命令实现。

第二个功能,选择想要的音乐文件夹(多达4个)?把内容下载到遥控器的闪存上,这个功能仅偶尔用到。你只需选定文件夹接著点击表格左边的4个数字按钮中的一个就可以了。有一个窗口记录著歌名列表闪存剩馀的空间。如果闪存没有用完的话每个文件夹能装将近200首歌曲。

?了简化遥控器的固件,我假设4个文件夹都会用到,因此全部下载。如果你没有那?多文件夹,那?不足的文件夹将用你选定的文件夹的复件代替。

按下载键之前遥控器必须先插入PC的COM1端口暂时代替433MHz接收机。我用前面提到的自己做的电缆让它一直插在PC上,电缆另一端?5pin DIN插头,该插头与接收机和遥控器都是匹配的,这样连接就非常方便。下载时间由遥控器中的闪存的写入时间?定。在所有4个目录均含大约200首歌的极限情?下,下载时间大约?4分钟。下载进程用检测盒显示,检测盒显示在客户程序文件夹列表旁边,在遥控器LCD显示屏上也有相关信息显示。

AVR固件

我已大概介绍了FM发射机的自动频率控制原理。实现这个功能的程序非常简单,因此用Basic语言编写?用BASCOM-AVR编译器编译。

遥控器的固件比较棘手。最初我试著用BASCOM-AVR编译器编Basic程序但生成的程序代码太长,AT90S2313中的闪存空间装不下。随後,我用汇编语言编程实现了遥控器的功能,使用的程序空间不到AT90S2313闪存空间的一半。

与PC客户软件一样遥控器单元有两个功能,其中一个功能不常用。打开时它显示文件夹1中的前4首歌,接著循环检测由RCA通用遥控器发出的红外?指令和红外?接收机模块接收到的指令。红外信号进入AT90S2313的INPUT CAPTURE?D6端口,接著由定时器1(16位定时器/计数器)的输入捕捉特性译码。我选用比较简单的红外?指令结构(Quasar牌电视机编码054)以?少工作量。这种指令结构的起始部分是固定长度的起始?冲,後面紧跟8位数据,数据位用?冲与?冲之间的2个不同的时间间隔表示。在确认固定长度的起始?冲後,你要做的只有两件事∶捕捉接下来的8个?冲的时序;根据时间间隔将它们区分开来?分配适当的值。就像前面说的遥控单元不停地检测传来地指令然後执行相应的功能,导航功能仅局限浏览歌曲列表和从一个文件夹跳到另一个文件夹。这通过调整指向闪存,读取歌名?把这些ASCII字符发送到 LCD显示屏实现。

通过AT90S2313的UART发送端口发送相应的命令来实现播放,播放下一首,播放最後一首和暂停功能。同样,此时NKM2401使用8字节数据包格式,同步字节和补充字节也必须按照需要加到16位指令字中。

设计有专用的下载功能按键。按下它时程序功能变成接收从AT90S2313的UART端口送过来的字符,PC?生的数据就用该功能传送到歌曲闪存中。

Atmel 24C256闪存芯片?I2C接口的32K×8存储器,其5ms的写入时间有点慢但对本设计?无大碍,因?从服务器计算机送来的数据的速率是 1200bps,相当于每8.3ms传输一个字符。AT90S2313没有专门的I2C端口,因此这个功能必须用固件实现。主程序直接套用Atmel公司应用笔记中的程序,效果很好。

LCD?一个4×40点阵的器件,使用常见的Hitachi公司的HD44780控制器,实际上该控制器内部包含两个LSI控制器和一个公用的数据/控制接口,外加两根ENABLE?。我必须改写我原来的4位LCD驱动程序来应付LCD1、2行字符由控制器1控制,3、4行字符由控制器2控制的情?。

结语

我觉得这个设计很有意思,也许是因?它用了无?传输的缘故吧。Abacom公司的接收/发射模块配合该公司的编码和解码器件应用,性能很好。此外,贴近用户的AVR器件闪存编程能力使汇编程序的写入变得非常轻松。

对本设计我基本满意,但仍然觉得有些不足的地方。我原来?不打算花那?多时间来做一个令人满意的FM发射机模块。现在来说可能是迟了一点,近来我看见市场上有Rohm公司的BH1416F无?音频连接IC,它采用SOP22封装,内部包含完整的PLL稳频FM发射机和FM立体声调制器。我买了这个芯片,打算以後试试。如果你不是一个超级音乐迷希望你可以将这里提到的一些想法用到其它方面去设计出更好的东西。

上一页  [1] [2] [3] 

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