基于FPGA的微机原理与接口新型实验平台

时间:2022-09-27 01:04:24

基于FPGA的微机原理与接口新型实验平台

摘要:针对微机原理与接口现行主流实验平台的特点和缺点,提出一种采用FPGA技术设计的新型实验平台的思路与实践。

关键词:微机原理与接口;实验平台;FPGA

1 背景

微机原理与接口是众多高校计算机学科的一门重要专业核心课程,也是嵌入式技术最重要的入门课程和技术基础。该课程概念抽象、实践性很强,上机实验和课程设计是两个重要的教学环节。通过实验不仅可以直接提高学生对本课程的学习兴趣,进一步加深对微机结构、汇编语言及指令系统的理解,还能使学生对计算机内部原理和芯片的工作流程有更直接的感性认识。因此实验教学在对学生能力培养方面起着理论教学不可替代的作用,实验平台的好坏对学生真正掌握微机原理和接口技术有非常大的影响。

2 实验教学和实验平台现状

目前微机原理与接口课程的实验教学普遍存在着实验平台落后、教学难度大、内容多、课时不足、学生缺乏积极性等问题,造成这些问题的最大原因就是现有实验平台所用硬件环境和教材所讲的硬件环境不完全一样,从而导致所学和所用脱节。

目前绝大多数高校所采用的微机原理与接口实验平台从技术角度来讲,主要有下面4种。(1)利用软件来模拟硬件环境,学生在虚拟环境中实验操作过程。该方法因为完全让学生在虚拟环境中实验,学生无法接触真正的硬件,所以实验效果很差。(2)通过PC机的PCI总线或ISA总线模拟产生8086的指令系统、总线和时序,以DB62形式提供给实验平台用。该方法缺点一是实验平台不能脱离PC机的控制,二是由于其硬件结构所限不支持操作系统加载、BIOS编程等一些高级实验。(3)利用单片机或其他非8086CPU类型简单替代或模拟8086CPU。该方法缺点和前一方法类似。(4)直接利用8086CPU芯片和相关辅助芯片(如8284芯片)构造实验平台。由于该CPU早已停产,只能使用拆机的二手芯片,因此实验平台质量无法保证,也无法量产。

面对上述问题,绝大多数高校都采取“避繁就简”的策略,实验过程中利用简单的实验,选取模拟的硬件环境。由于这些实验平台硬件结构的局限,导致爱思考的学生会产生疑问:既然实验平台是8086微机系统,为何需要PC机的支持而不能独立运行呢?为什么不支持加电自检的实验呢?为什么不支持操作系统(如FreeDOS)的实验呢?总之,目前主流的实验平台不利于学生充分掌握微机原理和接口技术。

3 基于FPGA SOC的8086CPU实验平台

根据上述问题,笔者提出基于FPGA技术的新型架构的实验平台。该实验平台可以脱离PC机独立运行,构成真正意义上的“微机”。实验平台具有丰富接口,在满足课程基本实验要求的基础上,学生可以进行BIOS编程、操作系统编写、加电自检等一系列高级实验。

该实验平台主要包括4个组成部分。首先利用FPGA SOC片上系统技术模拟实现8086CPU最小系统。该最小系统上实现了8086CPU指令系统、总线和时序,还实现了4K RAM、256字节ROM和一个串口。其次,实现了实验平台扩展板。扩展板上扩充了锁存器、缓冲器、外部存储、各种典型接口芯片和外设。第三,设计了兼容PC机的简单BIOS系统,以支持系统加电自检和用户加载应用程序。第四,实现了8086源程序的编辑、编译和调试集成开发环境IDE。

3.1 8086CPU最小系统lP软核设计

8086CPU最小系统由8086CPU核、UART核、ROM和SRAM组成,这4个部分通过地址总线、数据总线和控制总线连在一起。8086CPU最小系统的IP软核采用Xilinx公司的Spartan一3E系列的XC3S500E芯片设计。XC3S500E芯片共有208个引脚,其中可供用户使用的I/O有172个,这些I/O足够分配8086CPU最小系统所使用的I/O资源。XC3S500E片内360K blockRAM,可以实现40K字节的SRAM,内部500K逻辑门足够实现8086CPU软核、UART软核以及256字节ROM等所有硬件逻辑。8086CPU最小系统的外部引脚主要包括8086地址总线、数据总线、控制总线、串口通信引脚以及时钟线等。图1是最终实现的8086CPU最小系统IP软核的外部引脚。

3.2 扩展板的设计

平台的芯片主要有74LS138译码器、可编程定时器/计数器8253、可编程并行I/O接口8255、中断控制器8259、ADC0809模数转换器、DAC0832数模转换器等。最小系统将所有的总线都引出,使用插接件的方式和这些芯片接口,电路还可以根据用户要求扩充LED流水灯、按键、点击、蜂鸣器、电位器等。这样既实现了系统基本功能,也能保证良好的可扩充性。无论教师还是学生,都可以利用此实验平台丰富的资源完成自己的设计。

