计数寄存器8257

我们有4个计数器,范围从CR 3-0,每个由16位组成。当CR可以访问16位宽的处理器时,以交替的方式访问寄存器的最低有效字节和最高有效字节,从最低有效字节开始。同样,M / L *触发器在这里有帮助。有关要使用DMA传输的字节数的信息包含在计数器寄存器中,对于DMA数据传输中的每个字节,其递减1。当计数器寄存器变为0时,最后一次DMA数据传输导致激活8257输出的终端计数(TC)。在四个通道中,只有一个输出读取。处理器读取8257的状态端口以找出哪个通道。负责通过8257激活输出。

尽管计数器寄存器为16位宽,但仅寄存器的14个最低有效位用于指定要使用直接存储器访问方案传输的字节数。因此,对于最大数据传输,可以编程2 14 = 16K = 16,384字节。假设N是要使用DMA数据传输传输的字节数,这里我们必须在计数器寄存器的14个最低有效位中加载(N-1)个字节。如果计数器寄存器的14个最低有效位中已经加载了0值,则在此过程中将仅传输一个字节。

DMA传输的类型由计数器寄存器的最高2位指定。它可以通过直接内存访问读取,也可以写入DMA并进行验证。下表有助于理解位15和位14的操作。

15位14位运作方式
00DMA验证
01DMA写
10DMA读取
11非法

在给定的表中,当位15等于1时,8257生成MR *和IOW *信号。当位14等于1时,它将生成MW *和IOR *信号。现在在下表中,当两个位15和位14均为0时,通过DMA进行验证,当位15为0且位14为1时,DMA读取内容。当位15为1而位14为0时,DMA写入。当两个位都为1时,这是非法操作且未完成。

15位14位运作方式
00DMA验证
01DMA读取
10DMA写
11非法