PCI-9054D 32位微机原理与接口技术说明书

PCI-9054D 32位微机原理与接口技术说明书
PCI-9054D 32位微机原理与接口技术说明书

Huibin

PCI-9054D

32位微机原理与接口技术说明书

2009年6月第二版

PCI-9054D 32位微机原理与接口实验指导书

目 录

第一部分 实验平台简介 (3)

第一章概况 (3)

1.1 系统特点 (3)

1.2 总线的基本概念 (4)

1.3 PCI 总线基本知识 (5)

第二章系统安装与使用 (9)

2.1 硬件介绍 (9)

2.2 硬件系统的安装 (9)

2.3 标准配置实验程序名称表 (11)

2.3 软件说明 (12)

2.4 软件系统的安装 (15)

2.5 使用PLXMON软件 (16)

第二部分 微机原理实验 (17)

第三章16位汇编语言编程实验 (17)

3.1 显示程序实验 (17)

3.2 数据传送实验 (17)

3.3 数码转换实验 (18)

3.4 求和程序设计实验 (20)

3.5 分支程序设计实验 (22)

3.6 循环程序设计实验 (22)

3.7 排序程序设计实验 (23)

第四章WIN32汇编语言程序设计实验 (24)

4.1 编程环境 (24)

4.2 实验例程 (32)

第五章微机原理实验 (36)

5.1 查询PCI设备的配置空间 (36)

5.2 实模式保护模式简介 (38)

5.3 中断工作原理实验 (40)

第三部分 基本接口实验 (43)

第六章基本接口实验 (43)

6.1 I/O地址译码 (43)

6.2 基本IO口扩展实验 (43)

6.3 可编程并行接口8255实验 (45)

6.4 通用微型打印机实验 (46)

6.5 直流电机驱动实验 (47)

6.6 步进电机驱动实验 (47)

6.7 开关继电器实验 (48)

6.8串并转换显示实验 (48)

1

PCI-9054D 32位微机原理与接口实验指导书

2

6.9 竞赛抢答器实验 (49)

6.10 数字式温度测量实验 (49)

6.11 可编程定时器/计数器8253实验 (51)

6.13 8251可编程串行口通讯实验 (52)

6.14 16C550通用串行通信实验 (55)

6.15 ADC0809 A/D模数转换实验 (59)

6.16 D/A0832转换实验 (60)

6.17 8位存储器读写 (61)

6.18 DMA传送 (62)

第七章选配扩展接口实验 (66)

7.1 8、16、32位IO端口扩展实验 (66)

7.2 8、16、32位存储器数据读写实验 (67)

7.3 8、16、32位DMA数据块传送 (68)

7.4 键盘显示实验 (73)

7.5 16*16 LED中文字幕移动实验 (75)

7.6 128*64点阵式LCD实验 (76)

7.7 IC卡读写实验 (77)

7.8 8279键盘显示控制器实验 (80)

第四部分 高级实验 (82)

第八章在WINDOWS下C语言编程 (82)

8.1 开发过程简介 (82)

8.2 相关程序 (82)

8.3 创建Windows 应用程序 (82)

8.4 用户接口函数 (83)

第九章驱动程序开发WDM (86)

9.1 系统环境配置 (86)

9.2 利用向导生成程序框架和设备配置信息 (86)

9.3 驱动框架的构成及描述 (90)

9.4 驱动程序的具体编写 (92)

第十章应用程序与WDM通讯程序的编写 (97)

10.1 应用程序访问WDM实验 (97)

10.2 PCI_CON应用程序实验 (98)

10.3 IO读写应用程序实验 (98)

10.4 MEM读写应用程序实验 (99)

10.5 中断应用程序实验 (100)

调试实例 (100)

附 录 (101)

附录A PCI BIOS函数 (101)

附录B PCI9054D集成操作软件使用说明 (102)

附录C T URBO D EBUGGER调试器的使用 (104)

PCI-9054D 32位微机原理与接口实验指导书

第一部分 实验平台简介

第一章 概况

实验室及实验仪器的综合和开放是当前实验室建设的方向,培养学生的研究和创新能力是实验室的重要任务。随着现代计算机技术的快速发展,以Intel 80x86(32位)高级微处理器为核心、以Windows操作系统为主流应用环境的微机系统日益普及,各大专院校已纷纷开始了《32位微机原理》和《32位微机接口技术》课程的教学。32位微机原理和32位微机接口技术是实践性很强的课程,要取得良好教学效果,就离不开高水平的实验教学。 顺应计算机信息技术发展的潮流,积极推动32位微机实验教学体系的建立,隆重推出PCI系列32位微机教学实验系统,为各高校建立32位微机实验教学体系提供了完整解决方案。

1.1 系统特点

完善的基本微机接口技术实验教学平台:

