0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究USB-Host的大容量数据采集系统的设计

电子工程师 来源:《单片机与嵌入式系统应 作者:万天军 , 徐爱钧 2021-04-07 17:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

随着移动数据存储领域的日益扩大,在嵌入式系统中实现USB主机功能,以实现利用USB存储设备进行数据存储的需求变得日益迫切。U盘作为新型移动存储设备,以体积小、速度高、抗震动、通用性强的特点倍受青睐,因此,在数据采集系统中开发出嵌入式USB主机控制U盘作为数据存储器,将具有良好的实用价值和应用前景。

1 USB大容量存储设备协议分析

基于USB的大容量数据采集系统的设计,主要是要实现嵌入式USB-Host。要想设计出能直接读写U盘的嵌入式USB-Host,就必须理解USB大容量存储设备协议。目前USB大容量存储设备软件结构如图1所示。

pIYBAGBtgXqAFw6aAAC_IZ99b30846.png

图1中,虚线左边部分是主机的驱动程序结构,也是嵌入式USB-Host所要实现的。左边最顶层是FAT文件系统层API,用于提供给用户访问存储设备的方法。

U盘中的数据都是以文件格式存储的,FAT16因具有高度兼容性而被广泛应用于移动存储设备中。这里简要分析一下FAT16文件系统结构和存储空间的组织原则。

(1)FAT16文件系统结构

FAT格式的磁盘大致可以分5个部分:MBR区、DBR区、FAT区、FDT区和DATA区。

MBR区:又称主引导记录,其后为64字节的DPT(Disk Partition Table,磁盘分区表)。由于不需要从U盘启动,且U盘就一个分区,所以U盘上没有这个数据区。

DBR区:即操作系统引导记录区,通常占用分区的第O扇区,共512字节,由跳转指令、BPB、结束标志几部分组成。

FAT区:存放文件分配表。文件分配表是一一对应于数据区簇号的列表,反映了所有簇的使用情况。每个表项单元的大小决定了FAT的类型,比如FAT16的表项单元为16位。FAT表一般都有一个备份。

FDT区:存放着文件目录表,位于备份FAT表之后。FDT由32位的目录项线性构成,记录着根目录下每个文件(子目录)的起始单元、属性等。FDT大小为32个扇区,最多可以保存512个目录项。

DATA区:是真正意义上的数据存储的地方,位于FDT之后,占据硬盘上的大部分数据空间。

(2)FAT16的存储空间组织原则

当磁盘空间格式化为FAT分区时,FAT文件系统就将这个分区当成整块可分配的区域进行规划,以便数据的存储。FAT将磁盘空间以一定数目的扇区为单位进行划分,这样的单位称为簇。通常情况下,每扇区512字节的原则是不变的。簇的大小一般是2n(n为整数)个扇区的大小(每个簇的最大存储空间为32 KB)。一般采用逻辑块LBA(Logical Block Addressing)寻址方式。

图1虚线左边中间的UFI/ATA驱动层将应用程序的访问转换成UFI或ATA命令/数据格式,与外部存储设备之间按照子规范UFI或ATA的定义进行命令/状态/数据的交换;最底层则是USB传输驱动,负责将上层的UFI/ATA数据发送到USB总线上以及接收从存储设备返回的状态/数据。CBI/Bulk-Only/ATA/UFI是USB Mass Storage类规范中4个独立的子类规范的简称。前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-Only传输规范仅使用Bulk端点传送数据/命令/状态,CBI传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。后两个子规范则定义了存储介质的操作命令。ATA命令规范用于硬盘,UFI命令规范是针对USB移动存储而制定的。

2 嵌入式USB-HOST设计

2.1 硬件设计

系统采用增强型8051内核的单片机STC89C516RD+作为中央处理芯片,选用南京沁恒电子公司的CH375S作为USB主机控制芯片

STC89C516RD+具有64 KB的Flash程序存储器,1280字节的RAM(256字节的内部RAM和1KB的外部RAM),支持在系统/在应用可编程(ISP,IAP);CH375S是一款符合USB1.1协议规范的USB总线的通用接口芯片,支持USB-Host主机方式和USB-Device/Slave设备方式。CH375S具有8位数据总线和读、写、片选控制线以及中断输出,因此CH375S作全速USB-Host主机接口时,外围元器件只需要晶振和电容,就可以方便地挂接到单片机/DSPMCU/MPU等控制器的系统总线上。

考虑到读/写U盘或移动硬盘时一般都是以扇区模式进行的,所以要加磁盘数据缓冲区和文件数据缓冲区(都是512字节的整数倍),并且缓冲区越大,执行的效率越高,所以外扩了32 KB的RAM。

