可视化的微控制器分析平台设计*

2012-08-10 03:41李瑞娟
通信技术 2012年11期
关键词:堆栈微控制器内存

李瑞娟

(柳州职业技术学院,广西 柳州 545006 )

0 引言

微处理器内核运行过程一直是学生在学习微控制器原理相关知识过程中的难点。通过开发微控制器的相关实验,让学生直接能够观测到微控制器内部的运行过程和运行机制,能够极大提高学生对微控制器的学习兴趣和动力,同时能够让学生理解微控制器内部的结构和运行机制[1-2]。然而由于微控制器内部的运行过程一般难以直接进行观测,而且也没有很好的工具或者环境能够时时地观测微控制器内部的结构和运行过程。目前采用的一般方式是通过模拟仿真软件来模拟微控制器的运行过程。通过模拟仿真软件为用户提供的微控制器内部计算器,内存和IO端口等数据交换窗口让用户能够观测到微控制器内部的运行过程。然而基于模拟软件的微控制器过程及实验环境只能够为用户提供微控制器内部观测的机会,无法为用户提供更多功能更全面的微控制器内部运行机制的相关实验环境,也不支持用户在此基础上进一步开发针对微控制器内部运行机制的相关实验[3-4]。为了提高其组织机构和工作机制的问题深入学习和研究,除了需要能为学生提高微控制器内部可视化环境,更为学生提供在此基础上进行二次开发和更加复杂和深入的微控制器相关实验的平台[5-6]。

因此,本文对微控制器运行之后,提出了一种可视化的微控制器运行过程和分析实验平台。该实验平台能够为用户提供微控制器内部执行过程的相关信息的输出。而且该实验平台通过对微控制器运行过程的模拟,及输入输出接口的映射。还能够为用户在此基础上在对实验平台进行二次开发,设计一些针对微控制器内部运行机制的相关实验,有助于学生对微控制器内部进行机制深入地学习和理解。

1 可视化分析平台的设计

本文设计的可视化微控制器分析设计平台(如图1所示),主要需要实现两个功能:①能够对微控制器的运行过程进行展示,并将微控制器各主要计算器以及内存IO端口等信息进行输出,给用户以直观的展示;②可视化微控制器实验平台能够为微控制器内部执行过程管理的相关实验提供环境和支撑。因此,可视化分析实验平台在设计上首先能够完全模拟微控制器的运行过程,能够准确将微控制器运行过程的各个状态进行记录,通过一定软硬件模块将信息进行输出,同时也能够对外围输入的相关的微控制器运行过程相关控制信息进行接收和处理,并对微控制器的相关信息进行正确响应[7-8]。由于可视化实验平台的相关控制实验是在可视化运行平台的基础上进行扩展,整个实验最基础的部分是对分析实验平台的设计。本文设计的可视化微控制器运行平台如图1所示,从图中可以看出,微控制器运行过程实验平台的核心是基于微处理器的嵌入式平台。在该平台上运行虚拟化的模拟软件,实现该控制器的详细模拟[9-10]。当用户需要监测微控制器上的执行某一段程序的详细过程时,则将该程序段送入虚拟化的模拟环境中进入模拟运行。虚拟环境能够模拟微控制器的运行过程,将目标程序的运行结果进行输出,同时还能够模拟目标程序在运行模拟阶段对微控制器的影响。

图1 基于虚拟化技术的可视化实验平台

通过虚拟化的运行环境,对目标程序的运行过程进行模拟之后,能够得到目标程序在在运行过程中微控制器各个部件的状态和运行结果。之后在基于微处理器的嵌入式平台开发相应的可视化分析程序,对虚拟化运行环境得到的各个状态信息及运行结果进行输出,在本文设计可视化分析平台中,主要对微控制器的各种IO信息,内存信息以及计算器信息进行输出,采用不同的数据映射模块实现虚拟化运行环境中得到的运行数据和状态信息往外输出[11-12]。在可视化分析平台的外围,设计一定的可视化显示终端,主要包括LED指示灯,LED,以及LCD显示屏等显示终端。而且每一种显示终端都对应不同类型的信息的显示,通过这种基于虚拟化技术的可视化实验平台,可以实现将目标程序运行的全过程的相关信息可以输出,用户可以通过观测可视化实验平台输出的各种目标程序的详细运行过程,实现对微控制器执行过程的理解。

