在DATA_TRS状态,如果是写周期,系统将数据线上的数据锁存到相应的寄存器中;如 果是读周期,系统将数据放到数据线上:状态机随后进入到ASSERT DTACK状态,向微处理 器响应(即置Dtck为低电平),说明数据准备好(读周期)或者数据己经收到(写周期)。微 处理器检测到Dtack为低电平,如果是写周期就将数据总线上的数据清除:如果是读周期, 将数据总线上的数据锁存:并将读写控制线设为读状态,AS、DS置为高电平。当系统检 测到AS被拉高,状态机返回IDLE状态,等待下一个数据传送周期的到来。 IDLE RESET=0 ADDRESS MATCH=0 AS的下 or DS=1 RESET=1 ADDR DS=0 and AS+1 and DS=1 ADDRESS MATCH=1 DATA TRS AS=0 and DS=0 ASSERT_DTACK 图4-4微处理器接口内部的状态机 4.3.2地址译码 微处理器接口模块内部有4个寄存器器-数据寄存器、地址寄存器、控制寄存器和状态 寄存器-每个寄存器都有自己的地址,可以被微处理器寻址访问。这样的设计可以将原来需 要占用芯片管脚的各寄存器的输入输出线合并,共用数据线进行输入输出操作,有效的减 少了对芯片管脚的占用。同时,这样也需要将地址总线上的寄存器地址进行译码,以访问 这几个寄存器。地址译码采用case-when语句描述,当地址总线上的地址和寄存器的地址 一致时,寄存器的使能信号有效,就可以在读写控制线的控制下对该寄存器进行读写操作。 4.3.3读写操作 在时钟信号的控制下,再根据寄存器使的能信号是否有效、寄存器的读写权限的限制 和读写控制线的状态,对给寄存器进行读写操作。 19 F eIïI% uvÚÛY?@st¥«I«dá3Ïá *5Ú ÛX?@st¥«A«I5uvw®?M H%IïeI ê uv\]^ ¸dY$ eüyèú 9ì-eíå«þL`dX?@ek«"#xdY?@e%\ ]^ ç eüyèú 9ì-ÚÛY?@¥«I«ãÏ5ÚÛX?@ ¥«I«dá5D¥XYWX9Xuv < e $9÷-%Rstç m÷uvwÅ efH uv¢£«¬w?@)% %% MNOPQABC nLoLk ·¨)* \]^ zÎäÄ n Ïá j«Ïá <·¨Ïá <WXÏá [uv Ïá jtÏá uÄ·¨)5\]^ §¨ËÌ% )5¥m), -¸!"./Ïá M>De«8M IÄÊ1 2!"./¸%©B ê,-¥·¨IÏá ·¨8)*5ËÌ ìÏá %·¨)*& èyzjzõ fg !R·¨I·¨[Ïá ·¨ ¨BÏá 'Ò¡¢ÄÊ)5FXYWXWXÏá 8XY I% nLoLo XY I FB>¡¢WXÜá«Ïá 'Ò¡¢ ÄÊ<Ïá XY..X [XYWXuvôÏá 8XY I% AS RESET=1 RESET=0 AS=0 and DS=0 AS=1 and DS=1 DS=0 and ADDRESS_MATCH=1 ADDRESS_MATCH=0 or DS=1