系统以 PC 微机为主机,由一块PCI9054为桥接主芯片PCI9054全隔离总线驱动扩展卡、一个微机接口通用实验箱及软件集成实验环境组成。将PCI-LOCAL_ISA BUS PCI 插卡,安装在PC机的任一PCI插槽内,并有一条34芯和一条40芯的扁平电缆把 LOCAL_ISA BUS 总线信号连接到通用实验箱实验箱内,供作基本接口实验使用。 在微机接口通用实验箱中的全隔离扩展接口;为各种扩展模块、用户的控制板、常用外围接口及其控制应用部件提供了方便的链接接口信号。全面支持“微机接口技术”及“微机控制应用”的各项实验内容。实验箱中的阻容等器件采用贴片在主板背面、每个接口均有限流保护。防止误操作损坏器件,大大提高了整机的可靠性!实验母板上的所有芯片都是安放在IC插座上的,更换方便;采用的自锁式连接导线,接触十分可靠。

系统采用模块化、积木式设计,清晰明了,提高了灵活性和适应性:

·兼容性强,减少设备投资:“主控单元+微机接口通用实验箱+扩展模块”分体式结构设计,只需构买一种微机通用接口实验箱,通过更换主控单元便可组成多种实验仪。现提供:Intel 8086 16位微机控制单元;以S5933/PCI9052 /PCI9054三种桥接芯片的PCI 32位微机控制板;以后还将不断推出新的控制板。一机多用,可减少院校设备投资经费,优惠实用。

·开放式结构:通用实验箱具有良好的开放特性,系统总线及各种外围接口器件都可有开放接口,便于老师和学生设计开发新的实验。实验台上除固定电路外还设有用户扩展实验区,用户可以自己设计实验电路,在用户实验区插上所选芯片并连线即可以实验。从而极大地提高了学生的实际和操作能力,避免了单纯验证式实验方式的弊病。

·无限升级,永不淘汰的实验平台:从小到大的模块化设计,无限扩展的组合设计空间为用户提供永不淘汰的实验平台。我们提供几种模块可供用户自由组合。并在以后不断推出新的实验模块,供用户无限升级,永远引领科技潮流。

·目前还提供了32位数据扩展及32位存储器/32位IO读写模块、点阵式LCD中文显示与IC卡实验模块、8279键盘显示实验模块、16x16点阵式LED及4x4键盘和4位LED八段显示器模块、CPLD 可编程逻辑实验模块等多种扩展实验模块供教学实验选择。

集成调试软件,为用户提供了完整的32位微机原理实验调试平台:

·调试界面采用自行开发的 VC++ 风格的 PCI 组合软件包;

·全新的 WINDOWS 界面版本,支持 WIN98/ME/2000/XP/NT 操作系统;

·符合编程语言语法的彩色文本显示,用户可根据个人爱好修改特定和着色功能;

·先进的错误定位,可直接进入错误位置,无需查找错误信息;

3

PCI-9054D 32位微机原理与接口实验指导书

4 ·完美的编辑编译集成环境,可在同一个编辑窗口中编辑编译程序,无需做其它任何设置; ·完美的集成调试环境,可在Windows 98/ME及Windows XP环境下,在PCI调试窗口中直接运

行和源程序调试宏汇编程序,无需任何其它烦琐的操作。

标准配置实验内容:

1.74LS138 I/O地址译码器实验 2.74LS244并行输入实验

3.74LS273并行输岀实验 4.8253可编程定时器/计数器实验

5.8255可编程并行接口实验 6.74LS164串并转换八段数码管实验

7.ADC0809模/数转换器实验 8.DAC0832数/模转换器实验

9.8251串行双机通信实验 10.8250/16C550串行双机通信实验

11.HM6116存储器读写实验 12.I/O开关电路控制实验

13.18B20单线数字测温实验 14.继电器控制实验

15.竞赛枪答器实验 16.交通灯控制实验

17.8259 PCI设备中断实验 18.DMA数据块传送实验

19.DMA I/O端口传送实验 20.电子音乐实验

21.步进电机控制实验 22.直流电机转速控制实验

23.通用微型打印机实验 24.查询PCI设备的配置空间

高级接口技术实验:

1. Windows驱动程序WDM设计实验;

2. PCI总线扩展卡驱动程序设计实验;

3. Windows下访问PCI配置空间实验;

4. 在Windows下处理PCI中断实验

5. 在Windows实现存储器扩展实验;

6. 在Windows实现DMA实验;

7. 在Windows实现各种接口实验。

提供下列选配模块:

1.32位接口驱动模块板:提供8/16/32位接口实验;8/16/32位存储器读写、8/16/32位DMA 实验。

2.键盘 LED显示模块板:配有4*4键盘接口,四位LED八段显示器,进行键盘动态扫描;动态显示等实验;配有16*16 LED及驱动电路,可进行八位、及十六位数据接口的中文字幕移动实验。

3.LCD与IC卡实验模块:提供128*64点阵式LCD中文显示、图形显示实验;IC卡读、写、加密等实验。

4.CPLD可编程逻辑实验模块:各种逻辑门电路:与门、或门、非门、异或门、锁存器、触发器、缓冲器等;半加器、全加器、比较器、二十进制计数器、分频器、移位寄存器、译码器;常用的74 系列芯片、接口芯片实验;提供 VHDL 语言编写的实验范例。

1.2 总线的基本概念

总线是微机各部件间进行信息传输的公共通路,微机用总线的形式将微机中的各个模块,包括CPU主模块,存储器模块,I/O模块和DMA模块等互连在一起,按照总线规范传送数据,控制信息和状态信息。

