新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PC并行端口作為數字I/O口的應用

        PC并行端口作為數字I/O口的應用

        作者: 時間:2011-11-24 來源:網絡 收藏
          本文介紹PC在單片機等控制系統中作為數字I/O口的應用。在控制系統中,有許多的數字開關量、數字控制信號、數字信號等,都可以通過計算機進行采集;并將采集的數字信號經計算機處理后形成數字控制信號,再從計算機的輸出進行各種自動控制。

          一、PC并行端口介紹

          目前,計算機中的并行接口主要作為打印機端口,接口使用的不再是36針接頭而是25針D形接頭。所謂“并行”,是指8位數據同時通過并行線進行傳送,這樣數據傳送速度大大提高。

          現在常見的并口有五種:SPP型、PS/2型、EPP型、ECP型和多模式接口,大多數PC機配有SPP并口:

          SPP標準并行口有4位、8位、半8位:4位口一次只能輸入4位數據,但可以輸出8位數據;8位口可以一次輸入和輸出8位數據;半8位也可以。

          PS/2簡單雙向并行口:它引入雙向數據端口,這種雙向數據端口容許外設每次向PC機發送8位信息。PS/2型并口是指所有具有雙向數據端口,但不支持后面介紹的EPP或ECP模式的并行接口。

          EPP增強并行口:允許8位雙向數據傳送,它可以在大約1ms的時間內完成包括握手聯絡在內的一個字節的數據傳送;而SPP或SP/2接口則需要大約4ms才能完成同樣的工作。因此可以連接各種非打印機設備,如掃描儀、LAN適配器、磁盤驅動器和CDROM 驅動器等。

          ECP口擴展并行口:是雙向數據端口,并能以ISA總線速度傳送數據。ECP有緩沖區,支持命令周期、數據周期和多個邏輯設備尋址,在多任務環境下可以使用DMA(直接存儲器訪問)。

          多模式接口:許多新型接口支持多種模式,可以工作在以上提到的部分或全部模式下,用戶可以使用配置選擇,使用上述各種接口形式,或只使用其中一些而禁止其它。

          二、PC標準配備并行口介紹

          本文主要介紹計算機的標準配備并行端口即25針的母接頭端口的應用,在此基礎上可以運用相同的原理使用其它模式的并行端口。并行端口共有25支腳,但不是每支腳均被使用到。這些腳被區分為3種主要的功能,分別是用于數據的傳送、檢查打印機的狀態及控制打印機,其接口如下所示:

          

        PC并行端口作為數字I/O口的應用

          在PC機中,標準并行口使用3個8位的端口寄存器,PC就是通過對這些寄存器,也就是所說的數據、狀態、控制寄存器的讀寫訪問并口的信號的。本文中使用一些通用的叫法,8個數據位分別為D0~D7,5個狀態位為S3~S7,4個控制為C0~C3。其中字母表示了端口寄存器,數字則表示該信號在寄存器中的位。

          數據寄存器

          數據端口或稱數據寄存器(D0~D7)保存了寫入數據輸出端口的一字節信息。數據端口可以寫入數據,也可以讀出數據(即可擦寫);寫進去的當然是我們希望從數據端口引腳輸出的數據,不過讀進來的也只是我們上次寫進去的數據,或是原來保留在里面的數據,并不是從端口引腳輸入PC的數據。數據端口引腳是PIN2~PIN9,其定義如下:

          數據寄存器(即數據輸出端口) 可擦寫、基地址

          bit引腳:D-sub信號名信號源是否在連接器處倒相

          0Pin2D0PC否

          1Pin3D1PC否

          2Pin4D2PC否

          3Pin5D3PC否

          4Pin6D4PC否

          5Pin7D5PC否

          6Pin8D6PC否

          7Pin9D7PC否

          如果我們把這8支腳當成一般的數字輸出的腳位看待,上述8支腳就相當于是8個數字輸出的位置一般,我們就可以把它們當成是8個可以自由控制的輸出點。當我們通過數據端口傳送數據時,就是改變這8支腳的電平狀態;而接受方也按照相同的編碼原則解釋,就可以獲得傳送的數據。

          狀態寄存器

          狀態端口或稱狀態寄存器保存的是5個輸入(S3~S7)的邏輯狀態。S0~S2位不出現在并口連接器中。除了S0以外,狀態寄存器是只讀的,讀出數據信息是狀態端口引腳上的邏輯狀態。S0是支持EPP傳輸并口的超時標志信息,可以用軟件方法清零。在許多并口中,狀態輸入接有上拉電阻。狀態端口引腳是Pin10~Pin13、Pin15,其定義如下:

          狀態寄存器(即狀態輸入端口) 基地址+1

          bit引腳:D-sub信號名信號源是否在連接器處倒相

          0 Time-Out

          1 未使用

          2 未使用

          3Pin15nError(nFault)外設否

          4Pin13Select外設否

          5Pin12PaperEnd外設否

          6Pin10nAck外設否

          7Pin11Busy外設是

          上表中所謂的(基地址+1)指的是:如果我們的LPT地址是378H,在加上1就是379H;這個地址是專門用來傳遞打印機的狀態的。和數據地址比較起來不一樣的是,這里地址并非在連接器的腳位上均有對應點。在這個狀態的顯示上只有5個腳位有對應,位S0~S2是沒有的--最起碼是無法讓計算機有對應的值可讀取。

          如果打印機接到并口上,那么打印機的狀態將會通過這幾支腳傳送到PC,程序只要去基地址+1的位置讀取數值即可知道現在打印機所處的狀態。由于這幾支腳可以讓打印機傳送狀態給PC,那么我們可以把這幾支腳位拿來當作數字輸入的通道;我們可以讓這幾支腳位的狀態發生電位的改變,而利用程序去讀取這些腳位的數值,即可實現數據的輸入。

          控制寄存器

          控制端口或稱控制寄存器保存了C0~C3的4位的控制信息。C4~C7不出現在并口連接器中。一般來說,這些位被用來輸出,然而大多數SPP中,控制位為集電極開路/漏極開路模式,也就是說,它們同樣可以用作輸入。要從控制位上讀取外部邏輯信號,首先將向相應的輸出寫入“1”,然后讀取控制寄存器的值即可。但是,為了提高交換速度,大多數支持EPP和ECP接口中,控制位工作在不能用作輸入的推拉模式下。在一些多模式接口中,控制位采用的是改進型的推拉模式,可以用作輸入。控制端口引腳是Pin1、Pin14、Pin16和Pin17,其定義如下:

          控制寄存器(即控制輸出端口) 基地址+2

          bit引腳:D-sub信號名信號源是否在連接器處倒相

          0Pin1nStrobePC是

          1Pin14nAutoLFPC是

          2Pin16nInitPC否

          3Pin17nSelectInPC是

          4 IRQ

          5 未使用

          6 未使用

          7 未使用

          上表中所謂的(基地址+2)指的是:如果我們的LPT地址是378H,在加上1就是37AH;這個地址是專門用來控制打印機動作的。

          如同數據的送出,我們的程序只要將我們的信息送往(基地址+2)的地址去,就可以實現數據輸出,接受端在相應引腳就可以接受到相應的邏輯電位狀態。當控制端口的信號源為高電平時,這些引腳可以作為輸入引腳,如同狀態端口引腳一樣。

          在上述定義表格中,所謂“是否在連接器處倒相”是指并口硬件將連接器與相應寄存器位之間的4個信號進行了倒相處理。具體說來,S7、C0、C1、C3信號的邏輯狀態在連接器處是與相應寄存器位反相的。當你對這些位進行寫操作時,必須牢記寫入的值應該與你想在連接器處設置的值相反;當要對這些位進行讀操作時,也必須記住所讀取的值與連接器處的值相反。

          計算機的標準配備并行端口除以上介紹的數據端口引腳Pin2~Pin9、狀態端口引腳Pin15、Pin10~Pin13、控制端口引腳Pin1、Pin14、pin16、Pin17外,連接器上的 其它引腳Pin18~Pin25是歸地引腳GND。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 高清| 雷山县| 云梦县| 博兴县| 望谟县| 滨州市| 扶绥县| 平罗县| 寻甸| 河曲县| 屏南县| 洞头县| 额尔古纳市| 长丰县| 保定市| 隆安县| 嘉定区| 富宁县| 永济市| 长丰县| 天柱县| 乌鲁木齐市| 波密县| 陈巴尔虎旗| 荣昌县| 黔西县| 清河县| 卢湾区| 罗田县| 洪雅县| 吉木萨尔县| 昌邑市| 宜春市| 古田县| 宁波市| 林口县| 顺平县| 宕昌县| 兰州市| 南澳县| 木兰县|