1 引言
在科研实验、大棚蔬菜种植、各种动物养殖及卫生医疗等场合经常要用到多点温度采集系统。利用PC机将采集到的多点温度进行分析处理是非常方便的,目前PC机的数据接口最方便的就是通用串行总线USB。USB总线具有连接方便,无需外接电源,即插即用,支持热插拔,动态加载驱动程序等特有优点,在主机和数据采集系统之间可以实现简单、快捷、可靠的连接和通讯。在测试设备与计算机之间建立有效、灵活、低功耗、可靠的通讯方式。实现测试仪器高速、便捷、网络化是当今仪器发展的一个重要方向。所以,基于USB总线的多点温度采集系统是一种非常实用的温度采集方式。
2 USB串口温度采集系统
一个实用的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.1 USB接口芯片与上位机的接口电路
在设计中采用USB接口器件CH372,它有两种型号:CH372A为5 V电源电压,CH372V为3.3 V电源电压。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总线包括一对5 V电源线和一对数据信号线。USB总线提供的电源电流最大可以达到500 mA。选电阻R,用于在电源断电后将电解电容C5中的电能及时释放掉,使VCC及时下降到0 V,确保在下次通电时CH372能够可靠的上电复位。电容C3用于CH372内部电源节点退耦,C3是容量为0.01μ F的高频瓷片电容。电容C4用于外部电源退耦,C4是容量为O.1μF的独石或高频瓷片电容。晶体Xl、电容C2和C1用于CH372的时钟振荡电路。
4.2 USB接口器件与单片机接口电路
CH372具有通用的被动并行接口,可以直接连接AT89S52。在设计应用电路中,CH372可以通过8位被动并行接口的D7~DO、RD、WR、CS、A0直接挂接到单片机U2的系统总线上.如图3所示。
4.3 USB串口温度采集系统总体原理
在设计中,采用数字温度传感器DSl8820实现温度采集。DSl8820是DALLAS公司生产的基于串行接口的一线式数字温度传感器,它是将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。DSl8820具有如下特性:
①采用单总线技术,与单片机通信只需要一根I/0线,在一根线上可挂接多个DSl8820。
②低压供电,电源范围3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生式供电)。
③每只DSl8820具有一个独立的、不可修改的64位序列号,根据序列号可以访问对应的器件。
④测温范围为一55℃~+125℃,在一10℃~85℃范围内误差为±0.5℃。
⑤可编程数据为9~12位,其转换12位的温度时间为750 ms(最大)。
⑥DSl8820可将检测到的温度值直接转化成数字量,并通过串行通信的方式与主控制器进行数据通信。
由数字温度传感器DSl8820的特性可知,在它采集模拟温度信号并与单片机进行通信时,只需要一根I/0线与单片机AT89S52的P口连接,而在一根线上可以挂接多个数字温度传感器DSl8820,可以测出不同地点的温度数据,从而实现了温度的多点采集。USB串口多点温度采集系统其中的一路原理图见图3所示。
5 系统软件设计
USB温度采集系统的软件部分包括3个方面:单片机中的固件程序,设备驱动程序,和主机上的应用程序。整个软件系统的组成如图4所示。
5.1 固件程序
在外置固件模式下,由外部单片机根据需要自行处理各种USB请求,从而可以实现符合各种USB类规范的设备。CH372初始化程序流程图如图5所示。
5.2 设备驱动程序
USB驱动程序可以采用WDM(Windows Driver Mode)模式设计。WDM驱动程序采用灵活的分层驱动方法,在用户和物理设备之间存在着几个不同的驱动程序层次.且各层上的WDM驱动程序具有不同优先级。利用WDM设计的驱动程序可根据用户的需要调整,灵活性好,但需要了解操作系统原理及相关硬件工作细节,而且工作量较大。设计采用南京信恒公司的通用驱动程序,直接下载后安装即可。
5.3 应用程序
应用程序的设计可根据用户的需求进行适当调整,温度采集系统提供了一个通用的上位机应用程序,将采集来的温度值直接显示到电脑屏幕上。应用层接口是由CH372动态链接库DLL提供的面向功能应用的API,所有API在调用后都有操作状态返回,但不一定有应答数据。CH372动态链接库提供的API包括:设备管理API、数据传输API和中断处理API。CH372与计算机连接的上位机总体程序流程图如图6所示。
5.4 DSl8820温度采集子程序
系统程序设计的关键在于数字传感器DSl8820与单片机之间的“单总线”传输软件的编写和单片机与PC机之间USB串行通信软件的编写。从机使用C语言编程,完成单片机对DSl8820的温度采集和单片机与USB接口通信。单片机对DS18820的温度采集流程图如图7所示。
6 结语
设计的基于USB串口的多点温度采集系统。硬件电路十分简单,而且安装方便,即插即用,有很好的可靠性和稳定性,可广泛应用于生产车间、粮仓、各种大棚、大型商场及宾馆等场所的多点温度检测与控制。创新点:使用数字温度传感器DSl8820简化了测温器件与单片机的接口电路,从而使硬件电路体积小、连接方便,具有速度快、可靠性高、性价比好、应用性强等特点。