新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于增強(qiáng)型并行口的智能儀表與微機(jī)的高速通訊

基于增強(qiáng)型并行口的智能儀表與微機(jī)的高速通訊

作者: 時間:2011-11-30 來源:網(wǎng)絡(luò) 收藏

基于與微機(jī)的

介紹計(jì)算機(jī)的信號,論述單片機(jī)控制的儀器儀表經(jīng)與微機(jī)通訊時的信號連接方式及通訊軟件設(shè)計(jì)方法。
  關(guān)鍵詞:增強(qiáng)型并行口;微機(jī);單片機(jī);

High speed Communication between an Intelligent Instrumentation
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信號
  微型計(jì)算機(jī)的新型并行口電路主要由狀態(tài)寄存器、控制寄存器、地址寄存器、數(shù)據(jù)寄存器等組成。工作在增強(qiáng)型并行口EPP模式且“基地址”為378H時,狀態(tài)寄存器、控制寄存器、地址寄存器、數(shù)據(jù)寄存器的地址分別為379H、37AH、37BH、37CH。EPP信號與這4個寄存器密切相關(guān)。
  WRITE信號:主機(jī)并行口插孔1,輸出,低電平寫,高電平讀。當(dāng)控制寄存器的D0位為0時,若向數(shù)據(jù)寄存器/地址寄存器發(fā)送一條I/O指令,則產(chǎn)生WRITE信號。
  AD0~AD7信號:并行口插孔2~9,雙向數(shù)據(jù)/地址線,對應(yīng)于數(shù)據(jù)寄存器/地址寄存器的D0~D7位,用于傳輸數(shù)據(jù)/地址。
  INTR信號:并行口插孔10,輸入,外部設(shè)備中斷請求信號,上升沿有效。當(dāng)控制寄存器的D4位為1時,才允許并行口向主機(jī)傳送來自外設(shè)的中斷請求信號IRQ7。狀態(tài)寄存器D6位取值與INTR信號相同。
  WAIT信號:并行口插孔11,輸入,握手信號,低可以開始一個周期,高可以結(jié)束一個周期(EPP1.9標(biāo)準(zhǔn)時)。狀態(tài)寄存器的D7位取值與WAIT信號相反。
  USER1、USER2、USER3信號:分別為并行口插孔12、13、15,輸入,用戶定義。狀態(tài)寄存器的D3、D4、D5位取值分別與USER3、USER2、USER1取值相同。
  DATASTB信號:并行口插孔14,輸出,低有效,表示正在進(jìn)行數(shù)據(jù)讀/寫操作。當(dāng)控制寄存器的D1位為0時,若向數(shù)據(jù)寄存器發(fā)送一條I/O指令,則產(chǎn)生DATASTB信號。
  RESET信號:并行口插孔16,輸出,低有效,為外部設(shè)備復(fù)位信號。當(dāng)控制寄存器的D2位為1時,產(chǎn)生RESET信號。
  ADDRSTB信號:并行口插孔17,輸出,低有效,表示正在進(jìn)行地址讀/寫操作。當(dāng)控制寄存器的D3位為0時,若向地址寄存器發(fā)送一條I/O指令,則產(chǎn)生ADDRSTB信號。
  GND信號:并行口插孔18,地線,所有信號公共端。
  在EPP模式下,對EPP控制寄存器的各位寫入規(guī)定的值后,再用一個I/O指令向EPP的數(shù)據(jù)寄存器/地址寄存器傳輸一個字節(jié)的數(shù)據(jù)/地址,EPP電路則會自動處理握手信號,并自動產(chǎn)生時序信號[1],即信號的產(chǎn)生是靠硬件而不是軟件,這就是EPP能高速傳輸數(shù)據(jù)的原因。?
  EPP與AT89、MCS-51及兼容系列單片機(jī)的信號連接如圖1所示。由于EPP信號、單片機(jī)引腳信號都與TTL兼容,所以二者的信號線可以直接相連。
  為實(shí)現(xiàn)PC與單片機(jī)間的雙向字節(jié)數(shù)據(jù)傳送,把EPP的AD0~AD7與單片機(jī)的P1.0~P1.7(P1口)對應(yīng)連接。
  單片機(jī)向PC發(fā)送數(shù)據(jù)或從PC接收數(shù)據(jù),需經(jīng)EPP向PC發(fā)送中斷請求信號,同時還要告訴PC是發(fā)送數(shù)據(jù)還是接收數(shù)據(jù),為此需把INTR與P3.2相連。當(dāng)P3.2由0變?yōu)?時,向PC發(fā)送中斷請求信號;當(dāng)P3.2為0時,讓PC發(fā)送數(shù)據(jù);當(dāng)P3.2為1時,讓PC接收數(shù)據(jù)。
?
  在雙向通訊過程中,PC還向單片機(jī)提供握手信號,為此把DATASTB與P3.3相連。當(dāng)DATSTB(PC讀/寫EPP數(shù)據(jù)寄存器時自動產(chǎn)生)為0時,讓單片機(jī)讀/寫P1口。
3.1PC收/發(fā)數(shù)據(jù)
  主要設(shè)計(jì)思想:主程序中,把控制字19H寫入EPP的控制寄存器,即允許產(chǎn)生DATASTB信號及允許并行口中斷。當(dāng)PC接到單片機(jī)發(fā)來的中斷請求信號IRQ7并響應(yīng)中斷后,中斷服務(wù)程序先讀取EPP狀態(tài)寄存器的D6位(與INTR值相同)值。當(dāng)該位值為0時,PC執(zhí)行發(fā)送數(shù)據(jù)子程序;當(dāng)該位值為1時,PC執(zhí)行接收數(shù)據(jù)子程序。在收/發(fā)數(shù)據(jù)子程序中,通過查詢的方法可收/發(fā)多個字節(jié)數(shù)據(jù);當(dāng)WAIT(與EPP狀態(tài)寄存器的D7位取值相反)為0時,PC讀/寫EPP的數(shù)據(jù)寄存器,同時EEP自動產(chǎn)生DATASTB信號(由1變0),讓單片機(jī)寫/讀P1口。程序清單如下。
  
 ?
 
 
 
3.2單片機(jī)收/發(fā)數(shù)據(jù)
  主要設(shè)計(jì)思想:單片機(jī)經(jīng)P3.2(由0變1)向PC發(fā)送通訊中斷請求信號并發(fā)送收/發(fā)數(shù)據(jù)標(biāo)志;*在收/發(fā)數(shù)據(jù)子程序中通過查詢的方法可收/發(fā)多個字節(jié)數(shù)據(jù)。當(dāng)查詢到EPP的DATASTB為0時,寫/讀P1口,并經(jīng)P3.4向PC發(fā)送握手信號(P3.4為0),讓PC讀/寫EPP的數(shù)據(jù)寄存器。程序清單如下。
 
 


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