微型机系统与接口技术自学部分.ppt_第1页
微型机系统与接口技术自学部分.ppt_第2页
微型机系统与接口技术自学部分.ppt_第3页
微型机系统与接口技术自学部分.ppt_第4页
微型机系统与接口技术自学部分.ppt_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,微型机系统与接口技术自学部分,本电子课件包含2011版第3, 6, 7, 8章自学部分,只作扩展知识用,东南大学计算机科学与工程学院,2,第3章 80x86汇编语言程序设计,3,3.6 宏定义、宏调用与宏展开(自学),宏定义是源程序中一段有独立功能的程序代码。将这一段程序定义为一条宏指令,并具有一个相应的宏指令名,在程序中就可以多次调用它,调用时只需要引用一个宏指令名来代替这一段程序就可以了。在汇编的时候,汇编程序会自动将这个宏指令扩展成整段程序。,4,宏定义 宏定义有两种格式: 1、简单宏定义 宏名 MACRO ;宏体 ;宏体 ENDM,简单宏定义示例 CRLF MACRO MOV AH, 02H MOV DL, 0DH ;回车 INT 21H MOV DL, 0AH ;换行 MOV AH, 02H INT 21H ENDM,5,带形参的宏定义示例 MULTIPLY MACRO OPR1, OPR2, RESULT PUSH DX PUSH AX MOV AX, OPR1 IMUL OPR2 MOV RELUST, AX MOV RESULT+2, DX POP AX POP DX ENDM,2、带形参的宏定义 宏名 MACRO ;宏体 ;宏体 ENDM,6,宏调用 宏调用有两种格式: 1、对简单的宏定义的调用:宏名 2、带形参的宏定义的调用:宏名,宏调用示例 CRLF MULTIPLY CX, VAR, XYZBX MULTIPLY 240, BX, SAVE,7,宏扩展(宏展开) 宏扩展汇编程序对汇编源程序汇编时将宏体 插入到宏调用处,MULTIPLY宏扩展示例 + PUSH DX + PUSH AX + MOV AX, CX + IMUL VAR + MOV XYZBX,AX ;实参替换形参 + MOV XYZBX+2,DX + POP AX + POP DX 说明: 汇编程序在所展开的指令前加+号以示区别,8,宏指令与子程序的区别 子程序 宏指令 程序执行期间 在汇编期间展开 由主程序调用 它只占有自身 与调用次数有关,每调用一次 大小的空间 就把宏定义体展开一次 执行时需增加时间 直接执行宏体 上的额外开销,9,10,宏定义的进一步讨论: 1、宏定义可以无变元 2、变元可以是操作码,宏定义: FOO MACRO P1, P2, P3 MOV AX, P1 P2 P3 ENDM 宏调用: FOO WORD_VAR, INC, AX 宏展开: + MOV AX, WORD_VAR + INC AX,11,3、变元可以是操作码的一部分,必须用&作为分隔符,宏定义: LEAP MACRO COND, LAB J&COND LAB ENDM 宏调用: LEAP C, THERE 宏展开: + JC THERE,12,4、变元是ASCII串,宏定义: MSGGEN MACRO LAB, NUM, XYZ LAB&NUM DB HELLO MR.&XYZ ENDM 宏调用: MSGGEN MSG, 1, TAYLOR 宏展开: + MSG1 DB HELLO MR.TAYLOR,13,5、宏定义体内允许使用标号, 此时,须使用LOCAL伪操作,宏定义: ABSOL MACRO OPER LOCAL NEXT CMP OPER, 0 JGE NEXT NEG OPER NEXT: ENDM 宏调用: ABSOL VAR ABSOL BX,宏展开: + CMP VAR, 0 + JGE ?0000 + NEG VAR + ?0000: + CMP BX, 0 + JGE ?0001 + NEG BX + ?0001:,14,6、宏定义中可以使用宏调用,(必须先定义后调用),宏定义: DIF MACRO X, Y MOV AX, X SUB AX, Y ENDM DIFSQR MACRO OPR1, OPR2, RESULT PUSH DX PUSH AX DIF OPR1, OPR2 IMUL AX MOV RESULT, AX POP AX POP DX ENDM,15,3.7在VC+中嵌入汇编语言指令(自学),本节类容适合在Visual C+5.0/60中使用,格式1:_asm 汇编语言指令 ,格式2:_asm 汇编语言指令,说明:1)格式1中 内可以是1条也可以是多条汇编指令 2)格式2只能跟一条汇编语言指令 3)有些版本的VC需要使用_asm(两个下划线),16,嵌入汇编示例1 _asm mov eax, 01h mov dx, 0xD007 out dx, eax ,嵌入汇编示例2 _asm mov eax, 01h _asm mov dx, 0xD007 _asm out dx, eax,17,在_asm中使用汇编语言的注意事项: 嵌入式汇编支持80486的全部指令系统。VC+5/6还支持MMX指令集。 对于不支持的指令,VC提供_emit伪指令进行扩展 #define cpi_id _asm _emit 0x0F _asm _emit 0XA2 _asm cpu_id /使用C+的宏 嵌入式汇编代码可以使用MASM的表达式来产生一个数值或地址 嵌入式汇编行可以采用C+或MASM的注释风格 嵌入式汇编可以使用C+的数据类型和数据对象,但是不能使用MASM的伪指令和操作符定义数据,如DB, DW, DUP等,18,嵌入式汇编不支持MASM的宏指令,也不支持大部分MASM伪指令 用汇编语言编写的函数中,不必保存EAX/EBX/ECX/EDX/ESI和EDI寄存器,但是必须保存函数中使用的其他寄存器 嵌入式汇编代码可以使用LENGTH(返回数组元素个数)、 TYPE(返回 C+类型或变量的大小)、 SIZE(LENGTHTYPE)操作符。,对于数据 int iarray8(int类型是32位,4字节),则: LENGTH iarray 返回8 TYPE iarray 返回4 SIZE iarray 返回32,19,在_asm中使用C+语言的注意事项: 嵌入式汇编代码可以使用C+的符号(包括标号、变量、函数名)、常量(包括符号常量、枚举成员)、宏和预处理指令、注释、类型名及结构、联合的成员。 每一个汇编语句只能包含一个C+符号,且不能使用和MASM保留字相同的C+符号,也不识别struct和union关键字 _asm中引用函数前必须在程序说明其原型 嵌入式汇编语句中可以使用汇编语言格式表示整数常量,也可以采用C+的格式(如0x37a),20,嵌入式汇编语言中不能使用C+专用操作符,如,可以使用两种语言都有的操作符 嵌入式汇编中可以引用包含该_asm作用范围内的任何符号(包括变量),它通过使用变量名引用C+的变量 嵌入式会变中的标号的作用范围为定义它的函数中有效,汇编转移指令和C+的goto指令都可以跳到_asm块内或块外的标号 _asm块中定义的标号对大小写不敏感,汇编语言指令跳转到C+中的标号也大小写不敏感,但C+的goto语句跳转的标号大小写敏感,21,int array6 struct first_type char *carray; int same_name; ftype; struct second_type int same_name; stype _asm mov array6, dx mov ebx,OFFSET ftype mov ecx, ebx.carray mov esi, ebxftype.same_name ,使用C+数据举例,22,嵌入式汇编举例:,#include int power2(int, int); void main(void) cout“2的6次方乘5等于:t“; coutpower2(5,6)endl; int power2(int num, int power) _asm mov eax, num ; 取第一个参数 mov ecx, power ; 取第二个参数 shl eax, cl ; 计算EAX=EAX(2CL) / 返回值存于EAX ,23,汇编语言通过参数名就可以引用参数,采用return返回出口参数,也可以不写return,编译时可能有警告。,返回值的约定: 32位的数据扩展到32位,存放在EAX中返回 48字节的返回值存放在EDX.EAX中返回 更大的字节数据将它的地址指针存放在EAX中返回,24,第6章 微机总线标准,25,USB On-The-Go(OTG)是对USB 2.0规范的有益的扩充。这类设备既可以作为USB设备与PC机相连,又可以作为USB主机连接其它USB设备。因此,这类设备可以抛弃PC,直接进行设备与设备之间的点对点(pear to pear)通信。,USB On-The-Go 在USB 规范基础上增加了以下几点 双重功能。设备既可用作主机也可用作外设 主机交流协议HNP 用于转换USB 主机和外设功能 对话请求协议 除小和大功率之外增加了微功率选择 超小连接器,6.3.6 USB2.0的补充OTG技术(自学),26,USB On-The-Go 设备定义了一个新的称之为mini-AB 的袖珍插孔,它能接入mini-A 和mini-B 插头。连接器的不同定义设备的初始功能。,27,两个OTG RTR(主/从双角色)设备相连,可以用主机交流协议(HNP)随时切换主机角色。步骤如下:,A设备发出SET_FEATURE命令后,B设备可请求总线控制权。 A设备挂起总线,通知B设备可占用总线。 B设备发送信号,断开A设备连接。 A设备启动D+线本方的上拉电阻,将D+置高。此时A设备成为外设,B设备成为主机。 B设备完成对总线控制后,启动D+线本方的上拉电阻,放弃对总线的控制。 在以上电平变换的同时,通过软件实现真正的对总线的控制权变化。,28,1.分清开发的设备类型,嵌入式USB主机 USB Hub 基于HID(人机接口设备)的USB设备 USB OTG设备,2.选择合适的控制芯片,内嵌USB模块和嵌入式CPU核的SOC芯片 内嵌单片机内核的USB控制芯片 可与其它嵌入式CPU相连的单独USB控制芯片,6.3.7 开发具有USB功能的设备的先期准备(自学),29,3.一般的开发步骤,根据选择的器件和要实现的功能,设计相关电路。 编制软件(根据不同应用,设计其中部分或全部软件)。 - 设备驱动程序(对USB设备,或OTG设备) - USB主机设备的控制程序(对主机或OTG设备,如完成枚举功能等) - 主机和设备的角色切换驱动(对OTG设备) - 编写相关的PC端软件,4.目前常见的控制芯片,OTG芯片:ISP1362,OTG243 主机/设备芯片: SL811HS,ISP1161 设备芯片:PDIUSBD12,ISP1581 HUB芯片:GL652USB,30,6.3.8 USB 3.0概览(自学),最高速为4.8Gbps 采用全双工传输 接口由4线改成8线 增加的4线路用于数据发送或接收 USB 3.0 的供电力提高到了每个端口900mA 与USB2.0和USB1.1向下兼容,31,6.4.1 PCI-Express总线的主要性能特点,6.4 PCI-Express总线 (自学),PCI Express为互连设备提供高速、高性能、点对点、双/单工、差动信令链路。数据从一组信号线上发送,而在另一组信号线上接收。采用设备间的点对点串行连接。 将两台设备连接在一起的一个PCI Express互连称为一条链路。一条1的链路有一条通道,即每个方向上有一对差动信号,共4个信号。,32,1、串行的点对点互连 2、使用差动信号 3、使用交换器来互连多台设备 4、采用基于数据包的协议 5、具有更高的数据传输速率(2.5Gbit/s的单向单线连接传输速率 ) 6、拥有存储器地址空间、IO地址空间和配置地址空间 7、采用层次结构 8、热插拔支持 9、与PCI兼容的软件模型,33,6.4.2 PCI-Express总线结构,34,35,(1)根联合体 集成了多种控制器,替CPU产生事务请求,它还可以代表CPU发起配置事务请求、生成存储器和I/O请求和锁定事务请求。 根联合体发送数据包离开其端口,或从其端口接收数据并转发至存储器。 根联合体初始化用来形成请求者或完成者的设备ID,通常由总线号、设备号和功能号组成。根联合体的总线、设备及功能号都被初始化全为0。,36,(2)交换器 交换器利用基于存储器、I/O或配置地址的路由方法转发数据包。 交换器根据下面3种路由机制之一转发这些数据包:地址路由、ID路由或隐式路由。 交换器能实现两种仲裁机制:端口仲裁和VC仲裁,并且依据仲裁机制确定将入端口数据包转发至出端口的优先级。交换器支持锁定请求。,37,(3)端点 端点可以作为请求者发起事务,或者作为完成者对事务做出响应。 端点有PCI Express端点和传统端点两种。传统端点支持I/O事务,而且可以作为完成者支持锁定事务语义,还可以利用消息请求产生传统中断信号,但另外还必须支持产生利用存储器写事务的MSI。 PCI Express端点必须在可预取存储地址空间内支持64位存储器寻址能力。 两种类型的端点都实现了0类 PCI配置头,并且作为完成者对配置事务做出响应。,38,6.4.3 PCI Express事务简介,事务:为请求者和完成者之间完成一次信息传送需要完成的一系列一个或多个数据包传送的过程。 PCI Express事务可以分成大类:存储器事务、I/O事务、配置事务和消息事务。,39,6.4.4 PCI-Express的层次结构,PCI Express 设备A,设备核心,事务层,数据链路层,PCI Express 设备B,物理层,发送 接收,PCI Express 核心逻辑接口,设备核心,事务层,数据链路层,物理层,发送 接收,PCI Express 核心逻辑接口,40,(1)设备核心/软件层 设备核心是由根联合体核心逻辑或诸如以太网控制器、SCSI控制器、USB控制器等端点核心逻辑组成。 设备核心逻辑与本地软件一起提供PCI Express设备生成TLP所需的必要信息。 (2)事务层 事务层主要负责生成出站TLP流量和接收入站TLP流量。 (3)数据链路层 数据链路层的主要功能是保证在各链路上发送和接收数据包时数据的完整性。 (4)物理层 TLP和DLLP类型的数据包从数据链路层发送至物理层,并通过物理链路传送。物理层也从链路上接收数据包并将其发送至数据链路层。,41,第7章 中断与异常,42,7.5.1 串行中断结构,SIO LPC47B27X,IRQx,ICH8,SERIRQ,CPU,INTR,IRQ14,15,PIRQx,7.5 串行中断(自学),43,SERIRQ线采用同步单线传输结构。,遵循PCI信号使用的三态协议。 S-取样阶段 信号为低电平。 R-恢复阶段 信号为高电平。 T-翻转状态 信号被释放,SERIRQ包含IRQ0, 1, 315, PIRQA#PIRQD#, SMI#和IOCHK#。但实际上并不支持IRQ0、8、13中断。实际的IRQ14、IRQ15实际上也不从SERIRQ中传到南桥。,SERIRQ上信息分帧传输。,44,1.开始帧,操作模式: 连续的(ICH8单独产生开始帧) 静态的(一个串行IRQ设备来启动开始帧),长度:4、6或8个时钟宽度(设备31的0号功能配置空间的64H处串行IRQ控制寄存器位1和位0决定).,2.停止帧,长度:2或3个时钟宽度。(由SERIRQ配置寄存器决定),含义:2SERIRQ设备触发下次开始帧; 3ICH8触发下次开始帧。,7.5.2 帧结构,45,3.数据帧,长度:21个时钟宽度。,驱动:需请求中断的设备在自己的数据帧中将SERIRQ驱动:,IRQ015在没有中断请求的时候将SERIRQ线驱动为低电平 PCI INTA:D#,SMI和IOCHK#在有中断请求的时候将SERIRQ线驱动为低电平 否则都将SERIRQ线变为三态,由上拉电阻将他们驱动到高电平 。,所谓自己的数据帧是指在21个时钟中数据帧号和本设备的IRQ号码相等那一数据帧。外设要在SERIRQ的上升沿开始计算帧。,46,7.6.1 APIC子系统组成,1.组成,返回下页,Local APIC、I/O APIC和APIC总线。,7.6 APIC(自学),47,Local APIC:,包含了8259A和8254的功能。,转上页,响应的中断:,I/O APIC送来的系统中断请求;,经APIC总线送来的处理器间中断请求(IPI);,本地的中断请求(定时、错误、计数、连线)。,I/O APIC:,多达24个中断;,中断优先级与中断号独立;,不需要中断响应周期。,可选择某个或一组处理器中的一个为目标处理器。,48,APIC总线:,组成:APICD0、APICD1、APICCLK。,类型:串行同步总线。,串行时序:不同时钟先高位,后低位;同一时钟D1高位,D0低位。,内容:EOI命令和短消息。,应用:连接的每个模块均有自己的ID(固定);,每个模块均有自己的仲裁ID(可变,初值来自模块ID)。,49,2.APIC中断类型,系统中断:,经I/O APIC模块引脚送入的中断请求。,交中断请求指定的目标处理器处理。,本地中断:,定时、计数、错误、INTR及NMI。,只能由本地处理器处理。,处理器间中断:,电平撤消初始化、初始化、启动、远程读、SMI、NMI等。,交目标处理器处理。,50,1.直接访问寄存器,INDR:R/W存放需访问的间接寄存器编号。,DATR:R/W间接访问寄存器访问结果。,IRQPAR:W存放置位方式产生的中断向量号。,EOIR:W存放正在服务(将结束)的中断向量号。,2.间接访问寄存器,IDR:R/W32B存放模块自己的固定的ID。,VERR:R32B存放有无IRQ声明和重定向寄存器数。,ARBIDR:R32B存放模块的仲裁ID。,BOOT_CONFIGR:R/W32B存放中断传递方式。,7.6.2 I/O APIC的寄存器,51,RDR:R/W64B索引编号10H3FH, 每个RDR占两个号。,52,1.中断请求产生并递交,收到引脚信号有效改变时,置位RDR的RIRR位,争取总线使用权后,向APIC总线发送短消息。,目标处理器(目标模式及传递模式)已在RDR中设定。,边沿触发方式时,消息传送后将RDR的RIRR位复位。,2.处理器接受中断请求产生并服务,目标处理器(可能多个)的Local APIC收到请求后,根据传递模式,确定本处理器是否命中。,命中的目标处理器做相应中断处理,当处理器核心执行的代码优先级低于中断请求优先级时处理中断。,7.6.3 APIC工作过程,53,3.中断结束阶段,中断为电平触发方式时,发布EOI命令通知I/O APIC做结束处理。,当前处理器的总线使用权降为最低。,54,结构:分布式仲裁。,空闲状态:D1D0=11(某消息结束后)。,仲裁周期:5个时钟周期。,EOI传输优先级高于正常传输。,仲裁算法:轮转优先级算法。,仲裁得胜者置为0,其余模块一律加1。,7.6.4 APIC总线仲裁,55,第8章 ICH8中的常规接口,56,1. 数据传送的控制, 数据传送涉及的3个问题 1)数据的来源; 2)数据的去处; 3)数据本身以及如何控制数据的传送。,8.2.1 DMA技术概述,8.2 DMA操作(自学),57, DMA方式控制的数据传送,58, DMA传送方式通常用来高速传送大批量的数据块。如:, 硬盘和软盘I/O; 快速通信通道I/O;, 多处理机和多程序数据块传送; 在图像处理中,对CRT屏幕送数据;, 快速数据采集; DRAM的刷新操作。,59, DMA传送包括: (1)存储单元传送:存储器存储器。 (2)DMA读传送:存储器I/O设备。 (3)DMA写传送:I/O设备存储器。,60,2. DMA传送的工作过程,1)I/O设备向DMAC发出DMA请求; 2) DMAC向CPU发出总线请求;,3)CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号; 4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制;,61,5)DMAC向I/O设备发出的DMA应答信号; 6)DMAC进行一个字节的传送; 7)完成设定的字节数据传送,CPU恢复对系统总线的控制。,62,3. DMA传送的方式,1) DMA操作类型 数据传送。数据传送是把源地址的数据传送到目的地址中去。 数据检验。当数据传送完毕之后,可以进行校验操作。校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过DMAC向CPU提出申请,进入DMA周期。 数据检索。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。,63,2) DMA操作方式 单字节操作方式。每次进行DMA操作只操作一个字节 。 连续操作方式。只要DMA操作开始,DMAC始终占用总线,直到DMA操作完成,才把总线控制权交还CPU。 请求操作方式。如果有DMA请求,则DMAC就占用总线;当DMA请求无效,或DMA操作完成,或由外部传来过程结束信号(EOP)时,DMAC都会释放总线。 级联传送方式。,64,1)主动态 在DMAC获得总线控制权之后,DMAC取代CPU而成为系统的主控者,接管和控制系统总线(数据总线、地址总线和控制总线)。通过总线向存储器或I/O设备发出地址、读/写信号,以控制在两个实体之间的传送。,2)被动态 在DMAC获得总线控制权之前,DMAC受CPU控制(。此时,CPU可对DMAC进行初始化编程,也可从DMAC中读出状态。当DMAC上电或复位时,DMAC自动处于被动态。,4. DMA控制器在系统中的两种工作状态,65,1. 82C37A的特点 具有4个独立的DMA通道,每个通道都可独立地进行初始化。 每个通道的DMA请求都可以被允许或禁止。 每个通道的DMA有不同的优先级,既可以是固定优先级,也可以是循环优先级。 每个通道进行一次传送的最大字节数为64K。 提供4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。 时钟频率从DC到5MHz的全静态设计。 在5MHz的时钟频率下传送速率高达1.6MB/s。,8.2.2 82C37A 的内部结构和引脚功能说明,66,282C37A 的内部结构 DMA通道 读/写控制 控制逻辑,67,82C37A内部逻辑框图,68,282C37A 的引脚功能,69,8.2.3 82C37A 的内部寄存器,70,1控制寄存器,71,2工作方式寄存器,72,3状态寄存器,73,4请求寄存器,74,5屏蔽寄存器,75,82C37A DMA控制器端口地址,76,8.2.4 软命令,1)清先/后触发器软命令 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0CH, AL ; 先/后触发器被清“0”,2)总清除软命令 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0DH, AL ;写入总清端口,执行总清除命令,3)清屏蔽寄存器软命令。 MOV AL, 0XXH ;0XXH为AL中任意值 OUT 0EH, AL ;写入清屏蔽寄存器端口,77,8.2.5 DMA控制器的工作时序, DMA空闲周期SI 过渡状态S0 DMA 有效周期(S1、S2、S3、S4), 82C37A内部状态变化流程,78,79,8.2.6 82C37A的初始化编程, 初始化编程的步骤: 命令字写入控制寄存器 屏蔽字写入屏蔽寄存器,方式字写入方式寄存器 清“0” 先/后触发器,写入地址寄存器字节寄存器 解除屏蔽 写入请求寄存器,80,8.2.7 ICH8中的DMA控制器,182C37A DMAC的级联,81,2如何扩展82C37A DMAC的寻址空间,82,83,3应用举例,现假设在级联的82C37的主片通道1,将内存其始地址为80000H的280H字节的内容直接输出到外部设备。,MOV AL, 4 ;命令字, 禁止82C37工作 OUT 08, AL ;写命令寄存器 MOV AL, 0 OUT 0CH, AL ;清除先/后触发器 OUT 02, AL ;写低位地址 OUT 02, AL ;写高位地址,84,MOV AL, 8 ;页面地址为8 OUT 83H, AL ;写页面寄存器 MOV AX, 280H ;传输字节数 DEC AX OUT 03, AL ;写字节数低位 MOV AL, AH OUT 03, AL ;写字节

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论