串行接口和DMA接口_第1页
串行接口和DMA接口_第2页
串行接口和DMA接口_第3页
串行接口和DMA接口_第4页
串行接口和DMA接口_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

第10章串行接口和DMA接口

10.1串行通信的基本概念串行通信定义

所谓串行通信就是一条信息的各位数据位在一个信道上按照固定的时间长度被逐位按顺序传送的通讯方式称为串行通讯。D0D1D2D3D4D5D6D7t串行通信的信息传送速度低慢,信息率低,但串行通信的成本低,适合远距离传输。串行通信的数据传送方式单工:接收方有接收器,发送方有发送器,数据只能一条信道单向传送全双工:接收方和发送方各有一组发送器和接收器,数据在两条独立的信道上同时进行双向传送半双工:接收方和发送方各有一组发送器和接收器,数据在一条共享的信道上分时进行双向传送发送器接收器A站B站信号地单工发送器接收器接收器发送器A站B站信号地全双工发送器接收器发送器接收器A站B站信号地半双工串行通信的过程串口电话线调制解调器计算机串行通讯控制器调制解调器计算机串行通讯控制器串口将并行数据转化为串行数据,联络CPU和调制解调器的通信为调制解调器和串行通信控制器之间提供一个标准接口,规定连线的含义。将数字信号转化为模拟信号将模拟信号转化为数字信号为调制解调器和串行通信控制器之间提供一个标准接口,规定连线的含义。将串行数据转化为并行数据,联络CPU和调制解调器的通信串行通信相关概念波特率:每秒传送的数据位数标准波特率:1103006001200180024004800960019200发送方发送1个比特位所用的时间长度称为发送时钟。接受方接受1个比特位所用的时间长度称为接收时钟。起始位发送的数据101001…

…接收的数据发送时钟接收时钟注意:串行通信中传送距离随着传送速率的增加而减少。波特率因子:收发时钟倍频于波特率的倍数称为波特率因子波特率因子可以是1,16,32,64。例如:如果波特率是300,波特率因子是16,则发送时钟和接收时钟的频率是4800,接收时钟16倍频于波特率100接收时钟接收的数据8个起始位中心16个位采样16个位采样检测到起始位异步通信协议:数据以单个字符为单位在信道上传输,两个字符之间的传输间隔是任意的,所以每个字符的前后要加上一些特殊的数位作为分割位。串行通信的工作方式空闲位停止位1,1.5或2位奇偶校验数据位(5~8位)起始位不限有/无(先低后高位)1位0/101110/10/10/1…0/10/10LSBMSB第n个字符第n+1个字符起始位:1位,低电平,表示一个字符开始传递数据位:5~8位,先低位后高位校验位:1位/0位,奇偶校验停止位:1位、1.5位或2位,高电平,表示字符传递结束异步传输的帧格式接收时钟发送时钟1起始位0发送的数据收发时钟16倍频于波特率接收的数据采用异步通信时,接收方总是在每个字符的起始位开始的时候进行一次时钟的重新定位,因此当收发时钟的偏差不大时,不会产生采样错误,但是异步通信的无用比特位的比重很大。所以异步通信的特点是不要求双方时钟完全一致,但传输率比较低。同步通信协议:数据以字符组为单位的在信道上传输,发送方在传送的字符组前要加上同步字符,接受方以同步字符作为接收的标志。发送方接收方同步字符同步字符字符字符字符…

…在同步传输中,由于收发双方一次可以传递数据单位是一个字符组,这就要求接收方要经过多次采样来接收数据,所以要求双方时钟完全一致,但是同步传输无用的信息量较少,所以传送的效率高。因此同步通信的特点是发送率高,但发送双方要求严格的相同时钟周期。SYNSYNSOHTITLESTX正文ETX/ETBBCC帧信息各部分的含义:

SYN:同步字段,单同步加1个,双同步加2个。

SOH:序始字段,它表示标题的开始,标题中一般包括源地址、目标地址和路由指示等信息。

TITLE:标题字段,包括用户自定义的附加信息。

STX:文始字段,标示正文传送的开始。

ETX/ETB:文终/组终字段,如果将正文分成很多个数据块在不同的帧中传送,每一个分数据块后面用组终字符,最后一个分数据块后面用文终字符。