基于PCI总线的扩展卡设计的特点及问题:

1.扩展设备设计与系统分离:设计扩展设备时是面向LOCAL总线而不是系统本身。而LOCAL总线又是可以自由配置的,因此设计灵活性较大。

2.资源的自动分配:所有资源的分配都是系统根据当前资源使用情况来配置,不需要用户分配。系统比用户更了解当前资源的使用情况,因此不会出现冲突现像,而且非常方便。

PCI-9054D 32位微机原理与接口实验指导书

5

3.LOCAL 地址空间的重映射:LOCAL 侧的地址可以重映射到系统空间中,实现地址的重定位。

1.2.1 总线的主设备和从设备

微机中的各种设备均挂在总线上,这些设备对于总线来讲有主从之分。能在总线上生成总线周期从而发起对存储器或I/O 访问的设备称为主设备,响应主设备访问的设备称为从设备。例如CPU 可以成为总线的主设备,因为它们能够主动发起对内存或I/O 等从设备的访问。DMA 控制器既可以是总线的主设备(即当它占用总线将外设数据搬到内存时),也可以是从设备(即当CPU 占用总线读写DMA 控制器内部寄存器时)。某一时刻总线上只有一对主从设备在传递信息。

1.2.2 分层的总线结构

如图1-2-1 所示是一个PCI 总线构建的微机系统,可见现在的Pentuim 机都是以PCI 总线为中心,CPU 的Host 总线通过Bridge/Memory Controller 和PCI 总线相连,图中网卡、声卡、图形卡等高速设备直接挂在PCI 总线上,而一些较慢的ISA 遗留设备则挂在ISA 总线上,这样就形成了一个分层的总线结构。Bridge/Memory Controller 也叫做北桥,负责cache 控制,主存访问和Host-PCI 总线周期的转换,在配有AGP 总线的系统里,北桥还负责AGP 总线事务处理,而Exp Bus Xface 也叫做南桥,集成PCI-ISA 桥,PCI 总线仲裁,电源管理,DMA 控制器和中断控制器。

1.3 PCI 总线基本知识

1.3.1 PCI 总线引脚定义

PCI 能够作为32或64位总线使用,它们可以按照功能不同化为以下几组:

1.系统引脚:包括时钟和重启引脚。

2.地址和数据引脚:包括32条传输地址和数据的引线,其余的引线是为了配合它而使用的。 3.接口控制引脚:用来保持Master 和Target 之间通信的一致性。

4.仲裁引脚:和其他的PCI 信号线不同,这些不是共享的数据线,每一个PCI Master 都有它自己的仲裁信号线来直接和ARBITOR 相连接。

5.错误监测引脚:用于奇偶校验和其他错误的报告。

除此之外,PCI 还提供了另外50条可选的信号线来支持中断缓存及64

位扩展等功能。对于只做

图1-2-1 PCI 总线构建的微机系统的结构图

PCI-9054D 32位微机原理与接口实验指导书

从设备的PCI设备而言,至少需要47个管脚;而对于用作主设备而言,至少需要48个管脚。下图是对主从兼容设备管脚定义的说明。左边的管脚是必需的,右边的是可选的。

图1-3-1 主从兼容设备管脚定

1.3.2 PCI总线基本时序

AD[31:0]:地址数据多路复用信号。在FRAME有效的第一个周期为地址,在IRDY与TRDY同时有效的时候为数据。

C/BE[3:0]:总线命令与字节使能控制信号。在地址期内传输的是总线命令;在数据期内是字节使能控制信号,表示AD[31:0]中那些字节是有效数据。下表是总线命令编码的说明。

表1-3-1 总线命令表

C/BE[3:0]# 命令类型说明 C/BE[3:0]# 命令类型说明

0 0 0 0 中断应答 1 0 0 0 保留

0 0 0 1 特殊周期 1 0 0 1 保留

0 0 1 0 I/O读 1 0 1 0 配置读

0 0 1 1 I/O写 1 0 1 1 配置写

0 1 0 0 保留 1 1 0 0 存储器多行读

0 1 0 1 保留 1 1 0 1 双地址周期

0 1 1 0 存储器读 1 1 1 0 存储器一行读

0 1 1 1 存储器写 1 1 1 1 存储器写并无效

PCI总线上所有的数据传输基本上都由以下三条信号线控制:

1.FRAME:帧周期信号。由主设备驱动,表示一次访问的开始和持续时间。FRAME有效时(0为有效,下同)表示数据传输进行中,失效后,为数据传输最后一个周期。

2.IRDY:主设备准备好信号。由主设备驱动,表示主设备已经准备好进行数据传输。

3.TRDY:从设备准备好信号。由从设备驱动,表示从设备已经准备好进行数据传输。当IRDY与TRDY同时有效时,数据传输才会真正发生。

另外,还有IDSEL信号用来在配置空间读写期间作为片选信号。对于只有一个PCI从设备的情况,6

PCI-9054D 32位微机原理与接口实验指导书

