USB系统结构

2024-05-15

USB系统结构(精选4篇)

USB系统结构 篇1

引言

随着计算机的日益普及与发展,早期的纸制的健康档案已被储存在计算机中的电子档案所代替,原来的人工测量的方法已不能适应现代数据采集的需要。为了实现数据采集的完全自动化,系统采用了超声波测量身高,然后通过USB接口将数据传到计算机中进行处理的办法。这样既提高了工作效率,也增加了使用的灵活性。

1 测量原理

系统采用超声波进行身高测量方法。所谓超声波就是高于听觉频率阈值的机械波,它具有直线传播特性[1]。利用超声波的这种特性,采用时间差值检测法(常称渡越时间检测法)进行距离的测量。其工作原理是:超声波发射探头向介质发射超声波,声波遇到目标后有反射回波作用到接收探头,测量发射时刻与接收时刻的时间差t,然后根据以下公式计算距离s:

s=ct/2 (1)

其中c为超声波在介质中的传播速度(m/s)。

由于超声波在空气中传播速度与温度有关。如果要得到较高精度的测量结果,必须考虑温度补偿的问题。空气中的声速c与温度T(单位:℃)的关系可以近似表示为:

c≈331.45+0.607T (2)

身高h的测量方法是将超声波传感器固定在被测量人的正上方的支架上,向人的头顶部发射脉冲,然后利用超声波测距原理计算出s的值,从而有身高:

h=H-s (3)

其中H为支架的高度,s为超声波传感器到头部的距离。

2 硬件电路设计

硬件系统主要由AT89S52单片机、升压电路、功率放大电路、发射探头、接收探头、接收信号放大电路、比较电路以及USB通信接口电路等组成。AT89S52单片机为整个系统的主要部件,用来产生165khz发射信号以及控制USB接口芯片PDIUSBD12工作,同时也用来接收超声波回波信号并进行计算,AT89S52的外部时钟源采用24MHz晶振。

系统工作过程:单片机产生165khz信号经三极管放大后,驱动超声波发射探头;每次发射10个脉冲,当第一个脉冲发射前,启动定时器开始计时;回波信号经放大电路、比较电路送入单片机,单片机停止计时,利用式(1)、(3)进行身高计算,然后将结果通过USB接口送到计算机中进行进一步处理。系统原理框图如图1所示。

2.1 超声波发射电路

发射电路直接采用三极管驱动,将AT89S52单片机产生的10个脉冲信号送入三极管Q1基极,经Q1、Q2功率放大,最后驱动发射超声波探头工作。发射电路如图2所示。三极管的电源电压由通用的升压芯片mc34063升压得到。

2.2 超声波接收电路

超声波在空气中传播,遇到目标物体反射的回波信号加到超声波接收探头上,由于压电效应产生微弱电压信号,输出的这种回波信号是mV级甚至更低的电压信号,必须要经过放大电路的信号放大才能进行进一步处理。运算放大器选用高速、高带宽的TL082,前级放大80倍,后级放大30倍,然后将放大后的信号送入LM393比较器进行比较,最后将输出的方波信号送入AT89S52单片机INT0引脚触发中断。接收电路如图3所示。

2.3 PDIUSBD12外围电路设计

PDIUSBD12的外围电路以及与单片机的连接如图4所示。PDIUSBD12的8位并行数据线接入AT89S52的P0口,单片机通过P0口向PDIUSBD12发送命令和交换数据。PDIUSBD12的A0脚接p1.1,当 P1.1=1时, 单片机给 PDIUSBD12 发命令,当P1.1=0 时,给 PDIUSB12 写数据或从PDIUSBD12的Buffer中读数据。INT_N是USB中断请求引脚,与单片机的外部中断INT1引脚相连接,它是用来向单片机发出 USB中断请求。

3 软件设计

3.1 固件程序的开发

固件设计主要完成设备枚举、主机与设备的数据交换、设备端的数据处理和控制等工作。此系统的固件程序由三部分组成:(1)初始化单片机和所有的外围电路(包括PDIUSBD12);(2)主循环部分:产生超声波以及计算距离等;(3)中断服务程序,其中INT0用来响应超声波的回波信号,INT1用来处理单片机与PDIUSBD12之间的数据交换。超声波的产生需要精确延时,所以用汇编代码实现,将其嵌入在C程序中。

