我们若想设计一套完善的蓝牙 (Bluetooth) 系统,就必须充分掌握其中的技术知识,例如协议堆栈、射频设计及系统集成等方面的专门知识。LMX9820 芯片的面世令蓝牙系统的设计工作变得更为容易。以采用微控制器并设有通用异步收发器 (UART) 的定标器、恒温器及仪表为例来说,这类电子设备目前都可无需在软件方面作出任何修改便能轻易添加点对点蓝牙通信的功能。

  蓝牙(Bluetooth)是一种什么技术?

  蓝牙技术是一种无线通信技术标准,原意是用来取代不同长度的电缆,例如长 Class 3支持1 米/ 3.3 英尺无线距离, Class 2 支持 10 米/33 英尺的无线距离。由于第一类电缆用于较长距离的数据传送,因此蓝牙无线通信若要覆盖如此大的范围,其耗电便会远比短距离传送为多,因此便携式电子产品通常都不会采用蓝牙无线通信系统进行长距离的信号传送。

  蓝牙技术以 2.4 GHz 的频带操作,可为 625µs的短信息包提供一个稳定的传输环境,而且可以利用跳频避免信号受到干扰。此外,由于蓝牙技术设有高斯最小移位键控 (GMSK) 调制功能,因此有助降低系统成本。

  何谓蓝牙堆栈?

  执行通信协议规定所必要的软件一般称为堆栈或蓝牙协议堆栈。堆栈这个词含有堆合一起的意思,因此按照开放系统互连 (OSI) 网络模式组装一起的模块式或层级式软件便称为堆栈。堆栈有时称为驱动程序,可用于符合 WiFi 及通用串行总线 (USB) 标准的系统。蓝牙技术一如通用串行总线,特别为不同种类的设备分别设有特定的接口。例如,符合通用串行总线标准的键盘和滑鼠、打印机以及音响系统都有特定的驱动程序,而蓝牙也设有特定的概要文件如人机界面设备 (HID)、基本打印概要文件 (BPP) 以及先进音频分配概要文件 (AADP)。

  数据链路必须获得以下几个最基本的概要文件为其提供支持:

  • 一般应用概要文件 (GAP)
  • 介绍服务应用概要文件 (SDAP)
  • 串行端口概要文件 (SPP)

  这些概要文件可以用来连接上文所列的人机界面、打印机及音响系统等设备所预载的应用程序。更先进的数据传送及音响系统软件也可利用串行端口概要文件作为驱动程序,但两者之间必须有软件作为接口以及采用公用的数据帧。

图1 典型的接口电路图

  Simply Blue可以精简蓝牙系统的设计

 

  即使蓝牙系统内置了堆栈及概要文件,串行端口概要文件 (SPP) 与其它软件的基本连系仍有待建立,换言之,要待有关指令全部完成交换后,数据链路才可视为正式建立。换言之,原有系统的软件必须作出修改,以致整个工程项目的施工时间会被耽误,对于内置只读存储器的设备来说,这方面的时间延误尤其显著。

  幸好另外还有一个更为容易的方法可为蓝牙系统编写应用程序。以 LMX9820 为例来说,由于这款芯片已预载了 NRE 以及免缴版税的全面嵌入式蓝牙堆栈 (如 L2CAP、RFComm 及 SDP) 与概要文件 (如 GAP、SDAP 及 SPP),因此客户可以专注于设计工作,无需为投资什么软件而分心。LMX9820 设有透明模式,可以通过预置的通电功能启动系统,传送原始数据。换言之,任何设有通用异步收发器 (UART) 的电子产品都可与任何蓝牙装置如个人数字助理 (PDA) 或笔记本计算机连通。现有产品如设有红外线数字信号连接 (IrDA) 端口的打印机及诊断设备都可利用蓝牙技术进行无线数据传送。

  天线的信号接收能力:示例一

  图1的电路图显示我们其实很容易便能为电子产品添加蓝牙通信功能。图中的电路只需采用极少的独立式电源供应器及去耦电容器,但即使如此,我们设计时也须抱持审慎的态度,因为多噪音的电源供应器可以影响射频系统的收发能力。图中的 12 MHz 石英振荡器或时钟负责为系统功能计时。较新的 LMX9820A 芯片可以提供 32 kHz 的时钟频率以供选择,以便系统可以自动选用节能模式操作。

