Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2213661
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类:

2010-11-28 19:59:36

嵌入式系统中的无线技术 zigbee,bluetooth,wifi,红外协议分析

 

1081000069李天祺

目录

一、前言... 1

二、无线技术... 1

1.无线电:... 1

2IEEE 802.11... 1

3.几种无线通信技术... 1

1)蓝牙:... 1

2Wi-Fi 2

3)红外:... 2

4Zigbee... 2

三、嵌入式系统... 3

1       嵌入式微处理器MPU.. 3

2       嵌入式微控制器MCU.. 3

3       入式DSP处理器... 3

4       嵌入式片上系统SOC. 3

四、蓝牙核心协议概述... 4

1、基带协议(Baseband... 4

2、链路管理协议(LMP... 5

3.逻辑链路控制与适配协议(L2CAP... 5

4.服务发现协议(SDP... 5

五、单片机上的蓝牙模块... 6

1ROK101 007蓝牙通信芯片... 6

2BF10蓝牙串口模块... 6

3.蓝牙模块7708. 6

六、相关文献研究... 7

七、参考资料... 16

 

 

本组的研究题目是嵌入式系统中的无线技Zigbee,bluetooth,wifi,红外协议分析。这个题目可以说既熟悉又陌生,因为嵌入式系统中的无线技术在生活中可以说处处皆是。就从人人皆知的蓝牙来说,已经成为现代手机的必备功能,而手机实际上就是一个嵌入式系统。

虽然嵌入式系统中的无线技术十分贴近我们的生活,但我对这方面的技术和原理还完全谈不上了解,仅仅驻留在了使用层面上,所以我希望在这次选题研究过程中能有收获。

要研究嵌入式系统中的无线技术首先就要了解这一方面的知识,所以对于该题目研究应该先从认识了解嵌入式系统中的无线技术开始。然后对一种或几种技术的协议进行了解及研究。

.无线电:指在自由空间(包括空气和真空)传播的电磁波,是其中的一个有限频带,上限频率在300GHz,下限频率较不统一, 在各种射频规范书, 常见的有3KHz~300GHzITU-国际电信联盟规定),9KHz~300GHz10KHz~300GHz

IEEE 802.11是当前无线局域网(Wireless Local Area NetworkWLAN)的标准。它采用2GHz5GHz频段,数据传输速率为11 Mbps54 Mbps

.几种无线通信技术

       )蓝牙:

蓝牙Bluetooth是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。

蓝牙技术优势

Bluetooth 技术在 2.4 GHz 波段运行,该波段是一种无需申请许可证的工业、科技、医学 (ISM) 无线电波段。所以,使用 Bluetooth 技术不需要支付任何费用。但必须向手机提供商注册使用 GSM CDMA,除了设备费用外,您不需要为使用 Bluetooth 技术再支付任何费用。

Bluetooth 技术应用范围十分广泛,低功耗,小体积以及低成本的芯片解决方案使得 Bluetooth 技术甚至可以应用于极微小的设备中。

   Wi-Fiwai fai):全称Wireless Fidelity其实就是 IEEE 802.11b 的别称,是由一个名为无线以太网相容联盟Wireless Ethernet Compatibility Alliance, WECA)的组织所发布的业界术语,中文译为无线相容认证。它是一种短程无线传输技术,能够在数百英尺范围内支持互联网接入的无线电信号。

WIFI突出优势

其一,无线电波的覆盖范围广,基于蓝牙技术的电波覆盖范围非常小,半径大约只有50英尺左右Wi-Fi的半径则可达300英尺左右。

其二,虽然由Wi-Fi技术传输的无线通信质量不是很好,数据安全性能比蓝牙差一些,传输质量也有待改进,但传输速度非常快,可以达到54mbps

其三,厂商进入该领域的门槛比较低。厂商只要在机场、车站、咖啡店、图书馆等人员较密集的地方设置热点,并通过高速线路将因特网接入上述场所。这样,由于热点所发射出的电波可以达到距接入点半径数十米至100米的地方,用户只要将支持无线LAN的笔记本电脑或PDA拿到该区域内,即可高速接入因特网

   )红外:红外传输是一种点对点的传输方式,无线,不能离的太远,要对准方向,且中间不能有障碍物也就是不能穿墙而过,几乎无法控制信息传输的进度红外线通信技术适合于低成本、跨平台、点对点高速数据连接,尤其是嵌入式系统。