根据USB协议,任何传输都是由主机发起的,要交换数据,主机首先发令牌包给USB设备(这里是PDIUSBD12),PDIUSBD12接到令牌包后就给单片机发中断。单片机进入中断服务程序,首先读PDIUSBD12的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。INT1中断服务程序如下[5]:

3.2 USB设备驱动及应用程序设计

驱动开发通常采用Windows DDK来实现,它是一个比较传统的方法,开发难度较大[4]。也可以用第三方软件厂商提供的开发工具开发,像Compuware的DriverWorks,利用它们开发相对要容易些。Philips公司也为我们提供了PDIUSBD12的驱动程序,可以直接从Philips公司网站下载。

PC端应用软件的开发可以使用ZLG公司提供的EasyD12.dll动态链接库来完成。EasyD12库一共有3个文件,包括EasyD12.lib、EasyD12.dll和EasyD12.h,支持多种软件开发工具,如VB、VC++、C++ builder等。

库函数提供了4个函数给用户调用,下面仅讨论其中两个函数。

DWORD _stdcall ReadPort2(BYTE *pData,size_t Len);//读端点2

DWORD _stdcall WritePort2(BYTE *pData,size_t Len);//写端点2

其中pData为指向接收或发送数据缓冲区的指针;Len为接收或发送数据的长度,如:

unsigned char databuff[64];

ReadPort2(databuff,64);

4 实验结果及分析

为了验证系统的测量精度 ,在实验室对1m以内的物体进行了实地测量。测量的距离是超声波传感器与物体之间的距离并且用表面平整的木板代替人,这样能够更好的反应测量误差。测量温度为11℃,测量数据如表1所示(单位:mm) ,表1中实际距离是用钢卷尺测量得到的。从表中可以看出绝对误差在±2.5mm范围内。

通过实验比较发现采用200KHz超声波传感器,系统测量精度较40KHz传感器构成的系统有了大幅度的提高,同时系统的盲区也大幅度减小,几乎接近于零。从表中的数据可以看出,系统存在一定的误差,主要原因是从定时器定时到发射超声波之间以及外部中断对接收信号的响应均存在随机误差。

5 结束语

本设计以AT89S52单片机为控制器,利用超声波进行测距,通过USB接口传递数据到计算机中,实现了测量的自动化,它具有快速、精确以及移动灵活等特点。身高测量系统已在学生体能测试中得到了应用。

参考文献

[1]马大猷.现代声学理论基础.北京:科学出版社,2004.

[2]刘成安,孙涛.智能超声波测距仪的研究.微计算机信息,2007(23):101-102.

[3]卜英勇,王纪婵,等.基于单片机的高精度超声波测距系统.仪表技术与传感器,2007(3):66-68.

[4]徐华中,冯波.基于PDIUSBD12芯片的USB模块设计.武汉理工大学学报,2008(4):225-227.

[5]程斓,杨子杰.基于PDIUSBD12的USB设备固件程序开发.计算机应用,2004(7):150-152.

[6]薛园园.USB应用开发大全.人民邮电出版社,2007.8.

[7]李肇庆,廖峰,刘建存.USB接口技术.国防工业出版社,2004.6.

USB系统结构 篇2

该系统主要由心音信号采集电路、A/D转换、USB通信和上位机显示部分组成。实验结果表明该系统可以高效、实时地显示采集到的心音信号, 并且可以达到视听合一的目的, 得到的信号信噪比高, 利于后续的研究。

1 心音信号采集电路

利用自制的心音传感器采集到的信号为毫伏级信号, 经过前置放大电路进行初步放大, 对放大后的信号进行低通滤波, 然后经过中间级放大, 通过耳机输出, 因为此时的信号仅有几百毫伏, 为了便于后期处理, 需经过后级可调放大, 得到伏级信号可经过A/D等后期处理。

1.1 前置放大电路设计

由于心音信号十分微弱, 而前置放大电路又是微弱信号检测的第一级, 担负着将微弱信号放大的任务, 应该尽量减少测量过程中引入的观测噪声。而前置放大器则是引入噪声的主要部件之一, 所以要求前置放大器应该具有很好的低噪声性能[4]。又因为处理的是声音信号, 所以选取了具有超低失真低噪声的OPA2134运算放大器, 同时还具有高输入阻抗、高共模抑制比、低漂移等特点。前置放大电路如图2所示。

