当前位置:无忧公文网 >范文大全 > 征文 > 基于Proteus的ARM虚拟实验平台

基于Proteus的ARM虚拟实验平台

时间:2022-03-23 09:13:59 浏览次数:

摘要:针对目前ARM实验教学中理论为主的情况,提出了一种基于Proteus和LPC21xx构建虚拟ARM实验平台的方案,并在该实验平台上移植μC/OS-II,验证该方案的可行性。结果表明,该实验平台具有很好的灵活性与可扩展性,能有效地节约实验成本。

关键词:Proteus LPC21xx 虚拟ARM实验平台

在人们的日常生活中,嵌入式设备无处不在,比如手机、互联网移动终端、家庭自动化系统、银行安全系统等。

基于ARM的嵌入式软件开发是一门实践性很强的课程,其实践教学环节显得尤其重要。目前,各个高校相继开设了嵌入式软硬件设计开发课程,并逐步建立了嵌入式实验室。目前,这些实验室主要是基于市场上各种知名的硬件开发板来构建的,如广州致远公司的SmartARM系列与MagicARM系列开发板。这类开发板种类繁多,价格昂贵,不适合大量采购,很难满足学生与实验板的一一对应。此外,在实验过程中设备维护成本高,这些缺点很大程度上限制了嵌入式实验室的发展,给ARM实验教学带来了难题。

虚拟ARM实验平台作为实际硬件实验平台的重要补充,兼具良好的可扩展性与灵活性,丰富了ARM嵌入式实验教学的手段,降低了实验成本。本文提出了一种基于Proteus的ARM虚拟实验平台的方案,设计了4×4矩阵键盘接口、LCD显示接口、串行口、SPI接口、I2C接口、AD转换接口、SPI接口和外部中断接口,并移植了μC/OS-II到该实验平台,验证了设计的正确性。相比于传统的实验平台,虚拟实验平台具有硬件成本低,通用性强,实验过程中损耗低,维护简单等优点。

一、 Proteus和NXP LPC2124简介

1.Proteus软件简介。Proteus是英国Labcenter Electronics公司开发的电子电路实物仿真软件,它是完整的嵌入式系统软、硬件设计仿真平台,包括原理图输入系统ISIS、带扩展的ProSpice混合模型仿真器、动态器件库、高级图形分析模块和处理器虚拟系统仿真模型VSM(Virtual Simulation Model)。

Proteus可以实现模拟电路、数字电路、微控制器系统电路以及混合电路系统的电路仿真、软件仿真,系统协同仿真和PCB设计等功能。

Proteus支持主流单片机系统与各种常见的外围芯片的仿真,目前支持的单片机类型有:68000系列、8051系列、AVR系列、LPC21xx系列、PIC16系列等。本文提出的虚拟ARM实验平台采用NXP公司的LPC2124作为核心部件。

2.NXP LPC2124简介。NXP LPC2124是基于ARM7TDMI-S的高性能32位RISC微控制器,集成了Thumb扩展指令集,256KB可在系统中编程(ISP)的片内Flash和可在应用中编程(IAP)的16KB RAM,向量中断控制器,2个UART,I2C串行接口,2个SPI串行接口,2个定时器(7个捕获/比较通道),PWM单元可提供多达6个PWM输出,4通道10位ADC,实时时钟,看门狗定时器,46个通用I/O引脚。CPU时钟高达60MHz,片内晶体振荡器和片内PLL。

二、虚拟ARM实验平台的构建

1.虚拟ARM实验平台硬件电路设计。在ARM课程的教学中,除了讲授ARM内核的基本知识外,还需要在实验实践中结合一些外设部件的实际应用,比如AD转换、串行口通信等。Proteus ISIS提供了微处理器仿真模型和丰富的外设模型。本文选用LPC2124作为核心部件,基于T6963C控制器的240×128点阵LM4229模块作为显示器,4×4矩阵键盘。此外,为了更好地与实验教学结合,在虚拟ARM实验平台设计了ADC转换接口电路、I2C总线接口电路、UART接口电路、SPI接口电路。虚拟ARM实验平台的ISIS电路图如图1所示。当需要扩展外设接口或其他外围器件时,可以很方便地在Proteus ISIS中重新编辑分配IO管脚,或断开暂时不用的外设器件,保证了实验平台良好的可扩展性。

图1 虚拟ARM实验平台硬件电路

2.移植μC/OS-II到虚拟ARM实验平台。μC/OS-II是一个完整的可移植的、可固化及可剪裁的占先式实时多任务内核,采用ANSI C语言编写,仅仅包含小部分汇编代码,方便移植,使之可以在不同架构的微处理器上运行。

