基于usb接口设计的百科全书

分享到:
点击量: 212627

  在科研实验、大棚蔬菜种植、各种动物养殖及卫生医疗等场合经常要用到多点温度采集系统。利用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(*大)。

  20简化了测温器件与单片机的接口电路,从而使硬件电路体积小、连接方便,具有速度快、可靠性高、性价比好、应用性强等特点。

  ⑥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串口的多点温度采集系统。硬件电路十分简单,而且安装方便,即插即用,有很好的可靠性和稳定性,可广泛应用于生产车间、粮仓、各种大棚、大型商场及宾馆等场所的多点温度检测与控制。**点:使用数字温度传感器DSl88