J2为传感器输入接口, 作为前置放大, 为了抑制噪声, 放大倍数不应该太大, 此电路的放大倍数为1+R2/R1。电容C1的作用是平滑滤波, 降低高频增益。

1.2 低通滤波器的设计

从前级放大电路得到的信号十分微弱, 并且掺杂着听诊头与衣服或者皮肤摩擦的噪音以及一些高频的机械噪声, 所以需要通过低通滤波器来滤除高频成分。

低通滤波器电路如图3所示。设计中采用二阶压控型低通有源滤波器, 相比一阶滤波器, 可以使输出电压在高频段以更快的速率下降, 以改善滤波效果。为了使电路稳定工作, 滤波器的增益应该小于3[5]。

电路增益, 截止频率, 其中R=R6=R7, C=C6=C7, fo≥800Hz。

1.3 中间级放大电路设计

图4为中间级放大电路, 由于需要驱动耳机输出, 采用了适合应用在高品质和专业音响设备、仪器、控制电路及电话通道中的放大器NE5532AP。考虑听觉的舒适度, 这一级的放大倍数也不能过大。为了得到更好的效果最好采用双电源供电, R8可以调节耳机音量。

1.4 后级放大电路设计

由于从中间级得到的信号只有几百毫伏, 不便于后期的处理, 所以在这里又加了一级放大, 可以得~-5 V到+5 V之间的信号, 便于A/D采样。

2 A/D转换

本系统采用STC12C5A60S2单片机作为主控芯片。该单片机自带8路10位高速A/D转换器, 速度可达250k Hz (25万次/s) 。STC12C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10 bit DAC、转换结果寄存器 (ADC_RES和ADC_RESL) 以及ADC_CONTR构成。

STC12C5A60S2系列单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器构成, 通过逐次比较逻辑, 从最高位 (MSB) 开始, 顺序地对每一输入电压与内置D/A转换器输出进行比较。经过多次比较, 使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型A/D转换器具有速度高、功耗低等优点。

3 USB通信

本文采用南京沁恒公司的USB芯片CH372, 该芯片可以实现1 MB/s的传输速度, 全速USB设备接口, 兼容USB V2.0, 即插即用, 外围元器件只需要晶体和电容。提供一对主端点和一对辅助端点, 支持控制传输、批量传输、中断传输, 具有简便的内置固件模式和灵活的外部固件模式。内置固件模式屏蔽了相关的USB协议, 自动完成标准的USB枚举配置过程, 完全不需要本地端控制器作任何处理, 简化了单片机的固件编程。本文中采用STC12C5A60S2来控制CH372实现下位机与上位机的USB通信。

4 上位机软件的编写

上位机利用VS2010平台开发, 开发的界面要比Microsoft Visual C++6.0美观。主要采用MFC的位图双缓冲机制对采集到的数据进行图形绘制[6], 得到的图形是连续的, 而不是一屏一屏地刷新。双缓冲的原理可以形象地理解为:把电脑屏幕看作一块黑板。首先在内存环境中建立一个“虚拟”的黑板, 然后在这块黑板上绘制复杂的图形。图形全部绘制完毕时, 再一次性地把内存中绘制好的图形“拷贝”到另一块黑板 (屏幕) 上。采取这种方法可以提高绘图速度, 极大地改善绘图效果。

5 实验结果

该系统已经成功采集了多例心音样本, 采集时需保持现场安静, 轻压传感器。图5所示为一例正常心音, 从该图可清晰地分辨出心音的各种成分, 其中的有效成分得到了很好的保留。

实验结果表明, 该系统能够很好地显示采集到的心音波形, 利于医生对心音进行分析。该系统采用廉价的STC12C5A60S2 (市场价6元) 作为单片机, 利用其自带的AD大大降低了设备的成本。同时可以进一步完善该设备, 使之成为大众可用的便携式医疗器械。

