单片机测试系统的数据存储和管理

发布者:平章大人最新更新时间:2007-10-19 来源: 电子设计信息网关键字:实时  逻辑  线性  速度 手机看文章 扫描二维码
随时随地手机看文章
引言

在自动化测试领域里,单片机测试系统凭借其成熟的应用体系,简单的系统结构以及优良的性价比得到了越来越广泛的应用。近年来,随着新的测试对象不断出现,以及测试手段的不断发展,测试系统的功能越来越完善,各种应用场合对测试系统的要求也日益提高。现在的大多数测试系统不仅要完成工业现场的实时测控任务,同时还要进一步实现对测试数据的实时处理和保存。以往在一般的单片机测试系统中,信息的存储量并不大,系统只须用较少的资源就能实现数据的存储。但是随着存储芯片技术的不断发展,适用于单片机系统的存储芯片已经可以在掉电保护的情况下保存上百KB甚至几MB的数据;同样,目前的单片机测试系统也面临动辄处理并保存上千条乃至近万条测试数据的问题。这对一般的缺少操作系统支持的单片机测试系统来说,是一项相当复杂的工作,因而目前的测试系统往往只能针对具体数值对象进行处理,对大量采集数据采取简单的顺序存储方式。显然,这种方法缺少灵活性,不利于单片机测试系统处理大量测试数据,限制了测试系统在这方面的发展。

本文主要针对处理测试数据量较大的一类测试系统,讨论测试数据的存储和管理问题。这类测试系统往往由抗干扰能力较强的单片机和大容量、掉电保护的存储芯片组成,同时配有高精度数字式传感器;造价便宜,性能稳定,适合工作在工业现场,保存和处理大量测试数据,有的甚至能够与上位机组成测控网络完成更为复杂的测试任务。本文将介绍一种应用于单片机测试系统的链式存储方式,能够在工业现场进行实时测控的同时,实现对大量测试数据的保存和管理,在实际应用中取得了良好的效果。

大容量单片机测试系统中的存储结构

在大多数自动测试系统中,测试数据的逻辑结构一般都会遵循线性逻辑关系,即数据元素在时间或者空间顺序上只分先后次序而不存在上下层次。因此在设计存储结构时往往采用顺序存储结构,其优点在于处理线性数据结构时速度快,而且结构简单。

但是上述情况在前文所述的大容量测试系统中并不是普遍适用的。大容量测试系统虽然同样是线性逻辑结构,但其测试数据变化多样,构成数据元素的内部结构也非常复杂,而且系统又要执行数据保存和数据查询等多项指令操作,如果再应用顺序存储结构就会面临许多问题。

首先,测试系统经常会面临一些较为特殊的测试对象。其测试信息较为复杂且数据长度不固定,显然不利于采用顺序存储结构。假设系统按照时间或空间上的逻辑顺序来进行顺序存储,那么对存储空间的分配将成为难题。若分配空间过大,则影响存储效率;反之,又会出现数据溢出的情况。类似地,假设系统能够安排好数据的存放空间,在进行数据查询、数据删除等操作时系统也会显得力不从心。

其次,采用顺序存储结构不能很好地处理抽象数据类型。系统在进行数据保存、数据查询以及数据删除等操作时都要考虑数据元素的长度和内容,不能做到灵活、有效。当系统需要修改或升级时,对数据元素内部结构的修改又会影响到系统的整体操作,从而降低了系统的可靠性和高效性,同时使得系统进行维护和升级的难度大大增加。

综上所述,顺序存储结构并不能解决大容量测试系统在存储和管理数据时面临的所有问题,因此在实际操作中必须考虑非顺序存储结构的应用。长久以来,在单片机系统中较少采用诸如链式存储结构等非顺序存储结构,原因在于链式存储结构必须有一套专门的存储管理系统来支持。在通用计算机中,这一功能由操作系统或高级语言的编译系统来实现,但在普通单片机系统中没有成熟的应用案例,因而使程序设计的难度较高。下面介绍一种应用于大容量单片机系统的存储管理系统,能够支持大容量单片机测试系统的应用链式存储方式。

大容量测试系统的存储管理系统

对于采用链式存储结构的大容量测试系统,链表中各结点的物理地址是不固定的。为避免在保存数据时可能出现的存储空间冲突问题,需要建立专门的存储管理系统来管理存储空间的开辟和释放。其中,数据引导表是存储管理系统的基础,负责记录存储空间中各个数据元素的存储信息。利用数据引导表,同时配合实现开辟空间、释放空间等操作的函数,测试系统能够实现对大量存储空间的有效管理。

数据引导表

