基于USB串口多点温度采集系统的设计.docx
- 文档编号:23523047
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:10
- 大小:492.63KB
基于USB串口多点温度采集系统的设计.docx
《基于USB串口多点温度采集系统的设计.docx》由会员分享,可在线阅读,更多相关《基于USB串口多点温度采集系统的设计.docx(10页珍藏版)》请在冰豆网上搜索。
基于USB串口多点温度采集系统的设计
基于USB串口多点温度采集系统的设计
1引言
在科研实验、大棚蔬菜种植、各种动物养殖及卫生医疗等场合经常要用到多点温度采集系统。
利用PC机将采集到的多点温度进行分析处理是非常方便的,目前PC机的数据接口最方便的就是通用串行总线USB。
USB总线具有连接方便,无需外接电源,即插即用,支持热插拔,动态加载驱动程序等特有优点,在主机和数据采集系统之间可以实现简单、快捷、可靠的连接和通讯。
在测试设备与计算机之间建立有效、灵活、低功耗、可靠的通讯方式。
实现测试仪器高速、便捷、网络化是当今仪器发展的一个重要方向。
所以,基于USB总线的多点温度采集系统是一种非常实用的温度采集方式。
2USB串口温度采集系统
一个实用的USB温度采集系统包括温度数据采集器、微控制器以及USB通信接口。
为了扩展其用途,还可以加上多路模拟开关和数字I/0端口。
设计选用南京信恒公司生产的USB通信接口器件CH372。
由于该器件功能强,体积小,价格低,应用方便,在一定层次上简化了温度采集系统的工作量,并降低了成本。
其主要设计原理是:
将不断变化的多个外界温度模拟量通过数字温度传感器阵列DSl8820转换而变成单片机能够处理的数字量,AT89S52对转换后的数据做相应的处理。
由USB接口电缆与PC主机组成数据处理平台,用来将实时采集到的温度数据高速回送到计算机之中,形成原始数据文件,为后续数据处理做准备。
图1为该温度采集系统原理框图。
3温度采集系统方案实现
USB温度采集系统从功能上划分为温度采集模块,USB接口模块和PC主机客户应用程序模块3部分。
(1)USB接口模块采用集成度高、功能较强USB专用接口器件CH372,简化程序设计工作量,使得整个温度采集系统结构简单,可靠性高。
(2)温度采集模块由数字温度传感器DSl8820阵列和微控制器组成。
DSl8820能直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
(3)PC主机客户应用程序模块用户应用程序负责接收和存储USB设备采集来的温度数据。
通过显示器把采集出的温度数据显示出来,并根据需要进行后续处理。
4系统硬件电路设计
多点温度采集系统设计一方面是探索自主开发技术,更重要的是使所研究的温度采集器具有更好的灵活性,以满足不同的应用需求。
系统硬件设计的关键是温度采集信号电路与单片机接口电路的设计。
4.1USB接口芯片与上位机的接口电路
在设计中采用USB接口器件CH372,它有两种型号:
CH372A为5V电源电压,CH372V为3.3V电源电压。
CH372是一个USB总线的通用设备接口器件。
在本地端,CH372具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机的系统总线上;在计算机系统中,CH372的配套软件提供了简洁易用的操作接口,与本地端的单片机通讯就如同读写文件。
CH372内置了USB通讯中的底层协议.具有省事的内置固件模式和灵活的外置固件模式。
在内置同件模式下,CH372自动处理默认端点O的所有事务,本地端单片机只要负责数据交换,所以单片机程序非常简洁。
在外置同件模式下,由外部单片机根据需要自行处理各种USB请求,从而可以实现符合各种USB类规范的设备。
图2为CH372连接原理图。
CH372控制器的主要特点如下:
①支持全速设备接口,兼容USB2.0规范,即插即用,外同元器件只需要晶体和电容。
②提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输。
③具有8位数据总线和读、写、片选控制线以及中断输出.可以方便的挂接到单片机等控制器的系统总线上。
④内置了USB通讯中的底层协议,具有省事的内置固件模式和灵活的外置固件模式。
在内置固件模式下,CH372自动处理默认端点0的所有事务,自动完成标准的USB枚举配置过程,本地端单片机只要负责数据交换,所以单片机程序非常简洁。
USB器件与上位机接口电路原理图如图3所示,P1是USB总线接口,USB总线包括一对5V电源线和一对数据信号线。
USB总线提供的电源电流最大可以达到500mA。
选电阻R,用于在电源断电后将电解电容C5中的电能及时释放掉,使VCC及时下降到0V,确保在下次通电时CH372能够可靠的上电复位。
电容C3用于CH372内部电源节点退耦,C3是容量为0.01μF的高频瓷片电容。
电容C4用于外部电源退耦,C4是容量为O.1μF的独石或高频瓷片电容。
晶体Xl、电容C2和C1用于CH372的时钟振荡电路。
4.2USB接口器件与单片机接口电路
CH372具有通用的被动并行接口,可以直接连接AT89S52。
在设计应用电路中,CH372可以通过8位被动并行接口的D7~DO、RD、WR、CS、A0直接挂接到单片机U2的系统总线上.如图3所示。
4.3USB串口温度采集系统总体原理
在设计中,采用数字温度传感器DSl8820实现温度采集。
DSl8820是DALLAS公司生产的基于串行接口的一线式数字温度传感器,它是将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。
DSl8820具有如下特性:
①采用单总线技术,与单片机通信只需要一根I/0线,在一根线上可挂接多个DSl8820。
②低压供电,电源范围3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生式供电)。
③每只DSl8820具有一个独立的、不可修改的64位序列号,根据序列号可以访问对应的器件。
④测温范围为一55℃~+125℃,在一10℃~85℃范围内误差为±0.5℃。
⑤可编程数据为9~12位,其转换12位的温度时间为750ms(最大)。
⑥DSl8820可将检测到的温度值直接转化成数字量,并通过串行通信的方式与主控制器进行数据通信。
由数字温度传感器DSl8820的特性可知,在它采集模拟温度信号并与单片机进行通信时,只需要一根I/0线与单片机AT89S52的P口连接,而在一根线上可以挂接多个数字温度传感器DSl8820,可以测出不同地点的温度数据,从而实现了温度的多点采集。
USB串口多点温度采集系统其中的一路原理图见图3所示。
5系统软件设计
USB温度采集系统的软件部分包括3个方面:
单片机中的固件程序,设备驱动程序,和主机上的应用程序。
整个软件系统的组成如图4所示。
5.1固件程序
在外置固件模式下,由外部单片机根据需要自行处理各种USB请求,从而可以实现符合各种USB类规范的设备。
CH372初始化程序流程图如图5所示。
5.2设备驱动程序
USB驱动程序可以采用WDM(WindowsDriverMode)模式设计。
WDM驱动程序采用灵活的分层驱动方法,在用户和物理设备之间存在着几个不同的驱动程序层次.且各层上的WDM驱动程序具有不同优先级。
利用WDM设计的驱动程序可根据用户的需要调整,灵活性好,但需要了解操作系统原理及相关硬件工作细节,而且工作量较大。
设计采用南京信恒公司的通用驱动程序,直接下载后安装即可。
5.3应用程序
应用程序的设计可根据用户的需求进行适当调整,温度采集系统提供了一个通用的上位机应用程序,将采集来的温度值直接显示到电脑屏幕上。
应用层接口是由CH372动态链接库DLL提供的面向功能应用的API,所有API在调用后都有操作状态返回,但不一定有应答数据。
CH372动态链接库提供的API包括:
设备管理API、数据传输API和中断处理API。
CH372与计算机连接的上位机总体程序流程图如图6所示。
5.4DSl8820温度采集子程序
系统程序设计的关键在于数字传感器DSl8820与单片机之间的“单总线”传输软件的编写和单片机与PC机之间USB串行通信软件的编写。
从机使用C语言编程,完成单片机对DSl8820的温度采集和单片机与USB接口通信。
单片机对DS18820的温度采集流程图如图7所示。
6结语
设计的基于USB串口的多点温度采集系统。
硬件电路十分简单,而且安装方便,即插即用,有很好的可靠性和稳定性,可广泛应用于生产车间、粮仓、各种大棚、大型商场及宾馆等场所的多点温度检测与控制。
创新点:
使用数字温度传感器DSl8820简化了测温器件与单片机的接口电路,从而使硬件电路体积小、连接方便,具有速度快、可靠性高、性价比好、应用性强等特点。
基于AT89C2051的数字温度计设计
单片机控制已成为今天电子设计追-求的目标之一,本文将这种控制技术应用于温度测量中。
AT89C2051是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含有2KB的反复擦写的只读程序存储器和128B的随机存取数据存储器(RAM)。
美国DALLAS半导体公司生产的DSl-8B20型单线智能温度传感器,属于新一代适配微处理器的智能传感器。
数字温度计是以DS18B20为检测元件,由AT89C2051作为主控制器的温度计,具有功耗低、结构简单、读数方便、测温范围广、测温准确的特点。
1电路构成及工作原理
1.1硬件设计
由AT89C2051构成的温度计主要由三部分组成:
DSl8B20温度传感器、单片机AT89C2051、由LED数码管构成的显示模块。
其系统原理框图如图1所示。
DSl8B20作为单片机AT89C2051的外部信号源,把所采集到的温度转换为数字信号,通过I/O接口传给2051,2051启动ROM内的控制程序驱动LED数码管,通过I/O接口和数据线(单片机和数码管的接口)把数据传送给数码管,将采集到的温度显示出来。
1.2总电路图
基于AT89C2051的温度测量系统电路图把温度转化成带符号的数字信号(以十六位补码形式,占两个字节),若采用带屏蔽的双绞电缆线,连线的长度可以达到150m,输出脚I/0直接与单片机的P3.4相连,R1为上拉电阻,传感器采用外部电源供电。
AT89C2051是整个系统的核心部分,内含2KB的FLASHROM,用户程序存放在这里。
显示器模块由四位一体的共阳数码管和四个9012组成。
系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照DSl8B20的通信协议编制。
系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。
产品的主要技术指标:
测量范围:
-55~+125℃,测量精度:
0.5℃;反应时间小于等于500ms。
2软件设计
2.1采集模块
该模块选用单线温度传感器DSl8B20完成温度采集。
单片机AT89C51对DSl8B20访问流程如下:
先对DSl8B20初始化,再进行ROM操作命令,最后才能对存储器操作。
DSl8B20每一步操作都要遵循严格的工作时序和通信协议。
根据DSl8B20的通讯协议,需经三个步骤:
每一次读写之前都要对DSl8B20进行复位,复位成功后发送一条ROM指令(指令代码CCH)并置标志位,根据标志位来判断是否初始化成功,最后发送RAM指令(指令代码44H)DSl8B20开始转换,再读出温度转换值(指令代码BEH),读取的温度值高位字节送27H单元,低位字节送26H单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
2.2主处理模块
主处理模块主要是将各个模块进行协调处理以实现数据交互。
主处理模块首先完成初始化工作,初始化后进入循环处理,在循环过程中获得采集模块的数据,并将数据进行处理,根据处理后的结果进行显示。
主处理的流程图如图3所示。
2.3显示模块
采用动态扫描的方法,其中P3.O,P3.1,P3.2,P3.3控制位选,P1控制段选。
由P3.O,P3.1,P3.2,P3.3向各位轮流输出扫描信号,使每一瞬间只有一个数码管被选通,然后由P1送入该位所要显示的字形码,点亮该位字形段显示的字形。
在P1送出的码段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各个数码管轮流点亮显示各自的字形。
3结语
该设计测温传感器采用改进型智能温度传感器DSl8B20,测温范围为-55~+125℃,最大分辨率可达0.0625℃,可以直接读出被测温度值,而且采用单线制与单片机相连,减少了外部的硬件电路,同时可直接将温度转化成串行数字信号供微机处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 USB 串口 多点 温度 采集 系统 设计