基于单片机软硬件联合仿真解决方案

发布者:风暴使者最新更新时间:2011-08-31 关键字:单片机  软硬件联合仿真 手机看文章 扫描二维码
随时随地手机看文章
本文介绍一种嵌入式系统仿真方法 , 通过一种特殊设计的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件语言仿真器软件Modelsim连接起来,实现了软件和硬件的同步仿真。

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卡的开发介绍一种软硬件联合仿真系统。

该方案的核心是采用一个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处理数据对性能的改进。

Mini Web卡软硬件联合仿真系统:

软硬件联合仿真主要解决的问题是系统功能设计与验证,它不解决电源、滤波电容、总线电平兼容问题。

做系统仿真,首先要对硬件系统建模。我们关注的是系统设计的正确性和可执行性。

系统中的串口只是用来支持ISP下载软件,软件部分没有对串口做任何操作,所以系统仿真可以不必考虑。

网卡芯片AX88796,厂商没有提供仿真模型。它与CPU的接口符合ISA接口标准,软件对AX88796的操作是根据NE2000标准网卡芯片设计的,由此我们建立了一个网卡芯片的仿真模型。我们设计了一个MAC BFM来仿真网卡芯片的ISA接口,NE2000定义的寄存器在C模型中实现,MAC BFM与NE2000寄存器C模型通过PLI接口交换数据。

SRAM仿真模型是很容易获取的,很多器件生产商都提供Verilog仿真模型,但器件生产商提供的Verilog仿真模型都包含复杂的延时控制代码,这会影响仿真速度。根据经验,我们可以确保SRAM在单板设计中被正确应用,不会产生时序问题,所以我们可以采用一个简化的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系统上的应用程序来说,它并不知道网卡是虚拟的还是真实的,应用程序通过虚拟网卡收发数据,事实上是与仿真系统在进行网络通信。

这样就可以使用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访问,就不会产生时钟休眠了。DMA Controller工作于查询方式,可以采用时钟休眠技术,而不会导致仿真与真实结果的不一致。

    方法之三是,缩短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卡仿真系统中的网页文件,感觉和拨号上网的速度差不太多。创建多个TFTP连接,同时向仿真系统传递或下载网页文件,同时使用IE进行网页浏览,都无响应中断现象出现。

总结

使用软硬件联合仿真,Mini Web卡不需要硬件就能进行全部功能的仿真,增强了系统设计成功的信心。软硬件联合仿真方便系统设计调整,可以在设计前期评估性能,方便软件和硬件的debug,是一个值得推广的技术。

关键字:单片机  软硬件联合仿真 引用地址:基于单片机软硬件联合仿真解决方案

上一篇:基于单片机系统中的多任务多线程机制的实现
下一篇:基于中颖SH79F085单片机的电子秤设计方案

推荐阅读最新更新时间:2024-03-16 12:40

MSP430系列单片机特性及应用领域介绍
MSP430系列单片机是德州仪器1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手。主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。其迅速发展和应用范围的不断扩大,主要取决于以下的特点: 特性 1、强大的处理能力,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz晶体驱动下指令周期
[单片机]
MSP430系列<font color='red'>单片机</font>特性及应用领域介绍
AT89c51与AT89S51单片机的区别
AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统供给高性价比的解决方案。 AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层
[单片机]
51单片机系统抗干扰应用实例
近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 1 MAX813L芯片及其工作原理 1.1 芯片特点   · 加电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值为200 ms。 · 独立的看门狗输出,如果看门狗输入在1.6 s内未被触发,其输出将变为高电平。 · 1.25 V门限值检测器,用于电源故障报警、电池低电压检测或+5 V以外的电源
[单片机]
51<font color='red'>单片机</font>系统抗干扰应用实例
单片机与串行时钟DS1307的接口设计
在简单介绍串行时钟芯片ds1307的基础上,介绍了时钟电路的rs485接口设计8本文所设计的时钟电路具有体积小、抗干扰性能强、通用性好、调时方便等特点。 0 引言 由单片机构成的测控系统或智能显示屏中,经常需要实时日历时钟,为节省CPU资源,增强实时时钟电路的通用性,本文介绍DS1307的应用及其接口设计,该时钟系统用RS485接口,采用SN75176差分平衡驱动接收,具有抗干扰能力强,可与PC机进行远距离的通信也可以与其他控制电路相连;时钟调时可方便地用PC机或电路中设置的按键进行时间设定和修改。 1、串行时钟DS1307简介 DS1307是I2C总线接口的日历时钟芯片,片内有8个特殊寄存器和56B的SRAM,是一种低功耗、BC
[模拟电子]
依然缺货,销售额飙升:汽车MCU的市场走势,你看懂了吗?
目前,市场上主流的处理器架构主要有三种,分别是Intel和AMD领衔的x86架构、应用广泛的Arm架构以及近几年风声水起的RISC-V架构。作为一家芯片公司,Arm不生产芯片,但全球却有数十亿设备运行在基于Arm内核的芯片上,Arm的芯片技术几乎覆盖了包括智能手机、汽车以及物联网等众多行业应用。根据Arm的预测,从2021年开始到下一个十年,基于Arm架构的处理器出货量将达到3,000亿只。 与基于Intel或AMD的x86架构不同,Arm处理器不是中央处理器(CPU),而是片上系统(SoC),根据其系统的设计,它可以是设备控制器、微控制器(MCU)或系统中其他附属组件的核心。自ARMv7架构开始,Arm处理器主要分成Cort
[汽车电子]
依然缺货,销售额飙升:汽车<font color='red'>MCU</font>的市场走势,你看懂了吗?
TFT-LCD驱动芯片测试平台的设计和实现
1 引言   近年来,随着手机和MP4等视频播放器等产品数量迅猛增长,据估计,今年手机的产量就达到10亿台,竞争趋于白热化。对于屏幕显示效果,消费者也提出了更高的要求。显示效果很大的部分取决于 驱动IC 的质量。 显示屏 的 驱动IC 成了很多厂家争夺的焦点。目前国内就有超过二十家的设计公司从事小屏幕 显示屏 的 驱动IC 的设计。在每一款的IC量产之前,必须经过反复的调试,以保证各项设置符合设计的要求,并且达到较好的显示效果。设计高速度,调试方便,并且美观的测试平台可以方便的调试出较好的效果,减少调试时间,而且可以给客户耳目一新的感觉,提高产品竞争力度。本论文是针对Focaltech-systems公司开发的 TFT_LCD
[安防电子]
TFT-LCD驱动芯片测试平台的设计和实现
单片机声控音乐彩灯Proteus仿真程序
包含C语言的代码,AD的原理图及PCB板图,proteus的仿真图,由声音控制的音乐彩灯。 仿真原理图如下 Altium Designer画的原理图和PCB图如下: 单片机源程序如下: #include reg52.h #include intrins.h //头文件 #define uint unsigned int #define uchar unsigned char #define delay4us() {_nop_();_nop_();_nop_();_nop_();} //延时4us #define uint unsigned int #define uchar unsigned char sbi
[单片机]
<font color='red'>单片机</font>声控音乐彩灯Proteus仿真程序
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
8051<font color='red'>单片机</font>供水系统水位控制的硬件电路设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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