《微機原理與介面技術》第三章——介面概念和原理
雖然寫這個部落格主要目的是為了給我自己做一個思路記憶錄,但是如果你恰好點了進來,那麼先對你說一聲歡迎。我並不是什麼大觸,只是一個菜菜的學生,如果您發現了什麼錯誤或者您對於某些地方有更好的意見,非常歡迎您的斧正!
目錄
第1節 介面/埠的定義
介面:任何兩電路或裝置間的連線電路。是一組特殊控制電路,介於CPU與記憶體、CPU與外設之間。
各種外設都必須通過介面
定址:確定裝置的地址,區分不同的裝置
緩衝:適配外設與CPU的工作速度
轉換:適配外設與CPU的資訊格式、型別、幅度
時序:外設與CPU的工作時序
介面電路的組成:由多類/多個暫存器構成。
埠:暫存器的另一稱呼。
微機的埠:
16根I/O線:地址空間2^16=64K
IBM:A0~9線有效,地址空間2^10=1K:000H~3FFH(1023)
PC系統IO端分配
前256個埠:000h-0FFh,系統外設佔用
後768個埠:100h-3FFh,常規外設佔用
第2節 埠訪問指令
第3節 介面/埠地址設計
概念:給某個埠(介面/裝置)設計特定的地址。
即設計埠譯碼電路:
輸入:埠地址(結合IO/M,WR,RD等訊號)
輸出:僅當AB(地址匯流排)上出現埠地址時,輸出低電平
設計地址譯碼電路三個前提
①有效I/O地址線10位:A9~0
②埠讀寫屬性(只讀/只寫/可讀可寫)
③考慮DMA操作:地址允許訊號AEN(DMAC訊號)
3.1 AEN=0,即非DMA操作時,埠可以訪問;
3.2 AEN=1,即是DMA操作時,埠不能訪問;
例子:使用閘電路設計埠地址2F8H的只讀地址譯碼電路
分析:僅當AB(地址匯流排)輸入2F8H時輸出低電平,其它都輸入高電平
地址線 |
0 0 A9 A8 |
A7 A6 A5 A4 |
A3 A2 A1 A0 |
十六進位制 |
2 |
F |
8 |
二進位制 |
0 0 1 0 |
1 1 1 1 |
1 0 0 0 |
通過程式分析埠2F8H(760)的訪問
MOV DX,2F8H ;把資料2F8H輸入到DX暫存器
IN AL, DX ;F=0,對應埠被選中。用暫存器DX讀資料到AL中。
通過跳線或變成改變埠的地址(2F8H/3F8H)
含有多個埠的介面地址譯碼電路
例子:某介面有4個埠:384H ~ 387H。畫出地址譯碼電路
步驟:
①選中介面(介面譯碼)
384H 11 1000 0100
385H 11 1000 0101
386H 11 1000 0110
387H 11 1000 0111
僅當A9-0=11 1000 01XX時譯碼電路輸出低電平
②選中特定電路
用74LS138實現第2級譯碼:注意AB與A1、A0的對應關係
介面地址的構成形式和實現方法總結:
①單埠:閘電路直接譯碼
②多埠:兩級譯碼,閘電路和譯碼器
③地址可變:通過跳線或程式設計改變埠的地址
第4節 資料傳輸方式