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

发布者:NanoScribe最新更新时间:2008-01-15 来源: www.esic.cn关键字:测试系统  单片机系统  链式存储结构  测试数据  掉电保护  上位机  存储空间  malloc  数字式传感器 手机看文章 扫描二维码
随时随地手机看文章

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

  摘要 介绍一种应用于单片机洲试系统的链式存储结构,其特点在于采用数据结构的存储方式,并结合有效的存储管理方法对系统的存储空间进行管理和分配,从而在普通的单片机测试系统中实现了对大量测试结果的抽象化数据管理,便于系统进行数据保存、数据删除、数据查询以及与上位机的数据传输等各项操作,增强了系统的可靠性和可继承性。

  关键词链式存储结构 数据存储管理 单片机测试系统

  引 言

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

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

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

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

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

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

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

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

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

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

  2.1 数据引导表

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

  

  

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

  2.2 管理存储空间的函数

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

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

  

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

  

  

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

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

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

  3.1 SF6密度继电器校验系统

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

  

  

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

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

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

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

  结语

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

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

  

关键字:测试系统  单片机系统  链式存储结构  测试数据  掉电保护  上位机  存储空间  malloc  数字式传感器 引用地址:单片机测试系统的数据存储和管理

上一篇:微处理器的低功耗芯片设计技术
下一篇:公交车线路微机监控系统的设计与实现

推荐阅读最新更新时间:2024-05-13 21:01

R&S汽车雷达感测器测试系统强化横向电子模拟
罗德史瓦兹(Rohde & Schwarz)的新型R&S RTS雷达测试系统能够模拟驾驶场景,应用于无线自动驾驶汽车(AD)中使用的雷达。测试解决方案包括后端的新型R&S AREG800A汽车雷达回波产生器和前端的R&S QAT100天线阵列。横向移动的物体,即从侧面接近的物体,目前一般通过机械移动天线来模拟。 R&S车用雷达测试系统解决方案 而R&S RTS取代了机械运动,透过电子开关前端的单个天线完成模拟。即使是物体以非常高的速度横向移动到汽车上,也可以保证模拟的可靠性和可再现性。R&S雷达测试系统能够在使用者可配置的范围内(包括非常小的范围)模拟物体的径向速度(多普勒频移)和尺寸(雷达截面)。複数的物件可以通过串
[汽车电子]
R&S汽车雷达感测器<font color='red'>测试系统</font>强化横向电子模拟
基于发动机性能虚拟仪器测试系统设计
   1 引 言   随着发动机电控技术的发展,对发动机测试提出了更高的要求。发动机试验的自动化成为提高发动机测试效率和质量的重要方法。虚拟仪器是用软件将计算机与标准化虚拟仪器硬件结合起来,从而实现传统仪器功能的模块化,以达到自动测试与分析的目的。利用虚拟仪器技术用户可以通过图形化的编程环境和操作界面,轻松完成对待测对象的信号调理、过程控制、数据采集、数据分析、波形显示、数据存储、故障诊断以及网络通信等功能,大大缩短了系统开发周期;同时由于采用了标准化的虚拟仪器软硬件,测试系统的兼容性和扩展性也得到了很大程度的增强;除此以外,虚拟仪器技术的灵活性强和可重用度高,可以使用户的测试系统规模最小化,且易于升级和维护,用户甚至可以使用现
[测试测量]
基于发动机性能虚拟仪器<font color='red'>测试系统</font>设计
基于CAN总线的航空电缆测试系统分布机浅析
  0 引言   航空电缆是飞机的神经系统,连接着飞机电气、航电、火控、操纵等各系统,为飞机各部件提供动力电源、控制信号和数据信息。受飞机机身空间的限制,电缆系统布线一般都集中于狭小的机壁内,飞机机壁内几乎遍布导线,因此航空电缆系统要求高可靠、高集成、高轻便;由于导线种类繁多,各类电源线、高低频信号线、数据线混杂在一起,长度可达数百公里,电气环境十分复杂,从而使其潜在故障增多,许多空难事故和飞行器故障都直接或间接与电缆系统故障有关,因此,航空电缆的 健康 是飞机安全运行的重要保障,电缆安全问题尤为重要。但是国内对于航空全机电缆测试技术的研发比较欠缺,远落后于国外已处于常规应用的现状。   根据飞机全机电缆分布距离长(近百米)、点数
