基于单片机的数据采集与传输系统设计Word格式文档下载.docx
《基于单片机的数据采集与传输系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的数据采集与传输系统设计Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
此类技术主要指用户终端在较大范围内移动的通信系统的接入技术。
这类通信系统主要包括以下几种:
集群移动无线电话系统:
它是专用调度指挥无线电通信系统,它在我国得到了较为广泛的应用。
集群系统是从一对一的对讲机发展而来的,从单一信道一呼百应的群呼系统,到后来具有选呼功能的系统,现在已是多信道基站多用户自动拨号系统,它们可以与市话网相连,并于该系统外的市话用户通话。
如警察、消防、公交、出租、矿山等
蜂窝移动电话系统:
70年代初由美国贝尔实验室提出的,在给出蜂窝系统的覆盖小区的概念和相关理论之后,该系统得到迅速的发展。
其中第一代蜂窝移动电话系统:
指陆上模拟蜂窝移动电话系统,主要特征是用无线信道传输模拟信号。
第二代则指数字蜂窝移动电话系统,它以直接传输和处理数字信息为主要特征,因此具有一切数字系统所具有的优点,代表性的是GSM、CDMA、3G。
卫星通信系统:
采用低轨道卫星通信系统是实现个人通信的重要途径之一,现在有美国Motorola公司的“铱星”计划,日本NTT计划,欧洲RACE计划,整个系统由三个部分构成:
系统的主要部分是卫星及地面控制设备,关口站,终端。
无线寻呼系统,如BB机
无绳移动通信系统(小灵通)
(2)固定接入无线技术:
其英文各为FixedWirelessAccess,简称FWA,它是指能把从有线方式传来的信息(语音、数据、图象)用无线方式传送到固定用户终端或是实现相反传输的一种通信系统,按上述定义,它应该包括了所有来自公共电话网的业务并用无线作传输方式送到固定用户终端的系统,与移动通信相比,固定无线接入系统的用户终端是固定的,或者是在极小范围内。
从某种意义上讲,BlueTooth、IrDA、Wi-Fi、Zigbee、WiMax等。
2系统方案的选用
2.1系统总体方案
基于单片机的温度检测与无线传输系统由多个传感器节点和数据接收端两个部份成,之间通过无线信道通信。
传感器节点负责温度数据的采集和发送;
数据接收端负责数据的接收和处理。
系统整体结构框图如图2-1所示。
图1系统总体结构框图
传感器节点主要由传感器、微处理器和无线收发模块构成。
传感器将转换后的数字信号送往无线模块打包发出,数据接收端主要由无线收发模块、微处理器构成。
数据接收端接收到采集节点发送的数据后,将数据按照通信协议拆包,取出里面的有效数据并通过数码管显示温度值,再通过串口发送给计算机存储,并通过接口电路发送给外部网络。
系统硬件实现简单,传感器节点和接收端均采用无线收发一体芯片,微处理器可以采用射频芯片内部集成的51系列单片机。
数据接收端与计算机通过串口通信。
由于CAN总线的稳定性及其在工业数据传输网络中的广泛应用,系统采用CAN接口作为基站与外部网络的通信接口。
在低功耗要求方面,本系统通过选用大容量电池、低功耗电子元器件及制定合理的无线通信协议来解决。
2.2接收端方案
4位
数码
管显示
图2接收端结构框图
从图2中可以看出,数据接收端由微处理器、时钟、4位数码管显示模块、SRAM、无线收发模块、外部电源、蜂鸣器报警电路、RS-232通信接口以及CAN接口组成,主要完成的功能是:
①利用无线收发模块接收各个传感器节点发送的实时数据。
②微处理器对数据处理后通过数码管显示,超过设定温度值自动报警。
③将数据通过RS-232通信接口发送给上位机存储显示,对系统进行温度控制。
并通过CAN接口发送给外部网络。
3传感器
3.1传感器的选择
本系统选用美国Atmel公司AT89S52单片机,AT89S52单片机是AT89S系列单片机中的一种,它是在现己广泛应用于工业控制等各领域的AT89C52系列单片机的换代产品。
它具有89C52的全部功能,是80C51的增强型并且指令完全兼容,AT89S52新增加的功能由特殊功能寄存器完成,相信日后它将更广泛地应用于工业控制、汽车控制、智能仪器仪表及电机控制等应用领域。
AT89S52单片机有如下特点:
●兼容MCS―51单片机
●8K字节FLASH存贮器支持在系统编程ISP1000次擦写周期
●256字节片内RAM
●工作电压4.0V~6.0V
●全静态时钟0Hz~33MHz
●三级加密程序存储器
●32个可编程I/O口线
●3个16位定时器/计数器
●八个中断源
●掉电标识符
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●双数据指针
此外,与AT89C52相比,AT89S52新增加了许多功能,这将使单片机在工作
过程中具备更高的稳定性和电磁抗干扰性。
AT89S52内部增加了片内看门狗定时器,这将有利于坚固用户应用系统,提高系统可靠性;
AT89S52独有的双数据指针使数据操作更加快捷方便;
再次,AT89S52运行速度更高,最高晶振可达到33MHz;
最后,AT89S52支持ISP(In-SystemProgramming)在线下载功能。
AT89S52中ISP引脚共有4个:
RST、MOSI、MISO和SCK。
用户可以直接替换应用系统中的AT89C51/52,而软件硬件均不需作任何修改,这给正使用AT89C51/52单片机的用户更新换代带来许多方便。
正因为AT89S52单片机增加了高可靠性、安全性的功能,所以能避免因外部
环境恶劣而引起的信号失真、电磁干扰等现象的发生。
因此,用它作为系统的控制器可以满足检测与控制的要求。
而且,从经济性的角度来看,AT89S52不但硬件结构简单,而且价格低、功能强、性价比高,符合本设计的要求。
图3AT89S52引脚图
AT89S52单片机引脚如图3所示。
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写1时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节,在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,具体如表1所示。
在Flash编程和校验时,P1口接收低8位地址字节。
表1P1口的第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输出),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个
TTL逻辑电平。
对P2端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个
对P3端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口也可作为AT89S52特殊功能(第二功能)使用,如表3.1.3所示。
在Flash编程和校验时,P3口也接收一些控制信号。
表2P3口第二功能
引脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
RST复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
:
地址所存控制信号ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚
也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置1,ALE操作将无效。
这一位置1,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
将不被激活。
/VPP是访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2单总线技术
目前常用的微机与外设之间进行数据传输的串行总线主要有
总线、SPI总线和SCI总线。
这些总线至少需要两条或两条以上的信号线。
近年来,美国DALLAS半导体公司开发了一种新技术——单总线技术。
它采用单根信号线完成数据的双向传输,并且可以通过该信号线为单总线器件提供电源。
它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,适用于远距离、多点测试、集中控制、现场缺电等场合。
单总线系统是由挂在一对双绞线(一根信号线,一根地线)上的单总线器件芯片,专门的通信协议组成,该系统中只有一个总线命令者,从者可以有多个。
总线命令者可以是PC机或者普通的单片机,从者是DALLAS公司提供的单总线器件芯片。
下面从硬件配置、总线协议和总线信号三方面介绍单总线技术。
3.3传感器模块设计
(1)DS18B20的内部结构
DS18B20主要由四部分组成:
64位激光ROM数据存储器、温度传感器、非易失性电可擦写温度报警触发器TH、TL以及非易失性电可擦写设置寄存器。
如图3-3。
图4DS18B20内部结构框图
实物如图4所示,器件只有3根外部引脚,其中VDD和GND为电源引脚,另一根DQ线则用作I/O总线,因此称为一线式数据总线。
DSI8B20的管脚排列如图5所示。
(a)PR-35封装 (b)SOSI封装
图5DS18B20的封装形式
每片DS18B20含有一个唯一的64位ROM编码。
头8位是产品系列编码,表示产品的分类编号;
接着的48位是一个惟一的产品序列号,序列号是一个15位的十进制编码,每个芯片惟一的编码可以通过寻址将其识别出来,最后8位是前56位的循环冗余(CRC)校验码,是数据通信中校验数据传输是否正确的一种方法。
(6)DS18B20的供电方式
DS18B20有两种供电方式:
如图6,一种为数据线供电方式(即寄生电源供电方式);
另一种为外部供电方式。
寄生电源方式下,GND端和VDD端都接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,完成温度转换的时间较长。
为了保证在有效的时钟周期内,提供足够的电流,这种情况下,用一个MOSFET管和单片机的一个I/O口来完成对DS18B20总线的上拉;
外接电源方式下,DS18B20的VDD端外接一个+3~+5V电源,GND端接地。
可见寄生电源方式可以省掉一根电源线,大大较低了布线的成本,但是当总线上节点较多且同时进行温度转换时,容易造成供电不足且所需的转换时间较长。
外接电源方式稳定可靠,测量速度较快。
所以本系统采用外接电源供电方式。
(a)寄生电源供电方式(b)外接电源供电方式
图6DS18B20的供电方式
3.4无线收发模块设计
nRF905是挪威NORDIC公司推出的单片无线收发一体的芯片,工作电压为1.9~3.6V,可通过编程工作于433/868/915MHz3个ISM频段,使用SPI接口与微处理器通信,配置非常方便。
nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表面滤波器,其外部连接元件包括一个基准晶振、RF偏压电阻、外部天线等几个部分,是目前集成度较高的无线数传产品,具有性能优异、功耗低、开发简单等优点。
nRF905采用抗干扰能力强的高斯频移键控(GFSK)调制方式,抗干扰能力强,能很好的减少噪声环境对系统性能的影响。
与幅移键控(ASK)和开关键控(On-OffKeying)方式相比,GFSK的通信范围更广,特别是在附近有类似设备工作的场合通信更加可靠,更适合工业现场控制场合。
nRF905内置了完整的通信协议和CRC校验电路,并且由片内硬件自动完成曼彻斯特编码与解码,只需通过SPI接口即可完成所有的无线收发传输,无线通信如同SPI通信一样方便。
nRF905传输数据时采用非实时方式,即发送端发出数据,接收端接收到后先暂存在芯片的存储器中,由微处理器在在需要的时候通过SPI接口读取。
nRF905的内部结构如图7所示,各引脚功能描述如表3所示。
图7nRF905内部结构图
表3nRF905引脚功能描述
管脚
名称
管脚功能
说明
1
TRX_CE
数字输入
使能芯片发射或接受
2
PWR_UP
芯片上电
3
uPCLK
时钟输出
由晶振分频的输出时钟
4
VDD
电源
电源(+3V)
5
Vss
接地
6
CD
数字输出
载波检测
7
AM
地址匹配
8
DR
接受或发送数据完成
9
10
MISO
SPI接口
SPI输出
11
MOSI
SPI输入
12
SCK
SPI时钟
13
CSN
SPI使能
14
XC1
模拟输入
晶振1脚
15
XC2
模拟输出
晶振2脚
16
17
18
19
VDD_PA
电源输出
给nRF905功率放大器提供的+1.8V电源
20
ANT1
射频输出
天线接口1
21
ANT2
天线接口2
22
23
IREF
参考电流
24
25
26
Vss
27
28
29
30
31
DVDD_1V2
De耦合的低压正数字电源输出
32
TX_EN
TX_EN=“1”为TX模式;
“0”为RX模式
4数据接收端设计
4.1单片机最小系统设计
数据接收端由微处理器、4位数码管显示模块、无线收发模块、外部电源、蜂鸣器报警电路、RS-232通信接口以及CAN接口组成。
考虑到系统设计方便微处理器仍然选用ATMEL公司的AT89S52,控制器与nRF905无线发射模块接口电路上一章已经介绍,这里不再赘述。
图8单片机系统结构图
nRF905无线收发模块接收各个传感器节点发送的实时采集数据,微处理器AT89S52对数据处理后通过数码管显示,超过设定温度值蜂鸣器自动报警,并将数据通过RS-232通信接口发送给上位机存储以便对系统进行温度控制。
4.2显示模块电路设计
数码管采用共阳极的4位显示数码管,其中a、b、c、d、e、f、g、dp各段的引脚可以与单片机的I/O口直接连接。
AT89S52单片机的I/O口可以输出4mA的拉电流足以驱动数码管发光。
要使某一个数码管亮则对应的C端置高,三极管的基极为低电平时导通,这样数码管就可以显示接收到的温度值。
图9为数码管显示模块电路图。
图9数码管显示模块电路
4.3PC机通信接口设计
随着计算机系统的应用和微机网络的发展,计算机的通信功能显得越来越重要。
从广义上讲,计算机通信可以分为并行通信和串行通信。
并行通信速度快、实时性好,但占用的口线多、成本高、通信距离短,不适用于小型化产品。
串行通信只需一根传输线即可完成通信功能,成本低,在通信中得到了广泛应用。
串行通信是计算机与外设进行信息交换的一种方式,是指数据一位一位地按顺序在一根信号线上进行传输的通信方式。
串行通信有两种基本工作方式:
异步传送和同步传送。
在单片机中使用的串行通信都是异步方式,因此本系统采用异步串行通信方式来实现单片机和PC机之间的通信。
异步串行通信是以字符为单位组成的帧传送的,即一帧一帧地传送。
帧由发送端一帧一帧地发送,通过传输线被接收设备一帧一帧地接收。
为了保证发送数据能准确的被接收端接收,接收端必须与发送端同步。
也就是说接收端不但要知道一组二进制的开始与结束,还需要知道每位的持续时间,这样才能做到用合适的采样频率采样所接收到的数据。
所以没传送一个字符时,不论所采用的字符代码长度为多少位,总是以“起始位”开始,其长度规定为1个码元,极性为“0”,即空号的极性;
中间是字符位,字符本身由5~8位数据位组成,接着字符位后面是一位校验位(也可以没用校验位);
以“停止位”结束,其长度为1、1.5或2个码元,极性皆为“1”;
停止位后面是补丁长的空闲位。
停止位和空闲位都规定为高电平(逻辑值为1),这样就保证起始位开始处一定有一个下跳沿。
表4总结了异步通信时每位的信息格式。
表4异步通信的信息格式
位名称
极性
位数
起始位
逻辑0
1位
数据位
逻辑0或逻辑1
5位、6位、7位、8位
校验位
逻辑0或逻辑1
1位或无
停止位
逻辑1
1位、1.5位或2位
空闲位
任意数量
在串行通信中,数据通常是校验、偶校验和无校验,由用户根据需要选定。
在发送端和接收端之间进行传送,根据数据传送的方向,可分成三种基本的传送形式:
单工、全双工和半双工。
单工形式的数据传送是单向的,只需要一根数据线。
半双工形式的数据传送是双向的,但任何时刻只能由其中的一方发送数据,另一方接收数据。
半双工形式比单工形式灵活,但它的效率依然较低,从发送方式切换到接收方式所需要的时间大约为数个毫秒,这个时间延迟在对时间较为敏感的系统中是无法容忍的。
全双工形式下,采用了信道划分技术,避免了半双工形式的缺点,数据传送是双向的,且可以同时发送和接收数据。
本系统采用了效率较高的全双工通信形式。
5系统电路原理图
图10系统电路原理图
6系统软件
本系统的软件部分采用C51编程,在Keil环境下运行。
Keil软件是基于80C51内核的微处理器软件开发平台。
既可以实现软件编译,(asrn编译为hex),也可以配合仿真模块实现硬件仿真。
设计时我们首先要确定完善的思路,充分考虑传感器和无线收发器之间的时序问题,既要让程序简单又要降低无线数据传输的误码率,提高系统的抗干扰能力,保证系统稳定工作。
6.1温度数据采集端软件设计
温度数据采集端由AT89S52作为核心处理器件,把经过DS18B20现场实时采集到的温度数据,存入AT89S52的内部数据存储器,同时通过无线收发器nRF905发送数据接收端。
此部分数据处理流程如图11所示。
图11温度数据采集端数据处理流程图
DS18B20首先接收到AT89S52发送的复位脉冲完成复位,接着发送ROM操作命令,使DS18B20被激活进入接收内存访问命令状态。
内存访问命令状态完成温度转换、读取等工作。
系统以ROM命令和存储器命令的形式对DS18B20操作。
DS18B20对时序及电气特性参数要求较高,必须严格按照DS18B20的时序要求去操作。
DS18B20数据的读写由微控制器AT89S52读写时间来完成,包括初始化、读数据和写数据。
控制器对DS18B20操作之前必须先初始化,即控制器发送复位脉冲(最短为480us的低电平),接着释放总线进入接收状态。
DS18B20在检测到P3.5引脚的上升沿之后,等待一段时间后发出存在脉冲。
将数据线从高电平拉至低电平产生写起始信号。
而控制器将数据线从高电平拉至低电平1us以上,再使数据线升高为高电平从而产生读起始信号。
温度数据采集程序流程图如图12所示。
图12温度数据采集程序流程图
微控制器控制对DS18B20完成温度转换必须进过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
为保证DS18B20的严格I/O时序,需要作较精确的延时。
在DS18B20的操作中,延时分两种:
短时间延时和较长时间延时。
短时间延时指10us以下的延时,在汇编语言下采