|
摘要 介绍一种能嵌入8051 IP核的硬件开发板的设计流程及方法。以交通灯控制器为实例,给出基于IP核的嵌入式系统开发的一种方案。该方案可以满足较复杂的IP核设计和测试需求。 关键词 IP核 开发板 FPGA 嵌入式软核处理器已逐渐成为基于FPGA平台的嵌入式系统的主流开发方法。与传统的基于硬件处理器开发方式相比,软核受硬件条件限制较少,具有很大的灵活性,可以大大缩短系统的设计开发时间。尤其在系统开发的前期,利用IP核可以对系统进行整体的功能测试,将模块进行裁减组合以优化选择最终的设计方案。采用FPGA与IP核相结合进行嵌入式系统的开发,为设计人员提供了一种新的既快捷又高效的设计方案。 表1几大厂商C51系列单片机配置一览表 厂商〖〗Atmel〖〗Philips〖〗Winbond〖〗SST〖〗Intel型号〖〗AT89C2051〖〗AT89S53〖〗P89C51〖〗W78C54〖〗SST89C54〖〗8051AH片内ROM/KB〖〗2〖〗12〖〗4〖〗16〖〗20〖〗4片内RAM/B〖〗128〖〗256〖〗128〖〗256〖〗256〖〗128有无Flash〖〗有〖〗有〖〗有〖〗无〖〗有〖〗无定时器数/个〖〗2〖〗3〖〗3〖〗3〖〗3〖〗2中断源数/个〖〗6〖〗6〖〗6〖〗8〖〗6〖〗5中断优先级〖〗2〖〗2〖〗4〖〗2〖〗2〖〗2其他〖〗只有20个引脚,含模拟比较器〖〗支持中断唤醒,含看门狗〖〗支持中断唤醒〖〗含1个4位I/O〖〗含看门狗〖〗—注:封装形式包括3种,即44脚的QFP,40脚的DIP和44脚的PLCC。本文以含中断、定时器、串并口通信等功能的8051单片机软核为例,基于此软核设计一个可实际应用的交通灯控制器,并在自行设计的XC2S200开发板上测试、验证通过。 1C51系列单片机及IP核 1.1各厂商C51系列单片机的配置情况 在单片机各大生产厂商中,有代表性的厂家包括Atmel、Winbond、Philips、SST、Intel等。由于各厂商的C51系列单片机都是采用Intel的80C51内核,指令集是兼容的,只不过在片内ROM和RAM的容量、定时器的个数、支持的中断上有不同程度的差异。另外,还添加了例如A/D转换、看门狗、网络接口等功能模块。表1为几大厂商C51系列单片机配置情况。 从表1中可以看出,在ROM和RAM的容量上,即使同一个公司,型号不同差别也很大,支持的中断源个数和中断优先级也不尽相同,另外封装形式也制约着开发板的选择。因此,以C51系列单片机开发嵌入式系统时,由于微处理器的配置和封装的不同需要不断改变硬件电路。如果开始考虑欠周,则开发成本和时间开销就会比较大。 12IP核介绍 80C51的IP核是从网上免费下载的VHDL源代码,基本配置如下: 64 KB的ROM,128 B的RAM; 32个I/O口; 2个中断优先级; 2个定时器; 一个全双工可编程串口。 为确保IP核的正确性,需要亲手将80C51的111条指令调试通过,并尽可能使代码覆盖率最高。 2IP核的测试及开发实例 2.1测试平台 IP核的仿真、综合和下载是在ISE 6.2集成环境下完成的。开发板为自行设计的SPARTAN II系列的 XC2S200 FPGA开发板,结构框图如图1所示。该开发板提供了VGA、USB、PS/2、串口、并口等接口以及用户可自定义的扩展I/O口;另外还提供了可选的下载配置模块,可以将程序下载到E2PROM中,防止程序因掉电而丢失;可以方便地基于FPGA进行嵌入式系统的设计。 图1FPGA开发板结构框图2.2测试流程 测试分为功能仿真、后仿真和下载后验证三个阶段。将欲测试的指令以二进制代码形式写入IP核中的ROM模块,利用ModelSim SE5.8可以直观地看到指令的具体执行过程。在功能仿真和后仿真通过后,利用ISE的下载工具iMPACT下载到开发板上来测试指令的执行结果。 嵌入式系统的开发流程与测试流程类似,主要包括设计输入(design entry)、设计仿真(simulation)、设计综合(synthesize)、布局布线(place & route)、配置(configuration)五个主要步骤。 首先,根据自己所需的单片机类型,对IP核中ROM和RAM的容量进行任意增减,还可将额外所需的功能模块的核集成到80C51中。然后,将所设计的程序(C语言或汇编语言)改为二进制代码,写入ROM中,根据设计仿真的结果判断所设计程序的正确性。第三在ISE 6.2的集成环境下完成综合、布局布线和配置工作。最后下载验证。 2.3设计及测试 本例通过设计一个可实际应用的交通灯倒计时控制器来具体说明。 交通灯控制器直接控制一个倒计时显示面板,面板上红、绿两种颜色的LED可以进行倒计时。黄色的LED不显示计时数值。控制器通过监测信号机的控制信号来确定红、绿两种颜色的LED需要倒计时的时间,并按照绿灯→黄灯→红灯的周期顺序控制面板的显示。如果在显示期间信号机将红绿灯的倒计时时间改变,则控制器在下一个显示周期按照新的计数值进行倒计时。系统的逻辑框图如图2所示。 图2交通灯控制系统的逻辑框图可以采用汇编语言直接编写程序,这样做既有利于代码精简又利于精确控制延时。80C51通过探测P3端口的信号输入来确定各颜色的信号灯需要倒计时的时间,并保存到相应的寄存器,等第一个设置周期完毕后,转入显示状态。 图3交通灯主程序流程计数时的延时需要与信号机严格保持一致,否则会导致计数混乱。80C51保存的计数值经P1和P2端口输出到显示面板。显示的同时对P3端口的输入信号进行计时,并与保存的计数值进行比较。如果有改变,则以新的计数值进行计时显示。整个交通灯主程序执行流程如图3所示。 汇编程序设计完成后,可以用Keil51仿真一下。如果没有错误,可以将其二进制代码写入到ROM中,进行功能仿真和后仿真,如图4所示。通过引脚绑定功能,将P1、P2、P3端口的引脚绑定到开发板上的扩展接口,下载实现。 图4仿真波形 仿真图中显示程序初始化时执行的操作,将各个计时寄存器清零,开始扫描P3口的电平变化。 结语 本文以80C51的IP核为例,介绍了基于FPGA的IP核开发板的设计及测试方法,并给出了基于此软核设计的可实际应用的交通灯倒计时控制器实例。自行设计的开发板提供了简单灵活的系统开发平台,能实现较复杂的IP核设计与测试。设计时可先致力于核心算法实现,再考虑具体处理器的配置等,可有效地缩短设计时间。FPGA和软IP核相结合的设计方法,为嵌入式系统开发人员利用嵌入式处理器进行系统的设计和应用提供了一个灵活、低成本的设计方案。 参考文献 1万福君,潘松峰. 单片微机原理系统设计与应用. 合肥:中国科技大学出版社, 2001 2许海燕,付炎. 嵌入式系统技术与应用. 北京:机械工业出版社, 2002 3金西. VHDL与复杂数字系统设计. 西安:西安电子科技大学出版社, 2003 4胡振华. VHDL与FPGA设计. 北京:中国铁道出版社, 2003 杜学亮:研究生,主要研究方向为微电子学与固体电子学、VLSI芯片设计。张鑫:本科生,主要研究方向为微电子学与固体电子学、VLSI芯片设计。贠超:硕士研究生,主要研究方向为微电子学与固体电子学、VLSI芯片设计。金西:副教授、硕士生导师,主要研究方向为微电子学与固体电子学、VLSI CAD、计算机应用。
|