基于CC1100的无线信息采集系统设计.docx
《基于CC1100的无线信息采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于CC1100的无线信息采集系统设计.docx(50页珍藏版)》请在冰豆网上搜索。
基于CC1100的无线信息采集系统设计
郑州大学西亚斯国际学院
本科毕业设计(论文)
题目基于CC1100的无线信息采集系统
指导老师XXXXX职称讲师
学生姓名XXX学号200XXXXX28
专业电子信息工程班级2007级电信
(2)班
院(系)电子信息工程学院电子工程系
完成时间2011年04月25日
基于CC1100的无线信息采集系统
摘要
随着科学技术高速化、信息化、网络化和智能化的发展,无线通信成为实现设备间相互联机通信最具发展潜力的方式,随着社会生产的机械自动化和产品规模化,数据采集无线传输也成为一种必然趋势,在这样的社会生产要求下,本文利用射频收发器CC1100设计了一个无线温度采集系统。
本系统分为上位机(发射)和下位机(接收)两个部分,每个部分均由CC1100无线模块、单片机控制模块和LED温度显示模块组成。
由于CC1100的特点是通过4线SPI接口配置,所以本文的研究重点是如何利用单片机通过虚拟的SPI接口实现与CC1100的信息传输。
关键词CC1100/单片机/温度采集/SPI接口
WIRELESSINFORMATIONCOLLECTIONSYSTEMBASEDONCC1100
ABSTRACT
Alongwiththescienceandtechnologyofinformationized,networked,intelligentizeddevelopment,wirelesscommunicationbecomethemostpotentialwayinthemutualonlinecommunicationbetweendevices.Followingwiththesocialproductionmachineryautomationandthescaleofproduct,dataacquisitionbywirelesstransmissionhasbecomeanecessarytrend.Underthissocialproductionrequirements,thispaperdesignawirelesstemperaturegatheringsystemusingRFtransceiverCC1100.
Thissystemiscomposedoftwoparts,theuppermachine(emission)andlowerplacemachine(receive).EachpartconsistsofCC1100wirelessmodule,microcomputercontrolmoduleandLEDtemperaturedisplaymodule.DuetothecharacteristicsofCC1100,configurationthrough4lineSPIinterface,thispaperfocusesontheresearchofinformationtransmissionbetweenMCUwithCC1100throughavirtualSPIinterface.
KEYWORDSCC1100;MCU;tempreturecollection;SPIinterface
1绪论
1.1项目背景
随着科学技术的发展,技术日益向着高速化、智能化、信息化、网络化发展,各种各样的制造业和通信业设备除了可以与计算机联机通信外,还可以互相联机通信。
而实现设备间相互联机通信的最具发展潜力的方式就是无线通信。
无线通信以投资少、开通快、维护简单、适应性强、扩展性好等优点在生产和生活中广泛应用。
随着现代电子技术、传感技术、通信技术和计算机技术的迅速发展,数据采集无线传输也成为一种必然趋势。
在科技发达的今天,几乎每个行业都已经实现了机械自动化,产品规模化,大规模的工业化生产使得生产效率大大提高,产品产量也随之提高。
无论是大型的生产基地还是小型的工厂,对生产作业的环境进行实时监测都利于企业掌握最新的信息,采取合适的方法和措施来使伤害降到最低或损失降到最小。
系统采用无线传输传送采集的信息,可以克服由于监测点分散、分布范围广、距离远的问题,尤其可以克服在环境较恶劣的地区采集和传输数据的不便,所以数据可以逐级上传,保证监测部门及时反映,决策。
监测点设计成专用模块无需专人看守,极大地提高了对周边环境信息的自动检测能力。
因此对利用无线方式进行信息采集的传输的研究具有重要的意义。
本文就是在这样的背景下,想要设计一个无线信息采集系统,以适应工业化及公共事业(水、电、燃气)在中国的蓬勃发展,因为传统的手工信息采集作业方式显然已不能满足社会的需要,因此无线信息采集将是未来发展的必然趋势。
[5]当前的无线信息采集系统通常通过RS485、CAN总线通信方式传输至上位机,但这种方式维护较困难,不利于工业现场生产;而无线通信GPRS技术传输距离长,通信可靠稳定,但设计复杂、成本昂贵。
这里采用工业级内置硬件链路层协议的低成本单芯片CC1100无线收发器件实现系统间的无线通信,完成无线信号的接收、显示及报警功能。
本文设计的无线信息采集系统由STC89C52单片机和CC1100构成,以温度采集为例来说明一个无线信息采集系统的设计与实现的过程。
该设计具有使用方便、成本低、应用灵活、价格适中的优点。
家庭内部的三表可以统一采集。
还可以应用在低功率遥感勘测,住宅和建筑自动控制,无线警报和安全系统,工业监测和控制,无线传感器网络,遥控遥测系统中,而且适用于电子消费产品、住宅、建筑物自动控制等诸多无线应用领域。
1.2CC1100简介
CC1100是一种低成本真正单片的UHF(UltraHighFrequency,特高频)收发器,为低功耗无线应用而设计。
电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348MHz、400-464MHz和800-928MHz的其他频率。
RF收发器集成了一个高度可配置的调制解调器。
这个调制解调器支持不同的调制格式,其数据传输率可达500kbps。
通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。
CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供广泛的硬件支持。
主要特性:
●体积小(QLP4×4mm封装,20脚)
●真正的单片UHFRF收发器
●频率波段:
300-348MHz、400-464MHz和800-928MHz
●高灵敏度(1.2kbps下-110dBm,1%数据包误差率)
●可编程控制的数据传输率,可达500kbps
●较低的电流消耗(RX中15.6mA,2.4kbps,433MHz)
●可编程控制的输出功率,对所有的支持频率可达+10dBm
●优秀的接收器选择性和模块化性能
●极少的外部元件:
芯片内频率合成器,不需要外部滤波器或RF转换
●可编程控制的基带调制解调器
●理想的多路操作特性
●可控的数据包处理硬件
●快速频率变动合成器带来的合适的频率跳跃系统
●可选的带交错的前向误差校正
●单独的64字节RX和TX数据FIFO
●高效的SPI接口:
所有的寄存器能用一个“突发”转换器控制
●数字RSSI输出
●与遵照EN300220(欧洲)和FCCCFR47Part15(美国)标准的系统相配
●自动低功率RX拉电路的电磁波激活功能
●许多强大的数字特征,使得使用廉价的微控制器就能得到高性能的RF系统
●集成模拟温度传感器
●自由引导的“绿色”数据包
●对数据包导向系统的灵活支持:
对同步词汇侦测的芯片支持,地址检查,灵活的数据包长度及自动CRC处理
●可编程信道滤波带宽
●OOK和灵活的ASK整型支持
●2-FSK,GFSK和MSK支持
●自动频率补偿可用来调整频率合成器到接收中间频率
●对数据的可选自动白化处理
●对现存通信协议的向后兼容的异步透明接收/传输模式的支持
●可编程的载波感应指示器
●可编程前导质量指示器及在随机噪声下改进的针对同步词汇侦测的保护
●支持传输前自动清理信道访问(CCA),即载波侦听系统
●支持每个数据包连接质量指示
CC1100的主要操作参数和64位传输/接收FIFO(先进先出堆栈)可通过SPI接口控制。
这是本文研究的重点,具体的控制方案在后面的硬件设计与软件设计中会详细讲解。
2系统总体设计
本设计为基于CC1100的无线温度采集系统,无线模块是基于CC1100开发的NewMsg_RF1100模块,主控芯片采用STC89C52,温度采集芯片采用数字温度传感器DS18B20。
系统主要由上位机(温度采集发送)与下位机(接收显示)两部分组成。
2.1硬件总体设计
上位机由DS18B20温度采集,STC单片机控制,RF1100发送模块,4位LED显示组成。
下位机由RF1100接收模块,STC单片机控制,4位LED显示,LED警报灯组成。
示意图如下:
图1上位机示意图
图2下位机示意图
硬件系统设计的思路是:
1.上位机:
数字温度传感器DS18B20感应温度并存储温度值,STC单片机通过读命令读取温度值并将温度值送至RF1100发射模块和LED显示。
2.下位机:
RF1100接收存储温度值,STC单片机通过读命令读取温度值并送至LED显示,当温度超过预定值,则发出警报。
2.2软件总体设计
1.上位机程序包含三个函数模块:
温度采集函数、LED显示函数和RF1100发射函数,为保证系统一直处于工作状态,将这三个函数都嵌入在一个while
(1)函数中,工作流程图如下:
图3上位机程序流程图
首先SPI初始化,CC1100加电复位,CC1100复位成功后进入空闲状态,配置CC1100的片内寄存器,为发射数据提供好硬件环境,这时执行while
(1)无限循环,实现温度数据连续地不间断地发送。
2.下位机程序包含两个函数模块:
RF1100接收函数和LED温度显示函数,在高温警报设计上采用if语句。
为了保证持续不断地接收,也将这三部分都嵌入到while
(1)函数中,工作流程图如下:
图4下位机程序流程图
定义leng变量和Rxbuf数组的目的是对RF1100接收数据函数的形参进行值传递,在while
(1)函数中,首先执行RF1100接收函数接收数据,再将接收的数据送至LED显示,用比较语句表达式作为if语句的判定条件,在温度超过32度时让警报灯亮。
3硬件设计
由总体设计框图可看出,上位机和下位机有很多相似之处,所以在这里将上位机和下位机的硬件设计分为STC单片机机控制模块、CC1100无线模块、DS18B20温度采集模块、LED显示模块来阐述。
3.1STC单片机模块硬件设计
该模块是整个系统的控制核心,只有合理利用单片机的引脚才能让单片机发挥它的控制功能。
在本系统中,主控模块居于非常重要的地位。
它是整个系统的中枢,系统运行所需的每个操作指令都要由其发出。
它一方面控制着测温模块进行温度信息的采集,另一方面也控制着射频模块的发射及接收工作。
最重要的是,由测温模块所采集到的温度信息必须经由主控模块的处理才能通过发射模块进行传输,从而使整个系统进行正常的运转和工作。
针对以上分析本系统主控模块中的单片机芯片采用了STC89C52芯片,此芯片功能强大,能够完全满足系统运行的需求。
1)STC89C52的功能描述
图5STC89C52的引脚图如图所示
STC89C52是一种低损耗、高性能CMOS八位微处理器,片内有8k字节的在线可重复编程、快速擦除快速写入闪烁存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
STC89C52可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需10毫秒,不易损坏器件,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(3.3V~5.5V),全静态工作,工作频率宽在0Hz~80MHz之间。
STC89C52芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
P3口为多功能口。
2)STC89C52的特点
●STC89C52与MCS-51系列的单片机在指令系统和引脚上完全兼容;
●片内有8k字节在线可重复编程擦写闪烁存储器;
●全静态工作,工作范围:
0Hz~80MHz;
●三级程序存储器锁定;
●512内部RAM;
●32位双向可编程输入输出线;
●3个16位定时器/计数器;
●8个中断源,4个中断优先级;
●可编程串行通道;
●片内振荡器和时钟电路;
●低功耗的闲置和掉电两种工作方式;
STC89C52与各个模块的连接将在后续模块的设计中说明。
3.2CC1100无线模块硬件设计
本设计的无线发射模块是基于CC1100开发的NewMsg_RF1100模块,该模块是一个完整的发射电路,只需将它的引脚与单片机连接起来,通过单片机控制命令配置它,即可使用。
3.2.1CC1100说明[1]
CC1100的引脚结构图如下所示:
图6CC1100引脚结构
表1CC1100引脚说明
引脚编号
引脚名
引脚类型
描述
1
SCLK
数字输入
时钟输入
2
GDO1(SO)
数字输出
数据输出
3
GDO2
数字输出
●测试信号
●FIFO状态信号
●时钟输出,从XOSC向下分割
●连续输入TX数据
4
DVDD
功率(数字)
数字I/O和数字中心电压调节器的1.8V-3.6V数字功率供给输出
5
DCOUPL
功率(数字)
对退耦的1.6V-2.0V数字功率供给输出
6
GDO0
数字输出
●测试信号
●FIFO状态信号
●时钟输出,从XOSC向下分割
●连续输入TX数据
7
CSn
数字输入
芯片选择
8
XOSC_Q1
模拟I/O
晶体振荡器脚1,或外部时钟输入
10
XOSC_Q2
模拟I/O
晶体振荡器脚2
9,11,14,15
AVDD
功率(模拟)
1.8V-3.6V模拟功率供给连接
12
RF_P
RFI/O
接收模式下对LNA的正RF输入信号
发送模式下对LNA的正RF输出信号
13
RF_N
RFI/O
接收模式下对LNA的负RF输入信号
发送模式下对LNA的负RF输出信号
16
GND
地(模拟)
模拟接地
17
RBIAS
模拟I/O
参考电流的外部偏阻器
18
DGUARD
功率(数字)
对数字噪声隔离的功率供给连接
19
GND
地(数字)
数字噪声隔离的接地
20
SI
数字输入
数据输入
CC1100的内部电路原理图如下所示:
图7CC1100内部电路原理图
CC1100用作一个低IF接收器。
接收的RF信号通过低噪声放大器(LNA)放大,再对中间频率(IF)求积分来向下转换。
在IF下,I/Q信号通过ADC被数字化。
自动增益控制(AGC),细微频率滤波和解调位/数据包同步均数字化地工作。
CC1100的发送器部分基于RF频率的直接合成。
频率合成器包含一个完整的芯片LCVCO和一个对接收模式下的向下转换混频器产生I和QLO信号的90度相移装置。
3.2.2RF1100说明[2]
1)RF1100模块使用Chipcon公司的CC1100芯片开发而成,工作在433/868/915MHZ的ISM频段,由一个完全集成的频率调制器、一个带解调器的接收器、一个功率放大器、一个晶体震荡器和一个调节器组成。
。
工作特点是自动产生前导码和CRC,可以很容易通过SPI接口进行编程配置,电流消耗低。
模块图如下:
图8RF1100模块图
原理图如下所示:
图9RF1100的电路图
其中偏阻器R171用来设置一个精确的偏电流。
C131,C121,L121和L131形成一个平衡转换器,用以将CC1100上的微分RF端口转换成单端RF信号。
同一个合适LC网络一起,平衡转换器元件也将阻抗转换以匹配50欧的天线。
2)RF1100基本功能特性:
●315、433、868、915Mh的ISM和SRD频段
●最高工作速率500kbps,支持2-FSK、GFSK和MSK调制方式
●高灵敏度(1.2kbps下-110dDm)
●内置硬件CRC检错和点对多点通信地址控制
●较低的电流消耗(RX中,15.6mA,2.4kbps,433MHz)
●可编程控制的输出功率,对所有的支持频率可达+10dBm
●支持低功率电磁波激活(无线唤醒)功能
●支持传输前自动清理信道访问(CCA),即载波侦听系统
●快速频率变动合成器带来的合适的频率跳跃系统
●模块可软件设地址,软件编程非常方便
●标准的DIP间距接口,便于嵌入式应用
●单独的64字节RX和TX数据FIFO
3)RF1100引脚图:
图10RF1100引脚图
各引脚功能同3.2.1节表1所示。
3.2.3RF1100与STC89C52RC的连接
遵循单片机I/O端口的一般使用原则,即P0端口用作地址/数据总线复用、P1端口用作标准的I/O端口,P2端口一般用作高位地址线,P3端口一般用作特殊功能引脚,在这里本设计采用P1端口与RF1100模块连接起来,电路设计图如下所示:
图11STC89C52RC连线图
在上图中,P1.5连接MOSI信号线,P1.6连接MISO信号线,P1.7连接SCLK信号线,P1.2连接Csn信号线,这四条线是SPI接口的四线:
Csn是片选线,当它置0时,片选有效,即单片机可以和RF1100通信;
MOSI是主机输出从机输入信号线,即该线是单片机向RF1100输出数据的引脚;
MISO是主机输入从机输出信号线,即该线是单片机接收RF1100反馈的引脚;
SCLK是时钟信号线,在这个信号的上升和下降沿,单片机对RF1100进行读和写命令。
3.3DS18B20温度采集模块硬件设计
3.3.1DS18B20说明[3]
DS18B20数字温度传感器是DALLAS公司生产的1-Wire即单总线器件,具有线路简单、体积小的特点。
因此用它来组成一个测温电路,线路简单,在一根通信线可以挂接很多这样的器件,十分方便。
图12DS18B20引脚图
表2DS18B20引脚说明
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源
3
VDD
可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地
DS18B20产品的主要特点:
●全数字温度转换及输出;
●先进的单总线数据通信;
●12位分辨率时的最大工作周期为750毫秒,精度可达土0.5℃;
●可选择寄生工作方式;
●检测温度范围为–55℃——+125℃;
●内置EEPROM,限温报警功能;
●64位光刻ROM,内置独一无二的产品序列号,方便多机挂接;
●只要求一个端口即可实现通信;
●数字温度计的分辨率用户可以从9位到12位选择;
DS18B20测温原理:
图13DS18B20的测温原理
图中低温度系数晶振的振荡频率受温度影响很小,用来向计数器1提供固定频率的脉冲信号。
高温度系数晶振的振荡频率受温度影响较大,随温度的变化而明显改变,其产生的信号作为计数器2的脉冲输入,用于控制闸门的关闭时间。
初态时,计数器1和温度寄存器被预置在与-55℃相对应的一个基值上。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,在计数器2控制的闸门时间到达之前,如果计数器1的预置值减到0,则温度寄存器的值将作加1运算,与此同时,用于补偿和修正测温过程中非线性的斜率累加器将输出一个与温度变化相对应的计数值,作为计数器1的新预置值,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环,直到计数器2控制的闸门时间到达亦即计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
3.3.2DS18B20与STC89C52的连接
DS18B20是1-wire单总线器件,即在一根数据线上实现数据的双向传输。
单片机可以控制多个DS18B20,只需将DS18B20的I/O口全部连接到一起就可以了。
在具体操作时通过读取每个DS18B20内部芯片的序列号来识别,所以DS18B20的单总线端口(I/O引脚)是漏极开路式的,以允许某一个DS18B20在不发送数据时能够释放总线,而让其他设备使用总线。
在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时VCC、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
本文采用第一种方法。
连接图如下所示:
图14DS18B20电路设计
上图中在DQ引脚上添加了网络标号DQ,与图9中同样标有网络标号DQ的P2.7引脚连接。
3.4LED显示模块硬件设计
本文采用4位8段数码管,它有12个引脚,分别是8个段选引脚,4个位选引脚,本文将数码管的8个段选位接在P0端口,4个位选接在P2端口上。
连接图如下图所示:
图15LED与STC89C52的连线图
上图中的网络标号与图9中的网络标号相对应。
4软件设计
4.1温度采集及处理程序设计
4.1.1温度采集程序
DS18B20温度采集程序原理是:
DS18B20感应并存储温度值,STC89C52通过读命令读取它暂存器中的温度值。
单片机操作单线器件DS18B20的流程图如下图所示:
图16温度采集模块流程图
通过单线总线的所有执行(处理)都从一个初始化序列开始。
初始化序列包括一个由总线控制器发出的复位脉冲和其后由从机发出的存在脉冲。
对DS18B20初始化的要求是:
总线控制器发出(TX)一个复位脉冲(一个最少保持480μs的低电平信号),然后释放总线,进入接收状态(RX)。
单线总线由5K上拉电阻拉到高电平,探测到I/O引脚上的上升沿后,DS1820等待15~60μs,然后发出