两个功能,SR7 相当于 POC 的 ready 信号,SR0 代表 POC 的工作模式,1 为中断,
0 为查询。
若 POC 工作在查询工作模式,CPU 会不断查询 SR7 的值,若检测到 SR7 为高电平,
CPU 将打印字符送入数据寄存器 BR,当 BR 中含有打印字符之后 POC 清零 SR7 并
且然后发送打印脉冲信号 TR,打印完成之后 POC 再将 SR7 拉高。中断方式与此类
似,唯一的区别就是 SR0 为 1,当 SR7 为高时,POC 在 IRQ 端发出一个低电平的中
断请求,这个中断请求落后于 SR7 变化一个周期。
3、 完整过程
总的来说三者之间的时序是这样的,打印机空闲将 READY 信号拉高,POC 检
测到 READY 高电平,经过隔离时间(为了能实现连续打印,这里设置了一个字符间
的隔离时间为 3 个时钟周期)POC 将 SR7 拉高(若为中断模式,此后一个时钟周期
IRQ_N 被拉低),CPU 检测到 IRQ_N 低电平/ SR7 高电平立即将数据送入 BR,为了
表示方便,这里认为 BR 与打印机端口 PD 直接相连。此后 POC 将 SR7 拉低同时发
出脉冲 TR,打印机检测到 TR 后将 READY 信号拉低,这里认为打印需要 8 个时钟
周期,打印完成之后打印机继续将 READY 信号拉高进入下一个字符的打印周期。
三、 实验设计和说明
1、 PROCESSOR 模块
固定打印机的地址为 3‘b001,并且每次打印 CPU 送出的打印数据 DATA_OUT 是
从 8’b0000_0001 开始逐次加 1 的。DATA_IN 代表 POC 送来的状态寄存器 SR 的值。
模式选择信号 CHOOSE_MODEL 如果为 0 查询状态,那么 CPU 就会关注 SR7 的值,
如果为 1 中断状态,那么 CPU 就会关注 IRQ_N 的值,实际过程中查询与中断工作
方式大为不同,但在本例中实现两种工作方式的本质是一样的。
2、 POC 模块