基于USB主机和ZigBee的无线音响系统 (二)
扫描二维码
随时随地手机看文章
4 协议的实现
4.1 USB 协议
USB 设备就是能够通过USB 来发送和接收数据,从而实现一定功能的实体。每个USB 设备都具有表明自身能力和所需资源的描述符。在设备第一次连接到主机上之后,首先要接受主机枚举,提供描述符。在得到主机的允许之后,设备就可以分得的USB 带宽,进行数据传输了。
系统通过简单的数据线上的电平变化检测到USB设备的接入与移出,接着主机和外设就按照事先约定的顺序执行一系列的信息交换,也就是主机复位设备->主机给设备供电->设备通过缺省的地址0 与主机通信->主机给设备分配地址->主机请求设备的一系列功能和设备描述符…,因此,在程序中,通过顺序的编程和中断的调度,就可以完成主机系统的标准的USB 活动。以上是主机软件的第一部分,主要实现对外设的配置,读取外设的信息,从而判断该设备属于USB 的哪一类,并确定下一步选用哪个特定的程序加以支持。
单片机系统中,限于系统的性能和要求,只需要支持某几个特定的类就可以了。本系统是一个在USBFlash 存储器中的应用,这个USB 主机需要支持的就是USB 的Mass Storage 类,那么程序就要实现USB的Mass Storage 类所规定的各种命令。主机的程序流程如图4 所示。
图4 USB 主机的软件流程。
整个主机协议的实现主要可以分为以下三点:
①单片机与接口芯片通信的实现。②主机最底层数据包发送的实现。③请求命令的实现。1,2,3,层层递进,一级比一级高级。
4.2 ZigBee 协议
ZigBee协议栈建立在IEEE802.15.4标准之上,该标准制定了物理层(PHY)和媒体接入控制层(MAC)规范。ZigBee联盟则定义了其上的网络层(NWK)、应用层(APL)以及安全服务规范。
物理层提供了基本的物理无线通信能力;MAC层提供设备间的可靠性授权和单跳通信连接服务;ZigBee协议栈的核心部分在网络层,主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能;应用层包括应用支持子层(APS)、ZigBee设备对象(ZDO)和应用对象。APS提供了网络层和应用层之间的接口;ZDO负责所有设备的管理,如初始化设备的发现和建立安全关系等功能。
ZigBee采用自组织方式组网,支持星形网、网状网和簇状网等多种拓扑结构。由于在智能家居中多采用星型拓扑结构, 因而本论文主要对星型拓扑进行组网和测试。
5 系统软件设计
5.1MSP430控制读取U盘数据
当设备连接到USB总线时,固件执行USB处理程序,处理程序的流程如下:
(1)FAT文件系统初始化。
本系统采用的U盘是满足FAT文件格式的,了解FAT文件系统是系统软件设计的基础。
FAT文件系统有固定的格式,主要分为主引导扇区、引导扇区、文件目录表和数据区等几个部分。MP3文件的内容存放在数据区,但为了得到数据区的地址,首先要得到主引导区和引导扇区的内容;文件目录表中记录着文件的信息,如文件名称、类型和簇号等,可以通过得到文件目录表来判断分区中MP3格式文件的数目和每个文件的簇号,这些都为正确地定位MP3文件打基础。
(2)获得MP3文件个数,在这个程序中仅仅查询根目录下MP3格式的文件个数。
FAT文件系统的文件目录表中包含分区中所存的文件信息,每个文件的文件目录表占用32个字节空间,该空间的第9、10、11位为文件的扩展名,可以把每个文件的扩展名和MP3格式文件的扩展名相比,进而得到总的MP3格式文件个数。
(3)通过文件目录表找到MP3文件所在的簇号之后就可以得到文件的物理地址,进而读取MP3文件的帧头并获得该文件的信息。MP3文件由三部分组成,首先是ID3V2,然后是数据帧,最后为ID3V1,数据帧的帧头包含MP3的采样率信息,将这些信息通过无线方式传送到接收端,进而对解码器和接口模块进行配置,这样就可以读取文件了。
5.2 ZigBee 网络传输的软件设计
ZigBee 无线通信网络由三种节点组成:协调器(ZC)、路由器(ZR)和终端设备(ZD)。协调器是网络的中心节点,在本文中即为ZigBee 主节点;路由器负责网络内信息帧的路由;终端设备连接解码器,实现音频输出。
网络组建过程主要包括以下三个过程:
(1)网络初始化过程:节点初始化后, 扫描信道检查网络是否存在;(2)主节点配置网络过程:产生协调器网络节点,开始配置网络;(3)从节点入网过程:终端设备节点申请加人协调器节点或路由节点。
网络协调器启动后,其它普通节点加入网络时,只要将自己的信道设置成与现有的协调器使用的信道相同,并提供正确的认证信息,即可请求加入网络。一个节点若成功地接收一个子节点,或者子节点成功脱离网络,都必须向协调器汇报[8].图5 是节点加入及脱离网络握手示意图。
图5 节点及脱离网络握手示意图。
5.3 音频解码部分的软件说明
(1)MP3播放器初始化处理子函数。
初始化程序完成对VS1003的PLL、MP3解码器和AUDIO接口初始化,设定控制器的时钟和采样率,开启MP3中断等工作。
(2)MP3播放子程序。
找到MP3文件并且配置完MP3解码器和AUDIO接口后,就可以播放MP3了。播放MP3的过程就是按照MP3解码器的请求,把接收到的MP3数据传输到解码器的输入缓冲区的过程。
6 结语
本设计借助嵌入式USB 主机和ZigBee 无线通信技术,为家用音响系统的设计提供了一种灵活、方便的无线解决方案,该系统具有良好的可扩展性和实用价值。相信随着智能家居产业的发展和ZigBee 无线通讯技术的不断完善,ZigBee 技术将越来越好地融合在智能家居系统的设计中。
本文作者创新点:将嵌入式USB 主机和ZigBee 技术创新性地应用于家用无线音响系统,实现了音频数据通过ZigBee 网络的无线传输,实验证明,系统设计合理,方便扩展,价格低廉,是一种有效的解决方案。