优点红外接口可以省去下载或其他信息交流所发生的费用;由于需要对接才能传输信息,安全性较强;

缺点通讯距离短,通讯过程中不能移动,遇障碍物通讯中断;红外通讯技术的主要目的是取代线缆连接进行无线数据传输,功能单一,扩展性差

   ZigbeeZigbeeIEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术

Zigbee自身的技术优势

低功耗。在低耗电待机模式下,2 5 号干电池可支持1个节点工作624个月,甚至更长。这是Zigbee的突出优势。相比较, 蓝牙能工作数周、WiFi可工作数小时。

低成本。通过大幅简化协议(不到蓝牙的1/10) ,降低了对通信控制器的要求,按预测分析,80518位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且Zigbee免协议专利费。

低速率。Zigbee工作在20250 kbps的较低速率,分别提供250 kbps(2.4GHz)40kbps (915 MHz)20kbps(868 MHz) 的原始数据吞吐率,满足低速率传输数据的应用需求。

近距离。传输范围一般介于10100 m 之间,在增加RF 发射功率后,亦可增加到13 km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。

短时延。Zigbee 的响应速度较快,一般从睡眠转入工作状态只需15 ms ,节点连接进入网络只需30 ms ,进一步节省了电能。相比较,蓝牙需要310 sWiFi 需要3 s

高安全。Zigbee 提供了三级安全模式

 

嵌入式一般可以分为四类:嵌入式微处理器MPU、嵌入式微控制器MCU、嵌入式DSP处理器、嵌入式片上系统SOC

 

MPU 由通用计算机cpu演变而来,价格及性能都较高,因去除冗余功能,所以是以最低功耗和资源实现嵌入式应用的特殊要求;

MCU 典型代表是单片机,体积小,从而功耗成本底,可靠性较高,性价比高,应用十分广泛;

DSP处理器 专门用于信号处理方面的处理器,在数字滤波、频谱分析上应用广泛;

SOC 最求产品系统最大包容的集成器件,成功实现了软硬件无缝结合直接在处理器片内嵌入操作系统的代码模块。

 

蓝牙的和新协议由基带、链路管理、逻辑链路控制与适应协议和服务发现协议等四部分组成。从应用的角度看,射频、基带和LMP可归为蓝牙的底层协议,他们对应用而言是十分透明的。

 

