网站大量收购闲置独家精品文档,联系QQ:2885784924

串行接口和DMA接口.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行接口和DMA接口

DMA的基本概念 为了进一步提高CPU的利用率,人们提出了直接内存访文技术,即Direct Memory Access,简称DMA技术。 在DMA方式下,外部设备利用专门的接口电路直接和内存进行高速的数据交换,不需要CPU的干预。这样在进行数据传输时就不需要像中断那样要进行保护断点之类的一系列操作,使CPU的利用率得到大幅度的提高。 利用DMA方式进行数据传输时,当然要利用系统中的数据总线,地址总线和控制总线,但是系统的总线是由CPU管理控制的。因此用DMA方式进行数据传输的时候,接口电路需要向CPU发送总线请求,申请CPU让出总线,即把总线控制权交给控制DMA传输的接口电路。 这种能够控制系统总线完成外设与内存之间大量数据交换的接口电路就是DMA控制器。 基本的DMA控制器 - 外设准备进行DMA操作时,DMA控制器必须能够接收外设发来的DMA请求信号,并向CPU发送总线请求信号。 - CPU接收到总线请求信号后,如果同意放弃总线,向DMA控制器发送总线请求应答信号。 - DMA控制器得到总线控制权后,能向地址总线发地址信号指示出写入数据的内存单元或者读出数据的内存单元,因此DMA控制器中必须有地址寄存器存放读写数据的起始内存单元的地址。而且每传送一个字节,会自动对地址寄存器进行修改,指向下一个要传送的字节。 - DMA控制器应该能判断DMA过程是否结束,即一次传送的字节数,因此DMA控制器必须有字节计数器,用来存放要传递的字节数,并且每传递一个字节字节计数器自动减1。 - DMA过程结束时,DMA控制器能向CPU发DMA中断结束信号,交还总线控制权。 DMA数据传送的过程 如果外设向内存传送一个数据块(输入过程),使用DMA方式时,系统按照下面的过程动作: 1)外设向DMA发送一个DMA请求 2)DMA控制器发总线请求,得到CPU的允许信号取得总线控制权 3)DMA控制器中的地址寄存器的内容送地址总线 4)DMA控制器向外设发送确认DMA传输信号,用来通知外设将数据送到数据总线。 5)数据总线上的数据送到地址总线所指示的内存单元 6)地址寄存器的值加1,指示下一个数据存放的内存单元 7)字节计数器的值减1 8)如字节计数器的值不为0,则回到第3步,否则DMA过程结束 MOV AL, 0FEH ;设置模式字,异步模式,波特率因子为16 OUT 51H, AL ;8个数据位,2个停止位,偶校验 MOV AL, 37H OUT 51H, AL ;设置控制字,启动收发器工作,清除出错位 MOV DI, 0 ;变址寄存器初始化 MOV CX, 80 ;置循环次数,共收取80个字符 BEGIN: IN AL,51H ;读取状态寄存器 TEST AL, 02H ;测试RXRDY是否为1 JZ BEGIN ;如果RXRDY为0,则读状态字继续测试 IN AL, 52H ;从数据输入寄存器读取字符 MOV DX, OFFSET BUFFER MOV [DX+DI], AL ;将AL中字符送缓冲区 INC DI ;修改缓冲区指针DI IN AL, 51H ;读取状态寄存器 TEST AL, 38H ;测试出错标志位,检查传输有无错误 JNZ ERROR ;如果有错,转入出错处理程序 LOOP BEGIN ;如没有错,则继续循环接收下1个字符 JMP EXIT ;如输入满80个字符,则结束 ERROR: CALL ERR_OUT ;调用出错处理程序 EXIT: … 例:双机串口通信 CPU 8251A TxD RxD SG TxC RxC 8251A TxD RxD SG TxC RxC CPU 时钟 时钟 EIA/TTL变换 EIA/TTL变换 要求: 在甲乙两台微机之间进行串行通信。甲机发送,乙机接收。要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。采用起止式异步方式,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4800。CPU与8251A之间用查询方式交换数据。口地址分配是:309H为命令/状态口,30AH为数据口。 由于是近距离传输,硬件连接只需TxD、RxD和SG三根线连接就能通信,可以不设MODEM

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档