图2 Simply Blue 协议堆栈

  LMX9820 芯片的通用异步收发器能以高达 921.6 kbps 的速度操作,并可另外配置 ISEL1 及 ISEL2 管脚,以便将速度调低至 9600 bps 及 115.2 kbps 等较低的速度,也可利用通用异步收发器设定其它速度,例如 38.4 kbps (初始速度则设定为 921.6 kbps)。对于操作速度低于 115.2 kbps 的系统来说,最理想的做法是设立硬件交接机制,但这并非必要。数据链路若直接与微控制器连接一起,可令数据传送速度提高至 921.6 kbps,理论上空气接口的速度可高达 708 kbps (按规格应高达 721 kbps)。产品编号为 BT-TXA-KT1-0-01 的 Simply Blue 评价套件因为受到装设在接口电路板上及大部分个人计算机内的 RS-232 电平转换器集成电路所限制,以致速度无法超过 230.4 kbps。

 

  如何让电子产品充分利用Simply Blue技术

  透明模式

  LMX9820 芯片已预先设定在启动后会自动采用从属配置,然后转用只会传送原始有效载荷数据的透明模式。由于 LMX9820 芯片采用这样的设计,因此可以自动与个人数字助理或便携式计算机等设备连通,以免干扰原有设备的主处理器的运作。

  命令模式

  蓝牙系统只要发出 ASCII‘中断’("break") 命令,便可进入命令模式,以便内置蓝牙通信系统的电子产品可以添加更先进的功能,满足个别产品的特殊要求。正如图 2 所显示,这种方法需要更多方面的配合,因为产品需要通过应用编程接口 (API) 将相关的命令传送到 LMX9820 芯片,但这个方法的优点是可以提供透明模式所无法提供的功能特色。为了方便使用及确保数据安全,系统设计工程师可为个别客户预先设定局部命名、管脚代码及链路键等参数。若采用命令模式,LMX9820 芯片能够利用一点至多点的节点操作,以便同时连通高达三具不同的电子装置。

  石英振荡器

  蓝牙系统必须采用 20 ppm 的石英振荡器或时钟 (若石英振荡器或时钟已老化,15 ppm 也足够),因为这两种计时工具的优劣会直接影响射频系统的性能。工程师必须依照石英振荡器厂商就有关电容负载所定的有关规定,以及将 LMX9820 芯片的管脚电容一并计算在内。若采用较新型号的 LMX9820ASM 芯片,旧型号产品如LMX9820SB 芯片原本采用的电容器可能因为输入电容稍有不同以致必须更换,以确保电容器可以配合石英振荡器运作。

  天线

  天线效率及模式可以大大影响电子产品的接收范围及接收能力。天线的增益越高,其接收范围也越广,但由于便携式电子产品具有高度的定向性,以致这些产品必须互相瞄准对方,因此广阔的接收范围对这类便携式电子产品并不适用,也正因如此,大部分便携式产品都采用单向的设计,以确保性能稳定可靠。为了确保天线能充分发挥其性能,我们必须加设另一相匹配的电线,其线迹宽度及电路板厚度必须有足够的误差容限,以方便生产。有关接地层及布局规格的资料,可以查阅相关厂商的数据表及应用技术参考资料。

