基于ARM7的蓝牙接入点的硬件系统结构和软件流程
时间:2023-09-29 10:35来源: 作者: 点击: 次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位的微控制器系列产品。它以 TDMI 处理器内核为基础。该处理器有一个高性能 32位精简指令系统和一个高密度 16位的指令系统,同时具有较低的能耗。AT91R40008具有片上的 SRAM或 ROM、完全可编成的外部总线接口(EBI)、32个可编程的 I/O口、8个优先级、4个外部中断、2个 USART及 16位的定时器/计数器等特点。除此之外,在内部寄存器实现对异常情况的快速处理,可以方便的进行即时控制和应用编程。
AT91R40008以与外部存储器的直联为特色,由外部 FLASH,经过完全可编程外部总线接口 (EBI)、一个八位优先向量中断控制器,,及外部数据控制器,大大提高了处理器的即时性能。 AT91R40008使用 Atmel的高密度 CMOS技术, TDMI 处理器内核结合了片上高速存储器及其外部设备,使其具有非常强大的功能。
微处理器部分的设计包含系统硬件的启动与复位,地址总线、数据总线的分配和定义,通过串行线对蓝牙模块的读写等。
系统由外部的 50M钟振作为时钟源向 cpu输入时钟信号。复位电路由 10uF的电容、10K的电阻及按键组成低电平复位电路。该复位电路可实现上电低电平自动复位或者手动复位。AT91R40008内部 ROM为 128K,外部昀大可扩 64M的存储器,由于设计需要,在设计中扩展了一片 2M字节的 SST36VF160对大量的程序进行存储。由于 AT91R40008内部包含的 SRAM已达 256K,对于数据存储已够用了,所以在外部没有进行 RAM的扩展。网卡芯片 AX88796通过片选线、中断线、读写信号控制线和地址数据总线和 cpu相连,实现蓝牙接入点和上位机的网络通信。AT91R40008通过串口 1实现与蓝牙模块的数据交换,通过串口 0实现和上位机之间的串口调试。