版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
6.1并行接口
6.2串行接口
6.3網(wǎng)絡(luò)接口
6.4微機(jī)接口芯片組介紹
6.5本章小結(jié)
習(xí)題與思考題6.1.1并行接口芯片8255A
8255A是為Intel公司的微處理器配套的通用可編程并行接口芯片,其基本功能如下:
(1)?8255A接口芯片有三個8位并行輸入/輸出端口,可利用編程方法設(shè)置三個端口為輸入端口或輸出端口。
(2)?8255A能適應(yīng)CPU與I/O接口之間的多種數(shù)據(jù)傳送方式的要求,如無條件傳送、查詢方式傳送、中斷方式傳送等。與此相應(yīng),8255A設(shè)置了方式0、方式1以及方式2。
8255A的C口比較特殊,除作數(shù)據(jù)口外,在方式1和方式2下,它的部分信號線被分配作專用的聯(lián)絡(luò)應(yīng)答信號。6.1并行接口
1.?8255A的外部引腳
8255A為40引腳、雙列直插式封裝結(jié)構(gòu),其引腳如圖6.1所示。
各引腳功能如下:
(1)?D0~D7:8位雙向數(shù)據(jù)總線。
(2)?PA0~PA7:端口A的I/O引線。
(3)?PB0~PB7:端口B的I/O引線。
(4)?PC0~PC3:端口C的低4位I/O引線。
(5)?PC4~PC7:端口C的高4位I/O引線。
(6)?A1、A0:地址引線。圖6.18255A的引腳圖
(7)?RESET:復(fù)位輸入信號,高電平有效。復(fù)位時清除內(nèi)部控制寄存器,同時將三個I/O端口全部設(shè)為輸入。
(8)?:片選信號。=0時,將內(nèi)部數(shù)據(jù)總線與系統(tǒng)總線連接在一起,該芯片被選中,允許工作。
(9)?:讀輸入控制信號。=0時,配合信號讀取8255A內(nèi)部寄存器的值。
(10):寫輸出控制信號。=0時,配合信號將CPU處理器數(shù)據(jù)寫入8255A內(nèi)。
(11)?VCC:電源,+5V電源輸入。
(12)?GND:電源地。
8255A的三個數(shù)據(jù)端口與外設(shè)相連接的引腳共有24位。其中,C口的8個I/O引腳(PC0~PC7)有若干位用于“聯(lián)絡(luò)”信號或狀態(tài)信號,其具體定義與端口的工作方式有關(guān),可將工作方式控制字寫入控制端口進(jìn)行定義。8255A與CPU連接的引腳有數(shù)據(jù)總線D0~D7、讀/寫控制線和、復(fù)位線RESET、片選信號線以及端口地址控制線A1和A0。
一般情況下,CPU的數(shù)據(jù)總線及其讀/寫控制線直接與8255A的D0~D7及和相連接。RESET線為高電平有效,因8086CPU是高電平復(fù)位的,所以可以直接和8086CPU的復(fù)位線相連。當(dāng)然,有時為了便于調(diào)試,8255A復(fù)位電路與8086CPU的復(fù)位電路是分開的。
2.?8255A的內(nèi)部結(jié)構(gòu)
8255A的內(nèi)部結(jié)構(gòu)如圖6.2所示。8255A有三個可編程控制的8位并行I/O接口,共提供24條I/O控制引腳。一般情況下,端口A或端口B作為I/O的數(shù)據(jù)端口,而端口C則作為控制或狀態(tài)信息的端口。C口在“方式”字的控制下,可分成兩個4位端口,每個端口包含一個4位鎖存器,分別與端口A和端口B配合使用,可用作控制信號的輸出,或作為狀態(tài)信號的輸入。
A組控制電路控制端口A和端口C的上半部(PC7~PC4)。
B組控制電路控制端口B和端口C的下半部(PC3~PC0)。
雙向三態(tài)的8位數(shù)據(jù)緩沖器實現(xiàn)8255A與CPU之間的數(shù)據(jù)傳輸接口。CPU執(zhí)行輸出指令時,可將控制字或數(shù)據(jù)通過該緩沖器送給8255A的控制口或數(shù)據(jù)口;CPU執(zhí)行輸入指令時,8255A可將數(shù)據(jù)端口的狀態(tài)信息或數(shù)據(jù)通過它傳送給CPU。因此,數(shù)據(jù)緩沖器是CPU與8255A交換信息的必經(jīng)之路。
8255A的讀/寫控制電路接收來自CPU的控制命令,并根據(jù)命令向片內(nèi)每個功能部件發(fā)出操作命令。例如,片選信號
為低電平時,表示8255A芯片被選中,該片選信號是由CPU的地址線通過譯碼器譯碼產(chǎn)生的。讀/寫信號和控制8255A與CPU之間的數(shù)據(jù)或信息傳輸方向。端口選擇控制則由A1、A0的組合狀態(tài)提供,由這兩個控制信號可提供4個端口地址,即A、B、C三個端口地址及一個控制口地址。8255A可用RESET控制信號復(fù)位,當(dāng)該控制信號有效時,清除8255A中的所有控制寄存器內(nèi)容,并將各端口置成輸入方式。圖6.28255A的內(nèi)部結(jié)構(gòu)圖
3.端口地址
8255A中有三個I/O端口,另外,其內(nèi)部還有一個控制字寄存器,用地址總線A1、A0尋址4個端口。A1、A0和、
及的組合可實現(xiàn)的各種功能如表6.1所示。為“1”或、同時為1,所有數(shù)據(jù)口為高阻狀態(tài)。表6.18255A的控制器地址表6.1中×表示任意值,與8255A的具體地址有關(guān)。
PC/XT機(jī)中,A口、B口、C口以及控制寄存器的地址分別是60H、61H、62H和63H。
4.?8255A的工作方式字
8255A有三種工作方式:方式0、方式1、方式2。
1)方式0
方式0又稱基本I/O方式。在這種工作方式下,A、B、C三個端口都可用作I/O,但不能既作輸入又作輸出。端口C分為兩部分,即高4位和低4位,用來設(shè)置傳輸方向。
2)方式1
方式1又稱選通I/O方式。只有端口A、端口B可工作于此方式,端口C用于提供聯(lián)絡(luò)信號。
3)方式2
方式2又稱雙向傳輸方式。只有端口A可編程為雙向傳輸方式。通過C口的高5位進(jìn)行控制,此時A口既可作輸入也可作輸出,而PC0~PC2及B口可工作于方式0。具體可由適當(dāng)?shù)墓ぷ髅钭謥碓O(shè)定。圖6.3所示為8255A的控制字示意圖。圖6.38255A的控制字示意圖此外,8255A對端口C具有置位/復(fù)位功能,只要使用一個輸出控制指令便可完成位控的目的,可以設(shè)置對象的狀態(tài)??刂谱纸M的D7為0時,端口C具有位處理功能,具體設(shè)置如圖6.4所示圖6.4C口置1/置0的控制字格式
5.?8255A的編程控制字
1)方式0
方式0主要工作在無條件的I/O方式下,在這種工作方式下,不需要“聯(lián)絡(luò)”信號。A口、B口、C口均可工作在此方式下。C口的輸出位可由用戶直接獨(dú)立設(shè)置“0”或“1”。此時,各個端口的功能是固定不變的,不能用程序來設(shè)定,控制字格式可參見圖6.3及圖6.4。
2)方式1
方式1主要工作在異步或條件傳輸方式(需要先檢查狀態(tài),然后才能傳輸數(shù)據(jù))下。僅有A口、B口可工作在此方式。由于條件傳輸需要聯(lián)絡(luò)線,因此在方式1下,C口的某些位分別為A口和B口提供三根聯(lián)絡(luò)線。
◆輸入
方式1輸入時,8255A的輸入組態(tài)如圖6.5所示。圖6.58255A在方式1下的輸入組態(tài)各控制信號的意義如下:
(1):選通輸入,低電平有效,這是由外設(shè)提供的輸入信號,當(dāng)其有效時,由輸入設(shè)備來的數(shù)據(jù)將送入端口的輸入鎖存器。
(2)?IBF:輸入緩沖器滿信號,高電平有效。這是由8255A輸出的狀態(tài)信號,當(dāng)其有效時,表明數(shù)據(jù)已輸入至鎖存器。
(3)?INTR:中斷請求信號,高電平有效。當(dāng)某輸入設(shè)備請求服務(wù)時,8255A就由INTR輸出端輸出高電平,向CPU提供中斷請求信號,用來請求CPU為其服務(wù)。當(dāng)、IBF和INTE都為高電平時,INTR輸出才為高電平。
(4)?INTEA:端口A中斷允許信號。由PC4的置位/復(fù)位來控制,PC4?=?1時,允許端口A中斷。
(5)?INTEB:端口B中斷允許信號。由PC2的置位/復(fù)位來控制,PC2?=?1時,允許端口B中斷。
在方式1輸入時,端口C的PC6和PC7兩位是空閑的,如果要利用它們,可用方式控制字中的D3來設(shè)定。
方式1下的輸入時序圖如圖6.6所示。圖6.68255A工作在方式1輸入時的“聯(lián)絡(luò)”信號時序圖其信號交接過程如下:
(1)數(shù)據(jù)輸入時,外設(shè)處于主動地位,當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)并放到數(shù)據(jù)線上時,首先發(fā)信號,由它把數(shù)據(jù)輸入到8255A。
(2)在的下降沿約300ns處,數(shù)據(jù)已鎖存到8255A的鎖存器,此時使得IBF變?yōu)楦唠娖?,表示“輸入緩沖器滿”,禁止輸入新數(shù)據(jù)。
(3)在的上升沿約300ns處,在中斷允許(INTE?=?1)的情況下,IBF的高電平產(chǎn)生中斷請求,使INTR上升沿變成高電平,通知CPU現(xiàn)接口中已有數(shù)據(jù),請求CPU讀取。CPU接受中斷請求后,轉(zhuǎn)到相應(yīng)的中斷子程序。在子程序中執(zhí)行IN指令,將鎖存器中的數(shù)據(jù)取走。若CPU采用查詢方式,則通過查詢狀態(tài)字中的INTR位或IBF位是否置位來判斷有無數(shù)據(jù)可讀。
(4)?CPU執(zhí)行讀操作時,的下降沿使INTR復(fù)位,撤銷中斷請求,為下一次中斷請求作好準(zhǔn)備。信號的上升沿延時一段時間后清除IBF使其變低,表示接口的輸入緩沖器變空,允許外設(shè)輸入新數(shù)據(jù)。如此反復(fù),直至完成全部數(shù)據(jù)的輸入。
◆輸出
方式1輸出時,8255A的輸出組態(tài)如圖6.7所示。圖6.7
8255A在方式1下的輸出組態(tài)各控制信號的意義如下:
(1):輸出緩沖器滿信號,低電平有效。這是由8255A輸出給外設(shè)的一個控制信號。當(dāng)其有效時,表明CPU已經(jīng)將數(shù)據(jù)輸出到指定的端口,外設(shè)可以把數(shù)據(jù)取走。
(2):響應(yīng)信號,低電平有效。這是來自外設(shè)的響應(yīng)信號,告訴CPU輸出給8255A的數(shù)據(jù)已經(jīng)被外設(shè)接收。
(3)?INTR:中斷請求信號,高電平有效。當(dāng)某輸出設(shè)備已經(jīng)接收了CPU輸出的數(shù)據(jù)后,8255A就用INTR輸出端向CPU發(fā)出中斷請求信號,要求CPU繼續(xù)輸出數(shù)據(jù)。當(dāng)、
和INTE都為高電平時,INTR才被置為高電平。
(4)?INTEA:由PC6的置位/復(fù)位來控制。
(5)?INTEB:由PC2的置位/復(fù)位來控制。
在輸出方式中,端口C的PC4和PC5是空閑的,如果要利用它們,可用方式控制字中的D3來設(shè)定。
方式1下的輸出時序圖如圖6.8所示。圖6.8
8255A工作在方式1輸出時的“聯(lián)絡(luò)”信號時序圖其信號交接過程如下:
(1)數(shù)據(jù)輸出時,CPU處于主動地位,當(dāng)CPU向8255A寫一個數(shù)據(jù)時,的上升沿使有效,表示輸出緩沖器已滿,通知外設(shè)讀取數(shù)據(jù)。同時還使中斷請求INTR變低,封鎖中斷請求。
(2)外設(shè)讀取數(shù)據(jù)后,用回答8255A,表示數(shù)據(jù)已收到。
(3)的下降沿將置為高電平,使無效,為下一次輸出作準(zhǔn)備。在中斷允許(INTE?=?1)的情況下,的上升沿使INTR變?yōu)楦唠娖?,產(chǎn)生中斷請求。CPU響應(yīng)中斷后,在終端服務(wù)程序中,執(zhí)行OUT指令,向8255A寫下一個數(shù)據(jù)。
3)方式2
雙向傳輸方式是指在同一端口內(nèi)分別進(jìn)行I/O操作。8255A中只有A口可工作在此種方式下,當(dāng)A口工作在方式2時,需要5個控制信號進(jìn)行“聯(lián)絡(luò)”,這5個信號由C口提供。所以此時B口只能工作在方式0或方式1下。當(dāng)B口工作在方式1時,又需要三根聯(lián)絡(luò)線。故當(dāng)A口工作在方式2、B口工作在方式1時,8255A的C口的8根線將全部作為聯(lián)絡(luò)線使用。8255A方式2的邏輯功能結(jié)構(gòu)如圖6.9所示。圖6.98255A方式2的邏輯功能結(jié)構(gòu)選通雙向操作時,8255A各控制信號的意義如下:
(1)?INTR:中斷請求信號,高電平有效。在輸入和輸出時,都可以作為對CPU的中斷請求信號。
(2):輸出緩沖器滿信號,低電平有效。它可以作為對外設(shè)的選通信號。當(dāng)其有效時,表明CPU已經(jīng)將數(shù)據(jù)輸出到端口A,外設(shè)可以把數(shù)據(jù)取走。
(3):響應(yīng)信號,低電平有效。當(dāng)有效時,啟動端口A的三態(tài)輸出緩沖器送出數(shù)據(jù),否則輸出緩沖器處于高阻狀態(tài)。
(4)?INTE1:與有關(guān)的中斷觸發(fā)器,它由PC6置位/復(fù)位控制。
(5):選通輸入,低電平有效,這是由外設(shè)提供給8255A的選通信號,當(dāng)其有效時將輸入數(shù)據(jù)選通輸入鎖存器。
(6)?IBF:輸入緩沖器滿,高電平有效。這是一種狀態(tài)信息,當(dāng)其有效時,表示數(shù)據(jù)已進(jìn)入輸入鎖存器。
(7)?INTE2:與IBF有關(guān)的中斷觸發(fā)器,它由PC4置位/復(fù)位控制。
方式2下的時序圖如圖6.10所示。圖6.10
8255A工作在方式2時的“聯(lián)絡(luò)信號”時序圖方式2的時序基本上是方式1下輸入時序與輸出時序的組合。輸入/輸出的先后順序是任意的,根據(jù)實際傳送時數(shù)據(jù)的需要選定。輸出過程是由CPU執(zhí)行輸出指令并向8255A寫數(shù)據(jù)(
)開始的,而輸入過程則是從外設(shè)向8255A發(fā)選通信號
開始的,因此,只要求CPU的WR在以前發(fā)生,RD在以后發(fā)生執(zhí)行。方式2的I/O操作相當(dāng)于方式1的輸入和輸出的組合。其輸出過程為:CPU響應(yīng)中斷信號后,用輸出指令向8255A的A口寫一個新的數(shù)據(jù),并利用寫脈沖同時清除中斷請求信號INTRA,同時使A口輸出緩沖器滿信號變?yōu)橛行У碗娖剑ㄖ庠O(shè)取走數(shù)據(jù);外設(shè)取走數(shù)據(jù)后返回響應(yīng)信號以清除有效信號,并置位INTRA以向CPU再次申請中斷,從而開始下一個數(shù)據(jù)的傳輸。方式2的輸入過程與輸出過程類似,當(dāng)外設(shè)向8255A的A口傳送數(shù)據(jù)時,選通信號同時有效,使數(shù)據(jù)鎖存在8255AA口的輸入緩沖器中,并置輸入緩沖器滿信號IBF為有效高電平,以通知外設(shè)暫停傳送數(shù)據(jù)和撤消有效信號。一旦
信號消逝后即向CPU申請中斷。CPU響應(yīng)中斷進(jìn)行讀操作時,將8255A的A口輸入數(shù)據(jù)讀入到CPU中,并利用信號使輸入緩沖器滿信號IBF變?yōu)闊o效低電平,同時復(fù)位中斷請求信號INTR,完成一次輸入過程,然后等待新的中斷請求。6.1.2計算機(jī)并行接口設(shè)計
例6-1
利用8255A作為連接顯示器的接口。A口接有四個開關(guān),為方式0輸入;B口接有一個數(shù)碼管顯示器(共陽極LED),方式0輸出,其硬件連接電路如圖6.11所示。試編制程序,將A口的輸入數(shù)據(jù)送B口輸入顯示。
解:本例是8255A方式0應(yīng)用的一個例子。由圖6.11可知,8255A的端口由A0~A15提供;8255A的端口選擇信號線A0、A1與CPU的A0、A1相連,與地址譯碼器輸出相連。本例設(shè)8255A的四個端口地址為0FFC0H~0FFC3H。A口連接輸入設(shè)備開關(guān),其輸入的數(shù)據(jù)為S3~S0組合的16種狀態(tài),即0000~1111B(0H~FH);B口連接輸出設(shè)備LED顯示器,可輸出并顯示十六進(jìn)制數(shù)0~F。LED為共陽極七段發(fā)光二極管,其七段顯示代碼如表6.2所示。當(dāng)A口的S3~S0的狀態(tài)為0011B時,B口對應(yīng)輸出七段代碼B0H,則LED顯示數(shù)字3。圖6.118255A在PC/XT機(jī)中的應(yīng)用表6.2七段顯示代碼
例6-2
用8255A口作為μ80微型打印機(jī)接口,A口為工作方式1輸出,其硬件連接電路如圖6.12所示。試編制程序,將輸出緩沖區(qū)OBUF內(nèi)的100H個字節(jié)數(shù)據(jù)送打印機(jī)輸出。μ80微型打印機(jī)的工作原理:當(dāng)數(shù)據(jù)選通信號有效時,數(shù)據(jù)線D7~D0上的數(shù)據(jù)被鎖存打印,同時輸出應(yīng)答信號,告知8255A數(shù)據(jù)已取走。由于打印機(jī)的速度比CPU速度低很多,因此打印機(jī)提供了“忙”狀態(tài)信號BUSY,供CPU查詢。當(dāng)打印機(jī)正在執(zhí)行打印時,BUSY為“1”,此時CPU不能輸出數(shù)據(jù);當(dāng)打印機(jī)“空閑”時,BUSY為“0”,通知CPU可以輸出數(shù)據(jù)。BUSY信號供CPU用查詢方式輸出數(shù)據(jù)。
解:由6.12圖可知,由于打印機(jī)需要用聯(lián)絡(luò)信號和與8255A取得聯(lián)系,因此8255A的A口選擇方式1輸出工作方式。8255A的A口的端口地址由地址A0A1和74LS138譯碼器輸入地址線A2~A6經(jīng)譯碼器輸出的邏輯組合確定,若把未連接的地址線A7~A15的狀態(tài)設(shè)定為“0”,則8255A的四個端口地址為0400H~0403H。圖6.128255A與打印機(jī)的連接串行通信是在單根導(dǎo)線上將二進(jìn)制數(shù)一位一位地順序傳輸?shù)倪^程。串行通信與并行通信相比較,雖然傳輸速度較低,但可以節(jié)約大量的線路成本,非常適合遠(yuǎn)距離數(shù)據(jù)傳輸。微型計算機(jī)在做遠(yuǎn)距離數(shù)據(jù)通信時,往往要求I/O設(shè)備以串行方式來工作,即要求具備串行通信接口。在實際應(yīng)用中,通信設(shè)備一般都配帶這種接口。此外,有些計算機(jī)外設(shè),如盒式磁帶機(jī)、串行硬盤、CRT顯示器終端等,也要求采用串行接口。6.2串行接口
1.串行通信的方式
在串行通信中,有三種基本的傳輸方式:單工、半雙工和全雙工。
圖6.13(a)所示為單工傳輸方式:設(shè)備A總是發(fā)送數(shù)據(jù),設(shè)備B總是接收數(shù)據(jù),任何時刻數(shù)據(jù)只能在一個方向上傳輸。
圖6.13(b)所示為半雙工傳輸方式:設(shè)備A和設(shè)備B都可以發(fā)送和接收數(shù)據(jù),但它們不能同時發(fā)送或接收數(shù)據(jù)。
圖6.13(c)所示為全雙工傳輸方式:兩個設(shè)備能同時發(fā)送和接收數(shù)據(jù)。
圖6.13(d)所示為多雙工傳輸方式:多個設(shè)備能共用一條線路輪流發(fā)送和接收數(shù)據(jù)。圖6.13串行通信的方式(a)單工方式;(b)半雙工方式;(c)全雙工方式;(d)多雙工方式
2.異步通信與同步通信
在串行通信中,通信雙方收、發(fā)數(shù)據(jù)序列必須在時間上取得一致,這樣才能保證接收數(shù)據(jù)的正確性。按照通信雙方發(fā)送和接收數(shù)據(jù)序列在時間上取得一致的方法不同,串行通信可分為異步串行通信和同步串行通信兩大類。
1)異步通信
異步通信中,發(fā)送端以固定的字符格式發(fā)送數(shù)據(jù),如圖6.14所示,每個字符包括1個起始位、5~8個數(shù)據(jù)位,1個奇偶校驗位(它是為避免長距離通信中出現(xiàn)差錯而設(shè)置的差錯冗余位,也可不設(shè))和1~2個停止位。每個字符的傳輸均以起始位為開始標(biāo)志,緊接著的是要傳輸?shù)臄?shù)據(jù)(低位在前),然后是奇偶校驗位,最后為停止位。兩個相鄰字符之間的間隔(即空閑時間)可以任意長。在不發(fā)送數(shù)據(jù)期間,通信線上固定為高電平,所以總可以用低電平表示數(shù)據(jù)傳輸?shù)拈_始。圖6.14異步串行通信的字符格式由此可見,通信雙方在通信之前必須約定字符格式和數(shù)據(jù)傳輸率。
字符格式確定一個字符內(nèi)包含多少位數(shù)據(jù)位、停止位以及采用何種校驗形式。
數(shù)據(jù)傳輸(速)率指單位時間內(nèi)通信線路上傳輸?shù)男畔⒘浚捎帽忍芈?bit/s或bps)和波特(Baud)率來表示。比特率是每秒傳送的二進(jìn)制位數(shù),波特率是每秒傳送離散狀態(tài)的數(shù)量。當(dāng)采用調(diào)幅標(biāo)準(zhǔn)時,由于任一時刻只能出現(xiàn)兩種狀態(tài)中的一種,因此比特率和波特率是一致的。另外,由于計算機(jī)接口只能輸入/輸出1和0,因此比特率和波特率的單位是一樣的。盡管波特率在理論上可以是任意的,但考慮到接口的標(biāo)準(zhǔn)性,國際上還是規(guī)定了標(biāo)準(zhǔn)的波特率系列。常用的波特率有50、110、300、600、1200、2400、4800、9600和19200bps。大多數(shù)接口的接收波特率是可以分別設(shè)置的,它們可以分別由編程來設(shè)定。當(dāng)然,在一個串行通信系統(tǒng)中,應(yīng)該設(shè)定接收方和發(fā)送方的波特率相同。
發(fā)送/接收時鐘頻率=M×波特率
式中,M稱為波特率系數(shù)或波特率因子。異步通信是以字符為單位的通信,當(dāng)接收方收到起始位后,要能在一個字符的傳輸時間內(nèi)能和發(fā)送器保持同步,能夠完全正確地接收。若接收器和發(fā)送器的時鐘略有誤差,則兩個字符之間的停止間隔將為這種誤差提供緩沖。因此,異步通信方式允許有一定的頻率誤差,對時鐘同步的要求不嚴(yán)格,這是異步通信的突出優(yōu)點(diǎn)。但異步通信要求每個字符都有起始位和停止位,使控制信息在總信息中占有一定的比例,所以異步通信效率較低。
2)同步通信
同步通信是采用數(shù)據(jù)塊成幀方式實現(xiàn)的。圖6.15所示為常見同步串行通信幀的格式。在格式開頭有同步字符SYN,同步字符的格式和同步字符的個數(shù)可根據(jù)需要確定。同步字符的作用是通知接收器“消息到達(dá)”,讓接收器開始與發(fā)送器同步。同步字符后的第一個字符是消息頭,它包含有助于接收器處理信息的控制信息(如一幀內(nèi)的字符個數(shù)等),其后是以字符或比特為單位的消息編碼,最后是校驗字符。常用CRC循環(huán)冗余校驗碼的作用是檢測數(shù)據(jù)塊在傳輸過程中是否有差錯。圖6.15同步串行通信的幀格式(a)單同步;(b)雙同步;(c)外同步同步數(shù)據(jù)塊中,為了能確保正確提取字符,字符之間不能像異步傳輸那樣存有間隙,必須以連續(xù)的形式發(fā)送。采用兩個同步字符,稱為雙同步方式;采用一個同步字符,稱為單同步方式。另外,根據(jù)對同步字符檢測方式的不同,將之分為內(nèi)同步與外同步,前面的兩種格式屬于內(nèi)同步。
顯而易見,數(shù)據(jù)傳輸效率高是同步傳輸?shù)膬?yōu)點(diǎn)。但同步傳輸不僅要保持每個字符內(nèi)各位以固定的時鐘頻率傳輸,而且還要管理字符間的定時,因此,收、發(fā)雙方時鐘同步的要求特別高,必須配備專用的硬件電路獲得同步時鐘。硬件電路復(fù)雜是同步通信的缺點(diǎn)。
3.調(diào)制解凋器
在串行通信中,由于線路分布電容的影響,一個方波傳輸一段距離以后,將逐漸被“平滑”,致最后難以分辨上升沿和下降沿,同時非常容易受干擾。而正弦波在長距離傳輸后,仍然是正弦波,只是幅度變小而已,通過放大器可以恢復(fù)。因此,數(shù)據(jù)在長距離傳輸時需要調(diào)制解調(diào)器。調(diào)制解調(diào)器(Modem)是利用模擬通信線路進(jìn)行長距離數(shù)據(jù)通信中的重要設(shè)備。長距離通信時,通常需要利用電話線路,Modem的作用就是先將數(shù)字信號轉(zhuǎn)換為適合電話線路上傳輸?shù)哪M信號,經(jīng)過電話線路傳輸后,再將模擬信號還原成數(shù)字信號。圖6.16所示為應(yīng)用Modem的一個典型例子。圖中,Modem把從終端接收到的二進(jìn)制電信號轉(zhuǎn)換成可在共用電話系統(tǒng)上發(fā)送的音頻信號(稱為調(diào)制)。同時它也把從遠(yuǎn)方Modem發(fā)出的通過電話系統(tǒng)的音頻信號轉(zhuǎn)化為二進(jìn)制電信號發(fā)往終端(稱為解調(diào))。圖6.16調(diào)制與解調(diào)的應(yīng)用實例依傳輸速率分,Modem可分為低速、中速和高速三類。低速M(fèi)odem一般用于傳輸波特率在2000bps以下的異步通信;傳輸波特率高于9600bps的同步通信時,則要采用中速甚至高速的Modem。通常使用RS-232標(biāo)準(zhǔn)串行接口來實現(xiàn)計算機(jī)與Modem之間的通信。6.2.1串行接口芯片8250/8251A
串行通信接口8251A是可編程串行接口的一種,它是Intel公司的產(chǎn)品。常見的串行接口芯片還有Motorola公司的6850、6952、8654,ZILOG公司的SIO及TNS公司的8250等。這些芯片的結(jié)構(gòu)和工作原理基本一致,下面以Intel公司的8251A為例介紹可編程串行通信接口的基本工作原理、編程結(jié)構(gòu)、編程方法及應(yīng)用實例。
1.?8251A的外部引腳
8251A是一個28引腳的雙列直插式大規(guī)模集成電路芯片,其引腳封裝圖如圖6.17所示。8251A的數(shù)據(jù)總線是8位的,分別為D0~D7,它們是三態(tài)雙向的,CPU通過數(shù)據(jù)總線并行傳送命令、交換數(shù)據(jù)及檢測狀態(tài)。圖6.178251A的引腳圖
1)控制信號引腳
(1)?CLK:時鐘輸入端口,產(chǎn)生8251A的內(nèi)部時序。一般情況下,CLK的輸入頻率在同步方式工作時,必須大于接收器和發(fā)送器輸入時鐘頻率的30倍;在異步方式工作時,必須大于接收器和發(fā)送器輸入時鐘頻率的4.5倍。
(2):片選信號。通常由CPU的高位地址信號和M/
控制信號譯碼后提供,產(chǎn)生8251A端口地址的高地址部分。
(3)C/:控制/數(shù)據(jù)端。C/
=?1時,數(shù)據(jù)總線上的信息是狀態(tài)信息或命令信息;C/
=?0時,數(shù)據(jù)總線上的信息是數(shù)據(jù)信息。一般由CPU低位地址線提供,產(chǎn)生8251A端口地址的低地址部分。
(4)?RESET:復(fù)位信號,高電平有效。RESET?=?1時,8251A的收、發(fā)線路處于空閑狀態(tài),等待CPU執(zhí)行其初始化程序。
(5)、:讀/寫控制信號,低電平有效。其功能參見表6.3。表6.38251A的讀/寫功能表
2)發(fā)送器部分引腳
(1)?TXD:數(shù)據(jù)發(fā)送引腳。從此線逐位輸出的是并行數(shù)據(jù)轉(zhuǎn)換成串行格式后的數(shù)據(jù)。
(2)?TXRDY:發(fā)送器準(zhǔn)備好信號。若該信號有效,則CPU向8251A寫入待發(fā)送的數(shù)據(jù),8251A將從CPU送來的并行數(shù)據(jù)鎖存在數(shù)據(jù)發(fā)送緩沖器中。
(3)?TXEMPY:發(fā)送器空信號。若該信號有效,表示發(fā)送移位寄存器已空,此時發(fā)送緩沖器的數(shù)據(jù)可以送入發(fā)送移位寄存器中,然后逐位輸出。
(4):由外部輸入的發(fā)送器時鐘。確定8251A的發(fā)送速率。在同步方式時,端輸入的時鐘頻率應(yīng)等于發(fā)送數(shù)據(jù)波特率。在異步方式時,可以由軟件定義發(fā)送時鐘,可為發(fā)送波特率的1倍、16倍或64倍(發(fā)送波特因子的倍數(shù))。
3)接收器部分引腳
(1)?RXD:數(shù)據(jù)接收引腳。外部串行數(shù)據(jù)通過該引腳逐位移入接收移位寄存器中,轉(zhuǎn)換成并行格式后送入接收數(shù)據(jù)緩沖器,等待CPU取走數(shù)據(jù)。
(2)?RXRDY:接收器準(zhǔn)備好信號,高電平有效。接收緩沖器收到一個數(shù)據(jù)字符,則RXRDY信號有效,通知CPU接收數(shù)據(jù),若8251A采用中斷方式與CPU交換數(shù)據(jù),則RXRDY信號可用作向CPU發(fā)出的中斷請求信號。CPU取走接收緩沖器的數(shù)據(jù)后,RXRDY變?yōu)榈碗娖健?/p>
(3):由外部輸入的接收器時鐘。確定8251A的接收速率。在同步方式時,端輸入的時鐘頻率應(yīng)等于接收數(shù)據(jù)波特率。在異步方式時,可以由軟件定義接收器時鐘各為接收波特率的1倍、16倍或64倍(接收波特因子的倍數(shù))。
(4)SYNDET/BRKDET:斷缺檢測/同步檢測,高電平有效。
當(dāng)8251A工作在異步方式時,SYNDET/BRKDET功能為斷缺檢測端BRKDET。如果在起始位之后,從RXD端上連續(xù)收到8個“0”信號,則輸出端BRKDET為高電平,表示當(dāng)前處于數(shù)據(jù)斷缺狀態(tài),沒有數(shù)據(jù)可以接收。如果從RXD端上接收到“1”信號,則輸出端BRKDET為低電平。當(dāng)8251A工作在同步方式時,SYNDET/BRKDET功能為同步檢測端SYNDET。如果采用同步方式,則SYNDET為輸出端,高電平有效。當(dāng)從RXD端上檢測到一個(單同步)或兩個(雙同步)同步字符時,SYNDET輸出高電平有效信號,表示接收數(shù)據(jù)已處于同步狀態(tài),其后接收到的是有效數(shù)據(jù)。如果采用外同步,則SYNDET為輸入端,外部同步字符從該端輸入。SYNDET為高電平輸入有效信號,表示已達(dá)到同步,接收器可以開始接收數(shù)據(jù)。
4)?Modem接口控制引腳
(1):數(shù)據(jù)終端準(zhǔn)備好信號,該引腳向Modem輸出信號,低電平有效。CPU準(zhǔn)備好接收數(shù)據(jù)后,若欲使成為有效,可以將控制字的DTR位設(shè)置為“1”后輸出該有效信號。
:數(shù)據(jù)裝置準(zhǔn)備好信號,該信號由Modem輸出,低電平有效。當(dāng)Modem已經(jīng)做好發(fā)送數(shù)據(jù)準(zhǔn)備時,就發(fā)出信號,CPU可以用IN指令讀入8251A的狀態(tài)寄存器,檢測DSR位,當(dāng)DSR位為“1”時,表示信號有效。該信號實際上是對信號的應(yīng)答,一般情況下是用來接收數(shù)據(jù)的。:請求發(fā)送信號,向Modem輸出的低電平有效信號。當(dāng)CPU準(zhǔn)備好發(fā)送數(shù)據(jù)時,由軟件定義,設(shè)置控制字中的RTS位為“1”,則輸出低電平有效信號。
:準(zhǔn)許發(fā)送信號,由Modem輸入的信號,低電平有效。這是對的應(yīng)答信號,實際應(yīng)用中,可將控制字中TXEN位置“1”,則為低電平有效,發(fā)送器可串行發(fā)送數(shù)據(jù)。在數(shù)據(jù)發(fā)送過程中,如果使無效,或控制字中的TXEN位為“0”,則發(fā)送器將正在發(fā)送的字符結(jié)束后停止發(fā)送。
2.?8251A的內(nèi)部結(jié)構(gòu)
8251A的內(nèi)部結(jié)構(gòu)如圖6.18所示。由發(fā)送器、接收器、數(shù)據(jù)總線緩沖器、讀/寫控制邏輯電路及調(diào)制/解調(diào)控制電路五部分組成。圖6.188251A的內(nèi)部結(jié)構(gòu)
1)數(shù)據(jù)發(fā)送和接收寄存器
◆數(shù)據(jù)發(fā)送寄存器
數(shù)據(jù)發(fā)送部分可分為數(shù)據(jù)發(fā)送保持寄存器和發(fā)送移位寄存器。數(shù)據(jù)輸出以字符為單位首先送到數(shù)據(jù)發(fā)送保持寄存器中,再進(jìn)入發(fā)送移位寄存器,以上過程都是在8251A的內(nèi)部并行傳輸?shù)?。在發(fā)送移位寄存器中,按照事先和接收方約定的字符傳輸格式,再加上起始位、奇偶校驗位和停止位,然后再以約定的波特率先低位后高位地輸出。
數(shù)據(jù)發(fā)送保持寄存器將數(shù)據(jù)傳給發(fā)送移位寄存器后,CPU即可對其寫入下一個字符,而發(fā)送移位寄存器送出第一個字符各位后,又立即接收第二個字符,開始第二個字符的發(fā)送。8251A內(nèi)部寄存器的地址如表6.4所示。表6.48251A內(nèi)部寄存器的地址
◆數(shù)據(jù)接收寄存器
數(shù)據(jù)接收部分包括接收移位寄存器和數(shù)據(jù)接收緩沖寄存器。串行數(shù)據(jù)逐位進(jìn)入接收移位寄存器時,首先尋找起始位,然后才讀入數(shù)據(jù)位。
接收電路始終用接收時鐘CLK選通采樣串行輸入數(shù)據(jù)的狀態(tài),每16個CLK脈沖對應(yīng)一個數(shù)據(jù)位。在檢測到由1到0的變化時,若連續(xù)采樣8次,數(shù)據(jù)一直都為低電平,則認(rèn)定是數(shù)據(jù)的起始位;否則認(rèn)為是干擾信號,將重新采樣。以后每隔16個CLK周期讀取一次數(shù)據(jù)位(正好在數(shù)據(jù)的中間點(diǎn)),讀至停止位,一個字符接收完畢,然后開始尋找第二個字符的起始位。這樣安排的好處是,可以減少誤判起始信號的次數(shù),允許發(fā)送時鐘和接收時鐘的頻率有少許誤差,每個字符單獨(dú)開始又避免了時鐘誤差的積累。接收移位寄存器接收到一個字符后,首先要進(jìn)行格式檢查,若不正確,則通過線路狀態(tài)寄存器設(shè)置出錯標(biāo)志;若正確,則將真正的數(shù)據(jù)位保留并傳送給數(shù)據(jù)接收緩沖器。然后線路狀態(tài)寄存器中的“接收數(shù)據(jù)可用”位置1,CPU可以通過查詢或中斷方式取走這個字符,清除“接收數(shù)據(jù)可用”位,接著再接收下一個字符。在數(shù)據(jù)接收過程中,若接收的前一個字符在數(shù)據(jù)接收緩沖寄存器中尚未被CPU取走,后一個字符經(jīng)接收移位寄存器接收完畢又要送至接收緩沖寄存器,就會丟失字符,這種情況稱為“溢出錯”,在線路狀態(tài)寄存器中也有相應(yīng)位記錄。
2)線路控制及狀態(tài)部分
◆通信線路控制寄存器
CPU用OUT指令將一個8位控制字寫入通信線路控制寄存器,以決定通信中字符的格式。控制寄存器的內(nèi)容也可以用IN指令讀出。
◆通信線路狀態(tài)寄存器
CPU讀入通信線路的狀態(tài)寄存器,即可了解數(shù)據(jù)發(fā)送和接收的情況。
3)波特率控制部分
波特率控制部分的可編程寄存器就是除數(shù)寄存器,實際上就是分頻系數(shù)。在PC/XT系列微機(jī)中,輸入的時鐘頻率為1.8432MHz,該頻率除以除數(shù)寄存器中的雙字節(jié)后,得到的是數(shù)據(jù)發(fā)送器的工作頻率,再除以16,才是真正的發(fā)送波特率。
在PC/XT系列微機(jī)中,波特率和除數(shù)之間的對應(yīng)關(guān)系如表6.5所示。表6.5除數(shù)和波特率的對應(yīng)關(guān)系
4)?Modem控制與狀態(tài)
該模塊實現(xiàn)通信過程中的聯(lián)絡(luò)功能,包括聯(lián)絡(luò)信號的生成與檢測。
◆?Modem控制寄存器
Modem控制寄存器的定義如圖6.19所示。該寄存器的高3位沒有定義,D4決定串行接口控制器的UART的工作方式:D4?=?0,UART處于正常工作狀態(tài);D4?=?1,UART處于自檢狀態(tài),可以用自發(fā)自收的方式來檢查芯片。其工作原理是:UART數(shù)據(jù)輸入端與外部斷開,而在芯片內(nèi)部與數(shù)據(jù)輸出接通,同時4個輸入信號與4個輸出信號相連。圖6.19Modem控制寄存器的定義
◆?Modem狀態(tài)寄存器
Modem狀態(tài)寄存器的定義如圖6.20所示,其高4位就是4個外部輸入信號的狀態(tài),而低4位則記錄高4位的變化。計算機(jī)在每次讀Modem狀態(tài)寄存器時,低4位被清零。以后若高4位中有某位狀態(tài)發(fā)生變化時,則低4位的相應(yīng)位就置1,這些狀態(tài)位的變化除了可以讓CPU的輸入指令查詢外,也可以引起中斷。圖6.20Modem狀態(tài)寄存器的定義
3.?8251A的內(nèi)部寄存器及初始化編程
8251A是一個可編程的多功能串行通信接口芯片,在實際使用前必須對它初始化,用來確定其工作方式、傳輸速率、字符格式以及停止位長度等。8251A有三種控制字,分別為方式選擇字、操作命令字和狀態(tài)字。
1)方式選擇字
8251A方式選擇字的格式如圖6.21所示。在控制字中,D1D0有四種組合,當(dāng)D1D0?=?00時,8251A選擇同步工作方式;否則,8251A選擇異步工作方式。在異步方式下,輸入的時鐘和波特率之間的系數(shù)可由D1D0的其他三種組合規(guī)定。D3D2是用來確定數(shù)據(jù)位長度的。D5D4可以用來確定是否需要奇偶校驗,是奇校驗還是偶校驗。D7D6的定義分為兩種情況:在同步工作時,設(shè)置選用的是內(nèi)同步還是外同步以及同步的個數(shù);在異步工作時,設(shè)置停止位的長度。圖6.218251A的方式控制字
2)操作命令字
操作命令字可以使8251A處于預(yù)先規(guī)定(初始化設(shè)置)的工作狀態(tài)。?操作命令控制字的格式如圖6.22所示。
操作命令字中,每位的定義如下:
(1)?TXEN:允許發(fā)送/屏蔽發(fā)送的控制端。TXEN?=?1時,發(fā)送器才能通過TXD引腳向外部串行發(fā)送數(shù)據(jù)。
(2)?DTR:DTR位置1,表示CPU已經(jīng)準(zhǔn)備好接收數(shù)據(jù),此時,8251A的引腳向Modem輸出低電平有效信號。圖6.228251A的操作命令字
(3)?RXE:允許接收/屏蔽接收的控制端。RXE?=?1時,接收器才能通過RXD引腳接收外部串行數(shù)據(jù)。
(4)?SBRK:該位發(fā)送斷缺字符。SBRK?=?1時,迫使TXD引腳處于低電平,發(fā)送“0”信號。在正常通信過程中,SBRK應(yīng)保持為0。
(5)?ER:ER?=?1時,則清除奇偶出錯標(biāo)志(PE)、溢出錯誤標(biāo)志(OE)和幀校驗出錯標(biāo)志(FE)。
(6)?RTS:該位是請求發(fā)送信號。RTS?=?1時,迫使引腳輸出低電平,表示CPU已經(jīng)做好了發(fā)送數(shù)據(jù)的準(zhǔn)備。
(7)?IR:內(nèi)部復(fù)位信號。IR?=?1時,迫使8251A回到方式選擇控制字狀態(tài)。通常用戶有兩種方法復(fù)位8251A:一種是硬件復(fù)位,即通過引腳RESET?=?1使得8251A進(jìn)入復(fù)位狀態(tài);另一種是軟件復(fù)位,即通過IR位置1使得8251A進(jìn)入方式選擇控制字狀態(tài),重新選擇其工作方式。
(8)?EH:該位只對同步方式有效。EH?=?1時,表示開始搜索同步字符。所以,對同步方式來講,一旦允許接收(RXE?=?1),必須同時使得EH和ER為1,清除全部錯誤標(biāo)志后,才能開始搜索同步字符。
3)狀態(tài)控制字
在8251A工作過程中,CPU隨時可以用IN指令讀取當(dāng)前8251A的狀態(tài)控制字,了解8251A的工作情況。狀態(tài)控制字的格式如圖6.23所示。
(1)?TXRDY:發(fā)送準(zhǔn)備好標(biāo)志,表示當(dāng)前發(fā)送緩沖器已空。一旦發(fā)送緩沖器已空,該位就置1,它只表示8251A當(dāng)前的工作狀態(tài)。TXRDY引腳要為高電平,必須滿足其他兩個條件:一是要對8251A發(fā)操作命令,使其允許發(fā)送;二是8251A要從Modem輸入一低電平,使引腳為低電平有效。在數(shù)據(jù)發(fā)送過程中,TXRDY狀態(tài)和TXRDY引腳信號總是相同的。圖6.238251A的狀態(tài)寄存器
(2)?RXRDY、TXEMPY、SYNDET/BRKDET:三個位狀態(tài)的定義與其相應(yīng)的引腳定義相同,可以供CPU隨時查詢。
(3)?DSR:該狀態(tài)位為1時,表示外設(shè)或Modem已經(jīng)做好發(fā)送數(shù)據(jù)的準(zhǔn)備,同時發(fā)出低電平,使8251A的DSR引腳為低電平有效信號。
(4)?PE:為奇偶錯標(biāo)志位。PE為高電平表示當(dāng)前發(fā)生了奇偶錯誤,但不影響8251A正常工作。
(5)?OE:溢出錯標(biāo)志位。當(dāng)當(dāng)前字符從RXD端輸入,而CPU還沒有來得及讀取上一個字符時,上一個字符將丟失,此時置位OE(OE?=?1),但不影響8251A正常工作。
(6)?FE:幀校驗錯標(biāo)志。當(dāng)在字符的結(jié)尾沒有檢測到規(guī)定的停止位時,該標(biāo)志置位(FE?=?1)。FE只對異步工作方式有效,不影響8251A的正常工作。
PE、OE、FE這三個標(biāo)志可通過操作命令字的ER位為1來全部復(fù)位。
4)?8251A初始化編程
對8251A進(jìn)行初始化編程必須在系統(tǒng)復(fù)位之后(RESET引腳為高電平),使得收、發(fā)引腳處于空閑狀態(tài)、各個寄存器處于復(fù)位狀態(tài)的情況下對8251A初始化編程時,先使用方式控制字設(shè)置其工作方式。若設(shè)置8251A在異步方式下工作,必須緊接操作命令字進(jìn)行定義,然后才可以開始傳輸數(shù)據(jù)。在數(shù)據(jù)傳輸過程中,還可以使用操作命令字重新定義,或使用狀態(tài)控制字讀入8251A的狀態(tài)。在設(shè)置新的工作方式時,必須用操作命令字將IR位置1,以便使其返回到方式控制字,接收新的方式選擇命令,從而改變工作方式,使8251A按新的工作方式工作。8251A初始化編程可以用圖6.24來描述。圖6.248251A初始化編程的框圖6.2.2計算機(jī)串行接口設(shè)計
下面我們介紹用兩片8251A芯片實現(xiàn)兩個8088CPU之間串行通信的實例,其接線圖如圖6.25所示。假設(shè)1#8251A數(shù)據(jù)口的地址為2A0H,控制口的地址為2A1H。同樣,2#8251A數(shù)據(jù)口的地址為2A0H,控制口的地址為2A1H。圖6.25用8251A實現(xiàn)兩個8088CPU的串行通信網(wǎng)絡(luò)接口卡(NIC)是安裝在計算機(jī)上并提供網(wǎng)絡(luò)連接點(diǎn)的適配器。它的作用是將數(shù)據(jù)分解為適當(dāng)大小的數(shù)據(jù)包,然后把它們發(fā)送至網(wǎng)絡(luò)。每一NIC都是為一種特定的網(wǎng)絡(luò)類型設(shè)計的,如以太網(wǎng)、令牌環(huán)、FDDI、ARCNET及其他。一個NIC為一種特定類型的電纜,如同軸電纜、雙絞線電纜或光纜提供一個連接點(diǎn)。無線LAN的NIC通常有一個天線,以便與基站通信。網(wǎng)絡(luò)接口卡提供專用的、全時段的網(wǎng)絡(luò)接入模式。目前,市面上主要是PCI接口的網(wǎng)卡。6.3網(wǎng)絡(luò)接口
NIC是由物理和數(shù)據(jù)鏈路層規(guī)范定義的。這些物理規(guī)范定義機(jī)械和電氣接口規(guī)范。機(jī)械規(guī)范定義纜線的物理連接方法。電氣規(guī)范定義用于通過電纜傳輸比特流的成幀方法。它們也定義通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸?shù)目刂菩盘?。?shù)據(jù)鏈路層規(guī)范根據(jù)IEEE802.X標(biāo)準(zhǔn)(或者其他標(biāo)準(zhǔn))定義媒體接入方法(以太網(wǎng)CSMA/CD、令牌環(huán)(TokenRing)等)。網(wǎng)絡(luò)接口卡的使用分為兩類:遵循標(biāo)準(zhǔn)規(guī)范的和遵循標(biāo)準(zhǔn)規(guī)范但添加了增強(qiáng)性能的。網(wǎng)絡(luò)接口卡之間硬件設(shè)計的差異會降低性能。例如,具有32位接口的網(wǎng)卡給16位的網(wǎng)卡傳送數(shù)據(jù)的速度通常比16位接口的網(wǎng)卡能夠處理數(shù)據(jù)的速度要快。要解決這個瓶頸問題,可提供內(nèi)存緩沖區(qū)以捕獲和保存?zhèn)魅霐?shù)據(jù),防止數(shù)據(jù)溢出和允許32位卡先完成其傳輸另一類瓶頸問題發(fā)生在網(wǎng)絡(luò)接口卡和計算機(jī)內(nèi)存之間。一旦接收到信息,有四種方法可以將信息從網(wǎng)絡(luò)接口卡移入計算機(jī):使用DMA(直接存儲器存取)或控制器控制系統(tǒng)總線,從NIC傳送數(shù)據(jù)到內(nèi)存位置,因此減少了CPU負(fù)載?;蚴褂霉蚕韮?nèi)存方案,NIC有自己的內(nèi)存,系統(tǒng)處理器可以直接訪問,或者CPU和NIC共享一個系統(tǒng)內(nèi)存塊,兩者都能直接訪問。使用總線主控技術(shù),網(wǎng)絡(luò)適配器可以不中斷系統(tǒng)處理器而將信息直接傳送到系統(tǒng)內(nèi)存。全球?qū)ぶ反_保了每個網(wǎng)絡(luò)接口卡有唯一的識別節(jié)點(diǎn)地址。它是網(wǎng)卡生產(chǎn)廠家在生產(chǎn)時內(nèi)置在ROM中的,而且保證絕對不會重復(fù)。令牌環(huán)和以太網(wǎng)卡地址是在卡上硬接線的。IEEE(電氣和電子工程師協(xié)會)負(fù)責(zé)分配地址給令牌環(huán)和以太網(wǎng)卡。每個制造商都被分配以唯一的代碼和地址塊。安裝網(wǎng)卡時,最好確定網(wǎng)卡的地址并將它記下來以供未來參考。也可以使用網(wǎng)卡提供的診斷工具程序,以便在系統(tǒng)上安裝網(wǎng)卡之后確定它的地址。還可以在網(wǎng)卡的標(biāo)簽上找到網(wǎng)卡地址。大多數(shù)網(wǎng)卡都有一個供遠(yuǎn)程啟動PROM(可編程只讀存儲器)使用的插座。遠(yuǎn)程啟動PROM用于不能自己啟動而從網(wǎng)絡(luò)服務(wù)器啟動的無盤工作站。無盤工作站比帶軟盤和硬盤驅(qū)動器的系統(tǒng)便宜,它也更加安全,因為用戶不能將有價值的數(shù)據(jù)下載到軟盤或上載病毒和未經(jīng)授權(quán)的軟件。6.3.1網(wǎng)絡(luò)接口芯片RTL8019AS
RTL8019AS是由臺灣Realtek公司生產(chǎn)的高度集成以太網(wǎng)接口控制芯片,該芯片是一款全雙工以太網(wǎng)接口芯片,收發(fā)可同時達(dá)到10Mb/s的速率,以其優(yōu)良的性能、低廉的價格,在市場10Mb/s網(wǎng)卡中占有相當(dāng)?shù)谋壤?。RTL8019AS芯片的特性為:
(1)采用CMOS工藝,功耗低;單一5V電源供電。
(2)封裝為100PIN的PQFQ,縮小了PCB尺寸,支持PNP自檢方式。
(3)支持以太網(wǎng)Ⅱ和IEEE802.3、10Base5、10Base2、10Base5T。
(4)支持跳線模式、非跳線模式和NPN即插即用模式。
(5)內(nèi)置16KB的SRAM,用于收/發(fā)緩沖,降低了對主處理器的速度要求。
(6)支持三種電平下降方式:睡眠模式、功率下降有內(nèi)部時鐘運(yùn)行和功率下降內(nèi)部時鐘停止。
(7)支持UTP、AUI和BNC自動檢測;支持10BaseT的自動極性改正。
(8)支持8條IRQ總線,16條I/O基本地址選項和額外I/O地址輸入/輸出完全解碼方式。
(9)支持存儲器瞬時讀/寫;能夠使用93C46(64×16b×EPROM)存儲資源和ID參數(shù)。
(10)支持可編程的自診斷LED輸出。
1.芯片管腳結(jié)構(gòu)
RTL8019AS采用100腳PQFP封裝,其結(jié)構(gòu)如圖6.26所示。
RTL8019AS的主要引腳功能如下:
(1)引腳1~4、97~100:中斷控制INT0~I(xiàn)NT7。
(2)引腳33:復(fù)位控制。
(3)引腳34:使能控制AEN,低電平有效。
(4)引腳6、7、70、89:數(shù)字電源,+5V。
(5)引腳14、28、83、86:數(shù)字地GND。
(6)引腳47、57:模擬電源,+5V。
(7)引腳44、52:模擬地。
(8)引腳7~13、15、16、18~27:ISA地址總線。圖6.26RTL8019AS芯片的結(jié)構(gòu)(9)引腳36~43、87、88、90~95:ISA數(shù)據(jù)總線。
(10)引腳31:BootROM讀操作控制。
(11)引腳32:BootROM寫操作控制。
(12)引腳62:RX接收數(shù)據(jù)顯示LED1腳。
(13)引腳63:TX發(fā)送數(shù)據(jù)顯示LED2腳。
(14)引腳58、59:接收數(shù)據(jù)TPIN+/-。
(15)引腳45、46:發(fā)送數(shù)據(jù)TPOUT+/-。
(16)引腳50、51:外接晶體。
2.主要寄存器描述
RTL8019AS中的寄存器根據(jù)地址和功能能夠概略的分為兩組:一組對NE2000;一組對即插即用。即插即用模式適用于在電腦上使用,因此這里不予考慮。
NE2000寄存器包括寄存器的四個頁面,它們通過CR寄存器的PS0和PS1被選擇。每一頁面包括16個寄存器。這些寄存器除了和NE2000兼容外,RTL8019AS還定義了其他一些寄存器。
(1)?CR:指令寄存器(00H;Type?=?R/W)。這個寄存器用來選擇寄存器頁面,能進(jìn)行遠(yuǎn)程DMA操作和命令操作。
(2)?ISR:中斷狀態(tài)寄存器(07H;Type?=?R/Winpage0)。這個寄存器反映NIC狀態(tài)。主機(jī)通過相應(yīng)位的狀態(tài)來判斷中斷的原因??梢酝ㄟ^對相應(yīng)的位寫1來清除該位。它必須在上電源后清除。
(3)?IMR:中斷屏蔽寄存器(0FH;Type?=?Winpage0,Type=Rinpage2)。
(4)?DCR:數(shù)據(jù)結(jié)構(gòu)寄存器(0EH;Type?=?Winpage0,Type=Rinpage2)。
(5)?TCR:傳輸配置寄存器(0DH;Type?=?Winpage0,Type?=?Rinpage2)。
(6)?TSR:傳輸狀態(tài)寄存器(04H;Type?=?Rinpage0)。
(7)?RCR:接收結(jié)構(gòu)寄存器(0CH;Type?=?Winpage0,Type?=?Rinpage2)。
(8)?RSR:接收狀態(tài)寄存器(0CH;Type?=?Rinpage0)。
(9)?CLDA0、CLDA1:當(dāng)前局部DMA寄存器(01H和02H;Type?=?Rinpage0)。通過讀這兩個寄存器來得到當(dāng)前DMA的地址。
(10)?PSTART:接收緩沖區(qū)的起始頁地址寄存器(01H;Type?=?Winpage0,Type?=?Rinpage2)。該寄存器用來設(shè)置接收緩沖器的開始頁面地址。
(11)?PSTOP:接收緩沖區(qū)的結(jié)束頁地址寄存器(02H;Type?=?WinPage0,Type?=?RinPage2)。該寄存器設(shè)置接收緩沖器停止頁面的寄存器地址。在8位方式下,PSTOP寄存器不應(yīng)該超過0X60,在6位方式下,PSTOP寄存器應(yīng)該不超過0X80。
(12)?BNRY:邊界寄存器(03H;Type?=?R/Winpage0)。這個寄存器用來放置接收緩沖器的重寫。它代表性的功能是作為接收緩沖器最后頁面的指針。
(13)?TPSR:傳送頁面開始寄存器(04H;Type?=?Winpage0)。該寄存器用來設(shè)置傳送數(shù)據(jù)包開始的頁面地址。
(14)?TBCR0,、TBCR1:傳輸字節(jié)計算寄存器(05H,06H;Type?=?Winpage0)。該寄存器用來設(shè)置傳輸數(shù)據(jù)包的字節(jié)計數(shù)。
(15)?NCR:沖突數(shù)寄存器(05H;Type?=?Rinpage0)。該寄存器用來記錄在數(shù)據(jù)包傳送過程中的沖突節(jié)點(diǎn)數(shù)。
(16)?FIFO:先進(jìn)先出寄存器(06H;Type?=?Rinpage0)。這個寄存器允許主機(jī)檢查loopback后的FIFO內(nèi)容。
(17)?CRDA0、CRDA1:當(dāng)前遠(yuǎn)程DMA寄存器(08H,09H;Type?=?Rinpage0)。這兩個寄存器包括當(dāng)前遠(yuǎn)程DMA地址。
(18)?RSAR0、RSAR1:遠(yuǎn)程起始地址寄存器(08H,09H;Type?=?Winpage0)。這兩個寄存器設(shè)置遠(yuǎn)程DMA起始地址。
(19)?RBCR0、RBCR1:遠(yuǎn)程字節(jié)數(shù)寄存器(0AH,0BH;Type?=?Winpage0)。該寄存器設(shè)置遠(yuǎn)程DMA數(shù)據(jù)字節(jié)數(shù)。
(20)?CNTR0:幀同步錯誤計數(shù)寄存器(0DH;Type?=?Rinpage0)。
(21)?CNTR1:CRC錯誤數(shù)記錄寄存器(0EH;Type?=?Rinpage0)。
(22)?CNTR2:遺失數(shù)據(jù)包數(shù)記錄寄存器(0FH;Type?=?Rinpage0)。
(23)?PAR0~PAR5:實際地址寄存器(01H~06H;Type?=?R/Winpage1)。
(24)?CURR:當(dāng)前頁面寄存器(07H;Type?=?R/Winpage1)。
(25)?MAR0~MAR7:多點(diǎn)地址寄存器(08H~0FH;Type?=?R/Winpage1)。除以上寄存器外,RTL8019AS還自定義了一些寄存器:
(1)?BPAGE:BROM頁寄存器(02H;Type?=?R/W)。
(2)?CONFIG0:RTL8019AS結(jié)構(gòu)寄存器0(03H;Type?=?R,除了位[7∶6]?=?R/W)。
(3)?CONFIG1:RTL8019AS結(jié)構(gòu)寄存器1(04H;Type?=?R,除了位7?=?R/W)。
(4)?CONFIG2:RTL8019AS結(jié)構(gòu)寄存器2(05H;Type?=?R,除了[7∶5]?=?R/W)。
(5)?CONFIG3:RTL8019AS結(jié)構(gòu)寄存器3(06H;Type?=?R,除了位[2∶1]?=?R/W)。
(6)?CONFIG4:RTL8019AS結(jié)構(gòu)寄存器4(0DH;Type?=?R)。
(7)?CSNSAV:CSN保存寄存器(08H;Type?=?R)。這個寄存器為以PNPCSN寄存器為標(biāo)記的CSN的備份。
(8)?HLTCLK:時鐘停止寄存器(09H;Type?=?W)。當(dāng)RTL8019AS體眠時這是唯一一個第一組寄存器中活動的寄存器。當(dāng)RTL8019AS不是低功耗模式時,可以向這個寄存器寫數(shù)據(jù)。(如CONFIG3寄存器中PWRDN位為0。)
(9)?INTR:中斷寄存器(0BH;Type?=?R)。該寄存器反映INT7~I(xiàn)NT0的狀態(tài)。
(10)?FMWP:閃存寫保護(hù)寄存器(0CH;Type?=?W)。這個寄存器為只寫。僅僅當(dāng)EEM0?=?EEM1?=?1時才可向寄存器寫數(shù)據(jù)。連續(xù)寫2字節(jié)的數(shù)據(jù)(57H然后A8H)到寄存器使閃存寫操作可用。寫其他數(shù)據(jù)到寄存器將重置寫次序且使閃存寫無效。如果寫操作無效,則所有閃存來自主機(jī)的寫命令將被忽略。6.3.2計算機(jī)網(wǎng)絡(luò)接口設(shè)計
1.基于RTL8019AS的網(wǎng)絡(luò)接口硬件設(shè)計
RTL8019部分電路設(shè)計如圖6.27所示。圖中包括網(wǎng)絡(luò)芯片RTL8019AS、網(wǎng)絡(luò)變壓器20F001N和網(wǎng)絡(luò)接口RJ45。SD0~SD7為8位數(shù)據(jù)線,接數(shù)據(jù)總線;SA0~SA19為地址線,SA5~SA7、SA10~SA19接地,SA8~SA9接高電平,因而本系統(tǒng)中真正用到的只有5條;SMEMRB和SMEMWB為存儲器讀/寫引腳,接高電平,選擇I/O模式讀/寫網(wǎng)絡(luò)芯片;TPOUT、TPIN為差分輸出/輸入引腳。RTL8019AS經(jīng)過20F001N進(jìn)行信號隔離處理后與RJ45相連,接入以太網(wǎng)。
2.RTL8019AS初始化
RTL8019AS內(nèi)部的16KB的RAM用于收/發(fā)緩沖,地址為0x4000~0x7FFF,收/發(fā)緩沖以頁為單位,每頁256B,共64頁,如果某頁沒有完全填滿數(shù)據(jù),則下包數(shù)據(jù)也不能繼續(xù)使用該頁,只能使用新的頁。一般將前12頁作為發(fā)送緩沖區(qū),分為兩個6頁的緩沖區(qū)(最大數(shù)據(jù)包占6頁),兩個發(fā)送緩沖區(qū)交替使用,可提高發(fā)送效率;后52頁作為接收緩沖區(qū)。圖6.27RTL8019AS電路圖該RAM是雙端口的,具有兩套總線,一套是RTL8019AS讀/寫該RAM,即本地DMA;另一套是單片機(jī)讀/寫該RAM,即遠(yuǎn)程DMA,要接收和發(fā)送數(shù)據(jù)包就必須對這塊RAM進(jìn)行DMA讀/寫。
RTL8019AS具有32位I/O地址,地址偏移量為00H~1FH,本系統(tǒng)中對應(yīng)于300H~31FH。其中,00H~0FH為16個寄存器地址,寄存器分為4頁,與NE2000兼容的只有前3頁,第4頁是RTI8019AS自己定義的,對于其他兼容NE2000的芯片無效。所以,為了保證驅(qū)動程序?qū)λ蠳E2000兼容的網(wǎng)卡都有效,不要去操作第4頁的寄存器。10H~17H為8個遠(yuǎn)程DMA地址,都可以用來做遠(yuǎn)程DMA地址,使用其中一個即可。微控制器通過讀/寫數(shù)據(jù)端口10H~17H實現(xiàn)對緩沖區(qū)的訪問。18H~1FH共8個地址為復(fù)位端口,它們的功能一樣,使用其中一個即可,用于RTL8019AS的熱復(fù)位。
TCP/IP協(xié)議族是一組不同層次上的多個協(xié)議的組合,分為鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。在鏈路層上,首先要解決RTL8019AS的驅(qū)動問題,驅(qū)動程序包括三部分:以太網(wǎng)接口芯片初始化程序、發(fā)送數(shù)據(jù)程序和接收數(shù)據(jù)程序,它們屏蔽了底層硬件處理細(xì)節(jié),同時向上層軟件提供與硬件無關(guān)的接口。驅(qū)動程序?qū)⒁逊庋b好的待發(fā)送數(shù)據(jù)按指定格式寫入芯片,并啟動發(fā)送命令,8019會自動把數(shù)據(jù)包轉(zhuǎn)換成物理幀格式在信道上傳輸;反之,8019收到物理信號后將其還原成數(shù)據(jù),按指定格式存放在芯片RAM中,以便主機(jī)程序取用,下面給出部分初始化程序,這些程序主要是對一些寄存器進(jìn)行設(shè)置。其中,reg00~reg0f為宏定義,代表RTL8019AS內(nèi)地址偏移量為00H~0FH的寄存器地址。reg00=0x21;/*CR,命令寄存器,選擇頁0,芯片停止運(yùn)行*/
reg01=0x4c;/*PSTART,頁起始寄存器*/
reg02=0x80;/*PSTOP,頁結(jié)束寄存器*/
reg03=0x4e;/*BNRY,邊界寄存器,用作讀指針*/
reg04=0x40;/*TPSR,發(fā)送頁起始寄存器*/
reg0c=0xcc;/*RCR,接收配置寄存器*/
reg0d=0xe0;/*TCR,發(fā)送配置寄存器*/
reg0e=0xc8;/*DCR,數(shù)據(jù)配置寄存器*/reg0f=0x00;/*IMR,中斷寄存器,屏蔽所有中斷*/
Page(1);/*切換為頁1*/
reg07=0x4d/*CURR,當(dāng)前頁寄存器,用作寫指針*/
reg08=0x00/*MAR0,多址地址寄存器均設(shè)置為0*/
reg09=0x00;//MAR1
reg0a=0x00;//MAR2reg0b=0x00;//MAR3
reg0c=0x00;//MAR4
reg0d=0x00;//MAR5
reg0e=0x00;//MAR6
reg0f=0x00;//MAR7
SetMaclD();/*設(shè)置芯片物理地址*/
reg00=0x22;/*選擇頁0,啟動芯片開始工作*/頁2的寄存器是只讀的,頁3的寄存器不是NE2000兼容的,所以均不用設(shè)置。首先選擇為頁0,網(wǎng)卡芯片為停止模式,因為還沒有進(jìn)行初始化。設(shè)置0x40~0x4B為網(wǎng)卡的發(fā)送緩沖區(qū),共12頁,剛好存儲兩個最大的以太網(wǎng)數(shù)據(jù)包。0x4C~0x7F為網(wǎng)卡的接收緩沖區(qū),共52頁。剛開始時網(wǎng)卡沒有接收到任何數(shù)據(jù)包,因此BNRY指向第一個接收緩沖區(qū)的頁0x4C。設(shè)置完頁0的寄存器后切換為頁1,由于設(shè)計中沒有使用93C46,因此需要在程序中指定芯片的物理地址,寫入PAR寄存器,然后啟動芯片開始工作。讀指針BNRY和寫指針CURIZ主要用來控制緩沖區(qū)的存取過程,保證能正確讀出和寫入數(shù)據(jù)。6.4.180386系統(tǒng)支持的系統(tǒng)外圍芯片組82360SL
繼Intel公司推出80386微處理器后,又相繼推出了80386系列的外圍接口芯片。其中,在1992年推出的Intel80386SLCPU和82360SL芯片最為突出。82386SLCPU芯片內(nèi)含頁式存儲器管理系統(tǒng)、CACHE控制器和總線驅(qū)動電路。82360SL不僅與ISA總線標(biāo)準(zhǔn)兼容,而且集成了主板上必備的芯片接口,如DMA控制器、中斷控制器、定時/計數(shù)器、實時時鐘、串行接口及并行接口等。6.4微機(jī)接口芯片組介紹
1.?DMA控制器
在82360SL中包含有兩個82C37DMA控制器,提供7個DMA通道。其中,DMA1中的四個通道用于8位數(shù)據(jù)傳送。DMA2的通道0與DMA1級聯(lián),通道1~3支持16位數(shù)據(jù)傳送(只有在偶地址時才傳送)。一次數(shù)據(jù)傳送,最大為64KB(對于8位傳送)或64千字(對于16位傳送)。另外,在其內(nèi)部還設(shè)有8個8位頁面寄存器,提供DMA通道的高8位地址。
2.中斷控制器
82360SL中包含有兩個82C59A中斷控制器,二者級聯(lián),一個是主片,另一個為從片,對外提供15個中斷請求輸入端,也稱為15級中斷。
3.可編程定時/計數(shù)器
82360SL中包含有兩個82C54定時/計數(shù)器。每個定時/計數(shù)器中均有三個計數(shù)器。其中,定時/計數(shù)器1中的計數(shù)器0用于系統(tǒng)計數(shù)器,產(chǎn)生日時鐘計時;計數(shù)器1用于動態(tài)存儲器DRAM刷新;計數(shù)器2用于產(chǎn)生揚(yáng)聲器的音頻信號。三個計數(shù)器輸入均為1.19318MHz的方波信號。定時/計數(shù)器2的三個計數(shù)器僅使用其中兩個。計數(shù)器0用于看門狗功能;計數(shù)器1用于產(chǎn)生警報信號,即當(dāng)電池電壓降低時,發(fā)出警告。定時/計數(shù)器2具有可選功能,可利用配置寄存器選擇其使用或者禁止。
4.實時時鐘
82360SL中包含有與MC146818等效的實時時鐘。除此之外,還可選擇外部實時時鐘,為外部實時時鐘提供控制信號。內(nèi)部實時時鐘配有256字節(jié)的CMOSRAM,可實現(xiàn)全日制計時,作為百年日歷,可通過編程在指定時間報警。在實時時鐘內(nèi)部具有保護(hù)功能,通過編程可選擇保護(hù)形式。
5.串行通信接口
82630SL中包含有兩個與NC16550等效的串行通信接口電路,可實現(xiàn)數(shù)據(jù)的串行傳送。
6.雙向并行高速I/O接口
82360SL內(nèi)部有一個8位雙向并行高速I/O接口。它有三種工作模式:ISA兼容、PS/2兼容及快速并行傳送。在ISA兼容模式中作為標(biāo)準(zhǔn)ISA總線并行口,只能輸出數(shù)據(jù);在PS/2兼容模式中可設(shè)定為一個輸入口,或者設(shè)定為輸出口??焖俨⑿袀魉湍J脚cPS/2模式相同,但傳送率較高。
另外,在82360SL中配有完整的專用譯碼器,支持外接8042鍵盤控制器、82077軟盤控制器和具有IDE接口的硬盤。通過編程可選擇CPU時鐘、DMA時鐘和鍵盤時鐘頻率,可控制DMA控制器插入等待周期,支持局部存儲器、ISA總線存儲器的刷新控制。6.4.280486系統(tǒng)支持的系統(tǒng)外圍芯片組82357ISP
有許多486微機(jī)系統(tǒng)采用EISA總線結(jié)構(gòu),同時有一些高檔的386系統(tǒng)也采用EISA結(jié)構(gòu)。很多EISA結(jié)構(gòu)的微處理系統(tǒng)采用Intel公司的EISA芯片82350系列進(jìn)行設(shè)計。82357ISP是這個系列中的一個芯片,稱為集成外圍電路。82357ISP是一種多功能外圍接口芯片,其中集成有DMA控制器、中斷控制器、定時/計數(shù)器、NMI產(chǎn)生電路以及總線判優(yōu)電路等。
1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政事業(yè)單位新財務(wù)制度
- 茶業(yè)合作社財務(wù)制度管理
- 農(nóng)業(yè)站財務(wù)制度
- 市科協(xié)財務(wù)制度
- 國稅網(wǎng)填會計財務(wù)制度
- 衛(wèi)生院內(nèi)控財務(wù)制度
- 養(yǎng)老院老人健康監(jiān)測人員激勵制度
- 潮州膳食管理制度細(xì)則(3篇)
- 刷白的施工方案(3篇)
- ab樁施工方案(3篇)
- QGDW10384-2023輸電線路鋼管塔加工技術(shù)規(guī)程
- 《養(yǎng)老機(jī)構(gòu)智慧運(yùn)營與管理》全套教學(xué)課件
- 2025年本科院校圖書館招聘面試題
- 電子商務(wù)畢業(yè)論文5000
- 2025-2026學(xué)年人教版(2024)初中生物八年級上冊教學(xué)計劃及進(jìn)度表
- 醫(yī)療衛(wèi)生輿情課件模板
- 高壓注漿施工方案(3篇)
- 高強(qiáng)混凝土知識培訓(xùn)課件
- (高清版)DB11∕T 1455-2025 電動汽車充電基礎(chǔ)設(shè)施規(guī)劃設(shè)計標(biāo)準(zhǔn)
- 暖通工程施工環(huán)保措施
- 宗族團(tuán)年活動方案
評論
0/150
提交評論