|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. \4 }& D: s1 Z! C" }摘要:存储管理方法对系统的存储空间进行管理和分配,从而在普通的单片机测试系统中实现了对大量测试结' l S+ T5 h# K
果的抽象化数据管理,便于系统进行数据保存、数据删除、数据查询以及与上位机的数据传输等各项操2 h- m6 K4 e7 }# E/ {" m9 T. @" T
( f/ n3 x& x# Z4 m& d% \) T: ~# X$ R
! w0 e7 h( v+ |2 S
) \1 A4 V% W% t4 p关键词:链式存储结构 数据存储管理 单片机测试系统0 l5 C& ~1 f: t" f( f. l
0 s6 g% ?" }7 g/ {, V
引言5 L+ j+ x2 v8 A0 d( i
在自动化测试领城里,单片机测试系统凭借其成熟的
0 D$ H0 V5 X9 U5 n* S L应用体系,简单的系统结构以及优良的性价比得到了越来
: G0 D+ c1 A `/ d7 W越广泛的应用。近年来,随着新的测试对象不断出现,以.6 t6 j7 _% } A: n8 h* `
及测试手段的不断发展,测试系统的功能越来越完善,各9 H; x0 m8 E# l. m D- n
种应用场合对测试系统的要求也日益提高。现在的大多
3 G7 [6 r1 U% T* ^) d数测试系统不仅要完成工业现场的实时测控任务,同时还
5 g) R7 [9 f: u' u; y! L4 u3 f要进一步实现对测试数据的实时处理和保存。以往在一' S6 F+ {: m3 n
般的单片机测试系统中,信息的存储量并不大,系统只须. }- ]- f/ Q5 J. H! T
用较少的资源就能实现数据的存储。但是随着存储芯片
1 E& J: F. m* o5 W4 A& K, a0 Y技术的不断发展,适用于单片机系统的存储芯片已经可以, q- u1 {, z& M" Q
在掉电保护的情况下保存上百KB甚至几MB的数据;同, a! P' y' T. @+ s2 ~6 Q. h+ M7 `7 X
样,目前的单片机测试系统也面临动辄处理并保存上千条
: Y% t. l, l t& t1 e$ M5 `乃至近万条测试数据的问题。这对一般的缺少操作系统.
+ b! D" k% O7 `3 F ]* A* \' C支持的单片机测试系统来说,是一项相当复杂的工作,因1 {% z6 ]+ R; ^! h8 @; z3 ]# |
而目前的测试系统往往只能针对具体数值对象进行处理,
# r$ ~' j# |3 J& s" V4 ]对大量采集数据采取简单的顺序存储方式。显然,这种方# y5 R2 {) h- x" ]
法缺少灵活性,不利于单片机测试系统处理大量测试数
/ u& {; k% f% E2 o8 n据,限制了测试系统在这方面的发展。
% C$ i8 t# D# G0 x5 R1 b8 J% K5 z本文主要针对处理测试数据量较大的--类测试系统,
/ }- Q& M3 }! W讨论测试数据的存储和管理问题。这类测试系统往往由抗, X8 n( i+ }( z# Q c V6 e# }
千扰能力较强的单片机和大容量.掉电保护的存储芯片组
0 o/ g$ o$ v; L3 q) a成,同时配有高精度数字式传感器;造价便宜,性能稳定,适$ ?, S8 M3 C. ]
合工作在工业现场,保存和处理大量测试数据,有的甚至能
4 R$ n U+ `! e; Y, X: t6 M4 M够与上位机组成测控网络完成更为复杂的测试任务。本文
/ [( D! ~, ]- k4 [2 @; w将介绍一种应用于单片机测试系统的链式存储方式,能够." e4 l& f9 Z3 m/ ]; O# S
在工业现场进行实时测控的同时,实现对大量测试数据的) }% |& e- }% a6 }& E( R7 i, I
保存和管理,在实际应用中取得了良好的效果。
/ Q3 I; _: \! C! E1大容量单片机测试系统中的存储结构
" r# \1 ?# A1 x在大多数自动测试系统中,测试数据的逻辑结构一般; f4 i" M3 U* Z2 f/ G
都会遵循线性逻辑关系,即数据元素在时间或者空间顺序4 w; v8 ?- A, j: ]; v
上只分先后次序而不存在上下层次。因此在设计存储结
6 r3 E/ O2 s" x N+ H构时往往采用顺序存储结构,其优点在于处理线性数据结0 I* o. L) G9 o+ G
构时速度快。而且结构简单。! s0 R* Z4 I8 P! ?9 U3 J6 @
但是上述情况在前文所述的大容量测试系统中并不
, h. w$ ~- h- C8 R- N是普遍适用的。大容量测试系统虽然同样是线性逻辑结. I0 S+ {6 V1 j: e
构,但其测试数据变化多样,构成数据元素的内部结构也
1 m7 B4 y! |# E( l! ^9 ]4 q非常复杂,而且系统又要执行数据保存和数据查询等多项
% X+ r: \; r' x" C指令操作,如果再应用顺序存储结构就会面临许多问题。
" i4 o7 E; _/ f7 E# p% ^首先,测试系统经常会面临- -些较为特殊的测试对1 v$ n9 q( l2 W Q: f
象。其测试信息较为复杂且数据长度不固定,显然不利于; O, e4 f+ J; e) E. q
采用顺序存储结构。假设系统按照时间或空间上的逻辑
( z' ?( i. Z, z2 x) o1 H顺序来进行顺序存储,那么对存储空间的分配将成为难
: Z0 e* m. n6 [6 L, ?题。若分配空间过大,则影响存储效率;反之,又会出现数9 e" S4 K0 S, a* P L* z5 P
据溢出的情况。类似地,假设系统能够安排好数据的存放& x: q( o- u1 {& d; @% m
空间,在进行数据查询.数据删除等操作时系统也会显得6 C: w, j0 k+ z- L* u8 w' h$ w8 ?
力不从心。
9 s: r% y/ H5 T- C, ]; o其次,采用顺序存储结构不能很好地处理抽象数据类
9 E6 c" Q9 C" j( T. O4 _型。系统在进行数据保存、数据查询以及数据删除等操作4 ~ n, M* s* D
时都要考虑数据元素的长度和内容,不能做到灵活.有效。. Z: L/ A- ~# h: ^3 ?9 D, |
当系统需要修改或升级时,对数据元素内部结构的修改又6 X* N0 [1 `0 Y, A- z) e
会影响到系统的整体操作,从而降低了系统的可靠性和高* a3 b8 t: r p
效性,同时使得系统进行维护和升级的难度大大增加。
5 W, r c' x) e8 r, } f综上所述,顺序存储结构并不能解决大容量测试系统% `5 z! N) a4 r/ n
在存储和管理数据时面临的所有问题,因此在实际操作中
8 k* ?5 V7 A/ R4 ^. K必须考虑非顺序存储结构的应用。长久以来,在单片机系: h: ^$ ]. t Y1 y% N; z7 W7 Y& B
D% G3 x1 }: r4 f* G8 m5 d1 Y& ~1 l; P. j [" {
! i" w G: L4 J Z J
附件下载:
, W. H* r* G- z5 Q; | |
|