它总可以接高电平。IDSEL信号由从设备驱动,表示该设备已成为当前访问的从设备,可以不理会。

在PCI总线上进行读写操作时,PCI总线上的各种信号除了RST、IRQ、IRQC、IRQ之外,只有时钟的下降沿信号会发生变化,而在时钟上升沿信号必须保持稳定。

1.3.3 配置寄存器

一般来讲,PC机有4种资源,即IO空间,MEM空间,中断和DMA。Windows下用户可以通过设备管理器查看。

在早期的PC机中,每种板卡上都有许多跳线和拨动开关。用户用它们来设置所需要的各种计算机资源,如地址空间、中断号、DMA通道号等,防止板卡之间的资源冲突。这就对用户提出了很高的要求,限制了PC机的使用。为此,Pentium级处理器以上的PC机推出了有计算机自动配置各种资源的方法——即插即用Plug and Play ,从而最大限度的避免了人工干预资源的配置,这就完全解放了用户,降低了对用户的要求。使得PC的使用得到了极大的普及。

所谓即插即用,其原理就是在每块支持PNP的板卡上都有一组称为配置空间的寄存器,在这些寄存器中保存有自己对系统资源的需求参数。当Windows启动时其BIOS引导程序首先读出这些参数,然后综合每块板卡的对资源的需求,统一对整个系统的资源进行分配。从而避免用户干预。为了BIOS 引导程序能够正确的对板卡所需的资源进行动态分配,其配置空间寄存器中存储的是物理空间大小等相对信息,而不是绝对的物理地址。当然对于不支持PNP的板卡,用户仍需进行手动配置资源。 PCI 配置空间:是长度为256个字节的一段内存空间,其前64个字节包含PCI接口的信息,我们可以通过它来访问PCI接口。如下表所示:

表1-3-2 PCI配置寄存器

字节3 字节2 字节1 字节0 配置空间地址 设备识别(DID) 供应商代码(VID) 00H

状态寄存器 命令寄存器 04H

分类代码 修改版本 08H 内含自测试 头标类型 延时计数 缓冲区大小 0CH

基地址寄存器0 10H

基地址寄存器1 14H

基地址寄存器2 18H

基地址寄存器3 1CH

基地址寄存器4 20H

基地址寄存器5 24H

Card Bus卡信息结构指针 28H

子系统ID 子系统供应商ID 2CH

扩展ROM基地址寄存器 30H

保 留 功能指针 34H

保 留 38H 优先级请求 时间片请求 中断管脚 中断线 3CH

这64个字节中,第一个32位的双字包含了DeviceID和VendorID。DeviceID是一个16位的数,如果这个单元没有安装,在启动时,计算机就会显示FFFFH;如果安装了,在0000H和FFFFH之间就会有一个确定的数代表它。类代码用来区分PCI接口类别,VendorID由PCISIG来分配。头标区中比较重要的有Base Address, Interrupt Pin, Interrupt Line。它们主要用来指明设备所需的资源。 LOCAL配置空间:

PCI协议中只定义了PCI配置空间的格式,为了实现PCI总线到LOCAL总线的桥接,PLX9054中也实现了LOCAL配置空间,该配置空间的主要作用是实现LOCAL总线的配置。如LOCAL侧的IO基地

7

PCI-9054D 32位微机原理与接口实验指导书

8

址/存储器基地址和LOCAL 侧需要的资源大小等。 LOCAL 基地址寄存器组:

1. Space0

① Space0 Range Register ② Space0 Remap Register ③ Space0 Descriptors Register 2. Space1

① Space1 Range Register ② Space1 Remap Register ③ Space1 Descriptors Register LOCAL 地址寄存器格式LOCAL:

基地址寄存器格式如下图所示最低位表示映射的使能位,为0表示不允许映射,为1表示允许映射。当该寄存器为IO 地址时其各位的作用如图1-3-2所示,若该寄存器为存储器地址时,其各位的作用如图1-3-3所示。

表1-3-3 LOCAL 配置寄存器

字节3

字节

2

字节1

字节

PCI 空间地址 LOCAL 空间地址

Range for PCI-to-Local Address Space 0

00H 80H Local Base Address (Remap) for PCI-to-Local Address Space 0

04H 84H Mode/DMA Arbitration

08H

88H Reserved

Serial EEPROM Write-Protected Address Boundary

Local Miscellaneous Control

Big/Little Endian Descriptor

0CH 8CH Range for PCI-to-Local Expansion ROM

10H 90H Local Base Address (Remap) for PCI-to-Local Expansion ROM

and BREQo Control 14H 94H Local Bus Region Descriptors (Space 0 and Expansion ROM) for

PCI-to-Local Accesses

18H 98H Range for PCI Initiator-to-PCI

1CH 9CH Local Base Address for PCI Initiator-to-PCI Memory 20H A0H Local Base Address for PCI Initiator-to-PCI I/O Configuration

24H A4H PCI Base Address (Remap) for PCI Initiator-to-PCI 28H A8H PCI Configuration Address Register for PCI Initiator-to

-PCI I/O Configuration

2CH ACH Range for PCI-to-Local Address Space 1

