輸入輸出設(shè)備I/O設(shè)備總結(jié)
I/O設(shè)備又叫輸入輸出設(shè)備。
如上圖,對(duì)于I/O bus 包含數(shù)據(jù)總線、控制總線、地址總線;
每一個(gè)I/O設(shè)備均連接到I/O總線上,與pc進(jìn)行數(shù)據(jù)傳輸。所以衍生出I/O接口的概念,逐漸產(chǎn)生了一門技術(shù)“I/O接口技術(shù)”。
I/O接口電路位于cpu和外設(shè)之間(復(fù)雜的外設(shè)需要有一個(gè)設(shè)備控制器),外設(shè)通過I/O接口把信息傳送給微處理器進(jìn)行處理,微處理器將處理完的信息通過I/O接口傳給外設(shè)。
一個(gè)典型的I/O接口應(yīng)包含:端口,地址譯碼,總線驅(qū)動(dòng),控制邏輯。
I/O端口屬于cpu可以直接訪問的寄存器,包括狀態(tài)寄存器、數(shù)據(jù)寄存器、控制寄存器。
地址譯碼屬于對(duì)I/O總線的地址進(jìn)行譯碼選中I/O端口。
總線驅(qū)動(dòng)是在I/O端口和I/O總線之間的一個(gè)“三態(tài)門”,實(shí)現(xiàn)cpu和I/O接口之間的“浮空”和“聯(lián)通”。
控制邏輯是接收控制端口的信息對(duì)接口工作進(jìn)行控制。
(以上黑色文字,屬于教課書定義,可能理解與understanding the Linux kernelⅢ出入,只作為參考)
I/O總線通過總線驅(qū)動(dòng)(三態(tài)),連接到I/O port,寄存器組,通過I/O接口解讀信號(hào),發(fā)送給設(shè)備控制器進(jìn)行進(jìn)一步解釋,轉(zhuǎn)化為適當(dāng)?shù)碾娦盘?hào),控制外設(shè)相應(yīng)的的操作。
反向操作原理相同。
I/O接口(I/O interface)分為專用的接口和通用的接口。
專用I/O接口:專門用于一個(gè)特定的硬件設(shè)備。例如:圖形接口,網(wǎng)絡(luò)接口(與網(wǎng)卡中的控制器封裝在一起,可以接受和發(fā)送網(wǎng)絡(luò)報(bào)文)。
通用的I/O接口,用來連接多個(gè)不同的硬件設(shè)備。例如:并口(打印機(jī)),串口(UART)、scsi接口,通用串行總線(USB)。
復(fù)雜的設(shè)備可能需要一個(gè)設(shè)備控制器(devicecontroller)來驅(qū)動(dòng)?刂破鞯膬蓚(gè)重要的作用參考understanding linux kernelⅢ中的文字。
比較簡(jiǎn)單的設(shè)備,如中斷控制器,定時(shí)器等不需要對(duì)I/O接口的高級(jí)指令進(jìn)行二次解析和電平的轉(zhuǎn)換,所以不需要設(shè)備控制器。
I/o設(shè)備一般分為字符設(shè)備和塊設(shè)備。
編輯:admin 最后修改時(shí)間:2018-05-18