BCC:效验位字段,奇偶校验或CRC校验同步传输的信息帧格式串行通讯接口标准RS-232C接口标准RS-422A接口标准RS-485接口标准

RS-232C是美国电子工业协会制定的一种串行物理接口标准,现在在微机中广泛的使用,它为数据终端设备DTE(计算机)和数据通信设备DCE(调制解调器)的连接提供了一个标准的接口。对于RS-232C接口我们从它的机械特性,电气特性和功能特性三个方面介绍它。RS-232C接口的机械特性9针接口25针接口RS-232C接口的电气特性

RS-232-C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平不一致,规定-5~-15V表示1,+5~+15V表示0,所以需要在接收端和发送端进行电平的转化。信号地+12V+5V-12V接收器发送器RS-232C电平TTL电平TTL电平MC1488MC1489MC1488和MC1489电平转换器RS-232C接口的功能特性(信号线的定义)TxD:发送数据,DTEDCERxD:接收数据,DTEDCEDTR:DTE准备好,DTEDCEDSR:DCE准备好,DTEDCERTS:请求发送,DTEDCECTS:允许发送,DTEDCERI:振铃指示,DTEDCECD:载波检测,DTEDCESG:信号地DTE:数据终端设备(计算机)DCE:数据通信设备(调制解调器)10.2可编程串行接口控制器8251AIntel8251A是为Intel微处理器设计的可编程串行通信接口,是通用同步/异步接收发送器。通过编程,可工作在全双工的串行通信的同步方式或异步方式下。在异步方式传送时,可用5~8位表示字符,用1位作为奇/偶校验,能自动为每个数据增加1个启动位,增加1个、1.5个或2个停止位,波特率为0~19.2K。在同步方式传送时,可用5~8位表示字符,自动插入同步字符,内部能自动检测同步字符,波特率为0~64K。D2D3RXDGNDD4D5D6D7TXCWRCSC/DRDRXRDYD1D0VCC

RXCDTRRTSDSRRESETCLKTXDTXECTSSYNDETTXRDY123456789101112131428272625242322212019181716158251A8251A的引脚连接8251A与CPU的连接信号内部寄存器访问控制信号,由于8251A只有8位数据线,将地址总线的A0接入8251A的C/D端,用来区分8251A的内部寄存器。发送缓冲器准备好信号,8251A发送该信号给CPU表明发送缓冲区空,可以接收新字符。当CPU接到该信号后,就向8251A传送一个新字符。并-串转化器空信号,8251A发送该信号给CPU,表明并-串转化器空,指示了一个发送字符过程的完成。接收缓冲器准备好信号,该信号表明8251A已从外设接到一个字符,接收缓冲区满。当CPU接到该信号后,就从8251A取走一个字符。该信号仅用在同步传输下。作为输出时,8251A工作于内同步方式,当8251A检测到所要求的同步字符后,该信号变为有效电平,同步传输开始;作为输入时,8251A工作于外同步方式,从该引腿引入的正跳变,使8251A进入同步传输。8251A的引脚连接8251A与外设的连接信号8251A和调试解调器的收发联络信号发送器数据信号端用来输出数据接收器数据信号端用来输入数据接收时钟发送时钟8251A的编程结构指示传输过程中的某个错误或者当前的传输状态决定接口的工作方式将输入线上的串行数据转化为并行数据。接收移位寄存器的并行数据随时通过数据总线送至CPU接收数据总线的并行数据随时送至移位寄存器。将并行数据转化为串行数据通过输出线送出。决定接口工作方式是同步传输还是异步传输,以及数据帧格式。在同步方式下,接收并存储同步字符。8251A的端口地址在微机系统中,地址总线的A0端接入8251A的C/D端,当A0为0时访问的是偶地址端口,当A0为1时访问的是奇地址端口,即通过C/D端为0或者1来区分内部寄存器。模式寄存器对应奇地址单元,即C/D端为1同步字符寄存器对应奇地址单元,即C/D端为1控制寄存器对应对于奇地址单元,即C/D端为1状态寄存器对应对于奇地址单元,即C/D端为1数据输入缓冲器对应偶地址单元,即C/D端为0数据输出缓冲器对应偶地址单元,即C/D端为0如何用2个端口地址区分7个寄存器呢?8251A的初始化8251A初始化的约定:芯片复位后,第一次奇地址写入的值作为模式字送模式寄存器。