如何解决Bluetooth系统设计的棘手问题的更多相关文章

  1. 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧

    目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...

  2. 无法对数据库'XXX' 执行删除,因为它正用于复制"的解决方

    困扰二天的问题终于得以解决,貌似一个棘手的问题只要知道方法也似乎变得异常简单,记录此次的解决方法,避免遗忘. 无法对 数据库'UDS' 执行 删除,因为它正用于复制. (.Net SqlClient ...

  3. (4.20)SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧

    转自:指尖流淌 https://www.cnblogs.com/zhijianliutang/p/4085546.html SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧 ...

  4. SQL Server 数据库启动过程,以及启动不起来的各种问题的分析及解决技巧

    目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...

  5. 假如我来架构12306网站---文章来自csdn(Jackxin Xu IT技术专栏)

    (一)概论 序言:  此文的撰写始于国庆期间,当中由于工作过于繁忙而不断终止撰写,最近在设计另一个电商平台时再次萌发了完善此文并且发布此文的想法,期望自己的绵薄之力能够给予各位同行一些火花,共同推进国 ...

  6. 1. Apache ZooKeeper快速课程入门

    Tips Tips做一个终身学习的人! 日拱一卒,功不唐捐. 在过去的几十年里,互联网改变了我们生活的方式.Internet上提供的服务通常由复杂的软件系统支持,这些系统跨越了大量的服务器,而且常常位 ...

  7. 聊聊Unity项目管理的那些事:Git-flow和Unity

    0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了.敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理.项目从最初使用svn到之后的Git One Track策略再到现在的GitFlo ...

  8. 【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持

    前言 在之前介绍的流量劫持文章里,曾提到一种『HTTPS 向下降级』的方案 -- 将页面中的 HTTPS 超链接全都替换成 HTTP 版本,让用户始终以明文的形式进行通信. 看到这,也许大家都会想到一 ...

  9. Unite洛杉矶峰会精彩回顾:从图形、平台再到VR

    产品质量与工作流程 在Unity的研发过程中,保持创新的步伐与稳定性的平衡一直是一个挑战.Unity曾经向所有的用户承诺:Unity将专注于提升产品的质量并保证Unity版本稳定性的决心. 大会伊始, ...

随机推荐

  1. U-Boot启动过程完全分析

    U-Boot启动过程完全分析 1.1       U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段 ...

  2. 为什么使用Redis

    原文地址:http://igoder.iteye.com/blog/1969848 先解释一下软件编程中常见的一些概念: 抽象先于具象.这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存 ...

  3. SQL with as 替代临时表的用法

    原文地址:http://www.cnblogs.com/zerocc/archive/2011/11/28/2266180.html SQL中 WITH AS 的用法和注意事项 1.为什么使用with ...

  4. 算法:求 Huffuman树 构造费用

    问题背景:            Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程.            给出一列数{pi}={p0, p1, …, pn-1}, ...

  5. Google Code Jam 2012 round 2 problem A: Swinging Wild

    题目连接 题意:你要从起点经过绳子荡到终点,每次你必须抓住另一个绳子,在空中不能向下爬.问是否有合理的方案 做法: 直接模拟 #include <iostream> #include &l ...

  6. cpppp

  7. Highcharts 异步加载数据曲线图表

    导入 data.js 文件 异步加载数据需要引入以下js 文件: <script src="http://code.highcharts.com/modules/data.js&quo ...

  8. c++ THUNK技术

    这里想说的是:代码中的关键点为用指令jmp pFunc跳转到你想要运行的函数pFunc. 指令"jmp xxxx"占5个字节,代码中用了个一字节对齐的结构体struct Thunk ...

  9. (1)QlikView概要

    本文的内容,以学习的两个合伙人: I.什么是Qlikview II. QlikView 的优点和缺点 1.1什么是QlikView 1.1什么是QlikView QlikView是一个工具,一个商业智 ...

  10. Boost库安装与使用

    Boost 库非常不错,所以我今天就安了它一下下. Boost 库不是 C++ 标准库的一部分(据说在下一版本号的 C++ 标准会採纳它),但它有一些标准库所没有的非常实用的一些功能,比方我非常须要的 ...