摘要:设计了一款基于USB的心音信号采集系统。该系统包括心音采集电路、USB通信和上位机显示。通过心音传感器将采集到的数据进行放大去噪处理, 经由A/D转换通过USB将数据传送到上位机, 并以波形的形式实时显示采集到的数据。该系统可以准确、实时地显示并听到采集到的心音信号。

关键词:USB,A/D转换,心音信号

参考文献

[1]陈天华.基于现代信号处理技术的心音与心电信号分析方法[M].北京:机械工业出版社, 2012.

[2]韦哲, 李战明, 程自峰.基于声卡的心音信号采集与处理系统的实验研究[J].中国医疗设备, 2008, 23 (10) :7-10.

[3]王晓燕, 曾庆宁, 粟秀尹.基于FPGA的心音信号采集[J].微型机与应用, 2012, 31 (11) :28-30.

[4]刘俊, 张斌珍.微弱信号检测技术[M].北京:电子工业出版社, 2005.

[5]高吉祥.模拟电子技术[M].北京:电子工业出版社, 2008.

基于USB的数据通信系统的研究 篇3

1 USB的优点及功能作用

USB概念是从传统I/模式中创新出来的, 是一种新的外设在PC机外, 并与PC机相连接的一种新方法, 与老式PC机的数据接口相比较, USB接口具有以下几个优点:

1.1 热插拔。

用户可以将USB连接到任意一台正在运行的PC机上, 并利用PC机内部操作系统对USB进行操作使用。简单来说, USB是可即插即用的, 只要连接上PC机, 就可立即对其进行使用, 并不需要如往前那样重启一次PC机。此外, 在PC机没有运作时, 用户也可将USB连接到PC机插口上, 就算不能使用也不会对计算机造成损坏。

1.2 接口可共享。

USB端口支持多个外设连接, 且连接采用。菊花瓣。的连接方式。在实际应用中, 一个USB主控制器能同时连接并控制126个外连设备。

1.3 灵活性。

USB端口具有极好的灵活性, 在传输数据时数据传输速度可分为三种类型, 分别是1.5Mb/s的低速传输速度、12Mb/s的全速传输速度以及480Mb/s高速传输速度。传输方式和传输类型主要分为4种, 如块传输、同步传输、中断传输以及控制传输。分析USB端口三种不同的传输速度, 相对应的低速传输设备可应用在键盘、鼠标及游戏外设上, 具有使用方便、热插拔及成本低廉等特点;全速传输设备主要应用于音频、PBX、POTS等外设上, 全速传输设备同样具有价格低廉、方便使用和热插拔等特性, 并且还能在实际使用中保证通信数据传输质量, 保持带宽。高速传输设备应用于视频、磁盘存储, 特点是支持多类型外设连接, 同时方便使用, 能保证时延和带宽。

2 基于USB的数据通信系统设计

系统的构成。基于USB数据通信系统由三部分构成, 分别为主控制端、设备端以及中断产生电路。图1为USB数据通信系统的结构构成图。

在该系统中, 主控制端设备以PC机为主, 内部包含着串口、USB接口以及主控制软件三个部分。PC机运行时, 命令信息会由串口发送到中断电路, 同时由串口获得中断电路产生的中断信号。USB接口在PC机运行过程中顺利的完成主控制端与设备之间的信号传输, 或者说是高速数据通信。

与主控制端一样, 设备端也是该系统中的重要组成部分。设备端在设置时必须要在内部设置一个符合USB2.0的协议的标准化设备芯片, 使该系统在实际运行时能充分满足高速传输的要求。确保数据通信系统的稳定运行。

中断电路的作用是用来产生、控制中断信号, 并对中断信号进行传输, 将其传输到主控制端和设备端两个地方。中断电路可对主控制端、设备端的USB数据接收发生时间与发送时间进行控制, 告诉它们什么时候发送数据信号, 什么时候接收数据信号。最后实现主控制端和设备端USB数据信号的同步传输。

3 USB设备驱动程序及应用程序的设计

3.1 Windows ZO00/XP驱动程序。

以Windows2000操作系统为例, Windows2000系统可以使用多种驱动程序, 图2中显示了其中几种。

3.2 WDM驱动程序的分层。