若模式字规定8251A为同步传输模式,接着往奇地址端口输出的字节为同步字符。此后除复位命令,往奇地址写入的值将送到控制寄存器,从奇地址读出的是状态寄存器;

往偶地址端口写入的值送数据输出寄存器,从偶地址读出数据输入寄存器的值。

模式寄存器由于8251A可以工作在同步方式下,也可以工作在异步方式下,模式寄存器有两种格式,当模式寄存器的最低两位为0时,8251A工作于同步模式,该寄存器为同步模式寄存器。

SCSESDEPPENL2L1000–内同步1–外同步数据位的位数00–5位01–6位10–7位11–8位同步模式0–无效验位1–有效验位0–奇效验1–偶效验0–2个同步字符1–1个同步字符1C/D当模式寄存器的最低两位不全为0时,8251A工作于异步模式,该寄存器为异步模式寄存器。

1C/DS2S1EPPENL2L1B2B1停止位的数目:00–无意义01–1个停止位10–1.5个停止位11–2个停止位数据位的位数00–5位01–6位10–7位11–8位00-同步模式01-波特率因子110-波特率因子1611-波特率因子640–无效验位1–有效验位0–奇效验1–偶效验控制寄存器EHIRRTSERSBRKRXENDTRTXEN8251A芯片复位后,向奇地址端口写完模式寄存器和同步字符后(如果是同步方式),以后除了复位命令外,写入奇地址端口的值作为控制字送控制寄存器。1C/D发送允许使DTR引腿为低电平接收允许使TXD引腿为低电平,停止发送使状态寄存器的出错标志复位使RTS引腿为低电平进行内部复位搜索同步字符异步模式下的初始化程序举例:例:设8251A的端口地址是51H和52H,采用异步通信方式,7位数据位,2个停止位,偶效验方式,波特率因子为16,写出初始化8251A的程序段。MOVAL,0FAHOUT51H,AL设置模式寄存器111110102位停止位,偶效验,7位数据位,波特率因子16MOVAL,37HOUT51H,AL设置控制寄存器00110111请求发送信号RTS有效,清除状态寄存器的出错标志,接收启动,数据终端准备好信号DTR有效,发送启动。同步模式下的初始化程序举例:例:设8251A的端口地址是51H和52H,内同步通信方式,同步字符的数目为2个,均为16H,7位数据位,偶效验,写出初始化8251A的程序段。MOVAL,38HOUT51H,AL设置模式寄存器001110002个同步字符,采用内同步方式,偶效验,7位数据位。MOVAL,0B7HOUT51H,AL设置控制寄存器10110111搜索同步字符,请求发送信号RTS有效,清除状态寄存器的出错标志,接收启动,数据终端准备好信号DTR有效,发送启动。MOVAL,16HOUT51H,ALOUT51H,AL两个同步字符均为16H例:设8251A的端口地址是51H和52H,使8251A内部复位,并且允许接收,又允许发送,则程序段为:…………MOVDX,51HMOVAL,00HOUTDX,AL;控制字,停止通信MOVAL,40HOUTDX,AL;控制字,置D6=1,使内部复位MOVAL,0DEHOUTDX,AL;模式字,复位后首次访问奇地址MOVAL,05H;控制字,置D0、D3=1,允许接收和发送OUTDX,AL

