阿克苏职业技术学院 843000
摘 要
有线通信由于其布线、组网、成本等方面的局限性, 已经不能满足技术发展和 应用的需要。在许多领域无线通信技术已越来越受到重视,而且发展迅速。本论文 主要研究的是基于单片机 UART技术的无线数据采集系统的硬件电路与软件设计。
本文首先通过对短距离无线数据传输技术的研究分析, 以及通信协议的学习, 对短距离无线数据传输技术的应用和发展对比分析,根据现有的无线数据传输系统 及其应用特点,提出一种基于微控制器串行通信 UART技术的串行无线数据采集系 统的设计方案。系统由主机系统和从机系统两部分构成,构建主从式无线数据采集 网络系统,网络拓扑结构为星型结构。经实验检测,系统工作稳定、数据传输可靠、 通信性能强,能够应用于较低速实验数据的无线短距离采集,并且传输距离可以达 到 250m 以上。
关键词:无线通信;UART技术;数据采集;无线网络
I
基于 51 单片机无线数据采集系统的探究
一.研究主要内容
本文研究的重点在于利用单片机设计微控制器应用系统,利用无线通信技术进 行数据采集, 目标是建立一种稳定的、低功耗、低成本的基于无线网络的数据采集 系统,完成无线从站数据采集与显示,主站数据接收、存储与显示。
二、系统方案设计
通过对短距离无线通信技术的分析,根据现有的无线数据传输系统及其应用特 点,本文提出一种基于微控制器串行通信 UART技术的串行无线数据采集系统设计 方法,系统由主机和从机两部分构成,构建一种主从式无线数据采集网络系统,网 络拓扑结构为星型结构。
三、电路设计 1.系统硬件电路设计
该系统设计由两部分组成:主机系统和从机系统。主机系统完成对整个系统的 控制、通信及数据处理;从机系统根据接收到的主机指令信息执行相应的数据采集 和发送。主机系统和从机系统的无线模块采用相同的模块。
1.1 主机控制部分硬件电路设计
主机控制部分电路设计主要由 5 个模块构成,完成对数据的存储、显示以及对 从机的控制,其结构如图 3- 1 所示。
图3- 1 主机系统结构图
电源模块
系统工作电压设计为 5V,采用双电源切换供电方式.直流电源供电 :一般采用 9V直流电源输入,最大电压最好不超过 20V,经过电压转换芯片 LM7805 转成 5V 标准工作电压,LM7805 的最大输出电流可以达到 1A,完全可以提供系统工作所需 要的功率 ;USB口供电:直接使用 USB口供电,因为 USB口是标准 5V。双电源
1
基于 51 单片机无线数据采集系统的探究
可以通过自锁开关 S0 切换。
Diode1N4007
D1
3
C1
100uF
VCC
R6 1K
USB
C3
470uF
DS1
图3-2 电源模块电路图
主控制器模块
系统主控制器采用常用的 51 系列微控制器 STC89C52,该微控制器提供 8KB的 快速可擦写 Flash存储器,用于程序存储,256 字节的片内数据存储器,32 条可编程 I/O口线,3 个可编程 16 位定时/计数器,全双工的 UART串行通信。主控制器模块 电路原理如图 3-3 所示。
VCC
P1.0
P1. 1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
RXD
TXD
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
6
7
8
STC89C52
图 3-3 主控制器模块原理图
时钟和存储模块
主机系统设计时钟模块,采用 DS1302 时钟芯片通过读取时间信息来记录每次 数据传输信息。DS1302 是 DALLAS公司推出的涓流充电时钟芯片内含有一个实时 时钟/日历和 31 字节静态 RAM,通过简单的串行接口与单片机进行通信。实时时钟 /日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可 自动调整,时钟操作可通过 AM/PM指示决定采用 24 或 12 小时格式。DS1302 与单
2
基于 51 单片机无线数据采集系统的探究
片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线: RES(复位), I/O(数据线),SCLK(串行时钟)。时钟/RAM的读/写数据以一个字节或多达 31 个字 节的字符组方式通信,DS1302 工作时功耗很低,保持数据和时钟信息时功率小于
1mW。
主机设置了数据存储器 AT24C16,它是一个 16K位串行 CMOSE2PROM, 内 部含有2048 个 8 位字节,有一个 16 字节页写缓冲器。该器件通过 I2C总线接口进 行操作,有一个专门的写保护功能。时钟模块和数据存储器与主控制器的连接原理 设计如图 3-4 所示。
VCCU6
VCC21 8 VCC1
Y3 X1
SCLKP3.2
2 7
GNDRESTP3.3
4 5
DS1302
VCC
U7
A0 VCC
P1.5
A1 WP
P1.6
A2SCA
P1.7
GNDSDA
AT24CXX
图 3-4 时钟模块和数据存储器接口图
人机界面设计
主机系统中人机界面主要是显示和按键按钮电路。显示界面采用 12864 汉字图 形点阵液晶显示模块:可显示汉字及图形, 内置 8192 个中文汉字(16*16 点阵)、 128 个字符(8*16 点阵)及 64*256 点阵显示 RAM。
VCC
R11
10K
P3 5
S2
VCC
R12
10K
P3.6
S4
VCC
S6
R13
10K
P3.7
S7
S10
图 3-5 键盘扩展电路原理图
键盘按钮作为系统功能的补充,是必不可少的模块,在平时设计中,有独立按 键方式,也有矩阵键盘方式。但是在本系统设计中, 由于 I/O口资源有限,很难满 足系统的按键功能需求,I/O口扩展会增加系统成本,因此综合独立按键与矩阵按键
3
基于 51 单片机无线数据采集系统的探究
的设计方式,利用 3 个 I/O口设计了 9 个按键,具体接口电路如图 3-5 所示。该键盘 的扫描方式比起常用方式要发杂一些,需要将独立按键判断方式与矩阵按键扫描方 式结合起来才能完成,相比常用按键设计方式可以节省微控制器 I/O接口资源,值 得推广应用。
1.2 从机控制部分硬件电路设计
从机控制部分电路设计主要由 5 个模块构成,完成对数据的采集、存储以及显 示。从机系统的主控制器模块和电源模块设计与主机系统的原理相同,不同的是从 机系统人机界面设计,另外增加数据采集 A/D转换模块与温度采集模块。
人机界面设计
从机系统人机界面设计显示分两个部分,从机地址显示采用 LED(二极管)和数 据采集显示采用数码管,因为是数据采集终端,因此从机系统没有设计按键按钮电 路 , 具体接 口 电路如 图 3-6 所示 。 四位共 阴数码管段选输入采用 串入并 出 的 74HC595;位选驱动采用 74LS04 反相器,既增加驱动能力,又可以保护主控制器。
4
基于 51 单片机无线数据采集系统的探究
DS10
8 7 6 5 4 3 2 1 |
RP2
VCC
VCC
220
220
VCC
220
220
220
U3
DS2
U4A
P0.3 1
Q4
U4B
P0.4 3
U4C
P0 5 5
U4D
P0 6 9
4
基于 51 单片机无线数据采集系统的探究
图3-6 从机人机界面设计原理图
A/D转换和数据存储模块
数据采集系统一般都会用到 A/D转换芯片,本系统采用美国国家半导体公司生 产的具有 8 位分辨率、双通道 A/D转换的 ADC0832 芯片。数据存储器仍然采用
AT24C16 。 A/D转换和数据存储模块接口电路如图 3-7 所示。
ADC0832
VCC
U7
|
ATC24XX
图 3-7 A/D 转换模块和数据存储模块接口电路
单片机对 ADC0832 的控制原理:正常情况下 ADC0832 与单片机的接口应为 4
4
基于 51 单片机无线数据采集系统的探究
条数据线,分别是 CS、CLK、DO和 DI。但由于 DO端与 DI端在通信时并未同时 有效并且与单片机的接口是双向的,所以电路设计时将 DO和 DI并联在一根数据线 上使用(见图 3-8)。当 ADC0832 没有工作时其 CS输入端应为高电平,此时芯片禁 用,CLK和 DO/DI的电平可任意;当要进行 A/D转换时,须先将 CS使能端置于低 电平并且保持低电平直到转换完全结束,此时芯片开始转换工作, 同时由处理器向 芯片时钟输入端 CLK输入时钟脉冲,DO/DI端则使用 DI端输入通道功能选择的数 据信号。在第一个时钟脉冲的下降沿之前 DI端必须是高电平,表示起始信号。在第 2、3 个脉冲下降沿之前 DI端应输入 2 位数据用于选择通道功能,其功能真值项见 表3-4。
表 3- 1 ADC0832 通道选择真值表
MUXADDRESS | CHANNEL NUMBER | ||
--------- SGL/DIF | ODD/SIGN | 0 | 1 |
1 | 0 | + | |
1 | 1 | + | |
0 | 0 | + | - |
0 | 1 | - | + |
如表所示,当此 2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。当 2 位
数据为“1”、“1”时,只对 CH1 进行单通道转换。当 2 位数据为“0”、“0”时,将 CH0作为正输入端 IN+ ,CH1 作为负输入端 IN-进行输入。当 2 位数据为“0”、“1” 时,将 CH0 作为负输入端 IN- ,CH1 作为正输入端 IN+进行输入。
温度采集模块
一般在数据采集系统中,都会涉及到与温度相关的数据, 因此本系统在设计时 加入了温度测量电路。温度测量电路基于 DS18B20 一线式数字温度传感器, 电路非 常简洁,具体电路如图
3-8 所示。
DS18B20
VCC
R15
TXD
图3- 10 DS18B20 电路原理图
5
基于 51 单片机无线数据采集系统的探究
DS18B20 依靠一个单线端口通讯。在单线端口条件下,必须先建立 ROM操作 协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面 5 个 ROM操 作命令之一:1)读 ROM,2)匹配 ROM,3)搜索 ROM ,4)跳过 ROM ,5)报警搜索。 这些命令对每个器件的激光 ROM部分进行操作,在单线总线上挂有多个器件时, 可以区分出单个器件, 同时可以向总线控制器指明有多少器件或是什么型号的器件。 成功执行完一条 ROM操作序列后,即可进行存储器和控制操作,控制器可以提供 6条存储器和控制操作指令中的任一条。
一条控制操作命令指示 DS18B20 完成一次温度测量,测量结果放在 DS18B20 的暂存器里,用一条读暂存器内容的存储器操作指令可以把暂存器中数据读出。温 度报警器触发器 TH和 TL各由一个 EEPROM字节构成。如果没有对 DS18B20 使用 报警搜索命令,这些寄存器可以作为一般用途的用户存储器使用,可以用一条存储 器操作命令对 TH和 TL进行写入,对这些寄存器的读出需要通过暂存器。所有数据 都是以最低有效位在前的方式进行读写。
2.系统硬件抗干扰设计
硬件系统的抗干扰设计是一个涉及广泛的系统工程,PCB材质、元器件选择和 PCB的布局布线等都会影响到硬件系统工作的稳定性[22]。
2. 1PCB材质的选择。
在选择PCB材料时一般需要从材料的耐热性、平整度、结构强度和电气性能等 方面进行综合考虑,本系统中选择了介电常数高、介质损耗较小的聚四氟乙烯玻璃 纤维作为 PCB板材料。
2.2 元器件选择。
PCB上的元器件是造成干扰的主要来源,器件的寄生电容和电感、数字电路正 负逻辑之间的转换等都会造成干扰。因此在器件选择上应尽量遵循以下原则:尽量 选用封装类型较小和驱动电压较低的元件,本系统中电阻和电容元件在满足应用的 前提下都选择了贴片元件。
2.3PCB布局规则。
电源线、地线及信号线的排列要尽量做到短而直, 以减小信号线与回路之间的 环路面积;导线拐弯处应形成 45°转角,直角或锐角在电路中会影响电气性能;尽 量加粗地线并使接地线构成封闭环路;去耦电容贴近集成芯片安装,连线应尽量短;
6
基于 51 单片机无线数据采集系统的探究
加大模拟电路的接地面积,将模拟地与数字地分开; 由于采用了无线模块,在无线 模块的下方不能有电器元件, 以免对无线数据的传输构成干扰。
四、无线数据采集系统软件设计
无线数据采集管理系统软件设计分两个部分:主机系统软件和从机系统软件。 通信系统的协议设计建立在单片机自带的 URAT端口支持的以位为单位的异步串行 通信协议的基础上,实现通信控制中更为复杂的要求。
1.主机系统程序设计
无线数据采集系统中,主机可以随时呼叫任一从机,发送命令;从机响应主机 呼叫执行命令。但从机不能主动呼叫主机,从机之间也不能相互通信。为了避免同 频干扰的问题,系统采用分时 TDMA(TimepisionMultipleAccess)技术,把系统主 机与任意一台从机之间的通信采用时分的方式分开。主机与从机通信有两种方式实 现:1)主机通过扫描的方式与各台从机设备进行单台通信;2)人为键盘控制主机访 问需要通信的从机。这样系统中主机与从机的通信方式就成为点对点的通信方式, 整个点对多点系统的通信方式就成为若干个点对点通信组合。
主机系统程序初始化部分的函数主要包括:
serial_timer_Init();主控制器 UART初始化,定时/计数器初始化。
LCD12864_init();LCD12864 液晶显示初始化。
Ds1302_Init();DS1302 时钟模块初始化。
各模块初始化的具体源代码见附录。主机数据通信部分采用串口中断实现,设 置数据通信标志 Rxd_flag,并设置了数据接收计数 Rxd_count。
2.从机系统程序设计
作为无线数据采集管理系统中的从机系统,主要完成接受主机访问并进行数据 采集和发送。
从机系统程序初始化部分的函数主要包括:
7
基于 51 单片机无线数据采集系统的探究
Init_DS18B20()
serial_Init();
//初始化温度传感器
// 初始化 UART
7
基于 51 单片机无线数据采集系统的探究
本系统最终以温度采集为实例进行实践,所以数据采集主要是对温度传感器的 读写以及温度转化过程,在对温度温度传感器进行读写转化过程中,如果此时受到
中断的干扰,此时温度转化的最终结果有可能会出错。
7
基于 51 单片机无线数据采集系统的探究
5.系统调试与分析
系统整体测试目的是验证系统的正确性、稳定性和可靠性,其中无线模块数据 传输性能测试和主从结构的网络通信性能测试是关键环节,只有通信正常才能保
证 数据准确可靠传输,保证整个数据采集与传输系统的正常运行。系统在实验室采集 温度传输调试通过,实际应用时可根据现场需要改动或增加部分代码即可。
1.1 系统硬件调试与分析
系统硬件电路设计完成后,主要是电路板的制作和元器件的焊接,在将元器件 全部安装焊接完成之后,对相应的电路板进行硬件调试,检测系统硬件的完整性和 工作的可靠性。在完成硬件的元器件安装之后,首先用万用表对电路进行短路检测。 通过万用表检测电源与地之间是否短路,检测元器件各个引脚之间是否焊接短路, 焊点是否存在虚焊、氧焊。检测元器件各个对应引脚是否连接正确。经检测系统正 常,然后进行上电检测,检测系统电压是否为 5V,各元器件电压是否符合要求。在 以上检测正确之后,将主板与主机相连,检测系统是否能正常工作。将已编写好的 系统硬件检测程序下载到主控制器,如果各模块都能完成相应的功能,则说明系统 硬件系统正常。经过检测,硬件系统可以正常工作。
1.2 系统通信性能检测
系统通信性能主要检测从机系统无线模块与主机系统无线模块的通信能力。通 过系统通信能力测试,检测系统是否能够正常工作, 以完成系统设计中的技术要求。 由于本系统采用串行数据通信协议,在系统通信能力检测中出现了意想不到的错误, 即在数据传输过程中总是有一两个数据出错,经过实验观察, 出错的数据并且具有 一定 的规律 :如在一组十个数据 (0xc0 、0xf9 、0xa4 、0xb0 、0x99 、0x92 、0x82 、 0xf8 、0x80 、0x90)的传输中,其中四个数据(0xa4 、0x99 、0x92 、0x90)总是出错, 经过检测,在传输过程中数据高四位的会被改变。为了纠正错误,分两部分进行了 检测:无线模块的正确性和系统串口协议设计的正确性。系统串口协议的正确性检 测方法是把主从主控板直接通过串口相连,形成单片机之间的点对点通信,经检测 通信正常;无线模块的正确性检测方法是把两个模块分别和 PC机串口直接相连, 利用串口调试软件检测数据传输的正确性,经检测模块数据传输无误。在编写传输 数据纠错程序无效的情况下,检测了串口传输速率,如果单片机系统采用 11.0592M
的外部晶振, 串口传输速率设置为 9600kb/s,此时实际波特率与设置相同,而当单
8
基于 51 单片机无线数据采集系统的探究
片机采用 12M的外部晶振时,会产生 8%左右的误差,就是这个误差,导致了在传 输过程中数据传输存在规律性的错误,经调换晶振后数据传输正常。至此系统的通 信性能符合系统设计技术要求。
六、结论
文章通过对无线数据传输系统的研究、对串行数据传输特点分析,设计了一种 实用的无线数据采集系统,阐述了系统的硬件构成和软件设计。该系统包括若干个 从机,最多可设置 255 个从机;一个主机。二者协作运行,共同完无线数据采集、 传输、管理功能。
由于从机布局的随机性,基于时间的轮询机制的数据采集模式难以实现,通信 效率低,需要进一步改善;还有主机键盘模块的设计在理论上可以实现,但是在编 程和采用 ISIS 仿真上未能实现技术要求,需要更多改进。无线数据采集系统作为新 型的数据采集技术,是能够自主实现数据的采集、传输和存储应用的网络应用系统, 使在一定距离的远程实验数据采集容易实现。系统能够扩展为和 PC机相互通信的 数据采集系统,此时的主机系统变为下位机,和 PC机通过串口通信。无线数据采 集网络的特点决定了它的应用领域,数据采集需求决定着实现技术。两者的结合构 成了可扩展、低成本、稳定、可靠的数据采集系统。随着物联网技术应用的发展, 该技术会应用到越来越多的领域。
9
基于 51 单片机无线数据采集系统的探究
参考文献
[1] 孙武. 无线通信技术发展前景探索[J].科技前沿,2009,147.
[2] 孙弋,韩晓冰,张衡伟等. 短距离无线通信及组网技术[M].西安电子科技大学出版社,
2008,83-224.
[3] 张征,赵建军,姚跃亭. 一种基于 PC/104 的实时姿态数据采集系统的设计与实现[J].微计算
机信息(嵌入式与 SOC)2006 年第 22 卷第 8-2 期,94-99.
[4] 丁立波,江小华,张河.基于无线数字传输技术的数据采集系统设计[J].设计与实现,EDA 技术
专栏,41-43.
[5] 高守玮,吴灿阳,杨超等. ZigBee 技术实践教程—基于 CC2430/31 的无线传感器网络解决
方案[M].北京航空航天大学出版社,2009,354-368.
[6] 喻金钱,喻斌. 短距离无线通信详解—基于单片机控制[M].北京航空航天大学出版社,
2009,120-194.
[7] 张景文, 李金平, 高为浪.基于 nRF401 的温度数据采集系统.西华大学学报(自然科学
版)Vol.2
9, No.4,Jul.2010,8- 11.
[8] 谭晖. nRF无线 SOC单片机原理与高级应用[M].北京航空航天大学出版社,2009,275-298.
[9] 求是科技. 单片机通信技术与工程实践[M].人民邮电出版社,2005,316-332.
[10] 管耀武,杨宗德.ARM 嵌入式无线通信系统开发实例精讲[M].电子工业出版社,213-279.
[11] 沈红卫.基于单片机的智能系统设计与实现[M].电子工业出版社,2005 ,74-158.
[12] 高正立,曹奇英.轮询机制在无线数据采集协议中的应用[J].微计算机信息,2010 年 19 期.
[13] CAIJun,YUShun-Zheng,LIUJing-li. TheDesignofaWirelessDataAcquisitionand TransmissionSystem[J]. JOURNALOFNETWORKS, VOL.4, NO. 10,DECEMBER 2009,1042-1049.
[14] YangMuSheng, ZhangYu, LiAijun. Researchonwirelessprocessdataacquisition technology basedonAgentinremotemanufacturing[J]. WirelessCommunications, NetworkingandMobile Computing, 2009. WiCom '09.5th InternationalConferenceon.
[15] MAXing-chuan. AnalysisofCurrentSeveralNodeLocalizationTechnologiesinWirelessSensor Network[J].Computer Knowledge and Technology ,Vol.3 ,No.6,August 2008 ,1155- 1158.
[16] TimPieper.WirelessDataAcquisitionSystem[J].FunctionalRequirementsList & PerformanceSpecifications,November12,2007.http://cegt201.bradley.edu/projects/proj2008/widas/
pdf/Functional%20Requirements.pdf.
[17] 郭惠,吴迅. 单片机 C 语言程序设计完全自学手册[M],2008,158-255
10