全部博文(436)
分类:
2010-10-22 19:45:38
网络工程作业阶段性成果及下一步研究计划报告3
题目:嵌入式系统中的无线技术 zigbee,bluetooth,wifi,红外协议分析
组长:李天祺 组员:李天祺
报告日期:2010年10月20日
一.研究内容概述:
本阶段继续对蓝牙技术进行研究。本阶段继续学习蓝牙的核心协议,另外找到了一些关于单片机和蓝牙通信的文献,并对其中一篇比较详细的着重进行了研究。文献中有些问题将在本阶段研究面临问题及解决方案中作出解答,但由于文献有些部分所写较为简略,可能在某些方面难以认识深刻。而对于蓝牙核心协议,在上一阶段已经做了初步的解了,这里首先归纳一下蓝牙核心协议的内容:
1. 基带协议(Baseband)
2. 链路管理协议(LMP)
3. 逻辑链路控制与适配协议(L2CAP)
4. 服务发现协议(SDP)
二.本阶段学习内容及成果:
1. 文献研究
《基于蓝牙HCI实现单片机与PC间无线通信》
1 引言
蓝牙技术作为一种无线数据与语言通信的开放性全球规范,可提供低功耗,低成本的无线空中接口,在各种固定与移动设备之间实现短距离的无线通信。生活中,各种小型外设与PC间的无线数据交换很常见,尤其是在工业控制,数据采集等场合中,单片机与PC间的无线通信更加频繁。本文就是基于这种需要提出了一种单片机与PC通过蓝牙技术进行无线数据通信的实现方案,主要工作是在单片机端和PC端,分别基于蓝牙HCI的UART传输层和USB传输层,各自实现了一个基本的蓝牙HCI层协议,并编写应用程序,实现了基本的数据传输,达到了预期效果。
2 蓝牙协议栈及HCI概述
2.1 蓝牙协议栈
蓝牙SIG开发了蓝牙协议规范, 已发布版本包括1.0,1.0b,1.1和2.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连接爱立信蓝牙模块ROK101008。C8051F120是Cygnal公司的一种与8051兼容的高速SOC单片机,扩充了许多数字和模拟外围电路,具有8K的RAM以及128K的FLASH,可以提供足够的存储空间来存储程序和处理数据。爱立信的蓝牙模块ROK101008集成了射频单元和基带控制器,提供了多种HCI(主机控制器接口)传输层接口,在此使用UART传输层接口。此外,为配合实验,单片机外接了8个按键和一个液晶。
3.2 PC端
PC端硬件连接比较简单,将蓝牙USB适配器直接通过USB连接到PC上即可,需要注意的是,插上适配器后,如果是在XP系统下,系统会自动装载蓝牙适配器驱动程序,因为在此是要开发自己的简单应用程序,而自动安装的驱动程序是针对高级应用开发的,覆盖了HCI层,因此需要将其卸载,安装针对特定适配器的HCI驱动程序。此处使用的是CSRBlueCore 04,安装CSR USB Driver 1.18,安装成功后可在“设备管理器”一“通用串行总线控制器”中查找到“CSR BlueCore Bluetooth”。
2. 参考资料:
《无线通信及网络(第二版)》 William Stallings
《嵌入式系统设计与实例开发》 王田苗 魏洪兴
《蓝牙技术》 严紫建 刘元安
《基于蓝牙HCI实现单片机与PC间无线通信》 赵 霄 周洪利
三.本阶段研究面临问题及解决方案(针对文献答疑):
UART传输层:UART:Universal Asynchronous Receiver/Transmitter,通用 异步接收/发送装置,UART是一个并行输入成为串行输出的芯片。
USB传输层:USB:Universal Serial BUS(通用串行总线)的缩写,而其中 文简称 为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接 和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插 拔功能。
RS232传输层:计算机上的通讯接口之一,异步传输标准接口。通常 RS-232 接 口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机 上会有两组 RS-232 接口,分别称为 COM1 和 COM2。
SD传输层:?
HCI指令:HCI是英文Human-Computer Interaction的简写,同时它具有几个 相关的概念:[1] 人机交互(Human-Computer Interaction, 简写HCI):是 一门计算机科学,主要研究关于设计、评价和实现供人们使用的交互计算系统 以及有关这些现象进行研究的科学。[2] 人机界面(Human-Computer Interface,简写HCI):是人与计算机之间传递、交换信息的媒介和对话接口, 是计算机系统的重要组成部分。
ACL数据:访问控制列表(Access Control List,ACL) 是路由器和交换机 接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议, 如IP、IPX、AppleTalk等。这张表中包含了匹配关系、条件和查询语句,表 只是一个框架结构,其目的是为了对某种访问进行控制。
SCO数据:SCO是面向连接的同步链路(Synchronous Connection Oriented link)的简称。支持对时延敏感的信息如语音。蓝牙中定义的两种数据链路方 式之一。
高速SOC单片机:System on Chip 片上系统
四.本阶段研究总结:
本阶段对文献《基于蓝牙HCI实现单片机与PC间无线通信》作了研究,并通过上网查阅解决了不懂的问题,本次报告仅将上半部分作了介绍。
经过前阶段对理论的初步了解,这次的报告比较贴近实际研究,但文献中没有详细的软件程序代码,所以只能从思路和逻辑上对文献中的技术学习。
五.下阶段研究计划
下一周内大概要完成以下内容:
1. 针对该文献的软件设计部分进行研究,并对文献做整体总结;
2. 完成蓝牙核心协议的学习;
3. 查找相关文献代码。