…………状态寄存器8251A芯片复位后,向奇地址端口写完模式寄存器和同步字符后(如果是同步方式),以后除了复位命令外,从奇地址端口读出的值是状态寄存器。1C/DDSRSYNDETFEOEPETXERXRDYTXRDY数据输出缓冲器准备好输出移位寄存器为空指示奇偶效验错误指示覆盖错误与SYNDET引腿电平相同指示DSR引腿为低电平数据输入缓冲器准备好指示帧格式错误DSRSYNDETFEOEPETXERXRDYTXRDY状态寄存器的TXRDY=1指示出数据输出缓冲器准备好,即输出缓冲器为空,CPU可以向8251A发送数据;状态寄存器的RXRDY=1指示出数据输入缓冲器准备好,即输入缓冲器满,CPU可以从8251A读取数据;这两个状态位可以在程序设计时加以利用,实现对8251A数据发送过程和接收过程的控制。DSRSYNDETFEOEPETXERXRDYTXRDY状态寄存器的PE、OE、FE位为1时分别指示出传输过程中的三种错误,在程序设计时可以加以利用,实现对数据传输过程中数据准确性的测试。系统复位送模式字送同步字符1同步模式?NY要同步字符2?送同步字符2YN送控制字内部复位?YN读状态字N传送数据传输结束?NN能传输吗?Y传输出错?Y结束Y利用状态字进行编程的举例:下面的程序段先对8251A初始化,然后对状态寄存器的状态位进行测试,本程序通过8251A接收80个字符。规定8251A的端口地址是51H,52H。即控制寄存器和状态寄存器端口地址为51H,数据输入寄存器和数据输出寄存器的端口地址为52H。字符输入后,放在BUFFER标号所指的内存缓冲区中。程序的外循环每次循环接收一个字符,共循环80次;内循环对状态寄存器的RXRDY不断测试,看8251A是否从外设接收到一个字符,如果接收到就读入并送内存缓冲区;程序还对状态寄存器的出错指示位进行检测,如果传输过程中出现错误就停止并调用出错处理子程序。出错处理子程序没有具体给出。MOVAL,0FEH;设置模式字,异步模式,波特率因子为16OUT51H,AL;8个数据位,2个停止位,偶校验MOVAL,37HOUT51H,AL;设置控制字,启动收发器工作,清除出错位MOVDI,0;变址寄存器初始化MOVCX,80;置循环次数,共收取80个字符BEGIN:INAL,51H;读取状态寄存器TESTAL,02H;测试RXRDY是否为1JZBEGIN;如果RXRDY为0,则读状态字继续测试INAL,52H;从数据输入寄存器读取字符

MOVDX,OFFSETBUFFERMOV[DX+DI],AL;将AL中字符送缓冲区INCDI;修改缓冲区指针DIINAL,51H;读取状态寄存器TESTAL,38H;测试出错标志位,检查传输有无错误

JNZERROR;如果有错,转入出错处理程序LOOPBEGIN;如没有错,则继续循环接收下1个字符JMPEXIT;如输入满80个字符,则结束ERROR:CALLERR_OUT;调用出错处理程序EXIT:…例:双机串口通信CPU8251ATxDRxDSGTxCRxC8251ATxDRxDSGTxCRxCCPU时钟时钟EIA/TTL变换EIA/TTL变换要求:在甲乙两台微机之间进行串行通信。甲机发送,乙机接收。要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。采用起止式异步方式,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4800。CPU与8251A之间用查询方式交换数据。口地址分配是:309H为命令/状态口,30AH为数据口。由于是近距离传输,硬件连接只需TxD、RxD和SG三根线连接就能通信,可以不设MODEM,同时是采用查询I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发1个字节。软件编程:接收和发送程序分开编写,每个程序段中包括8251A初始化,状态查询和输入/输出几部分。发送程序:(略去STACK和DATA段)CODESEGMENTASSUMECS:CODESENDPROCSTART:MOVDX,309H

MOVAL,00H

OUTDX,AL;控制字,停止通信

MOVAL,40H

OUTDX,AL;控制字,内部复位NOPMOVAL,0CFHOUTDX,AL;模式字(异步,2位停止位,字符长度;为8位,无校验,波特率因子为64)

MOVAL,31HOUTDX,AL;控制字(RTS、ER、和TxEN均置位)

MOVCX,2DH;传送字节数

MOVSI,300H;发送区首址L1:MOVDX,309H

INAL,DX;状态字

TESTAL,38H;查出错标记位

JNZERR;ERR省略

ANDAL,01H;查状态位D0(TxRDY)=1?

JZL1;发送未准备好,则等待

MOVDX,30AH;数据口

MOVAL,[SI];从发送区取1字节发送

OUTDX,AL

INCSI;修改内存地址