WDM采用分层驱动的方法, 即在用户应用程序和硬件设备之间存在着几个不同的驱动程序, 每个驱动程序对应一层, 且不同层上的驱动程序可以相互调用。为适用于即插即用系统, WDM重新定义了驱动程序的分层结构, 其主要包含如下三种类型的驱动程序, 即总线驱动程序、功能驱动程序和过滤驱动程序。

3.3 WDM驱动程序的组成。

简单地说, 驱动程序是一些例程的集合, 它们被动地存在, 等待主机系统软件 (Pn P管理器、I/O管理器、电源管理等) 来调用或激活它们。具体驱动程序不同, 其所包含的例程也不同。

3.3.1 驱动程序入口例程:

处理驱动程序的初始化。Driver Entry例程是驱动程序入口点, 由FO管理器在驱动程序加载时调用它负责执行一些初始化操作, 主要工作是设置驱动程序对象 (Driver Eniry) 中指向各种例程的指针。在其驱动程序中必须包括这些例程的具体函数实现, 以便主机系统软件的调用。

3.3.2 即插即用例程:

处理Pn P设备的添加!删除和停止。从用户的角度来看, 即插即用是很容易理解的, 当连接某个新设备时, Windows会自动识别, 并提示用户选择正确的驱动程序, 之后它就可以被使用了;当设备被断开时, Windows将检测到这个事件并作相关处理, 不需要用户的干预。

3.4 USB设备驱动程序的设计。

Windows下的USB设备驱动程序遵循WDM标准, 其主要分为三个层次:最高层, 是用户开发的被称为USB设备驱动程序;中间层为USB类驱动程序, 在Windows98中为usbd.sys;最低层为主机控制器驱动程序, 有两种主机控制器驱动程序, 即通用主机控制器驱动程序和开放主机控制器接口。

结束语

综上所述, 将USB和数字信号处理器相互结合, 可成功设计编制出一个基于USB的数据通信系统。本文通过对USB结构及其在数据通信系统中的应用作了详细论述, 并得出了一系列相关结论, 希望能为同行工作提供一些帮助。

参考文献

[1]王根根.基于Windows WDM的USB设备驱动程序开发与应用[D].太原:中北大学, 2007.

[2]张辉.基于DSP的USB通道语音数据采集系统的实现方法[D].广州:广东工业大学, 2005.

USB系统结构 篇4

温度是工、农业生产的主要环境因素,它对工农业的生产有着重要的影响,所以对其进行准确快速的测量并进行处理是具有很特殊的重要意义[1]。对温度进行采集,并送到PC机实时处理,以前往往采用的是计算机的串行接口,但这一老式计算机接口存在着不少缺陷。比如接口规格不统一、非共享式接口、占用资源大等等这样那样的缺点[2]。USB接口是一种计算机应用领域的新型接口基于USB接口的温度采集系统就是通过温度传感器对现场温度进行测量,并利用微型处理器(单片机),通过USB接口实时的传给计算机,计算机利用软件根据已经设计好的要求对其进行报警等相应的处理,该采集系统能够对温度进行实时大范围的精确处理。

2 系统总体设计

2.1 系统整体方框图

根据前面的分析,知道系统要实现以上功能,必须由以下几部分组成:温度采集单元、下位机温度初步处理单元、USB设备接口、上位机应用程序。

系统的结构原理图如图1:

温度传感器单元对生产温度环境进行测量,将测量温度传给下位机(单片机),单片机对采集到的温度进行初步处理后,将处理了的数据通过USB接口上传给上位机,而上位机将实时的显示采集到的温度[3],如果要对现场环境进行处理,则上位机可以发送命令,经过USB接口传送到下位机,下位机根据接受到的数据并对其进行分析,进而做出处理,如报警等各种操作。

2.2 系统的特性

由于该系统利用USB接口,所以具有USB的实时传送数据,与上位机进行信息交流,而上位机又可以连接在互联网上,所以远程的PC机也可以利用互联网对温度检测系统进行查看等各种操作。该系统利用先进的温度传感器,可以对温度快速的进行反应,把温度数据传到下位机进行初步处理数据,进而与上位机通信。总的来说,该系统有以下几点特点:

1)工作人员可以远离生产环境通过计算机对其进行查看处理;

2) 多点温度测量;

3) 全天候检测温度,并可以在没有工作人员的参与下对生产环境进行简单处理;

