- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【大学课件】MCS51单片机的输入输出通道接口与中断知识分享.ppt
* AL(auto load)位是自动装入位。当AL=1时,允许通道2连续传送多个重复数据块或者传送相互链接的多个不同数据块。 这种情况下,需要使用两个通道。系统规定使用通道2和通道3来完成。如果是传送相互链接的数据块,初始化时应将第1个数据块的参数(存储器起始地址、终点计数值和DMA传送方式)置入通道2的有关寄存器中,而将第2个数据块的参数置入通道3中,并使通道2的TCS位置“0”,待通道2传送完第1个数据块时,并不结束通道2的操作,而是在修改周期内,将通道3中存放的参数传送给通道2,于是通道2可继续传送第2个数据块。如果还有第3个数据块需要继续传送,则应将第3个数据块的参数置入通道3暂存。这样,通道2可连续传送多个不同的数据块。 /sundae_meng
* 如果需要通道2传送的是多个重复的数据块,则只要AL=1,将数据块参数同时对通道2和通道3进行初始化即可。于是通过通道2传送的将是多个相同的数据块。在上述操作过程中,通道3实际上是作为通道2的缓冲存储器使用,而并不需要启动通道3投入操作。 (2) 状态寄存器: 其各位定义如图5.28所示。 /sundae_meng
* 图5.28 /sundae_meng
* TC3~TC0是各通道的终点计数位,用来标志相应通道当前是否达到终点计数状态。当某个通道进入数据块的最后一个DMA周期,即终点计数器的计数值为0时,相应的TCi状态位被置“1”,并且一直保持到该通道被复位或CPU读完状态寄存器为止。显然,TC3~TC0中任何一位置“1”时,终止计数端TC将输出有效,待这最后一个DMA周期结束。是否要将相应通道复位,则取决于工作方式寄存器中终点计数停止位(TCS)是否置“1”。 UP是修改标志位,它是专为通道2连续传送多个数据块而设置的。UP=1,表示当前处于修改周期,即数据块的最后一个DMA周期,当自动装入位AL=1时,表示在修改周期内将通道3中暂存的参数 /sundae_meng
* 置入通道2中,于是通道2可以继续传送下一个数据块。在通道2传送下一数据块的第一个DMA周期内,又可将新的参数置入通道3中。修改标志只在修改周期内有效。 /sundae_meng
* 8237A芯片的通道操作过程 8237ADMA操作周期时序图如图5.29所示。 图5.29 * 8237A处于从属状态时保持为空闲状态S1。当任一通道检测到一个DMA请求时,8237A将在下一个S1状态时向CPU发出总线请求信号HRQ,于是8237A进入准备状态S0。CPU在当前总线周期结束时,向8237A回送总线认可信号HLDA,将总线控制权交给8237A,8237A开始进入主控状态。DMA周期从S1状态开始,至少包含4个状态S1~S4,必要时可在S3和S4之间插入SW。在S1状态期间,通过数据总线D7~D0将高8位地址线锁存到8212锁存器中,低8位地址直接从A7~A0输出,形成访问存储器的16位地址码,到S3状态期间发出读存储器(MEMR)或读外设(I/OR)命令可将需要传送的数据读出,在随后产生的写外设(I/OW)或写存储器(MEMW)命令控制下可完成传送一 /sundae_meng
* 个数据字节的功能,需要传送多少个字节,就需要执行多少个这样的DMA周期。待整个数据块传送结束,在最后一个DMA周期的S4状态上升沿,8237A的总线请求HRQ将无效,CPU将HLDA置成无效,收回总线控制权,8237A重新回到空闲状态S1。 8237A在每一个DMA周期的S4状态查询DRQi如果同时有多个DRQi有效,8237A将为优先级最高的通道服务,而且允许高级的请求打断低级的请求而被优先服务。只要较低优先级的通道能保持它的请求有效,待较高优先级的通道传送结束,控制将自动转到较低优先级的通道去服务。8237A的整个操作流程可用图5.30来描述。 /sundae_meng
* 图5.30 /sundae_meng
* 8237A控制器的编程及应用 8237A共包含4个通道,每个通道占用2个端口地址,再加上工作方式寄存器和状态寄存器合用一个端口,因此整个8237A芯片共包含9个端口地址,可用最低4位地址码(A3~A0)来对它们寻址。 高位地址码(A15~A4)经译码后,可用来形成8237A的片选信号,使CS有效,与I/OW,I/OR和地址码A3配合可完成对有关寄存器的读写操作。 某8086微机系统中,利用8237A DMA控制器的0通道为某台外设与存储器之间构成直接数据传送通道的系统配置结构如图5.31所示。 * 图5.31 /sundae_meng
* 中断传送方式 CPU无需查询外设状态,外设在需要进行数据传送时才中断CPU
原创力文档


文档评论(0)