《微型机系统与接口技术自学部分.pptx》由会员分享,可在线阅读,更多相关《微型机系统与接口技术自学部分.pptx(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第3章 80 x86汇编语言程序设计第1页/共91页23.6宏定义、宏调用与宏展开(自学)宏定义是源程序中一段有独立功能的程序代码。将这宏定义是源程序中一段有独立功能的程序代码。将这一段程序定义为一条宏指令,并具有一个相应的宏指一段程序定义为一条宏指令,并具有一个相应的宏指令名,在程序中就可以多次调用它,调用时只需要引令名,在程序中就可以多次调用它,调用时只需要引用一个宏指令名来代替这一段程序就可以了。在汇编用一个宏指令名来代替这一段程序就可以了。在汇编的时候,汇编程序会自动将这个宏指令扩展成整段程的时候,汇编程序会自动将这个宏指令扩展成整段程序。序。第2页/共91页3宏定义宏定义有两种格式
2、:1、简单宏定义 宏名宏名 MACROMACRO ;宏体;宏体 ;宏体;宏体 ENDM ENDM 简单宏定义示例CRLFCRLF MACRO MACRO MOV AH,02H MOV DL,0DH ;回车 INT 21H MOV DL,0AH ;换行 MOV AH,02H INT 21HENDMENDM第3页/共91页4带形参的宏定义示例 MULTIPLY MACRO OPR1,OPR2,RESULTMULTIPLY MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX MOV AX,OPR1OPR1 IMUL OPR2OPR2 MOV RELUSTRELUST,AX
3、MOV RESULT+2RESULT+2,DX POP AX POP DX ENDM ENDM 2、带形参的宏定义 宏名宏名 MACRO MACRO ;宏体;宏体 ;宏体;宏体 ENDMENDM 第4页/共91页5宏调用宏调用有两种格式:1、对简单的宏定义的调用:宏名宏名2、带形参的宏定义的调用:宏名宏名 宏调用示例 CRLF MULTIPLY CX,VAR,XYZBX MULTIPLY 240,BX,SAVE 第5页/共91页6宏扩展(宏展开)宏扩展宏扩展汇编程序对汇编源程序汇编时将宏体汇编程序对汇编源程序汇编时将宏体 插入到宏调用处插入到宏调用处MULTIPLY宏扩展示例+PUSH DX
4、+PUSH AX +MOV AX,CXCX +IMUL VARVAR +MOV XYZBXXYZBX,AX ;实参替换形参 +MOV XYZBX+2XYZBX+2,DX +POP AX +POP DX 说明:说明:汇编程序在所展开的指令前加汇编程序在所展开的指令前加+号以示区别号以示区别 第6页/共91页7宏指令与子程序的区别 子程序 宏指令 程序执行期间 在汇编期间展开 由主程序调用 它只占有自身它只占有自身 与调用次数有关,每调用一次与调用次数有关,每调用一次 大小的空间大小的空间 就把宏定义体展开一次就把宏定义体展开一次 执行时需增加时间 直接执行宏体 上的额外开销第7页/共91页8第8
5、页/共91页9宏定义的进一步讨论:1 1、宏定义可以无变元、宏定义可以无变元2 2、变元可以是操作码、变元可以是操作码宏定义:宏定义:FOO MACRO P1,P2P2,P3 MOV AX,P1 P2 P2 P3 ENDM 宏调用:宏调用:FOO WORD_VAR,INCINC,AX 宏展开:宏展开:+MOV AX,WORD_VAR +INCINC AX第9页/共91页103 3、变元可以是操作码的一部分,必须用、变元可以是操作码的一部分,必须用&作为分隔符作为分隔符宏定义:宏定义:LEAP MACRO CONDCOND,LAB J&CONDJ&COND LAB ENDM 宏调用:宏调用:LE
6、AP C C,THERE宏展开:宏展开:+JCJC THERE第10页/共91页114 4、变元是、变元是ASCIIASCII串串宏定义:宏定义:MSGGEN MACRO LAB,NUM,XYZXYZ LAB&NUM DB HELLO MR.&XYZXYZ ENDM宏调用:宏调用:MSGGEN MSG,1,TAYLORTAYLOR宏展开:宏展开:+MSG1 DB HELLO MR.TAYLORTAYLOR第11页/共91页125 5、宏定义体内允许使用标号、宏定义体内允许使用标号,此时,须使用此时,须使用LOCALLOCAL伪操作伪操作 宏定义:宏定义:ABSOL MACRO OPER LOC
7、AL NEXTLOCAL NEXT CMP OPER,0 JGE NEXTNEXT NEG OPER NEXT:NEXT:ENDM宏调用:宏调用:ABSOL VAR ABSOL BX 宏展开:宏展开:+CMP VAR,0 +JGE?0000?0000 +NEG VAR +?0000?0000:+CMP BX,0 +JGE?0001?0001 +NEG BX +?0001?0001:第12页/共91页136 6、宏定义中可以使用宏调用,(必须先定义后调用)、宏定义中可以使用宏调用,(必须先定义后调用)宏定义:宏定义:DIF MACRO X,YDIF MACRO X,Y MOV AX,X MOV
8、AX,X SUB AX,Y SUB AX,Y ENDM ENDM DIFSQR MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX DIF OPR1,OPR2DIF OPR1,OPR2 IMUL AX MOV RESULT,AX POP AX POP DX ENDM 第13页/共91页143.7在VC+中嵌入汇编语言指令(自学)本节类容适合在本节类容适合在Visual C+5.0/60Visual C+5.0/60中使用中使用格式格式1 1:_asm_asm 汇编语言指令汇编语言指令 格式格式2 2:_asm _asm 汇编语言指令汇编语言指令说明说明:1)格式)格式
9、1中中内可以是内可以是1条也可以是多条汇编指令条也可以是多条汇编指令2)格式)格式2只能跟一条汇编语言指令只能跟一条汇编语言指令3)有些版本的)有些版本的VC需要使用需要使用_asm(两个下划线)(两个下划线)第14页/共91页15嵌入汇编示例1_asm_asm mov eax,01h mov dx,0 xD007 out dx,eax 嵌入汇编示例2_asm_asm mov eax,01h_asm_asm mov dx,0 xD007_asm_asm out dx,eax第15页/共91页16在在_asm_asm中使用汇编语言的注意事项:中使用汇编语言的注意事项:1.1.嵌入式汇编支持嵌入式
10、汇编支持8048680486的全部指令系统。的全部指令系统。VC+5/6VC+5/6还支持还支持MMXMMX指令集。指令集。2.2.对于不支持的指令,对于不支持的指令,VCVC提供提供_emit_emit伪指令进行扩展伪指令进行扩展#define cpi_id _asm _emit 0 x0F _asm _emit 0XA2#define cpi_id _asm _emit 0 x0F _asm _emit 0XA2 _asm cpu_id /_asm cpu_id /使用使用C+C+的宏的宏3.3.嵌入式汇编代码可以使用嵌入式汇编代码可以使用MASMMASM的表达式来产生一个数值或地址的表达
11、式来产生一个数值或地址4.4.嵌入式汇编行可以采用嵌入式汇编行可以采用C+C+或或MASMMASM的注释风格的注释风格5.5.嵌入式汇编可以使用嵌入式汇编可以使用C+C+的数据类型和数据对象,但是不能使用的数据类型和数据对象,但是不能使用MASMMASM的伪指令的伪指令和操作符定义数据,如和操作符定义数据,如DB,DW,DUPDB,DW,DUP等等第16页/共91页176.6.嵌入式汇编不支持嵌入式汇编不支持MASMMASM的宏指令,也不支持大部分的宏指令,也不支持大部分MASMMASM伪指令伪指令7.7.用汇编语言编写的函数中,不必保存用汇编语言编写的函数中,不必保存EAX/EBX/ECX/
12、EDX/ESIEAX/EBX/ECX/EDX/ESI和和EDIEDI寄存器,但寄存器,但是必须保存函数中使用的其他寄存器是必须保存函数中使用的其他寄存器8.8.嵌入式汇编代码可以使用嵌入式汇编代码可以使用LENGTHLENGTH(返回数组元素个数)、(返回数组元素个数)、TYPETYPE(返回(返回 C+C+类类型或变量的大小)、型或变量的大小)、SIZESIZE(LENGTHTYPELENGTHTYPE)操作符。)操作符。对于数据对于数据 int iarray8int iarray8(intint类型是类型是3232位位,4,4字节),则:字节),则:LENGTH iarray LENGTH
13、 iarray 返回返回8 8 TYPE iarray TYPE iarray 返回返回4 4SIZE iarray SIZE iarray 返回返回3232第17页/共91页18在在_asm_asm中使用中使用C+C+语言的注意事项:语言的注意事项:1.1.嵌入式汇编代码可以使用嵌入式汇编代码可以使用C+C+的符号(包括标号、变量、函数名)、常量(包括的符号(包括标号、变量、函数名)、常量(包括符号常量、枚举成员)、宏和预处理指令、注释、类型名及结构、联合的成员。符号常量、枚举成员)、宏和预处理指令、注释、类型名及结构、联合的成员。2.2.每一个汇编语句只能包含一个每一个汇编语句只能包含一个
14、C+C+符号,且不能使用和符号,且不能使用和MASMMASM保留字相同的保留字相同的C+C+符号,也不识别符号,也不识别structstruct和和unionunion关键字关键字3.3._asm_asm中引用函数前必须在程序说明其原型中引用函数前必须在程序说明其原型4.4.嵌入式汇编语句中可以使用汇编语言格式表示整数常量,也可以采用嵌入式汇编语句中可以使用汇编语言格式表示整数常量,也可以采用C+C+的格式的格式(如(如0 x37a0 x37a)第18页/共91页195.5.嵌入式汇编语言中不能使用嵌入式汇编语言中不能使用C+C+专用操作符,如专用操作符,如,可以使用两种语言都有的操,可以使用
15、两种语言都有的操作符作符6.6.嵌入式汇编中可以引用包含该嵌入式汇编中可以引用包含该_asm_asm作用范围内的任何符号(包括变量),它通作用范围内的任何符号(包括变量),它通过使用变量名引用过使用变量名引用C+C+的变量的变量7.7.嵌入式会变中的标号的作用范围为定义它的函数中有效,汇编转移指令和嵌入式会变中的标号的作用范围为定义它的函数中有效,汇编转移指令和C+C+的的gotogoto指令都可以跳到指令都可以跳到_asm_asm块内或块外的标号块内或块外的标号8.8._asm_asm块中定义的标号对大小写不敏感,汇编语言指令跳转到块中定义的标号对大小写不敏感,汇编语言指令跳转到C+C+中的
16、标号也大中的标号也大小写不敏感,但小写不敏感,但C+C+的的gotogoto语句跳转的标号大小写敏感语句跳转的标号大小写敏感第19页/共91页20intarray6structfirst_typechar*carray;intsame_name;ftype;structsecond_typeintsame_name;stype_asmmovarray6,dxmovebx,OFFSETftypemovecx,ebx.carraymovesi,ebxftype.same_name使用使用C+数据举例数据举例第20页/共91页21嵌入式汇编举例:嵌入式汇编举例:#includeintpower2(i
17、nt,int);voidmain(void)cout2的的6次方乘次方乘5等于等于:t;coutpower2(5,6)endl;intpower2(intnum,intpower)_asmmoveax,num;取第一个参数取第一个参数movecx,power;取第二个参数取第二个参数shleax,cl;计算计算EAX=EAX(2CL)/返回值存于返回值存于EAX第21页/共91页22汇编语言通过参数名就可以引用参数,采用汇编语言通过参数名就可以引用参数,采用return返回返回出口参数,也可以不写出口参数,也可以不写return,编译时可能有警告。,编译时可能有警告。返回值的约定返回值的约定:
18、32位的数据扩展到32位,存放在EAX中返回48字节的返回值存放在EDX.EAX中返回更大的字节数据将它的地址指针存放在EAX中返回第22页/共91页23第6章 微机总线标准 第23页/共91页24USBOn-The-Go(OTG)是对是对USB2.0规规范的有益的扩充。这类设备既可以作为范的有益的扩充。这类设备既可以作为USB设备与设备与PC机相连,又可以作为机相连,又可以作为USB主机连接其它主机连接其它USB设备。因此,这类设设备。因此,这类设备可以抛弃备可以抛弃PC,直接进行设备与设备之,直接进行设备与设备之间的点对点间的点对点(peartopear)通信。通信。USB On-The-
19、Go 在USB 规范基础上增加了以下几点 双重功能。设备既可用作主机也可用作外设双重功能。设备既可用作主机也可用作外设 主机交流协议主机交流协议HNP HNP 用于转换用于转换USB USB 主机和外设功能主机和外设功能 对话请求协议对话请求协议 除小和大功率之外增加了微功率选择除小和大功率之外增加了微功率选择 超小连接器超小连接器的补充OTG技术(自学)第24页/共91页25USB On-The-Go 设备定义了一个新的称之为mini-AB 的袖珍插孔,它能接入mini-A 和mini-B 插头。连接器的不同定义设备的初始功能初始功能。VBUSD+D-GNDID1:SlaveB设备设备0:M
20、asterA设备设备mini-B 插头mini-A 插头VCCVCC第25页/共91页26两个两个OTGRTR(主主/从双角色从双角色)设备相连,可以用主机交设备相连,可以用主机交流协议流协议(HNP)随时切换主机角色。步骤如下:随时切换主机角色。步骤如下:1.A设备发出设备发出SET_FEATURE命令后,命令后,B设备可请求总设备可请求总线控制权。线控制权。2.A设备挂起总线,通知设备挂起总线,通知B设备可占用总线。设备可占用总线。3.B设备发送信号,断开设备发送信号,断开A设备连接。设备连接。4.A设备启动设备启动D+线本方的上拉电阻,将线本方的上拉电阻,将D+置高。此时置高。此时A设备
21、成为外设,设备成为外设,B设备成为主机。设备成为主机。5.B设备完成对总线控制后,启动设备完成对总线控制后,启动D+线本方的上拉电阻,线本方的上拉电阻,放弃对总线的控制。放弃对总线的控制。6.在以上电平变换的同时,通过软件实现真正的对总线在以上电平变换的同时,通过软件实现真正的对总线的控制权变化。的控制权变化。第26页/共91页271.分清开发的设备类型分清开发的设备类型嵌入式嵌入式USB主机主机USBHub基于基于HID(人机接口设备人机接口设备)的的USB设备设备USBOTG设备设备2.选择合适的控制芯片选择合适的控制芯片内嵌内嵌USB模块和嵌入式模块和嵌入式CPU核的核的SOC芯片芯片内
22、嵌单片机内核的内嵌单片机内核的USB控制芯片控制芯片可与其它嵌入式可与其它嵌入式CPU相连的单独相连的单独USB控制芯片控制芯片开发具有USB功能的设备的先期准备(自学)第27页/共91页283.一般的开发步骤一般的开发步骤1)根据选择的器件和要实现的功能,设计相关电路。2)编制软件(根据不同应用,设计其中部分或全部软件)。-设备驱动程序设备驱动程序(对对USBUSB设备,或设备,或OTGOTG设备设备)-USB-USB主机设备的控制程序(对主机或主机设备的控制程序(对主机或OTGOTG设备,如完成枚举功能等)设备,如完成枚举功能等)-主机和设备的角色切换驱动(对主机和设备的角色切换驱动(对O
23、TGOTG设备)设备)-编写相关的编写相关的PCPC端软件端软件4.目前常见的控制芯片目前常见的控制芯片OTG芯片:芯片:ISP1362,OTG243主机主机/设备芯片:设备芯片:SL811HS,ISP1161设备芯片:设备芯片:PDIUSBD12,ISP1581HUB芯片:芯片:GL652USB第28页/共91页29概览(自学)最高速为最高速为4.8Gbps采用全双工传输采用全双工传输接口由接口由4线改成线改成8线线增加的增加的4线路用于数据发送或接收线路用于数据发送或接收USB3.0的供电力提高到了每个端口的供电力提高到了每个端口900mA与与USB2.0和和USB1.1向下兼容向下兼容第
24、29页/共91页30总线的主要性能特点 6.4 PCI-Express总线(自学)PCIExpress为互连设备提供高速、高性能、点对点、为互连设备提供高速、高性能、点对点、双双/单工、差动信令链路。数据从一组信号线上发送,单工、差动信令链路。数据从一组信号线上发送,而在另一组信号线上接收。采用设备间的点对点串行而在另一组信号线上接收。采用设备间的点对点串行连接。连接。将两台设备连接在一起的一个将两台设备连接在一起的一个PCIExpress互连称为互连称为一条链路。一条一条链路。一条1的链路有一条通道,即每个方向上的链路有一条通道,即每个方向上有一对差动信号,共有一对差动信号,共4个信号。个信
25、号。第30页/共91页311、串行的点对点互连2、使用差动信号3、使用交换器来互连多台设备 4、采用基于数据包的协议 5、具有更高的数据传输速率(2.5Gbit/s的单向单线连接传输速率)6、拥有存储器地址空间、IO地址空间和配置地址空间 7、采用层次结构8、热插拔支持9、与PCI兼容的软件模型第31页/共91页32总线结构 第32页/共91页33第33页/共91页34(1)根联合体 集成了多种控制器,替CPU产生事务请求,它还可以代表CPU发起配置事务请求、生成存储器和I/O请求和锁定事务请求。根联合体发送数据包离开其端口,或从其端口接收数据并转发至存储器。根联合体初始化用来形成请求者或完成
26、者的设备ID,通常由总线号、设备号和功能号组成。根联合体的总线、设备及功能号都被初始化全为0。第34页/共91页35(2)交换器 交换器利用基于存储器、I/O或配置地址的路由方法转发数据包。交换器根据下面3种路由机制之一转发这些数据包:地址路由、ID路由或隐式路由。交换器能实现两种仲裁机制:端口仲裁和VC仲裁,并且依据仲裁机制确定将入端口数据包转发至出端口的优先级。交换器支持锁定请求。第35页/共91页36(3)端点 端点可以作为请求者发起事务,或者作为完成者对事务做出响应。端点有PCI Express端点和传统端点两种。传统端点支持I/O事务,而且可以作为完成者支持锁定事务语义,还可以利用消
27、息请求产生传统中断信号,但另外还必须支持产生利用存储器写事务的MSI。PCI Express端点必须在可预取存储地址空间内支持64位存储器寻址能力。两种类型的端点都实现了0类 PCI配置头,并且作为完成者对配置事务做出响应。第36页/共91页37事务简介 事务:事务:为请求者和完成者之间完成一次信息传送需要完成的一系列一个或多个数据包传送的过程。PCI Express事务可以分成大类:存储器事务存储器事务、I/OI/O事务事务、配置事务配置事务和消息事务消息事务。第37页/共91页38的层次结构 PCIExpress设备设备A设备核心设备核心事务层事务层数据链路层数据链路层PCIExpress
28、设备设备B物理层物理层发送发送接收接收PCIExpress核心逻辑接口核心逻辑接口设备核心设备核心事务层事务层数据链路层数据链路层物理层物理层发送发送接收接收PCIExpress核心逻辑接口核心逻辑接口第38页/共91页39(1 1)设备核心)设备核心/软件层软件层 设备核心是由根联合体核心逻辑或诸如以太网控制器、SCSI控制器、USB控制器等端点核心逻辑组成。设备核心逻辑与本地软件一起提供PCI Express设备生成TLP所需的必要信息。(2 2)事务层)事务层 事务层主要负责生成出站TLP流量和接收入站TLP流量。(3 3)数据链路层)数据链路层 数据链路层的主要功能是保证在各链路上发送
29、和接收数据包时数据的完整性。(4 4)物理层)物理层 TLP和DLLP类型的数据包从数据链路层发送至物理层,并通过物理链路传送。物理层也从链路上接收数据包并将其发送至数据链路层。第39页/共91页40第7章 中断与异常 第40页/共91页41串行中断结构SIOLPC47B27XIRQxICH8SERIRQCPUINTRIRQ14,15PIRQxPIRQxICH8串行中断串行中断驱动部件驱动部件SERIRQ串行中串行中断分离断分离部件部件2个个8259部件部件INTRIRQ14,157.5 串行中断(自学)第41页/共91页42SERIRQ线采用同步单线传输结构。线采用同步单线传输结构。遵循PC
30、I信号使用的三态协议。S-取样阶段 信号为低电平。R-恢复阶段 信号为高电平。T-翻转状态 信号被释放SERIRQ包含包含IRQ0,1,315,PIRQA#PIRQD#,SMI#和和IOCHK#。但实际上。但实际上并不支持并不支持IRQ0、8、13中断。实际的中断。实际的IRQ14、IRQ15实际上也不从实际上也不从SERIRQ中传到南桥。中传到南桥。SERIRQ上信息分帧传输。上信息分帧传输。第42页/共91页431.1.开始帧开始帧操作模式:操作模式:连续的(ICH8单独产生开始帧)静态的(一个串行IRQ设备来启动开始帧)长度:长度:4、6或8个时钟宽度(设备31的0号功能配置空间的64H
31、处串行IRQ控制寄存器位1和位0决定).2.2.停止帧停止帧 长度:长度:2或3个时钟宽度。(由SERIRQ配置寄存器决定)含义:含义:2SERIRQ设备触发下次开始帧;3ICH8触发下次开始帧。帧结构帧结构第43页/共91页443.3.数据帧数据帧长度:长度:21个时钟宽度。驱动:驱动:需请求中断的设备在自己的数据帧中将SERIRQ驱动:IRQ015在没有中断请求没有中断请求的时候将SERIRQ线驱动为低电平PCI INTA:D#,SMI和IOCHK#在有中断请求有中断请求的时候将SERIRQ线驱动为低电平否则都将SERIRQ线变为三态,由上拉电阻将他们驱动到高电平。所谓自己的数据帧是指在所
32、谓自己的数据帧是指在21个时钟中数据帧号和本个时钟中数据帧号和本设备的设备的IRQ号码相等那一数据帧。外设要在号码相等那一数据帧。外设要在SERIRQ的上升沿开始计算帧。的上升沿开始计算帧。第44页/共91页45子系统组成1.1.组成组成处理器核心处理器核心LocalAPIC模块模块处理器核心处理器核心LocalAPIC模块模块I/O APIC 模块INTIN23INTIN0系统中断请求系统中断请求APIC时钟时钟PICD0PICD1PICCLKLINT0/INTRLINT1/NMI处理器处理器0处理器处理器1LINT0/INTRLINT1/NMI返回下页LocalAPIC、I/OAPIC和和
33、APIC总线。总线。7.6 APIC(自学)第45页/共91页46 Local APIC Local APIC:包含了包含了8259A和和8254的功能。的功能。转上页 响应的中断:响应的中断:I/O APIC送来的系统中断请求系统中断请求;经APIC总线送来的处理器间中断请求处理器间中断请求(IPI);本地的中断请求本地的中断请求(定时、错误、计数、连线)。I/O APIC I/O APIC:多达多达24个中断;个中断;中断优先级与中断号独立;中断优先级与中断号独立;不需要中断响应周期。不需要中断响应周期。可选择某个或一组处理器中的一个为目标处理器目标处理器。第46页/共91页47 APIC
34、 APIC总线:总线:组成:组成:APICD0、APICD1、APICCLK。类型:类型:串行同步总线。串行时序:串行时序:不同时钟先高位,后低位;同一时钟D1高位,D0低位。内容:内容:EOI命令和短消息。应用:应用:连接的每个模块均有自己的ID(固定);每个模块均有自己的仲裁仲裁IDID(可变,初值来自模块ID)。第47页/共91页482.APIC2.APIC中断类型中断类型 系统中断:系统中断:经经I/OAPIC模块引脚送入的中断请求。模块引脚送入的中断请求。交中断请求指定的目标处理器处理。交中断请求指定的目标处理器处理。本地中断:本地中断:定时、计数、错误、定时、计数、错误、INTR及
35、及NMI。只能由本地处理器处理。只能由本地处理器处理。处理器间中断:处理器间中断:电平撤消初始化、初始化、启动、远程读、电平撤消初始化、初始化、启动、远程读、SMI、NMI等。等。交目标处理器处理。交目标处理器处理。第48页/共91页491.1.直接访问寄存器直接访问寄存器INDR:R/W存放需访问的间接寄存器编号。存放需访问的间接寄存器编号。DATR:R/W间接访问寄存器访问结果。间接访问寄存器访问结果。IRQPAR:W存放置位方式产生的中断向量号。存放置位方式产生的中断向量号。EOIR:W存放正在服务存放正在服务(将结束将结束)的中断向量号。的中断向量号。2.2.间接访问寄存器间接访问寄存
36、器IDR:R/W32B存放模块自己的固定的存放模块自己的固定的ID。VERR:R32B存放有无存放有无IRQ声明和重定向寄存器数。声明和重定向寄存器数。ARBIDR:R32B存放模块的仲裁存放模块的仲裁ID。BOOT_CONFIGR:R/W32B存放中断传递方式。存放中断传递方式。的寄存器的寄存器第49页/共91页50RDR:R/W64B索引编号索引编号10H3FH,每个每个RDR占两个号。占两个号。VectorDMDSDtMRIRRTMM目标目标APICIDL中断向量中断向量传递模式传递模式000固定式固定式001最低优先权式最低优先权式100NMI111-ExtINT目标模式目标模式0物理
37、方式物理方式1逻辑方式逻辑方式递交状态递交状态0空闲空闲1正在递交正在递交目标目标APICID逻辑模式逻辑模式-8位位物理模式物理模式-低低4位位屏蔽位屏蔽位0允许允许1屏蔽屏蔽中断请求中断请求0无无1中断未决中断未决引脚极性引脚极性0高电平激活高电平激活1低电平激活低电平激活触发模式触发模式0边沿边沿1电平电平第50页/共91页511.1.中断请求产生并递交中断请求产生并递交 收到引脚信号有效改变时,置位RDR的RIRR位,争取总线使用权争取总线使用权后,向APIC总线发送短消息短消息。目标处理器(目标模式及传递模式目标模式及传递模式)已在RDR中设定。边沿触发方式触发方式时,消息传送后将R
38、DR的RIRR位复位。2.2.处理器接受中断请求产生并服务处理器接受中断请求产生并服务 目标处理器(可能多个)的Local APIC收到请求后,根据传递模式,确定本处理器是否确定本处理器是否命中命中。命中的目标处理器做相应中断处理,当处理器核心执命中的目标处理器做相应中断处理,当处理器核心执行的代码优先级低于中断请求优先级时处理中断。行的代码优先级低于中断请求优先级时处理中断。工作过程工作过程第51页/共91页523.3.中断结束阶段中断结束阶段中断为电平触发方式时,发布中断为电平触发方式时,发布EOI命令通知命令通知I/OAPIC做结束处理。做结束处理。当前处理器的总线使用权降为最低。当前处
39、理器的总线使用权降为最低。第52页/共91页53 结构:结构:分布式仲裁。空闲状态:空闲状态:D1D0=11(某消息结束后)。仲裁周期:仲裁周期:5个时钟周期。CLKD1D0解释解释1EOI0D1=1:常规,常规,D1=0:EOI2NOT(ARBIDR27)1仲仲裁裁ID,如如果果ICH8检检测测到到的的值值和和自自己己发发送送的的值值不一样就失去仲裁资格。不一样就失去仲裁资格。3NOT(ARBIDR26)14NOT(ARBIDR25)15NOT(ARBIDR24)1 EOIEOI传输优先级高于正常传输。传输优先级高于正常传输。仲裁算法:仲裁算法:轮转优先级算法。仲裁得胜者置为仲裁得胜者置为0
40、,其余模块一律加,其余模块一律加1。总线仲裁总线仲裁第53页/共91页54第8章 ICH8中的常规接口 第54页/共91页551.数据传送的控制数据传送涉及的数据传送涉及的3个问题个问题1)数据的来源;)数据的来源;2)数据的去处;)数据的去处;3)数据本身以及如何控制数据的传送。)数据本身以及如何控制数据的传送。技术概述8.2 DMA操作(自学)第55页/共91页56DMA方式控制的数据传送方式控制的数据传送第56页/共91页57DMA传送方式通常用来高速传送大批量的数据块。传送方式通常用来高速传送大批量的数据块。如:如:硬盘和软盘硬盘和软盘I/O;快速通信通道快速通信通道I/O;多处理机和
41、多程序数据块传送;多处理机和多程序数据块传送;在图像处理中,对在图像处理中,对CRT屏幕送数据;屏幕送数据;快速数据采集;快速数据采集;DRAM的刷新操作。的刷新操作。第57页/共91页58DMA传送包括:传送包括:(1)存储单元传送:存储器)存储单元传送:存储器存储器。存储器。(2)DMA读传送:存储器读传送:存储器I/O设备。设备。(3)DMA写传送:写传送:I/O设备设备存储器。存储器。第58页/共91页592.DMA传送的工作过程 1)I/O设备向设备向DMAC发出发出DMA请求;请求;2)DMAC向向CPU发出总线请求;发出总线请求;3)CPU在执行完当前指令的当前的总线周期后,向D
42、MAC发出总线响应信号;4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制;第59页/共91页605)DMAC向向I/O设备发出的设备发出的DMA应答信号;应答信号;6)DMAC进行一个字节的传送;进行一个字节的传送;7)完成设定的字节数据传送,)完成设定的字节数据传送,CPU恢复对系恢复对系统总线的控制。统总线的控制。第60页/共91页613.DMA传送的方式1)DMA操作类型 数据传送数据传送。数据传送是把源地址的数据传送到目的地址中去。数据检验数据检验。当数据传送完毕之后,可以进行校验操作。校验操作并不进行数据传送,只进行数据校验。但操作过程仍然要通过DMAC向CPU提出申请
43、,进入DMA周期。数据检索数据检索。数据检索操作并不进行数据传送,只是对在指定的内存区内查找某个关键字节或某几个关键数据位是否存在,如果查找到了,就停止检索操作。第61页/共91页622)DMA操作方式单字节操作方式单字节操作方式。每次进行DMA操作只操作一个字节。连续操作方式。连续操作方式。只要DMA操作开始,DMAC始终占用总线,直到DMA操作完成,才把总线控制权交还CPU。请求操作方式。请求操作方式。如果有DMA请求,则DMAC就占用总线;当DMA请求无效,或DMA操作完成,或由外部传来过程结束信号(EOP)时,DMAC都会释放总线。级联传送方式。级联传送方式。第62页/共91页631)
44、主动态主动态在DMAC获得总线控制权之后之后,DMAC取代CPU而成为系统的主控者,接管和控制系统总线(数据总线、地址总线和控制总线)。通过总线向存储器或I/O设备发出地址、读/写信号,以控制在两个实体之间的传送。2)被动态被动态 在DMAC获得总线控制权之前之前,DMAC受CPU控制(。此时,CPU可对DMAC进行初始化编程,也可从DMAC中读出状态。当DMAC上电或复位时,DMAC自动处于被动态。4.DMA控制器在系统中的两种工作状态第63页/共91页641.82C37A的特点 具有4个独立的DMA通道,每个通道都可独立地进行初始化。每个通道的DMA请求都可以被允许或禁止。每个通道的DMA
45、有不同的优先级,既可以是固定优先级,也可以是循环优先级。每个通道进行一次传送的最大字节数为64K。提供4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。时钟频率从DC到5MHz的全静态设计。在5MHz的时钟频率下传送速率高达1.6MB/s。的内部结构和引脚功能说明第64页/共91页65282C37A的内部结构的内部结构DMA通道通道读读/写控制写控制控制逻辑控制逻辑第65页/共91页6682C37A内部逻辑框图内部逻辑框图第66页/共91页67282C37A的引脚功能的引脚功能第67页/共91页68的内部寄存器第68页/共91页691控制寄存器控制寄存器第69页/共91
46、页702工作方式寄存器工作方式寄存器第70页/共91页713状态寄存器状态寄存器第71页/共91页724请求寄存器请求寄存器第72页/共91页735屏蔽寄存器屏蔽寄存器第73页/共91页7482C37A DMA82C37A DMA控制器端口地址控制器端口地址第74页/共91页75软命令1)清先)清先/后触发器软命令后触发器软命令MOVAL,0XXH;0XXH为为AL中任意值中任意值OUT0CH,AL;先先/后触发器被清后触发器被清“0”2)总清除软命令)总清除软命令MOVAL,0XXH;0XXH为为AL中任意值中任意值OUT 0DH,AL;写入总清端口,执行总清除命令写入总清端口,执行总清除命
47、令3)清屏蔽寄存器软命令。)清屏蔽寄存器软命令。MOVAL,0XXH;0XXH为为AL中任意值中任意值OUT0EH,AL;写入清屏蔽寄存器端口写入清屏蔽寄存器端口第75页/共91页76控制器的工作时序 DMA空闲周期空闲周期SI 过渡状态过渡状态S0DMA 有效周期(有效周期(S1、S2、S3、S4)82C37A内部状态变化流程内部状态变化流程第76页/共91页77第77页/共91页78的初始化编程初始化编程的步骤:初始化编程的步骤:命令字写入控制寄存器命令字写入控制寄存器屏蔽字写入屏蔽寄存器屏蔽字写入屏蔽寄存器方式字写入方式寄存器方式字写入方式寄存器清清“0”先先/后触发器后触发器写入地址寄
48、存器字节寄存器写入地址寄存器字节寄存器解除屏蔽解除屏蔽写入请求寄存器写入请求寄存器第78页/共91页79ICH8中的DMA控制器 182C37ADMAC的级联的级联第79页/共91页802如何扩展如何扩展82C37ADMAC的寻址空间的寻址空间第80页/共91页81第81页/共91页823应用举例应用举例现假设在级联的现假设在级联的82C37的主片通道的主片通道1,将内存其,将内存其始地址为始地址为80000H的的280H字节的内容直接输出到外字节的内容直接输出到外部设备。部设备。MOVAL,4;命令字命令字,禁止禁止82C37工作工作OUT08,AL;写命令寄存器写命令寄存器MOVAL,0O
49、UT0CH,AL;清除先清除先/后触发器后触发器OUT02,AL;写低位地址写低位地址OUT02,AL;写高位地址写高位地址第82页/共91页83MOVAL,8;页面地址为页面地址为8OUT 83H,AL;写页面寄存器写页面寄存器MOVAX,280H;传输字节数传输字节数DEC AXOUT 03,AL;写字节数低位写字节数低位MOVAL,AHOUT 03,AL;写字节数高位写字节数高位MOVAL,49H;模式字模式字:单字节读单字节读,地址加地址加1OUT 0BH,AL第83页/共91页84MOVAL,40H;命令字命令字:DACK和和DREQ低有效低有效OUT 08H,AL;正常时序正常时序
50、,固定优先权固定优先权MOVAL,01;清除通道清除通道1屏蔽屏蔽OUT 0AH,ALWAITF:INAL,08;读通道读通道1状态状态AND AL,02;传输完成否传输完成否JZWAITF;没完成则等待没完成则等待MOVAL,05;完成后屏蔽通道完成后屏蔽通道1OUT 0A,AL第84页/共91页85特性及工作原理MC146818外部引脚图8.3 实时钟电路及其应用(自学)第85页/共91页86MC146818MC146818在系统中连接框图在系统中连接框图第86页/共91页87实时钟工作原理示意图实时钟工作原理示意图第87页/共91页88偏移地址偏移地址信息内容信息内容偏移地址偏移地址信息