天天看點

8086CPU I/O系統組織 8253晶片 8255A晶片

IO設計基本理論

1. IO接口和IO端口

  • IO端口是IO接口内可由CPU進行讀寫操作的各種寄存器。可分為資料端口、狀态端口和控制端口。
8086CPU I/O系統組織 8253晶片 8255A晶片

2. IO端口的編址方式

  • 統一編址:IO端口與存儲器共享一個位址空間;
  • 獨立編址:IO端口與存儲器有互相獨立的位址空間。

3. IO輸入輸出的基本方式

無條件傳送:

  • 預設IO裝置永遠處于準備好狀态,無需CPU讀取其狀态;
  • 隻需要設計資料端口,無需設計狀态端口和控制端口;

程式查詢法:

  • 程式中不斷查詢IO口狀态,當IO裝置準備好之後再進行操作;
  • 優點:實作電路簡單;缺點:程式效率低。

IO中斷法:

  • IO裝置準備好之後向CPU提出中斷,CPU在中斷相應程式中對IO進行操作。
  • 最優的方法。

MDA法:

  • 利用外部硬體操控IO裝置。

定時/計數器8253

1. 基本結構

  • 内含三個獨立的計數器:計數器0、計數器1和計數器2;
  • 每個計數器可以通過其方式控制寄存器進行單獨控制;
  • 總共占用4個端口位址,每個計數器各占用一個端口位址,三個控制字共用一個端口位址;
8086CPU I/O系統組織 8253晶片 8255A晶片
  • 每個計數器内部有四個寄存器:控制字、初值寄存器、計數寄存器、輸出鎖存器;
8086CPU I/O系統組織 8253晶片 8255A晶片
  • 控制字為一個位元組,高2位控制選擇計數器,次2位控制讀寫規則,再次3位控制工作方式,最後1位控制資料類型:
8086CPU I/O系統組織 8253晶片 8255A晶片
  • 當RL1

    RL2為00時,為計數寄存器鎖存指令,将此時CE的值鎖存到OL中,接下來再讀相應計數器端口時可以讀走鎖存在OL中的值,讀完之後自動解鎖;

8086CPU I/O系統組織 8253晶片 8255A晶片

2. 工作方式分析:

(1)000 計數達到終值而中斷:

  • 先向8253寫入方式控制字,再寫入時常數,此時OUT變低電平;
  • 寫入時常數之後,下一個CLK脈沖CR内容被置入CE中;
  • 在後續CLK脈沖中,進行CE減一計數,當計數到0時OUT輸出一個高電平(可用作中斷請求);
  • GATE控制計數,當GATE=1時允許計數,當GATE=0時暫停計數。

(2)001 單脈沖形成:

  • 先向8253寫入控制字,再寫入時常數,此時OUT為高電平;
  • 當GATE端檢測到一個上升沿的時候,觸發單脈沖形成,OUT變低,且CR被置入CE中;
  • 在後續CLK脈沖中,進行CE減一計數,當計數到0時OUT變高電平;
  • 等待下一個GATE信号到,重複上述操作。

(3)*10 分頻器:

  • 先向8253寫入控制字,再寫入時常數,此時OUT為高電平;
  • 寫入時常數之後,下一個CLK脈沖CR内容被置入CE中,在後續CLK脈沖中,進行CE減一計數;
  • 當CE減到01h時,在OUT端輸出一個負脈沖,并重新将CR置入CE中開始寫一個循環;
  • 正常情況下,時常數為N,則輸出信号為時鐘的N分頻;
  • GATE控制計數,當GATE=1時允許計數,當GATE=0時暫停計數。

(4)*11 方波産生器:

  • 先向8253寫入控制字,再寫入時常數,此時OUT為高電平;
  • 若置入的為奇數,将在CR置入CE時将其-1變成偶數;
  • 時常數置入完畢的下一個CLK脈沖期間,CR置入CL并開始-2計數;當CE計數到0時OUT變低,同時再次将CR置入CE中進行-2計數,當CE為0時OUT再變高,進而生成方波;
  • 正常情況下,時常數為N,則輸出信号為時鐘的N分頻方波信号;
  • GATE控制計數,當GATE=1時允許計數,當GATE=0時暫停計數。

并行接口晶片8255A

1. 基本結構和概念

  • 計算機接口的分類

并行接口:資料在多根線上同時傳送;

串行接口:資料按位順序在一根線上分時傳送。

  • 8255A的端口:三個資料端口一個控制端口

有三個對應的端口資料寄存器:PA0-PA7,PB0-PB7,PC0-PC7;

端口C又可以分為高四位和第四位,分别位于A組和B組中,作為控制輔助;

總共占用四個端口位址:三個端口寄存器和一個控制寄存器。

8086CPU I/O系統組織 8253晶片 8255A晶片

2. 控制字管理

  • 當A1A0為11時,表示通路控制寄存器;
  • 可以通過控制字控制A組、B組工作方式,端口A、B方向,端口C高四位、低四位方向,端口C各位的值。
  • 控制字各位的含義:
8086CPU I/O系統組織 8253晶片 8255A晶片
  • 如果控制字最高位寫1,則是在選擇工作方式、如果寫0,則是在對PC口進行位管理;
8086CPU I/O系統組織 8253晶片 8255A晶片

3. 工作方式管理

  • 方式0:基本的輸入/輸出;
  • 方式1:有聯絡信号的輸入/輸出(PA、PB):

方式1輸入:

8086CPU I/O系統組織 8253晶片 8255A晶片

方式1輸出:

8086CPU I/O系統組織 8253晶片 8255A晶片

繼續閱讀