3.3 基本输入输出系统的设计

实验平台实现了一个缺省的基本输入输出系统(BIOS),其功能有3个:一是用于系统加电自启动;二是完成和用户的交互,包括控制应用程序的下载、运行和调试;三是提供兼容标准PC机的BIOS中断和DOS INT 2lH中断功能,便于用户在应用程序调用。

3.4 集成开发环境的设计

实现一个支持“编辑一编译一运行一调试一下载”的软件集成开发环境(IDE)。IDE环境提供的强大功能可以帮助师生方便、迅速地编辑、编译和调试汇编源代码,从而让学生将主要精力放在微机原理与接口的理解和应用上。IDE支持汇编语法的彩色显示,图2是集成开发环境(IDE)的主工作界面。

4 实验设计和实验方法

实验平台设计了一系列的基本实验、操作系统和BIOS底层实验。基本实验参照教材的章节和进度来安排,让大部分学生能较好地理解和应用原理,操作系统和BIOS底层实验适合学生更深入地掌握微机和操作系统的核心工作原理。

4.1 微机原理与接口基础实验

微机原理与接口基础实验和目前大多数高校主流实验平台支持的实验基本一致,包括8086汇编程序实验、数据和地址锁存实验、8255并口实验、单/双色灯实验、A/D转换实验、D/A转换实验、8251串行通信实验、8253定时/计数器实验以及8259中断实验等。

学生在集成开发环境IDE中编辑编译源程序,在IDE环境中模拟运行和调试,也可以通过串口把程序下载到实验平台上,通过BIOS来控制应用程序在实验平台上的运行和调试,通过BIOS交互命令控制程序下载的地址和调试过程。

4.2 操作系统实验

学生可以自己编写最简单的操作系统在实验平台上运行,来体会操作系统对硬件的控制和对应用程序提供的支持。最简单的操作系统可以只实现进程调度,为简化起见,假定进程数目固定,且按分时轮转原则进行调度。实验平台已经提供源代码供学生参考,学生也可以移植网上开源的小型操作系统到实验平台上,如FreeDOS或MON88等。

4.3 BIOS实验

学生自己编写实验平台的基本输入输出系统以取代平台配置的缺省BIOS。BIOS系列实验包括:开机第一条指令的实验、开机自检实验、BIOS中断的设计、串互程序设计以及操作系统加载实验等。

BIOS实验除了需要学生使用IDE环境编辑和编译源程序获得BIOS二进制代码之外,还需要学生通过Xilinx ISE Design Suite 12.2开发环境将前面获得的BIOS二进制代码嵌入到8086CPU最小系统的IP软核中。最后使用下载线将包含BIOS二进制代码的IP软核下载到8086CPU最小系统的电路板中。这个过程相当于PC机上的BIOS刷新过程。

5 实施效果

从实验平台第一个版本实现到目前已有2届4个专业6名教师和480名学生的课堂使用,以及30名各层次的大三学生利用暑假进行测试,通过各种渠道获得的反馈信息总结如下:实验平台硬件和软件工作稳定;实验指南和相关参考资料能有效帮助学生快速进入实验;实验设计内容全面,能够囊括微机原理和接口的全部内容,还能支持操作系统原理和BIOS底层的部分实验;能帮助学生真正掌握微机的工作原理、BIOS工作原理、操作系统基本原理等。

6 结语

实验平台在硬件结构上与主流实验平台PCI或ISA总线模拟8086CPU的方式不同,而是采用FPGA IP软核方式来设计。此方法不仅能够提供真实的8086CPU运行环境,而且方便将来对实验平台的功能扩充或升级。实验平台能够脱离PC机控制独立运行,学生不仅能完成微机原理基础实验,还能完成编写简单操作系统、BIOS等底层实验。总之,该实验平台能较好帮助学生掌握微机原理、操作系统和BIOS等一系列相关原理和技术。

参考文献:

[1]古丽米拉,张婧婧,海拉提.微机原理与接口技术的开放型实验设计[J].计算机教育,2012(9):72-74.

[2]雷艳静,古辉,陈琦.微机接口技术课程教学改革与实践[J].计算机教育,2013(10):27-31.

[3]刘民岷.“微机原理及接口技术”课程教学及实验改革实践[J].实验科学与技术,2013(2):64-66.

[4]李珍香,李全福.基于CD10模式的微机原理与接口技术课程实验教学改革与实践[J].实验室科学,2013(1):66-68.

上一篇:数据结构实验的分层次教学 下一篇:如何说好一节英语课