建立数据引导表,就是建立一种链表中各结点与其相应物理地址之间的联系,规范每个结点对存储空间的使用。在测试系统中,引导表只是占用存储空间内划分的一段固定区域,其记录对象是一段已被分配占用的连续地址空间的首地址和末地址,标志着保存在存储空间上的某个结点所分配占用的空间大小,称为一个“记录”。各个记录在引导表中的物理地址是连续的,并且按照每个记录首地址的大小依次排列。数据引导表工作原理如图1所示。

图1 数据引导表工作原理示意图

在初始状态时,内存引导表只有2个记录,表明整个存储空间的首地址和末地址,此时整个页面空间没有存储任何测试数据。一旦有新的结点需要在这一空间上保存,CPU将为该结点开辟一段连续的存储区间供其使用,并将该段空间的首地址和末地址作为一个记录写入内存引导表中。同样的当系统需要在某一页面上删除一个链表中的结点时,CPU将其对应的记录在内存引导表中删除,以此来释放此段地址空间。值得说明的是,对于在引导表中被释放的存储空间部分,其保存的内容并没有真正删除;在新的数据覆盖该地址之前,CPU还是可以通过直接访问该地址来读取其中的存储数据。

管理存储空间的函数

一般来讲,在通用计算机中往往利用C语言中的标准库函数malloc()、realloc()和free()来实现对存储空间的分配和管理,但这种方式对于一般的大容量测试系统并不合适。

假设在前文所述的大容量测试系统中,系统采用16位地址的单片机,利用分页存储模式对512KB掉电保护存储器进行访问。将存储器分为16个页面(00H~0FH),每个页面地址为0000H~7FFFFH,共计32KB。此时系统利用malloc()可以在未被使用的空间中开辟一段存储空间,但是该函数返回的地址指针是随机的,有可能将空间分配在系统无法识别的区间(如7FFFH~FFFFH),因此不能满 足需要。另外,由于系统中存储器具有掉电保护功能,CPU在重新上电后将无法识别已保存测试数据的存储空间,从而使malloc()函数失去意义。因此,还是以数据引导表为基础来建立存储空间的管理函数。其具体功能的实现都依赖于函数对数据引导表中各个记录的操作,程序如下:  

void *m_alloc(uintsize,ucharpage)//开辟存储空间的函数
void *m_free(voidxdata*p_free,ucharpage)//释放已开辟存储空间的函数
void *re_alloc(voidxdata*p_re,uintsize,ucharpage)//重新开辟存储空间的函数

以m_alloc()函数为例,其程序流程图如图2所示。

图2 开辟存储空间函数m_alloc()的程序流程

当系统需要为某一结点开辟存储空间时,首先给出指定的存储空间页面page和需要开辟空间的长度size,然后通过m_alloc()函数在相应页面的引导表内查询是否有合适的存储空间。由于引导表中每个记录都代表一段已被分配的连续的地址区间,因此m_alloc()函数会从第一个记录开始判断每两个相邻记录之间未被分配空间的长度是否满足系统的需要。当有一对记录满足条件时,m_alloc()函数会返回该段未被分配存储空间的首地址(即前一个记录的末地址)指针,同时在这两个记录中间插入此次开辟空间段的新记录。如果该页面引导表的所有记录都不满足条件,则m_alloc()函数返回空指针。re_alloc()函数和m_free()函数分别完成重新分配指定首地址的一段存储空间和删除指定首地址的一段存储空间的操作。其功能和用法与m_alloc()类似,不再赘述。

链式存储结构和存储管理系统在实际操作中的应用

利用上文所述的存储管理系统可以实现在大容量测试系统中应用链式存储结构,这样做的好处在于能够有效地简化系统存储数据的过程,有利于执行多项指令操作,提高系统存储空间的利用率。

SF6密度继电器校验系统

如图3所示,SF6密度继电器校验系统由51系列单片机、512KB掉电保护存储器、打印机、时钟系统和LCD组成,配有高精度的数字式压力传感器和温度传感器,可以通过485总线与上位机通信。该系统能够对不同类型的密度继电器进行校验,满足各种额定参数和接点数目的需要,在校验过程中实现实时显示、打印数据等多项功能;对同一继电器能够保存多组校验数据,最多可保存4000多条校验数据;对于所有的校验记录,都可以随时进行查询;另外,在与上位机进行通信时,有相应的上位机软件对下位机系统进行的数据传输、存储器空间查询和数据删除等操作。

图3 SF6密度继电器校验系统结构框图

