文末下载完整资料

                              摘 要
   USB(Universal Serial Bus)是一种新型的通用串行总线,它是快速的、双向的、同步的、可以热插拨的、动态连接且价格低廉的串行接口。正是基于这一特点,现在很多的计算机外设都有USB接口。本文正是利用这一新型USB接口来设计上位机与下位机系统之间的通信。利用新型的一线式数字温度传感器测量温度,并通过USB接口和计算机端应用软件进行通信。
   本文首先介绍了本系统相关的背景知识以及USB的通信协议,进而介绍温度控制的基本意义,提出利用USB设备芯片CH372、一线式数字温度传感器DS18B20和单片机AT89C51来开发基于USB温度控制系统。采集的温度数据通过USB接口上传到上位PC机上,并利用应用软件对其进行处理。上位机应用软件用C ++ builder 编写,其运用CH372接口芯片的动态链接库建立起上位机和下位机之间的通信机制。上位机将采集到的温度数据在PC机上显示出来,并且显示实时温度采集图像。
此外,应用软件可以对下位机进行温度极限设置等简单控制功能,当采集到的温度超过某一设定极限温度,则对系统进行报警。另外下位机还为今后的扩展保留一定的资源。

关键词: AT89C51;USB协议; 温度采集 ;一线式温度传感器 ;CH372

2 系统概述
   本章将对基于USB接口的温度控制系统在工业上的应用进行分析,并介绍系统的特点、功能以及使用到的开发工具。
2.1 系统的特性
   由于该系统利用USB接口,所以具有USB的实时传送数据,与上位机进行信息交流,而上位机又可以连接在互联网上,所以远程的PC机也可以利用互联网对温度检测系统进行查看等各种操作。该系统利用先进的温度传感器,可以对温度快速的进行反应,把温度数据传到下位机进行初步处理数据,进而与上位机通信。总的来说,该系统有以下几点特点:
   ·工作人员可以远离生产环境通过计算机对其进行查看处理;
   ·多点温度测量;
   ·全天候检测温度,并可以在没有工作人员的参与下对生产环境进行简单处理;
   ·对生产环境的温度进行设计极限温度,一旦超过极限温度,系统将对起进行报警,并停止生产环境的工作;
   ·测量温度误差比较精确,在0.5℃内;
2.2 系统的功能
   该系统主要有以下功能:
      (1)对温度进行检测。利用该系统可以远离恶劣生产环境的情况下,对其进行温度测量;
      (2)对现场温度进行实时采集;并在PC机上显示出来;
      (3)在PC机上实时做出温度图像;工作人员在电脑上便可以直观的得到系统温度图像;
      (4)简单的系统控制;通过计算机上的应用软件可以对温度设置,一旦超过极限温度,发出报警,进而通知工作人员快速的对生产现场进行各种相应操作,这样可以防止温度超出极限温度;
      (5)在上位机端的应用软件上提供系统使用帮助。用户可以利用该功能帮助对系统进行操作。
2.3 系统开发平台
   本次系统需要用到的开发工具为:keil C、 C++ builder、Protel、计算机、烧写器。
Keil C是目前世界上最好的MC-51单片机的汇编和C语言的开发工具。支持汇编、c语言以及混合编程。同时具备功能强大的软件仿真和硬件仿真。C++ builder 是计算机高级语言C++比较好用的编程工具,它是属于一种可视化的计算机语言。 Protel是世界上最好的硬件电路图制作的工具。

3 系统总体设计
3.1 系统整体方框图
   根据前面的分析,知道系统要实现以上功能,必须由以下几部分组成:温度采集单元、下位机温度初步处理单元、USB设备接口、上位机应用程序。
系统的结构原理图如图3.1:

   温度传感器单元对生产温度环境进行测量,将测量温度传给下位机(单片机),单片机对采集到的温度进行初步处理后,将处理了的数据通过USB接口上传给PC机上位机,而上位机将实时的显示采集到的温度,如果要对现场环境进行处理,则上位机可以发送命令,经过USB接口传送到下位机,下位机根据接受到的数据并对其进行分析,进而做出处理,如报警等各种操作。
3.2 系统方案比较
   对于本系统,方案的选择是根据温度传感器来选择。
   目前市场上有两种传感器:模拟传感器和数字集成传感器,对于选择不同的传感器将会有不同的方案。下面给出两种不同的方案,并对其进行分析,最终选择其中一种方案。
3.2.1系统两种可行方案
   方案1:选择模拟传感器
   所谓模拟传感器,简单的说就是传感器对被测量的物质感应,并随着检测的不同做出不同的反应,但这一反应是有规律的,而且有规律的输出模拟信号。由于单片机是数字信号系统,只能识别数字信号,所以这种方案要想利用单片机对温度信号进行处理,必须将对模拟输出量数字化,也就是说要对其输出的模拟电压或电流转换成数字信号,这么一来就系统要加入模拟信号转换成数字信号的处理单元,通常,实现这一功能的是A/D转换器,市场对于这一A/D转换器有不少类型。所以选择这一方案也是可以有效而快速的设计出本系统。