2 微控制器运行过程可视化研究

微控制器运行过程的可视化研究主要研究如何将运行过程的信息进行采集。并将采集到的信息加以输出。由于目前微控制器在设计上并不支持用户直观的观测到微控制器的运行过程,也没有相应的接口供用户进行二次开发。因此微控制器运行过程,对用户来讲是一个黑盒。为了观测和研究微控制器的运行过程,首先要建立虚拟的仿真平台,在仿真环境下将微控制器的各种硬件结构进行模拟。然后当微控制器加载了目标程序之后,对目标程序的运行过程进行动态模拟和跟踪,并对全过程实行信息的采集,以实现对微控制器运行过程的原始信息的获取。

微控制器在运行过程中,所有的状态信息主要表现在计算器,IO端口,内存等三个部分。因此对微控制器进行模拟的时候需要分别模拟微控制器内部的计算器,IO端口和内存信息变化过程。在建立虚拟环境微控制器执行过程的时候,虚拟环境一般会模拟微控制器内部的所有硬件结构,包括计算机,IO端口和内存。因此,在虚拟环境当中,能够准确得到微控制器运行过程中这三类信息的变化过程。能够通过直观的可视化界面进行认识,因此在获取了微控制器在虚拟环境中运行的各类信息之后,需要设计相应的可视化显示程序,将采集到的各种信息输出来,即所有的信息需要从虚拟环境中映射到外部处于控制功能的平台,即处于图一中间位置的微处理器嵌入式平台,在该平台中要开辟一段存储区域对虚拟化运行环境中目标微处理器的相关计算器,IO端口,和内存信息进行存储。然后根据所存储的内容和种类不同,由可视化实验平台的相关显示设备进行输出示。

3 可视化模块的设计

3.1 寄存器的可视化设计

可视化实验平台的实现过程主要包括三个不同信息内容的可视化实现。即寄存器的可视化信息实现,IO端口的可视化信息显示和内存的可视化实现。其中寄存器的可视化显示和 IO端口的显示都可以通过LED灯的形式显示。但是由于计算器的数量相对少少,信息比较固定。因此,LED的显示一般都采用LED灯进行显示,在利用LED显示计算器的运行状态时,每个LED代表一个计算器后位,通过LED的亮或灭代表寄存器的01比特数值。由于LED灯可以直接通过微控制器控制,也可以由微控制器经过三极管进行驱动控制,整个实现较为简单,因此对LED的显示模块不详细介绍。

3.2 内存的可视化设计

内存的可视化显示采用LCD屏的形式显示,由于内存区域较大,即使使用可视面积较大的LCD 屏幕,仍然难以把整个内存区域进行显示。因此对内存信息进行显示的时候,必须选择某一特定的地址区块进行显示。对信息显示的格式也分地址区和数据区两个部分。如图二所示,每次LCD屏幕上的信息只涉及到内存信息当中的一段数据的内容,图中给出的是基于LCD的内存可视化实现原理图,通过将内存的数据映射到LCD屏幕的显示区域,直接读取内存数据中的相关内容进行格式转换之后显示在LCD屏幕的可视区域当中。为了提高 LCD屏幕的观测范围,可以将LCD屏幕设定不同的区域显示不同的区块,以便实现在一个LCD屏幕上对多个内存区域的数据进行监视(如图2所示)。

图2 基于LCD的内存可视化实现原理图

3.3 堆栈的可视化设计

在对微控制器运行过程进行可视化设计时,微控制器运行过程中还有一类信息往往需要进行监测,即微控制器运行过程中的堆栈变化情况。而且在目前绝大多数嵌入式系统中都使用了堆栈对数据进行管理,堆栈是使用最为频繁的数据结构。而且随着结构的运行时刻发生改变,因此对堆栈的运行过程和堆栈信息内容的理解一直是学生在学习嵌入式平台中的难点,因此在开发可视化的微控制器运行过程实验平台时,需要专门设计堆栈的可视化实现模块。

