蓝牙接口系统软件设计
系统的软件结构如图1所示。软件结构中的初始化模块包括0MAP59l0系统、键盘液晶、数据和语音通信、 FLASH和PC读写以及蓝牙模块的初始化。在初始化过程中设置键盘扫描时间、语音采样频率、显示状态等各 种参数。整个系统初始化之后,程序进人监控模块,监控模块随时判断各个模块的状态,并进人相应的处理程序。数据通信模块控制OMAP5910和蓝牙模块的数 据接口;语音通信模块控制0MAP5910和音频AD/DA的接口;蓝牙接口收发控制OMAP5910和蓝牙模块的信号收 发;FLASH读写模块控制OMAP5910对其片外FLASH的读写,必要时可以将某些重要数据存储到FLASH中,此外 OMAP591 0的上电引导程序也存储在FLASH中;键盘和显示模块控制系统的人机接口;PC通信模块控制系统 和PC机的连接。
图1 系统软件结构图
由于0MAP5910具有C55系列DSP核,一些数字信号处理算法可以很容易地实现。对于语音信号,可以进行滤 波以提高语音质量;如果传输音乐信号,可以加人音乐处理算法,例如混响、镶边、削峰等多种处理;可 以将语音压缩后传输到PC机,或者解压后播放各种格式的语音信号。使得系统的应用范围更加广泛和实用 。
设计蓝牙设备收发器的软仵关键是基于蓝牙模块的软件驱动技术。软件驱动包括硬件链路管理器驱动程序 、主机控制接口(HOI)驱动程序、电源模式管理和电源控制以及其他高层驱动程序。
其中硬件链路管理器驱动程序与物理固件直接相连,提供USB/RS232或其他接口的驱动功能。链路管理器 驱动程序实现了链路管理协议(LMP),负责处理底层链路控制与蓝牙基带接口,该固件支持点对点和点对 多点的通信。
HOI驱动程序根据HOI命令的各种数据及参数格式,对HOI事件数据包进行处理。HOI为主机提供了访问微处 理器、链路管理器以及硬件状态和控制寄存器的各种命令接口。主机通过HOI驱动程序提供一系列命令控制 蓝牙接口,蓝牙固件的HOI收到命令后,会产生事件返回给主机,用来指示接口的当前状态变化。主机和 HCI之间共有以下3种类型数据。
(1)Hal命令包。从主机发向蓝牙的HOI。
(2)Hal事件包。从蓝牙的HOI发向主机。
(3)HOI数据包。可以从蓝牙的HOI发向主机,也可以从主机发向蓝牙的Hal。包括扩展同步连接导向数据 和非实时的异步无连接数据。
电源模式管理可以对电源设定3种模式,分别为Hold(保持)、Sniff(唤醒)和Park(休息)模式。电源 控制提供了将电源设定为休眠状态的方法,以便最大程度地降低系统功耗。
高层驱动程序则实现嵌入蓝牙模块的外设的驱动功能。
DSP和蓝牙接口的软件结构分为3个层次。
(1)系统的应用程序。
(2)为蓝牙设备开发的设备驱动程序,包括蓝牙的高层协议(RFCOMM和L2CAP等)。
(3)蓝牙基带部分协议:这部分协议已经固化在蓝牙模块中。
在本系统中,由于采用蓝牙接口模块,其中基带和链接管理协议(Link Manager Protocol,LMP)部分由蓝牙模块实现。用户只需要在DSP即可。
蓝牙软件使用BlueStack编程,完成初始化、连接等功能。蓝牙软件程序流程如图1所示。
初始化设备包括对指示灯、调试信息以及系统内定时器的初始化。蓝牙内部有一小块称为PS的存储区,是掉电不丢失数据的,蓝牙程序就是将对方地址记录在这一存储区里,每次启动时都对该存储区的蓝牙地址对应的设备建立连接。在初始化完成之后,程序还需要向底层发送消以便使蓝牙程序进入消息循环。消息处理函数是整个程序的核心,所有功能的打开、连接等都由此来完成,其操作均严格依照蓝牙协议的RFCOMM层进行。在整个系统中要重点考虑的是数据传输的速率问题。由于当蓝牙工作在1类发射功率(100mW)时,通信距离可扩展到100m,速率限制了蓝牙在宽带网络中的应用。蓝牙点对点传输时对称的最大有效速率为42316Kbit/s,不对称最大有效速率为721Kbit/s,反向为5716Kbit/s。
OMAP5912通过异步串口向BRF6100发送HCI命令,BRF6100收到命令后,由固化在其ROM的蓝牙协议固件处理,并将向下传递到LM层,LM层负责链路的建立、加密和设置权限。OMAP5912收到BRF6100发来的数据包,根据具体的事件采取相应的处理。整个异步串口的通信由以下4个功能模块组成。
(1)初始化模块。初始化蓝牙芯片以及各状态变量,包括ΠFO、中断寄存器和传输波特率等。
(2)事务调度模块。根据蓝牙芯片返回的事件状态参数对系统的事务进行调度,跳转到返回事件处理模块中。
(3)返回事件处理模块;各个事件处理子程序分别对应不同事件的处理。
(4)中断模块;负责数据包和事件包的接收和发送。
评论