单片机软硬件联合仿真解决方案
- 格式:doc
- 大小:7.93 KB
- 文档页数:3
“三大利器”构建单片机仿真实验平台摘要:为了加强单片机课程的教学改革,不断提高单片机课程实验环节教学质量,本文将借助三个实用软件,介绍几种搭建单片机仿真实验平台的方法,利用这些方法可以将单片机实验室“搬进”学生寝室,教师可以任务驱动的方式提高学生的参与性,并具有实验时间不受限制,有效降低实验成本和设计风险等优点,有利于培养学生的创新能力。
关键词:单片机;教学改革;仿真实验平台目前,我国许多高校都应社会发展和市场需求在不同的专业开设了单片机课程,这无疑推动了单片机技术在实际生产生活中的应用,缓解了社会对单片机应用人才的需求压力,推动了大学生就业。
然而单片机课程又是一门实践性很强的课程,要想在教学过程中取得较好的效果,就必须要求学生在学习过程中多动手实践,这对开设这门课程的学校而言又提出了一定的要求,也就是要提供较好的实验环境,甚至要模拟企业的环境组建单片机开发工作室,让学生在“做中学”,真正的玩转单片机,否则会出现部分学生感到枯燥难学、教师感到吃力难教这样的尴尬。
单片机技术的发展,也推动着单片机开发工具的不断推陈出新,典型的有WA VE6000、Keil C51以及Proteus等,这些软件的推出给单片机学习、单片机设计与开发带来了方便,也可以很好地解决一部分学校因实验条件不足或实验室资源不充分而带来的问题,我们在这里向大家介绍WA VE6000、Keil C51和Proteus 这三个软件在构建单片机仿真实验平台过程中的应用方案,它可以将单片机实验室“搬进”学生寝室,教师可以按任务驱动的方式提高学生的参与性,并具有实验时间不受限制,有效降低实验成本和设计风险等优点。
1WA VE6000软件简介1.1 WA VE6000的特点WA VE6000是一款功能强大的单片机程序编辑、调试、仿真的Windows软件。
该软件可以配合伟福公司开发的硬件仿真器进行仿真,也可以单独进行单片机的软件模拟仿真,结合一台编程器,就可进行低投入的单片机开发工作。
15单片机仿真步骤仿真是为了实时监控单片机的内部运行状态,在进行程序调试时,不可幸免的会显现一些错误,可是单从程序咱们无法发觉错误所在,用软件模拟仿真一样能够达到一样的目的,那么这是咱们就需要用到硬件仿真了。
具体仿真操作步骤如下(编程软件为Keil,烧写软件为STC-ISP,专门注意STC-ISP 及以上版本方才支持仿真功能):1、下载keil和STC-ISP 或以上版本进行安装。
2、由于下载软件和烧写软件为两款不同的软件,故需要将两个软件进行关联。
打开STC-ISP进行如下操作。
3、点击“keil仿真设置”(部份低版本的STC-ISP是“keil关联设置”)4、点击“添加型号和头文件到keil中添加STC仿真器驱动到keil中”(将鼠标放在该按钮上有具体添加步骤,如上图)。
选定keil的安装途径,点击确信。
5、在keil中感动工程文件,或新建工程文件,确保工程设置的芯片型号与实际型号一致。
6、打开option for target选项卡,如上图1;选择Device选项卡,选择STC MCUDatabase,如上图2;选择对应的单片机型号(那个地址15w4k58s4为例,由于没有该单片机的MCU型号,选择最接近的15w4k32s4),如图3;点击ok确信,如图4.7、在Dubeg选项卡当选择仿真模式,选择Use模式,如图1;在下拉选项当选择STCMonitor-51 Driver,如图28、点击“setting”按钮显现串口配置窗口,如上图,将Com设置为单片机的连接的COM(COM口的查询方式见注释一),波特率设置一个相对稳固的值,没有专门要求。
点击ok设置完毕。
9、将hex文件导入STC-ISP中点击“将IAP15w4k58s4设置为仿真芯片”如上图。
10、现在会显现如上图所示提示,现在冷启动单片机进行程序的烧写,直至提示成功。
11、点击Dubeg图标进入仿真。
至此所有仿真设置全数设置完毕。
单片机软件仿真与调试的方法 - 单片机点击运行软件Keil uVision2.其调试操作步骤大体可以分为5步:1.创建工程在项目开发中,并不是仅有一个用户源程序就够了,还要为这个项目选择CPU型号、设置编译和调试参数。
有一些项目还会有多个文件组成。
因此将这些参数设置和所需要的全部文件统称为一个工程,存放于特地的工程文件夹下。
这里先建立一个工程文件夹如F:\exam.①创建新工程。
鼠标左键单击主菜单Project一New Project.弹出。
Create New Project"对话框,用鼠标选择你要保存工程的文件夹(如FAexam),输入新工程名(如"exam")。
单击"保存"按键。
②在随后弹出的CPU型号设置对话框中选择单片机的型号(如"AT89C51"),单击"确定"完成。
2.建立源程序文件并加入工程①鼠标左键单击菜单。
File一New新建文件。
弹出图1窗口。
自动进入编辑工作模式。
图1 源程序文件的建立与编辑②在文本窗口中输入和编辑用户的源程序。
【项目任务】设计一种花样彩灯程序,实现单片机P1口驱动相连的8个发光二极管依次循环点亮。
③单击菜单。
File一Save as.弹出文件保存对话框,选择工程文件夹("F:\exam")。
输入源程序文件名(如"exam.asm"),点击"保存"按钮。
留意汇编源程序的扩展名必需为asrn,C51源程序扩展名必需为*.C.④将源程序加入工程。
用鼠标点击图标"Target1"前的"+"号,开放后右键单击Source Group弹出快捷菜单,点击"Add File to Group'SourceGroup 1"项弹出源程序加入工程对话框。
选择刚保存的用户源程序exam.asm,点击ADD按钮加入工程,点击Close关闭对话框。
单片机教学中不少内容抽象、乏味,若不通过实验很难让学生得到更好的理解;而现有的实验硬件平台能做的实验有限,效果不理想,开设成本也很高,若采用Protues 软件能较好地解决该问题。
如英国Labcenter 公司推出的Protues 软件采用虚拟技术解决了单片机及其外围电路的设计和协同仿真的问题,无需硬件实验平台,利用个人计算机进行单片机软硬件同步仿真,仿真结果可直接运用于真实设计,优点不言而喻。
下面以LED 流水广告灯实验为例谈谈单片机教学中如何利用Protues 进行单片机软硬件仿真。
1电路原理图的绘制启动已安装软件Protues 的ISIS ,在弹出窗口的菜单栏中单击“文件”→“新设计”→选择“项目摸板”(根据电路的难易程度或具体要求进行“项目摸板”选择)→“确定”,绘制电路图。
绘制电路图时,单击元器件窗口上方的“P ”按钮,在窗口上方的“关键字”处键入所需器件型号或名称,窗口中间的“结果”栏将显示元器件库中所有同系列的器件(见图1)。
图1器件选取窗口收稿日期:2012-05-23作者简介:唐晓慧(1963-),女,四川广安人,贵州师范学院数学与计算机科学学院副教授。
研究方向:计算机接口、单片机教学。
韦萍萍(1975-),女,贵州望谟人,贵州师范学院数学与计算机科学学院副教授。
研究方向:数据库、计算机软件教学。
2012年第8期第30卷(总第145期)NO.8,2012Vol.30General No.145毕节学院学报JOURNAL OF BIJIE UNIVERSITY 基于Protu es 软件的单片机软硬件仿真实验唐晓慧,韦萍萍(贵州师范学院数学与计算机科学学院,贵州贵阳550018)摘要:通过对如何利用Protues 进行单片机软硬件仿真进行简述,以期在单片机理论教学中力避枯燥,并以Protues 作实验平台,将教学融于实践,可以让学生感知所编程序的实际效果,从而更好地掌握所学知识。
单片机软硬件联合仿真解决方案摘要:本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件语言仿真器软件Modelsim连接起来,实现了软件和硬件的同步仿真。
关键词:BFM,TCL,Verilog,Vhdl,PLI,Modelsim,Keil uVision2,ISS,TFTP,HTTP,虚拟网卡,Sniffer,SMART MEDIA,DMA,MAC,SRAM,CPLD缩略词解释:BFM:总线功能模块。
在HDL硬件语言仿真中,BFM完成抽象描述数据和具体的时序信号之间的转换。
PLI:Verilog编程语言接口,是C语言模块和Verilog 语言模块之间交换数据的接口定义。
TCL:字面意思是工具命令语言,是一种解释执行语言,流行EDA软件一般都集成有TCL。
使用TCL用户可以编写控制EDA工具的脚本程序,实现工具操作自动化。
ISS:CPU指令集仿真器,可以执行CPU的机器码。
TFTP:简单文件传输协议,Windows的tftp.exe既是该协议的客户端实现。
SMART MEDIA:一种存储卡,常用于数码相机、MP3。
DMA:直接内存访问。
用于外部设备之间高速数据转移。
MAC:媒体接入控制器。
本文中是指网卡芯片。
前言传统的嵌入式系统中,设计周期、硬件和软件的开发是分开进行的,并在硬件完成后才将系统集成在一起,很多情况下,硬件完成后才开始进行实时软件和整体调试。
软硬件联合仿真是一种在物理原型可用前,能尽早开始调试程序的技术。
软硬件联合仿真有可能使软件设计工程师在设计早期着手调试,而采用传统的方法,设计工程师直到硬件设计完成才能进行除错处理。
有些软件可在没有硬件支持的情况下完成任务的编码,如不涉及到硬件的算法。
与硬件相互作用的编码在获得硬件之前编写,但只有在硬件上运行后,才能真正对编码进行调试。
通过采用软硬件联合仿真技术,可在设计早期开始这一设计调试过程。
由于软件的开发通常在系统开发的后段完成,在设计周期中较早的开始调试有可能将使这一项目提早完成,该技术会降低首次将硬件和软件连接在一起时出现意外而致使项目延期完成所造成的风险。
在取得物理原型前,采用软硬件联合仿真技术对硬件和软件之间的接口进行验证,将使你不会花太多的时间在后期系统调试上。
当你确实拿到物理原型开始在上面跑软件的时候,你会发现经过测试的软件部分将会正常工作,这会节省项目后期的大量时间及努力。
软硬件联合仿真系统由一个硬件执行环境和一个软件执行环境组成,通常软件环境和硬件环境都有自己的除错和控制界面,软件通过一系列由处理器启动的总线周期与硬件的交互作用。
本文以一个Mini Web卡的开发介绍一种软硬件联合仿真系统。
[!--empirenews.page--]该方案的核心是采用一个51单片机仿真引擎GoldBull ISS51(以下简称ISS51),ISS51是51单片机开发环境Keil uVision2的一个插件,ISS51具有连接Keil 和硬件仿真环境Modelsim的接口,可以实现软硬件同步仿真。
在该系统中,Keil作为软件调试界面,Modelsim作为硬件仿真和调试界面,ISS51负责软件执行、监控软件断点、单步执行、内存和寄存器数据返回给Keil、CPU总线时序产生和捕获、内部功能模块(如定时器,串口)的运行等功能。
Mini Web卡介绍Mini Web卡是一个运行在单片机上的Web服务器,提供网口连接,有大容量文件系统,提供TFTP和HTTP服务。
尽管软件系统比较复杂,但优化编译后,执行代码还不足25K,为后续升级留下了足够空间。
51CPU采用SST89系列,这种CPU具有ISP功能,可以通过RS232串口,直接将目标码下载到CPU。
DMA控制逻辑是一个可编程逻辑器件,采用的是ALTERA的CPLD EPM240,主要功能是实现外围器件之间的DMA传递。
因为51CPU进行IO访问是很低效的,需要24个时钟周期才能进行一次IO访问,在外围设备之间转移数据则需要更多的时钟周期,使用DMA控制逻辑可以达到3个时钟周期就能转移一个字节。
本系统中处理多种网络协议,需要大量报文收发和文件系统访问,采用DMA可以极大地提高51单片机的数据处理速度。
DMA通道主要有MAC芯片与RAM之间的数据块转移,SMART MEDIA和RAM之间的数据块转移。
网卡芯片采用的是AX88796,主要的优点是可以和51CPU方便地接口;支持100M以太网,速度高;有较大的接收报文缓存,能够平滑网络流量,减少因51CPU处理速度慢导致的报文丢弃和重发。
SMART MEDIA是一个移动存储卡,主要用于存储文件,Mini Web卡支持8M到256M的SMD卡。
文件系统是Mini Web卡的新开发模块,文件系统的测试主要通过TFTP来进行,为此Mini Web卡上的TFTP服务程序进行了特殊设计,支持格式化SMART MEDIA,获取剩余空间,获取文件名列表,上传、下载和删除文件。
软硬件联合仿真的必要性:Mini Web卡软件模块多,软件开发风险较大。
软件对硬件的依赖较强,FLASH存储器的访问驱动、网卡驱动、DMA驱动,需要软硬件协同调试。
文件系统的开发,在仿真环境下更容易和快捷。
比如在仿真结束时,可以将SMART MEDIA仿真模型中的数据倒换到磁盘文件中,在仿真开始时,将磁盘文件中的数据加载到SMART MEDIA仿真模型中,在定位文件系统的问题时,这一个功能很有用。
采用软硬件联合仿真,便于系统前期设计。
51单片机的外部RAM访问效率较低,内存拷贝、外部器件之间的数据块转移很浪费时间。
将大量数据的拷贝操作或数据块校验、比较操作在CPLD内实现,可以大大改进51单片机处理数据的能力。
通过软硬件联合仿真,可以评估CPLD处理数据对性能的改进。
[!--empirenews.page--]Mini Web卡软硬件联合仿真系统:软硬件联合仿真主要解决的问题是系统功能设计与验证,它不解决电源、滤波电容、总线电平兼容问题。
做系统仿真,首先要对硬件系统建模。
我们关注的是系统设计的正确性和可执行性。
系统中的串口只是用来支持ISP下载软件,软件部分没有对串口做任何操作,所以系统仿真可以不必考虑。
网卡芯片AX88796,厂商没有提供仿真模型。
它与CPU的接口符合ISA接口标准,软件对AX88796的操作是根据NE2000标准网卡芯片设计的,由此我们建立了一个网卡芯片的仿真模型。
我们设计了一个MAC BFM来仿真网卡芯片的ISA接口,NE2000定义的寄存器在C模型中实现,MAC BFM 与NE2000寄存器C模型通过PLI接口交换数据。
SRAM仿真模型是很容易获取的,很多器件生产商都提供Verilog仿真模型,但器件生产商提供的Verilog仿真模型都包含复杂的延时控制代码,这会影响仿真速度。
根据经验,我们可以确保SRAM在单板设计中被正确应用,不会产生时序[1][2]下一页问题,所以我们可以采用一个简化的SRAM仿真模型,这是我们自己设计的,有效代码只有十几行。
51CPU BFM 负责单片机管脚时序的产生和捕获。
51CPU BFM是与ISS51紧密捆绑的,由ISS51安装程序提供。
SMART MEDIA是三星公司提供的仿真模型,我们使用的也是三星公司的同类型存储卡。
该模型可以用于验证软件操作SMART MEDIA的正确性和DMA Controller的接口时序。
DMA Controller是Mini Web卡硬件开发的一部分,将逻辑设计代码应用于仿真,既能检测逻辑设计的正确性,又能使整个仿真系统得以正常运转。
将上述硬件模型连接起来,产生下图所示硬件系统模型图:图2. Mini Web卡硬件模块电路图图2中U11为SMART MEDIA仿真模型,U4为DMA Controller模型。
虚拟网卡做系统仿真,必须输入来自真实世界的激励,并将仿真系统的输出传递到真实世界。
即便是不能连接到真实世界,也应该提供模拟真实世界的输入,并对仿真系统的输出进行检测和分析。
对于Mini Web卡来说,它和真实环境是通过网口连接的。
使用虚拟网卡技术,能够将图3中的MAC C Model与虚拟网卡进行通讯。
对于运行在Windows系统上的应用程序来说,它并不知道网卡是虚拟的还是真实的,应用程序通过虚拟网卡收发数据,事实上是与仿真系统在进行网络通信。
[!--empirenews.page--]这样就可以使用TFTP向Mini Web卡仿真系统传递网页文件,使用IE浏览Mini Web卡仿真系统中的网页,Mini Web卡的所有功能都能够被检验。
使用网络臭探器Sniffer可以监控虚拟网卡的报文流,方便协议调试。
仿真加速技术软硬件联合仿真,影响仿真速度的瓶颈在HDL代码部分的仿真。
如果不设法提高HDL代码部分的仿真速度,软件调试就非常低效。
提高硬件仿真速度的方法之一是软件硬件仿真采用事件同步,只在CPU访问IO时保持软件和硬件是同步的。
仿真加速方法之二是硬件仿真系统时钟休眠。
对于Mini Web卡来说,只有DMA Controller是受时钟控制的,软件没有操作DMA Controller的期间,DMA Controller的运作是毫无意义的,所以可以在非DMA操作期间,对时钟进行休眠;ISS51在每次IO访问时,给出与上次IO访问的时间差,这个时间差经过处理可以作为时钟休眠的时间段。
如果ISS51连续进行IO访问,就不会产生时钟休眠了。
DMAController工作于查询方式,可以采用时钟休眠技术,而不会导致仿真与真实结果的不一致。
方法之三是,缩短SMART MEDIA仿真模型中的一些长延时的时间参数。
因为在等待SMART MEDIA 进入就绪状态时,CPU必须连续查询IO,影响仿真速度。
我们主要用于软件功能验证,这种修改也是可以接受的。
方法之四,在软件设计上,谨慎使用外部中断,因为一旦中断启动,ISS51需要在每个机器周期查询是否有中断信号,导致软件仿真和硬件仿真在每个指令上都进行同步,影响仿真速度。
如果一定要使用外部中断,建议用C模型代替Verilog模型,这样可不影响仿真速度;或者由用户根据外部模块产生外部中断的时机,使用ISS51的控制命令,在恰当时刻使能ISS51的中断模块。
在一个普通PC (CPU为AMD速龙1000,SDRM512M 133),运行Mini Web卡仿真系统,使用PING命令测试Mini Web卡仿真系统的响应速度:Reply from 10.10.112.76: bytes=32 time=64ms TTL=128使用IE打开Mini Web卡仿真系统中的网页文件,感觉和拨号上网的速度差不太多。