Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15336844
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2009-12-11 23:12:59

在工业现场上越来越多的使用了蓝牙技术。蓝牙技术在工业上的应用大概可以分为代替串行 线缆、结合蓝牙和互联网技术、工业接入点、无线传感器和起动 器四个方面。本文着重介绍了蓝牙接入点的硬 件系统结构和软件流程,并针对在工业现场上使用蓝牙接入点将阀门、流量计、温度变送器等几个蓝牙设备连 接到 工业以太网中,实现了带蓝牙通信模块的工业设备和现有的有线网络的通信。 

关键字:工业接入点、蓝牙技术、无线通信、ARM7

1    引言

在工业现场中,由于有些环境比较恶劣,布线不方便等因素可以采用蓝牙无线通信技术来实现数据的通信。 同时,工业现场中有很多以不同方式互连的设备,其中包括非智能化简单数据连接单元(I/O)、智能化设备(比 如智能传感器、单回路控制器和 PLC)和监控系统(作为 HMI 使用,用于数据记录和监控)等。这些设备大都是 以各种不同的通信协议和媒介来互连的,其中有些就可以用蓝牙无线技术代替。本文以 AT91R40008 为例,结合  BCM04 蓝牙模块开发了基于蓝牙通信的工业接入点,组建了基于蓝牙通信的阀门、流量计、温度变送 器测试系统,实现了带有蓝牙通信模块的工业设备和现有的有线网路的通信。

2    蓝牙技术简介 蓝牙(bluetooth)是一种短距的无线通讯技术,电子装置彼此可以透过蓝牙模块而连接起来,省去了传统的电线。透过芯片上的无线接收器,配有蓝牙技 术的电子产品能够在十公尺的距离内彼此相通,传输速度可以 达到每秒钟 1 兆字节。同时,蓝牙支持设备短距离通信(一般是 10m 之内)。能在包括移动电话、PDA、无线 耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。蓝牙的标准是 IEEE802.15,工作在 2.4GHz  频 带,带宽为 1Mb/s。

蓝牙技术在工业现场上的应用大致可以分为四个方面:

(1)  代替串行线缆。无线蓝牙连接可以代替当前的串行线缆。

(2)  结合蓝牙和互联网技术。利用蓝牙带来的 CPU 处理能力,给设备添加更多功能,如内置的 WEB 用户接口。

(3)  工业接入点。通过接入点将数个蓝牙设备连接到传统的有线网络中,比如 IP  网络(如以太网)或者工业现场 总线网络(如 Controlnet 和 Profibus 等)。

(4)  无线传感器和起动器。利用蓝牙来将与物理制程关系最密切的设备(传感器、起动器和简单的模拟/数字  IO

设备)连接到监控系统。

3   蓝牙接入点的系统设计 在工业现场中使用无线通信技术。这就要求工业设备使用蓝牙功能,并能和现有的以太网或者工业现场总线网络相连。在这里,蓝牙接入点就好像一个“电话交换 机”,通过以太网供电设备和上位机进行通信,以及通 过无线方式和工业现场设备进行数据交换,实现上位机对现场设备的数据采集、监测和控制。本文将蓝牙接入点的系统设计分为硬件体系结构和软件设计两个部分。 下面将对这两部分进行具体说明。

3.硬件体系结构


 

该蓝牙接入点包含了微处理器(AT91R40008)、存储器、蓝牙通信模块、网络通信接口、串口通信等重 要组成部分。在该设计中,电源使用了以太网供电设备,该设备除了用于网口通信,还提供设计中所需要的 电源。该电源经过电平转换,为微处理器、存储器、蓝牙通信模块等提供所需的+3.3V 和+1.8V 电源。32 位 的微处理器 AT91R40008 通过串口 0 和串口 1 与串口通信部分和蓝牙模块进行数据交换。图 1 为蓝牙接入点 的硬件框图。下面就其具体原理进行说明。

图 1 蓝牙接入点硬件系统框图

 

3.1.1  微处理器 AT91R40008

AT91R40008 是 Atmel AT9116  的 32 位的微控制器系列产品。它以  ARM7TDMI  处理器内核为基础。该处 理器有一个高性能 32 位精简指令系统和一个高密度 16 位的指令系统,同时具有较低的能耗。AT91R40008 具 有片上的 SRAM 或 ROM、完全可编成的外部总线接口(EBI)、32 个可编程的 I/O 口、8 个优先级、4 个外部 中断、2 个 USART 及 16 位的定时器/计数器等特点。除此之外,在内部寄存器实现对异常情况的快速处理,可 以方便的进行即时控制和应用编程。