4) 对生产环境的温度进行设计极限温度,一旦超过极限温度,系统将对其进行报警,并停止生产环境的工作;

5) 测量温度误差比较精确,在0.5℃内。

2.3 系统的功能

该系统主要有以下功能:

1) 对温度进行检测。利用该系统可以远离恶劣生产环境的情况下,对其进行温度测量;

2) 对现场温度进行实时采集;并在PC机上显示出来;

3) 在PC机上实时做出温度图像;工作人员在电脑上便可以直观的得到系统温度图像;

4) 简单的系统控制;通过计算机上的应用软件可以对温度设置,一旦超过极限温度,发出报警,进而通知工作人员快速的对生产现场进行各种相应操作,这样可以防止温度超出极限温度;

5) 在上位机端的应用软件上提供系统使用帮助。用户可以利用该功能帮助对系统进行操作。

3 系统软件设计

系统要对温度进行采集,首先必须利用上位机对下位机(单片机)发出命令,单片机根据接收到的命令,根据预先的规则对不同的命令做出不同的处理。然后把处理结果发回上位机,上位机接收到温度数据后,根据温度数据画出数据采集图像。这就是系统要实现功能,根据这一要求,设计出系统的软件。

系统整体模块流程图如图2:

下面分别设计下位机和上位机的程序流程图。

3.1 下位机的软件设计

单片机端的应用程序主要实现的功能就是对DS18B20进行采集温度,把采集到的温度通过USB接口芯片上传到计算机端的应用程序。下位机的程序设计流程图3:

下位机的程序流程图中包括单片机和DS18B20和单片机的通信流程图,以及单片机和USB设备接口芯片的通信流程图[4]。

其中DS18B20和单片机的通信流程图如下图4:

这里是单片机如何根据DS18B20的特性来控制它,进行温度转换,并读取温度。把温度数据保存在单片机端。

单片机先初始化DS18B20温度传感器,对其复位,然后按DS18B20的时序来读写命令,DS18B20根据命令进行操作,单片机和DS18B20的通信过程主要为:单片机对DS18B20复位,跳过读写系列号操作(送0x CC命令到DS18B20),启动温度转换,再次复位,送读温度命令0x BE,读出温度。这就是单片机和DS18B20的通信过程,将得到的温度单片机在进行处理,把温度数据传到上位机。上位机实时显示温度值。为了便于说明DS18B20和单片机间的通信过程[5],下面给出读出DS18B20温度的程序:

上传数据是通过查询DS18B2是否转换完,转换完,则上传,否则等待;上位机的应用软件向下位机发送数据,CH372的端点接受器接受来着来自计算机的数据,通过中断来通知单片机,单片机开始接受收据,并进行处理。

3.2 上位机软件设计

上位机接受来自下位机的数据,根据数据进行操作,实现各种功能。

下面给出上位机的程序流程图5。

4 系统调试

4.1 硬件调试

在整个系统的调试过程中要注意以下几点[6,7]:

1) 单片机P0口必须加上拉电阻,以防芯片CH372被烧坏,因为其电流最大值为500u A。

2) 在CH372的滤波电容0.1u F中,并联一个5K-10K的电阻。使得系统在断电时,把电容中的电能及时的释放掉,确保电路下使用通电时CH372能够可上电复位。这也是该系统的一个改进和创新。

3) 芯片CH372和单片机不能使用同一个晶振,以防在发生问题时,不知道是芯片CH372还是单片机出现问题。

4) 为使得DS18B20在工作中稳定,必须在其P11口接4.7k的电阻。

4.2 软件调试

4.2.1 下位机软件调试

下位机的软件调试主要分两部分:单片机和CH372Z时间的通信、单片机与温度传感器DS18B20的通信。

1) 单片机和CH372之间的通信

硬件部分利用具有上拉电阻的口作为的、、线,所以通过软件控制口信号来达到控制的读写命令和读写数据。只要注意CH372的读写时间要求就可以很快实现。单片机的P2口是作为CH372的数据口,利用它来发送和接受CH372的数据。

这里特别强调的一点是的初始化程序,如果初始化不成功,电脑无法识别硬件,后期将无法进行。所以初始化程序必须注意的一点。下面给出CH372的初始化程序。

