什么是数据采集器_电能表数据采集器的设计与应用

核心提示数据采集器是一种用于采集和记录数据的设备或软件。它可以连接到各种传感器或设备,收集并存储数据,以供后续分析和应用。电能表数据采集器是一种特定类型的数据采集器,用于采集和记录电能表的数据。电能表数据采集器的设计与应用主要包括以下几个方面:1.

数据采集器是一种用于采集和记录数据的设备或软件。它可以连接到各种传感器或设备,收集并存储数据,以供后续分析和应用。电能表数据采集器是一种特定类型的数据采集器,用于采集和记录电能表的数据。电能表数据采集器的设计与应用主要包括以下几个方面:1. 设计:电能表数据采集器通常由硬件和软件组成。硬件部分包括采集模块、存储模块、通信模块等,用于采集、存储和传输数据。软件部分包括数据处理和管理软件,用于对采集的数据进行处理和管理。2. 应用:电能表数据采集器主要应用于电力系统中,用于采集和记录电能表的数据。它可以实时监测电能表的用电情况,包括用电量、功率因数、电压、电流等参数。采集的数据可以用于电力系统的运行管理、能源消耗分析、电费计量等方面。八爪鱼采集器是一款功能全面、操作简单、适用范围广泛的互联网数据采集器。如果您需要采集数据,八爪鱼采集器可以为您提供智能识别和灵活的自定义采集规则设置,帮助您快速获取所需的数据。了解更多八爪鱼采集器的功能与合作案例,请前往官网了解更多详情

基于USB主机的温度采集系统硬件电路设计

集成电路设计的流程一般先要进行软硬件划分,将设计基本分为两部分:芯片硬件设计和软件协同设计。

集成电路设计的流程一般先要进行软硬件划分,将设计基本分为两部分:芯片硬件设计和软件协同设计。芯片硬件设计包括:

1.功能设计阶段。

设计人员产品的应用场合,设定一些诸如功能、操作速度、接口规格、环

境温度及消耗功率等规格,以做为将来电路设计时的依据。更可进一步规划软

件模块及硬件模块该如何划分,哪些功能该整合于SOC 内,哪些功能可以设

计在电路板上。

2.设计描述和行为级验证

功能设计完成后,可以依据功能将SOC 划分为若干功能模块,并决定实现

这些功能将要使用的IP 核。此阶段间接影响了SOC 内部的架构及各模块间互

动的讯号,及未来产品的可靠性。

决定模块之后,可以用VHDL 或Verilog 等硬件描述语言实现各模块的设

计。接着,利用VHDL 或Verilog 的电路仿真器,对设计进行功能验证(function

simulation,或行为验证 behavioral simulation)。

注意,这种功能仿真没有考虑电路实际的延迟,也无法获得精确的结果。

3.逻辑综合

确定设计描述正确后,可以使用逻辑综合工具(synthesizer)进行综合。

综合过程中,需要选择适当的逻辑器件库(logic cell library),作为合成逻辑

电路时的参考依据。

硬件语言设计描述文件的编写风格是决定综合工具执行效率的一个重要

因素。事实上,综合工具支持的HDL 语法均是有限的,一些过于抽象的语法

只适于作为系统评估时的仿真模型,而不能被综合工具接受。

逻辑综合得到门级网表。

4.门级验证(Gate-Level Netlist Verification)

门级功能验证是寄存器传输级验证。主要的工作是要确认经综合后的电路

是否符合功能需求,该工作一般利用门电路级验证工具完成。

注意,此阶段仿真需要考虑门电路的延迟。

5.布局和布线

布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置。布线则指完成各模块之间互连的连线。注意,各模块之间的连线通常比较长,因此,产生的延迟会严重影响SOC的性能,尤其在0.25 微米制程以上,这种现象更为显著。 目前,这一个行业仍然是中国的空缺,开设集成电路设计与集成系统专业的大学还比较少,其中师资较好的学校有 上海交通大学,哈尔滨工业大学,哈尔滨理工大学,东南大学,西安电子科技大学,电子科技大学,复旦大学,华东师范大学等。这个领域已经逐渐饱和,越来越有趋势走上当年软件行业的道路。

基于USB-Host的大容量数据采集系统的设计

作者:长江大学 万天军 徐爱钧 李家绪 时间:2007-01-26 来源:《单片机与嵌入式系统应用》 浏览评论

引言

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

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

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

图1 usb大容量存储设备软件结构示意图 图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主机接口时,外围元器件只需要晶振和电容,就可以方便地挂接到单片机/dsp/mcu/mpu等控制器的系统总线上。考虑到读/写u盘或移动硬盘时一般都是以扇区模式进行的,所以要加磁盘数据缓冲区和文件数据缓冲区(都是512字节的整数倍),并且缓冲区越大,执行的效率越高,所以外扩了32 kb的ram。

usb-host电路如图2所示。

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

①创建文件。在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中将创建同名文件并向其中写入数据转换为向原文件追加数据。

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

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

温度传感器采用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的大容量数据采集将会有非常广阔的应用前景。

 
友情链接
鄂ICP备19019357号-22