具体来讲,SF6密度继电器校验系统以SF6密度继电器作为校验对象,校验结果包含SF6气体的压力值和温度值,因此将每个校验对象的校验结果抽象为一个数据元素,分别包括该校验对象的测试信息(如测试日期,继电器的测试序号、接点数目和额定参数信息)和一组或多组的测量值信息(如校验次数、报警、闭锁1、闭锁2、超压接点分别动作、返回时的压力值和温度值)。系统以每个数据元素为结点建立链式存储结构,并通过上述的管理存储系统来管理存储空间的分配,这样既能保证有效、合理地保存校验数据,又能很好地实现数据查询、数据删除以及与上位机通信等操作,使系统的运行更加高效可靠。

非线性逻辑结构的自动测试系统

当自动测试系统面临非线性逻辑结构的数据元素时,必须要采取非顺序存储结构来保存数据,此时可以考虑链式存储结构,或者索引存储结构以及二叉树等各种非顺序存储结构,但前提条件都是要有一套专门的存储管理系统来支持。

有了上述的存储管理系统作基础,各种非顺序存储结构的应用就成为可能。在设计系统时充分权衡存储空间的利用率和算法所耗费的时间,就能够有针对性地应用多种存储结构并设计出相应的算法,以满足各种测试对象和测试环境的要求。

结语

以链式结构的形式保存数据和通过数据引导表来管理存储空间,是应用于大容量单片机测试系统的一种新的数据保存和管理方式。

这种存储方式既适用于线性逻辑结构测试系统,也适用于非线性逻辑结构测试系统,总体上使得单片机系统在处理多项复杂数据并进行反复保存、查询和删除等操作时更加快捷简便,提高了对有限容量存储空间的利用率;同时,结构化的数据存储使得系统的维护和升级更加轻松,实现了系统的结构化管理。

关键字:实时  逻辑  线性  速度 引用地址:单片机测试系统的数据存储和管理

上一篇:单向双端口SRAM的测试算法
下一篇:8位LED显示40NHz频率计芯片NB8216D

推荐阅读最新更新时间:2024-03-30 22:05

非接触式IC卡趋势 CPU卡将替代逻辑加密卡
  非接触式IC卡作为IC卡的一种重要形式,近年来同样得到了很大的发展。本文将对非接触式IC卡芯片技术的发展趋势做一个分析。   1. 引言   IC卡自上世纪70年代诞生以来得到了很大的发展,现在IC卡已经逐步进入了包括金融、通信、医疗、公交、身份识别等在内的多个应用领域,使用IC卡的人也越来越多。非接触式IC卡作为IC卡的一种重要形式,近年来同样得到了很大的发展。本文将对非接触式IC卡芯片技术的发展趋势做一个分析。   2. 非接触式IC卡芯片技术的发展趋势   1)CPU卡芯片取代逻辑加密卡芯片的发展趋势   目前市场上最常见的非接触式IC卡是非接触式逻辑加密卡,这类IC卡凭借其良好的性能和较高的性价比得到了广大用
[安防电子]
非接触式IC卡趋势 CPU卡将替代<font color='red'>逻辑</font>加密卡
美国国家半导体推出业界最低功率而传播延迟不超过1纳秒(ns)的高速比较器系列
这一全新系列的单、双及4通道比较器芯片适用于工业系统、医疗设备以及测试和测量产品 二零零七年四月二十六日 -- 中国讯 -- 著名的高性能模拟信号路径产品供应商美国国家半导体公司 (National Semiconductor Corporation)(美国纽约证券交易所上市代号:NSM)宣布推出一款业界最低功率(典型值为21mA)而传播延迟时间不超过1纳秒(700ps)的双通道比较器。新推出的这款LMH7322双通道比较器与LMH7220单通道比较器是美国国家半导体单、双及4通道高速比较器系列的两个不同型号。这两款比较器与其他型号的产品都设有低电压差分信号传输(LVDS)及更低电压摆幅正射极耦合逻辑(RSPECL)输出。美国国
[新品]
三星S9加强生物识别技术 识别速度更快
三星将致力于提高Galaxy S9的虹膜识别和人脸识别技术。据韩国媒体的报道称,三星正在进一步加强软件功能以提高面部识别和虹膜识别的速度。   但消息人士透露,三星S9并不会采用新的传感器。其用于人脸识别的800万像素镜头与三星S8保持一致。这也就意味着在硬件不变的情况下,三星会通过软件层面的升级,带给用户全新的体验。当然,传感器保持在上代水平,三星S9元器件的开发成本会有所减少,这或许会对三星S9的最终售价造成一些影响。   其实,自从iPhone X问世以来,搭载面容ID的这款苹果旗舰,便对三星造成了很大的威胁,因此三星加强虹膜识别和人脸识别技术并不让人意外。而目前除了iPhone X之外,也确实有很多安卓厂商推出了人脸识别
[手机便携]
5G带给我们的不仅仅是速度,它会改变我们的生活
从4G技术开始,我们就很难推测下一步的应用场景是什么,就像我们不能预测像iPhone这类移动设备、优步、滴滴等移动应用的出现。相对于4G,5G作为一种通信技术必然会在人类社会无处不在,它将给人类社会带来非常积极的多种变化,但这个变化具体是什么,将更难推测,可能是虚拟现实、更多的机器人应用,甚至飞行汽车,还有更多的全息影像,但这都是很难具体预测的。下面就随网络通信小编一起来了解一下相关内容吧。  从4G技术开始,我们就很难推测下一步的应用场景是什么,就像我们不能预测像iPhone这类移动设备、优步、滴滴等移动应用的出现。相对于4G,5G作为一种通信技术必然会在人类社会无处不在,它将给人类社会带来非常积极的多种变化,但这个变化具体是
[网络通信]
对话 TI Sitara MCU 总经理:使实时处理变得简单且实惠产品
对话 TI Sitara™︎ MCU 总经理 Mike Pienovi:使实时处理变得简单且实惠的产品 随着对电子系统边缘实时控制、智能和通信需求的不断增长,高性能 MCU 现在提供了一种简单且经济高效的解决方案。 从智能工厂到智能城市,我们日益自动化的世界要求电子产品具有更高的速度、智能和精度。例如,与人类协同工作的自动化移动机器人需要精确的电机控制来安全地在物体周围导航,并且需要更快的处理速度以进行纳秒级决策 – 这些协同工作的实现都需要相互之间的通信。 为电子系统添加高级边缘分析和高实时性响应即将变得更容易、更实惠。TI Sitara™ MCU 总经理 Mike Pienovi向我们介绍了智能联网系统需求下,影响
[嵌入式]
美新半导体发布全球第一款单片集成三轴加速度
无锡2014年8月15日电 /美通社/ -- 美新半导体,全球领先的 MEMS 传感器和传感系统解决方案供应商,今天宣布推出 MXC400xXC,全球第一款单片集成信号处理和 MEMS 传感器的三轴 (3D) 加速度计,也是全球第一款采用圆片级封装工艺的3D加速度计。3D集成传感器和圆片级封装的整合代表了当今业界最先进的技术, 降低了近60%的成本,缩小了50%的传感器面积 ,引领全新的移动和消费类器件应用,包括移动电话、平板电脑、玩具和可穿戴设备。 这款全新 3D 加速度计的技术突破来自于美新全球独有的专利产品:热式加速度计。该 MEMS 传感器结构直接刻蚀在标准 CMOS 圆片里,是全球唯一的标准 CMOS 单片集成
[单片机]
在嵌入式实时操作系统uC/0SII上移植实现LwIP这套TCP/IP协议栈
内容摘要:结合ez80和ARM7两种系统上的具体实现,说明了如何在嵌入式实时操作系统uC/0SII上移植实现LwIP这套TCP/IP协议栈,使uC/0S II成为支持网络的RTOS。 1 引言 随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。uC/0S II是近年来发展迅速的一个开放源码实时操作系统,但它只是一个实时的任务调度及通信内核,缺少对外围设备和接口的支持,如没有文件系统、网络协议、图形界面。笔者在多个嵌入式项目的开发过程中,以开源TCP/IP协议栈LwIP为基础,给uC/0S II加上了网络支持。下面就以uC/0S II +
[单片机]
基于wifi的医院实时定位管理系统解决方案
某实时定位管理系统(Wi-Fi RTLS)是采用美国Ekahau公司Wi-Fi实时定位系统引擎及相关硬件Wi-Fi电子标签。该系统采用Wi-Fi通信技术,加强对医疗设备、病人的透明管理;可实现对医疗设备及资产的跟踪管理,系统中使用的Wi-Fi电子标签具有病人遇危时可主动呼叫,系统主动呼叫标签等功能,进一步提高医疗机构的运作效率和管理水平,向精细化方向发展。   本定位管理系统可以利用会所现有的Wi-Fi网络,避免完全基础网络重建,无需要特别的Wi-Fi标签阅读器。网络配置、系统软件安装、地图勘测、标签注册及安装、管理系统培训便是完成本定位管理系统安装的主要工作部署。       系统功能   本系统方案主要为医院或医疗机构
[模拟电子]
基于wifi的医院<font color='red'>实时</font>定位管理系统解决方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved