10.1. 準(zhǔn)備并口

2018-02-24 15:50 更新

10.1.?準(zhǔn)備并口

盡管并口簡單, 它能夠觸發(fā)中斷. 這個(gè)能力被打印機(jī)用來通知 lp 驅(qū)動(dòng)它準(zhǔn)備好接收緩存中的下一個(gè)字符.

如同大部分設(shè)備, 并口實(shí)際上不產(chǎn)生中斷, 在它被指示這樣作之前; 并口標(biāo)準(zhǔn)規(guī)定設(shè)置 port 2 (0x37a, 0x27a, 或者任何)的 bit 4 就使能中斷報(bào)告. short 在模塊初始化時(shí)進(jìn)行一個(gè)簡單的 outb 調(diào)用來設(shè)置這個(gè)位.

一旦中斷使能, 任何時(shí)候在管腳 10 (所謂的 ACK 位)上的電信號(hào)從低變到高, 并口產(chǎn)生一個(gè)中斷. 最簡單的方法來強(qiáng)制接口產(chǎn)生中斷( 沒有掛一個(gè)打印機(jī)到端口 )是連接并口連接器的管腳 9 和 管腳 10. 一根短線, 插到你的系統(tǒng)后面的并口連接器的合適的孔中, 就建立這個(gè)連接. 并口外面的管腳圖示于圖并口的管腳

管腳 9 是并口數(shù)據(jù)字節(jié)的最高位. 如果你寫二進(jìn)制數(shù)據(jù)到 /dev/short0, 你產(chǎn)生幾個(gè)中斷. 然而, 寫 ASCII 文本到這個(gè)端口不會(huì)產(chǎn)生任何中斷, 因?yàn)?ASCII 字符集沒有最高位置位的項(xiàng).

如果你寧愿避免連接管腳到一起, 而你手上確實(shí)有一臺(tái)打印機(jī), 你可用使用一個(gè)真正的打印機(jī)來運(yùn)行例子中斷處理, 如同下面展示的. 但是, 注意我們介紹的探測函數(shù)依賴管腳 9 和管腳 10 之間的跳線在位置上, 并且你需要它使用你的代碼來試驗(yàn)探測.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)