Parallel I/O Interfacing
內容大綱 I/O介面簡介 8255A可程式週邊介面晶片 8255A內部構造 、8255A接腳 、8255A控制字組 、 並列I/O介面實習
內容大綱(我們在哪裡?) I/O介面簡介 8255A可程式週邊介面晶片 8255A內部構造 、8255A接腳 、8255A控制字組 、
I/O介面簡介 inportb(輸入)與outportb(輸出)二個指令被用來執行CPU與週邊設備間之資料傳輸 。 當inportb或outportb被執行時,CPU會透過解碼電路使相對應之I/O介面致能,再藉由資料匯流排接收或傳送資料。
I/O介面簡介(續) 基本輸入介面 區,其輸出接腳(D15- D8或 D7- D0)連接至CPU之匯流 排,其輸入接腳則與8位元 ◇74ALS244乃是一三態緩衝 區,其輸出接腳(D15- D8或 D7- D0)連接至CPU之匯流 排,其輸入接腳則與8位元 之TTL開關相 連。 ◇當CPU執行inportb指令時 ,解碼電路會將74ALS244 之相對位址解碼,使其 SEL接腳為低電位 而致能 其資料傳輸功能。 8位元基本輸入電路
I/O介面簡介(續) 基本輸出介面 自CPU之資料鎖住 。 解碼電路會經由SEL致能 74ALS374,CPU之輸出資 ◇CPU執行outportb指令時, 解碼電路會經由SEL致能 74ALS374,CPU之輸出資 料由D15- D8或D7- D0傳至 74ALS374鎖住直到下一個 outportb指令被執行 。 8位元基本輸入電路
I/O介面簡介(續) 交握式I/O 資料速度較CPU慢,交握 式之I/O控制方法即是用來 同步I/O週邊與CPU之資料 傳輸。印表機乃是典型需 要交握控制之裝置。 印表機連接器示意圖 DB25表電腦端,CENT36為印表機端。
I/O介面簡介(續) 交握式I/O 於D7- D0之資料匯流排之同 時,亦由Data Strobe接腳送 出信號通知印表機,印表機 ◇CPU將欲列印之資料送至 於D7- D0之資料匯流排之同 時,亦由Data Strobe接腳送 出信號通知印表機,印表機 接到資料後即將BUSY變成 高電位,當BUSY為高電位 時,CPU即不再將資料送出 。 印表機連接器示意圖 DB25表電腦端,CENT36為印表機端。
I/O介面簡介(續) 交握式I/O 測試BUSY腳位之簡單程式
內容大綱(我們在哪裡?) I/O介面簡介 8255A可程式週邊介面晶片 8255A內部構造 、8255A接腳 、8255A控制字組 、
8255A可程式週邊介面晶片 (續) 8255A內部構造 (1) 資料匯流排緩衝區 (Data Bus Buffer) (2) 讀寫控制邏輯 (Read Write Control Logic) (3) A組與B組控制單元 (Group A and B Control) (4) A、B、C I/O埠 8255A之內部構造示意圖(Intel)
8255A可程式週邊介面晶片 (續) 8255A內部構造 (1) 資料匯流排緩衝區 此8位元之緩衝區用來處理8255A與CPU之資料傳輸,當CPU執行 inportb指令時,8255A之資料即可由此緩衝區藉資料匯流排D7- D0 送至CPU,反之;當outportb被執行時,資料由CPU經此緩衝區送 至8255A。
8255A可程式週邊介面晶片 (續) 8255A內部構造 (2) 讀寫控制邏輯 讀寫控制邏之功能由A1,A0,RD,WR,CS等腳位加以控制,主 要是用以操控8255A之資料寫入,讀取與禁能。
8255A可程式週邊介面晶片 (續) 8255A內部構造 ◇ A組掌控A埠與C不知上半位元組,B埠與C埠下半位元組 (3) A組與B組控制單元 ◇此二控制單元會將預先規劃之控制字組儲存於暫存器中。 當8255A正式工作時,再配合讀寫控制邏輯之規劃將讀取 式寫入指令傳給相對應之I/O埠。 ◇ A組掌控A埠與C不知上半位元組,B埠與C埠下半位元組 則由B組來控制。
8255A可程式週邊介面晶片 (續) 8255A內部構造 (4) A、B、C I/O埠 4位元之I/O接腳外,亦可作為在模式1與模式2下A與B埠之 交握信號線。
8255A可程式週邊介面晶片 (續) 8255A接腳 (1) 電源接腳: Vcc:+5V GND:接地 (2) 資料匯流排: (1) 電源接腳: Vcc:+5V GND:接地 (2) 資料匯流排: D7-D0 (8位元):接至CPU之資料匯流排 (3) 晶片選擇與I/O埠選擇: CS:設定8255A之致能或禁能 A0、A1:用以選擇A、B、C三I/O埠或 控制暫存器 8255A接腳圖
8255A可程式週邊介面晶片 (續) 8255A接腳 (4) 控制線(接至CPU): RD:讀取控制 WR:寫入控制 RESET:高電位時,A、B、C埠均 為輸入埠 (5) 與周邊裝置相連之資料線: PA7-PA0:A埠資料線 PB7-PB0:B埠資料線 PC7-PC0:C埠資料線,A、B交握信 號控制線 8255A接腳圖
8255A可程式週邊介面晶片 (續) 8255A控制字組 ◇各工作模式中,A、B、C埠又可分成輸入與輸出二種資料傳 則有模式0與模式1兩種工作模式。 ◇各工作模式中,A、B、C埠又可分成輸入與輸出二種資料傳 輸方式。 ◇8255A之控制字組可分成控制字組A與控制字組B兩種模式。 ◇控制字組A乃適用於規範A、B、C埠之工作模式,故稱為模 式定義控制字組。 ◇控制字組B則是用於C埠位元之設定與清除,故稱為C埠位元 設定/清除控制字組 。
8255A可程式週邊介面晶片 (續) 8255A控制字組 ◇若設控制單元暫存器之位址為033BH, 模式定義控制字組 ◇規劃A組(A埠,C埠上半部)模式為0 ,B組(B埠,C埠下半部)為模式1, A埠為輸出,C埠上下半部均為輸入 ,B埠為輸出,則需將控制字碼 10001101(08DH)寫入控制單元暫存器。 ◇若設控制單元暫存器之位址為033BH, 則需執行以下之指令, Outportb(0×33B,0×08D) ;
8255A可程式週邊介面晶片 (續) 8255A控制字組 C埠位元設定/清除控制字組 ◇D0: D3-D1: 此三位元用以指定C埠之位元,D3D2D1=000至111分別代表C埠之PC0至PC7。 D6-D4: 高低位皆可。 D7: D7=0。
8255A可程式週邊介面晶片 (續) 8255A控制字組 C埠位元設定/清除控制字組 ◇設欲將PC2設定為0,控制字碼為00000101,則需執行下列指令: Outportb(0x33B,0x05); 0x33B: 控制暫存器位址 ◇若C埠已設定為模式0之輸出模式,則執行下列指令亦可得到相 同的結果: Outportb(0x33A,0x04); 0x33A: C埠位址
8255A可程式週邊介面晶片 (續) 8255A工作模式
8255A可程式週邊介面晶片 (續) 8255A工作模式 A埠或B埠均可設定以簡單之8位元輸入埠或輸出埠。 模式0 A埠或B埠均可設定以簡單之8位元輸入埠或輸出埠。 C埠之上、下半位元組則可分成二個4位元之輸入或 輸出埠。選擇模式0時,輸出有鎖住之功能,輸入 則無。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 埠,C埠之4條交握控制線則作為交握信號控制之用。 號腳位定義並不相同。 ◇在工作模式1下,A埠與B埠為具有交握式控制之8位元I/O 埠,C埠之4條交握控制線則作為交握信號控制之用。 ◇不論輸出或輸入皆有鎖住作用,然而輸出與輸入之交握信 號腳位定義並不相同。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸入 : STB: 當此線為低電位時,代表周邊裝置 模式1 模式1 輸入 : STB: 當此線為低電位時,代表周邊裝置 之資料已載入8255A之A埠或B埠 IBF: 此線用以表示輸入緩衝器已滿之信 號輸出線,IBF為高電位時代表資 料已放入8255A之輸入緩衝器中, STB為低電位時,IBF變為高電位, 當CPU執行inportb指令時,RD信 號會使IBF回復為低電位,通知周 邊裝置可再送下一筆資料。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸入 : INTR: 此線為中斷請求輸出線,接至CPU 模式1 模式1 輸入 : INTR: 此線為中斷請求輸出線,接至CPU ,當STB、IBF與INTR皆為高電位 時,INTR之高電位將變成CPU之 中斷信號,一直到CPU讀取緩衝器 之資料時,RD之下降緣會將INTR 重置為低電位。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸入 : 模式1 模式1 輸入 : (i)當IBF線為低電位時,周邊裝置(I/P)傳送下一筆資料,並使STB回 復為低電位。 (ii)當8255A接收資料後,IBF變為高電位,告知I/P資料已收到,I/P 即令STB為高電位。 (iii)8255A以INTR線告知CPU以中斷方式來讀取緩衝器中之資料, 亦即跳至中斷副程式執行inportb指令。 (iv)讀取後IBF回復為低電位,I/P可再傳下一筆資料。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸出 : OBF: 代表輸出緩衝器已滿之輸出信號線 模式1 模式1 輸出 : OBF: 代表輸出緩衝器已滿之輸出信號線 ,OBF為低電位時表示CPU已將資 料載入8255A之A埠或B埠中,在與 CPU相連之WR信號之上升緣時, OBF變低電位,直到來自周邊裝置 之ACK線下降為低電位時,才回復 為高電位。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸出 : ACK: 認知信號輸入線,當此線為低電位 模式1 模式1 輸出 : ACK: 認知信號輸入線,當此線為低電位 時,表示周邊裝置已取得8255A之 資料。 INTR: 中斷請求輸出線,當ACK與OBF均為 高電位且INTR亦為高電位時,INTR 會送出中斷信號給CPU,請求CPU以 中斷方式傳送下一筆資料。當CPU完 成下一筆資料之載入,亦即WR線之 下降緣時,INTR才回復成低電位。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式1 模式1 輸出 : 模式1 模式1 輸出 : (i)8255A以INTR線要求CPU用中斷方式將資料寫入8255A (ii)當資料載入完畢後,OBF變為低電位,用以告知周邊裝置O/P 8255A已送出新資料。 (iii)當O/P接收資料後,即令ACK輸出一低電位給8255A。 (iv)8255A得知資料已被接收,便使OBF回復為高電位。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式2 埠可規劃為模式2,在模式2下,A 埠可在PC3 –PC7 五條交握控制線控 ◇8255A之A、B、C。三埠中,僅A 埠可規劃為模式2,在模式2下,A 埠可在PC3 –PC7 五條交握控制線控 制下成為雙向I/O匯流排。 ◇ INTR,OBF,ACK,STB,IBF之 作用與模式1相同,若將8255A設為 模式2之雙向匯流排方式,即可用 來連接兩個不同之CPU 。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式2 (i)CPU載入資料至8255A的輸出緩衝器 8255A以INTRA要求CPU以中斷方式將資料載入,載入完成後, OBFA變為低電位,通知I/O 8255A已將資料送出。 (ii)I/O傳送資料至8255A之輸入緩衝器 若I/O裝置這時正好要傳送資料給8255A,則資料輸入動作由STBA 與IBFA控制,其作動方式與模式1相同。
8255A可程式週邊介面晶片 (續) 8255A工作模式 模式2 (iii)8255A將輸出緩衝器之資料送至I/O 接著8255A在ACKA與OBFA之控制下將資料送給I/O,其作動方式 與模式1相同。 (iv)CPU讀取8255A輸入緩衝器之資料 最後8255A再以INTRA線通知CPU以中斷方式讀取由I/O資料讀取 後IBFA又回復低電位,以便I/O可再傳下一筆資料。
內容大綱(我們在哪裡?) I/O介面簡介 8255A可程式週邊介面晶片 8255A內部構造 、8255A接腳 、8255A控制字組 、
並列I/O介面實習 Exercise 6-1 設有二顆8255A (8255AI & 8255AII)透過解碼電路與 CPU連結,以組合語言撰寫 之規劃程式如左,其中A、 B、C與Control Port之位址 需依所使用之I/O卡之解碼 位址來設定。請將此組合語 言規劃程式改寫成C++ Builder視窗語言格式,並完 成Exercise 3-2之專案程式。
並列I/O介面實習(續) Exercise 6-2 微動開關、光遮斷開關、近接開關之控制電路分別如圖6-14、 6-15、6-16所示。 完成微動、光遮斷、近接硬體架構,繼電器接線請參考第二章。 完成Exercise 3-3、 Exercise 3-4、Exercise 3-5等專案程式。 整合軟硬體架構完成自動感測系統。 當任一感測器偵測出異狀時,以不同之音樂做為警告訊號。
並列I/O介面實習(續) Exercise 6-2
並列I/O介面實習(續) Exercise 6-3 七段顯示器之內部電路、控制方式、顯示字型與8255A輸出值對 照表如圖6-17所示。 完成七段顯示器硬體架構。 完成Exercise 3-6專案程式。
並列I/O介面實習(續) Exercise 6-3
並列I/O介面實習(續) Exercise 6-4 步進馬達控制線路如圖6-17所示。 完成步進馬達控制硬體架構。 整合軟硬體架構完成步進馬達轉速與定位控制系統。
Exercise 6-4