本文着重介绍了蓝牙接入点的硬件系统结构和软件流程,并针对在工业现场上使用蓝牙接入点将阀门、流量计、温度变送器等几个蓝牙设备连接到工业以太网中,实现了带蓝牙通信模块的工业设备和现有的有线网络的通信。
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.1 硬件体系结构
该蓝牙接入点包含了微处理器( AT91R40008)、存储器、蓝牙通信模块、网络通信接口、串口通信等重要组成部分。在该设计中,电源使用了以太网供电设备,该设备除了用于网口通信,还提供设计中所需要的电源。该电源经过电平转换,为微处理器、存储器、蓝牙通信模块等提供所需的 +3.3V和+1.8V电源。 32位的微处理器 AT91R40008通过串口 0和串口 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,具有丰富的存储器资源。
在设计中,使用了蓝牙模块的 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。
蓝牙接入点向本地子网广播自己的设备声明,并接收其他设备的设备声明。初始化完后 5秒钟内用来搜寻子网中的邻居设备,搜寻完成后,开始建立邻居表,并把邻居表内的其他从设备加入到无线调度列表中。网络组建完成后,接入点按照确定性调度算法轮询从设备。并把蓝牙数据报文转换成工业以太网的报文,放入工业
以太网的调度器中。设备声明报文:
typedef struct _zgb_pkt_ann {
} zgb_pkt_ann;
信息分发报文:
typedef struct _zgb_distribute { INT8U devdesp[16]; INT8U mdata[16];
} zgb_distribute;
令牌:
typedef struct _zgb_pass_token { INT8U ans;INT8U res[3]; // 设备描述, 字符串 //主 or从? 0主设备; 1 从设备 //设备状态: 0设备未组态 , 自由发包; //1设备已组态 , 获取令牌才能发包 // 保留字段
// 设备描述, 字符串 // 信息分发的内容
//确认? 0不确认 ; 1确认 // 保留信息
} zgb_pass_token;
蓝牙接入点在工业现场中的应用
在设计中,将工业以太网的有线网络与工业现场的无线设备之间建立连接,如图 4。工业现场的无线设备通过一个蓝牙专用的传输协议将数据传输到蓝牙接入点。数据经过转换,成为工业以太网能够识别和支持的格式,并传输到工业以太网中的一个发出指令请求的设备中。上位机同时可以通过以太网对数据进行监控。工业现场的无线设备还可以同时与一个带有蓝牙模块的手持设备和一个蓝牙接入点进行连接,对数据进行访问和采集。
5 小结
在搭建完整个系统,并对蓝牙的通信性能进行检测的过程中发现,蓝牙模块由于采用的是信息无线传输方式,所以在传输过程中干扰较大,传输距离也较短。工业现场设备安装的环境往往比较恶劣,怎样使蓝牙设备拥有更好的稳定性、更低的功耗、更广的工作范围,这些对硬件设计和软件优化提出了更高的要求。