基于增強型并行口的智能儀表與微機的高速通訊
介紹計算機增強型并行口的信號,論述單片機控制的儀器儀表經(jīng)增強型并行口與微機通訊時(shí)的信號連接方式及通訊軟件設計方法。
關(guān)鍵詞:增強型并行口;微機;單片機;高速通訊
High speed Communication between an Intelligent Instrumentation
and a PC based on EPP
and a PC based on EPP
SHI Yanling, ZOU Laizhi, YAN Zhiqiang
(Engineer Command Academy, Xuzhou 221004, China)
Key words: EPP; PC; microcontroller; high?speed communication
1EPP信號
微型計算機的新型并行口電路主要由狀態(tài)寄存器、控制寄存器、地址寄存器、數據寄存器等組成。工作在增強型并行口EPP模式且“基地址”為378H時(shí),狀態(tài)寄存器、控制寄存器、地址寄存器、數據寄存器的地址分別為379H、37AH、37BH、37CH。EPP信號與這4個(gè)寄存器密切相關(guān)。
WRITE信號:主機并行口插孔1,輸出,低電平寫(xiě),高電平讀。當控制寄存器的D0位為0時(shí),若向數據寄存器/地址寄存器發(fā)送一條I/O指令,則產(chǎn)生WRITE信號。
AD0~AD7信號:并行口插孔2~9,雙向數據/地址線(xiàn),對應于數據寄存器/地址寄存器的D0~D7位,用于傳輸數據/地址。
INTR信號:并行口插孔10,輸入,外部設備中斷請求信號,上升沿有效。當控制寄存器的D4位為1時(shí),才允許并行口向主機傳送來(lái)自外設的中斷請求信號IRQ7。狀態(tài)寄存器D6位取值與INTR信號相同。
WAIT信號:并行口插孔11,輸入,握手信號,低可以開(kāi)始一個(gè)周期,高可以結束一個(gè)周期(EPP1.9標準時(shí))。狀態(tài)寄存器的D7位取值與WAIT信號相反。
USER1、USER2、USER3信號:分別為并行口插孔12、13、15,輸入,用戶(hù)定義。狀態(tài)寄存器的D3、D4、D5位取值分別與USER3、USER2、USER1取值相同。
DATASTB信號:并行口插孔14,輸出,低有效,表示正在進(jìn)行數據讀/寫(xiě)操作。當控制寄存器的D1位為0時(shí),若向數據寄存器發(fā)送一條I/O指令,則產(chǎn)生DATASTB信號。
RESET信號:并行口插孔16,輸出,低有效,為外部設備復位信號。當控制寄存器的D2位為1時(shí),產(chǎn)生RESET信號。
ADDRSTB信號:并行口插孔17,輸出,低有效,表示正在進(jìn)行地址讀/寫(xiě)操作。當控制寄存器的D3位為0時(shí),若向地址寄存器發(fā)送一條I/O指令,則產(chǎn)生ADDRSTB信號。
GND信號:并行口插孔18,地線(xiàn),所有信號公共端。
在EPP模式下,對EPP控制寄存器的各位寫(xiě)入規定的值后,再用一個(gè)I/O指令向EPP的數據寄存器/地址寄存器傳輸一個(gè)字節的數據/地址,EPP電路則會(huì )自動(dòng)處理握手信號,并自動(dòng)產(chǎn)生時(shí)序信號[1],即信號的產(chǎn)生是靠硬件而不是軟件,這就是EPP能高速傳輸數據的原因。?
微型計算機的新型并行口電路主要由狀態(tài)寄存器、控制寄存器、地址寄存器、數據寄存器等組成。工作在增強型并行口EPP模式且“基地址”為378H時(shí),狀態(tài)寄存器、控制寄存器、地址寄存器、數據寄存器的地址分別為379H、37AH、37BH、37CH。EPP信號與這4個(gè)寄存器密切相關(guān)。
WRITE信號:主機并行口插孔1,輸出,低電平寫(xiě),高電平讀。當控制寄存器的D0位為0時(shí),若向數據寄存器/地址寄存器發(fā)送一條I/O指令,則產(chǎn)生WRITE信號。
AD0~AD7信號:并行口插孔2~9,雙向數據/地址線(xiàn),對應于數據寄存器/地址寄存器的D0~D7位,用于傳輸數據/地址。
INTR信號:并行口插孔10,輸入,外部設備中斷請求信號,上升沿有效。當控制寄存器的D4位為1時(shí),才允許并行口向主機傳送來(lái)自外設的中斷請求信號IRQ7。狀態(tài)寄存器D6位取值與INTR信號相同。
WAIT信號:并行口插孔11,輸入,握手信號,低可以開(kāi)始一個(gè)周期,高可以結束一個(gè)周期(EPP1.9標準時(shí))。狀態(tài)寄存器的D7位取值與WAIT信號相反。
USER1、USER2、USER3信號:分別為并行口插孔12、13、15,輸入,用戶(hù)定義。狀態(tài)寄存器的D3、D4、D5位取值分別與USER3、USER2、USER1取值相同。
DATASTB信號:并行口插孔14,輸出,低有效,表示正在進(jìn)行數據讀/寫(xiě)操作。當控制寄存器的D1位為0時(shí),若向數據寄存器發(fā)送一條I/O指令,則產(chǎn)生DATASTB信號。
RESET信號:并行口插孔16,輸出,低有效,為外部設備復位信號。當控制寄存器的D2位為1時(shí),產(chǎn)生RESET信號。
ADDRSTB信號:并行口插孔17,輸出,低有效,表示正在進(jìn)行地址讀/寫(xiě)操作。當控制寄存器的D3位為0時(shí),若向地址寄存器發(fā)送一條I/O指令,則產(chǎn)生ADDRSTB信號。
GND信號:并行口插孔18,地線(xiàn),所有信號公共端。
在EPP模式下,對EPP控制寄存器的各位寫(xiě)入規定的值后,再用一個(gè)I/O指令向EPP的數據寄存器/地址寄存器傳輸一個(gè)字節的數據/地址,EPP電路則會(huì )自動(dòng)處理握手信號,并自動(dòng)產(chǎn)生時(shí)序信號[1],即信號的產(chǎn)生是靠硬件而不是軟件,這就是EPP能高速傳輸數據的原因。?
EPP與AT89、MCS-51及兼容系列單片機的信號連接如圖1所示。由于EPP信號、單片機引腳信號都與TTL兼容,所以二者的信號線(xiàn)可以直接相連。
為實(shí)現PC與單片機間的雙向字節數據傳送,把EPP的AD0~AD7與單片機的P1.0~P1.7(P1口)對應連接。
單片機向PC發(fā)送數據或從PC接收數據,需經(jīng)EPP向PC發(fā)送中斷請求信號,同時(shí)還要告訴PC是發(fā)送數據還是接收數據,為此需把INTR與P3.2相連。當P3.2由0變?yōu)?時(shí),向PC發(fā)送中斷請求信號;當P3.2為0時(shí),讓PC發(fā)送數據;當P3.2為1時(shí),讓PC接收數據。
為實(shí)現PC與單片機間的雙向字節數據傳送,把EPP的AD0~AD7與單片機的P1.0~P1.7(P1口)對應連接。
單片機向PC發(fā)送數據或從PC接收數據,需經(jīng)EPP向PC發(fā)送中斷請求信號,同時(shí)還要告訴PC是發(fā)送數據還是接收數據,為此需把INTR與P3.2相連。當P3.2由0變?yōu)?時(shí),向PC發(fā)送中斷請求信號;當P3.2為0時(shí),讓PC發(fā)送數據;當P3.2為1時(shí),讓PC接收數據。

