微型计算机原理与接口技术杨力实验讲义.doc
《微型计算机原理与接口技术杨力实验讲义.doc》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术杨力实验讲义.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流微型计算机原理与接口技术杨力实验讲义.精品文档.微机原理与接口技术实验讲义主编 卫迎辉2013年9月5日目录前言1预备实验 PCI设备查询和配置空间的读取实验3实验一 I/O地址译码实验6实验二 中断控制器实验8实验三 可编程定时器计数器(8253)实验12实验四 可编程并行接口(8255)实验14实验五 可编程串行接口(8251)实验16实验六 综合设计实验18附录一 IO方式读PCI配置空间的参考程序22附录二 中断方式读PCI配置空间的参考程序25前言一、实验系统的组成TPC-2003A通用32位微机接口实验系统的硬件件部分主要由一块P
2、CI总线接口卡、实验台(箱)两部分组成,两者之间通过50线扁平电缆相连。PCI总线接口卡可以插入PC系列微机中任意一个PCI扩展插槽,该卡的主要功能是使用PLX9054和CPLD把PCI总线时序转换成50芯ISA总线时序,并将与实验有关的总线信号加以驱动后引到实验台上提供给实验台使用,同时引出信号还有与“中断”和“DMA”实验操作有关的信号及+5V、+12V、-12V电源。二、实验台的实验电路结构实验台上设有I/O地址译码电路、总线插孔、接口实验常用集成电路、外围电路及通用IC插座等部分组成。外围电路包括逻辑电平开关电路、LED显示电路、时钟电路、单脉冲电路、逻辑笔、复位电路、七段数码管显示电
3、路、基本门电路、继电器及步进电机、小直流电机的驱动电路。下面是我们做实验涉及到的且在实验中不再说明的电路:1、总线插孔采用“自锁紧”插座在标有“总线”区引出数据总线D7D0;地址总线A9A0;读、写信号IOR、IOW;中断请求信号IRQ;DMA请求信号DRQ1;DMA响应信号、DACK1;及AEN信号,供学生搭试各种接口实验电路使用。2、时钟电路可以输出1MHZ、2MHZ两种信号,供A/D转换器、定时器/计数器、串行接口实验使用。3、逻辑电平开关电路如图-5所示,实验台右下方设有8个开关K7K0,开关拨到“1”位置时开关断开,输出高电平,向下打到“0”位置时开关接通输出低电平,电路中串接了保护
4、电阻,使接口电路不直接同+5V、GND相连,可有效地防止学生因误操作、误编程损坏集成电路现象。4、LED显示电路实验台上设有8个发光二极管及相关驱动电路(输入端L7L0),当输入信号为“1”时发光,为“0”时灭。5、单脉冲电路采用RS触发器产生,实验者每按一次开关即可以从两个插座上分别输出一个正脉冲及负脉冲,供“中断”、“DMA”、“定时器/计数器”等实验使用。6、接口集成电路实验台上有微机原理硬件实验最常用接口电路芯片,包括:可编程定时器/计数器(8253)、可编程并行接口(8255)、数/模转换器(DAC0832)、模/数转换器(ADC0809),这里芯片与CPU相连的引线除片选信号CS外
5、都已连好,与外界连接的关键引脚在芯片周围用“自锁紧”插座引出,供学生实验时使用。其中数/模转换器附有双极性输出,模/数转换器附有双极性输入插座。具体电路可见相应实验中的说明。7、通用集成电路插座实验台上设有4个通用数字集成电路插座,其中插座A、B为20P,插座D为40P,插座D可以插入一个2440脚的集成电路芯片或者2个820脚的集成电路芯片。每个插座引脚附近都有相应的“自锁紧”插座,部分实验(如串行通讯)电路是利用这些插座搭试的。自锁紧插座插入导线时,应稍加力并延顺时针方向旋转一下,才能保证接触良好,拔出时,应先逆时针方向旋转待插头完全松开后,再向上拔出。8、七段数码管显示电路实验台上设有两
6、个共阴极七段数码管及驱动电路,段码为同相驱动器,输入端加高电平选中的数码管亮,位码加反相驱动器,位码输入端高电平选中,从段码与位码的驱动器输入端(段码输入端:a、b、c、d、e、f、g、dp,位码输入端:s1、s2)输入不同的代码即可显示不同数字或符号。七段数码管的字型代码表如下表:9、数字电路实验区实验台上有一块数字电路实验区,设有三种基本门电路(与、或、非)及D触发器,供学生在接口实验或数字电路实验时直接使用。*在此约定:在实验电路图连线在图中均用虚线表示,实线为已连好电路。三、实验用的软件系统在实验中所有的程序用汇编语言编写。为了能够汇编386以上的代码,我们使用的汇编软件是Borlan
7、d公司的TASM4.1,其他的软件和和操作与学习汇编语言时一样,请同学们事先复习一下汇编语言的相关知识。具体操作在实验时由指导老师告知。四、实验预习要求在每次实验前要尽最大努力预习实验,有参考程序的一定要理解透,没有参考程序的一定要事先编写好,如出现来实验室不知做什么的情况,要扣除相应的实验成绩,由此产生的一切后果,由实验者自负!五、实验报告要求在实验报告中要求有实验目的、实验内容、实验环境、实验步骤、实验结果、实验结论,在实验步骤中应重点体现出在实验过程中自己所做的工作(用文字或图表表示出来),实验结论要回答每次实验的思考题,及自己收获的东西。实验报告要字迹工整,让别人看了赏心阅目。预备实验
8、 PCI设备查询和配置空间的读取实验一、实验目的1、学会使用IO 端口查找TPC 板卡或所有PCI 板卡的硬件资源。2、学会使用中断调用查找TPC 板卡或所有PCI 板卡的硬件资源。二、实验内容1、根据配置空间原理使用IO方式编写一个读PCI配置空间的程序,该程序能够获得本机上TPC板卡或所有PCI板卡的硬件资源(IO,内存,中断占用情况)。2、根据配置空间原理使用中断方式编写一个读PCI配置空间的程序,该程序能够获得本机上TPC板卡或所有PCI板卡的硬件资源(IO,内存,中断占用情况)。三、实验环境PC计算机一台;TPC-2003A实验箱一套;四、实验背景知识因为在所有的实验中,TPC-20
9、03A实验箱是通过一块插在PC机内PCI总线上的TPC卡实现与PC机的信息传递,而PCI总线结构支持P&P 即插即用功能,每台微机分配给PCI扩展板的资源(即IO空间、MEM空间、中断和DMA)是动态浮动的,不像ISA总线是固定死的,因此分配给设备的I/O基地址、内存空间基地址、中断号会因为不同的微机而变化,本次实验就是让学生学习如何在DOS下确定当前微机中PCI卡的资源。所谓即插即用,其原理就是在每块支持 PNP 的板卡上都有一组称为配置空间的寄存器,在这些寄存器中保存有自己对系统资源的需求参数。当 Windows 启动时,其 BIOS引导程序首先读出这些参数,然后综合每块板卡对资源的需求,
10、统一对整个系统的资源进行分配, 从而避免用户干预。 为了BIOS引导程序能够正确的对板卡所需的资源进行动态分配,其配置空间寄存器中存储的是物理空间大小的相对信息,而不是绝对的物理地址。PCI 配置空间是长度为 256 个字节的一段内存空间,其前 64 个字节包含PCI接口的信息,我们可以通过它来访问 PCI 接口。PCI 配置空间是长度为 256 个字节的一段内存空间,其前 64 个字节包含PCI接口的信息如下表所示,我们可以通过它来访问 PCI 接口。配置空间地址字节3字节2字节1字节000H设备 ID,Device ID 供应商 ID,Vendor ID04H状态,Status 命令,Co
11、mmand08H类代码Class Code版本 IDRevison ID0CH自测BIST首部类型Header Type延迟定时器Latency TimerCache行容量Cache Line Size10H 基址寄存器 0,Base Address Register#014H 基址寄存器 1,Base Address Register#118H基址寄存器 2,Base Address Register#21CH基址寄存器 3,Base Address Register#320H基址寄存器 4,Base Address Register#424H基址寄存器 5,Base Address Reg
12、ister#528H CardBus 卡信息结构指针,CardBus CIS Pointer2CH 子系统 IDSubsystem ID子系统供应商 IDSubsystem Vendor ID30H 扩展 ROM 基址,Expansion ROM Base Address34H保留,Reserved功能指针CapabilitiesPointer38H 保留,Reserved3CH 优先级请求MAX_Lat时间片请求MIN_Gnt中断引脚Interrupt Pin中断线Interrupt Line这 64个字节中,第一个 32 位的双字包含了 DeviceID 和 VendorID。Device
13、ID是一个 16位的数,如果这个单元没有安装,在启动时,计算机就会显示 FFFFH;如果安装了,在 0000H和 FFFFH 之间就会有一个确定的数代表它。Base Address,即基址寄存器,是32 位寄存器, 可以是 IO Base Address和 Mem BaseAddress. 这是由第 0位决定的,第 0位由硬件强制置 0或 1。加电后,引导程序通过向基址寄存器中写入全 1,并且读返回值以获得设备所需的地址空间大小,然后操作系统统一给它分配一块 I/O 或内存空间,并把基地址写回到基址寄存器。这样驱动程序可以通过读这个基址寄存器就可以取得基地址,再加上设备寄存器偏址就可以访问这个
14、寄存器了。Interrupt Line,中断线寄存器,它是一个 8位寄存器,用来报告中断的连接情况,它是一个可读可写的寄存器,并且凡是使用中断引脚的设备必须实现它,系统引导程序在进行初始化和配置时要将中断连线的信息写入该寄存器。这个寄存器的值表示设备的中断引脚与系统中断控制器的哪个输入端相连。设备驱动程序和操作系统可以利用这个信息来确定中断优先级和向量。 该寄存器的值要受系统体系的支配。对于 X86 体系结构,该寄存器的值和标准 8259 配置中的 IRQ 编号(015)相对应。255 表示没有连到任何中断控制器。15255 之间的值为保留值。Interrupt Pin,中断引脚寄存器。该寄存
15、器是一个只读寄存器,用来表示设备使用了那一根中断线。其值的1,2,3,4分别对应INTA#,INTB#,INTC#,INTD#。0表示没有使用任何中断。PCI 配置机构采用两个 32位 IO端口,位于地址 0xCF8 和 0xCFC。这两个端口是:(1)32 位配置地址端口,占用 IO 地址的0xCF8 到0xCFB(2)32 位配置数据端口,占用 IO 地址的0xCFC 到0xCFF访问配置寄存器的步骤为:1将目标总线编号,设备编号,功能编号和双字编号写配置地址端口,并设置使能位为 1。2读或写配置数据寄存器,北桥将指定的目标总线与 PCI总线范围做比较,如果目标总线在此范围内,则启动PCI
16、 配置读或写操作。配置地址口的格式为:在不同的操作系统下,对配置空间有不同的存取方法,在DOS下我们只需要使用简单的汇编指令 IN 或 OUT 就可了。幸运的是 Win9x 下其保护机制没有限制这两个端口的读写, 固也可以使用这样的办法。 WinNT下提供 READ_PORT_ULONG以及WRITE_PORT_ULONG函数来对其读写。读写配置数据寄存器还可以调用 PCI BIOS 函数的中断 INT1AH来实现。中断调用参数如下表所示:入口参数 返回值功能描述AX=0B101HEDX=PCI ASCII 字符AH=执行状态代码AL=硬件机器BX=主从版本号CL=系统中最大总线号CF=完成状
17、态,1=错误,0=成功检 查 PCIBIOS 是否存在,版本号为多少AX=0B102HCX=设备 ID号(0-65535)Device IDDX=厂商 ID号(0-65534)Vendor IDSI=索引号(0-N)AH=执行状态代码BH=总线号(0-255)BL=设备号(高 5位), 功能号(低3 位)CF=完成状态,1=错误,0=成功查找指定厂商和设备号的 PCI 板卡的位置AX=0B103HECX=类代码,在低三位SI=索引号(0-N)AH=执行状态代码BH=总线号(0-255)BL=设备号(高 5位), 功能号(低3 位)CF=完成状态,1=错误,0=成功查找指定类代码和索引的 PCI
18、 设备的位置AX=0B108H/0B109H/0B10AHBH=总线号(0-255)BL=设备号(高 5 位),功能号(低 3位)DI=寄存器号AH=执行状态代码CL/CX/ECX= 读到的字节/字/双字CF=完成状态,1=错误,0=成功字节/字/双字方式读取配置空间数据AX=0B10BH/0B10CH/0B10DHBH=总线号(0-255)BL=设备号(高 5 位),功能号(低 3位)DI=寄存器号CL/CX/ECX=待写入的字节/字/双字AH=执行状态代码CF=完成状态,1=错误,0=成功字节/字/双字方式写配置空间数据返回值AH= 00H 成功;81H 不支持的函数;83H 错误的厂商
19、ID值;86H 设备未发现;87H 错误的寄存器号;88H 设置失败;89H 缓冲区太小本次实验的源程序见实验讲义附录。五、实验步骤1、了解并熟悉PCI 即插即用配置空间原理。2、了解并熟悉IO 方式或中断方式获取配置空间的方法。3、编写端口读写方式或中断方式获得TPC 板卡或所有PCI 板卡的硬件资源的程序。4、运行程序并记录结果。六、思考题(用于写实验报告的实验结论):1、在DOS下访问PCI即插即用配置空间的方法有哪些?2、在WINDOWXP下不用编程怎么可以得到PCI设备的配置信息?实验一 I/O地址译码实验实验目的掌握I/O地址译码电路的工作原理。实验内容在完成硬件连接的基础上,编写
20、程序控制I/O地址译码的输出,以控制实验箱上的D触发器输出高、低电平信号,从而控制LED灯的亮灭。实验环境PC计算机一台;TPC-2003A实验箱一套;实验背景知识实验电路如图1.1所示,图中虚线需实验者自己连线。其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。译码输出端Y0Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H287H;Y1:288H28FH; Y2:290H297H;Y3:298H29FH;Y4:2A0H2A7H;Y5:2A8H2AFH;Y6:2B0H2B7H;Y7:2B8H2BFH, 当CPU执行
21、I/ O指令且地址在280H2BFH范围内,译码器选中,必有一根译码线输出负脉冲。例如:执行下面两条指令MOV DX,查找出的PCI卡的I/O基址+ 0HOUT DX,AL(或IN AL,DX)Y0输出一个负脉冲,执行下面两条指令MOV DX,查找出的PCI卡的I/O基址+ 8HOUT DX,AL(或IN AL,DX)Y1输出一个负脉冲。(注意:在图1.1中连接的是Y4,请同学分析指令该怎么改?)注意:命令中的端口地址要根据PCI卡的I/O基址再加上偏移量计算出来的,不同的微机器PCI卡的I/O基址可能不同,需要执行预备实验一的程序事先查找出来。计算公式为:计算出的地址= 查找出的PCI卡的I
22、/O基址+ 偏移量;(其中:偏移量= 288H - 280H=8H)图1.1 I/O地址译码输出控制D触发器电路图实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。也就是利用Y4和Y5输出的脉冲信号控制L7闪烁发光(亮、灭、亮、灭、),时间间隔通过软件延时实现。参考程序(YMQ.ASM)如下:ioport equ 预备实验查找出的PCI卡的I/O基址-0280houtport1 equ ioport+2a0houtport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1ou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 实验 讲义
限制150内