å¨å¦ä¹ 8086 CPUçå¼èä¿¡å·åï¼å¿
é¡»å¼æ¸
CPUæå°æ¨¡å¼åæ大模å¼çæ¦å¿µãæè°æå°æ¨¡å¼ï¼å°±æ¯å¨ç³»ç»ä¸åªæä¸ä¸ª8086å¾®å¤çå¨ï¼ææçæ»çº¿æ§å¶ä¿¡å·é½ç´æ¥ç±8086 CPU产çï¼å æ¤ï¼ç³»ç»ä¸çæ»çº¿æ§å¶çµè·¯è¢«åå°æå°ãæ大模å¼æ¯ç¸å¯¹æå°æ¨¡å¼èè¨çãå¨æ大模å¼ç³»ç»ä¸ï¼æ»æ¯å
å«ä¸¤ä¸ªæå¤ä¸ªå¾®å¤çå¨ï¼å
¶ä¸ä¸ä¸ªä¸»å¤çå¨å°±æ¯8086ï¼å
¶ä»çå¤çå¨ç§°ä¸ºåå¤çå¨ï¼å®ä»¬æ¯åå©ä¸»å¤çå¨å·¥ä½çãå¦æ°å¦è¿ç®åå¤çå¨8087ï¼è¾å
¥/è¾åºåå¤çå¨8089ã8086 CPUå°åºå·¥ä½å¨æ大模å¼è¿æ¯æå°æ¨¡å¼ï¼å®å
¨ç±ç¡¬ä»¶å³å®ã
å½CPUå¤äºä¸åå·¥ä½æ¨¡å¼æ¶ï¼å
¶é¨åå¼èçåè½æ¯ä¸åçã â´AD15 ï½AD0ï¼address data busï¼ï¼å°å/æ°æ®æ»çº¿ï¼ååï¼ä¸æã
è¿æ¯ä¸ç»éç¨åæ¶çæ¹æ³ä¼ éå°åææ°æ®çå¤ç¨å¼èãæ ¹æ®ä¸åæ¶éå¨æçè¦æ±ï¼å³å®å½åæ¯ä¼ éè¦è®¿é®çåå¨åå
æI/O端å£çä½16ä½å°åï¼è¿æ¯ä¼ é16ä½æ°æ®ï¼ææ¯å¤äºé«é»ç¶æã
âµA19/S6ï½A16/S3ï¼address/statusï¼ï¼å°å/ç¶æä¿¡å·ï¼è¾åºï¼ä¸æã
è¿æ¯éç¨åæ¶çæ¹æ³ä¼ éå°åæç¶æçå¤ç¨å¼èãå
¶ä¸A19ï½A16为20ä½å°åæ»çº¿çé«4ä½å°åï¼S6ï½S3æ¯ç¶æä¿¡å·ãS6表示CPUä¸æ»çº¿è¿æ¥çæ
åµï¼S5æ示å½åä¸æå
许æ å¿IFçç¶æãS4,S3ç代ç ç»åç¨æ¥ææå½åæ£å¨ä½¿ç¨ç段å¯åå¨ãS4,S3ç代ç ç»åå对åºæ®µå¯åå¨çæ
åµã
â¶BHEï¼ä½ï¼/S7ï¼bus high enable/statusï¼ï¼å
许æ»çº¿é«8ä½æ°æ®ä¼ é/ç¶æä¿¡å·ï¼è¾åºï¼ä¸æã
为æ»çº¿é«8ä½æ°æ®å
许信å·ï¼å½ä½çµå¹³æææ¶ï¼è¡¨æå¨é«8ä½æ°æ®æ»çº¿D15 ï½D8ä¸ä¼ é1个åèçæ°æ®ãS7为设å¤çç¶æä¿¡å·ã
â·RD/ï¼readï¼ï¼è¯»ä¿¡å·ï¼è¾åºï¼ä¸æï¼ä½çµå¹³ææã
ä¿¡å·ä½çµå¹³æææ¶ï¼è¡¨ç¤ºCPUæ£å¨è¿è¡è¯»åå¨å¨æ读I/O端å£çæä½ã
â¸READYï¼readyï¼ï¼åå¤å°±ç»ªä¿¡å·ï¼è¾å
¥ï¼é«çµå¹³ææã
READYä¿¡å·ç¨æ¥å®ç°CPUä¸åå¨å¨æI/O端å£ä¹é´çæ¶åºå¹é
ãå½READYä¿¡å·é«çµå¹³æææ¶ï¼è¡¨ç¤ºCPUè¦è®¿é®çåå¨å¨æI/O端å£å·²ç»ä½å¥½äºè¾å
¥/è¾åºæ°æ®çåå¤å·¥ä½ï¼CPUå¯ä»¥è¿è¡è¯»/åæä½ãå½READYä¿¡å·ä¸ºä½çµå¹³æ¶ï¼å表示åå¨å¨æI/O端å£è¿æªåå¤å°±ç»ªï¼CPUéè¦æå
¥è¥å¹²ä¸ªâTWç¶æâè¿è¡çå¾
ã
â¹INTRï¼interrupt requestï¼ï¼å¯å±è½ä¸æ请æ±ä¿¡å·ï¼è¾å
¥ï¼é«çµå¹³ææã
8086 CPUå¨æ¯æ¡æ令æ§è¡å°æåä¸ä¸ªæ¶éå¨ææ¶ï¼é½è¦æ£æµINTRå¼èä¿¡å·ãINTR为é«çµå¹³æ¶ï¼è¡¨ææI/O设å¤åCPUç³è¯·ä¸æï¼è¥IF=1ï¼CPUåä¼ååºä¸æï¼åæ¢å½åçæä½ï¼ä¸ºç³è¯·ä¸æçI/O设å¤æå¡ã
âºTEST/ï¼testï¼ï¼çå¾
æµè¯æ§å¶ä¿¡å·ï¼è¾å
¥ï¼ä½çµå¹³ææã
ä¿¡å·ç¨æ¥æ¯æææå¤å¤çå¨ç³»ç»ï¼å®ç°8086 CPUä¸åå¤çå¨ä¹é´åæ¥åè°çåè½ï¼åªæå½CPUæ§è¡WAITæ令æ¶æ使ç¨ã
â»NMIï¼non-maskable interruptï¼ï¼éå±è½ä¸æ请æ±ä¿¡å·ï¼è¾å
¥ï¼é«çµå¹³ææã
å½NMIå¼èä¸æä¸ä¸ªä¸å沿ææç触åä¿¡å·æ¶ï¼è¡¨æCPUå
é¨æI/O设å¤æåºäºéå±è½çä¸æ请æ±ï¼CPUä¼å¨ç»æå½åææ§è¡çæ令åï¼ç«å³ååºä¸æ请æ±ã
â¼RESETï¼resetï¼ï¼å¤ä½ä¿¡å·ï¼è¾å
¥ï¼é«çµå¹³ææã
RESETä¿¡å·æææ¶ï¼CPUç«å³ç»æç°è¡æä½ï¼å¤äºå¤ä½ç¶æï¼åå§åææçå
é¨å¯åå¨ãå¤ä½ååå
é¨å¯åå¨çç¶æï¼å½RESETä¿¡å·ç±é«çµå¹³å为ä½çµå¹³æ¶ï¼CPUä»FFFF0Hå°åå¼å§éæ°å¯å¨æ§è¡ç¨åºã
â½CLKï¼clockï¼ï¼æ¶éä¿¡å·ï¼è¾å
¥ã
CLK为CPUæä¾åºæ¬çå®æ¶èå²ä¿¡å·ã8086 CPUä¸è¬ä½¿ç¨æ¶éåçå¨8284Aæ¥äº§çæ¶éä¿¡å·ï¼æ¶éé¢ç为5MHzï½8MHzï¼å 空æ¯ä¸º1:3ã
â¾VCCçµæºè¾å
¥å¼èã
8086 CPUéç¨åä¸+5Vçµæºä¾çµã
â¿GNDï¼æ¥å°å¼èã
âMN/MX/ï¼minimum/maximumï¼ï¼æå°/æ大模å¼è¾å
¥æ§å¶ä¿¡å·ã
å¼èç¨æ¥è®¾ç½®8086 CPUçå·¥ä½æ¨¡å¼ãå½ä¸ºé«çµå¹³ï¼æ¥+5Vï¼æ¶ï¼CPUå·¥ä½å¨æå°æ¨¡å¼ï¼å½ä¸ºä½çµå¹³ï¼æ¥å°ï¼æ¶ï¼CPUå·¥ä½å¨æ大模å¼ã
CPUå·¥ä½äºæå°æ¨¡å¼æ¶ä½¿ç¨çå¼èä¿¡å·
å½å¼èæ¥é«çµå¹³æ¶ï¼CPUå·¥ä½äºæå°æ¨¡å¼ãæ¤æ¶ï¼å¼èä¿¡å·24ï½31çå«ä¹åå
¶åè½å¦ä¸ã
â´IO/M/ï¼memory I/O selectï¼ï¼åå¨å¨ãI/O端å£éæ©æ§å¶ä¿¡å·ã
ä¿¡å·ææå½åCPUæ¯éæ©è®¿é®åå¨å¨è¿æ¯è®¿é®I/O端å£ã为é«çµå¹³æ¶ï¼è®¿é®åå¨å¨ï¼è¡¨ç¤ºå½åè¦è¿è¡CPUä¸åå¨å¨ä¹é´çæ°æ®ä¼ éã为ä½çµå¹³æ¶ï¼è®¿é®I/O端å£ï¼è¡¨ç¤ºå½åè¦è¿è¡CPUä¸I/O端å£ä¹é´çæ°æ®ä¼ éã
âµWR/ï¼writeï¼ï¼åä¿¡å·ï¼è¾åºï¼ä½çµå¹³ææã
ä¿¡å·æææ¶ï¼è¡¨æCPUæ£å¨æ§è¡åæ»çº¿å¨æï¼åæ¶ç±ä¿¡å·å³å®æ¯å¯¹åå¨å¨è¿æ¯å¯¹I/O端å£æ§è¡åæä½ã
â¶INTA/ï¼interrupt acknowledgeï¼ï¼å¯å±è½ä¸æååºä¿¡å·ï¼è¾åºï¼ä½çµå¹³ææã
CPUéè¿ä¿¡å·å¯¹å¤è®¾æåºçå¯å±è½ä¸æ请æ±ååºååºã为ä½çµå¹³æ¶ï¼è¡¨ç¤ºCPUå·²ç»ååºå¤è®¾çä¸æ请æ±ï¼å³å°æ§è¡ä¸ææå¡ç¨åºã
â·ALEï¼address lock enableï¼ï¼å°åéåå
许信å·ï¼è¾åºï¼é«çµå¹³ææã
CPUå©ç¨ALEä¿¡å·å¯ä»¥æAD15 ï½AD0å°å/æ°æ®ãA19/S6ï½A16/S3å°å/ç¶æ线ä¸çå°åä¿¡æ¯éåå¨å°åéåå¨ä¸ã
â¸DT/ï¼data transmit or receiveï¼ï¼æ°æ®åé/æ¥æ¶ä¿¡å·ï¼è¾åºï¼ä¸æã
DT/ä¿¡å·ç¨æ¥æ§å¶æ°æ®ä¼ éçæ¹åãDT/为é«çµå¹³æ¶ï¼CPUåéæ°æ®å°åå¨å¨æI/O端å£ï¼DT/为ä½çµå¹³æ¶ï¼CPUæ¥æ¶æ¥èªåå¨å¨æI/O端å£çæ°æ®ã
â¹DEN/ï¼data enableï¼ï¼æ°æ®å
许æ§å¶ä¿¡å·ï¼è¾åºï¼ä¸æï¼ä½çµå¹³ææã
ä¿¡å·ç¨ä½æ»çº¿æ¶åå¨çééæ§å¶ä¿¡å·ãå½ä¸ºä½çµå¹³æ¶ï¼è¡¨æCPUè¿è¡æ°æ®ç读/åæä½ã
âºHOLDï¼bus hold requestï¼ï¼æ»çº¿ä¿æ请æ±ä¿¡å·ï¼è¾å
¥ï¼é«çµå¹³ææã
å¨DMAæ°æ®ä¼ éæ¹å¼ä¸ï¼ç±æ»çº¿æ§å¶å¨8237Aååºä¸ä¸ªé«çµå¹³ææçæ»çº¿è¯·æ±ä¿¡å·ï¼éè¿HOLDå¼èè¾å
¥å°CPUï¼è¯·æ±CPU让åºæ»çº¿æ§å¶æã
â»HLDAï¼hold acknowledgeï¼ï¼æ»çº¿ä¿æååºä¿¡å·ï¼è¾åºï¼é«çµå¹³ææã
HLDAæ¯ä¸HOLDé
å使ç¨çèç»ä¿¡å·ãå¨HLDAæææé´ï¼HLDAå¼èè¾åºä¸ä¸ªé«çµå¹³ææçååºä¿¡å·ï¼åæ¶æ»çº¿å°å¤äºæµ®ç©ºç¶æï¼CPU让åºå¯¹æ»çº¿çæ§å¶æï¼å°å
¶äº¤ä»ç»ç³è¯·ä½¿ç¨æ»çº¿ç8237Aæ§å¶å¨ä½¿ç¨ï¼æ»çº¿ä½¿ç¨å®åï¼ä¼ä½¿HOLDä¿¡å·å为ä½çµå¹³ï¼CPUåéæ°è·å¾å¯¹æ»çº¿çæ§å¶æã
CPUå·¥ä½äºæ大模å¼æ¶ä½¿ç¨çå¼èä¿¡å·
å½å¼èæ¥ä½çµå¹³æ¶ï¼CPUå·¥ä½äºæ大模å¼ãæ¤æ¶ï¼å¼èä¿¡å·24ï½31çå«ä¹åå
¶åè½å¦ä¸ã
â´S2,S1,S0ï¼status signalsï¼ï¼æ»çº¿å¨æç¶æä¿¡å·ï¼è¾åºï¼ä½çµå¹³ææã
å®ä»¬è¡¨æå½åæ»çº¿å¨ææè¿è¡çæä½ç±»åãï¼ä»£ç ç»ååå
¶å¯¹åºæä½è§è¡¨2.3ã
表2.3ï¼ä»£ç ç»åå对åºæä½è¡¨
âµRQ/,GT/ ï¼request/grantï¼ï¼æ»çº¿è¯·æ±å
许信å·è¾å
¥/æ»çº¿è¯·æ±å
许è¾åºä¿¡å·ï¼ååï¼ä½çµå¹³ææã
该信å·ç¨ä»¥å代æå°æ¨¡å¼æ¶çHOLD/HLDA两个信å·çåè½ï¼æ¯ç¹æ为å¤å¤çå¨ç³»ç»è设计çãå½ç³»ç»ä¸æä¸é¨ä»¶è¦æ±è·å¾æ»çº¿æ§å¶ææ¶ï¼å°±éè¿æ¤ä¿¡å·çº¿å8086 CPUååºæ»çº¿è¯·æ±ä¿¡å·ï¼è¥CPUååºæ»çº¿è¯·æ±ï¼å°±éè¿åä¸å¼èååååºä¿¡å·ï¼å
许æ»çº¿è¯·æ±ï¼è¡¨æ8086 CPUå·²æ¾å¼å¯¹æ»çº¿çæ§å¶æï¼å°æ»çº¿æ§å¶æ交ç»æåºæ»çº¿è¯·æ±çé¨ä»¶ä½¿ç¨ãRQ/GT0ä¼å
级é«äºRQ/GT1ã
â¶LOCK/ï¼lockï¼æ»çº¿å°éä¿¡å·ï¼è¾åºï¼ä½çµå¹³ææã
ä¿¡å·æææ¶ï¼è¡¨ç¤ºæ¤æ¶8086 CPUä¸å
许å
¶ä»æ»çº¿é¨ä»¶å ç¨æ»çº¿ã
â·QS1,QS0ï¼queue statusï¼ï¼æ令éåç¶æä¿¡å·ï¼è¾åºã
QS1åQS0ä¿¡å·çç»åå¯ä»¥æ示æ»çº¿æ¥å£é¨ä»¶BIUä¸æ令éåçç¶æï¼ä»¥ä¾¿å
¶ä»å¤çå¨çè§ãè·è¸ªæ令éåçç¶æã
温馨提示:答案为网友推荐,仅供参考