F0H 170H Local Base Address (Remap) for PCI-to-Local Address Space 1 F4H 174H Local Bus Region Descriptor (Space 1) for PCI-to-Local Accesses

F8H 178H PCI Base Dual Address Cycle (Remap) for PCI Initiator-to

-PCI (Upper 32 bits)

FCH

17CH

图1-3-2映射到IO 空间的格式图 图1-3-3 映射到存储空间的格式图

PCI-9054D 32位微机原理与接口实验指导书

第二章 系统安装与使用

2.1 硬件介绍

2.1.1 PCI 接口卡

PCI接口卡主要由PCI9054、93LC56B、XILINX CPLD XC95108、信号隔离电路组成,如图2-1-1所示。PCI9054是PLX公司的PCI90XX系列芯片中的一款从模式桥芯片(其硬件与PCI9050相兼容),93C56(EEPROM)用于存放PCI9054初始化设置信息,在开发板上还提供了一个ISA总线扩展插座,可提供8位和16位的总线宽度。可与PLX公司的开发软件PlxMon联合使用,用户可重新定义总线宽度,IO、MEMORY地址空间,中断方式等。CPLD中集成了相当简单的逻辑,便于用户重新设计和升级,板上留有烧写CPLD的插座。该PCI9054卡是连接PC机和PCI-9054D实验机的桥梁,实现用户资源到系统的双向映射,真正的32位实验设备。

图2-1-1 9054板卡图

2.1.2 PCI-9054D实验仪

PCI-9054D实验仪的标准配置及图2-1-2所示实验台平面布置图

2.2 硬件系统的安装

1.关掉计算机并拔掉它的电源,打开机箱,将PCI总线驱动板在PCI插槽内插好,并旋紧固定螺钉。注意!驱动板的金手指一定要和机内插槽的插孔对齐,并且一定要插到位,否则会造成严重后果。

2.将DB62芯插头与驱动板的62芯插座对接,注意方向,不要用力过猛,以免损坏插座。在做8位实验时将扁平电缆的另一端与实验箱左边的40芯插座对接。在做32位实验时将扁平电缆的另一端与实验箱左边的40芯和右边的34芯插座对接。至此,基本系统就安装完毕。

3.在开电源之前,先作电源负载阻抗测试,以检查系统的电源线路是否有短路。其方法是采用万用表的欧姆档,将两根表笔一根接地(GND),另一根接+5V电源(VCC),所测得的阻抗应有几百欧姆左右。若只有几十欧姆,甚至几欧姆,这说明可能存在电源线路短路,或是某些集成芯片(IC)元件器损坏。请先找出故障,再进行下一步骤。

4.先打开微机电源,再打开实验箱的交流电源开关,实验箱上中间的电源指示灯绿色LED发光;跟据需要打开直流分路电源开关。上电后即可启动实验箱基本系统。

9

PCI-9054D 32位微机原理与接口实验指导书

图2-1-2实验台平面布置图

10

PCI-9054D 32位微机原理与接口实验指导书

2.3 标准配置实验程序名称表

序 号 实 验 名 称 实验程序名称 备 注

1 74LS138 I/O 地址译码 D74LS138.ASM

2 74LS244扩展输入端口实验 D74LS244.ASM 备件芯片

3 74LS273扩展输岀端口实验 D74LS273.ASM 备件芯片

4 8255流水灯实验 D8255_1.ASM

5 8255交通灯实验 D8255_2.ASM

6 8255 I/O输入输出实验 D8255_3.ASM

7 通用微型打印机实验 DPRINT.ASM 自配打印机

8 直流电机驱动实验 DZLDJ.ASM

9 步进电机驱动实验 DBJDJ.ASM

10 开关继电器实验

11 74LS164串并转换显示实验 D74LS164.ASM

12 竞赛抢答器实验 DQDQ.ASM

13 DS18B20单总线数字测温实验 D18B20.ASM 备件芯片

14 8253可编程定时器/计数器实验 D8253_1.ASM

15 电子音乐实验 D8253_2.ASM

16 ADC0809 A/D模数转换实验一 D0809_1.ASM

17 ADC0809 A/D模数转换实验二 D0809_2.ASM

18 DAC0832转换模块输出方波 D0832_F.ASM 自配示波器

19 DAC0832转换模块输出锯齿波 D0832_C.ASM 自配示波器

20 DAC0832转换模块输出阶梯波 D0832_J.ASM 自配示波器

21 8251自发自收通讯应用实验 D8251_1.ASM 备件芯片

22 8251与PC机双向通讯实验 D8251_2.ASM 备件芯片

23 16C550自发自收通讯应用实验 D16C550a.ASM 备件芯片

24 16C550与PC机双向通讯实验 D16C550b.ASM 备件芯片

25 HM6116存储器读实验 DMEMWR.ASM 备件芯片

26 HM6116存储器写实验 DMEMRD.ASM 备件芯片

27 DMA数据块传送实验1 DDMARB.ASM 备件芯片

28 DMA数据块传送实验2 DDMARD.ASM 备件芯片

29 DMA 74LS273输岀端口实验 DDMA273.ASM 备件芯片

30 DMA 74LS244输入端口实验 DDMA244.ASM 备件芯片

