基于蓝牙的无线接入点设计
以51单片机P89V51RD2为主控制器、ROK101008为蓝牙模块、W3100A为TCP/IP硬件协议栈、以太网网卡芯片RTL8201为网络接口,介绍了一种基于蓝牙的无线接入点的硬件结构和软件流程。该设计支持TCP/IP协议和蓝牙协议,具备蓝牙设备的无线上网功能,通过Internet实现数据的远程传输。
无线接入技术是实现无线网接入有线网的网络通信技术,其典型应用就是无线接入点。无线接入点是一个用于将无线网与有线网连接到一起,使无线客户端和有线网络之间能够相互发送和接收数据的装置,是无线移动终端设备接入到Internet的网络接口。无线移动终端可通过无线接入点访问Internet资源。
基于蓝牙的无线接入点就是实现蓝牙无线移动终端接入Internet的网络接口,其主要功能是通过蓝牙无线传输技术,使蓝牙设备接入Internet网,实现一个或数个蓝牙设备的无线上网功能。
1 蓝牙接入点的组成
蓝牙接入点的结构框图如图1所示。它由前端和后端两部分组成,前端部分由蓝牙模块和单片机组成,构成蓝牙收/发模块,主要功能是通过蓝牙协议,与其他蓝牙设备建立无线链接,实现蓝牙设备间的无线通信;后端则由单片机和TCP/IP协议栈芯片、以太网网卡芯片组成,构成单片机网络接口模块,主要功能是通过TCP/IP协议栈芯片、网卡芯片,再经RJ45接入Internet,根据TCP/IP协议,与Internet上的服务器进行通信,实现数据的远程传输。这样,通过蓝牙接入点就可实现从蓝牙网接入到Internet网,完成蓝牙协议与TCP/IP协议的转换。蓝牙接入点为其他蓝牙设备提供了无线上网途径。
2 蓝牙接入点的设计
由图1可知,蓝牙接入点的设计包括蓝牙收/发模块的设计和单片机网络接口模块的设计,每个模块又包括硬件设计和软体设计两部分。
2.1 蓝牙收/发模块设计
2.1.1 硬件设计
蓝牙收/发模块主要由单片机通过异步串行通信接口与蓝牙模块连接而成。由于单片机与蓝牙模块的工作电压不一定相同,不仅需要考虑电源变换问题,还需要考虑逻辑电平的转换问题。若所选单片机与蓝牙模块都是+3.3 V供电,则可把单片机的UART串口与蓝牙模块的UART串口直接相连接。
在本设计中,所选用的单片机P89V51RD2是+5 V供电,ROK101008是+3.3 V供电,需要进行电源变换。电源变换电路比较简单,采用电源变换芯片AMS1117-3.3即可。至于逻辑电平转换,可在P89V51RD2与ROK101008之间接入IDT公司的电平转换芯片IDT74FCT164245T,其连接示意图如图2所示。
2.1.2 软体设计
蓝牙收/发模块的软体设计包括蓝牙链接和数据的收/发两部分。蓝牙设备间的通信主要是通过单片机向蓝牙模块发送HCI指令、接收HCI事件的形式实现。当两个蓝牙模块链接成功后,就可以按照蓝牙规范规定的ACL数据包格式收/发数据。
本系统设计的是蓝牙终端点对点的链接,其通信流程如图3所示。由图可知,蓝牙通信过程主要有蓝牙模块的初始化、查询、链接、数据通信和链接断开等几个过程。实现时,可以将蓝牙指令以函数的形式封装成一个HCI指令接口函数库。编写HCI驱动程序时,可直接从函数库中调用HCI指令函数,对蓝牙设备进行基本操作,如对蓝牙设备进行复位、读取蓝牙设备的地址、初始化、查询、建立链接、收发数据和断开链接等。
2.2 单片机网络接口模块设计
2.2.1 硬件设计
单片机网络接口模块主要由单片机P89V51RD2、TCP/IP硬件协议栈芯片W3100A及物理收发芯片RTL8201BL组成,完成单片机与Internet间的通信。
W3100A芯片提供了直接总线模式(Direct Bus I/F)、间接总线模式(Indirect Bus I/F)和I2C总线模式(I2C Bus I/F)三种不同的接口模式与MCU相连接。为了提高数据的网络传输速率,本设计采用直接总线模式和时钟工作模式。单片机与W3100A的硬件连接示意图如图4所示。
W3100A是韩国Wiznet公司专门为以太网互联和嵌入式设备推出的一款硬件TCP/IP协议栈芯片。在芯片硬件中安装了简单的TCP/IP协议栈,实现了软件硬化,降低了软件开发的开销及难度。W3100A提供MII接口与PHY芯片RTL8201BL相连。
2.2.2 软体设计
对于W3100A,可配置成客户端,也可配置成服务器端。W3100A的客户端工作模式与服务器端工作模式基本相同,不同的地方是,只要把客户端工作流程中发起链接请求处改成侦听链接请求,则客户端工作模式就变成了服务器端工作模式。本设计中把W3100A配置成客户端,在建立起与PC服务器的连接后,就可实现数据的发送和接收。整个过程的建立基于TCP协议。客户端主程序的流程如图5所示。从客户端主程序的流程可以看出,客户端的工作过程包括初始化、建立链接、收发数据和终止链接四个步骤。在所有初始化及参数设置完成以后,就可发起链接请求。若链接失败,则返回重新执行SOCKET初始化程序。若链接成功,程序将读取Socket状态寄存器的内容,判断SOCKET所处的状态,然后,根据SOCKET所处状态的不同进行相应的处理。整个TCP/IP的工作过程都是建立在W3100A的中断机制基础之上。
W3100A芯片的工作方式类似于Windows的Socket API,WIZnet公司为W3100A提供了专门的Socket API软件包,只要调用Socket API函数,就可很方便地用单片机C语言来编写单片机的网络通信接口程序。
蓝牙技术以其成本低、组网灵活等优点正成为当今世界的一个研究热点,是下一代无线个人区域网(WPAN)的理想实现技术。与目前的IEEE802.11以太网无线接入技术相比,基于蓝牙的无线接入技术在小区域组网中更具优势。作为蓝牙无线接入技术的典型应用,蓝牙接入点具有广泛的应用前景,如机器人、远程监控、数据远程传输及无线上网等。可以预见,在不久的将来,基于蓝牙技术的移动通信产品及移动互联网必将在工农业生产和人们的生活中应用越来越广泛。