蓝牙技术是一种无线数据与数字通信的开放性规范。它以低成本、近距离无线连接为基础,为固定与移动设备建立了一种完整的通信方式和技术。蓝牙技术的实质是建立通用无线接口及其控制软件的标准,使移动通信与计算机网络之间能实现无缝连接,由此,为不同厂家生产的便携式设备提供了近距离(10m~100m)范围内的互操作通道。
在工业控制系统和许多应用领域,随着电子技术的发展,目前控制器和传感器已经实现了智能化。在一般的传感器或测试仪表中,大量使用CPU 控制下的数字化技术,因此,许多控制系统或传感器系统已经实现了数字化传输。如果在数字化的控制系统和传感器中嵌入蓝牙技术,则可以实现系统数据和控制命令的无线传输,这对于许多应用领域都是十分重要的。
本文通过对蓝牙协议栈结构的讨论,提出一个嵌入式SoC 器件结构。这个嵌入式SoC 器件是一种具有蓝牙通信功能的SoC 器件;SoC 中的CPU 对用户开放,用户可以使用这种结构的SoC 器件实现智能传感器或控制器单元。
蓝牙技术规范1.0 版本作了如下规定。
目前,工作在2.4GHz 频段上的无线局域网技术中,除了蓝牙技术外,还有IEEE802.11、HomeRF 和红外技术。总的来说,IEEE802.11 比较适合于办公室无线网络,HomeRF 适用于家庭中的移动数据、语音设备等与主机之间的通信,而蓝牙技术则可以应用于任何允许无线方式替代线缆的场合。
在实际应用中,蓝牙技术的应用一般采用嵌入式技术。在应用系统中嵌入蓝牙协议栈,可为系统提供一个透明的无线网络通信层。
蓝牙技术协议栈的设计只有符合蓝牙技术规范的要求,才能实现不同厂家产品的无缝对接。蓝牙技术规范(specification)包括协议(protocol)和应用规范(profile)两个部分。完整的蓝牙协议栈如图1 所示。
协议规范中定义了各功能元素的工作方式,提供了蓝牙技术实现中功能元素间的横向体系结构。应用规范则介绍了实现特定应用模型,描述了各层协议间的协同机制,从而提供了技术实现的纵向体系结构。蓝牙协议包括核心协议层、替代电缆协议层、电话控制协议层和选用协议层。
除了以上协议层外,蓝牙协议栈中还应包括二个接口:一个是主机控制接口(HCI),用来为基带控制器、链路控制器以及访问硬件状态和控制寄存器等提供了命令接口;另一个是与基带处理部分直接相连的音频接口,用以传递音频数据。
在蓝牙协议栈中,HCI 以上部分通常用软件实现,包括逻辑链路控制和适配协议L2CAP 、串行仿真RFCOMM 、链路管理协议(LMP)、电话替代协议和选用协议;而HCI 以下部分则用硬件实现,包括基带协议和链路管理协议(LMP) ,这部分也叫作蓝牙协议体系结构中的底层硬件模块。
底层模块是蓝牙技术的核心模块,主要由射频(RF)单元电路、基带层(base band)电路和链路管理层(LMP,Link Manger Protocol)电路组成。
RF 单元电路为蓝牙技术提供了通信中的物理层,也叫作蓝牙收发器。通过2.4GHz 的微波,实现数据流的过滤和传输。蓝牙协议提供了有关蓝牙收发器的各项技术指标。
基带层提供了基带数字信号处理硬件,其功能是提供链路控制,因此也叫作基带及链路控制层电路。通过基带层电路,可以建立蓝牙通信网络中的物理链路,从而形成微微网(piconet)。基带层中有两种物理链路,一种是面向连接的同步链路(SCO) ,另一种是异步无连接链路(ACL) 。此外,基带层还可为语音和数据分组提供不同水平的前向纠错(FEC)或循环冗余度校验(CRC)处理,并可对数据进行加密。同时,基带层电路还为不同类型的数据( 包括传输信息数据、链路管理和控制信息) 提供特定的信道。
链路管理层电路也叫作链路管理器电路,功能是提供链路管理通信协议。链路管理协议用来对链路进行设置和控制,并负责建立和撤销各蓝牙设备间的连接、功率控制以及认证和加密,同时还控制蓝牙设备的工作状态(保持hold 、休眠park 、呼吸sniff 和活动active )。链路管理层的主要功能由软件完成,链路管理器电路提供运行于蓝牙设备的处理器中的软件。链路管理器之间的通信协议称为链路管理协议(LMP) 。
蓝牙技术整体框架以HCI(Host Controller Interface)为界,区分为硬件模块以及上层软件协议两部分。蓝牙技术标准中,选择了USB、UART 或是RS232 作为硬件模块与主机间的接口。当蓝牙模块以USB、UART或RS232 中的任何一个接口与主机连接时,HCI 接口上层的通信协议由主机负责处理,而HCI 接口下层的通信协议则由模块内的基带层芯片与RF 芯片负责。根据蓝牙标准,蓝牙系统的基本组成包括天线、收发器、基带控制器。由此可知,在天线、RF 收法器和基带控制器的支持下,蓝牙系统的组成可以十分灵活,即可实现多种不同的实现方案。
嵌入式蓝牙系统是将RF 和基带部分集成在一块芯片上,单芯片蓝牙硬件模块结构如图2 所示。在嵌入式蓝牙器件中,硬件结构可分为链路管理器、链路控制器与RF 模块3 部分,负责处理LMP 层、基带层与RF 层的协议。链路管理器内包含处理器(CPU)、内存等组件。链路管理器与基带层芯片合称为链路控制器。RF 模块内含RF 射频发射组件,与主机相连接的接口位于链路控制器上。
在嵌入式方案中,蓝牙协议的上层软件协议也全部固化在芯片中,芯片通过USB 或UART 接口与应用系统相连接。由于片内嵌入了CPU ,所以,嵌入式蓝牙系统实际上是一个智能终端,适合于任何具有CPU 器件的系统。例如,智能传感器中,只要增加一个单芯片蓝牙器件,就可以组成一个以蓝牙为通信方式的传感器。
由图2 可知,它由微处理器(CPU) 、无线收发器(RF)、基带控制器(BB) 、闪存( Flash 程序存储器) 、通用异步收发器UART(Universal Asynchronous Receiver Transmitter)、通用串行接口USB(Universal Serial Bus)及蓝牙测试模块组成。其中蓝牙基带控制器是蓝牙硬件模块的关键模块。其主要功能是在微处理器控制下,实现蓝牙基带部分的所有实时处理功能,包括负责对接收的bit 流进行符号定时提取和恢复;分组头及净荷的循环冗余度校验(CRC) ,分组头及净荷的前向纠错码FEC 处理,加密和解密处理等,且能提供从基带控制器到其它芯片的接口等。CPU一般采用RISC 结构的嵌入式微处理器,如ARM7TDMI微处理器,才能满足对蓝牙核心协议的高速处理和大量数据bit 流的处理。Flash 存储器用于存放基带和链路管理层中的所有协议软件。SRAM 作为CPU 的运行空间,在工作时把Flash 中的软件调入SRAM 中处理。射频收发器负责接收或发送高频的通信信号。UART 和USB 接口提供到HCI 的主机控制器接口传输层的物理连接,是上层协议与蓝牙硬件模块进行通信的通道。蓝牙测试模块主要提供无线层和基带层的认证和一致性规范,同时还管理产品的生产和售后的测试,为可选模块。
根据上述蓝牙协议栈硬件结构可以看出,如果使用SoC 结构设计蓝牙协议栈,则可以实现嵌入蓝牙通信模块,同时向用户开放内部CPU 的目的。在设计嵌入蓝牙协议的SoC 结构时,需要考虑如下问题。
由上述三个要求可知,在嵌入式蓝牙SoC 中,如果数据处理量比较大,则需要考虑数据处理的速度问题。用户系统CPU 属于串行工作方式,因此,在大数据量的通信过程中,如何完成系统的其它功能,是SoC 结构设计的一个重要方面。例如,使用蓝牙技术传输图像时,其中的通信系统必须保持连续工作状态,同时,还需要SoC 中设计大量的Flash 存储器。由于传输图像必须进行压缩和解压缩,所以,在保持通信连续和图像的压缩/ 解压缩这两种不同的操作中,就必须进行充分协调,采用硬件并行处理的技术。这种情况下,CPU 就仅仅是一个操作控制器件,用来启动或终止某个操作。由此可知,应当针对不同类型的应用场合设计相应的SoC结构。
对于智能传感器,其基本功能如下。
对于智能传感器来说,传输数据量一般并不是很大( 例如压力、温度等传感器) ,因此,满足智能传感器需要的嵌入式蓝牙SoC 器件中,并不需要很大的存储容量;但必须考虑蓝牙协议实现所必需的程序存储空间。
从图1 可以看出,蓝牙协议栈的处理软件会占用比较大的存储器,因此,必须对其进行简化。同时,为了保证控制系统安全可靠,还需要考虑使用用户协议替代蓝牙技术所定义的处理协议。由以上分析可以得出结论:
需要指出的是,通信栈的设计为一个整体,因此调用时也必须整体调用。换句话说就是,把通信栈看成是一个完整的子程序模块加以调用。根据上述结论,提出一种具有开放使用户协议的嵌入式蓝牙SoC 模块结构,如图3 所示。
图3 中,RF 收发器、基带控制器和蓝牙协议ROM 共同组成蓝牙协议栈。蓝牙协议栈在CPU 的控制下完成通信任务。简化的嵌入式蓝牙协议栈结构如图4 所示。其中用户应用协议由用户自行设计,以确保通信的安全性和可靠性。
另外,对蓝牙协议栈中的LMP 进行了相应的简化。在智能传感器的应用中,通信链路一般比较简单,因此,LMP 不需要对链路进行复杂的处理。本设计中,LMP 的主要功能由软件完成。当需要使用蓝牙通信发送数据或接收数据时,用户程序只需调用LMP 软件模块即可。LMP 协议由两部分组成:
① 软件。通过CPU 对链路进行设置和控制,实现蓝牙设备连接、功率控制以及认证和加密,同时还控制蓝牙设备控制器电路。
② 硬件。LMP 控制器电路在LMP 软件的操作下,控制蓝牙设备的工作状态(保持hold、休眠park、呼吸sniff 和活动active)。
图3 中的CPU 通过开放总线模块向用户开放,用户程序保存在用户程序存储器中。数据存储器采用Flash存储电路,用来保存蓝牙通信中的发送和接收数据;同时,作为传感器数据采集系统的数据存储器。数据存储器的使用分配由用户决定,传感器的设计者可通过用户程序对数据存储器进行分块控制使用,通过用户程序设置相应的发送或接收数据存储深度和起始地址,以及数据采集系统的数据存储深度。
图3 中开放总线模块提供了一个向用户开放的总线,使用户可以充分利用CPU 、存储器的资源。此外,图3 中的通用通信接口和测试电路向用户提供了局部连接和测试输入输出通道。
从以上模块设计的结果可以看出,这种结构的智能传感器具有完整的蓝牙通信功能,同时,为用户提供了应用处理的灵活性。例如,LMP 中的认证和加密方法与算法完全由用户自行决定,从而提供了用户系统的安全性和可靠性。另外,由于通用串行通信接口和测试电路的存在,为用户系统提供了硬件测试的硬件支持。
根据图3和上述分析,可以得到用于智能传感器的嵌入式蓝牙SoC 器件的电路结构,如图5 所示。通信栈模块调用操作流程如图6 所示。
把蓝牙协议栈嵌入到智能传感器中,将为控制系统提供十分灵活的组成方式;同时,通过采用相应的安全措施,可以提高系统的安全性和可靠性。本文通过对蓝牙协议栈和智能传感器工作特征的分析,设计了智能传感器中嵌入蓝牙协议栈的SoC 结构。为了满足智能传感器的应用,嵌入式蓝牙SoC 中,CPU、存储器以及相应的总线和外部电路应向用户开放。对于用户而言,只要设计相应的传感器前置电路,即可形成具有蓝牙通信功能的智能传感器。由于蓝牙通信协议的操作功能已经保存在ROM 中,所以用户只需要调用相应的软件程序即可完成蓝牙通信。同时,这种SoC 中的蓝牙协议栈中有关认证和加密的部分向用户开放,具体的认证、加密方法和算法可由用户自行定义。此外,本文对智能传感器嵌入式蓝牙SoC 中蓝牙协议栈进行了简化处理。