基于51单片机嵌入式系统仿真设计
本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器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下载软件,软件部分没有对串口做任何操作,所以系统仿