USB-Host电路如图2所示。

pIYBAGBtgY2ADfRjAACNZ9WdmP8953.png

根据以上分析,即可设计如下文件操作:

①创建文件。在FDT中申请新目录项。

②写文件。当写一新文件时,需在FAT表中查找未使用的簇,并将该簇号写入文件对应目录数据结构中的起始簇号位置。当此文件长度大于一簇时,还需在FAT表中对应的起始簇号位置填入下一可用簇的簇号,直到文件的最后一簇(FAT表中的相应位置填FFFF)。若磁盘有备份FAT,则须在备份FAT表的相应位置填入正确的内容。

③删除文件。除了将FDT中对应的目录项置相应标志外,还要修改FAT表及备份FAT表。将此文件使用的簇号位置清0,表示此簇当前未被使用。

由于在FAT16中子目录被视为特殊的文件,对其操作类似于文件操作,所以不再赘述。

构建的FAT16文件系统对用户提供文件级API函数,如CH375_Creat_File()、CH375_write_File()、CH375_Delete_File()等,当执行文件级API函数时,将调用Seck_Empty_Cluster()寻找一个空簇、Link_Cluster_List()建立簇链、Seck_Sector()定位文件指针等中间函数。这些中间函数在调用CH375S专用于海量存储设备类对应的命令,如SET_USB_MODE、DISK_READ、DISK_WRITE等。下面以创建ADC.TXT,并向其中写入A/D采样数据为例,其工作流程如图3所示。

用FAT16文件系统存储文件时最小单元为簇。即使一个很小的文件也会占用一簇,所以,为了节约存储空间,在图3中将创建同名文件并向其中写入数据转换为向原文件追加数据。

pIYBAGBtgZyAatJgAAD-oL7nzvw216.png

3 大容量数据采集系统设计

利用已设计好的嵌入式USB-Host搭建起大容量数据采集系统,系统的框图如图4所示。

pIYBAGBtgamAFUXOAAB5A5U6qAs104.png

温度传感器采用DS18B20。它是单总线数字温度传感器,测量范围为-55~+125℃,可编程9~12位A/D转换精度,测温分辨率可达O.0625℃。液晶采用TM320240ECCW,它是320×240点阵液晶,显示控制芯片是SED1335,既可以以文本模式显示所测温度数据,也可以自建平面坐标以曲线模式显示温度数据。外扩了4×5键盘,用于设定采集的时间间隔、时间长度;系统所允许的高、低温容限;设定采集时的时间以及输入自己想查看数据的存储区域。

键盘用8279管理,目的是减轻单片机的负担。因为单片机处理温度采集及温度数据在液晶上显示时已经耗去一些时间,再加上定时和不定时的读/写U盘,负荷已经很重了,所以键盘扫描与处理交给8279来做。单片机采用查询方式查询8279的中断。

驱动程序包括液晶驱动、DS18820驱动和8279驱动。其中主要的工作是液晶驱动程序的编写。液晶驱动包括初始化液晶、读写参数子程序、写命令子程序、建坐标子程序、绘点子程序、汉字写入子程序等。液晶在系统初始化和对U盘初始化与枚举时显示提示信息,在采集过程中,以曲线模式显示温度数据。

结语

基于CH375S实现的USB-Host接口,其硬件结构便于在其他开发平台上扩充,其核心的文件层协议栈采用标准的C语言编写,具有良好的移植性。类似的基于USB的大容量数据采集方案已用于轻轨铁路、无纸记录仪的数据存储系统中。随着USB OTG时代的到来,基于USB的大容量数据采集将会有非常广阔的应用前景。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45337

    浏览量

    663384
  • 驱动
    +关注

    关注

    12

    文章

    1928

    浏览量

    88185
  • 移动硬盘
    +关注

    关注

    2

    文章

    177

    浏览量

    44839
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于GIS的海洋环境数据采集与管理系统

    基于GIS的海洋环境数据采集与管理平台系统
    的头像 发表于 09-19 17:09 335次阅读
    基于GIS的海洋环境<b class='flag-5'>数据采集</b>与管理<b class='flag-5'>系统</b>

    智能工厂为什么需要数据采集物联网系统

    智能工厂作为工业4.0的核心载体,其高效运行依赖于对生产全流程的精准感知与实时控制。数据采集物联网系统(IIoT,工业物联网)通过连接设备、传感器和系统,实现数据的自动化、智能化
    的头像 发表于 07-18 14:52 669次阅读

    数据采集网关如何与现有工业系统整合?

    物通博联数据采集网关与现有系统的整合可以通过以下步骤和方法实现,确保数据的高效采集、传输和处理,同时满足工业生产环境中的实际需求。 一、整合方法概述 物通博联
    的头像 发表于 06-07 09:18 606次阅读

    DCS数据采集系统有什么功能

    DCS(分布式控制系统数据采集系统是一套集数据采集、处理、监控、控制和分析于一体的综合性工业自动化系统。作为介于制造执行
    的头像 发表于 04-01 17:12 886次阅读

    CNC数据采集到MES系统方案

    将CNC数据采集到MES系统的方案,旨在实现生产过程的数字化、自动化和智能化管理。以下是一个详细的方案介绍: 一、方案概述 该方案通过集成先进的传感器技术、物联网技术(IoT)和数据采集平台,实时
    的头像 发表于 03-14 15:13 759次阅读
    CNC<b class='flag-5'>数据采集</b>到MES<b class='flag-5'>系统</b>方案

    MES系统为什么需要数据采集网关

    控机床、自动化生产线、传感器等,它们的通信接口和协议各不相同。数据采集网关具备多种通信接口,如RS232、RS485、以太网、USB等,能够连接各种设备,将它们接入到MES系统中,实现设备与
    的头像 发表于 03-12 09:33 726次阅读

    数据采集系统的组成与分类-全套 DAQ 解决方案,尽在度纬科技

    数据采集系统在现代工业、科研和工程领域中扮演着关键角色,其主要任务是采集、处理、存储和分析各种信号数据,为用户提供可靠的决策依据。数据采集
    的头像 发表于 02-18 16:21 989次阅读
    <b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的组成与分类-全套 DAQ 解决方案,尽在度纬科技

    数据采集系统的典型应用

    一、数采系统的介绍 数据采集系统是一种综合运用数据采集技术、计算机技术、传感器技术和信号处理技术等信息技术的系统。主要是利用传感器来
    的头像 发表于 02-18 16:19 1432次阅读
    <b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的典型应用

    电机数据采集网关具有哪些特点?

    电机数据采集网关是一种专门用于电机系统数据采集和传输的设备,它在电机监控、优化和维护方面发挥着关键作用。电机数据采集网关的特点主要包括以下几个方面: 1、
    的头像 发表于 02-14 16:49 708次阅读
    电机<b class='flag-5'>数据采集</b>网关具有哪些特点?

    数据采集与控制系统应用说明

    在快速发展的科技时代,数据采集与控制系统作为工业自动化领域的核心组成部分,智能化应用、广泛融入,以极快的速度推动着制造业的转型升级,提升生产效率,实现资源的优化配置,为企业的可持续发展奠定坚实
    的头像 发表于 02-13 15:37 873次阅读

    峟思量水堰计的数据采集频率和存储容量是多少?

    深入探讨峟思磁致式量水堰计的数据采集频率和存储容量,特别是其存储容量如何受到MCU自动采集设备的影响。数据采集频率:灵活且高效峟思磁致式量水
    的头像 发表于 02-12 16:18 676次阅读
    峟思量水堰计的<b class='flag-5'>数据采集</b>频率和存储<b class='flag-5'>容量</b>是多少?

    自动化设备数据采集系统介绍

    在当今数字化浪潮席卷全球的时代,制造业正经历着深刻的变革。自动化设备数据采集系统作为这一变革浪潮中的关键技术,犹如制造业智能化的核心引擎,为企业的高效运营、精准决策以及持续创新提供了强大动力。 一
    的头像 发表于 01-15 14:29 1046次阅读

    简仪科技USB数据采集模块介绍

    USB-1601是一款多功能的USB数据采集(DAQ)模块,提供500 ppm精度,16位分辨率,16个模拟输入通道、2个模拟输出通道以及可编程的数字I/O。它支持高达250 kS/s的采样率和1
    的头像 发表于 12-26 11:47 1269次阅读

    可与MES系统集成的数据采集监控平台

    可与MES系统集成的数据采集监控平台,在制造业中扮演着至关重要的角色。这类平台通过实时采集各类数据源,对数据进行整合和统一管理,为MES
    发表于 12-16 15:08

    FPGA的多通道数据采集传输系统

    一、系统总体方案设计 为了满足油田增压站对数据采集的需求,我们设计了一套基于FPGA的多通道数据采集与传输系统系统以FPGA作为主控制器,
    的头像 发表于 12-09 10:45 1211次阅读
    FPGA的多通道<b class='flag-5'>数据采集</b>传输<b class='flag-5'>系统</b>