、基带协议(Baseband

首先,来看蓝牙的网络拓扑结构,如下图。蓝牙的网络拓扑结构由一个或多个微微网(Piconet)构成。在一个微微网中,只有一个蓝牙设备是主设备(Master),可以有7个从设备(Slave),他们是由3位的MAC地址区分的。主设备的时钟和调频序列用于对同一个微微网中的从设备进行同步。多个独立的非同步的微微网又可以形成分布式网络(Scatternet),一个微微网中的主/从设备可以是另外一个微微网的主/从设备,但是各个微微网通过使用不同的调频序列来加以区分。

基带协议确保各个蓝牙设备之间的物理射频连接,以形成微微网。蓝牙的射频系统使用跳频和扩频技术,其任意分组在指定时隙通过指定频率进行发送,这层使用查询(Inquiry)和呼叫(Page)进程来同步不同设备间的传输跳频频率和时钟。

 

、链路管理协议(LMP

该协议不仅负责蓝牙设备间链路的建立和控制,还用于安全方面的鉴权和加密;另外,还控制无线部分的能量模式和工作周期、微微网内各设备的连接状态。

 

.逻辑链路控制与适配协议(L2CAP

逻辑链路控制与适配协议完成基带与高层协议间的适配,并通过协议复用、分割及重组操作为高层提供数据业务和分类提取。来自数据应用的通讯信号首先通过L2CAPL2CAP层屏蔽了高层协议和应用与底层传输协议之间的关联。因此,高层协议不需要知道在无线电波和基带层上的调频序列,也不需要知道在蓝牙空中接口传输的分组格式。L2CAP支持协议复用,允许多个协议和共享空中接口,它支持分组的分割和重组,将高层使用的大部分分组分割成适合于基带传输的小分组,在接受设备端又将这些小分组重组。

 

.服务发现协议(SDP

服务发现协议是所有应用模型的基础,通过该协议可以查询到设备的信息和服务类型,从而在蓝牙设备间建立相应的连接。

 

ROK101 007蓝牙通信芯片是爱立信(EriCSSon)公司推出的一款适合于短距离蓝牙通信的无线基带模块。它集成度高、功耗小、完全兼容蓝牙协议V11,可嵌入任何需要蓝牙功能的设备中。

 

BF10蓝牙串口模块为一款智能型无线数据传输产品,本产品标准型支持: 4800bps~1382400bps等多种接口波特率,支持从模式,支持64通道蓝牙替代串口线。

采用世界领先的蓝牙芯片供应商CSRBlueCore4-Ext芯片,完全兼容蓝牙2.0规范,硬件支持数据和语音传输,最高可支持3M调制模式。语音接口支持PCM协议。BC04 Class2模块高灵敏性接收,低成本,体积小巧,低功耗,用于蓝牙的数据传输领域。

 

.蓝牙模块7708

7708蓝牙模块采用了Cambridge Silicon Radio公司生产的第二代蓝牙芯片(BC212015),集成 512×16 FLASH。模块内置功率放大器,采用FHSS(跳频展频)技术,可用于数据加密(Encryption)、用户鉴权(Authentication),具有强大的抗干扰性和保密性。

其他特点:

支持SPI编程接口;
   
支持常用计算机接口:RS-232USBSPII2C
   
数据传输速率可达723kbps
   
支持PCM CODEC接口,可传输语音信号;
   
点对多点操作;
技术指标:

工作频段:2.4GHz ISM频段;
   
调制方式:GFSK
   
接收灵敏度:-80dBm
   
发射功率:>20dBm(CLASS 1)
   
环境温度:-20°C~+70°C
   
工作电源:7.5V~8V
   
传输距离:100米(空旷环境);
   
尺寸:35mm(l)×20mm(w)

应用领域:

报警与安全系统;
   
家庭自动化系统;
   
遥控装置;
   
医用设备;
   
工业控制:

无线耳机、无线麦克风;

 

1.《基于蓝牙HCI实现单片机与PC间无线通信》

1 引言

蓝牙技术作为一种无线数据与语言通信的开放性全球规范,可提供低功耗,低成本的无线空中接口,在各种固定与移动设备之间实现短距离的无线通信。生活中,各种小型外设与PC间的无线数据交换很常见,尤其是在工业控制,数据采集等场合中,单片机与PC间的无线通信更加频繁。本文就是基于这种需要提出了一种单片机与PC通过蓝牙技术进行无线数据通信的实现方案,主要工作是在单片机端和PC端,分别基于蓝牙HCIUART传输层和USB传输层,各自实现了一个基本的蓝牙HCI层协议,并编写应用程序,实现了基本的数据传输,达到了预期效果。

 

2 蓝牙协议栈及HCI概述

2.1 蓝牙协议栈

蓝牙SIG开发了蓝牙协议规范,已发布版本包括1.01.0b1.12.0。蓝牙协议规范允许开发人员开发基于可互操作的无线模块和数据通信协议的交互式服务和应用,目的是使符合该规范的各种应用之间能够实现互操作。蓝牙协议栈如图1所示。互操作的远端设备需要使用相同的协议栈,不同的应用需要不同的协议栈,但是,所有的应用都要使用蓝牙协议规范中的数据链路层和物理层。协议栈各层都是相对分离的实体,通过回调表将精心设计好的接口暴露给上下层,除此之外协议栈内的各部分没有任何交互关系,每一层都是可替换的。

 

2.2 HCI概述

主机控制器接口(HCI)是蓝牙协议栈中比较特殊的一层,它不是蓝牙的强制性实现协议。实际系统中,它可以位于L2CAP层的上边也可以位于L2CAP的下边。通常,射频基带链路管理器封装在一起,形成一个具有蓝牙无线通信功能的蓝牙模块,而HCI就提供了主机与蓝牙模块之间的统一操作接口,从而使得此类蓝牙模块可以方便地当作可编程控制器使用。在简单的线缆替代应用场合,蓝牙的核心协议之一L2CAP可以不需要实现,而通过HCI直接操纵链路管理器、访问基带寄存器等硬件。HCI以上的协议软件运行在主机上,通过主机控制器驱动程序访问蓝牙模块里的主机控制器;蓝牙模块通过主机控制器获知上层的服务命令和数据,完成下层的协议功能。介于主机控制器驱动程序和主机控制器之间的是HCI传输层, 目的是实现透明性。HCI传输层针对不同的物理介质提供的不同的支持,分别是USB传输层RS232传输层UART传输层SD传输层。蓝牙HCI传输机制为“指令一应答”机制,即主机向主机控制器发送HCI指令ACL数据SCO数据,主机接收主机控制器返回的HCI事件及远端发送的ACL数据和SCO数据。HC1分组有三类,分别是HCI指令分组,HCI事件分组,HCI数据分组。其中,HCI数据分组分ACL数据分组和SCO数据分组两类。

 

3 硬件设计

 

3.1 单片机端

单片机端采用C8051F120通过UART连接爱立信蓝牙模块ROK101008C8051F120Cygnal公司的一种与8051兼容的高速SOC单片机,扩充了许多数字和模拟外围电路,具有8KRAM以及128KFLASH,可以提供足够的存储空间来存储程序和处理数据。爱立信的蓝牙模块ROK101008集成了射频单元基带控制器,提供了多种HCI(主机控制器接口)传输层接口,在此使用UART传输层接口。此外,为配合实验,单片机外接了8个按键和一个液晶。

 

3.2 PC

PC端硬件连接比较简单,将蓝牙USB适配器直接通过USB连接到PC上即可,需要注意的是,插上适配器后,如果是在XP系统下,系统会自动装载蓝牙适配器驱动程序,因为在此是要开发自己的简单应用程序,而自动安装的驱动程序是针对高级应用开发的,覆盖了HCI层,因此需要将其卸载,安装针对特定适配器的HCI驱动程序。此处使用的是CSRBlueCore 04,安装CSR USB Driver 118,安装成功后可在“设备管理器”一“通用串行总线控制器”中查找到“CSR BlueCore Bluetooth”。

 

4 软件设计

41 单片机端

单片机端的软件在Keil平台下进行嵌人式C编程实现,传输层采用UART,单片机通过UART控制蓝牙模块。软件包括初始化,蓝牙交互,处理数据三个模块。初始化包括系统初始化和蓝牙初始化。系统初始化包括CPU时钟初始化,管脚分配,串口初始化等,蓝牙初始化是通过UART给蓝牙模块发送一系列初始化命令,蓝牙模块返回事件,交互完成一系列的复位,鉴权,读地址等初始化操作。通信就是初始化完成后若本地蓝牙作从设备,则等待远端蓝牙设备的建链请求,如果接受请求,则继续等待建链成功,获得一个连接句柄,从而进行数据交换,若本地蓝牙作主设备,则通过一系列主动查询,建链,发送数据,断链等操作。处理数据就是将数据显示在与单片机相连的LCD上等一系列后续操作。程序流程图如上图所示。数据结构方面,程序按照HCI规范构造了HCI指令分组cmd_pktHCI事件分组event_pktHCIACL数据分组acl_pkt的数据结构,并设计了用于标识当前蓝牙设备的hci_device结构体,包括蓝牙设备配置信息hci_info,蓝牙连接信息HCIcon和用于存储返回分组信息的接收缓冲区hci_bui[1000],具体如图所示。

软件采用前后台的方式实现,前台运行主程序,后台定时循环调用HCI状态机HCI状态机是一个子程序,用来专门处理蓝牙模块返回的HCI事件分组和HCI数据分组。状态机通过分析HCI事件分组来决定相应操作,获取相关信息,通过分析HCI数据分组,来接收实际传输数据并存储到接收缓冲区。具体的HCI状态机的处理流程如图所示。

HCI状态机初始状态置为IDLESTATE,根据HCI UART传输层格式规范,按字段取蓝牙模块返回的各个字节,每个字节为一个十六进制数,不同的数代表不同的含义。第一个字节为分组指示器,标识分组的类型。ACL数据分组为ACLPKT(0x02)SCO数据分组为SCOPKT(0x03),事件分组为EVT_PKT(0x04),另外指令分组为CMD_PKT(0xO1),蓝牙模块只返回ACLSCO和事件分组。取出第一个字节判断出分组类型。若为事件分组,则状态机转换为EVENT HDR STATE状态,继续取字节,读出事件码和参数长度后,转换到EVENT_DATASTATE状态,表示再来的字节即为事件参数,读取事件参数,并调用processevent()处理事件,完成后回到IDLE STATE状态。若为ACL数据分组,则先转换为ACL_ HDR_ STATE状态,取出连接句柄,转换为ACHINA NEW TELECOMMUNICACL DATA STATE状态,处理后续来的数据,即为实际接收到的数据,完成后回到IDLESTATE状态。若为SCO数据分组,类同ACL数据分组的处理过程。HCI状态机要通过系统预先设定的一个定时器定时循环调用,虽然HCIUART得到的数据流是一块一块的,有可能刚好是一个分组,有可能是几个分组,还可能是一个分组的部分数据,但状态机对接收到的一块数据流的处理是连续进行的,数据流的间断只会造成状态机的暂时等待,而不会影响其正确处理返回分组。如中途出现分组丢失或错误的字段,状态机会报错并重新置回初始态。程序主要函数如下表所示。

4.2 PC

操作系统采用Windows XP,蓝牙USB适配器采用CSR BlueCore 04,蓝牙USB适配器驱动程序采用csrbc118。此驱动程序提供了一系列的控制字,通过这些控制字可以直接在HCI层上控制蓝牙适配器。编程环境为VC++60。驱动程序的接口采用Windows API函数。

    

5 结束语

蓝牙通信的实现方案多种多样,本文仅是提出了一种基于HCI层的单片机通过UART控制蓝牙模块与Pc通过USB控制蓝牙适配器进行点对点通信的实现方案,当然,就算是这一种方案中,也有不同的实现模式,单片机端同样可以通过USB控制蓝牙模块,PC端加上一个电平转换同样也可以通过UART控制蓝牙模块。本系统只是实现了基本的点对点数据传输,在此基础上可以进一步完善,实现点对多点数据传输,还可以在两端开发对等层的文件传输协议,实现文件传输。此系统采用了状态机实现HCI,具有一定的规范性,可在此基础上开发蓝牙高层协议,也可作为一个通用的模块集成到具体应用系统中,较为方便地实现短距离的无线通信。

 

2.针对文献答疑

UART传输层UART:Universal Asynchronous Receiver/Transmitter,通用   异步接收/发送装置,UART是一个并行输入成为串行输出的芯片;

USB传输层:USBUniversal Serial BUS(通用串行总线)的缩写,而其中   文简称 通串线,是一个外部总线标准,用于规范电脑与外部设备的连接  和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能;

RS232传输层:计算机上的通讯接口之一,异步传输标准接口。通常 RS-232    口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机  上会有两组 RS-232 接口,分别称为 COM1 COM2

HCI指令:HCI是英文Human-Computer Interaction的简写,同时它具有几个 相关的概念:[1] 人机交互(Human-Computer Interaction, 简写HCI):是  一门计算机科学,主要研究关于设计、评价和实现供人们使用的交互计算系统 以及有关这些现象进行研究的科学。[2] 人机界面(Human-Computer Interface,简写HCI):是人与计算机之间传递、交换信息的媒介和对话接口, 是计算机系统的重要组成部分;

ACL数据:访问控制列表(Access Control ListACL) 是路由器和交换机   接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,  IPIPXAppleTalk等。这张表中包含了匹配关系、条件和查询语句,表  只是一个框架结构,其目的是为了对某种访问进行控制;

SCO数据:SCO是面向连接的同步链路(Synchronous Connection Oriented   link)的简称。支持对时延敏感的信息如语音。蓝牙中定义的两种数据链路方  式之一;

高速SOC单片机:System on Chip 片上系统;

KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统;

句柄:一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用  于标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等,应用程序能够通过句柄访问相应的对象的信息。但是,句柄不是一个指针,程序不能利用它句柄来直接 阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的;

状态机:状态机的一个确切的描述是它是一个有向图形,由一组节点和一组相  应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止;

APIAPI(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

 

《无线通信及网络(第二版)》                    William  Stallings

《嵌入式系统设计与实例开发》                   王田苗  魏洪兴

《蓝牙技术》                                   严紫建  刘元安

《基于蓝牙HCI实现单片机与PC间无线通信》          周洪利

阅读(4283) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~