在雙向通訊過(guò)程中,PC還向單片機提供握手信號,為此把DATASTB與P3.3相連。當DATSTB(PC讀/寫(xiě)EPP數據寄存器時(shí)自動(dòng)產(chǎn)生)為0時(shí),讓單片機讀/寫(xiě)P1口。
3.1PC收/發(fā)數據
主要設計思想:主程序中,把控制字19H寫(xiě)入EPP的控制寄存器,即允許產(chǎn)生DATASTB信號及允許并行口中斷。當PC接到單片機發(fā)來(lái)的中斷請求信號IRQ7并響應中斷后,中斷服務(wù)程序先讀取EPP狀態(tài)寄存器的D6位(與INTR值相同)值。當該位值為0時(shí),PC執行發(fā)送數據子程序;當該位值為1時(shí),PC執行接收數據子程序。在收/發(fā)數據子程序中,通過(guò)查詢(xún)的方法可收/發(fā)多個(gè)字節數據;當WAIT(與EPP狀態(tài)寄存器的D7位取值相反)為0時(shí),PC讀/寫(xiě)EPP的數據寄存器,同時(shí)EEP自動(dòng)產(chǎn)生DATASTB信號(由1變0),讓單片機寫(xiě)/讀P1口。程序清單如下。

?



3.2單片機收/發(fā)數據
主要設計思想:?jiǎn)纹瑱C經(jīng)P3.2(由0變1)向PC發(fā)送通訊中斷請求信號并發(fā)送收/發(fā)數據標志;*在收/發(fā)數據子程序中通過(guò)查詢(xún)的方法可收/發(fā)多個(gè)字節數據。當查詢(xún)到EPP的DATASTB為0時(shí),寫(xiě)/讀P1口,并經(jīng)P3.4向PC發(fā)送握手信號(P3.4為0),讓PC讀/寫(xiě)EPP的數據寄存器。程序清單如下。


主要設計思想:主程序中,把控制字19H寫(xiě)入EPP的控制寄存器,即允許產(chǎn)生DATASTB信號及允許并行口中斷。當PC接到單片機發(fā)來(lái)的中斷請求信號IRQ7并響應中斷后,中斷服務(wù)程序先讀取EPP狀態(tài)寄存器的D6位(與INTR值相同)值。當該位值為0時(shí),PC執行發(fā)送數據子程序;當該位值為1時(shí),PC執行接收數據子程序。在收/發(fā)數據子程序中,通過(guò)查詢(xún)的方法可收/發(fā)多個(gè)字節數據;當WAIT(與EPP狀態(tài)寄存器的D7位取值相反)為0時(shí),PC讀/寫(xiě)EPP的數據寄存器,同時(shí)EEP自動(dòng)產(chǎn)生DATASTB信號(由1變0),讓單片機寫(xiě)/讀P1口。程序清單如下。





3.2單片機收/發(fā)數據
主要設計思想:?jiǎn)纹瑱C經(jīng)P3.2(由0變1)向PC發(fā)送通訊中斷請求信號并發(fā)送收/發(fā)數據標志;*在收/發(fā)數據子程序中通過(guò)查詢(xún)的方法可收/發(fā)多個(gè)字節數據。當查詢(xún)到EPP的DATASTB為0時(shí),寫(xiě)/讀P1口,并經(jīng)P3.4向PC發(fā)送握手信號(P3.4為0),讓PC讀/寫(xiě)EPP的數據寄存器。程序清單如下。


評論