图3.2给出使用模拟传感器这一方案的设计原理图。

   方案2:选择数字传感器
   今天随着计算机的飞速发展以及单片机的日益普及,世界进入了数字时代,人们在处理被测信号时首先想到的是信息处理器(单片机或计算机)。具有输出数字信号便于电脑处理的传感器就是所谓的数字传感器。
   数字传感器是近几年才出现的并得到广泛的应在在实践当中,所谓数字传感器,进一步的讲,就是将模拟传感器产生的信号经过放大、A/D转换、线性化及量纲处理后变成纯粹的数字信号,是在模拟传感器上加入数字处理单元,并将数字单元集成在一块芯片上,所以输出的是数字信号,便于数字处理机对其直接进行处理。图3.3给出利用数字传感器设计的方案图:

4 系统硬件设计
4.1 中央处理器----AT89C51
   AT89C51由美国Atmel 公司生产的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位单片机,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。下文将对AT89C51单片机做简单介绍。
   (1) AT89C51的特点
      AT89C51具有以下几个特点:
         ①中央处理器CPU;
         ②AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;
         ③片内有4k字节在线可重复编程快擦写程序存储器;
         ④全静态工作,工作范围:0Hz~24MHz;
         ⑤三级程序存储器加密;
         ⑥128×8位内部RAM;
         ⑦32位双向输入输出线;
         ⑧两个十六位定时器/计数器
         ⑨五个中断源,两级中断优先级;
         ⑩一个全双工的异步串行口;
   (2)AT89C51的结构图如图4.1

4.2 温度传感器DS18B20
   温度传感器是该系统的测量器件,温度传感器的好坏直接影响到测量结果,所以本文将对温度传感器的选择详细介绍。根据本次设计论文的要求,包括精度要求等,经过分析,本文决定选择数字温度传感器DSB8B20。下面将给予介绍。
   (1) DS18B20的概述
      DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测环境的温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。
   (2)DS18B20的内部结构
      图4.3是DS18B20的内部结构图

  由图可知,DS18B20主要由4部分组成:64位ROM、温度传感器、非挥发的温
警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图4.4所示,

DS18B20的3个管脚说明如下:
  DQ为数字信号输入/输出端。是漏极开路一线接口。也在寄生电源接线方式时,给设备提供电源。
  GND为电源地。
  VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
  DS18B20的64位ROM保存了设备的唯一序列码,是DS18B20的地址序列码,每一个DS18B20的地址序列码是不同的,这样就可以实现一根总线上挂接多个DS18B20。高速闪存(scratchpad)包括2个字节的温度寄存器。保存了温度传感器的数字输出。该闪存还提供了对上限(TH)和下限(TL)的超标报警寄存器、配置寄存器(一个字节)的访问。TH、TL和配置寄存器是  EEPROM,所以系统掉电时可以保存数据。
  DS18B20利用DALLAS的单总线控制协议,实现了利用单线控制信号在总线上进行通信。由于所有的设备通过漏极开路端(DQ脚)连在总线上,控制线需要一个大约5K上拉电阻。在这一总线控制系统中,微控制器通过唯一的64位地址序列码识别和访问总线上的器件。由于地址序列码不同,所以连接在总线上的DS18B20可以说是无限的 。
(3)DS18B20的寄存器
  DS18B20存储器组织结构如表4.2所示:
4.3 温度采集模块电路设计
   以上已经介绍了AT89C51和数字温度传感器DS18B20基本知识,下面将利用它们来设计本系统的温度采集电路。DS18B20连接到单片机的方法很简单,它有两种方法连接到电路上,既外接电源方式和寄生电源方式,这里使用的是系统提供的外接电源方式,而不采用寄生电源,只要VCC、DQ、GND连接到单片机的电源正极、一个I/O端口、电源地就可以了。但是要注意的是在DQ数据线中要加一个4.7K的上拉电阻,这一个是必须要加的,无论它是接在P1口还是P0口,这点特别注意,特别提醒。之外在电源两端之间加个0.01U的电容,这样的作用主要是滤波。


  由图4.7,知DS18B20工作在外部电源供电方式。单片机采用采用P1.1口与DS18B20通信。下面根据单片机的初始化时序和读写时序,写出DS18B20和单片机之间的读写操作,这里只给了温度的读取,下位机部分程序在附录中给出。
  这里特别提醒的是DS18B20对时序要求很高,精度要求很高,所以程序的延时对是否能读起数据起到非常关键的作用。
  DS18B20读写数据程序如下:

void delaym(int time)  //延时为(time*2+2)us
{  int s;for(s=0;s<time; s++)
}
void  write_bite(unit8  bite)  //写一位数据位
{  DQ=0;if(bite==1)DQ=1;   //如果写"1",DQ=1;delaym(29);//延时60us提供DS18B20采样DQ=1;    //释放DQ
}
unit8 read_bite(void)  //读一位数据位
{ DQ=0;     //将总线DQ拉低开始读时序delaym(0); //延时2usDQ=1;    //释放DQ;delaym(1); //延时4us后再读数据return(DQ);
}
void  write_byte(unit8 dat)  //写一字节数据
{  unit8 i;unit8  temp;for(i=0;i<8;i++){   temp=dat>>1; //右移一位temp&=0x01;write_bite(temp);}
}
unit8  read_byte(void)
{  unit8 i,value=0;for(i=0;i<8;i++){ if(read_bite())value|=0x01<<i;//读一字节数据,一个读时序读一位,并做移位delaym(29) ;  //延时60us有以完成读一位,之后再读下一位}return(value);
}
unit8 DS18B20_RESET(void)
{  unit8 data;DQ=0;delaym(239); //保持DQ低480usDQ=1;delaym(35);da=DQ;delaym(211);return (data);//有芯片应答data=0,无则data=1
}

4.4 系统接口模块电路设计
  本系统的采集模块采集到数据后,必须要经过CH372传到上位机应用软件才能实现控制下位机的各种操作。而CH372是USB接口芯片,下位机和上位机通信的要通过CH372接口芯片来完成,其和计算机的连接很简单,所以这一部分主要的硬件实现是CH372和单片机AT89C51的连接问题。
4.4.1 USB简介
  USB(Universal Serial Bus)是外围设备与计算机进行连接的新型接口,既一种新型的通用串型总线接口,USB具有即插即用、热插拨、接口体积小、节省系统资源、传输可靠、提供电源、良好的兼容性、共享试通信等优点。
  在USB产生之前,外部设备和计算机的通信主要是通过计算机主板所提供的各种接口,比如ISA接口、PCI接口、PS/2接口、串行接口,并行接口等,这些接口,存在这样那样的缺陷,比如接口规格不统一、不共享等为了克服上述外围设备的缺陷,P制造商和用户迫切需要一种新型的外设接口,  USB正是在这样的环境下产生的,它是一种快速、双向、同步、廉价、并支持热插拨功能的串行接口。
  USB是一种新型的接口,那么它必定有它的通信标准,也就是我们所说的协议,下面简单介绍USB的通信协议。
  一般的,对终端用户来看,USB系统是USB设备连接到主机的简单连接,但对开放人员来说,这中连接可分为三个层次:功能层、USB设备层、USB总线接口层,且每一层都由主机和USB设备的不同功能模块组成。可以用下面的图型来形容。下图4.8是这种分层通信机制的简化。

  由图,一个USB设备由三个功能模块组成:USB总线接口、USB逻辑设备、功能单元。USB总线接口是USB设备中的串行引擎(SIE);USB逻辑单元被看作是一个端点的集合;功能单元客户软件被看作接口的集合。
  USB传输类型包括批量传输、同步传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同。控制传输可靠性是最高的,但速度最慢;同步传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。
  在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。
4.4.2 USB芯片选择
  USB的传输速度可分为低速(1.5Mbps)、全速(12Mbps)和高速(480Mb/s),按传输速度来分,供选择的USB芯片类型主要有:低速(1.5Mbps)和全速(12Mbps),可选择Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列以及国产的CH372芯片; 高速(480Mbps)可选Philips公司的ISP1581和Cypress公司的USB接口芯片CY7C68013。
  本次系统要传输的速率比较少,可以所以选择全速的USB接口芯片,由于国产的芯片已经有所好转,再加上资料比较齐全,这次系统设计所选择的USB接口芯片是国产芯片CH372。
芯片介绍:
  CH372是南京沁恒电子有限公司生产的新型USB接口芯片,具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上;它屏蔽了USB通信协议,用户如果没有涉及到底层开放,那么只要了解芯片的普通用法就可以快速的设计USB设备。利用CH372进行USB设备的通信设计可以如下的方框图4.9
5 系统软件设计
  本系统进行软件设计包括下位机软件设计和上位机软件设计,下位机软件设计可以使用汇编语言和单片机C语言,上位机设计可以采用的很多计算机高级语言,比如VC++、Delphi、C++ builder等,在这里选择C++ builder来编写上位机程序。至于下位机程序,主要有汇编语言、PL/M语言和C语言。汇编语言有执行效率高、速度快、与硬件结合紧密等特点,尤其在I/O端口管理时,使用汇编语言有快捷、直观的优点。但是使用汇编语言相对于高级语言,比如单片机C语言来讲,难度要大很多,而且汇编语言的呈现可读性低、开放性差。所以下位机的程序设计选择单片机C语言。下面简单介绍本次软件设计的编程工具。

全套资料免费下载:
关注v-x-公-众-号:【嵌入式基地
后-台-回-复:【毕业设计】 即可获资料
回复【编程】即可获取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、数据库、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物联网、算法导论、大数据等资料

基于单片机USB接口的温度控制器相关推荐

  1. 基于高速51单片机的模拟USB接口设计

    基于高速51单片机的模拟USB接口设计 作者:廖颂文 摘要:参照AVRUSB技术给出了51单片机通过模拟USB通信的实现方法.用VC编写了上位机软件,通过libusb驱动实现了PC与ST12LE560 ...

  2. 单片机-硬件接口(UART/IIC/SPI/RS232/USB/CAN)异同

    1.中文名  USART:通用同步异步收发器   UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)  I2C(INTER IC BUS ...

  3. 基于FPGA的USB接口控制器设计(VHDL)(中)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...

  4. ft232h引脚_一种基于芯片ft232h的usb接口电路的制作方法

    一种基于芯片ft232h的usb接口电路的制作方法 [技术领域] [0001 ] 本实用新型涉及一种USB接口电路,具体涉及一种基于芯片FT232H的USB接口电路. [背景技术] [0002]USB ...

  5. 单片机及接口课程设计报告-------基于音乐播放器

    目录 课设目的.内容....................................................................................... 1. ...

  6. STM32CubeMX学习笔记(48)——USB接口使用(MSC基于外部Flash模拟U盘)

    一.USB简介 USB(Universal Serial BUS)通用串行总线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.是应用在 PC 领域的接口技术.USB 接口支持设备的即插即用和 ...

  7. 创龙基于TI AM5728浮点双DSP C66x +双ARM Cortex-A15拨码开关、Micro USB接口

    处理器 创龙基于TI AM5728浮点双DSP C66x +双ARM Cortex-A15工业控制及高性能音视频处理器.拥有多种工业接口资源,下图为AM5728 CPU资源框图: 拨码开关 设有5位的 ...

  8. USB接口 在单片机读写U盘 项目中的应用

    2019独角兽企业重金招聘Python工程师标准>>> 一.    USB接口是什么? 通俗地说法: USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.USB接口即插即用 ...

  9. 基于FPGA的USB接口控制器设计(VHDL)(上)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第一篇,上篇,USB 接口简介 以及 USB 体系结构.话不多说,上货. 之前有关于 Verilio ...

  10. STM32自定义键盘(二)STM32单片机的USB接口-HID键盘

    STM32自定义键盘(二)STM32单片机的USB接口-HID键盘 HID描述符 生成HID键盘工程模板 修改HID报告描述符 键值数据发送 USB HID 键盘键值表 HID描述符 请参考这位博主的 ...

最新文章

  1. 解决win7不能上网的问题
  2. 蚂蚁金服的一次面试经历(一面、二面)
  3. git 快速入门笔记
  4. 基于LZ77算法的文件压缩收尾
  5. C++ 继承 | 对象切割、菱形继承、虚继承、对象组合
  6. 什么是java中的枚举法_enum枚举javajava,enum枚举使用详解+,总结
  7. 修改ip和计算机名,批量设置IP地址和计算机名
  8. 华为一季度每天入账20亿,首次披露云业务用户超100万
  9. SQL Server job突然不工作了
  10. java与模式观察者模式_谈谈java中的观察者模式
  11. 最新推券客CMS淘宝客优惠券程序源码V3.6.1版
  12. 会声会影2020迅雷磁力链接bt搜索种子百度云网盘下载及有效序列号
  13. JavaScript系列-闭包
  14. 龙珠游戏-博弈之斐波那契数列
  15. 对哼唱的语音或者播放的音乐进行乐谱的识别,并将哼唱转换为其他乐器的声音回放...
  16. 利用QT加C++语言如何计算MACD指标,并请给出示例代码
  17. xml 以及JSON学习记录
  18. Android应用程序资源的编译和打包过程分析
  19. 陈安之、王顺杰、翟鸿燊这些成功学讲师有些语句确实很发人深省为什么说他们是大忽悠呢?
  20. Flarum 宝塔完美迁移教程

热门文章

  1. 常用无线通信协议Zigbee、bluetooth、wifi比较
  2. 黄绿色——三色配色篇
  3. 戴尔G7 7588 Windows 10 未安装任何音频输出设备
  4. 【正点原子探索者STM32F407开发板例程连载+教学】第30章 SPI通信实验
  5. VMware vSphere下载
  6. vmware 官方下载
  7. k3修改服务器,金蝶k3客户端修改服务器地址
  8. 深山红叶PE系统工具箱V32
  9. cityengine导出fbx
  10. Mediacoder基本教程