蓝牙技术是一种无线数据与数字通信的开放性规范。它以低成本、近距离无线连接为基础,为固定与移动设备建立了一种完整的通信方式和技术。蓝牙技术的实质是建立通用无线接口及其控制软件的标准,使移动通信与计算机网络之间能实现无缝连接,由此,为不同厂家生产的便携式设备提供了近距离(10m~100m)范围内的互操作通道。
在工业控制系统和许多应用领域,随着电子技术的发展,目前控制器和传感器已经实现了智能化。在一般的传感器或测试仪表中,大量使用CPU 控制下的数字化技术,因此,许多控制系统或传感器系统已经实现了数字化传输。如果在数字化的控制系统和传感器中嵌入蓝牙技术,则可以实现系统数据和控制命令的无线传输,这对于许多应用领域都是十分重要的。
本文通过对蓝牙协议栈结构的讨论,提出一个嵌入式SoC 器件结构。这个嵌入式SoC 器件是一种具有蓝牙通信功能的SoC 器件;SoC 中的CPU 对用户开放,用户可以使用这种结构的SoC 器件实现智能传感器或控制器单元。
1 蓝牙协议栈
蓝牙技术规范1.0 版本作了如下规定。
蓝牙工作在全球通用的2.4GHz ISM(Industrial ,Scientific and Medical)免付费、免申请的无线电频段。
采用快速确认和跳频技术,以确保链路的稳定。
采用二进制调频(FM)技术的跳频收发器,抑制干扰和防止衰落。
采用前向纠错(FEC)技术,抑制长距离链路的随机噪声。
数据传输速率为1Mb/s 。
采用时分双工传输,其基带协议是电路交换和分组交换的结合。
一个跳频频率发送一个同步分组,每个分组占用一个时隙,也可扩展到5 个时隙。
支持一个异步数据通道,或3 个并发的同步语音通道,或一个同时传送异步数据和同步语音的通道。每一个语音通道支持64Kbps 的同步话音。异步通道支持最大速率为721Kbps 、反向应答速率为57.6Kbps 的非对称连接,或者是432.6bps 的对称连接。
目前,工作在2.4GHz 频段上的无线局域网技术中,除了蓝牙技术外,还有IEEE802.11、HomeRF 和红外技术。总的来说,IEEE802.11 比较适合于办公室无线网络,HomeRF 适用于家庭中的移动数据、语音设备等与主机之间的通信,而蓝牙技术则可以应用于任何允许无线方式替代线缆的场合。
在实际应用中,蓝牙技术的应用一般采用嵌入式技术。在应用系统中嵌入蓝牙协议栈,可为系统提供一个透明的无线网络通信层。
蓝牙技术协议栈的设计只有符合蓝牙技术规范的要求,才能实现不同厂家产品的无缝对接。蓝牙技术规范(specification)包括协议(protocol)和应用规范(profile)两个部分。完整的蓝牙协议栈如图1 所示。
协议规范中定义了各功能元素的工作方式,提供了蓝牙技术实现中功能元素间的横向体系结构。应用规范则介绍了实现特定应用模型,描述了各层协议间的协同机制,从而提供了技术实现的纵向体系结构。蓝牙协议包括核心协议层、替代电缆协议层、电话控制协议层和选用协议层。
核心协议。核心协议包括基带协议、链路管理协议(LMP)、逻辑链路控制和适配协议(L2CAP)、服务发现协议(SDP)。
替代电缆协议。替代电缆协议包括串行电路仿真协议( RFCOMM ) ,用于实现数据的转换。
电话替代协议。本协议包括二元电话控制规范(TCS Binary)与AT- 命令(AT-command)。用于提供音频通信的处理规范和相应的控制命令。
选用协议。选用协议与用户的应用有关,包括点到点协议(PPP)、用户数据报/ 传输控制协议/ 互联网协议(UDP 和TCP/IP)、目标交换协议(OBEX)、无线应用协议(WAP)、无线应用环境(WAE)、vCard 、vCal 、红外移动通信(IrMC)。选用协议层的具体内容由应用系统根据需要选择。
除了以上协议层外,蓝牙协议栈中还应包括二个接口:一个是主机控制接口(HCI),用来为基带控制器、链路控制器以及访问硬件状态和控制寄存器等提供了命令接口;另一个是与基带处理部分直接相连的音频接口,用以传递音频数据。
在蓝牙协议栈中,HCI 以上部分通常用软件实现,包括逻辑链路控制和适配协议L2CAP 、串行仿真RFCOMM 、链路管理协议(LMP)、电话替代协议和选用协议;而HCI 以下部分则用硬件实现,包括基带协议和链路管理协议(LMP) ,这部分也叫作蓝牙协议体系结构中的底层硬件模块。
2 蓝牙核心协议栈硬件电路结构
底层模块是蓝牙技术的核心模块,主要由射频(RF)单元电路、基带层(base band)电路和链路管理层(LMP,Link Manger Protocol)电路组成。
(1)射频(RF)单元
RF 单元电路为蓝牙技术提供了通信中的物理层,也叫作蓝牙收发器。通过2.4GHz 的微波,实现数据流的过滤和传输。蓝牙协议提供了有关蓝牙收发器的各项技术指标。
(2)基带层电路
基带层提供了基带数字信号处理硬件,其功能是提供链路控制,因此也叫作基带及链路控制层电路。通过基带层电路,可以建立蓝牙通信网络中的物理链路,从而形成微微网(piconet)。基带层中有两种物理链路,一种是面向连接的同步链路(SCO) ,另一种是异步无连接链路(ACL) 。此外,基带层还可为语音和数据分组提供不同水平的前向纠错(FEC)或循环冗余度校验(CRC)处理,并可对数据进行加密。同时,基带层电路还为不同类型的数据( 包括传输信息数据、链路管理和控制信息) 提供特定的信道。
(3)链路管理层(LMP)电路
链路管理层电路也叫作链路管理器电路,功能是提供链路管理通信协议。链路管理协议用来对链路进行设置和控制,并负责建立和撤销各蓝牙设备间的连接、功率控制以及认证和加密,同时还控制蓝牙设备的工作状态(保持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 的主机控制器接口传输层的物理连接,是上层协议与蓝牙硬件模块进行通信的通道。蓝牙测试模块主要提供无线层和基带层的认证和一致性规范,同时还管理产品的生产和售后的测试,为可选模块。
3 嵌入蓝牙协议栈的SoC 结构设计
根据上述蓝牙协议栈硬件结构可以看出,如果使用SoC 结构设计蓝牙协议栈,则可以实现嵌入蓝牙通信模块,同时向用户开放内部CPU 的目的。在设计嵌入蓝牙协议的SoC 结构时,需要考虑如下问题。
数据处理能力与速度。数据处理能力主要体现在两个方面:一个是数据缓冲存储器的规模,另一个是对数据处理算法支持的程度。数据处理速度是一个重要的问题。数据处理速度不仅与系统时钟频率有关,还与CPU 和内部总线的结构直接相关。
通信操作与系统运行的关系。在嵌入了蓝牙通信栈的SoC 中,通信是系统的一个功能,SoC 还需要实现系统的其它功能。由于CPU 串行结构的特点,当系统需要同时启用通信功能和其它重要功能时( 例如实施系统的数据采集操作等) ,就需要使用适当的方法进行协调。实际上这也就是嵌入式蓝牙SoC 器件的系统实时性问题。
器件的功率损耗。功率损耗是SoC 设计中的一个重要问题。除了采用相应的技术实现最低功率损耗问题外,还必须通过系统结构设计降低系统的功率损耗。对于对功率损耗有特殊要求的系统,低功耗设计更是必不可少的内容。
由上述三个要求可知,在嵌入式蓝牙SoC 中,如果数据处理量比较大,则需要考虑数据处理的速度问题。用户系统CPU 属于串行工作方式,因此,在大数据量的通信过程中,如何完成系统的其它功能,是SoC 结构设计的一个重要方面。例如,使用蓝牙技术传输图像时,其中的通信系统必须保持连续工作状态,同时,还需要SoC 中设计大量的Flash 存储器。由于传输图像必须进行压缩和解压缩,所以,在保持通信连续和图像的压缩/ 解压缩这两种不同的操作中,就必须进行充分协调,采用硬件并行处理的技术。这种情况下,CPU 就仅仅是一个操作控制器件,用来启动或终止某个操作。由此可知,应当针对不同类型的应用场合设计相应的SoC结构。
对于智能传感器,其基本功能如下。
信号转换。这一部分电路的作用是把相应的物理量转换为电压信号,然后对其进行放大和滤波处理。处理的结果作为数据采集电路的输入信号。
数据采集。数据采集电路的功能是把信号转换电路输出的模拟信号转换为数字信号( 数据序列) ,然后把数字信号输出给CPU ,以便进行相应的处理。
数据处理。智能传感器中的数据处理功能一般并不统一。一般情况下,需要数字滤波即可。有些智能传感器还需要对信号进行其它处理,例如信号幅度的判别、信号特征的提取、显示处理等。总之,根据不同的应用领域,数据处理的要求不尽相同。
数据传输。在控制系统中,智能传感器采集并整理好的数据,需要传输给系统的核心控制器或其它控制单元。由于控制系统的特点,数据传输一般需要经过一段空间距离,因此,需要使用专门的电路和方式实现数据传输。例如,对数据进行编码处理后,利用电流环或RS232 等方式传输。在现有控制系统中,绝大多数情况下都采用有线传输方式实现传感器与控制系统的连接。
对于智能传感器来说,传输数据量一般并不是很大( 例如压力、温度等传感器) ,因此,满足智能传感器需要的嵌入式蓝牙SoC 器件中,并不需要很大的存储容量;但必须考虑蓝牙协议实现所必需的程序存储空间。
从图1 可以看出,蓝牙协议栈的处理软件会占用比较大的存储器,因此,必须对其进行简化。同时,为了保证控制系统安全可靠,还需要考虑使用用户协议替代蓝牙技术所定义的处理协议。由以上分析可以得出结论:
智能传感器的数据传输量比较小,不需要进行压缩或编码处理,可以设置在1 K 字节以下。
为了保证控制系统的安全可靠性,需要把上层处理协议变为用户层协议,由用户自行编写。
为了设计满足智能传感器的嵌入式蓝牙SoC 结构,对蓝牙协议栈进行了简化处理,只使用蓝牙协议中的核心协议和替代电缆协议。SoC 中的蓝牙协议栈由软件和硬件两部分组成。核心协议中的基带协议由硬件实现,而链路管理和其它部分则使用软件实现。所有有关协议的软件存放在ROM 中,用户使用通信栈时可直接调用。
需要指出的是,通信栈的设计为一个整体,因此调用时也必须整体调用。换句话说就是,把通信栈看成是一个完整的子程序模块加以调用。根据上述结论,提出一种具有开放使用户协议的嵌入式蓝牙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 中蓝牙协议栈进行了简化处理。