《的身份开始的开发可都是.ppt》由会员分享,可在线阅读,更多相关《的身份开始的开发可都是.ppt(37页珍藏版)》请在金锄头文库上搜索。
1、 接口接口就是就是CPUCPU与外界的连接部件,是与外界的连接部件,是CPUCPU与外界与外界交换信息交换信息的的中转站中转站。原始数据通过接口由输入设备送进去原始数据通过接口由输入设备送进去运算结果通过接口由输出设备送出来运算结果通过接口由输出设备送出来控制命令通过接口发出去控制命令通过接口发出去现场数据通过接口从输入设备送进去现场数据通过接口从输入设备送进去CPUCPU接口接口接口接口电路电路电路电路 I/OI/O设备设备设备设备CPU总总线线输入接口输入接口A/D传感器传感器炉温炉温内存内存输出接口输出接口D/A控制信号控制信号开关开关一个炉温控制系统一个炉温控制系统INOUTMOV第六
2、章第六章 输入与输出输入与输出(一)、(一)、CPUCPU和和I/OI/O设备之间的信号设备之间的信号(1 1)、)、数据信息数据信息 1 1、数字量、数字量 2 2、模拟量、模拟量 3 3、开关量、开关量 4 4、脉冲量、脉冲量(2)2)、状态信息状态信息 反映当前外设所处的工作状态。反映当前外设所处的工作状态。(3)3)、控制信息控制信息 CPU CPU 通过接口向外设传送控制信息。通过接口向外设传送控制信息。(二)(二)I/OI/O接口电路接口电路 一个接口有几个寄存器,不同类型的信息进入不同一个接口有几个寄存器,不同类型的信息进入不同的寄存器,一般称这些寄存器为的寄存器,一般称这些寄存
3、器为端口端口。 控制总线控制总线CB地址总线地址总线ABI/O接口电路接口电路数据数据控制控制状态状态数据总线数据总线DBCPU外设外设控制寄存器控制寄存器状态寄存器状态寄存器数据寄存器数据寄存器输入指令输入指令(IN:将外设数据传送给将外设数据传送给CPU内的内的AL/AX)IN AL,i8;字节输入字节输入IN AL,DX;字节输入字节输入IN AX,i8;字输入字输入IN AX,DX;字输入字输入输出指令输出指令(OUT:将将CPU内的内的AL/AX数据传送给外设)数据传送给外设)OUT i8,AL;字节输出字节输出OUT DX,AL;字节输出字节输出OUT i8,AX;字输出字输出OU
4、T DX,AX;字输出字输出演示演示演示演示(三)(三) 8088/8086的输入输出指令的输入输出指令若端口地址在若端口地址在 0FFH 范围内范围内,则用直接寻址则用直接寻址 IN AL,端口地址,端口地址 (输入)(输入) OUT 端口地址端口地址 ,AL (输出)(输出) 如:如: IN AL, 20H OUT 80H, AX OUT 84H, AL 若端口地址在若端口地址在 0100FFFFH 范围内,则用范围内,则用 DX间接寻址间接寻址: MOV DX, 端口地址端口地址 IN AL, DX OUT DX, AL 如:如: MOV DX, 300H IN AL, DX(二)累加器
5、专用传送指令二)累加器专用传送指令IN和OUT指令一、一、CPU 寻址外设有两种方式:寻址外设有两种方式:将存储器与外设端口统一编址将存储器与外设端口统一编址将存储器与外设端口统一编址将存储器与外设端口统一编址外设端口单独编址外设端口单独编址外设端口单独编址外设端口单独编址1.1.统一编址统一编址统一编址统一编址: :将外设接口电路的一个端口作为存将外设接口电路的一个端口作为存储器的一个单元。储器的一个单元。每一个外设端口占有存储器每一个外设端口占有存储器的一个地址。从外部设备输入一个数据,作为的一个地址。从外部设备输入一个数据,作为一次存储器读的操作;而向外部设备输出一个一次存储器读的操作;
6、而向外部设备输出一个数据,则作为一次存储器写的操作。数据,则作为一次存储器写的操作。65F302 0024E0内存与外设内存与外设内存内存外设外设Kou1Kou1026D00000000000000100001EFFFFEFFFFF0000F0000F0001F0001F0002F0002FFFFFFFFFF优点优点:不需要专门的输入输出指令,不需要专门的输入输出指令,可用全部的存储器操作指令。可用全部的存储器操作指令。 (指令多且灵活)(指令多且灵活) 如:如:mov kou1,bx 缺点缺点:外设占用内存单元,外设占用内存单元, 相对减少了内存容量。相对减少了内存容量。例:已知一个例:已知
7、一个CPU系统,有系统,有32K8内存,内存,2片片8位接口(输入输出位接口(输入输出各有一片)各有一片) A16A15CBAE374LS138 A19A18A17Y6E2E1IO/MY5Y7CS32K8A0 A14D0 D7三三态态缓缓冲冲器器+5v锁锁存存器器28000H30000H38000H3FFFFH全0全0全0全10 0 1 0 1 Y50 0 1 1 0 Y60 0 1 1 1 Y70 0 1 1 1 Y7地址范围A14A0A19A18A17A16A152. 外设端口单独编址外设端口单独编址 65F302 00外设外设0000000000FF00FFFFFFFFFF0100010
8、0KOU1KOU2KOU3112233 44KOU100KOU101113232 01内存内存0000000000FFFFFFFFFF优点优点:不占用内存:不占用内存 缺点缺点:CPU需设专门的需设专门的I/O指令。指令。 CPUCPU有专门的有专门的有专门的有专门的I/OI/O指令,用地址来区分不指令,用地址来区分不指令,用地址来区分不指令,用地址来区分不同的外设。但要注意实际上是以端口同的外设。但要注意实际上是以端口同的外设。但要注意实际上是以端口同的外设。但要注意实际上是以端口(PortPort)作为地址的单元,因为一个外设不)作为地址的单元,因为一个外设不)作为地址的单元,因为一个外设
9、不)作为地址的单元,因为一个外设不仅有数据寄存器还有状态寄存器和控制命令仅有数据寄存器还有状态寄存器和控制命令仅有数据寄存器还有状态寄存器和控制命令仅有数据寄存器还有状态寄存器和控制命令寄存器,它们各需要一个端口才能加以区分,寄存器,它们各需要一个端口才能加以区分,寄存器,它们各需要一个端口才能加以区分,寄存器,它们各需要一个端口才能加以区分,故一个外设往往需要数个端口地址。故一个外设往往需要数个端口地址。故一个外设往往需要数个端口地址。故一个外设往往需要数个端口地址。CPUCPU用用用用地址来选择外设。地址来选择外设。地址来选择外设。地址来选择外设。 要寻址的外设的端口地址,显然比内存要寻址
10、的外设的端口地址,显然比内存要寻址的外设的端口地址,显然比内存要寻址的外设的端口地址,显然比内存单元的地址要少得多。所以,在用直接寻址单元的地址要少得多。所以,在用直接寻址单元的地址要少得多。所以,在用直接寻址单元的地址要少得多。所以,在用直接寻址方式寻址外设时,它的地址字节,通常总要方式寻址外设时,它的地址字节,通常总要方式寻址外设时,它的地址字节,通常总要方式寻址外设时,它的地址字节,通常总要比寻址内存单元的地址少一个字节,因而节比寻址内存单元的地址少一个字节,因而节比寻址内存单元的地址少一个字节,因而节比寻址内存单元的地址少一个字节,因而节省了指令的存储空间,缩短了指令的执行时省了指令的
11、存储空间,缩短了指令的执行时省了指令的存储空间,缩短了指令的执行时省了指令的存储空间,缩短了指令的执行时间。间。间。间。补充:补充: I/O 端口地址译码方法端口地址译码方法使用使用74LS138设计系统板上的设计系统板上的I/O地址地址,并且使每个并且使每个 接口芯片内接口芯片内部可以有部可以有32个端口数目个端口数目.1)1)分析分析:系统板地址范围系统板地址范围:00FFH,只使用低只使用低8位地址线位地址线. 留出低留出低5位地址线不参加译码位地址线不参加译码(25=32);地址线地址线0 0 A9 A8A7 A6 A5A4 A3 A2 A1 A0用用 途途控控 制制片片 选选片片 内
12、内 选选 择择二进制数二进制数0000000001111000000000111111A B C 0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7输输 出出地址范围地址范围: 00001FH 02003FH 0E00FFHY0 Y1 Y2 Y3 Y4 Y5Y6 Y7A5A6 A7A8A9 AENIOWAB CG2BG2AG174LS138DMA CS(8237)INTR CS(8259)T/C CS(8253)PPI CS(8255)WRTDMAPG(写(写DMA页面寄存器)页面寄存器)WRTNMIREG(写(写NM
13、I屏蔽寄存器)屏蔽寄存器)1174LS322)2)设计线路设计线路第二节第二节 CPU与外设数据传送方式与外设数据传送方式 输入输入:CPU在执行在执行IN指指令前,输入三态缓冲器已令前,输入三态缓冲器已准备好。准备好。 输出输出:CPU在执行在执行OUT指令前,输出锁存器已空。指令前,输出锁存器已空。一、无条件传送一、无条件传送无条件无条件查询查询中断中断DMA1、执行输入指令时、执行输入指令时,例例:IN AL,80H, RD信号有信号有,M/IO=0,输入三态缓冲输入三态缓冲器器,被选通被选通,已准备好的数据进入数据总线已准备好的数据进入数据总线,送到送到AL. 2.执行输入指令时执行输
14、入指令时,读信号有效读信号有效M/IO有效有效80H例例1 1:输入:输入:IN ALIN AL,80H80H;(;(80H80H)=10H=10H 将将80H80H端口的内容送端口的内容送ALAL。 IO/M=0IO/M=0,RD=0RD=0,AL=10HAL=10H例例2 2:输出:输出:OUT 82HOUT 82H,ALAL;AL=10HAL=10H 将将ALAL中的内容送中的内容送82H82H端口。端口。 IO/M=0IO/M=0,WR=0WR=0,(,(82H82H)=10H=10H 在在CPU与慢速变化的设备交换数据时,可以与慢速变化的设备交换数据时,可以认为它们总是处于认为它们总
15、是处于“就绪就绪”状态,随时可以状态,随时可以进行数据传送,这就是无条件传送,或称立进行数据传送,这就是无条件传送,或称立即传送、同步传送。即传送、同步传送。适合于简单设备,如适合于简单设备,如LED数码管、按键或按数码管、按键或按钮。钮。无条件传送的接口和操作均十分简单。无条件传送的接口和操作均十分简单。这种传送有这种传送有前提前提:外设必须随时就绪。外设必须随时就绪。流程流程总结总结:二、查询传送二、查询传送 CPU需需不断不断查询外设的状态,一旦查询外设的状态,一旦外设满足数据传送的条外设满足数据传送的条件件,就执行,就执行IN或或OUT指令,读入或输出数据。指令,读入或输出数据。输入外
16、设状态输入外设状态信号信号ReadyReady=1输入数据输入数据N查询输入查询输入Y输入外设状态输入外设状态信号信号BusyBusy=1输出数据输出数据Y查询输出查询输出N查询输入接口电路(组成)查询输入接口电路(组成)IN AL, DATA_PORT 工作原理工作原理IN AL, STATUS_PORT输输入入装装置置锁锁存存器器D R Q三态三态缓冲缓冲器器三态三态缓冲缓冲器器地址地址译码译码AB数据端口数据端口状态端口状态端口D7数据数据选通信号选通信号DBReadyRDM/ IORD+5VM/ IO复位复位状态信息清零状态信息清零1、数据准备好,选通信号输出正跳变将、数据准备好,选通
17、信号输出正跳变将 数据数据锁存器锁存器 D触发器置触发器置1,作为,作为Ready信号,信号,D7=12、查询状态信号,执行、查询状态信号,执行 IN AL,状态口状态口 Ready(bit7) AL 3、若、若Ready=1,执行执行 IN AL,数据口数据口 输入数据输入数据AL; D触发器复位,触发器复位,Ready=0POLL: IN AL, STATUS_PORT TEST AL,80H JE POLL IN AL,DATA_PORT 查查询询输输入入的的编编程程IN AL, STATUS_PORTOUT DATA_PORT, AL 查询输出接口电路(组成)查询输出接口电路(组成)工
18、作原理工作原理锁锁存存器器输输出出装装置置Q DR三态三态缓冲缓冲器器地址地址译码译码器器AB数据端口数据端口状态端口状态端口D7数据数据启动启动DBACKBusyVCCM/IO RDWRM/IO1、上一数据处理结束,、上一数据处理结束,ACK的负的负跳变跳变(恢复恢复)使使D触发器复触发器复“0” 输出装置,启动信号输出装置,启动信号0(恢复恢复)缓冲器输出缓冲器输出 Busy=0;2、查询状态信号,执行、查询状态信号,执行 指令指令 IN AL,状态口状态口 Busy(bit7) AL 3、若、若Busy =0,执行指令执行指令 OUT 数据口,数据口,AL, 输出数据输出数据AL DB
19、锁存器锁存器 输出装置;输出装置; D触发器置触发器置1,启动输出装置,启动输出装置Busy=1,禁止输出禁止输出POLL: IN AL,STATUS_PORT TEST AL,80H JNE POLL MOV AL,STORE ;从数据区取数从数据区取数 OUT DATA_PORT,AL 查询输出的编程查询输出的编程例:若有一台打印机,它的例:若有一台打印机,它的数据端口地址数据端口地址为为01H,状态端口地址状态端口地址为为00H,状态信息从,状态信息从D4位位送入(送入(为为1时表示输出缓冲器有空时表示输出缓冲器有空,CPU可以向它输出新的数据)。编写程序把内存中自可以向它输出新的数据)
20、。编写程序把内存中自BLOCK开开始的始的100个字节的数据块通过打印机打印出来。个字节的数据块通过打印机打印出来。 JNZ WAIT HLT设置循环次数、设置循环次数、地址偏移量地址偏移量输出一个字节数据输出一个字节数据修改循环次数及指针修改循环次数及指针结束结束送完?送完?YN输入状态信息输入状态信息空闲空闲?YN MOV SI, OFFSET BLOCK MOV CX, 100 WAIT: IN AL, 00H TEST AL, 10H JZ WAIT MOV AL, SI OUT 01H, AL INC SI DEC CXCPU需要需要先先了解(查询)外设的工作状了解(查询)外设的工作
21、状态态,然后在外设可以交换信息的情况下,然后在外设可以交换信息的情况下(就绪就绪)实现数据输入或输出。)实现数据输入或输出。对多个外设的情况,则对多个外设的情况,则CPU按一定顺序按一定顺序依次查询(轮询)。先查询的外设将优依次查询(轮询)。先查询的外设将优先进行数据交换。先进行数据交换。查询传送的特点是:工作可靠,适用面查询传送的特点是:工作可靠,适用面宽,但传送效率低。宽,但传送效率低。就绪就绪?总结:总结:流程流程 (无条件、查询传送都需要无条件、查询传送都需要CPU的等待或不断查询,的等待或不断查询,使使CPU的效率降低。的效率降低。)中断传送中断传送:外设需要传送数据时,申请中断;当
22、:外设需要传送数据时,申请中断;当CPU允许允许中断,在中断服务程序中执行中断,在中断服务程序中执行IN /OUT指令;然后返回主指令;然后返回主程序程序。启动外设启动外设主程序主程序外设准备好外设准备好输入设备输入设备Ready=1输出设备输出设备Busy=0中断请求中断请求中断响应中断响应 数据数据IN/OUT中断服务程序中断服务程序IRET中断响应中断响应外设又一次准备好外设又一次准备好中断请求中断请求三、三、 中断传送中断传送流程流程1、DMA传送的基本概念传送的基本概念 无条件、查询、中断传送,每传送一个数据都需要无条件、查询、中断传送,每传送一个数据都需要CPU干预一次,限制了数据
23、传送的速度。干预一次,限制了数据传送的速度。输入设备输入设备输出设备输出设备CPU内存内存 DMA(Direct Memory Access):):是一种是一种不需要不需要CPU干干预也不需要软件介入预也不需要软件介入的高速数据传送方式。的高速数据传送方式。在外设在外设(如磁盘如磁盘)与与内存之间成批传送数据时,完全由硬件(内存之间成批传送数据时,完全由硬件(DMA)完成外设与完成外设与内存的数据传送,而不必内存的数据传送,而不必 CPU的干预。对这一数据传送过程的干预。对这一数据传送过程进行控制的硬件称为进行控制的硬件称为DMA控制器(控制器(DMAC)。)。四、直接数据通信传送四、直接数据
24、通信传送DMA流程流程 问题:问题:(1) 数据传送需数据传送需AB、DB、CB的参与;的参与; (2) 通常情况下,通常情况下,AB、DB、CB由由CPU控制。控制。 解决解决 :(1) 设置直接数据控制器设置直接数据控制器DMAC。当需要当需要DMA时,由时,由DMAC提供内存的地址线、数据串长度和必要的控制信号。提供内存的地址线、数据串长度和必要的控制信号。 (2) 外设在需要进行外设在需要进行DMA传送数据时,向传送数据时,向DMAC发出发出DMA请求。请求。 然后然后DMAC向向CPU提出提出HOLD总线请求。总线请求。 CPU响应后,发响应后,发HLDA响应给响应给DMAC,并将总
25、线暂交并将总线暂交DMAC管理。当管理。当DMAC接收到接收到HLDA后就可以接管总线,进行后就可以接管总线,进行DMA传送。传送。 DMAC完成数据串传送后撤销完成数据串传送后撤销HOLD请求,请求,CPU恢复对恢复对总线的控制。总线的控制。无条件传送无条件传送:慢速外设需与慢速外设需与CPU保持同保持同步步查询传送查询传送: 简单实用,效率较低简单实用,效率较低中断传送中断传送:外设主动,可与:外设主动,可与CPU并行工并行工作,但每次传送需要大量额外时间开销作,但每次传送需要大量额外时间开销 DMA传送传送:DMAC控制,外设直接和存控制,外设直接和存储器进行数据传送,适合大量、快速数储
26、器进行数据传送,适合大量、快速数据传送据传送五、传送方式的比较五、传送方式的比较习题:习题: 编写程序。若有一个编写程序。若有一个CRT(阴极射线管显示器)终端,它(阴极射线管显示器)终端,它的输入输出数据的端口地址为的输入输出数据的端口地址为01H,状态端口的地址为,状态端口的地址为00H,其,其中中D7位为位为1时表示输出缓冲器有空,时表示输出缓冲器有空,CPU可以向它输出新的数可以向它输出新的数据;据;D6为为为为1时,表示输入数据有效,时,表示输入数据有效,CPU可以把它输入。可以把它输入。实现:实现:(1)从终端上输入)从终端上输入100个字节的字符,送入到以个字节的字符,送入到以B
27、UFFER开始开始的内存单元。的内存单元。 (2)把内存中自)把内存中自BLOCK开始的开始的100个字节的数据块通过终端显个字节的数据块通过终端显示出来。示出来。LEA SI,BUFFERMOV CX,100IN AL,00HTEST AL,40HJZ WAITIN AL,01HMOV SI,ALINC SI DEC CXJNZ WAITHLTWAIT:LEA SI,BLOCKMOV CX,100IN AL,00HTEST AL,80HJZ WAITMOV AL,SIOUT 01H,ALINC SI DEC CXJNZ WAITHLTWAIT:例:查询数据输入,有例:查询数据输入,有8 个模
28、拟电压,一个个模拟电压,一个8bitA/D转换器。转换器。由由CPU控制一个控制一个8选选1多路开关,以及多路开关,以及A/D转换启动。依次实转换启动。依次实现现8个模拟电压的个模拟电压的A/D转换,并把数据存储在转换,并把数据存储在DSTOR为首地址为首地址的内存单元中。(组成)的内存单元中。(组成)M/ IO*WR*4324A/D转换转换8bitbit78D4数据数据READYDBM/IO*RD*3M/ IO*RD*2CPU数据数据启动启动输输入入数数据据八八个个模模拟拟量量D2D1D01个模拟量个模拟量多路开关多路开关输入数据口地址:输入数据口地址:1输入状态口地址:输入状态口地址:2
29、bit0,A/D转换结束信号转换结束信号输出控制口地址:输出控制口地址:4 bit02,多路开关选择输入多路开关选择输入端端 bit4,A/D转换启动信号转换启动信号START:MOV DL,0F8H LEA DI,DSTORAGAIN:MOV AL,DL AND AL,0EFH ;使;使bit4=0 OUT 4,AL ;停止停止A/D CALL DELAY ;延时等待延时等待 A/D 结束结束 MOV AL,DL OUT 4,AL ;启动启动A/DPOLL: IN AL,2 ;输入状态信号输入状态信号 SHR AL,1 ;将状态信号将状态信号 ;移到;移到CF JNC POLL ; 状态信号状态信号0,转转 IN AL, 3 STORB ;(AL) (DI) INC DL ;改变模拟信号改变模拟信号 JNE AGAIN ;判终点判终点关于多路开关选择和关于多路开关选择和A/D转换启动信号转换启动信号 DL D7 D6 D5 D4 D3 D2 D1 D0模拟模拟0 1 1 1 1 1 0 0 0 模拟模拟7 1 1 1 1 1 1 1 1终点终点 0 0 0 0 0 0 0 0 CF1