• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      雙機(jī)并口雙工通信的設(shè)計(jì)與實(shí)現(xiàn)

      2017-04-26 23:39:26湯浩霖
      電腦知識(shí)與技術(shù) 2017年6期
      關(guān)鍵詞:雙機(jī)微機(jī)字符

      湯浩霖

      摘要:并行數(shù)據(jù)傳輸是以計(jì)算機(jī)字長(zhǎng)為單位的,適合微機(jī)與外部設(shè)備或微機(jī)與微機(jī)之間高速、近距離的通信。并行接口芯片8255A具有通用性強(qiáng)且使用靈活的特點(diǎn),CPU可通過(guò)該芯片直接與外設(shè)相連接。該文從硬件設(shè)計(jì)與軟件設(shè)計(jì)兩方面進(jìn)行了詳細(xì)的闡述,主要利用并行接口芯片8255A設(shè)計(jì)了兩臺(tái)微機(jī)之間的雙工通信接口電路,同時(shí)設(shè)計(jì)了雙機(jī)的通信程序,實(shí)現(xiàn)了雙機(jī)通過(guò)并口的雙工通信。

      關(guān)鍵詞:雙機(jī)并口通信;雙工;8255A

      中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)06-0069-03

      Abstract: The parallel data transmission is based on the computer word as a unit, suitable for high speed and short distance communication between the computer and the external device or computer with computer.The parallel interface chip 8255A has the characteristics of high universality and flexibility, and CPU can be connected directly with the peripheral devices. This paper gives a detailed exposition from two aspects of hardware design and software design, the main use of the parallel interface chip 8255A duplex communication interface circuit between two computer design, while the design of machine communication procedures, realizes the double duplex communication through parallel port.

      Key words: dual parallel communication; duplex; 8255A

      隨著時(shí)代的發(fā)展與科技的進(jìn)步,微型計(jì)算機(jī)的使用日益普及,愈來(lái)愈多的人使用微機(jī)來(lái)工作或者學(xué)習(xí)。在我們的日常工作或?qū)W習(xí)之中,計(jì)算機(jī)設(shè)備間的信息交換是必不可缺的。計(jì)算機(jī)系統(tǒng)的信息交換方式有并行數(shù)據(jù)傳輸方式和串行數(shù)據(jù)傳輸方式這兩種。其中,并行數(shù)據(jù)傳輸通常是以計(jì)算機(jī)的字長(zhǎng)(常見(jiàn)有8位、16位或32位)為傳輸單位的,在一次傳輸過(guò)程中傳輸?shù)臄?shù)據(jù)長(zhǎng)度為一個(gè)字長(zhǎng),因?yàn)槎辔粩?shù)據(jù)一起傳輸,所以并行具有傳輸速度快的優(yōu)點(diǎn)。8255A是與因特爾公司的微處理器配套的通用可編程并行接口芯片,因8255A具有通用性強(qiáng)、使用靈活的特點(diǎn),具有廣泛的應(yīng)用。本文主要利用并行接口芯片8255A設(shè)計(jì)了兩臺(tái)微機(jī)之間的雙工通信接口電路,并在接口電路的基礎(chǔ)之上,設(shè)計(jì)了雙機(jī)的通信程序,實(shí)現(xiàn)了雙機(jī)通過(guò)并口的雙工通信。

      1 雙機(jī)通信基本設(shè)計(jì)功能

      使用兩臺(tái)微機(jī)通過(guò)兩片并行接口芯片8255A進(jìn)行雙機(jī)通訊。將需要進(jìn)行通信的兩臺(tái)微機(jī)分別規(guī)定為甲機(jī)與乙機(jī)。在進(jìn)行通信時(shí),甲機(jī)在鍵盤(pán)上輸入信息后發(fā)送給乙機(jī),乙機(jī)接收甲機(jī)發(fā)來(lái)的信息并將其顯示在屏幕上,相同的,乙機(jī)也可以輸入信息后發(fā)送給甲機(jī),甲機(jī)接收乙機(jī)發(fā)來(lái)的信息后將其顯示在屏幕上。甲機(jī)在發(fā)送狀態(tài)下,可輸入事先選定的控制字符切換到接收狀態(tài),乙機(jī)接收到甲機(jī)發(fā)來(lái)的控制字符后,轉(zhuǎn)為發(fā)送狀態(tài);當(dāng)乙機(jī)在發(fā)送狀態(tài)時(shí),也可輸入控制字符切換到接收狀態(tài),甲機(jī)接收到乙機(jī)發(fā)來(lái)的控制字符后,轉(zhuǎn)為發(fā)送狀態(tài);以此來(lái)實(shí)現(xiàn)雙機(jī)收發(fā)的轉(zhuǎn)換,完成半雙工模式下的雙機(jī)通訊。當(dāng)按下ESC鍵時(shí),結(jié)束通訊退出程序。

      2 并行接口芯片8255A功能介紹

      并行接口芯片8255A是一種常用的芯片,本文主要圍繞該芯片進(jìn)行接口電路設(shè)計(jì),下面簡(jiǎn)單介紹該芯片的基本功能以及工作方式:

      1)8255A接口芯片是具有40個(gè)引腳的雙列直插式組件,有3個(gè)8位并行輸入輸入端口,可編程設(shè)置每個(gè)端口是輸入還是輸出。

      2)8255A接口芯片可以適應(yīng)CPU與輸入輸出接口之間多種數(shù)據(jù)傳送方式的要求。例如無(wú)條件傳送、查詢(xún)方式傳送、中斷方式傳送。和不同的傳送方式相對(duì)應(yīng),芯片有方式0、方式1和方式2三種工作方式。在工作方式1和方式2下,8255A的C口比較特殊,它的部分信號(hào)線被用作專(zhuān)門(mén)的聯(lián)絡(luò)應(yīng)答信號(hào)。

      3)8255A接口芯片共有以下三種工作方式:

      ①方式0:基本輸入輸出方式。在方式0下不使用聯(lián)絡(luò)信號(hào)與中斷,A口和B口都可作為輸入或輸出口,C口分成高四位與低四位,兩個(gè)部分也都可分別作為為輸入或輸出口。在方式0下,每個(gè)口輸出有鎖存,輸入只有緩沖,無(wú)鎖存。方式0常用于與外設(shè)無(wú)條件地傳送數(shù)據(jù)或外設(shè)數(shù)據(jù)的接收。

      ②方式1:選通輸入輸出方式。在方式1下,C口的某些位被占用,用作控制或狀態(tài)信號(hào)線。當(dāng)A口工作于方式1且用作輸出口時(shí),C口的PC7線用作輸出緩沖器滿(mǎn)信號(hào)OBF,PC6線用作外設(shè)收到數(shù)據(jù)后的響應(yīng)信號(hào)ACK,PC3線用作中斷請(qǐng)求輸出信號(hào)INTR。當(dāng)B口工作于方式1且用作輸出口時(shí),C口的PC1線用作輸出緩沖器滿(mǎn)OBF信號(hào),PC2線用作外設(shè)收到數(shù)據(jù)后的響應(yīng)信號(hào)ACK,PC0線用作中斷請(qǐng)求輸出信號(hào)INTR。

      ③方式2:雙向選通傳送方式。方式2是A口特有的工作方式。在該方式下,A口既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。C口的5條信號(hào)線用作控制和狀態(tài)信號(hào)線。

      3 硬件設(shè)計(jì)

      對(duì)于“并口雙機(jī)通訊”,我們很自然地想到使用兩臺(tái)微機(jī)通過(guò)兩片并行接口芯片8255A的連接來(lái)完成。當(dāng)甲機(jī)發(fā)送乙機(jī)接收時(shí),兩機(jī)采用端口A的8根數(shù)據(jù)線來(lái)傳輸數(shù)據(jù),甲機(jī)一側(cè)的8255端口A采用方式1工作,乙機(jī)一側(cè)的8255端口A采用方式0工作。當(dāng)乙機(jī)發(fā)送甲機(jī)接收時(shí),兩機(jī)采用端口B的8根數(shù)據(jù)線來(lái)傳輸數(shù)據(jù),乙機(jī)一側(cè)的8255端口B采用方式1工作,甲機(jī)一側(cè)的8255端口B采用方式0工作。

      在通訊中,接口電路不僅需要數(shù)據(jù)端口,還需要狀態(tài)端口。端口A在方式1輸出時(shí),用PC7和PC6分別固定作為聯(lián)絡(luò)線OBF和ACK,此時(shí)乙機(jī)8255的A口是方式0輸入工作,我們選用引腳PC4和PC3作為聯(lián)絡(luò)線。雖然兩側(cè)的8255都設(shè)置了C口的某些引腳作為聯(lián)絡(luò)線,但是有本質(zhì)上的差別。甲機(jī)的A口工作在方式1,其聯(lián)絡(luò)線是固定的不可替換的,而乙機(jī)的A口工作在方式0,其聯(lián)絡(luò)線是不固定的可選擇的。當(dāng)乙機(jī)8255的端口B在方式1輸出時(shí),用PC2和PC1作為聯(lián)絡(luò)線OBF和ACK,此時(shí)甲機(jī)8255的B口是方式0輸入工作,我們選用引腳PC4和PC2作為聯(lián)絡(luò)線。

      C口各聯(lián)絡(luò)信號(hào)的功能如下:

      OBF—輸出緩沖器滿(mǎn)信號(hào),低電平有效。當(dāng)信號(hào)有效時(shí),表示CPU已把數(shù)據(jù)輸出給A口,數(shù)據(jù)等待被取走。它由輸出信號(hào)WR的上升沿置成有效,由ACK的有效信號(hào)恢復(fù)為高電平。

      ACK—響應(yīng)信號(hào),低電平有效。這是接收方的8255A給出的應(yīng)答信號(hào),通知發(fā)送方8255A端口的數(shù)據(jù)已經(jīng)被接收。

      INTR—中斷請(qǐng)求信號(hào),高電平有效。當(dāng)接收方接收數(shù)據(jù)后,發(fā)送方的8255A輸出此信號(hào)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)提供數(shù)據(jù)。當(dāng)ACK為高,OBF為高,INTE為高(允許中斷)時(shí),使其有效,而寫(xiě)信號(hào)WR的下降沿使其復(fù)位。

      INTE—中斷允許位,由PC6的置位/復(fù)位信號(hào)控制。

      4 程序設(shè)計(jì)

      4.1 程序設(shè)計(jì)思路

      在兩臺(tái)微機(jī)某一次通信的過(guò)程中,可以把一臺(tái)微機(jī)視為發(fā)送方,而另一臺(tái)微機(jī)視為接收方,在這次通信結(jié)束后,可以進(jìn)行發(fā)送方與接收方的切換,使得剛才接收數(shù)據(jù)的微機(jī)可以發(fā)送數(shù)據(jù),剛才發(fā)送數(shù)據(jù)的微機(jī)可以接收數(shù)據(jù),實(shí)現(xiàn)雙機(jī)的半雙工通信。

      發(fā)送方基本工作過(guò)程:8255A的初始化并把相應(yīng)的控制位置位,讀取從鍵盤(pán)輸入的數(shù)據(jù);將讀入的第一個(gè)數(shù)據(jù)經(jīng)8255的A口發(fā)送給接收端;檢測(cè)接收端是否已接收數(shù)據(jù),若未接收則循環(huán)檢測(cè);若已接收則按前面的方式繼續(xù)發(fā)送數(shù)據(jù)。當(dāng)發(fā)送端輸入切換收發(fā)狀態(tài)的控制字符時(shí),發(fā)送端發(fā)送這個(gè)字符后進(jìn)入接收狀態(tài)。當(dāng)發(fā)送端發(fā)送ESC鍵時(shí),雙方一起退出運(yùn)行狀態(tài)。

      接收方基本工作過(guò)程:8255A的初始化并把相應(yīng)的控制位置位;檢測(cè)發(fā)送端是否有數(shù)據(jù)發(fā)送過(guò)來(lái),若沒(méi)有數(shù)據(jù)則循環(huán)檢測(cè),若有數(shù)據(jù)則向發(fā)送方發(fā)送已接收數(shù)據(jù)的信號(hào),然后把相關(guān)的控制位置1,通過(guò)8255的A口讀入數(shù)據(jù)并在顯示器上顯示出來(lái);此時(shí)如果接收端接收到發(fā)送端發(fā)送的切換收發(fā)狀態(tài)的控制字符,則進(jìn)入發(fā)送狀態(tài)。如果接收端接收到發(fā)送端的結(jié)束字符,則也相應(yīng)地退出。

      4.2 初始化程序

      本次設(shè)計(jì)中8255片選地址為288H~28BH

      1)甲機(jī)初始化8255:A口方式1輸出、B口方式0輸入

      mov dx,28BH

      mov al,0AAH

      out dx,al

      2)乙機(jī)初始化8255:A口方式0輸入、B口方式1輸出

      mov dx,28Bh

      mov al,9CH

      out dx,al

      4.3 C口聯(lián)絡(luò)信號(hào)控制

      對(duì)于C口上作為聯(lián)絡(luò)線的引腳電平,必須在程序中按照時(shí)序予以準(zhǔn)確的設(shè)置,對(duì)接收到的信號(hào)進(jìn)行正確的分析,判斷接收端與發(fā)送端的狀態(tài),在程序中安排正確的跳轉(zhuǎn)。若對(duì)于C口引腳信號(hào)沒(méi)有清楚的理解認(rèn)識(shí),是無(wú)法順利完成雙機(jī)的通訊。在本次設(shè)計(jì)中,這是非常重要的一點(diǎn)。

      下面以甲機(jī)為例說(shuō)明:

      1)在開(kāi)始發(fā)送前,對(duì)ACK信號(hào)(引腳PC6)置1:

      mov dx,28BH

      mov al,0dh

      out dx,al

      2)在開(kāi)始接收前,對(duì)ACK信號(hào)(引腳PC5)置1:

      mov dx,28bh

      mov al,05h

      out dx,al

      3)檢查接收端是否準(zhǔn)備好:

      mov dx,28Ah

      in al,dx

      and al,40h ;檢查對(duì)方發(fā)來(lái)的信息PC3→PC6是否為0

      jnz send ;若接收端準(zhǔn)備好接收,則至轉(zhuǎn)發(fā)送段

      4)檢查是否有要接收的數(shù)據(jù):

      mov dx,28Ah

      in al,dx

      and al,10h ;檢查PC4

      jnz Lr ;若PC4=1重復(fù)檢查

      (5)接收到數(shù)據(jù)后發(fā)送回答信號(hào):

      mov dx,28Bh ;發(fā)送回答信號(hào)ACK

      mov al,00000100b ;PC5置0

      out dx,al

      nop

      nop

      mov al,00000101b ;PC5置1

      out dx,al

      此處使用nop是為了延時(shí),使所產(chǎn)生的有效ACK信號(hào)(低電平)延續(xù)。

      4.4 發(fā)送與接收字符

      1)從鍵盤(pán)讀取要發(fā)送的字符:

      mov ah,0bh ;本機(jī)是否有任意鍵按下

      int 21h

      cmp al,0

      je l ;若無(wú)鍵按下,則等待

      mov ah,01 ;若有按鍵,回顯至屏幕

      int 21h

      mov bl,al ;將按鍵字符保存至bl

      send:mov dx,288h ;發(fā)送按鍵字符

      mov al,bl

      out dx,al

      2)從數(shù)據(jù)端口讀取字符,并顯示在屏幕上:

      mov dx,288h ;A口輸入

      in al,dx

      mov dl,al

      mov ah,02h ;顯示1個(gè)字符

      int 21h

      4.5 收發(fā)狀態(tài)轉(zhuǎn)換

      當(dāng)甲機(jī)為發(fā)送方,乙機(jī)為接收方,雙方需要進(jìn)行收發(fā)的轉(zhuǎn)換時(shí):

      1)甲機(jī)發(fā)送“!”字符,由發(fā)送變?yōu)榻邮眨?/p>

      mov dx,288h ;發(fā)送按鍵字符

      mov al,bl

      out dx,al

      cmp al,21h ;字符是否是轉(zhuǎn)換方式字符

      jz receive ;若是則進(jìn)入接收

      2)在轉(zhuǎn)換時(shí)一定要加延時(shí),此處加入一個(gè)較大的延時(shí)來(lái)保證轉(zhuǎn)換成功;同時(shí)需要往A口寫(xiě)入一個(gè)其他的字符碼,否則之后的轉(zhuǎn)換乙機(jī)會(huì)出現(xiàn)問(wèn)題:

      receive:

      ddelay:mov cx,65535

      lopp: loop lopp

      mov dx,288h

      mov al,0

      out dx,al

      3)乙機(jī)收到控制字符,由接收變?yōu)榘l(fā)送:

      mov dx,288h ;A口輸入

      in al,dx

      cmp al,1bh ;若是ESC鍵?則退出

      jz over

      cmp al,21H ;是否轉(zhuǎn)發(fā)送

      jz ssee

      5 調(diào)試結(jié)果

      在完成軟硬件的設(shè)計(jì)后,開(kāi)始進(jìn)行調(diào)試工作。分別在兩臺(tái)微機(jī)上同時(shí)運(yùn)行通信程序,開(kāi)始時(shí)先設(shè)甲機(jī)為發(fā)送端,乙機(jī)為接收端。此時(shí),甲機(jī)屏幕上顯示“ Please input char: ”,提示用戶(hù)鍵入信息;乙機(jī)屏幕上顯示:”Now receiving ,please wait... ”,提示正在等待接收信息。在甲機(jī)鍵盤(pán)上輸入字符,被鍵入的字符會(huì)同時(shí)顯示在乙機(jī)的屏幕上。若甲機(jī)發(fā)送完畢,則鍵入預(yù)先設(shè)置的狀態(tài)切換字符 ”!” ,甲乙兩機(jī)切換發(fā)送接收狀態(tài)。此時(shí)乙機(jī)屏幕上顯示:“ Now input char: ”,甲機(jī)屏幕上顯示:”Now receiving char... ”。在乙機(jī)鍵盤(pán)上輸入字符,字符可同時(shí)顯示在甲機(jī)的屏幕上。若向乙機(jī)輸入預(yù)先設(shè)置的切換狀態(tài)字符 ”@” ,則兩機(jī)再次切換收發(fā)狀態(tài)。按下ECS則退出程序,結(jié)束通訊。

      運(yùn)行結(jié)果符合預(yù)期,通過(guò)簡(jiǎn)單的人機(jī)交互,實(shí)現(xiàn)了雙機(jī)通信的功能,達(dá)到了滿(mǎn)意的效果。

      參考文獻(xiàn):

      [1] 郭蘭英, 趙祥模. 微機(jī)原理與接口技術(shù)[M]. 2版. 北京:清華大學(xué)出版社, 2006.

      [2] 錢(qián)曉捷, 陳濤. 16/32位微機(jī)原理與接口技術(shù)[M]. 北京:機(jī)械工業(yè)出版社, 2005.

      [3] 陳益飛, 周鋒. 微機(jī)原理與接口技術(shù)[M]. 北京:國(guó)防工業(yè)出版社, 2013.

      猜你喜歡
      雙機(jī)微機(jī)字符
      基于雙機(jī)并車(chē)推進(jìn)型式的接排特性研究
      尋找更強(qiáng)的字符映射管理器
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      雙機(jī)、雙槳軸系下水前的安裝工藝
      Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
      消失的殖民村莊和神秘字符
      雙機(jī)牽引ZDJ9道岔不同步問(wèn)題的處理
      Loader軸在雙機(jī)桁架機(jī)械手上的應(yīng)用
      電力系統(tǒng)微機(jī)保護(hù)裝置的抗干擾措施
      齐河县| 绿春县| 唐海县| 三江| 合水县| 尉氏县| 尉犁县| 鄂尔多斯市| 公主岭市| 南涧| 六安市| 安溪县| 淮南市| 石景山区| 安阳县| 时尚| 额尔古纳市| 宜宾县| 嫩江县| 灵武市| 合水县| 乐亭县| 佛山市| 海晏县| 雅安市| 衢州市| 洛扎县| 水富县| 平阳县| 韶山市| 和政县| 恩施市| 花莲县| 宝丰县| 长白| 湘西| 绵阳市| 五指山市| 白山市| 司法| 大洼县|