AT91R40008 以与外部存储器的直联为特色,由外部 FLASH,经过完全可编程外部总线接口(EBI)、  一个八 位优先向量中断控制器,,及外部数据控制器,大大提高了处理器的即时性能。AT91R40008 使用  Atmel 的高密度 CMOS 技术,ARM7TDMI  处理器内核结合了片上高速存储器及其外部设备,使其具有非常强大的功能。 微处理器部分的设计包含系统硬件的启动与复位,地址总线、数据总线的分配和定义,通过串行线对蓝牙模块的读写等。

系统由外部的 50M 钟振作为时钟源向 cpu 输入时钟信号。复位电路由 10uF 的电容、10K 的电阻及按键组 成低电平复位电路。该复位电路可实现上电低电平自动复位或者手动复位。AT91R40008 内部 ROM 为 128K, 外部最大可扩 64M 的存储器,由于设计需要,在设计中扩展了一片 2M 字节的 SST36VF160 对大量的软件程序 进行存储。由于 AT91R40008 内部包含的 SRAM 已达 256K,对于数据存储已够用了,所以在外部没有进行 RAM 的扩展。网卡芯片 AX88796 通过片选线、中断线、读写信号控制线和地址数据总线和 cpu 相连,实现蓝牙接入 点和上位机的网络通信。AT91R40008 通过串口 1 实现与蓝牙模块的数据交换,通过串口 0 实现和上位机之间 的串口调试。

3.1.2   FLASH 存储器 SST36VF160

由于该系统是应用与工业现场以太网中,在软件中必须加入相应的以太网规范标准,所以在系统设计中,在 cpu 的外部拓展了 2M 字节的 FLASH。SST39VF160 是一个 1M×16 的 CMOS 多功能 FLASH 器件,由 SST 特有的高性能的 SuperFlash 技术制造而成。SST39VF160 功耗较低,工作电压为 3.3V,具有高性能的编程功能, 字编程时间为 14us。基于 SST39F160 的这些优点选用这款 FLASH,在实践中证明这款 FLASH 能够更方便和 更低成本的满足程序配置和数据存储的要求。

3.1.3   蓝牙模块

BCM04 是满足自适应的可进行数据交换和语音通信的蓝牙通信模块。其体积小,为 17.5×15.0×2.3mm;工作电压为 1.8V,功耗较低;以 UART 为主接口,另有语音接口、SPI 接口、PIO 口等,其结构框图如图 2 所示;

BCM04 内部集成了 16Kbits 的 EEPROM 和 4Mbits 的 FLASH/ROM,具有丰富的存储器资源。

 

图 2   BCM04 蓝牙模块硬件结构框图

在设计中,使用了蓝牙模块的 UART 口和微处理器 AT91R40008 的串口 1 相连,通过蓝牙模块向工业现场 的无线设备发送和接收数据,在由  cpu,经工业以太网将数据传送到上位机中,实现上位机对蓝牙设备的访问与监控。

3.1.4   网络通信接口 在设计中采用采用网络接口将蓝牙接入点接入工业以太网,数据由以太网传递到上位机中,实现工业现场的无线设备和上位机的通信。网络隔离器采用的是 HR61H50L,网卡芯片使用的是 AX88796。

AX88796 是台湾 Asix 公司推出的 NE2000 兼容快速以太网控制器。其内部集成有 10/100 Mb/s 自适应的物 理层收发器和 8K×16 位的 SRAM,支持 MCS-51 系列、80186 系列以及 MC68K 系列等多种 CPU 总线类型。 AX88796 执行基于 IEEE802.3/IEEE802.3u  局域网标准的 10Mb/s 和 100Mb/s 以太网控制功能,并提供 IEEE802.3u 兼容的媒质无关接口 MII(Media Independent Interface),用以支持在其它媒质上的应用。   AX88796 的地址总线 SA[9:0]与数据总线  SD[15:0]分别与  CPU  的地址/数据总线相连。CPU  通过  I/O  读写  NE2000  寄存器来控制 AX88796 的工作状态,通过远程 DMA FIFOs 与 AX88796 的内部缓存 SRAM 进行数据交换。SRAM 与 MAC 核 之间进行 Local DMA 将数据发送至 MAC 层,再经由内部的 PHY 层发送至 RJ45 接口,或者经过 MII 接口送至 外部的物理层芯片。SEEPROM 接口可以用来连接串行 EEPROM。EEPROM 可用于存储 MAC 地址,供 AX88796 每次初始化时读取。