初始化成功后,下位机连接到机上,安装了驱动程序的机就可以识别硬件。完成这部分工作之后先进入上为机和下位机联合的调试,然后再调试DS18B20和DS18B20之间的通信[9]。

2) 单片机和DS18B20之间的通信

单片机要根据DS18B20的时序要求和读写要求来读取温度数据。由于DS18B20是一线式数字温度传感器,对时序要求比较高,延时程序误差大,则不能读出数据。必须强调访问DS18B20的顺序如下:①初始化;②ROM命令;③DS18B20的函数命令。

总之,这部分编程主要注意的就是延时程序的准确性。并按照DS18B20的操作顺序便可以把温度数字传到单片机。

4.2.2 上位机的软件调试

主要有两个模块组成:通信模块和图像处理模块。其中通信模块负责处理上位机和下位机之间的通信,图像处理模块负责温度采集图像。主要流程如下:

1) 用C++Builder提供的implib.exe工具重新生成该动态库(xxx.dll)的导入库(xxx.lib)。命令如下:

implib ch372.lib ch372.dll。

ch372.dll为已有动态库,ch372.lib为要生成的导入库。由此生成的导入库ch372.lib格式与C++Builder开发平台是相容的;

2) 在动态库的头文件ch372.h中,对其输出函数重新说明,语句如下:

3) 然后采用隐式链接法,将重新生成的导入库(ch372.lib)和重新说明的头文件(ch372.h)加入到C++Builder应用程序的工程项目中,进行编译和连接。

4) 图像处理模块,应用软件根据接受到的温度,利用C++ builder在窗体上画出动态连接图,主要采用窗体Canvas属性来实现。

4.2.3 上位机和下位机联机调试

下位机(单片机)对CH372初始化成功之后,上位机就能够识别下位机设备(USB设备),上位机调试部分也初步完成,那就进入系统整体调试。

1) 测试单片机和PC机能否正常通信

在下位机的程序部分设计一个往上位机发送的字符数组,在PC机上进行操作,看是否能成功接受数组,如果能,则说明单片机可以往上位机发生数据,不行则修改上位机和下位机相关部分的程序。接下来PC往下位机发送数据,如果下位机能够成功返回相同的数据到PC机上,则说明上为机和下位之间的通信已经成功。

2) 测试单片机能否对DS18B20正常的读取温度

DS18B20的对时序要求很高,一定要准确,并且按DS18B20的顺序来进行操作,在硬件电路原理没有错的情况下,如果温度读起不正确,或者无法读取温度,只能是出现两种错误,一是时序问题,没有按照DS18B20的时序精度来对其进行操作,二是单片机访问DS18B20的顺序问题,单片机没有严格按照访问DS18B20的顺序对起发送命令,单片机访问DS18B20的顺序这里再次声明:初始化、ROM命令、DS18B20的函数命令。

这一部分出现的两个问题,大部分情况下出现的是时序问题,所以特别注意单片机对于DS18B20的精确延时。

3) 采集温度[10]

各部分通信正常后,便可以采集数据并处理。因为系统采集过程是上位机每发送一条采集命令,下位机就上传一次温度数据,所以这一步主要调试的是上位机要间隔多长时间定时向下位机发送采集命令,使系统能快速采集温度并上传,并防止发生读写等冲突。

5 效果图

从图像中可以看到,当前设定的报警温度是34.3,但采集的温度为35.9375,可以看到红色的圆点发光,这即是报警,说明当前的温度高于之前设定的温度极限值。

6 系统性能指标

系统性能指标主要是:

1) 测量温度误差小于或者等于0.5℃;

2) 温度显示分辨率为0.0625℃;

3) 测量温度范围在0℃~70℃;

4) 具有控制报警功能。

7 结论

此基于USB接口的温度采集系统用于实际生活中后,经长期测试后,检测温度实时高效稳定。

摘要:针对目前在工业、农业环境中需要快速对温度进行监控、采集的情况,设计了一种基于USB接口的温度控制器,采用单片机为核心、CH372和一线式数字温度传感器为配件的USB温度采集系统。该系统可以实时显示温度采集图像,并对超过其内部设定的极限温度进行报警。

上一篇:设计类课程下一篇:城乡优势互补