




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要 在仓库的货物的管理中,防潮、防霉、防腐、防爆是衡量仓库管理质量的重要指标,它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,我们需要实时知道温湿度的具体变化,因此首要问题就是加强仓库内温度和湿度的监测工作。人工测试方法费时费力、效率低、测试的温度湿度误差大随机性大,而且库区的面积越来越大,因此我们需要一种造价低廉、使用方便、测量准确、传输能力强和通信距离远的监控系统来有效地对仓库货物进行监管。本课题是在ARM控制系统的基础上,利用DS18B20温度传感器、HS1101湿度传感器、AY-nRF905和S3C44B0,通过SPI总线方式进行AY-nRF905与S3C44
2、B0的数据通信。同时,通过DS18B20温度传感器和HS1101湿度传感器在嵌入式系统的控制下来实现工业现场温度和湿度数据的采集,将该温度和湿度数据送到AY-nRF905无线收发模块予以发射出去。在远程进行接收并实现报警、显示温度和湿度以及被送到上位机。关键词:ARM DS18B20 HS1101 NRF905 监控系统推荐精选AbstractIn the management of warehouse goods ,moisture, mildew, corrosion, explosion are important indicators to measure the quality of
3、 warehouse-management. They directly affect the life and reliability of the stockpile. In order to ensure the daily work is carried out smoothly, we need to know the real-time and specific changes of temperature and humidity . So the first problem is to strengthen the monitoring of temperature and h
4、umidity inside the warehouse. Manual testing method is time-consuming and low efficiency, large randomness of the test temperature and humidity errors, and the area of the reservoir area is more and more large. Therefore, we need a low cost, easy to use, accurate measurement, transmission capability
5、 and the communication distance monitoring system to effectively regulate the storage of goods. This topic is about how to use the DS18B20 temperature sensor, the HS1101 humidity sensor, the AY-nRF905 and S3C44B0 and AY-nRF905 S3C44B0 data communication through SPI bus based on the ARM control syste
6、m. DS18B20 emperature sensor and HS1101 humidity sensor in the control of embedded systems down industrial site temperature and humidity data collection, the temperature and humidity data to the AY- nRF905 wireless transceiver module to be transmitted out. Receive and display the temperature and hum
7、idity as well as being sent to the host computer in the remoteKeywords : ARM DS18B20 HS1101 NRF905 Monitoring system推荐精选目 录摘要IAbstractII绪论11 温湿度采集系统的硬件设计21.1 S3C44B0X21.1.1 S3C44B0X硬件资源21.1.2 I/O功能概述31.2 温度传感器部分51.2.1 DS18B20简介51.2.2 DS18B20的主要特性及引脚功能61.2.3 DS18B20的内部结构及工作原理61.3 湿度传感器部分81.3.1 HS1101
8、的特点81.3.2 HS1101的参数特性91.4 无线传输技术101.4.1 AY-nRF905无线收发模块简介101.4.2 AY-nRF905的管脚排列111.4.3 AY-nRF905的工作模式121.4.4 AY-nRF905的配置过程142 温湿度采集系统软件设计172.1 DS18B20程序的设计172.1.1 DS18B20初始化程序设计172.1.2 DS18B20读程序设计172.1.3 DS18B20的写程序设计182.2 nRF905控制程序192.2.1 nRF905寄存器配置程序19推荐精选2.2.2 SPI写操作代码192.2.3 SPI读操作代码202.2.4
9、主机与nRF905通信212.2.5 使用nRF905发送数据213 调试部分243.1 使用CodeWarrior 建立工程并进行编译243.2 使用超级终端进行测试26结论28致谢29参考文献30推荐精选绪 论嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。 嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:工业控制、交通管理、信息家电、家庭智能管理系统、POS网络及电子商务、环境工程与自然等。本课题就是把嵌入式系统的优
10、势利用到仓库的温湿度监控系统中。 在仓库的货物的管理中,防潮、防霉、防腐、防爆是衡量仓库管理质量的重要指标,它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,我们需要实时知道温湿度的具体变化,因此首要问题就是加强仓库内温度和湿度的监测工作。传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行监测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低、测试的温度湿度误差大随机性大,而且库区的面积越来越大,因此我们需要一种造价低廉、使用方便、测量准确、传输能力强和通信距离远的监控系统来有效地对仓库货物进行监管。
11、 本课题的目的就是利用ARM控制器来实现工业现场温度、湿度的采集和无线传输,在远程可以显示温度和被送到上位机。推荐精选1 温湿度采集系统的硬件设计本系统以嵌入式系统为核心即S3C44B0X,组成一个集温度的采集、处理、无线传输、显示、远程报警为一体的温度采集系统。系统硬件主要由温度传感器DS18B20、湿度传感器HS1101、嵌入式系统S3C44B0X、AY-nRF905模块组成。其系统框图见下图:数码管显示 S3C44B0XDS18B20温度采集AY-NRF905HS1101湿度采集图1-1 系统框图该系统的工作流程是,通过DS18B20温度传感器在嵌入式系统的控制下采集温度数据,将该温度数
12、据送与AY-nRF905无线收发模块予以发射出去。这个过程是温度数据的发射。同时,该无线数据采集系统也具备接收并显示温度数据的功能。通过AY-nRF905无线收发模块接收数据,并送显示2。1.1 S3C44B0XS3C44B0微处理器片内集成ARM7TDMI核,采用0.25um CMOS工艺制造。ARM7TDMI是ARM公司最早为业界普遍认可且得到了广泛应用的处理器核,特别是在手机和PDA中,随着ARM技术的发展,它已是目前最低端的ARM核。ARM7TDMI是从最早实现了32位地址空间编程模式的ARM6核发展而来的,可稳定地在低于5V的电源电压下可靠的工作;增加了64位乘法指令、支持片上调试、
13、Thumb指令集和EmbededICE片上断点和观察点。此开发板在如上功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统1。1.1.1 S3C44B0X硬件资源(1) 在ARM7TDMI基础上增加8KB的Cache;(2) 外部扩充存储器控制器(FP/EDO/SDRAM控制,片选逻辑);推荐精选(3) LCD控制器(最大支持256色的DSTN),并带有1个LCD专用DMA通道;(4) 2个通用DMA通道/2个带外部请求引脚的DMA通道;(5) 2个带有握手协议的UART,1个SIO;(6) 1个多主的IIC总线控制器;(7) 1个IIS总线控制器;(8) 5个PWM定时器及一个
14、内部定时器;(9) 看门狗定时器;(10) 71个通用可编程I/O口,8个外部中断源;(11) 功耗控制模式:正常、低、休眠和停止;(12) 8路10位ADC;(13) 具有日历功能的RTC(实时时钟);(14) PLL时钟发生器。1.1.2 I/O功能概述三星开发板44B0拥有71个通用可编程多功能输入/输出引脚,可分为以下7类端口:(1) 两个9位输入/输出端口(PortE和PortF);(2) 两个8位输入/输出端口(PortD和PortG);(3) 一个16位输入/输出端口(PortC);(4) 一个10位输出端口(PortA);(5) 一个11位输出端口(PortB)。每个端口都可通
15、过软件设置来满足各种各样的系统设置和设计要求。每个端口的功能通常都要在主程序开始前被定义3。如果一个引脚的多功能没有使用,那么这个引脚将被设置为I/O端口。在引脚配置之前,需要对引脚的初始化状态进行设定,以避免一些问题的出现。I/O端口的各种功能主要是通过对端口各个寄存器进行设置而实现的,下面通过对各个寄存器的说明来分别介绍I/O端口所能实现的功能。(1) 端口配置寄存器(PCONAG)推荐精选在44B0中,大多数引脚都是多功能引脚。因此,应为每个引脚选择功能。端口控制寄存器(PCONn)决定了每一个引脚的功能。如果PG0PG7在掉电模式下被用作唤醒信号,则在中断模式下这些端口必须被设定。(2
16、) 端口数据寄存器(PDATAG)如果这些端口被设定为输出端口,则输出数据可被写入PDATn相应位;如果被设定为输入端口,则输入数据可被独到PDATn相应位。(3) 端口上拉寄存器(PUPCG)端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端。当相应的位被设为0时,引脚接上拉电阻;当相应的位被设为1时,引脚不接上拉电阻。(4) 特殊的上拉电阻控制寄存器(SPUCR)数据线D15:0引脚的上拉电阻能够通过SPUCR寄存器来控制。在STOP/SL-IDLE模式,数据线(D31:16或D15:0)处于高阻状态(Hi-zState)。由于I/O端口的特征,在STOP/SL-IDLE模式,数据在线拉
17、电阻可降低功耗。D31:16引脚的上拉电阻能够通过PUPC寄存器来控制;D15:0引脚的上拉电阻能够通过SPUCR寄存器来控制。在STOP模式,为使寄存器不出现错误功能(Mal-function),存储器控制信号通过在特殊的上拉电阻控制寄存器里设置HZSTOP区域来选择高阻状态(Hi-zState)或先前的状态。外部中断控制寄存器8个外部中断可用各种信号来请求。外部中断寄存器为外部中断设置了信号触发方法选择位,也设置了触发信号的极性选择位。外部中断请求信号触发的方法有以下几种:低电平触发、高电平触发、下降沿触发、上升沿触发及双沿触发。因为每个外部中断引脚都有一个数字滤波器,这使中断控制器能够识
18、别长于3个时钟周期的请求信号。外部中断挂起寄存器(EXTINTPND)外部中断请求(4/5/6/7)对于中断控制器来说是“或”的关系。EINT4、EIN5、EIN6、EIN7共享在中断控制器里同一个中断请求队列。如果外部中断请求的4位中的任何一位被启动,那么推荐精选EXTINTPNDn将会被设置为1。外部挂起条件清除以后,中断服务程序必须清除中断挂起状态。可通过EXTINTPND对应位写1来清除挂起条件。1.2 温度传感器部分图1-2 S3C44B0X与DS18B20的接口电路图 DS18B20的I/O口是数据输入输出端它属于漏极开路输出,外接上拉电阻后,常态下呈高电平,它与S3C44B0X的
19、GPF4相连,DS18B20的接地端(GND)和VDD分别与S3C44B0X的接地端和VDD相连接。1.2.1 DS18B20简介DS18B20 是美国半导体公司继之后最新推出的一种数字化单总线器件,属于新一代适配微处理器的改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线界面)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而
20、使用DS18B20可使系统结构更趋简单,可靠性更高。同时其“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入了全新的概念。DS18B20“一线总线”数字化温度传感器支持“一线总线”界面,测量温度范围为55125,在10 +85 范围内,精度为±0.5。现场温度直接以“一线总线”的数字方式传输,用符号扩展的16位数字量方式串行输出,大大提高了系统的抗干扰性。因此,数字化单总线器件DS18B20适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。它在测温精度、转换时间、传输距离、分辨率等方面较都有了很大的改进,给用户带来了更方便
21、和更令人满意的效果。可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中推荐精选10-11。1.2.2 DS18B20的主要特性及引脚功能(1) DS18B20的主要特性:全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达±0.5摄氏度。可选择寄生工作方式。检测温度范围为-55+125(-67+257)。内置EEPROM,限温报警功能。64位光刻ROM,内置产品序列号,方便多级挂接。多样封装形式,适应不同硬件系统。负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护DS18B20不会因为发热而烧毁。但此时芯片无法正常工作。(2)
22、DS18B20引脚功能:DS18B20采用两种封装结构分别为PR-35封装和SOS封装。I/O为数据输入输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。GND 电压地 DQ 单数据总线 VDD 电源电压 NC 空引脚。DS18B20的封装图如下图1-3所示。图1-3 DS18B20封装图1.2.3 DS18B20的内部结构及工作原理DS18B20的内部结构框图见下图1-4。它主要包括7个部分:1、寄生电源;2、温度传感器;3、64 位激光(loser)ROM 与单线界面;4、高速暂存器,即便筏式推荐精选RAM,用于存放中间数据;5、TH 触发寄存器和TL 触发寄存器,
23、分别用来存储用户设定的温度上下限值;6、存储和控制逻辑;7、8 位循环冗余校验码(CRC)发生器。 图1-4 DS18B20的内部结构框图DS18B20的测温原理如下图1-5所示:图1-5 DS18B20的内部测温原理图图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振的振荡频率随温度变化而明显改变,所产生的信号作为减法计数器2 的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将推荐精选-55所对应的基数分
24、别置入减法计数器1 和温度寄存器中,减法计数器1 和温度寄存器被预置在-55所对应的一个基数值。减法计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1 的预置值减到0 时温度寄存器的值将加1,减法计数器1 的预置将重新被装入,减法计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2 计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2-3 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20 的测温原理。1
25、.3 湿度传感器部分 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏元件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变而进行湿度测量的12-15。下面介绍HS1101湿度传感器及其应用。 图1-6 S3C44B0X与HS1101的接口电路图HS1101的I/O口只进行读操作,不进行写操作,也就是将采集到的湿度读出并通过S3C44B0X的GPF3口送入CPU中进行处理。1.3.1 HS1101的特点 图1-7 HS1101实物图不需要校准的完全互换性;高可靠性和长
26、期稳定性;快速响应时间;专利设计的固态聚合物结构;有顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。推荐精选1.3.2 HS1101的参数特性相对湿度在0%100%RH范围内;电容量由162pF变到200pF,其误差不大于2%RH;响应时间小于5s;温度系统为0.04pF/。可见其精度是较高的。其湿度电容响应曲线如图1-8: 20 40 60 80 100 相对湿度% 200 190 180 170 电容F 图1-8 HS1101湿度电容响应曲线电容拟和曲线公式: C(PF)=C55%RH*(1
27、.25*10 -7 *RH 3 -1.36*10 -5 *RH 2 +2.19*10 -3 *RH+9.0*10 -1 ) 频率影响:参数表中,所有数据均在 10KHz 下取得。 HS1100/1101 可以工作在 5KHz 到 100KHz 之间,频率对电容值的影响如下:CfKHz ( 1.027-1.01185*1n ( fKHz )极性:测量中,为得到更好的重复性,将管脚 2 接地。(管脚 2 在帽头远端) 推荐精选表1-1 HS1101常用参数参数符号参数值单位工作温度Ta-40100储存温度Tstg-40125供电电压Vs10Vac湿度范围RH0100%RH焊接时间=260t10S拟
28、和曲线公式如下:F mes(Hz) =F 55(Hz) (1.1038-1.9368*10 -3 *RH+3.0114*10 -6 *RH 2 -3.4403*10 -8 *RH 3 ) 1.4 AY-NRF905无线收发模块部分随着我国国际地位和科研水平的不断提高,无需导线连接的无线数据系统对用户有着极大的吸引力。无线数据系统采用了能在局域范围内无线传输信息的数字网络,在不改动原有设施的前提下,将有效的数据信息准确、快速和安全地传送给与会者。因此,无线数据系统设备的设计得到了国内外相关领域厂商的广泛关注,未来,无线数据系统很有可能代替现有的有线数据系统,成为今后数据传输的主流。NRF905与
29、S3C44B0X的接口电路图如图1-9所示: 图1-9 NRF905与S3C44B0X的接口电路图1.4.1 AY-nRF905无线收发模块简介nRF905是一种单片射频收发器,工作电压为1.93.6V,工作于推荐精选433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurst工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI界面与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接
30、收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。1.4.2 AY-nRF905的管脚排列AY-nRF905的管脚排列如下图1-10所示:图1-10 nRF905的管脚排列(1) VCC脚接电压范围为3.33.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。(2) 除电源VCC和接地端,其余脚都可以直接和普通的5V单片机I/O口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。(3) 硬件上面没有SPI的单片机也可以控制本模块,用普通单片机I/O口模拟SPI不需要单片机SPI模块介入,只需添加代码模拟SPI时序即可。(4) 13脚、14脚
31、为接地脚,需要和母板得逻辑地连接起来。(5) 排列间距为100mil,标准DIP插针。(6) 与51系列单片机P0口连接时候,需要外加10K的上拉电阻,与其余口连接不需要。具体管脚说明见下表:表1-2 nRF905管脚说明管脚名称管教说明说明1VCC电源电源+3.33.6V DC2TX_EN数字输入TX_EN=1 TX 模式 TX_EN=0 RX 模式推荐精选3TRX_CE数字输入使能芯片发射或接收4PWR_UP数字输入芯片上电5uCLK时钟输出本模块该脚废弃不用,向后兼容6CD数字输出载波检测7AM数字输出地址匹配8DR数字输出接收或发射数据完成9MISOSPI 界面SPI 输出10MOSI
32、SPI 界面SPI 输入11SCKSPI 时钟SPI 时钟12CSNSPI 使能SPI 使能13GND地接地14GND地接地1.4.3 AY-nRF905的工作模式AY-nRF905一共有四种工作模式,其中有两种活动RX/TX模式和两种节电模式。分别为活动模式:ShockBurst RX和ShockBurst TX,节电模式:掉电和SPI编程、Standby和SPI模式。其工作模式由TRX_CE、TX_EN、PWR_UP的设置来设定。具体见下表:表1-3 nRF905的工作模式PWR_UPTRX_CETX_EN工作模式0XX掉电和SPI编程10XStandby和SPI编程110ShockBur
33、st RX111ShockBurst TX(1) ShockBurst模式ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能、低的系统费用(低速微处理器也能进行高速射频发送)、数据在空停留时间短,抗干扰性高。ShockBurstTM技术同时也减小了整个系统的平均工作电流。在ShockBurstTM收发模式下,RF905自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时
34、,自动加上字头和CRC校验码,当发送过程完成后,DR引脚通知微处理器数据发送完毕。 ShockBurstTX发送流程典型的RF905发送流程分以下几步:推荐精选A. 当微控制器有数据要发送时,通过SPI界面,按时序把接收机的地址和要发送的数据送传给RF905,SPI界面的速率在通信协议和器件配置时确定;B. 微控制器置高TRX_CE和TX_EN,激发RF905的ShockBurstTM发送模式;C. RF905的ShockBurstTM发送:(1) 射频寄存器自动开启;(2) 数据打包(加字头和CRC校验码);(3) 发送数据包;(4) 当数据发送完成时,数据准备好引脚被置高;D. AUTO_
35、RETRAN被置高,RF905不断重发,直到TRX_CE被置低;E. 当TRX_CE被置低,RF905发送过程完成,自动进入空闲模式。注意:ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,RF905才能接受下一个发送数据包。 ShockBurstRX接受流程接收流程分以下几步:A. 当TRX_CE为高、TX_EN为低时,RF905进入ShockBurstTM接收模式;B. 650us后,RF905不断监测,等待接收数据;C. 当RF905检测到同一频段的载波时,载波检测引脚被置高;D.
36、当接收到一个相匹配的地址,AM引脚被置高;E. 当一个正确的数据包接收完毕,RF905自动移去字头、地址和CRC校验位,然后把DR引脚置高;F. 微控制器把TRX_CE置低,RF905进入空闲模式;G. 微控制器通过SPI口,以一定的速率把数据移到微控制器内;H. 当所有的数据接收完毕,RF905把DR引脚和AM引脚置低;I. nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。推荐精选注意:当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,RF905立即把其工作模式改变,数据包则丢失。当微处理器接到AM引脚的信号之后,其就知
37、道RF905正在接收数据包,其可以决定是让RF905继续接收该数据包还是进入另一个工作模式。(2) 节能模式RF905的节能模式包括关机模式和节能模式。在关机模式,RF905的工作电流最小,一般为2.5uA。进入关机模式后,RF905保持配置字中的内容,但不会接收或发送任何数据。空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。在空闲模式下,RF905内部的部分晶体振荡器处于工作状态。1.4.4 AY-nRF905的配置过程所有配置字都是通过SPI界面送给RF905。SPI界面的工作方式可通过SPI指令进行设置。当RF905处于空闲模式或关机模式时,SPI界面可以
38、保持在工作状态。(1) SPI界面寄存器配置SPI界面由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。SPI界面由5个内部寄存器组成执行寄存器的回读模式来确认寄存器的内容。其SPI界面和内部结构图如下图1-11所示:推荐精选图1-11 SPI界面和5个内部寄存器状态寄存器Status-Regist
39、er寄存器包含数据就绪DR和地址匹配AM状态;RF配置寄存器RF-Configuration Register寄存器包含收发器的频率,输出功率等配置信息;发送地址TX-Address寄存器包含目标器件地址,字节长度由配置寄存器设置;发送有效数据TX-Payload寄存器包含发送的有效ShockBurst数据包,数据字节长度由配置寄存器设置;接收有效数据TX-Payload寄存器包含接收到的有效ShockBurst数据包,数据字节长度由配置寄存器设置,在寄存器中的有效数据由数据准备就绪DR指示;(2) SPI指令设置当CSN为低时,SPI界面开始等待一条指令。任何一条新指令均由CSN的由高到底的
40、转换开始。用于SPI界面的有用命令见下表:表1-4 SPI串行界面占领设置指令名称指令格式操作W_CONFIG(WC)0000AAAA写配置寄存器AAAA 指出写操作的开始字节 字节数量取决于AAAA指出的开始地址推荐精选_CONFIG (RC)0001AAAA读配置寄存器AAAA 指出读操作的开始字节 字节数量取决于AAAA指出的开始地址W_TX_PAYLOA D (WTP) 00100000写TX 有效数据1-32字节 写操作全部从字节0开始R_TX_PAYLOA D (RTP)00100001读TX 有效数据1-32字节 读操作全部从字节0开始W_TX_ADDRES S (WTA)001
41、00010写TX 地址1-4 字节写操作全部从字节0开始R_TX_ADDRES S (RTA)00100011读TX 地址1-4 字节读操作全部从字节0开始R_RX_PAYLOA D (RRP)00100100读RX 有效数据1-32字节 读操作全部从字节0开始CHANNEL_CONFIG (CC)1000pphccccccccc快速设置配置寄存器中CH_NO HFREQ_PLL和PA_PWR的专用命令CH_NO=cccccccc HFREQ_PLL=h PA_PWR=pp2 温湿度采集系统软件设计2.1 DS18B20 程序的设计2.1.1 DS18B20 初始化程序设计主机总线t0时刻发送
42、一复位脉冲(最短为480us的低电平信号)接着在 tl 时刻释放总线并进入接收状态DSl8B20 在检测到总线的上升沿之后 等待 15-60us接着 DS18B20 在 t2 时刻发出存在脉冲(低电平持续60-240us)。程序:Init_DS18B20(void)/初始化ds1820 DQ = 1; /DQ复位 DQ = 0; /将DQ拉低,发出复位脉冲(要求480us960us) Delay(70); /精确延时566us DQ = 1; /拉高总线(要求1660us) Delay(5); /延时46us presence = DQ; /如果=0则初始化成功 =1则初始化失败 Delay(
43、25);推荐精选 DQ = 1; return(presence); /返回信号,0=presence,1= no presence2.1.2 DS18B20 读程序设计主机总线t0时刻从高拉至低电平时总线只须保持低电平15us之后也就是说t2时刻前主机必须完成读位并在t2后的60us一120us内释放总线读位子程序,程序:ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; / 给脉冲信号 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0
44、x80; delay(4);return(dat);2.1.3 DS18B20的写程序设计当主机总线t0时刻从高拉至低电平时就产生写时间隙从t0时刻开始15us之内应将所需写的位送到总线DSl8B20在t1为15-60us间对总线采样 若低电平写入的位是0见若高电平写入的位是连续写2位间的间隙应大于1us。程序:void write (uchar dat) /写一个字节到 DS18B20 推荐精选 int i; char j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 写 1
45、 部分 DS=0; i+;i+; DS=1; i=8; while(i>0) i-; else DS=0; /写 0 部分 i=8;while(i>0)i-; DS=1; i+;i+; 2.2 nRF905控制程序2.2.1 nRF905寄存器配置程序在前面,已经介绍了nRF905的寄存器设置,这里给出程序设置,完成nRF905的寄存器配置。typedef struct RFConfig uchar n; uchar buf10; 推荐精选RFConfig; code RFConfig RxTxConf = 10, 0x4c, 0x0c, 0x44, 0x20, 0x20, 0xc
46、c, 0xcc, 0xcc,0xcc, 0x58;2.2.2 SPI写操作代码SPI写操作的步骤如下:步骤一:MOSI 线准备好需要发送的数据位步骤二:SCK 置高,器件读取 MOSI 在线的数据 步骤三:SCK 置低,准备发送数据的下一位 以上步骤循环执行 8 次,通过 SPI 向器件发送数据完成。void SpiWrite(uchar byte) uchar i; DATA_BUF=byte; / 将需要发送的数据写入缓存 for (i=0;i<8;i+) / 循环8 次发送一个字节的数据 if (flag) / flag = DATA_BUF7; MOSI=1; else MOSI
47、=0; SCK=1; / SCK 高电平 DATA_BUF=DATA_BUF<<1; / 左移一位,为下一位的发送做准备 SCK=0; / SCK 低电平 2.2.3 SPI读操作代码SPI读操作如下:步骤一:MISO 线准备好需要发送的数据位 推荐精选步骤二:SCK 置高,主机读取 MISO 在线的数据 步骤三:SCK 置低,准备接收数据的下一位 以上步骤循环执行 8 次,通过 SPI 从器件上读数据完成。uchar SpiRead(void) uchar i; for (i=0;i<8;i+) /循环 8 次发送一个字节的数据 DATA_BUF=DATA_BUF<&
48、lt;1; /左移一位,准备接收下一位数据 SCK=1; / SCK 高电平 if (MISO) flag1=1; / flag1 = DATA_BUF0; else flag1=0; SCK=0; / SCK低电平 return DATA_BUF; / DATA_BUF 为接收到的完整数据 2.2.4 主机与nRF905通信主机通过SPI界面向nRF905配置寄存器写入信息,步骤如下:步骤一:CSN 置低电平,SPI 界面开始等待第一条指令 步骤二:调用 SpiWrite 函数,向器件发送 WC 信号,准备写入配置信息 步骤三:反复调用 SpiWrite 函数,向器件配置寄存器写入配置信息
49、步骤四:CSN 置高电平,结束 SPI 通讯。 nRF905 配置完成。void Config905(void) uchar i; CSN=0; / CSN片选信号,SPI使能 推荐精选 SpiWrite(WC); / 向905芯片写配置命令 for (i=0;i<RxTxConf.n;i+) / 循环写入配置信息 SpiWrite(RxTxConf.bufi); /RxTxConf 保存预先设置好的配置信息 CSN=1; / 结束SPI 数据传输2.2.5 使用nRF905发送数据使用nRF905发送数据,首先要将器件设置为发送模式,方法如下:void SetTxMode(void)
50、TX_EN=1; TRX_CE=0; Delay(1); / delay for mode change(>=650us) 然后经过如下步骤,完成发送:步骤一:通过 SpiWrite 函数发送 WTP 命令,准备写入 TX 有效数据 步骤二:循环调用 SpiWrite 向 TX-Payload 寄存器写入 TX 有效数据(中间夹有 CSN 电平变化) 步骤三:延时 步骤四:通过 SpiWrite 函数发送 WTA 命令,准备写入 TX 地址 步骤五:循环调用 SpiWrite 向 TX-Address 寄存器写入 TX 地址 步骤六:TRX_CE=1; 开始发送数据 void TxPac
51、ket(void) uchar i; CSN=0; SpiWrite(WTP); / Write payload command for (i=0;i<32;i+) 推荐精选 SpiWrite(TxBufi); / 写入 32 直接发送数据 CSN=1; / 关闭SPI,保存写入的数据 Delay(1); CSN=0; / SPI使能,准备写入地址信息 SpiWrite(WTA); / 写数据至地址寄存器 for (i=0;i<4;i+) / 写入4 字节地址 SpiWrite(RxTxConf.bufi+5); CSN=1; / 关闭SPI TRX_CE=1; / 进入发送模式,启动射频发送 Delay(1); / 进入 ShockBurst 发送模式后,芯片保证数据发送完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025康复医学治疗技术副高级职称模拟试题附完整答案详解【典优】
- 2023年度医师定期考核练习题【预热题】附答案详解
- 特殊人群疫苗接种建议
- 中暑患者降温护理
- 2025年银行岗位考前冲刺测试卷及完整答案详解【网校专用】
- 房产收购合同(标准版)
- 房地产 -居住报告豪华住宅开发的全球视角 The Residence Report The global perspective on luxury residential development 2025 -2026
- 作文大赛获奖感言(31篇)
- 中科院心理咨询师理论知识考试题库及答案(1062题)
- 养生馆渠道合作计划书2
- 湿地巡护员培训课件
- 一氧化碳试卷及答案
- 高考语文文学类阅读复习备考:革命题材小说阅读题 专项练习 (含答案解析)
- 西湖十景-美术优质课课件
- 海绵城市总结课件
- 光伏站电力监控系统介绍参考课件
- 公开课第一课素描基础入门课件
- 果蔬加工工艺学:果蔬汁
- 石景山区语文一模试卷讲评分析
- 八年级上学期语文周周练
- 《青光眼手术新进展》ppt课件
评论
0/150
提交评论