基于MODBUS无线总线测控系统
引言
目前无线通讯不但在通讯行业得到广泛的应用,而且在检测与控制领域也正在不断地得到应用与推广。工业现场总线作为现代工业控制系统的主流通讯网络,其通讯介质为光纤或通讯电缆。针对很多检测点和控制装置分布较为分散或距离较远,且应用通讯电缆连接成本高的场所,目前可以采用点对点的无线通讯方式,且各公司生产的测控系统所采用的通讯标准不尽相同,不同公司的测控装置不能够相互通讯,甚至同一公司的测控装置也可能不能够相互通讯。为了使得测控装置系统既满足无线通讯的要求,又达到总线测控的目的,在测控装置系统中将工业现场总线通讯标准引入到无线通讯中。本文将ModBus通讯标准引入到nRF无线通讯技术中,组成ModBus无线总线测控系统,对系统电路的结构和无线收发电路的原理,ModBus协议的RTU模式,ARM与nRF905的接口及软件设计进行了论述。
1 总体方案设计
针对很多检测点和控制装置分布较为分散或距离较远,且应用通讯电缆连接成本高,这些装置的数据可以每天定时通过人工进行数据采集和传输相应的设置和控制命令,或者是距离较近但经常需要移动的装置,比如各种蓄电池的检测等,所以需要一种能够满足室外100米和室内50米左右的无线通信距离的系统,且又满足工业控制总线通讯标准的系统。
1)系统总体方案设计与论证
目前新兴的短距离无线传输技术主要有三种,分别是:红外线传输IrDA,蓝牙科技BLUETOOTH,nRF技术。由于红外线传输IrDA距离太短,抗干扰能力差,传输速度慢,而蓝牙发射接收处理、基带处理由多个芯片组成,接口、编程及硬件都较复杂,通讯速率较慢,所以采用nRF方案,本系统选定nRF905芯片作为系统无线收发模块的核心。
2)系统电路组成
基于无线ModBus的测控系统框图如图1所示,系统分为三大部分:主机、分机以及无线ModBus总线传输通道。系统采用主从结构方式,一台主机,若干个分机。分机主要由传感器、信号调理电路、带有A/D转换的嵌入式ARM结构的LPC2132芯片、无线收发模块nRF905等组成;主机主要由人机界面、嵌入式ARM结构的LPC2132芯片、无线收发模块nRF905等组成。无线总线系统主机、分机编程设计通讯协议控制器,实现按照ModBus总线的协议标准打包发送信息,主机通过nRF905芯片发送ModBus(RTU)控制命令控制各前端数据采集装置(分机)工作,并对采集数据的实时处理和显示,画出各采样点的波形;分机则不断监测和采集信息,接收主机发送ModBus(RTU)命令,完成相应的功能(如完成数据采集和数据传输控制)。主机和分机的信息交换以射频无线(nRF技术)和ModBus总线协议的方式实现。
图1 基于无线ModBus的测控系统框图
2 NRF905的工作模式以及与ARM的接口
nRF905的工作模式如表1所示,通过设置TRX_CE、TX_EN、PWR_UP来决定nRF905工作模式。
表1工作模式
1)节电模式。
掉电模式。nRF905被禁止,电流消耗最小,典型值低于2.5uA。nRF905配,置字的内容保持不变。在本系统中未使用这种模式。
Standby模式。Standby模式在保持电流消耗最小的同时保证ShockBurst RX,ShockBurstTX的最短启动时间。当进入这种模式时,晶体振荡器是活动的。在此模式中配置字的内容保持不变,可对NRF905进行SPI编程操作。
图2 ARM与外围器件连接图
2)活动模式
ShockBurst RX模式。数据接收模式。
ShockBurst TX模式。数据发送模式。
nRF905与ARM之间端口可以直接连接,如图2所示。
3 软件设计
1)MODBUS总线通讯协议的设计
ModBus协议是目前主流现场总线协议之一。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格式和内容的公共格式。当在ModBus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用ModBus协议发出。
控制器通信使用主一从技术,本系统主设备:主机;从设备:分机。主机可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。ModBus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。从设备回应消息也由ModBus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收
现场总线ModBus总线控制装 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)