微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于CY7C68013A的无线多路温度采集系统设计与开发

基于CY7C68013A的无线多路温度采集系统设计与开发

时间:10-29 来源:互联网 点击:

0 引言

温度采集系统在现代工业和农业领域有着极其广泛的应用,在某些特殊环境下,采集的温度必须通过无线电波才能传输出来。传统的无线温度采集系统一般只能在终端进行显示,没有上位机数据采集存储功能。本文设计与开发了一套无线传输多路温度采集系统,该系统由温度采集端和温度接收端两部分组成。温度采集端由DS18B20温度传感器,AT89C52单片机和NRF24L01无线发射模块组成,八枚DS18B20温度传感器获取数字温度信号后,传输给主控AT89C52单片机,然后通过NRF24L01无线模块将数据通过2.5GHz的载波发送出来。接收端由CY7C68013A单片机、LCD12864显示模块、NRF24L01无线接收模块和上位机组成。NRF24L01无线接收模块将温度采集端发送过来的数据送至CY7C68013A单片机,然后通过USB2.0总线上传给上位机进行温度数据采集和存储,同时把温度数据送至LCD12864进行实时显示。

1 系统硬件设计

系统总体框架如图1所示。温度采集端的8枚温度传感器采集将温度数据送入主控芯片AT89C52,再通过NRF24L01无线模块将数据发送出来。温度接收端的NRF24L01无线模块将收到的温度数据送至CY7C68013A单片机,然后通过USB2.0总线提交给上位机。

a.jpg

(1)温度采集端。温度采集端由8枚DS18B20温度传感器,AT89C52单片机和NRF24L01无线发射模块组成。8枚DS18B20温度传感器共用一个总线与AT89C52单片机的P2.2口连接。每个DS18B20都具有唯一的64位二进制ROM代码作为识别序列号,利用唯一的序列号可以分别读出各个DS18B20的温度,这在多路采集中应用非常方便,大大减少了I/O口的

占用。利用DS18B20的此特征,本系统也可以非常方便的扩展为16路或32路温度采集。NRF24L01无线模块与单片机的P3.2口~P3.7口连接,负责将8路温度数据通过2.5GHz的载波发送出来。本文所采用的是基于挪威VLSI公司出品的无线数字传输芯片NRF24L01开发的无线收发模块,其丰富资料,硬件上无需附加其他元件,直接通过相应接口与单片I/O端口相连即可由单片机控制使用,非常方便。

b.jpg

(2)CY7C68013A系统模块。温度接收端的主控芯片为CY7C68013A,其为美国CYPRESS公司推出的功能强大的USB2.0接口芯片,内建增强型51单片机,是USB2.0设备常用的主控芯片。CY7C68013A的系统模块电路图如图3所示,其中LT1763CS8—3.3为3.3V稳压芯片,负责将USB接口的5V电压转换为CY7C68013A工作所需的3.3V电压。AT24C08为I2C总线的E2PROM存储芯片,其容量为8K,用来存储CY7C68013A的固件程序。

c.jpg

(3)LCD显示模块与无线接收模块。为了让温度接收端实时直观显示温度数据,本系统设置了LCD12864液晶模块,LCD12864工作在串行显示模式,由CY7C68013A通过PD0~PD2端口控制显示,PA0~PA7端口控制数据的传输。NRF24L01无线接收模块与CY7C68013A的PB0~PB5端口连接,负责接收温度采集端发来的无线温度数据。图4 LCD显示模块与无线接收模块电路图。

d.jpg

2.系统软件设计

系统软件的开发包含了温度采集端AT89C52和温度接收端CY7C68013A的固件程序开发、CY7C68013A的windows驱动程序开发以及USB上位机应用程序的开发。对于温度接收端的CY7C68013A的固件、驱动和上位机的程序的开发,我们可以利用CYPRESS公司提供的开发包,缩短开发周期,提高开发效率。

温度采集端的AT89C52的固件程序主要完成对8枚DS18B20温度采集的控制和对NRF24L01无线模块数据发送的控制。为此我们采用TC51语言编写,开发环境为Keil uVision 4.0。其固件程序的主要思路为:先初始化NRF24L01,然后进入大循环,从DS18B20读取温度数值(采用默认12位精度),将得到的温度数据(2字节16位)进行标记,将此数据表示的温度路数标记在高4位(1~8路的数据分别对应为0000~0111),然后将数据写入发射数组,再将温度发射出去,经过延时温度发送完毕。然后循环切换到下一路DS18B20的ROM地址,继续下一路温度的读取与发射。

CY7C68013A的固件程序主要完成对NRF24L01无线模块的通信控制,将其接收的无线数据传送给LCD12864进行实时显示和上传给USB上位机。对于CYTC68013A的固件程序的开发,我们采用了C51语言编写,开发环境为Keil uVision4.0,并利用了CYPRESS公司提供的固件程序框架,免去了编写一些通用性比较强、模式化的程序,提高了开发效率。在驱动程序开发方面,我们直接利用了CYPRESS公司的SDK中为CY7C68013A提供的通用设备驱动程序CYUSB.SYS,其不仅完全符合Windows Driver Foundation规范,而且还具有兼容USB1.1和USB2.0设备、支持即插即用和支持高带宽数据传输等优点。我们只对CYUSB.SYS通用驱动程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top