31 DMA输入端口中断传送实验 DDMAINT.ASM 备件芯片

32 查询PCI设备的配置空间(DOS) DPCIBIOS.ASM

33 查询PCI设备的配置空间(XP) DPCIXP.ASM

34 8259 PCI设备中断实验 DPCIINT.ASM

35

36

11

PCI-9054D 32位微机原理与接口实验指导书

12

2.3 软件说明

2.3.1 驱动程序

本实验的驱动程序编制所采用的软件有三种,分别是Microsoft 的Visual C++ 6.0、DriverWorks 及所用的驱动程序调试工具是DriverMonitor。使用这些软件,可以在短期内快速准确的构成驱动程序的框架,便于驱动的编写。同时调试工具能准确地了解驱动的运行情况,对驱动进行跟踪,便于修改。

2.3.2 实验程序(汇编)开发集成环境

软件安装好后,示范程序在PCI9054\DASM86文件夹中。PCI9054开发环境是集编辑、编译/汇编、调试为一体,VC 风格的用户界面,是理想的开发工具。

图2-3-1 PCI9054开发环境

开发环境操作说明如下:

第一步:关闭当前项目。菜单命令:〔项目|关闭项目〕当用户要调用新的文件时必须关闭已经打开的项目,此时PCI 集成开发环境关闭界面上所有的窗口。因为当打开项目文件后,PCI 集成开发环境默认所有编译/汇编、产生代码的过程都是对当前项目进行的。

第二步:在文件菜单下打开应用程序。如果要创建一个新的程序文件,使用菜单命令:〔文件|新建〕或使用工具栏中“新建”钮。如果要打开一个已存在的程序文件,使用菜单命令:〔文件|打开〕或使用工具栏中“打开”命令钮。

第三步:编译当前文件、编译、链接当前项目。使用菜单命令:〔项目|编译当前文件〕或使用工具栏中“编译”命令钮。编译通过后还必须进行连接操作,也可以直接对当前文件进行编译链接操作。此命令自动地对修改过的源程序进行编译或汇编,然后连接所有的 OBJ,LIB 文件,完成调试程序所需的准备工作。 使用菜单命令:〔项目|编译链接〕或工具栏中‘编译链接’命令钮。

第四步:执行〔项目|编译〕命令后产生的结果显示在消息框中,当PCI 发生错误时,消息窗口中的错误信息自动与源文件关联,提示出错的位置。在消息窗口中错误提示处双击鼠标左键,也可将

错误信息与源文件的错误位置关联。如果编译出现错误,在修改文件后重复进行第三步操作。

PCI-9054D 32位微机原理与接口实验指导书

13

第五步:编译链接通过后,按

连续运行程序,按

按钮进入TD 调试器,如图2-3-2所示。

按ALT+ENTER 键进入全屏模式后按F9连续执行。你也可以单步、宏单步、断点的调试,详细参见附录B Turbo Debugger 调试器的使用。

注:在实验过程中需要进行人机交互的(键盘输入)必须先进入TD 调试器后按ALT+ENTER、F9连续运行。

图2-3-2 TD 调试器

2.3.3 实验程序(Turbo C)开发环境

软件安装好后,示范程序在PCI9054\C86文件夹中。把安装盘中TOOLS 下的TC 文件夹拷贝到C 盘里。从开始菜单进入DOS 命令提示符,打入如图2-3-3的命令后按回车,进入TC 调试器,按F3 打开PCI9054\C86中的文件。如图2-3-4所示。如图2-3-5所示编译链接文件,在信息框中提示无错误后,可以进行调试。TC 程序中前面#Define 定义的口地址和机器有关,因为PCI 总线结构支持P&P 即插即用功能,每台微机分配给PCI 扩展板的资源是动态浮动的,不像ISA 总线是固定死的。因此分配给设备的I/O 基地址、MEM 基地址空间及INT 中断号会因为不同的微机而变化,所以实验前需要确定当前微机中PCI 卡的资源并用其替换程序中的相应值重新编译链接后才能实现实验效果。

图2-3-3 DOS 提示符

PCI-9054D 32位微机原理与接口实验指导书

14

图 2-3-4 打开文件 图 2-3-5 编译文件

2.3.4 实验程序(VC++)开发环境

软件安装好后,WINXP/2000的示范程序在PCI9054\WinXP\CPP 文件夹中。

第一步:安装VC 程序

第二步:安装盘上所带的DS2.7的Setup,序列号见Serial.txt。

第三步: 安装完后进入VC 界面,打开Tools\options,选择Directories——Show directories for:选择Include files,然后在下面的Directories:中添加DS2.7安装后的编译程序所需要的include 路径,如: C:\Program Files\Compuware\DriverStudio\DriverWorks\include,见下图2-3-6所示。

图 2-3-6 添加include 文件路径 图 2-3-7 添加Lib 文件路径

第四步:选择Directories—Show directories for:选择 Library Files,然后在下面的Directories :中添加DS2.7安装后的编译程序所需要的LIB 路径:C:\Program Files\Compuware\DriverStudio\DriverWorks\lib,见图2-3-7所示。