3.1.5   电源部分

电源采用的是以太网供电设备,该设备采用符合 802.3 受电设备标准,输出标准的+24V,经过 LM2576-5、 AS1117-1.8 和 AS1117-3.3 电源芯片,电平转换后,输出蓝牙接入点上的 cpu、存储器、网卡芯片和蓝牙模块上 所需的 1.8V 和 3.3V 电源。

3.1.6   串口通信

串口通信使用的是 MAX3232  芯片。这里使用串口通信接口主要是为了调试蓝牙模块、cpu  和上位机之间 的通信,及测试其通信性能。

3.2   软件部分 在软件设计部分,主要介绍一下蓝牙模块的通信原理。首先,初始化蓝牙模块,直到初始化成功。接着对通信模块的各个端口进行定义。AT91R40008 有 32 位的 I/O 口,设计时结合实际中的情况,考虑具体所用的端 口,结合其他通信模块定义这些端口。定义通信模块端口完成以后,立即与现场无线设备进行连接。随后,蓝牙接入点开始搜索现场设备,并对现场设备进行读写, 接收蓝牙指令并更新。其蓝牙模块的通信流程图如图 3。

 

 

 

 

 

图 3  蓝牙模块的通信流程图

蓝牙接入点向本地子网广播自己的设备声明,并接收其他设备的设备声明。初始化完后 5 秒钟内用来搜寻 子网中的邻居设备,搜寻完成后,开始建立邻居表,并把邻居表内的其他从设备加入到无线调度列表中。网络组建完成后,接入点按照确定性调度算法轮询从设备。 并把蓝牙数据报文转换成工业以太网的报文,放入工业 以太网的调度器中。

设备声明报文:

typedef struct _zgb_pkt_ann {

INT8U    devdesp[16];          //  设备描述,  字符串

INT8U

ms;

//  主 or 从? 0

INT8U

status;

//  设备状态:

 

INT8U

 

res;

//  保留字段

 

主设备; 1  从设备

0  设备未组态,  自由发包;

//1  设备已组态,  获取令牌才能发包

 

 


 

} zgb_pkt_ann;

信息分发报文:

typedef struct _zgb_distribute {

} zgb_distribute;

令牌:

typedef struct _zgb_pass_token {

设备描述,  字符串

INT8U

devdesp[16];

//

INT8U

mdata[16];

//

 

信息分发的内容

确认? 0  不确认; 1  确认

INT8U

ans;

//

INT8U

res[3];

//

 

保留信息

 

} zgb_pass_token;

4    蓝牙接入点在工业现场中的应用 在设计中,将工业以太网的有线网络与工业现场的无线设备之间建立连接,如图  4。工业现场的无线设备通过一个蓝牙专用的传输协议将数据传输到蓝牙接入点。数据经过转换,成为工业以太网能够识别和支持的格 式,并传输到工业以太网中的一个发出指令请求的设备中。上位机同时可以通过以太网对数据进行监控。工业现场的无线设备还可以同时与一个带有蓝牙模块的手持 设备和一个蓝牙接入点进行连接,对数据进行访问和采集。


 

5  小结


图 4  工业现场的蓝牙设备与现有的有线网络的通信示意图


在搭建完整个系统,并对蓝牙的通信性能进行检测的过程中发现,蓝牙模块由于采用的是信息无线传输方式,所以在传输过程中干扰较大,传输距离也较短。 工业现场设备安装的环境往往比较恶劣,怎样使蓝牙设备 拥有更好的稳定性、更低的功耗、更广的工作范围,这些对硬件设计和软件优化提出了更高的要求。

 

参考文献:

[1]周立功等.ARM 微控制器基础与实践.北京:北京航空航天大学出版社,2003.11

[2]凌玲,李治国.蓝牙在工业现场的应用[J].武汉理工大学学报,2001,23(6):41-43

[3]马建仓,罗亚军,赵玉亭.蓝牙核心技术及其应用[M].北京:科学出版社,2003

[4]Mats Andersson.Industrial Use of Bluetooth[EB/OL].

[5]Bluetooth SIG-2001.Specification Volume 1.Specification of the Bluetooth System Core ,version1.1[S]

[6]陈德军,左伟.基于蓝牙的多机通信的实现及其应用.微计算机信息,2007,3-2:262-264

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