3 蓝牙音频网关的软件设计
蓝牙音频网关的实现主要基于Bluestack协议栈来完成,音频网关软件分为三层机构,即BlueStack协议栈、AG客户机程序和连接管理器。
BlueStack是剑桥咨询有限公司的蓝牙协议软件栈,可用C语言实现。它遵循蓝牙特殊兴趣小组提出的分层模型,可支持逻辑链路控制并适配协议上使用串口仿真协议或二进制电话控制协议,并将其作为传输协议的规范层。基于BlueStack协议栈可实现Bluetooth的所有功能。
整个BlueStack的协议栈实现采用消息驱动,层与层之间使用消息队列传递。在嵌入式蓝牙音频网关应用程序中,一般会涉及两大类消息:CM 消息和BlueStack消息。CM消息可在客户机和连接管理器之间进行传递,而BlueStack消息则在BlueStack协议栈之间传递。 BlueStack原语类型有DM PRIM、RFC_PRIM、SDP_PRIM 及L2CAP_PRIM四种,在AG应用中,一般会用到前三种。BlueStack消息格式为DM (RFC、SDC或SDS)_原语_扩展名。
AG应用中通常会定义两个任务,一个是CM任务,任务号与队列号为O;另一个是AG任务,任务号与队列号为1。AG客户机将所要传递给CM的消息提交给队列l,CM则将要传递给AG的消息提交给队列0。
应用程序应为ARM与蓝牙之间提供通信接口,主要是在主机间建立两个L2CAP信道(控制信道与数据信道)。初始化时,蓝牙模块应被唤醒,并进行写数据操作(队列形式),然后通过请求建立连接。当AG客户机发出请求信号时,如果CM有回应,说明可以建立连接。数据收发过程中,数据要进行封装/解封、分类等操作。图5所示为蓝牙数据收发过程的软件流程图。
4 结束语
S