第五步:然后就可以打开程序进行调试,如:

C:\PCI9054\WinXP\CPP\164\164.dsp,用VC File 菜单Open Workpace 打开。XXXDlg.cpp 文件,包含要调试的代码,Comd 函数即对应原来的main,其它要调用的函数与原来名称基本一样,还有的

就不用管它。

PCI-9054D 32位微机原理与接口实验指导书

15

2.4 软件系统的安装

2.4.1 设备驱动程序的安装

PCI-9054PCID 在使用之前,无论操作汇编实验程序还是VC 实验程序,都必须安装好板卡的驱动程序。驱动程序位于附带光盘的Driver\WinXP\目录下。PCI9054芯片自带的驱动位于\PLXDRV 目录下。

在PC 机PCI 槽中插入PCI9054D 卡,开机进入WinXP 系统,系统会提示发现新的设备,自动进入“找到新的硬件向导”,如图2-4-1所示。

在图2-4-1所示中单击“下一步”,进入图2-4-2所示,选择“从列表或指定位置安装(高级)”,然后单击“下一步”。

(1) 在图2-4-3所示中单击“在搜索中包括这个位置”,然后单击“浏览”,在弹出的对话框(图2-4-3所示)中选择驱动程序所在位置。(光盘中“\ Driver\WinXP”文件夹下的“PCI9054.inf”),单击“确定”。

(2) 在图2-4-4所示中确认驱动程序位置正确后,单击“确定”。 (3) 系统开始进行驱动程序的安装,如图2-4-5所示。 (4) 安装完成后,在图2-4-6所示中单击“完成”。

图2-4-2 选择安装方式 图2-4-3 搜索驱动程序位置

图2-4-1 找到新硬件

PCI-9054D 32位微机原理与接口实验指导书

16

2.4.2 集成开发环境的安装

运行光盘自启动安装软件,根据提示一步一步安装,默认安装在C 盘中,自动生成一个PCI9054的文件夹。该文件夹中有以下几个文件:ASM32存放的是微机原理软件实验的汇编语言;DASM86中存放的是8/32位接口实验的汇编程序;ASM32WIN 存放的是32位Windows 软件实验的汇编程序;C86中存放的是接口实验的Turbo C 程序;WinXP 存放的是接口实验在XP 上的VC++程序;EXE 存放的是接口实验的可执行文件;BIN 中存放的是编译器应用程序等。

2.5 使用PLXMON 软件

本装置的PCI 接口芯片使用PLX PCI9054 ,该芯片即支持8位数据宽度的工作模式也可以设置为32位数据宽度的工作模式。初始状态下该芯片被设置为8位数据宽度的工作模式。8位数据宽度对于一般的I/O 操作可以满足其要求,但PCI 总线的实际数据宽度是32位,高档的服务器用64位的PCI 总线在相同的传输速率的情况下,32位宽度将比8位宽度的数据吞吐量大4倍,这也是PCI 总线的一大特点。工作在8位数据宽度的情况下不能将PCI 总线的大数据吞吐量的优势发挥出来,对于存储器读写DMA 传送等工作8位数据宽度也难于满足其快速传输数据的要求,对于PCI 总线而言使用32位数据宽度是必然的一个选择。

PLXMON 是PLX 公司针对PCI90XX 系列芯片的读写而开发的软件(运行\PLX 目录下的Setup.exe 来安装此程序)。在此运行此程序前必须修改PCI 卡的驱动,驱动文件在PCI9054\ PLXDRV 下,这是PCI9054芯片自带的驱动。驱动文件的安装见2.4节。

通过PLXMON 用户可方便的修改EEPROM 中的各个寄存器来实现用户的各种自定义功能,包括数据宽度的设置。运行PLXMON 后,出现主窗口如图2-5-2后从键盘输入CTRL+E 弹出设置窗口如图2-5-3,点击Load File,选择相应的配置文件(在光盘的\93C46B 目录下)如93c46b8.eep 是8位的,93c46b16.eep 是16位的,93c46b32.eep 是32位的,如图2-5-1,选好后按Write 按钮,将设置写入PCI 卡,冷启动PC 即可。修改完以后请把驱动换回来!

图2-4-6 驱动程序安装完毕 图

2-5-1 选择配置文件夹

图2-5-2 PLXMON 软件 图2-5-3板卡的PCI 资源配置

PCI-9054D 32位微机原理与接口实验指导书

17

第二部分 微机原理实验 第三章 16位汇编语言编程实验

3.1 显示程序实验

3.1.1 实验目的

(1)掌握在PC 机上以十六进制数形式显

示数据的方法。掌握部分DOS 功能调用的使用方法。

(2)掌握分支程序及子程序的设计方法。

3.1.2 实验设备

PC 机一台;

3.1.3 实验内容及说明

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS 功能调用完成一些提示信息的显示,实验中可使用DOS 功能调用(INT 21H)。

表3-1-1 显示实验中可使用DOS 功能调用

AH 值 功 能 调 用 参 数

结 果 1 键盘输入并回显

AL=输出字符 2 显示单个字符(带Ctrl+Break 检查)DL=输出字符 光标在字符后面 6 显示单个字符(无Ctrl+Break 检查)