要使μC /OS-II正常运行,处理器必须满足以下要求:

①处理器的C编译器能产生可重入代码。可重入型函数在任何时候都可以被中断,中断被处理后可以继续运行,不会因为在函数中断的时候被其他的任务调用过而影响函数中的数据。

②使用C语言就可以打开中断和关闭中断。

③处理器支持中断,并且能产生定时中断。μC/OS-II需要通过处理器产生的定时器中断来实现多任务之间的调度,该定时中断视具体应用需要,一般为10Hz~100Hz。

④处理器支持能够容纳一定数量数据的硬件堆栈。

⑤处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或者内存中的指令。μC/OS进行任务调度时,会对当前任务的CPU寄存器进行入栈操作,然后从待调度任务的堆栈中恢复CPU寄存器,从而实现任务调度与现场保护。

NXP LPC2124及使用的C编译器ADS1.2满足上述5个要求,因此可以很方便地把μC/OS-II移植到NXP LPC2124平台。

代码移植结束后需要进行测试,可以在没有应用程序的情况下测试测试μC/OS-II。一旦多任务调度成功地运行了,再添加应用程序的任务就是非常简单的工作了。

μC/OS-II的结构以及它与硬件的关系,如图2所示:

图2 μC/OS-II软硬件结构

Fig 2. μC/OS-II Hardware and Software Architecture

三、虚拟ARM实验平台验证及实验设计

移植μC/OS-II到虚拟ARM实验平台后,笔者基于μC/OS-II和广州致远公司开发的ZLG/GUI开发包设计了如图3所示7个应用程序,分别对应ADC转换实验,I2C读写实验,GUI显示实验,UART Shell命令实验,SPI读写实验,外部中断响应实验,基于μC/OS-II的任务管理器扩展实验。图3中对应的最后一个实验暂时保留,可以作为扩展实验布置学生添加完成,不仅能增进对μC/OS-II的理解,还能扩展学生的想象力与创造性。限于篇幅,本文仅列举ADC转换实验、I2C读写实验和μC/OS-II任务管理器扩展实验。

图3 μC/OS-II运行效果

Fig 3. μC/OS-II Running on virtual ARM experiment platform

1. ADC接口实验。LPC2124包含4路10bit精度的ADC转换器,转换时间低于2.24us。应用程序中中设置ADCR寄存器工作方式为:转换时钟为1MHz,软件控制转换操作,使用11 Clock转换,非掉电转换模式。ADC转换代码如下所示:

ADCR = (ADCR&0x00FFFF00)|0x01|(1 << 24);/设置通道1,并进行第一次转换

while( (ADDR&0x80000000)==0 );//等待转换结束

ADCR=ADCR|(1<<24);→//再次启运转换

while( (ADDR&0x80000000)==0 ); //等待转换结束

ADC_Data=ADDR;→ // 读取ADC结果

ADC_Data=(ADC_Data>>6)&0x3FF; //提取AD转换值

ADC_Data=ADC_Data*3300/1024;//数值转换

ADC_Data返回转换结果,并调用GUI程序在LCD界面显示,如图4所示:

图4 AD转换

Fig 4. Analog to Digital Convert

在实际教学过程中,可以在Proteus ISIS模型库中选用其他高精度的ADC转换芯片,并根据其工作方式编写程序完成AD转换。

2.I2C接口实验。I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

LPC2124芯片集成了I2C总线接口,与GPIO复用。本文采用中断方式设计I2C应用程序,并利用μC/OS-II的信号量服务进行通信,限于篇幅,这里不列出I2C中断服务程序。

本文设计了一种基于Proteus的虚拟ARM实验平台,针对该平台移植了μC/OS-II,验证了设计的可行性与正确性。通过设计一系列实验教程,以虚拟ARM实验平台为辅,有效地提高了教学效率与质量,促进了学生学习的积极性与创造性,同时也减小了嵌入式实验室的建设成本与维护成本。

参考文献:

[1] 朱清慧、张风蕊,《 Proteus教程:电子线路设计、制版与仿真》[M],清华大学出版社,2008

[2] 拉布罗斯、邵贝贝,《 嵌入式实时操作系统μC/OS-II》[M],北京航空航天大学出版社,2003

作者简介:

陈家义(1964.12-),男,广西北海人,北海职业学院电子信息工程系应用电子教研室主任,讲师,工程硕士,主要研究方向为综合自动化

推荐访问: 实验 虚拟 平台 Proteus ARM