DECCX;字书数减1JNZL1;未发送完,继续MOVAX,4CHINT21H;已送完,回DOSSENDENDPCODEENDSENDSTART接收程序:(略去STACK和DATA段)CODESEGMENTASSUMECS:CODERECPROCSTART:MOVDX,309H

MOVAL,00H

OUTDX,AL;控制字,停止通信

MOVAL,40H

OUTDX,AL;控制字,内部复位NOPMOVAL,0CFHOUTDX,AL;模式字(异步,2位停止位,字符长度;为8位,无校验,波特率因子为64)

MOVAL,16HOUTDX,AL;控制字(ER、RxEN和DTR均置位)

MOVCX,2DH;接收字节数

MOVDI,400H;接收区首址L2:MOVDX,309H

INAL,DX;状态字

TESTAL,38H;查出错标记位

JNZERR;ERR省略

ANDAL,02H;查状态位D1(RxRDY)=1?

JZL2;发送未准备好,则等待MOVDX,30AH;数据口INAL,DX

MOV[DI],AL;从发送区取1字节发送

INCDI;修改内存地址

DECCX;字书数减1JNZL2;未发送完,继续MOVAX,4CHINT21H;已送完,回DOSRECENDPCODEENDSENDSTART并行通信和串行通信的比较并行通信传输速度快,信息率高,不适合远距离通信;串行通信传输速度慢,信息率低,适合远距离通信。串行通信在传递一个字符的过程中,字符从哪里开始,从哪里结束有严格的信息帧的组织格式,串行通信有RS-232C等成熟的标准;并行通信在字符传递的过程中,没有信息帧的组织格式,并行通信也没有标准化。串行通信中严格的区分了异步通信和同步通信方式;在并行通信中也没有对异步传输和同步传输作出严格的规定。实际上在并行通信中,如果CPU用一个时钟信号管理接口和外设,那么这种并行传输看作是同步传输;如果CPU和接口与外设之间只有应答信号,这种并行传输看作是异步传输。10.3DMA控制接口8237A考虑外设与接口的数据传输方式:1)查询方式:CPU通过程序读取接口的状态寄存器,查询外设是否处于就绪状态,在该方式中CPU的绝大部分时间在循环等待,利用率极低。传输一个字符的过程中,CPU全程干预。2)中断方式:当外设准备就绪后,发送中断请求给CPU,要求CPU提供服务,在该方式中,CPU的利用率得到了极大的提高。在传输一个字符的过程中,CPU要进行中断响应和中断返回两次干预。

虽然中断技术使得CPU的利用率得到了极大的提高,但是对于大量数据的成批传输,该方式仍显不足。例如一次传递1M字节的文件,CPU要进行100万次的中断服务,每次中断服务都要经过中断响应,保存断点,保存现场,处理服务子程序和中断返回等过程,使CPU的利用率大幅下降。DMA的基本概念为了进一步提高CPU的利用率,人们提出了直接内存访文技术,即DirectMemoryAccess,简称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接口主存CPUDMA

控制逻辑

中断逻辑设备HLDA地址寄存器字节计数器HOLD中断请求数据线地址线+1-1溢出信号DREQDACK数据缓冲寄存器DMA数据传送的过程

如果外设向内存传送一个数据块(输入过程),使用DMA方式时,系统按照下面的过程动作:1)外设向DMA发送一个DMA请求2)DMA控制器发总线请求,得到CPU的允许信号取得总线控制权3)DMA控制器中的地址寄存器的内容送地址总线4)DMA控制器向外设发送确认DMA传输信号,用来通知外设将数据送到数据总线。5)数据总线上的数据送到地址总线所指示的内存单元6)地址寄存器的值加1,指示下一个数据存放的内存单元7)字节计数器的值减18)如字节计数器的值不为0,则回到第3步,否则DMA过程结束允许传送?地址寄存器->地址总线数据->数据总线->主存

地址寄存器加1字节计数器减1数据块传送结束?向CPU申请中断请求DMA请求否否是是DMA控制器预处理:主存起始地址传送数据个数启动设备DMADMA继续执行主程序后处理:中断服务程序做DMA结束处理,如校验等工作继续执行主程序CPU8237A是INTEL系列中的高性能DMA控制器:8237A内部包括4个独立的通道,可以同时在4个外设和存储器之间进行DMA传输。