DL=输出字符

光标在字符后面 9 显示字符串 DS:DX=串地址,’$’为结束字符

光标跟在串后面 4CH

返回DOS 系统

AL=返回码

3.1.4 实验步骤

(1)运行PCI 软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。

(2)使用“项目”菜单中的“编译”或“编译链接”命令对实验程序进行编译、链接。 (3)“调试”菜单中的“进行调试”命令进入Debug 调试,观察调试过程中数据传输指令执行后各

寄存器及数据区的内容。按F9连续运行。 (4)更改数据区的数据,考察程序的正确性。 (5)参考程序清单QTH1.ASM。

3.2 数据传送实验

3.2.1 实验目的

掌握与数据有关的不同寻址方式。

3.2.2 实验设备

PC 机一台。

图3-1-1 显示程序流程

PCI-9054D 32位微机原理与接口实验指导书

18

3.2.3 实验内容及说明

本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段的目标字符到屏幕上(HELLO, WORLD !)。参考程序清单QTH2.ASM。

3.2.4 实验步骤

(1)运行PCI 软件,根据实验内容编写程序。

(2)使用“项目”菜单中的“编译”或“编译链接”命令对实验程序进行编译、链接。 (3)“调试”菜单中的“进行调试”命令进入Debug 调试,观察调试过程中数据传输指令执行后各

寄存器及数据区的内容。按F9连续运行。 (4)更改数据区的数据,考察程序的正确性。 (5)参考程序清单QTH2.ASM。

3.3 数码转换实验

3.3.1 实验目的

(1)掌握不同进制数及编码相互转换的程序设计方法。 (2)掌握运算类指令编程及调试方法。 (3)掌握循环程序的设计方法。

3.3.2 实验设备

PC 机一台。

3.3.3 实验内容及说明

计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或用其他信息进行处理,处理结果又必须依照外设的要求变为ASCII 码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换和代码的转换是必不可少的。计算机与外设间的数码转换如图3-3-1所示,数码对应关系如表3-3-1所示。

表3-3-1 数码转换对应关系

七段码

十六进制

BCD 码 二进制机器码

ASCII 码

共 阳

共 阴 0

0000 0000 30H 40H 3FH 1 0001 0001 31H 79H 06H 2 0010 0010 32H 24H 5BH 3 0011 0011 33H 30H 4FH 4 0100 0100 34H 19H 66H 5 0101 0101 35H 12H 6DH 6 0110 0110 36H 02H 7DH 7 0111 0111 37H 78H 07H 8 1000 1000 38H 00H 7FH 9 1001 1001 39H 18H 67H A 101 41H 08H 77H B 1011 42H 03H 7CH C 1100 43H 46H 39H D 1101 44H 21H 5EH E 1110 45H 06H 79H F

1111

46H

0EH

71H

PCI-9054D 32位微机原理与接口实验指导书

19

1、将ASCII 码表示的十进制数转换为二进制数:

十进制数可以表示为:Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i。 其中Di 代表十进制数1、2、3、…、9、0。

上式可以转换为:Σ Di*10i=(((Dn*10n+Dn-1)*10+ Dn-2)*10+…+ D1)*10+ D0

由上式可归纳出十进制数转换为二进制数的方法:从二进制数的最高位Dn 开始做乘10加次位的操作。

依此类推,则可求出二进制数结果表明。

本实验要求将缓冲区的一个键盘输入的N 位十进制数ASCII 码转换成二进制数,输入结束按回车。并将转换结果按位显示在屏幕上。转换过程参考流程如图3-3-2所示,参考程序清单QTH3-1。 2、将十进制数的ASCII 码转换为BCD 码:

本实验要求将键盘输入的5位十进制数54321的ASCII 码存放在数据区中,转换为BCD 码后,将结果按位分别显示在屏幕上。输入的不是十进制数的ASCII,则输出“F”。提示:一字节ASCII 码取其低4位即变为BCD 码。转换过程参考流程如图3-3-3所示,参考程序清单QTH3-2。 3、将十六进制数的ASCII 码转换为十进制数:

十六进制数的值域为0-65535,最大可转换为5位十制数。五位十进制数可表示为: ND=D4*104+D3*103+D2*102+D1*10+D0

因此,将十六位二进制数转换为5位ASCII 码表示的十进制数,就是求D1-D4,并将它们转换为ASCII 码。

本实验要求将键盘输入的十六进制的ASCII 码转换成十进制数,并将转换结果显示在屏幕上。转换过程参考流程如图3-3-4所示,参考程序清单QTH3-3。

3.3.4 实验步骤

(1)运行PCI 软件,根据实验内容编写程序。

(2)使用“项目”菜单中的“编译”或“编译链接”命令对实验程序进行编译、链接。 (3)“调试”菜单中的“进行调试”命令进入Debug 调试,观察调试过程中数据传输指令执行后各

寄存器及数据区的内容。按F9连续运行。 (4)更改数据区的数据,考察程序的正确性。

图3-3-1 计算机与外设间的数码转换关系

图 3-3-2 十六进制的ASCII 码转换成十进制数

相关主题
相关文档
最新文档