本文设计的堆栈可视化实现模块,采用的是基于数码管阵列的形式拼接显示。由于每一个数码管阵列所能够显示的行和列数目是有限的。为了能够对堆栈中的数据进行完整的表示,构建了一个数码管阵列,数码管阵列当中的每一行代表堆栈当中一行的数据。在数码管的显示区域内,处于有效数据的最顶端代表的是堆栈的栈顶,数码管对底端的数据代表的是堆栈栈底的数据。基于数码管阵列的可视化示意图如图3所示,当微控制器内部程序处于运行状态时,在执行程序调用或者中断等过程时,都会涉及到堆栈的压栈和出栈等操作。通过基于数码管阵列的可视化实现,可以让用户清楚地看到微控制器内部堆栈增长和退去的和过程,也能够看到当前堆栈当中所存储的所有数据,而且助于用户理解微控制器中程序的运行过程。

图3 基于数码管阵列的堆栈的可视化示意图

4 结语

微控制器的执行过程一直是一个非常抽象的知识点,学生在学习微控制器相关内容的时候一直缺乏很好的环境和工具对微控制器过程进行深入的理解和研究。这极大地阻碍了学生对微控制器相关知识的学习兴趣和动力,更缺乏相应的实验环境和平台,让学生能够对微控制器的执行过程开展更为深入的实验和分析工作[13]。本文设计的可视化的微控制器执行平台能够为学生提供一个功能强大的可视化环境,使得用户能够对微控制器内部结构以及程序的执行过程做到实时的准确的监控,为用户理解微控制器的执行过程分析平台。在此基础在上,用户可以通过此平台进行二次开发和功能扩展,以实现对微控制器执行过程的相关控制和管理,为用户开设更加复杂的相关微控制器执行处理机制的实验提供硬件支撑。

[1] 林云,刘嘉南,吴启迪.远程分布式虚拟实验室关键技术研究[J].中国远程教育,2008(11):69-72.

[2] 易克非,胡庆锋.基于 DSP的实时多任务调度内核设计[J].通信技术,2011,44(06):135-137.

[3] 郑丹.网上虚拟实验教学模式的研究与探讨[J].高校实验室工作研究,2008,97(03):60-62.

[4] 杨华,杨松岸,黄修超.以TMS320C6205为核心的MPEG-4编码器的设计与实现[J].通信技术,2003(11):1-2,5.

[5] 韩萍,康健.基于LabVIEW的信号处理技术应用演示及实验系统设计[J].实验技术与管理,2010,27(07):99-103.

[6] 赵月飞,冯长江,余建华.电工电子网上虚拟实验室的建设与应用[J].实验室研究与探索,2003,22(02):95-97.

[7] 文军,王加懂.DSP程序在线编程的研究与实现[J].信息安全与通信保密,2007(08):192-195,198.

[8] 燕德丽,夏岩.嵌入式系统开发平台化浅析[J].科技信息(学术研究),2007(21):194-195.

[9] 裴金刚,熊栋栋.基于ARM的嵌入式系统平台的构建[J].黑龙江科技信息,2010(17):64-64.

[10] 原亮,丁国良,李浩,等.嵌入式系统的综合教学实验环境建立[J].实验室研究与探索,2008,27(01):92-95.

[11] 闻绍飞,张石,鲍喜荣,等.浅谈ARM7嵌入式系统的实验教学[J].实验室科学,2009(05):53-55.

[12] 卢宁宁.ARM在嵌入式Linux网络通信平台中的应用[J].科技风,2010(01):250-250.

[13] 姜沫岐.陈月云.基于DSP构建综合仿真平台的OFDM系统实现[J].信息安全与通信保密,2006(03):86-88.

猜你喜欢
堆栈微控制器内存
基于行为监测的嵌入式操作系统堆栈溢出测试*
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
基于堆栈自编码降维的武器装备体系效能预测
内存搭配DDR4、DDR3L还是DDR3?
一种用于分析MCS-51目标码堆栈深度的方法
上网本为什么只有1GB?