外设和存储器之间的传输速度可达1.6MB/S

通过软件编程可控制8237A工作在多种方式下,使用方便。DMA控制器一方面和其他接口一样,接受CPU对它的读/写操作,包括向DMA控制器设置控制字,设置地址初值和计数初值以及读取状态字,这时称它为总线从模块;一方面,DMA控制器能够控制系统总线,像CPU一样操纵外设和存储器之间的数据交换,这时称它为总线主模块。因此,对8237A的内部结构和外部连接也是从两方面分析。8237A主要功能8237A内部结构8237A的引腿及其功能DMA控制器向CPU发送的总线请求信号CPU向DMA控制器发送的总线响应信号外设向DMA控制器发送的DMA请求信号DMA控制器向外设发送的DMA应答信号双向最低4位地址线。当作为从模块时,地址线A3~A0作为输入端对8237A内部寄存器进行寻址;作为主模块时,将当前寄存器低字节低4位地址送地址总线。将当前地址寄存器的低字节的高4位地址送地址总线DMA过程结束信号,该信号位双向。外部向DMA控制器输入一个信号,DMA过程结束;当DMA控制器任一通道的字节计数器位0时输出一个信号标识DMA过程结束。由I/O端口向内存写入数据时,即8237A工作在写传输时有效。由内存向I/O端口读取数据时,即8237A工作在读传输时有效。8位双向数据线。当作为从模块时,接收CPU从数据总线发来的控制字或将状态字输出到数据总线。作为主模块时,将当前地址寄存器的高8位送地址总线高8位8237A通道的工作模式(由通道的模式寄存器控制)-8237A的每个通道都可以工作在下面四种工作模式之一:单字节传输模式:通道被设置为此模式时,每完成一个字节的传输,字节计数器就减1,地址寄存器加1或减1,然后,8237A释放系统总线,随后立即检测DREQ端,若有效则8237A将又立即CPU发总线请求,获得总线控制权后,再次进行DMA传输。块传输模式:通道被设置为此模式时,只有在字节计数器减为0时8237A才释放系统总线。所以此模式可连续进行多个字节的传输。请求传输模式:与块传输模式相似,不同的只是在每传输1个字节后8237A都对DREQ进行检测,若DREQ变为无效电平则暂停传输,若DREQ有效时就将在原来的基础上又继续DMA传输。级联传输模式:即几个8237A通过级联构成主从式DMA系统。主片设置为级联模式,从片设置为所需的其它三种模式之一(最多可由5个8237A构成二级16个DMA通道的DMA系统)。-8237A的每个通道都可以工作在自动预置模式下:自动预置是指在DMA传输过程中,当前字节计数器的值到达0时,当前地址寄存器和当前字节计数器自动从基地址寄存器和基本字节计数器中重新得到新值,进入下一个数据传输过程。8237A的模式寄存器传输类型00–校验传输01–写传输10–读传输11–无意义通道选择:00-选通道001-选通道110-选通道211-选通道3自动预制功能:0–禁止1–允许地址增减选择0–地址减11–地址加1模式选择:00–请求传输模式01–字节传输模式10–块传输模式11–级联传输模式D7D6D5D4D3D2D1D08237A的工作方式(由8237A的控制寄存器控制)-内存到内存传输8237A可以将数据从内存的一个区域传输到另一个区域,即将源存储区域的数据先送入8237A的暂存器,再送到目的存储区域,每次传输需用两个总线周期。在存储器到存储的传输中,规定:通道0:地址寄存器存放源地址,传送一个字节地址寄存器加1(或减1)。通道1:地址寄存器和字节计数器存放目的地址和计数值。每传送一个字节地址寄存器加1(或减1),字节计数器减1。注意:进行存储器到存储器的传输过程中,如果通道0的源地址寄存器的值保持不变,通道1目的地址寄存器的值仍进行加1或减1操作,即同一个数据传输到整个目的存储区域。-通道优先级的设定8237A的4个通道可接4个I/O设备,其优先级管理方式有两种:1)固定优先级方式——优先级由高到低为通道0、通道1、通道2、通道3。2)循环优先级方式——通道的优先级依次循环。当某个通道的DMA传输过程完成后,其优先级变为最低。例如某此传输前各通道优先级为2-3-0-1,通道2完成传输后,各通道优先级变为3-0-1-2。-状态及工作时序

8237A的工作过程可分为以下七个状态:SI状态:各通道没有DMA请求的状态,也称为空转状态SI。该状态下8237A对CS和DREQ进行测试,判断是否被CPU选中或者是否有DMA请求。S0状态:某一通道的DREQ有效,即此通道有DMA请求,则8237A通过引腿HRQ向CPU发出总线请求而进入总线请求状态S0,S0状态一般重复多次,直到CPU发出总线允许信号转入S1状态。S1状态:8237A传送地址锁存信号,以便锁存S2状态下输出的高8位地址。S2状态:8237A由引腿DB7~DB0输出高8位地址,在S1状态下给出的地址锁存信号作用下进入地址锁存器,引腿A7~A0输出低8位地址进地址总线低8位。SW状态:如果外设速度较慢则插入多个SW等待状态。S3状态:将地址锁存器中的高8位地址送地址总线高8位。如果数据块的传输跨越了内存的256个字节,才需要该状态,否则不需要该状态。S4状态:传输模式测试,如果是块传输模式或请求传输模式则转入S2状态。在整个工作过程中每个状态对应1个时钟周期,8237A有两种工作时序:1)普通工作时序:一次DMA传输经历S2-S3-S4共3个时钟周期2)压缩工作时序:一次DMA传输经历S2-S4共2个时钟周期8237A的控制寄存器存储器-存储器传输中0:源地址变化1:源地址不变0:启动8237A工作1:停止8237A工作0:普通时序1:压缩时序D0D1D2D3D4D5D6D7DMA应答信号0:低电平有效1:高电平有效DMA请求信号0:高电平有效1:低电平有效0:不扩展写信号1:扩展写信号0:固定优先级

1:循环优先级0:存储器-外设1:存储器-存储器8237A的状态寄存器8237A状态寄存器的低4位指示4个通道计数结束状态。8237A状态寄存器的高4位指示4个通道DMA请求状态。D7D6D5D4D3D2D1D0通道0计数结束通道1计数结束通道3计数结束通道2计数结束通道2有DMA请求通道3有DMA请求通道1有DMA请求通道0有DMA请求通过读取8237A的状态寄存器,CPU可以了解到哪一个通道有DMA请求,哪一个通道的DMA过程结束了。请求标志的设置

8237A每一个通道的DMA请求即可以通过硬件发出,也可以通过软件发出;硬件上是通过DMA控制器的DREQ引脚引入DMA请求的,软件上是通过对DMA请求标志的设置引入DMA请求的。8237A的每一个通道都配有一个DMA请求触发器,用来设置本通道的DMA请求标志。物理上4个请求触发器对应着一个请求寄存器。D7D6D5D4D3D2D1D0DMA请求标志:0–

无DMA请求1–

有DMA请求不用通道选择:00–通道001–通道110–通道211–通道3屏蔽标志的设置8237A的每一个通道都配有一个DMA屏蔽触发器,用来设置本通道的DMA屏蔽标志。当一个通道的屏蔽标志为1时,不能响应任何DMA请求。物理上4个屏蔽触发器对应一个屏蔽寄存器。D7D6D5D4D3D2D1D0屏蔽设置:0–

去处屏蔽1–

设置屏蔽不用通道选择:00–通道001–通道110–通道211–通道3D7D6D5D4D3D2D1D0通道0设置屏蔽通道1设置屏蔽通道2设置屏蔽通道3设置屏蔽综合屏蔽命令复位命令和清除先/后触发器命令复位命令复位命令和RESET引脚的功能相同,使控制寄存器、状态寄存器、DMA请求寄存器、暂存器以及先/后触发器清0、使屏蔽寄存器复位。清除先/后触发器命令先/后触发器是用来控制DMA通道中地址寄存器和字节计数器的初值设置的。8237A只有8位数据线,一次只能传输一个字节,而地址寄存器和字节计数器是16位,所以这些寄存器需要2

温馨提示

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

评论

0/150

提交评论