[单片机]
基于CAN总线的航空电缆<font color='red'>测试系统</font>分布机浅析
基于处理器的汽车发动机点火线圈测试系统
1.引言 随着汽车电子点火技术的广泛应用,对电子点火系统各部件的要求也随之提高。 点火线圈作为汽车电子点火系统的重要部件,其性能直接关系到汽车的工况,因此必须准确测试点火线圈各项参数,建立严格的产品出厂检验标准。据调查,我国汽车点火线圈系统的国产在线测试设备多以老式设备为主,智能检测设备较少,而进口设备价格昂贵,且其智能化程度不高。 因此研制出具有自动化、智能化的汽车发动机点火线圈测试系统是科研人员努力的方向。本文着重介绍了这种符合现代化生产要求的汽车发动机点火线圈测试台的设计方法。 2.系统组成 汽车发动机点火线圈测试台的原理框图如图1所示。汽车点火线圈测试台系统的硬件主要由被测件(线圈、负载)、程控信号源、程控电压源、I/O控
[单片机]
基于处理器的汽车发动机点火线圈<font color='red'>测试系统</font>
基于DSP的多频带混合信号测试系统
1混合信号测试的特点和测试要求 随着数字化浪潮的深入,具有混合信号功能的芯片越来越多地出现在人们的生活中。通讯领域的MODEM(如ADSL),CODEC和飞速发展的手机芯片,视频处理器领域的MPEG,DVD芯片,都是具有混合信号功能的芯片,其特点是处理速度高、覆盖的频率范围宽,芯片的升级换代周期日益缩短。这就要求测试系统具有更高的性能和更宽的频带范围,而且需要灵活的架构来应对不断升级的芯片测试需求,以便有效降低新器件的测试成本。此外,混合信号芯片种类繁多,各种具有混合信号的芯片已经广泛运用到生产和生活的各个领域,而不同的应用领域,其工作的频率和所要求的精度也各不相同,这就要求在对混合信号进行测试时,抓住其共性来提出测试方
[嵌入式]
思特威与加速科技签署协议,将开发高速图像采集测试系统
思特威与加速科技正式签署合作协议,将联合开发高速图像采集测试系统! 近日,思特威(上海)电子科技股份有限公司(以下简称“思特威”)将与杭州加速科技有限公司(以下简称“加速科技”)展开进一步深入合作,共同开发用于超高分辨率和超高帧率图像传感器高速接口测试的高速图像采集测试系统。该高速图像采集测试系统预计数据传输速率将达到3.5Gsps,有助于思特威加速后期例如智能手机主摄、无人机、8K智能安防摄像机以及高速工业相机等高端CMOS图像传感器的量产进程,更好地满足客户的需求。 C-PHY 3.5Gsps 近年来随着CMOS图像传感器不断朝着高帧率化与高像素化的趋势发展,摄像头传输影像的数据量持续跃升。为了有效地进行信号
[传感器]
思特威与加速科技签署协议,将开发高速图像采集<font color='red'>测试系统</font>
基于单片机系统中的多任务多线程机制的实现
首先要指出的是一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。 一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原型的各种高端嵌入式处理器。 作为一个完整的操作系统,RTOS有一个可靠性很高的实时内核,将CPU时间、中断、I/O、定时器等资源都包括起来,留给用户一个标准的应用程序接口(API);根据各个任务的优先级,合理地在不同任务之间分配CPU的时间,保证程序执
[单片机]
一种基于PXI技术的无人机综合测试系统
    摘要: 采用虚拟仪器技术,在PXI体系结构基础上设计了某型无人机电气性能综合测试系统,可对无人机全机或各部件的性能进行全面检测。系统具有硬件可靠性高、软件可移植性和可扩充性强等特点,并具有优良的性价比。     关键词: 虚拟仪器 机载设备 参数测试 模块化结构 随着虚拟仪器在测控技术上的广泛应用,设备检测已进入到开放性和具有模块化仪器总线的新阶段。无人机电气性能综合测试系统是基于PXI体系结构而设计的检测设备,可对无人机全机功能、各分系统技术参数、工作程序、协同动作和各种激励响应等进行综合性检测。测试系统不仅能对被测对象的各种物理参数实施非电量到电量的转换、信号调理、数据采集、记录和显示,还能对采集
[测试测量]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved