20、蓝牙和RFID(介质访问控制子层)

1、蓝牙

引言

  • 1998年,爱立信联合IBM、Intel、Nokia、Toshiba开发了一个无线标准,可用来将计算设备、通信设备或其他附件通过短距离、低功耗和低成本的无线连接起来,即蓝牙。蓝牙1.0于1999年发布,诸如手机、笔记本电脑、耳机、打印机、键盘、鼠标、游戏机、钟表、音乐播放器、导航设备都在使用蓝牙。蓝牙协议使这些设备能相互发现并连接,从而安全传输数据,彼此发现并连接的行为称为配对。

1.1、蓝牙体系结构

  • 蓝牙系统的基本单位是一个微网,微网包含一个主节点,以及10米距离之内至多7个活跃的从节点。在一个房间内,可以同时存在多个微网,它们甚至可以通过一个桥节点连接起来,如图,一组相互连接的微网称为一个散网。一个微网中,除了7个活跃节点外,还可以有255个驻留节点。驻留节点被主节点切换到一种低功耗状态,以便降低功耗。一个处于驻留状态的设备,除了响应主节点的激活或信标信号外,不做其他事情;还有两个中间电源状态:保持和嗅探状态。主从模式的设计在于降低蓝牙芯片价格,从设备基本都是哑设备,只能完成一些主节点告诉它们该做的事情。本质上,微网是一个集中式的TDM系统,主节点控制时钟,并决定每个时间槽被哪个设备用来通信。所有的通信都在主节点和从节点之间进行,从节点和从节点不能直接通信。20、蓝牙和RFID(介质访问控制子层)_第1张图片

1.2、蓝牙应用

  • 大多数协议并没有规定用协议来诸如浏览网页这些事情,只是为通信实体提供信道,但蓝牙规范却列出了蓝牙所支持的专门应用以及每一种应用对应的不同协议栈。2010年左右,蓝牙已经可以支持25种应用程序,这些应用通称为轮廓。蓝牙的做法导致了极大的复杂性,我们将忽略复杂性,只是简略考虑这些轮廓。
  • 六个轮廓专门针对音频和视频的不同用途。例如,对讲机轮廓允许两个电话互相连接,以对讲机的方式使用无线耳麦和免提轮廓都提供了与其基站之间的语音通信,就像开车时的免提电话。其他一些轮廓可用于流媒体应用,例如立体声品质和视频,用在便携式音乐播放器到耳机,或从数码相机到电视机之间。人机接口轮廓用于把键盘和鼠标连接到计算机,其他一些轮廓让手机或其他计算机接收来自摄像机的图像或把图像发送至打印机,还有一种轮廓把移动电话作为(配蓝牙的)电视机的遥控器来使用。其他轮廓依然需要联网,个域网轮廓允许蓝牙设备自我形成一个自组织网或通过一个接入点远程访问另一个网络,比如802.11局域网。拨号联网轮廓实际上是整个项目的最初动机,它允许一台笔记本电脑无线连接到一台内置了调制解调器的移动电话。
  • 更高层次的信息交流所需的轮廓也已经定义,同步轮廓用于离家时上载数据到移动电话,而回家时从移动电话收集数据。通用访问轮廓是构建所有其他轮廓的基础,它提供了一种建立和维护主站和从站之间安全链路(信道)的方式。其他通用轮廓定义了交流对象和音视频传输的基础。实用程序轮廓广泛用于诸如模拟串行线等功能,这对于许多传统应用程序很有用。
  • 由于存在多个不同的工作组,他们分别负责设计标准的不同部分。因此每个工作组都关注特定的问题,从而形成了自己的轮廓。或许蓝牙标准根本不需要这么多的协议栈,两个就可以了,一个用于文件传输,一个用于流式实时通信。

1.3、蓝牙协议栈

  • 蓝牙有许多协议,它们松散地分成多个层次,如图,这个结构不遵循OSI模型、TCP/IP模型、802模型或其他任何模型。20、蓝牙和RFID(介质访问控制子层)_第2张图片
  • 底层是物理无线电层,对应于OSI模型和802模型的物理层,它涉及无线传输和调制解调。链路控制(或基带)层有点类似于MAC子层,但是包括物理层的元素,它涉及主节点如何控制时间槽以及如何将这些时间槽组成帧。接下来的两个协议使用了链路控制协议:链路管理器处理设备之间的逻辑信道建立,包括电源管理、配对和加密以及服务质量。它位于主机控制器接口线的下面,该接口是为了整个系统的实现方便而设计的,一般情况下,接口线下面的协议由蓝牙芯片实现,接口线上面的协议由蓝牙设备实现,蓝牙芯片就在该设备上。接口线上面的链路协议是逻辑链路控制适配协议(L2CAP)。帧携带可变长度的消息,如果需要可以提供可靠性。许多协议都要使用L2CAP,例如图示的两个协议。服务发现协议用于在网络中寻找可用服务。射频通信协议模型模拟PC上的标准串行端口,用于连接键盘、鼠标和调制解调器等其他设备。
  • 最上层是应用程序的位置。轮廓用垂直的条状表示,因为它们各自定义了实现特定目标的协议栈切片。特定的轮廓如耳机轮廓,通称只包含该应用程序所需要的协议,而没有包含该应用用不到的协议。例如如果有数据发送要发送,则轮廓可能包括L2CAP;但如果它们只有一个稳定的音频样本,则轮廓就会跳过L2CAP。

蓝牙无线电层

  • 无线电层将比特信息从主节点移动到从节点,或者从节点移动到主节点。蓝牙是一个低功率的系统,距离范围为10米,运行在2.4GHz的ISM频段上。该频段被分成79个信道,每个信道宽1MHz。为了与使用ISM频段的其他网络共存,蓝牙使用了跳频扩展技术,每秒1600跳,驻留时间625微秒。一个微网中的所有节点同步跳频,遵循主节点规定的时间槽和伪随机调频序列。
  • 早期的蓝牙版本与803.11之间的干扰足以毁掉双方的传输,最终制定了一个解决方案:蓝牙自使用调频序列,排除掉有其他射频信号的信道,这就是所谓的自适应跳频。在信道上发送比特可以采用三种形式的调制解调技术。基本方案是使用频移键控每微秒传送1比特信号,提供1Mbps的总数据速率。蓝牙2.0版本引进了增强型数据速率,这些速率使用相移键控每符号发送2或3个比特,提供2或3Mbps的总数据速率,增强型速率只能用在帧的数据部分。

蓝牙链路层

  • 链路控制(或基带)层是蓝牙中最接近MAC子层的部分。它将原始比特流转换成帧,并定义了一些关键格式。在最简单的形式中,每个微网中的主节点定义了一组625微秒的时间槽,主节点在偶数时间槽中开始传输,从节点在奇数时间槽中开始传输。这个方案就是传统的时分多路复用。帧可以是1、3或5个时间槽长。每个帧有一个126位的开销作为访问码和头,再加上每条250~260微秒的稳定时间使廉价的无线电路变得稳定。为了达到保密要求,帧的有效载荷部分可用密钥加密,该密钥用在主从节点建立连接时选定。频率的跳动只发生在两帧之间,而在一帧传输期间频率保持不变。这样的设计结果是一个5个时间槽的帧比1个时间槽的帧更为有效(1个时间槽的帧需要频繁跳动),因为开销不变,但发送了更多数据。
  • 链路管理协议负载建立逻辑信道逻辑信道称为链路,主设备和从设备通过它运载帧,当然这些主从设备必须彼此能发现。主从设备的彼此发现要经过一次配对过程,目的就是要确保两个设备在使用链路之前允许通信。旧的配对方法是两个设备必须配置相同的四位个人识别码(PIN),PIN码的匹配结果给设备提供了确保正在连接的远程设备是正确的途径。新的安全简单配对方法使用户能够确认这两个设备都显示相同的密码,或在一台设备上观察到密码,再输入到第二个设备。这种方法更安全,当然它们不能用在免提耳麦这些设备上。
  • 一旦配对成功,链路管理协议就在两个设备之间建立链路。用来运载用户数据的有两种主要形式的链路。第一种是同步有连接(SCO)链路,它主要用于实时数据的传输,比如电话连接。这种链路在每个方向上分配固定的时间槽。一个从节点与它的主节点之间可以有多达3条SCO链路,每条SCO链路可以传送一个64000bps的PCM音频信道。由于SCO链路的实时性本质,在这种链路上发送的帧永远不会重传。另一种是异步无连接(ACL)链路,这类链路用来以数据包方式交换那些无时间规律的数据。ACL流量基于尽力而为的投递,没有任何保证,帧可能需要重传,一个从节点与主节点之间值可以有一条ACL链路。
  • 在ACL链路上发送的数据包来自上面的L2CAP层。该层有四个主要功能。首先,它从上层接收高达64KB的数据包,并把数据包拆分成帧传输;在另一端,帧被重组成数据包。其次,它处理多个数据包源的多路复用和分用。当一个包被重组后,L2CAP层决定由哪一个上层协议来处理,例如,射频通信协议或服务发现协议。第三,L2CAP处理差错控制和重传。它检测错误,并重新发送没有被确认的数据包。最后,L2CAP强制多个链路之间的服务质量要求。

1.4、蓝牙帧结构

  • 蓝牙帧定义了好几种帧格式,其中最重要格式如图。帧的开头是一个访问码,它通常标识了主节点,所以,当从节点同时位于两个主节点的无线电覆盖范围内时,它可以利用这个访问码来区分本帧发自哪个主节点。接下来是一个54位的头,其中包含了典型的MAC子层的字段。如果帧是以基本速率发送的,则紧接着的是数据字段,对于5个时间槽的传输最多可包含2744位;对于一个单时间槽的帧,除了数据字段长度减少到240位以外,格式的其他方面都一样。20、蓝牙和RFID(介质访问控制子层)_第3张图片
  • 如果帧以增强型速率发送,数据部分可能多达2~3倍,因为每个符号携带2个或3个比特,而不是1个比特。在数据字段之前是一个保护字段和同步模式,用来切换到更快的数据速率。也就是说,访问代码和头是按基本速率传输,只有数据部分用更快的速率传输。增强型速率的帧以一个短帧尾结束。
  • 头中的地址字段标识了该帧的接收目标,指向8个活跃设备中的某一个(应该除去自己为7个)。类型字段标识了帧的类型(ACL、SCO、轮询或者空)、数据字段中所使用的纠错码类型,以及该帧的时间槽长度。F(flow)流标志位由从节点设置,当它缓存区为满时不能再接收任何数据时,利用该比特声明不能接收数据的事实,这是流量控制的基本形式。A(acknowledge)确认标志指明在一帧中捎带了一个ACK。S(sequence)序号被使用于帧的编号,以便接收方检测重传帧,协议采用停-等式控制机制,因此1位序号就个够了。8比特的的头检验和CRC。整个18位的头重复了三次,由此构成了54位的头。在接收方,一个简单的电路检查这3份副本中的每一位。如果3份副本相同,则该位被接收,如果不相同,则少数服从多数。因此,54位的容量被用来发送10位的头,这种做法的原因在于,想要在一个噪声环境中用廉价的、计算能力弱的低功耗(2.5毫瓦)设备可靠地发送数据,大量的冗余是必须的。
  • ACL帧和SCO帧的数据字段用到了多种格式。我们把基本速率的SCO帧作为学习的简单例子:数据字段总是240位,这里共定义了3个变种模式,分别允许实际有效载荷为80、160、240位,余下的用于纠错。在最可靠的版本中(80位有效载荷),内容被重复了3次,与头的处理方法相同。
  • 可以这样分析帧的容量:由于从节点只能使用奇数时间槽,跟主节点一样它得到800槽/秒。若用80位有效载荷,来自从节点的信道容量位64000bps,与来自主节点的信道容量一直。这样的容量对应单个全双工的PCM(脉冲编码调制)语音信道恰好足够(这也是为什么选择每秒1600跳的原因)。即尽管原始带宽为1Mbps,一个全双工未压缩的语音信道就可以完全饱和微网。这里建立时间花了41%,帧头花了20%,重复编码花了26%,因此最终的效率是13%。这个缺点凸显了增强型速率和多个时间槽的价值。

2、RFID

引言

  • 无线射频识别(RFID)标签和读写器是一类低端的无线设备,这类设备还不太被承认可用来组成计算机网络。RFID技术有多种形式,通常被用在智能卡中,比如植入到宠物、护照、图书馆书籍中等。我们主要着眼于一种形式:电子产品码(EPC)。EPC是条形码的替代品,它可以携带更多的信息,并且10米以内可被电子读写器读出。我们将介绍这项技术的第二代。

2.1EPC Gen 2 体系结构

  • EPC Gen 2 RFID 网络体系结构如图。它有两个关键部分:标签和读写器。RFID 标签是很小的廉价设备,它有一个唯一的96位EPC识别码和少量内存,内存信息可以被RFID读写器读取和写入。内存可用来记录某个项目的历史位置,例如,记录它在供应链中的移动轨迹。通常情况下,标签的样子有点像可以贴在物品上的贴纸,例如商场牛仔裤上的贴纸。大部分贴纸采用了被打印上去的天线。中间的一个小点就是RFID 的集成电路。另外,RFID标签可以被集成到一个物体中,比如驾驶照。在这两种情况下,标签没有电池,它们必须从附近RFID读写器的无线传输中手机运行所需的功率。这类标签称为1类标签,有别于带电池且具有更多能力的标签。20、蓝牙和RFID(介质访问控制子层)_第4张图片
  • 系统中的读写器是智能的,类似于蜂窝和WiFi网络中的基站和接入点。读写器的功率远远高于标签,它们有自己的电源,通常有多个天线,并且负责标签发送和接收消息。通常在一个读写范围内存在多个标签,因此读写器必须解决多路访问问题;如果同一区域从头顶多个读写器,它们之间还要竞争。读写器的主要工作是盘点附近的标签,就是发现附近标签的识别码,盘点的过程涉及物理层协议和标签识别协议。

2.2EPC Gen 2 物理层

  • 物理层定义了RFID 读写器和标签之间如何发送比特。在美国,EPC Gen 2 使用了902~928MHz的无线许可ISM频段来传输信号。这个频段落在超高频范围内,所以标签也称为高频RFID标签。读写器以至少每400毫秒的速度进行跳频,把信号分散到整个信道上,以此来限制干扰和满足监管要求。读写器和标签使用幅移键控的调制形式进行编码。读写器和标签轮流发送比特,因此链路是半双工的。
  • 其物理层与一般性物理层有两个主要差异:首先,读写器永远在发射信号,无论当前是读写器还是标签在通信。读写器自然是通过发射信号将比特传递给标签。如果标签要发送信息给读写器,读写器就发送一个不携带任何比特的固定载波信号,标签收获该信号来获得运行所需要的能量,为了发送数据,标签必须改变信号,要么把来自读写器的信号反射回去(后向散射),要么把来自读写器的信号吸收。
  • (在两个均匀介质的分界面上,当电磁波从一个介质中入射时,会在分界面上产生散射,这种散射叫做表面散射。在表面散射中,散射面的粗糙度是非常重要的,所以在不是镜面的情况下必须使用能够计算的量来衡量。通常散射截面积是入射方向和散射方向的函数,而在合成孔径雷达及散射计等遥感器中,所观测的散射波的方向是入射方向,这个方向上的散射就称作后向散射。)
  • 后向散射是一种低能量的方式,标签用它来生成一个显示在读写器上的微弱信号。读写器为了解码入境信号,必须从入境信号中筛选出自己正在传的出境信号。因为标签只能以低速率给读写器发送比特,标签信号很弱,标签不能接收、侦听来自其他标签的传输。
  • 第二个区别在于这里采用的调制解调技术非常简单,因为唯有简单才能在标签上实现。为了将数据发送给标签,读写器使用了两个振幅。比特0和1的确定决定于读写器在低功耗时期之前等待的时间长短。标签测量两次低功耗的时间,并将这段时间与前导码期间测得的参考值进行比较。如图,比特1的时间长于比特0的时间。20、蓝牙和RFID(介质访问控制子层)_第5张图片

2.3EPC Gen 2 标签标识层

  • 为了盘点附近的标签,读写器需要接收来自每个标签的消息,该消息给出了标签的标识符。这种情形就是多路访问问题,而且标签的数量在一般情况下是未知的,读写器可能会广播一个查询消息,要求所有标签发送它们自己的标识符;然而,如果所有标签都立即应答,则一定会发生冲突。针对于标签不能听到彼此的情形,使用的是分槽ALOHA协议。
  • 识别一个标签所使用的消息序列如图所示,在第一个时间槽,读写器发送一个Query消息来启动这个进程。每个QRepeat消息前进到下一个时间槽。读写器还告诉标签的时间槽的范围,标签就在这个范围内随机传输。确定随机范围是必须的,因为读写器在启动该过程时要与标签同步;与以太网中的站不同,标签不会在自己选择的时间到时被消息唤醒。20、蓝牙和RFID(介质访问控制子层)_第6张图片
  • 标签随机选择一个时间槽来应答。在图中,标签在时间槽2中应答。然而,标签没有在第一次应答时发送自己的标识符,而是通过RN16消息发送一个简短的16位随机数。如果没有发生冲突,读写器就能收到此消息并发送它自己的ACK消息,到这个阶段,标签已经获得了时间槽,并且发送其EPC标识符。采用这种消息交换模式的原因在于EPC标识符很长,识别符冲突的代价太昂贵。一旦标签的标识符被成功发送,标签就暂时停止响应新的QRepeat消息,以便所有剩余标签可以被读写器逐一识别。
  • 对读写器而言,关键问题是调整时间槽数目来避免冲突,但又不能使用太多时间槽以免影响性能这种调整类似于以太网中的二进制指数后退算法。如果读写器看到太多时间槽没有任何响应或者太多的时间槽内发生冲突,它可以发送一个QAdjust消息来减少或增加时间槽的范围,即标签响应随机选择的后退时间槽数目。RFID读写器还可以对标签执行其他操作。例如,它可以选择盘点一组标签,允许它收集一类物品的库存,比如只需要盘点牛仔裤的库存,那么牛仔裤上的标签要有所反应,但衬衫上的标签不能有反应,读写器还可以把数据写入标签,此功能可用于记录销售点或其他信息。

2.4EPC Gen 2 标签标识消息格式

  • Query的消息格式如图,这是一个读写器发给标签的消息示例。因为下行链路速率有限,通常只有27~128kbps,所以消息结构非常紧凑。command字段携带代码1000用来标识该消息是Query消息。20、蓝牙和RFID(介质访问控制子层)_第7张图片
  • 接下来是标志位:DM、M和TR,确定了读写器传输和标签响应的物理层参数。然后是3个字段:Sel、Session和Target,即选择标签做出回应。除了读写器选择一个标签子集要求回复外,标签最多可跟踪四个(session可以是00、01、10、11)并发的会话以及它们是否在这些会话中已被识别,这样多个读写器可以在多个重叠覆盖区域通过不同的会话实施各自的操作。接着是最重要的命令参数Q,该字段定义了标签的响应范围,从0~2Q-1。最后是校检和CRC,CRC只有5位,短消息并不需要更长的CRC。
  • 标签到读取器的消息较为简单,只是传输数据,比如EPC标识符。最初标签只有标识作用,随着时间推移,它们已经成长为非常小的计算机。一些研究标签有传感器,能够运行小程序来收集和处理数据,这项技术的一个愿景是物联网,把物理世界中的物理连接到Internet。

你可能感兴趣的:(计算机网络(Andrew,David著\严,潘译))