基于ARM7的蓝牙接入点的设计与应用

发布者:WhisperingWinds最新更新时间:2010-07-26 来源: 微计算机信息关键字:工业接入点  蓝牙技术  无线通信  ARM7 手机看文章 扫描二维码
随时随地手机看文章

  1引言

  在工业现场中,由于有些环境比较恶劣,布线不方便等因素可以采用蓝牙无线通信技术来实现数据的通信。同时,工业现场中有很多以不同方式互连的设备,其中包括非智能化简单数据连接单元 (I/O)、智能化设备 (比如智能传感器、单回路控制器和 PLC)和监控系统 (作为 HMI使用,用于数据记录和监控 )等。这些设备大都是以各种不同的通信协议和媒介来互连的,其中有些就可以用蓝牙无线技术代替。本文以 为例,结合 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

  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的电阻及按键组成低电平复位电路。该复位电路可实现上电低电平自动复位或者手动复位。内部 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 蓝牙接入点在工业现场中的应用

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

  5 小结

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

关键字:工业接入点  蓝牙技术  无线通信  ARM7 引用地址:基于ARM7的蓝牙接入点的设计与应用

上一篇:ARM9系统在无线发射台智能化监控系统中的应用
下一篇:LPC23xx的自适应以太网通信接口设计

推荐阅读最新更新时间:2024-03-16 12:29

基于ARM7核的线缆自动测试仪的设计实现
1 引言 在现代装甲通信指挥装备中,功能强大、控制精确、运行可靠的装备,均由越来越多的电子分机、部件通过密集的线缆、线束、网络连接而成。 线缆、网络连接的正确性和可靠性,在保障整个电子系统可靠运行中起了重要的作用。对复杂线缆、线束、网络的导通、绝缘等指标的自动测试和检验,是线缆装配、生产过程中不可缺少的一个环节。传统的低压、低电流的手工、半自动测试,已经远远不能满足现代高可靠电子设备生产的需要。 目前装甲通信指挥装备的线缆检测,均采用传统的、落后的手工检测方式,用三用表、蜂鸣器及自制简单的测试台检测通断。手工检测方法存在不能克服的许多缺陷,已不能满足大批量、高精度、高可靠性线缆检测的要求: (1)1人或2人配合逐点检测,
[单片机]
基于<font color='red'>ARM7</font>核的线缆自动测试仪的设计实现
ARM7 嵌入uc/os 做流水灯练习
#include config.h #define TASK_STK_SIZE 100 #define LedFlowSpeed 5 OS_STK TaskStartStk ; OS_STK TaskKeyScanStk ; OS_EVENT *LedFlowMbox; #define Led1 (1 22) #define Led2 (1 23) #define Led3 (1 24) #define Led4 (1 25) #define KEY1 (1 16) #define KEY2 (1 17) #define KEY3 (1 18) #define K
[单片机]
ARM7学习---LPC2103 Time0定时器练习
继续学习ARM7,练习了下LPC2103的内部定时器T0,定时1S,让LED闪烁。具体测试程序如下: /**************ARM7(LPC2103)练习程序**************************/ /*************************************************************/ /*****File Function : Time0测试程序 *****/ /*****Program Author : ZhengWen(ClimberWin) *****/ /*****MCU : LPC2103F 外部11.0592M晶
[单片机]
<font color='red'>ARM7</font>学习---LPC2103 Time0定时器练习
ARM7嵌入式系统在车辆调度中的应用
一、车辆调度系统的整体设计: 整个系统包括四个部分(1)通信主站;(2)车载从站;(3)通信链路。(4)系统监控部分。下面对各个部分的功能做一个简单的介绍。 (1)通信主站:完成信息的转发,它是连接系统监控部分和车载从站的纽带,它将从系统监控部分来的信息转发给车载从站。并且接收车载从站的信息,并将信息上传给系统监控部分。 (2)车载从站:被监控的对象,接收监控调度命令,并可以返回自己的状态信息。状态信息的取得是依靠在车载从站中的GPS接收机来完成车辆位置和速度信息等的采集工作。 (3)通信链路:完成通信主站和车载从站的信息传递及通信主站和系统监控部分的信息交互。其中前者在本次设计中是以GSM手机模块做为通信的工具,而后者是
[单片机]
<font color='red'>ARM7</font>嵌入式系统在车辆调度中的应用
ARM7与FPGA在工业控制中的结合应用
工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。   各部分功能简介   图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控制总线和故障检测总线相连。 图1 系统结构框图
[嵌入式]
<font color='red'>ARM7</font>与FPGA在<font color='red'>工业</font>控制中的结合应用
CEVA告诉你应该采用蓝牙技术
Franz Dugand, CEVA连接产品事业部销售和市场总监, 到目前为止,我们已经介绍了很多关于无线mesh网络使用的各种技术。它最初的动机是创建一个可靠的军用网络。之后,这项技术被用于工业用途,然后在智能楼宇和住宅中也有所使用。在WiFi和Zigbee网络上实现Mesh组网没有大规模普及的主要原因是供应商之间缺乏互通合作性。到目前为止,大部分的解决方案受到专利保护,新的蓝牙mesh将会改变现状。 从个人网到mesh网的蓝牙技术演进 蓝牙最开始是一种个人区域网络(PAN)技术。点对点连接可以配对附近的设备,并且很多物体可以方便的进行无线连接(如计算机的输入设备)。尤其是在音频市场上获得了成功,各种不同的无线耳机都采用了这
[手机便携]
基于DSP的Manchester编译码系统设计
引言     随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活,如遥控车门开关(REK)系统、汽车轮胎压力监视系统(TPMS)、无线内窥镜系统、蓝牙技术等。这种小功率无线传输系统的关键技术是在低电流消耗和信道干扰较强的情况下实现数据稳定可靠的传输。曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的优点是:数据和同步时钟统一编码,曼彻斯特码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易地恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。 1 曼彻斯特编码原理      用于数字基
[嵌入式]
利用一个ARM7处理器对无刷电机实施磁场定向控制
电机驱动能效不论提高多少,都会节省大量的电能,这就是市场对先进的电机控制算法的兴趣日浓的部分原因。三相无刷电机主要指是交流感应异步电机和永磁同步电机。这些电机以能效高、可靠性高、维护成本低、产品成本低和静音工作而著称。感应电机已在水泵或风扇等工业应用中得到广泛应用,并正在与永磁同步电机一起充斥家电、空调、汽车或伺服驱动器等市场。推动三相无刷电机发展的主要原因有:电子元器件的价格降低,实现复杂的控制策略以克服本身较差的动态性能成为可能。 以异步电机为例。简单的设计需要给定子施加三个120°相移的正弦波电压,这些绕组的排列方式能够产生一种旋转磁通量。利用变压器效应,这个磁通量在转子笼内感应出一股电流,然后产生转子磁通量。就是这两种磁通
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved