2024年3月8日发(作者:)
第一章 绪论
第一节 课题背景
我们今天的时代,已经进入了一个无线无处不在的时代。出门:我们使用手机打电话、发短信;在家:我们使用无绳电话;开车:我们使用GPS 导航找路;上班:我们使用无线网卡上网,办公等等。随着技术进步,无线通讯和无线网络将迅速向我们日常生活中的各个方面扩展,嵌入式的无线通讯和无线网络正在向我走来,以无线片上系统(SoC)为核心的低功耗,小体积,低价格嵌入式无线通讯和无线网络系统近年来得到了迅速发展,已经产生无数的新应用和新的市场。传统的传感器采集系统是有线的,如果要采集多个地方的数据,布线将变的非常复杂,如果距离稍远些数据传输的可靠性将大大降低、并且数据传输速度也慢!如果我们采用无线数传方案,只需要在要采集数据的地方放置几个有无线收发模块的前端数据采集装置(分机)。手中只需一个有无线收发模块的主机,我们就可以管理那些前端的数据采集装置工作。并且主机具有良好的人机交互界面,操作简单,界面美观、清晰,达到实用的目的!这种计算机技术和射频无线技术相结合的无线数据采集技术将大大减轻人们的工作量。
目前,新兴的无线传输技术“蓝牙科技BLUETOOTH”、“nRF技术”以无方向性与穿墙性的优势,迅速席卷市场;而“红外线传输IrDA”为应用较成熟普及的技术;红外传输(IrDA)技术虽然很普及、很成熟,但是其距离太短,抗干扰能力差,传输速度慢;蓝牙科技(BLUETOOTH)虽然具有无方向性与穿墙优势,但是它开发成本高、软件及其协议编程不但复杂,传输距离只有10M;而nRF 方案集成了全部RF 和基带处理,真正的单片化,具有成本更低、功耗更低、协议简单、软件开发更简易等特点,传输几十米、数百米,甚至更远,其开发成本也远远低与蓝牙 。
挪威Nordic公司的无线通信芯片产品(NRF系列)收发合一,工作频率一般为国际通用的ISM频段,采用低发射功率、高接收灵敏度的设计,所以使用时对周围干扰很小,无需申请许可证,传输速率为20~76.8kbit/s,而在诸如远程抄表、双向无线数据传输等应用领域,完全可以满足其要求。这种低成本无线通信技术和解决方案适合中国国情,相信将会在中国拥有更广阔的市场前景。
1
第二节 无线传感器网络系统的特点
目前市场上销售的无线传感数据采集系统千差万别,形式各异。但就一套配置齐全、性能良好的无线数据采集系统而言,概括起来不外乎由传感器、 数据采集系统、 无线收发模块等几个主要部分组成,如框图1.21所示
从图中可以看出无线传感器数据采集系统由主机和前端数据采集装置(单片机)组成。主机主要完成的任务是:控制各前端数据采集装置(分机),对采集数据的实时处理和显示;分机主要的功能是:接收主机命令,完成相应的功能(如完成数据采集和数据传输控制)。主机和分机的信息交换以射频无线(nRF技术)的方式实现,采用半双工的工作方式,通讯协议采用标准的MODBUS(RTU)协议。GFSK频率工作在ISM频段,不需要申请。主机可连接多达255台分机,每分机可采集4路数据,并可实时监控分机的工作状态,采集速度及缓存容量均可通过软件编程设定。整个系统可随时通过RS232接口更新软件,方便以后系统升级!
2
第二章 总体方案设计
第一节 系统总体方案设计与论证
根据前面的介绍,我们知道目前新兴的短距离无线传输技术有:红外线传输IrDA,蓝牙科技BLUETOOTH,nRF技术(事实上nRF并不是一种协议,只是由于其NORDIC公司的nRF芯片应用十分广泛,因此在此与Bluetooth和IrDA等协议相提并论)。由于红外线传输IrDA距离太短,抗干扰能力差,传输速度慢,所以舍弃这种方案。下面仅将蓝牙与nRF作比较:
方案 硬件设计
表2.1 蓝牙与nRF方案比较
接口方式 编程 通讯速率 通信距离
蓝牙方案 由多个芯片组复杂,时序通信协议和300-400Kbps 10米
成,由发射接收要求严格。 软件堆栈复处理,基带处理杂,需要较长等多个芯片组时间熟悉。
成,硬件较复杂。
nRF方案 高频电感和滤波器等已全部内置,所需外围元件较少。
比较 nRF方案集成了内部RF和基带处理,真正的单片化,设计调试容易,成本低。
简便,只需编程较方便。 100-1MKbps
和单片机I/O口或SPI口相连。
nRF较为方nRF方案开发nRF速率较便。 周期短。 高,更适合多频道的数据传输。
室内约30-100米,
室外约100-500米。
nRF距离更远,更适合无线数据采集系统。
从上面的比较可以看出,采用nRF方案要优于蓝牙。因此,本系统初步选定NORDIC公司生产的nRF905芯片作为系统无线收发模块的核心。
上表中的“通信距离”中给出的数值源于媒体的报道与推广该芯片的公司给出的宣传材料,下面我们根据nRF905 Datasheet中给出的一些器件参数来计算nRF905的通信距离。
首先给出自由空间传播时的无线通信距离的计算方法(所谓自由空间传播指天线周围为无限大真空时的电波传播,它是理想传播条件。电波在自由空间传播时,其能量既不会被障碍物所吸收,也不会产生反射或散射。通信距离与发射功率、接收灵敏度和工作频率有关 :
3
[Lfs](dB)=32.44+20lgd(km)+20lgf(MHz) ①
此式即为自由空间下电波传播的损耗公式,式中Lfs为传输损耗,d为传输距离,频率的单位以MHz计算。
由上式可见,自由空间中电波传播损耗(亦称衰减)只与工作频率f和传播距离d有关,当f或d增大一倍时,[Lfs]将分别增加6dB.
下面计算nRF905的理论通信距离。 根据905的Datasheet,其发射功率为10dBm,接收灵敏度-100dbm,工作频率为433.2MHz。由式①计算得到:d=17.5Km。
这是理想状况下的传输距离,实际的应用中是会低于该值,这是因为无线通信要受到各种外界因素的影响,如大气、阻挡物、多径等造成的损耗,将上述损耗的参考值计入上式中,即可计算出近似通信距离。
假定大气、遮挡等造成的损耗为40dB,可以计算得出通信距离为:d=180M。
通过上面的论证,我们不难看出nRF905在“传输速率”、“距离”、“接口简便性”等方面完全可以满足本系统的要求。因此,本无线数据采集系统最终选择nRF905芯片作为本系统的无线收发的核心。
第二节 设计任务
本远程无线传感器网络设计的主要目标,概括出如下:
1、确定能满足要求的总体方案及所需元件型号。
2、用Altium Designer 6.0完成原理图的设计,PCB图绘制,制作电路板。
3、设计通讯协议。
4、熟悉ARM单片机LPC2132和无线收发芯片nRF905的使用。
5、用ARM/C开发工具ARM Developer Suite进行ARM程序编程,完成与整个系统软件的设计。
6、在主机上设计一简单的人机操作界面,完成各个功能软件的调试,使其操作简单,界面美观、清晰,达到实用的目的。
第三节 系统组成及工作原理
一、系统组成
系统框图如图2.31所示,从图可以看出点对多点式无线数据传输系统分为两大部
4
分:主机和分机。分机如图2.32所示:主要由传感器、前级处理电路、带有A/D转换的ARM单片机LPC2132、无线收发模块nRF905、以及射频功率放大器组成;主机如图2.33所示:由ARM单片机LPC2132、无线收发模块nRF905、射频功率放大器组成。
图2.31 系统框图
图2.32 分机原理框图
二、工作原理
图2.33 主机原理框图
无线传感器网络主机部分是基于一个支持实时仿真和跟踪的32位ARM7TDMI-STMCPU的微控制器的平台上设计的,而ARM7TDMI-S使用了流水线技术,处理和存储系统的所有部分都可以联系工作。LPC2132是每时每刻都在扫描按键的状态,可以利用中断或者查询的工作方式,对按键的状态进行处理,执行相应的功能,同时功能可以用液晶显示
5
出来。当进入“选择采样分机”这一界面时,按下“分机一”或者“分机二”即发送相应的MODBUS(RTU)控制命令到分机,此时无线模块(nRF905)自动上电,MODBUS(RTU)控制命令数据包自动完成加前导玛和CRC 校验码后被发送。分机中的无线收发模块nRF905不断的监测空中信息,当nRF905 发现和接收频率相同的载波时载波检测CD 被置高,当nRF905 接收到有效的地址时地址匹配AM 被置高,当nRF905 接收到有效的数据包CRC 校验正确时,nRF905 去掉前导码地址和CRC 位,数据准备就绪DR 被置高,
MCU(LPC2132) 通过查询DR和AM两管脚都为高后就设置nRF905 为standby 模式,并以合适的速率通过SPI 接口读出有效数据。一个完整的MODBUS(RTU)命令接收完后,MCU(LPC2132)对该命令进行一定的处理,然后执行相应的功能。如进行广播采样、发回采样数据等。
第四节 主要器件选择与介绍
一、 ARM芯片LPC2132
LPC2132是菲利浦公司生产的ARM7TDMI-S 处理器,LPC2132 是基于一个支持实时仿真和嵌入式跟踪的32/16 位ARM7TDMI-STM CPU 的微控制器,并带有64kB的嵌入的高速Flash 存储器。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16 位Thumb ®模式将代码规模降低超过30%,而性能的损失却很小。
特性:
● 16kB 片内静态RAM。
● 片内Boot 装载软件实现在系统/在应用中编程(ISP/IAP)。扇区擦除或整片擦除的时间为400ms,1ms 可编程256 字节。
● 1 个8 路10 位A/D 转换器共包含16 个模拟输入,每个通道的转换时间低至2.44us。
● 1 个10 位D/A 转换器,可提供不同的模拟输出。
● 2 个32 位定时器/计数器(带4 路捕获和4 路比较通道)、PWM 单元(6 路输出)和看门狗。
● 实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。
● 多个串行接口,包括2 个16C550 工业标准UART、2 个高速I2C 接口(400 kbit/s)、SPI 和SSP(具有缓冲功能,数据长度可变)。
6
● 向量中断控制器。可配置优先级和向量地址。
● 9 个边沿或电平触发的外部中断引脚。
● 通过片内PLL 可实现最大为60MHz 的 CPU 操作频率,PLL 的稳定时间为100us。
● 片内晶振频率范围:1~30 MHz。
● 2 个低功耗模式:空闲和掉电。
● 可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
● 通过外部中断将处理器从掉电模式中唤醒。
-CPU 操作电压范围:3.0~3.6 V (3.3 V+/- 10%),I/O 口可承受5V 的最大电压。
二、NRF芯片NRF905
nRF905 采用Nordic 公司的VLSI ShockBurst 技术,ShockBurst 技术使nRF905 能够提供高速的数据传输而不需要昂贵的高速MCU 来进行数据处理/时钟覆盖。通过将与RF 协议有关的高速信号处理放到芯片内,nRF905 提供给应用的微控制器一个SPI 接口,速率由微控制器自己设定的接口速度决定。采用高斯频移键控(GFSK)调制技术,调制在100kbps。频率偏离在±50Khz。高斯频移键控调制较普通的频移键控在更宽的带宽传输连接有效。数据在内部进行曼切斯特编码(TX)和曼切斯特解码(RX)。通过采用内部曼切斯特编解码,微控制器不需要制定编解码规则。
nRF905 单片无线收发器工作在433/868/915MHZ 的ISM 频段。由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。ShockBurst 工作模式的特点是自动产生前导码和CRC 。可以很容易通过SPI 接口进行编程配置。电流消耗很低,在发射功率为-10dBm 时发射电流为11mA, 接收电流为12.5mA。进入POWERDOWN 模式可以很容易实现节电。
特点
● 真正的单片、极少的材料消耗、无需外部SAW 滤波器。
● 低功耗ShockBurst 工作模式。
● 多通道工作— ETSI/FCC 兼容、通道切换时间<650us。
● 输出功率可调至10dBm。
● 传输前监听的载波检测协议。
● 当正确的数据包被接收或发送时有数据准备就绪信号输出。
7
● 侦测接收的数据包当地址正确输出地址匹配信号。
● 数据包自动重发功能。
● 自动产生CRC 和前导码。
-CPU 操作电压范围: 1.9— 3.6V。
三、串口电平转换芯片SP3232E
SP3232E接收器满足EIA/TIA-232和V.28/V.24通信协议,能应用于用电池供电,便携的手持式设备(如笔记本或掌上型电脑)的电平转换。SP3232E器件都包含Sipex系列特有的片内电荷泵电路,可从+3.0V~+5.5V的电源电压产生2×Vcc的RS-232电压电平。该系列适用于+3.3V系统,混合的+3.3V~+5.5V系统或需要RS-232性能的+5.0V系统。SP3220E器件的驱动器满载工作时典型的数据速率为235Kbps。
第三章 硬件设计
该系统采用模块化设计,主要由LPC2132、nRF905、射频功放和天线模块组成。其中,射频功放采用台湾K一BEST公司的2.4 G双向功放模块。根据需要配置2.4 G功放和增益天线模块。如果配置0.5 W功放和高增益天线,则传输距离可达5~10 km。整个电路分为一下几部分来做,无线模块电源电路、ARM主机电路、无线收发模块电路和射频功率放大。
一、无线模块电源电路
nRF905的工作电压为1.9~3.6V,ARM处理器工作的典型电压为3.3V,由于LPC2132的I/O口的输出电流比较小(灌电流最大值为10mA),故数据引脚可以不作任何处理直接连接。但是nRF905的供电电压必须保证不能超过 3.6V,否则将烧毁。本系统的设计采用了ASM1117的电源芯片。nRF905的电源电路图如图3.11
3.11 nRF905的电源电路
8
二、无线收发部分:采用成品无线收发模块NRF905。
其电路图如下:
三、2.4G射频双向功放电路设计
现有的产品基本上通信距离都比 较小,而且实现双向收发的比较少。 本文主要研究的是距离扩展射频前端的方案与硬件的实现,通过增大发射信号功率、放大接收信号提高灵敏度以及选择增益较大的天线来实现,同时实现了双向收发,最终成果可以直接应用于与IEEE802.11b/g兼容的无线通信系统中。
1、双向功率放大器设计指标:
工作频率:2400MHz~2483MHz
最大输出功率:+30dBm(1W)
发射增益:≥27dB
接收增益:≥14dB
接收端噪声系数:< 3.5dB
频率响应:<±1dB
输入端最小输入功率门限:15dB m
具有收发指示功能
具有电源极性反接保护功能
根据时分双工TDD的工作原理,收发是分开进行的,因此可以得出采用图的功放整体框图。
9
图 2.4G双向功放电路总体框图
功率检波器信号输入端接在RF信号输入通道上的定向耦合器上。当无线收发器处在发射状态时,功率检波器检测到无线收发器发出的信号,产生开关切换信号控制RF开关打向发射PA通路,LNA电路被断开,双向功率放大器处在发射状态。当无线收发器处在接收状态时,功率检波器由于定向耦合器的单方向性而基本没有输入信号,这时通过开关切换信号将RF开关切换到LNA通路,PA通路断开,此时双向功率放大器处在接收状态。
2、发射功率放大(PA)电路:
发射功率放大电路的作用是将无 线收发器输入功率放大以达到期望输出功率。此处选择单片微波集成电路(MMIC)作为功率放大器件,并采用两级级联的方式来同时达到最大输出功率与增益的要求。前级功率放大芯片选择RFMD公司的 RF5189,该芯片主要应用在IEEE802.11b WLAN、2.4GHz ISM频段商用及消费类电子、无线局域网系统、扩频与MMDS系统等等。RF5189的增益可以通过VREG引脚电压控制,在本设计中VREG电压取+3V,使RF5189具有最大增益。RF5189在2.412GHz~2.482GHz频段增益变化幅度约为0.6dB,线性度较高。由于RF5189片内集成了输入输出端口的匹配电路与RF隔直电容,所以RF5189输入输出端直接加特性阻抗为50Ω的传输线进行信号的传输。应用电路如图。
10
第二级功率放大芯片采用RFMD公 司的RF2126。RF2126的功率控制端接到RF5189功率控制端,两片功 率放大芯片采用统一的控制电压信号进行控制。它的输入输出阻抗并不是50Ω,所以需要外加匹配电路,匹配电路中使用的电容选择自谐振频率与Q值高,等效串连阻抗ESR很小的射频电容,以减小信号在阻抗匹配电路中的损耗。在本设计中阻抗匹配电容选 择美国技术陶瓷(ATC)公司的ATC100A系列陶瓷电容,它的品质因素(Q值):>10000@1MHz应用电路如图。
3、低噪声放大(LNA)电路的设计
低噪声放大芯片选择Hittite公司的HMC286E。HMC286E是专门为2.3GHz~2.5GHz的扩频系统设计的低噪声放大器(LNA),在+3V供电情况下可以提供19dB信号增益和1.7dB的低噪声系数,并且耗电仅8.5mA。在2.4GHz时的一阶增益压缩点(P1dB)是+6dBm,三阶交调截取点(IP3)是+12dBm。
在接收低噪声放大器(LNA)输入端加一级带通滤波器,考虑到实际功放尺寸的限制,本设计采用表面安装的低温烧结陶瓷(LTCC,Low-Temperature Cofired Ceramics)带通滤波器BF2520-B2R4CAC。它的插入损耗很小,最大为1.5dB。
收发切换电路的设计
为 了使功放电路可以工作在TDD模式下,在R F 收发器端和天线端 各加一个射频单刀双掷( SPDT) 开关。直接采用S kyWorks 公司的GaAs 集成 SPDT开关芯片AS179-92。该芯片插入损耗为0.4db,上升下降时间为10ns。
4、功率检测电路的设计
切换控制信号通过对功率检波器输出信号整形变换得到,因此功率检测电路的性能对实现收发控制至关重要。功率检测芯片选择Linear公司的LT5534ESC6。为了不使在接收状态下,接收功率较大时功率检波器输出大电压值,还有就是使功率检测电路的引入不影响信号通路的特性阻抗,因此功率检波器RF输入端不直接接在功率放大器信号输入端,而是采用微带线定向耦合器从RF通路中耦合出一部分功率输入到功率检测电路中。耦合微带线定向耦合器用ADS2005A的无源电路设计向导(Passive Circuit
DesignGuide)来设计
5、电平平移与驱动电路的设计
11
功率检测电路输出的是一个接近线性的电压信号而不是逻辑高低电平信号,不适合直接控制RF开关。因此需要一个电平平移与驱动电路来将单一的初始控制信号变成稳定的驱动能力强的一对反相的控制信号。所以电路采用一个三极管9011和一个双P沟道场效应管RF1K49093构成。电平平移与驱动 电路如图所示。
6、结论
该功率放大器可以直接用于nRF905收发系统中。根据实际需要确定功率放大器的电路结构, 依次对发射功率放大电路、接收信号放大电路、收发切换电路、功率检测电路、电平平移与驱动电路以及电源管理电路的所需元器件选择和应用电路进行了非常详细的分析与设计
四、 ARM主机控制电路
12
C116C117100uF104L1022VaR1095V331nRSTBACKUPR1011M01100uHC114C115104104VaC10530p0CRY10BATTERY(3.6V 60mA30pR103VDD3.300C10910KU101C1064.7uF50V000000第一节 通讯协议的设计
123456U102SPX1117M3L101100uH5VC123104CC10730pCRY232.768KHzKEY330pC108LCD_D6LCD_D7000
VDD3.32C101104C102104C103104C104104VDD3.3LCD_O20PN5VVinVOUT32V3.3A1DC118100uFC119104C120104C121104DVDD3.3R11010KLCD_WR式。
VDD3.3KEY4LCD_D2LCD_D1LCD_D0KEY5VDD3.3PhlipLPC2132R10410K接口P1、P2说明:~1===================================================C00000第四章 软件设计
U105LPC213200LEDR102VDD3.31KPPOWERVDD3.35VAKLEDRED000收端之间受到外界的干扰而使数据发生错误,因此需要协议来保证接收端能正确接收到简单的数据传输中,通信只朝一个方向进行,从发射端到接收端通信可能在发射端和接●可靠性:一个协议如果能够纠正数据的错误,则认为该协议是可靠的。
KEY_IOVDD3.3R10510KR10610KR10710KR10810KV3.3AKEY2AOUTAD5AD0KEY1AD1AD2AD3KEY6P0.21PWM5CAP1.3P0.22CAP0.0/MAT0.0RTXC1P1.19TRACEPKT3RTXC2VVddaP1.18TRACEPKT2P0.25AD04AOUTP0.26AD05P0.27AD00CAP0.1/MAT0.1P1.17TRACEPKT1P0.28AD01CAP0.2/MAT0.2P0.29AD02CAP0.3/MAT0.3P0.30AD03ENT3/CAP0.0P1.16TRACEPKT0P1.20TRACESYNCP0.17CAP1.2/SCK1/MAT1.2P0.16ENT0/MAT0.2/CAP0.2P0.15ENT2P1.21PPESTAT0VddVP0.14ENT1/SDA1P1.22PPESTAT1P0.13MAT1.1P0.12MAT1.0P0.11CAP1.1/SCL1P1.23PPESTAT2P0.10CAP1.0P0.9/RxD1PWM6ENT3P0.8/TxD1/PWM448474645444342414433P0.14KEY6LCD_RSTLCD_RSLCD_WRKEY7LCD_RDPWM6PWM4VDD3.30从发射端来的数据,并确定所接收数据是否是实际数据。
8PN(B一个简单无线数据传协议应该具有以下特点:
协议就是指一些规则,简单的说就是为了能相互理解,必须用同一种语言说话。在所需信息中最少的;
息中,包括包识别代码,错误检验等,增加信息的数量必须是●有效性:协议必须能可靠将有用数据从错误数据中分离出来。通常是在数据流中●最小的杂项开销:无线数传协议应该是有效的,协议必须增加一些信息到主要信嵌于错误检验格式来实现。奇偶校验、校验和CRC 都是检错码的常用格
13
B87654321KEY0KEY1KEY2KEY3KEY7KEY6KEY5KEY41CON10ABATTERBATTER+P1CON2612C127104B1234A0A1A2GndVccWPSCLSDA24C018765P0.2P0.3Va_VeVDD3.3P0.7R1VDD3.310KC11010416U103VCC26C11110415_SP21CON2GNDP0.14RXTX1413RXTX78C1+1C112104V+VC1C2+3421CON2C1241055GNDC2T1OUTT1NR1INR1OUTT2OUTT2NR2INR2OUTSP3232111210TxD09RxD0TiteC113104VaC126CA1P04U1041403Vref5V1234C125100uFVDDOUTGND8765VaASizeBDaeFile345NumbeRevion30May2006Sheet
of
H:段段的毕业设计毕业设计电路原理图nBy6
本系统中我采用了一种比较简单可靠的通讯协议——MODBUS(RTU)通信协议,下面将介绍什么是MODBUS传输协议。
一、 MODBUS通讯协议简介
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
控制器通信使用主—从技术,即仅设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程控制器。典型的从设备:可编程控制器。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
Modbus有两种传输模式:ASCII模式,RTU模式。ASCII模式 : 地址、功能代码、数据数量、数据1 ... 数据n、LRC高字节、LRC低字节、回车、换行;RTU模式 :地址、功能代码、数据数量、数据1 ... 数据n、CRC高字节、CRC低字节。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。 在其它网络上(象MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。 本系统则使用RTU模式,采用这种模式的特点
14
是在同样的波特率下,可比ASCII方式传送更多的数据。
二、通讯协议的构建
MODBUS通讯协议中,一个典型的RTU消息帧格式如下所示:
通过分析本系统的要求,参照MODBUS通讯协议中典型的RTU消息帧的结构,构建一个14字节的消息帧,帧结构如下所示:
起始位:协议的第一件事就是能够识别噪声和有效数据。噪声是以随机字节出现的,没有明显的方式,一个理想的噪声源应该能够产生每一种可能字节信息的结合,噪声的这种特性使得相当困难去找一种字节组合来作为有效包的开始,幸运的是噪声并不是理想的。这样我们就可以通过加起始位,规定接收的一方只接收以起始位开始的数据包。本系统中的起始位为:0xAA 0xFF 0xAA。
分机号:也即消息帧的地址域包含一个字节。分机个数的范围是1...254。主机通过将要联络的分机的分机号放入消息中的地址域来选通该分机。其中地址0xFF是用作广播地址,以使所有的分机都能认识。
功能码:消息帧中的功能代码域包含了一个字节。可能的代码范围是十进制的1...255。当然,有些代码是适用于所有控制器,有些是应用于某种控制器,还有些保留以备后用。 当消息从主机发往分机时,功能代码域将告之从分机需要执行哪些行为。例如去让分机开始采样,读一通道的数据内容,读全部采样数据等。本系统中设计有8中功能码,分别是:
表4.1 功能码定义
功能码
1
2
名称
TASK_ADC_SAMP
TASK_ADC_SAMP_TRIG
15
所表示的意义
单独采样
触发采样
3
4
5
6
7
8
TASK_ADC_READ_ONE_CH
TASK_ADC_READ_4_DATA
读广播采样单通道数据
读广播采样读4个数据
TASK_ADC_READ_2048_DATA 读广播采样读2048个数据
TASK_ADC_READ_3_CH
TASK_ADC_BROCAST_SAMP
TASK_SAVE_ONE_DATA
读广播采样3通道数据
广播采样
单点数据保存
采样通道号、采样长度:告诉分机采第几个通道,采多少数据。
CRC校验:标准的Modbus协议有两种错误检测方法。LRC(纵向冗长检测)方法和CRC(循环冗长检测)方法。由于系统选用RTU模式为字符帧,所以只能选用CRC校验。
CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。本系统中CRC校验函数为unsigned short
CalCRC16(unsigned char *p, unsigned short len,unsigned short crc)。
此CRC程序的特别之处在于:可以对不连续的数据组进行计算,这样,在发送数据量比较大的时候,不必把要发送的数据存放到连续的内存空间,节约了内存空间。其中p为一小段连续的数据的起止地址,len为该段数据的长度,crc为先前计算所得的crc值,如果是第一次计算,crc为0。
至此一个简单实用的基于标准Modbus RTU 的通讯协议就构建完毕。
第二节 ARM与NRF905的接口及软件设计
NRF905所有的配置都是通过SPI口进行的,菲利蒲的ARM芯片LPC2132具有一个硬件SPI(Serial Peripheral Interface)口,它是一个同步、全双工串行接口,最大数据位速率为时钟速率的1/8。这样它就可以通过SPI总线与NRF905连接,通过向SPI总线发送相应的命令来控制NRF905的工作,如图4.3.1所示:
16
图4.31 SPI总线配置
数据传输的起始由包含发送数据字节的主机来指示。此时,主机可激活时钟并开始传输。当传输的最后一个时钟周期结束时,传输结束。但是LPC2132的SPI有4种不同的数据传输格式,数据和时钟的相位关系如表4.3所述。
表4.3 SPI数据和时钟的相位关系
CPOL和CPHA的设定
CPOL=0,CPHA=0
CPOL=0,CPHA=1
CPOL=1,CPHA=0
CPOL=1,CPHA=1
驱动的第一个数据
在第一个SCK上升沿之前
第一个SCK上升沿
在第一个SCK下降沿之前
第一个SCK下降沿
驱动的下一个数据
SCK下降沿
SCK上升沿
SCK上升沿
SCK下降沿
采样的数据
SCK上升沿
SCK下降沿
SCK下降沿
SCK上升沿
说明:CPOL为时钟极性控制,CPHA为时钟相位控制。
LPC2132的SPI的设置必须要符合NRF905的SPI时序要求,否则会出现不可预测的错误。根据NRF905的数据手册,通过分析它的SPI读写时序图,见图4.3.2。可知SPI数据和时钟的相位关系是: SCK高电平有效,第一个数据在第一个SCK上升沿之前被驱动,在SCK下降沿驱动下一个数据,数据在SCK上升沿被采样。
图4.32 NRF905的SPI时序图
一、 NRF905的SPI寄存器配置
nRF905 的所有配置都通过SPI 接口进行,SPI 接口由5 个寄存器组成。一条SPI 指令用来决定进行什么操作,SPI 接口只有在掉电模式和Standby 模式是激活的。
这5个寄存器分别是: 状态寄存器(Status-Register)包含数据就绪DR 和地址匹配AM 状态;RF 配置寄存器(RF-Configuration Register)包含收发器的频率,输出功率等信息;发送地址(TX-Address)包含目标器件地址字节长度,由配置寄存器设置;
17
发送有效数据(TX-Payload)包含发送的有效数据包,数据长度由配置寄存器设置;接收有效数据(RX-Payload)包含接收到的有效数据包,数据长度由配置寄存器设置。
(一)、NRF905的SPI指令设置
用于SPI 接口的有用命令见下表4.4,当CSN 为低时SPI 接口开始等待一条指令,任何一条新指令均由CSN的由高到低的转换开始。
表4.4 SPI串行接口指令设置
SPI 串行接口指令
指令名称
W_CONFIG(WC)
R_CONFIG (RC)
指令格式
0000AAAA
0001AAAA
操作
写配置寄存器AAAA。指出写操作的开始字节,字节数量取决于AAAA 指出的开始地址
读配置寄存器AAAA。指出读操作的开始字节,字节数量取决于AAAA 指出的开始地址
写TX 有效数据:1-32 字节,写操作全部从字节0
开始。
读TX 有效数据:1-32 字节,读操作全部从字节0
开始。
写TX 地址:1-4 字节,写操作全部从字节0 开始。
读TX 地址:1-4 字节,读操作全部从字节0 开始。
读RX 有效数据:1-32 字节,读操作全部从字节0
开始。
快速设置配置寄存器中CH_NO,HFREQ_PLL 和PA_PWR 的专用命令。CH_NO=ccccccccc;HFREQ_PLL=h ;PA_PWR=pp
W_TX_PAYLOAD(WTP)
00100000
R_TX_PAYLOAD(RTP) 00100001
W_TX_ADDRESS(WTA)
00100010
R_TX_ADDRESS(RTA) 00100011
R_RX_PAYLOAD(RRP)
00100100
CHANNEL_CONFIG(CC) 1000pphc
cccccccc
(二)、NRF905的RF寄存器的配置
为了能让NRF905正常工作,则必须要对它的RF配置寄存器进行配置,并且主机与分机收发模块的RF配置寄存器中的配置需一致,这样两者之间才能正常建立通信!下面将给出NRF905的RF配置寄存器中主要参数的介绍及基本设置:
表4.5 RF寄存器部分字节配置说明
名称
CH_NO
HRFEQ_PLL
PA_PWR
RX_PW、TX_PW
设定值
0 0110 1100
0
11
000 0001
18
说明
载波频率为433.2MHZ
设定PLL工作模式
输出功率10dbm
1字节有效数据
UP_CLK_EN
XOF
CRC_EN
CRC_MODE
0
011
1
1
外部时钟禁止
晶体震荡器频率16M
使能CRC校验
使用16位CRC校验
NRF905模块中,RF寄存器包含了10个字节。其配置字内容将决定了射频模块NRF905的工作特性。配置完后的寄存器内容如表4.6所示:
表4.6 RF寄存器配置内容
字节#
0
1
2
3
4
5
6
7
8
9
内容位[7:0]
CH_NO[7:0]
Bit[7:6]没用,AUTO_RETRAN,RX_RED_PWR,PA_PWR[1:0],HFREQ_PLL,CH_NO[8]
Bit[7]没用,TX_AFW[2:0] ,Bit[3]没用,RX_AFW[2:0]
Bit[7:6]没用,RX_PWR[5:0]
Bit[7:6]没用TX_PWR[5:0]
RX 地址0字节
RX 地址1字节
RX 地址2字节
RX 地址3字节
CRC_ 模式,CRC 校验允许,XOF[2:0],UP_CLK_EN,UP_CLK_FREQ[1:0]
设定值
0110 1100
0000 1100
0100 0100
0000 0001
0000 0001
0x03
0x03
0x03
0x03
1101 1000
二、 NRF905的工作模式
nRF905 有两种活动模式和两种节电模式。活动模式:ShockBurst RX、ShockBurst
TX;节电模式:掉电和SPI 编程、STANDBY 和SPI 编程。nRF905 工作模式由TRX_CE、TX_EN、PWR_UP 的设置来设置。如下表4.7所示:
表4.7 工作模式介绍
PWR_UP
0
1
TRX_CE
X
0
19
TX_EN
X
X
工作模式
掉电和SPI 编程
STANDBY 和SPI 编程
1
1
1
1
0
1
ShockBurst RX
ShockBurst TX
(一)、nRF ShockBurst 模式简介
nRF905 采用Nordic 公司的VLSI ShockBurst 技术。ShockBurst 技术使nRF905 能够提供高速的数据传输而不需要昂贵的高速MCU 来进行数据处理/时钟覆盖。通过将与RF 协议有关的高速信号处理放到芯片内,nRF905 提供给应用的微控制器一个SPI 接口,速率由微控制器自己设定的接口速度决定。总之,这意味着降低MCU 的存储器需求也就是说降低MCU 成本,又同时缩短软件开发时间。
掉电模式:在掉电模式中,nRF905 被禁止,电流消耗最小,典型值低于2.5uA。当进入这种模式时nRF905 是不活动的状态,这时候平均电流消耗最小,电池使用寿命最长,在掉电模式中配置字的内容保持不变。在本系统中未使用这种模式。
Standby 模式:Standby 模式在保持电流消耗最小的同时保证最短的到ShockBurst RX,
ShockBurstT X 的启动时间当进入这种模式时,一部分晶体振荡器是活动的。电流消耗取决于晶体振荡器频率,如:IDD=12uA 当4MHZ;IDD=46uA
当20MHZ。如果uP -clock 被使能,电流消耗将增加,并且取决于负载电容和频率。在此模式中配置字的内容保持不变,在这种模式下可对NRF905进行SPI编程操作!
ShockBurst RX:在ShockBurst RX模式下数据接收流程图如图4.3.5所示:
20
图4.34 NRF905数据接收流程图
ShockBurst TX模式:在ShockBurst TX模式下数据发送流程图如图4.3.4所示:
21
图4.35 NRF905数据传输流程图
(二)、模式间切换时间
NRF905工作时,各模式间的切换必须遵守表4.8中所规定的时间要求,在编程时需要注意。
表4.8 NRF905模式切换时间
NRF905时序
PWR_DWN—>ST_BY 模式
STBY—>ShockBurst TX模式
STBY—>ShockBurst RX模式
ShockBurst TX—> ShockBurst RX模式
ShockBurst RX—> ShockBurst TX模式
最小值
3MS
650US
650US
550US
550US
第三节 主程序流程图
主程序流程图如下图所示:
22
开始
初始化
定时时间到了吗?
Y
菜单处理
N
处理键盘事件
Y
有无按键按下?
N
Y
是否更新任务?
处理用户事件
N
图 主程序流程图
一、 主机界面设计说明
无线传感器网络的主机系统界面设计流程图如图4.42所示:
显示界面任务1
Case 0
开始
更新界面任务?
Case k
…… ……
显示界面任务k 显示界面任务N
Case N
结束
图4.42 任务调度流程图
23
系统主界面要有良好的人机交互界面,界面美观、清晰,操作简单,达到实用的目的。
二、数据读取界面设计
图4.47 分机选择界面
功能:在此界面下,选择相应的分机时,主机就会把访问此分机的MODBUS命令发送出去,并等待分机传回数据。分机收到命令后把采样数据传回给主机!在本设计中,分机每通道传1K数据给主机。
程序设计思想:选择需要读回数据的分机,主机就会相应的命令发送出去,并等待分机响应,传回数据!同时在液晶上显示相应的指示,方便用户操作。例如点击分机一则程序如下:
for(Txcnt=0;Txcnt<14;Txcnt++)
{
TransmitPacket(Modbus_Buffer0[Txcnt]);//发送读取分机数据命令
Delay_NS(5); //一帧命令中,各字节之间的延时,确保接收无误
}
LcdClearArea(9,11,120,53);
LcdShowStr(12,25,"读1号分机数据中...",0);
do
{
SetRxMode(); //置接收模式
scanDR = IO1PIN;
scanAM = IO1PIN;
if((scanDR&DR)&&(scanAM&AM)) //等待无线收到数据DR=1,AM=1
{
IO1CLR |= CSN; //SPI读数据
IO1CLR |= TRX_CE; //进入standby模式
SpiReadWrite(RRP); //读取数据
g_ucBusReceBuff0[g_usModBusReceCnt++] = SpiReadWrite(0);
IO1SET |= CSN;
IO1SET|= TRX_CE;
}
}
while(g_usModBusReceCnt<3073); //判断数据是否读完
24
LcdClearArea(9,11,120,53);
LcdShowStr(12,25,"1号分机数据读完!",0);
三、液晶显示界面设计
液晶显示分机
图3.48 液晶显示界面
在此界面下,可对采回的数据进行简单的数值计算,在这里只对两个分机的数据进行了处理!
第五章 系统调试
第一节 硬件电路调试
硬件调试主要是调试硬件是否有短路断路、各器件是否能正常工作。调试的第一步工作就是检查各个元器件的好坏。第二步是检查线路是否连正确,同时要检查有无虚焊、短路。第三步要用万用表测各个电源端的电压是否正常。
第二节 主机与分机的通讯调试
整个系统调试中,此部分是最复杂的。因为无线电看不见也摸不着,为了保证双方都可以正常通讯,第一步:要确保无线收发模块NRF905能正常工作,首先需要对NRF905的寄存器进行配置,在这里我先把配置字写进NRF905后,在把它读出来。然后比较读出的值和写进的值是否一致。如果一致则可证明对NRF905的配置成功。第二步:检查主机与分机的无线收发模块NRF905的RF寄存器配置是否一致。第三步:用分机不断的发送十进制数:0—255,用主机接收。主机把收到的数在发送至串口,利用串口调试助手来观察接收到的数据。如果能接收到数据,并且数据在0—255范围内则证明主机与分机通讯成功。如果没有接收到数据,则检查硬件和软件设计,在重复以上步奏,检查问题所在。在编程中要注意NRF905各模式切换间的时序,编程时必须要按照数据手册中的时序要求编写,否则会导致通讯的失败!
在调试主机与多个分机通讯中发现了一个比较典型的现象,当主机关机后,再打开主机,就发现主机不能和分机再次进行通讯。经分析后得知,当主机关机后再开机,会
25
随机发送一个数据,那么当主机再发送MODBUS命令给分机时,就会出现命令移位的现象,导致通讯失败。解决的方法以在上一节中提出,就是在分机中在加一个定时中断。当收到一个数据后,就立刻开中断、并清中断标志。 中断定时时间为1S,1S的定时时间可以确保一个MODBUS命令接收完毕!如果接收的命令错误,或者命令没有接收够,那么定时时间到后,都会清零接收数据计数器,并置中断标志,保证下一次重新接收!这样就可以解决这一现象!
第六章 总结
本无线传感器网络的设计,具备低功耗、抗干扰能力强、大容量、实时采集、数据传输距离远、安全可靠等特点。
从性能上,本系统能完成以下的功能:一、友好的人机界面;二、每台主机最多可控制255台分机;三、实时监控分机工作状态。
从可扩展性上讲,对主机来讲,以后更加完善主机功能,例如:主机可设定采样频率,这样就可以满足分机对不同频率信号的采集;主机上在外扩一个更大存储芯片,以便可以存储更加分机的采样数据;对分机来讲,更改NRF905的打包方式,加快数据传输速度!
参考文献
1、Paul Scherz(美).发明者电子设计宝典.福建: 福建科学技术出版社,2004.
2、Guy Jr(美).C语言参考手册.北京:机械工业出版社,2004.
3、马忠梅等. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社. 1999
4、周立功等.深入浅出ARM7—LPC213X/214X.广州:周立功单片机发展有限公司,2005.
5、周立功等.ARM嵌入式系统基础教程.北京:北京航空航天大学出版社,2005.
6、周立功等.ARM嵌入式系统实验教程.北京:北京航空航天大学出版社,2005.
7、杨素行.模拟电子技术基础简明教程.北京: 高等教育出版社,1998.
8、张立科.单片机通信技术与工程实践.北京:人民邮电出版社,2005年
9、nRF905 datasheet. Nordic Semiconductor ASA
26
GND1
3456L1011C101104C102104C103104C1041042VDD3.3100uHVDD3.3LCD_IO20PINL1022100uHR1095V331nRSTVDD3.3BACKUPR1011MBATTERY(3.6V
60mA)10KR110LCD_WRC114104C115104130p
C120104C121104C123104
3P2P1.D29LC_D5LCD_D4LCD_D3P1.303.3VDD30pR103VDD3.310KU101C109LED+1GDNDD3.3V2GND3VDD3.34GCNDD_D7L5LCD_D66LCD_D57LCD_D48LCD_D1390LCD_D121LCD_D112LCD_D031LCD_RD41LCD_W1R5LCD_RSLCD_RS1T617181920GNDARM控制板电路原理图:
DC118100uFC119104D646362649C1064.7uF/50V接口JP1、JP2说明:~1=================================================P1X.2T8/ATLDIVref1XTAL2P1.29/TCKVs3aP0.s2RESETCVDD3.3P1.30/TMSVddVVbsastCC10730pR10410KLCD_D6LCD_D7P0.20/MAT1.3/SSEL1/EINT3P0.19/MAT1.2/MOSI1/CAP1.2P1.27/TDOP0.18/CAP1.3/MISO1/MAT1.3CRY232.768KHzKEY3KEY4LCD_D2LCD_D1LCD_D0KEY5VDD3.330pPhilipsLPC2132C108P0.1/RxD0/PWM3/EINT0P0.0/TxD0/PWM1PAMP00..32//SSDCL00//CAAPT0.00.0/EINT1P0.4/SCK0/CAP0.1/AD0.6P1.31/TRST3/1P0.5MISO0/MAT0.1/AD0.7VssP0.7/SSEL0/PWM2/EINT2P1.26/RTCKP0.6/MOSI0/CAP0.2P1.25/EXTIN0Vdd10KU105LPC2272829303132R112LEDALED(RED)KR11110K8PIN(B)P1.24/TRACECLKVssTxD0P1.31P0.3P10..245PRxD0VDPD0.32.3P1.261KP0.5P0.6P10..274PVrefR0XP.14TXAOUTAD5AD0AD1AD2AD3AD6AD7P0.6P0.7PWM4PWM6P1.24P1.25P1.26P1.27P1.28P1.29P1.30P1.321241312111
27
VDD3.3C1271041234A0VccA1WPA2SCLGndSDA24C018765P0.2P0.3VDD3.3P0.710KR1VDD3.3C11010416U103VCC26C111104J_ISP21CON2GNDP0.14RXTXC1+1V+V-151413RXTX78C1-C2+34GNDT1OUTR1INT2OUTR2INSP3232C2-T1INR1OUTT2INR2OUT5111210934KEY_IOB87654321KEY0KEY1KEY2KEY3KEY7KEY6KEY5KEY4VDD3.3V3.3AKEY2AOUTAD5AD0KEY1AD1AD2AD3KEY0P0.14KEY6LCD_RSTLCD_RSLCD_WRKEY7LCD_RDPWM6PWM4P0.21/PWM5/CAP1.3P0.22/CAP0.0/MAT0.0RTXC1P1.19/TRACEPKT3RTXC2VssVddaP1.18/TRACEPKT2P0.25/AD0.4/AOUTP0.26/AD0.5P0.27/AD0.0/CAP0.1/MAT0.1P1.17/TRACEPKT1P0.28/AD0.1/CAP0.2/MAT0.2P0.29/AD0.2/CAP0.3/MAT0.3P0.30/AD0.3/EINT3/CAP0.0P1.16/TRACEPKT0P1.20/TRACESYNCP0.17/CAP1.2/SCK1/MAT1.2P0.16/EINT0/MAT0.2/CAP0.2P0.15/EINT2P1.21/PIPESTAT0VddVssP0.14/EINT1/SDA1P1.22/PIPESTAT1P0.13/MAT1.1P0.12/MAT1.0P0.11/CAP1.1/SCL1P1.23/PIPESTAT2P0.10/CAP1.0P0.9/RxD1/PWM6/EINT3P0.8/TxD1/PWM448474645444342414433R10510KR10610KR10710KR10810KBVssaR102VDD3.3JP-POWERJ_Vref21CON2C112104C124105C113104VssaC1261CAP04U1041403VDD3.3Vref5V5V1234C125100uFVDDOUTGND87651BATTER-BATTER+VssaCON10AATxD0RxD0TitleJP1CON26SizeBDate:File:5NumberRevision30-May-2006Sheet
of
H:段段的毕业设计毕业设计电路原理图n
By:612
234
1D无线收发模块NRF905VDDC164.7uF/16C7VDD10nFC533pFC64.7uFDVDD3.3C15100nF32313*U1R222K12nH33pFL2C12VSSVSSVSSVSSVSSVDDC93.9pFC134.7pFANTCDVDD_1V2TXEN无线收发模块NRF905电路原理图:
CVDD4.7pF12nHL3VDD12nHC103.9pFC11L112345678TRX_CEPWR_UPupCLKVDDNRF905VSSCDAMDRC3VSSIREFVSSANT2ANT1VDD_PAVSSVDD33pF2423222120191817VSSOMISMOSI196SCKCSNXC1XC2VSS
28
C833pFC43.3nF116MR11MC122pFC222pFX12TitleSizeA4Date:File:23TXENTRX_CEPWR_UPupCLKCDAMDRSPI_MISOSPI_MOSISPI_SCKSPI_CSNBBAANumberRevision30-May-2006Sheet
of
H:段段的毕业设计毕业设计电路原理图B
By:41
发布评论