数字温温度记录仪中的USB主机设计

2019-08-01 16:33发布

   引 言

    在USB拓扑结构中PC机扮演着核心作用,没有PC机的参与,USB设备将无用武之地;但随着USB-OTG规范的提出和USB主机接口芯片的产出,USB主机逐渐应用到各种场合中,如数码伴侣、打印机等。目前,大多数的温湿度记录仪都是通过单片机的A/D模块多次采样.经过软件滤波,得到一个均值,然后再通过模拟传感器的数据校正表换算出实际的温湿度,而且都是通过串口与上位机进行通信,上位机需要编写一个数据分析软件来设置记录仪的工作模式,并对记录的历史数据进行分析与处理。根据对以往记录仪的分析和对USB-OTG技术的深入研究,提出了数字温湿度记录仪系统中USB主机设计的实现方案。将USB主机嵌入到数字温湿度记录仪系统中,把对记录仪的设置预先写到USB磁盘上,再将USB磁盘插到记录仪上,分别按下读/写按键,记录仪分别完成读取磁盘上的配置和将记录数据写到USB磁盘上。下面详细分析其硬件设计和软件实现过程。
    1 硬件设计

    记录仪系统硬件结构如图1所示。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
i1mcu
1楼-- · 2019-08-01 20:08
  1.1 数字温湿度传感器HygroClip

    HygroClip是一种数字温湿度传感器,具有5根线:电源、地、温度输出、湿度输出、数字输入/输出。供电电压需要5 V,而整个系统的工作电压小于5 V,所以要外加有使能端输出为5V的升压器,使能端由MSP430F1611的普通I/O口控制,这样可以有选择地使传感器工作,有利于降低系统功耗。传感器主要由AIRCHIP2000和Micro-Controller/E2PROM两部分构成。AIRcHIP2000中的集成电路负责测量温湿度,并将它们转换为数字量;D/A转换器将MicroController发出的数据转为模拟输出。MicroController根据数字量算出温湿度的实际值,通过数字输出线发送到MSP430F16ll中。E2PROM用来保存校正数据、传感器数据等。HygroClip与MSP430F1611传输数据通过数据输入/输出线来完成,所以是一位一位地发送数据,发送8位代表发完1个字节,有点类似于串口通信协议。串口通信协议规定如下:先发送同步头,当HygroC1ip接入系统3秒钟后,自动进入发送温湿度数据状态,单片机检测到其下降沿中断,然后开启上升沿中断,启动定时器计数,计算进入上升沿中断的时间。若在800μs左右,表示可能是同步头,此时开下降沿中断,并重计定时器的时间。若在4700μs左右,则表示抓到同步头。该下降沿标志着第一位发送数据的开始,经过200μs查看接收位的状态,为“1”表示收到的是“1”,为“0”表示收到的就是“0”。其数字输入/输出引脚的波形如图2所示。



i1mcu
2楼-- · 2019-08-01 23:21
 精彩回答 2  元偷偷看……
i1mcu
3楼-- · 2019-08-02 00:30

    1.3 MSP430F1611简介

    MSP430F1611是TI公司推出的一款16位超低功耗单片机,工作电源电压为1.8~3.6 V,可用电池工作,而且可以有很长的使用时间;具有16位RISC结构,CPU中的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率;灵活的时钟源可以使器件达到最低的功耗;具有5种省电模式,在lMHz的时钟条件下运行,耗电电流(0.1~400 μA)因不同的工作模式而不同;数字控制振荡器(DCO)可使器件从低功耗模式迅速唤醒,在少于6μs的时间内激活到活跃的工作方式;支持串行在系统编程和安全熔丝的程序代码保护,内部具有10KB容量的RAM,可以存放大容量中间数据和变量。
i1mcu
4楼-- · 2019-08-02 04:27
   2 软件设计

    整个系统软件分为用户程序和uSB主机软件两部分,USB主机软件为用户程序提供软件接口。当记录仪需要读写USB磁盘时,调用接口发送读写

命令即可实现。用户程序集成初始化、采集、显示、记录等子程序。初始化单片机与其外围模块;采集程序负责将数字温湿度传感器的脉冲输入转换为温湿度的值;显示程序则将采集到的数据通过液晶显示器显示出来,显示频率可以设置;记录程序将采集的数据写到F2PROM保存,掉电不丢失,从而要通过I/O口模拟I2C协议实现读写32PROM,USB主机软件集成USB主机控制器驱动程序(HCD)、USB驱动程序(USBD)和MassStorage类驱动程序。HCD负责完成对USB主机控制器ISPl362配置和工作管理,通过数据线上的电平变化检测到USB设备的接入和拔出,如ISPl362的初始化、设置ISPl362的寄存器实现链路级数据传输等。USBD是整个主机软件的核心部分,相当于PC机上USB主机的核心驱动程序,按照USB协议合理调用HCD来获取设备、配置、接口及端点描述符,然后对USB设备设置地址并与之通信,从而识别并判断USB设备是否属于Mass Storage类。Mass Storage类驱动程序包括Bulk_Only传输协议的实现以及在协议实现的基础上发送特定的请求命令,进而对USB磁盘上的F1ash进行读和写,从USB磁盘上读取对记录仪的配置,并将记录仪保存的数据写到USB磁盘上供上位机分析处理。

    为了将系统的功耗降到最低,仅仅在硬件设计上考虑是远远不够的,还需要设计低功耗的软件来配合硬件工作,才能达到理想的目标。在本系统中,为了降低功耗,将用户程序和USB主机软件进行整理和优化,分成主程序、看门狗中断子程序和USB主机程序三大模块。主程序负责初始化、开中断后进入低功耗工作模式,然后一直等待中断,看门狗中断程序负责采集数据、显示数据、保存数据等功能,因为记录仪需要不断的采集、显示和保存,所以要周期性地进入中断。采集、显示和保存这三个事件不是同步的,每次进入中断后都会采集数据,但是达到显示和保存条件之后分别进入相应的处理,而且显示和保存的时间参数是通过USB磁盘配置得到的,可以更改。读写中断子程序负责判断按键类型,在Mass Storage类驱动程序基础上建立一个FAT文件系统,支持FATl6/FAT32两种文件格式,以文件的形式统一管理USB磁盘上的内容。各个程序流程如图4至图6所示。
i1mcu
5楼-- · 2019-08-02 06:22




i1mcu
6楼-- · 2019-08-02 06:28
   3 结论

    将USB主机应用到数字温湿度记录仪系统中;使用数字传感器可大大提高记录的精度,记录仪通过USB磁盘就可上传配置和下载数据,可去除对PC机的依赖,扩大应用范围,具有很好的扩展性;使用超低功耗单片机大大降低系统的功率,延长电池的寿命。

一周热门 更多>