微機第8章學習資料_第1頁
微機第8章學習資料_第2頁
微機第8章學習資料_第3頁
微機第8章學習資料_第4頁
微機第8章學習資料_第5頁
已閱讀5頁,還剩221頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章可編程接口芯片及應用8.1可編程定時器/計數器芯片8253/82548.2可編程并行接口芯片8255A8.1可編程定時器/計數器芯片8253/8254實現定時的方法有三種:軟件定時、不可編程的硬件定時和可編程的硬件定時。1)軟件定時占用CPU資源,降低了CPU的利用率;2)不可編程的硬件定時在硬件連接好以后,定時值和定時范圍不能由程序來控制和改變,使用不靈活;3)可編程定時器/計數器定時值及其范圍可以很容易地由軟件來控制和改變,能夠滿足各種不同的定時和計數要求,因此得到了廣泛的應用。8.1.18253的結構與功能

1.8253的引腳

8253是24腳雙列直插式芯片,用+5V電源供電。芯片內有三個相互獨立的16位定時/計數器。8253引腳及功能結構

2.8253的內部結構它由數據總線緩沖器、讀/寫邏輯、控制字寄存器以及3個獨立的16位計數器組成。圖8.28253內部結構框圖

1)?3個獨立的16位計數器每個計數器具有相同的內部結構。它包括一個8位的控制寄存器、一個16位的計數初值寄存器CR、一個16位的減1計數器CE和一個16位的輸出鎖存寄存器OL。計數器內部結構框圖

2)控制寄存器控制寄存器用來保存來自CPU的控制字,每個計數器都有一個。控制字將決定計數器的工作方式、計數形式及輸出方式,亦決定如何裝入計數初值。

8253的3個控制寄存器只占用一個地址號,而靠控制字的最高兩位來確定將控制信息送入哪個計數器的控制寄存器中保存。控制寄存器只能寫入,不能讀出。

3)數據緩沖器數據緩沖器是三態、雙向8位緩沖器。它用于8253和系統數據總線的連接。CPU通過數據緩沖器將控制命令字和計數值寫入8253計數器,或者從8253計數器中讀取當前的計數值。

4)讀/寫邏輯讀/寫邏輯的任務是接收來自CPU的控制信號,完成對8253內部操作的控制。這些控制信號包括讀信號RD、寫信號WR、片選信號CS以及用于片內寄存器尋址的地址信號A0和A1。當片選信號有效,即CS=0時,讀寫邏輯才能工作。該控制邏輯根據讀/寫命令及送來的地址信息,決定三個計數器和控制寄存器中的哪一個工作,并控制內部總線上數據傳送的方向。

8253共占用4個I/O地址。當A1A0=00時,計數器0當A1A0=01和10時,分別為計數器1和計數器2。當A1A0=11時,是3個計數器內的3個控制寄存器的共用地址,至于CPU是給哪個計數器送控制字,則由控制字中的最高兩位的編碼來決定。表8.18253端口地址及內部操作

8253計數器在工作之前。用戶必須對其進行初始化編程:首先CPU用輸出指令向控制寄存器送控制字,然后再用輸出指令向計數初值寄存器CR預置計數/定時的初值。啟動工作后,CR中的初值就送入減1計數器CE對CLK輸入的計數/定時脈沖信號進行減1計數。當CE中的內容減為0,表示計數/定時到,則OUT端輸出信號。輸出信號的波形形式由工作方式決定。8.1.28253的編程

8253在工作之前,用戶首先要為某一計數器(計數器0

2)寫入控制字以確定其工作方式;寫入定時/計數初值;在定時/計數工作過程中,有時還需要讀取某計數器當前的計數值。

1.8253的控制字格式

8253的控制字格式如圖所示。圖8.48253控制字格式

2.8253的讀/寫操作

1)寫操作8253在開始工作之前,CPU要對其進行初始化編程(寫入控制字和計數初值),具體應注意以下兩點:①對每個計數器,必須先寫控制字,后寫計數初值。因為后者的格式是由前者決定的。②寫入的計數初值必須符合控制字(D5D4兩位)決定的格式。16位數據應先寫低8位,再寫高8位。當給8253中的多個計數器進行初始化編程時,其順序可以任意,但對每個計數器進行初始化時必須遵循上述原則。

2)讀操作所謂讀操作是指讀出某計數器的當前計數值到CPU中。有兩種讀取當前計數值的方法:①先使計數器停止計數(在GATE端加低電平或關閉CLK脈沖):根據送入的控制字中的D5D4位的狀態,用一條或兩條輸入指令讀出OL(即CE)的內容。②在計數的過程中不影響CE的計數而讀取計數值:為達此目的,應先對8253寫入一個具有鎖存功能的控制字,即D5D4位應為00,這樣就可以將當前的CE內容鎖存入OL中,然后再用輸入指令將OL的內容讀到CPU中。當CPU讀取了計數值后,或對計數器重新進行初始化編程后,8253會自動解除鎖存狀態,OL中的值又隨減1計數器CE值變化。例8.1

設8253芯片的端口地址為388H

38BH。現要求計數器0工作在方式3,計數初值為2354,十進制計數;計數器1工作在方式2,計數初值為18H,二進制計數。試根據上述要求編寫初始化程序及讀取計數器0當前計數值的程序。;計數器0的初始化程序

MOV DX,38BH ;給計數器0送控制字

MOV AL,00110111B OUT DX,AL MOV DX,388H ;送計數初值的低8位

MOV AL,54H OUT DX,AL MOV AL,23H ;送計數初值的高8位

OUT DX,AL;計數器1的初始化程序

MOV DX,38BH ;給計數器1送控制字

MOV AL,01010100B OUT DX,AL MOV DX,389H ;計數初值送低8位

MOV AL,18H OUT DX,AL;計數器0當前計數值讀出程序

MOV DX,38BH ;送計數器0當前計數值

MOV AL,00H;鎖存命令

OUT DX,AL MOV DX,388H ;讀出當前計數值的低8位

IN AL,DX MOV CL,AL IN AL,DX ;讀出當前計數值的高8位

MOV CH,AL8.1.38253的工作方式

8253有六種不同的工作方式。在不同的工作方式下,計數過程的啟動方式不同,OUT端的輸出波形不同,自動重復功能、GATE的控制作用以及更新計數初值對計數過程的影響也不完全相同。同一芯片中的三個計數器,可以分別編程選擇不同的工作方式。

1.方式0——計數結束產生中斷這是一種軟件啟動、不能自動重復的計數方式。圖8.5方式0的波形圖8.6方式0時GATE信號的作用

2.方式1——可編程單次脈沖這是一種硬件啟動、不能自動重復,通過GATE的正跳變可使計數過程重新開始的計數方式。對應GATE的每一個正跳變,計數器都輸出一個寬度為N*TCLK(其中N為計數初值,TCLK為CLK信號的周期)的負脈沖,因此稱這種方式為可編程單次脈沖方式。圖8.7方式1的波形

3.方式2——分頻工作方式方式2既可以用軟件啟動(GATE=1時寫入計數初值后啟動),也可以用硬件啟動(GATE=0時寫入計數初值后并不立即開始計數,等GATE由低變高時啟動計數)。方式2一旦啟動,計數器就可以自動重復地工作。

OUT輸出信號的頻率為CLK信號頻率的1/N,即N次分頻,故稱這種工作方式為分頻工作方式。圖8.8方式2的波形

4.方式3——方波發生器其輸出是可以自動重復的周期性方波,輸出的方波周期為N*TCLK。圖8.9方式3的波形若計數初值為奇數,則計數的前半周期為(N+1)/2,計數的后半周期為(N?1)/2。

5.方式4——軟件觸發選通方式4是一種軟件啟動、不自動重復的計數方式。圖8.10方式4的波形

6.方式5——硬件觸發選通方式5是一種硬件啟動、不自動重復的計數方式。圖8.11方式5的波形表8.28253工作方式比較8.1.58253應用舉例例8.2

使用8253計數器2產生頻率為40kHz的方波,設8253的端口地址為0040H

0043H,已知時鐘端CLK2輸入信號的頻率為2MHz。試設計8253與8088總線的接口電路,并編寫產生方波的程序。為了使計數器2產生方波,應使其工作于方式3,輸入的2MHz的CLK2時鐘信號進行50次分頻后可在OUT2端輸出頻率為40kHz的方波,因此,對應的控制字應為10010111B,計數初值為十進制數50。MOV AL,10010111B ;對計數器2送控制字MOV DX,0043HOUT DX,ALMOV AL,50H ;送計數初值50MOV DX,0042HOUT DX,AL圖8.128253與8088總線的連接例8.38253在IBMPC/XT機中的應用。圖8.138253在IBMPC/XT機中的連接

8253計數器0、計數器1、計數器2以及控制寄存器的端口地址分別為40H、41H、42H和43H。

8253三個計數器使用相同的時鐘頻率,它們是由8284時鐘發生器輸出時鐘信號PCLK,再經過D觸發器74LS175二分頻后得到的,頻率為1.19MHz,8253的GATE0和GATE1接+5V,始終處于有效狀態,GATE2接8255的PB0。

1)計數器0

該計數器向系統日歷時鐘提供定時中斷,工作方式為方式3,設置的控制字為36H。門控GATE0接+5?V為常啟狀態,計數器計數初值預置為0(即65536)。因此,OUT0輸出方波的頻率為1.19MHz/65536=18.21?Hz,即每秒產生18.2次中斷,或者說每隔55?ms申請一次日歷時鐘中斷。其程序如下:MOV AL,36H ;設置計數器0為工作方式3,采用二進制計數OUT 43H,AL ;寫入控制字MOV AL,0 ;計數值OUT 40H,AL ;寫入低字節計數值OUT 40H,AL ;寫入高字節計數值

2)計數器1

該計數器向DMA控制器定時發送動態存儲器刷新請求,它選用方式2工作,設置的控制字為54H。門控GATE1接+5?V為常啟狀態。OUT1輸出從低電平變為高電平使觸發器置1,Q端輸出一個正電平信號,作為內存刷新的DMA請求信號DRQ0。

DRAM每個單元要求在2ms內必須刷新一次。實際芯片每次刷新完成512個單元的刷新,故經過128次刷新操作就能將全部芯片的64KB個單元刷新一遍。由此可以算出每隔2ms/128=15.6?

s進行一次刷新操作,將能保證每個單元在2?ms內都刷新一遍。為實現上述要求,將計數器1設置為工作方式2,計數初值取為18,這樣,每隔18

1/1.19=15.126?

s就可產生一次DMA請求,從而可滿足DRAM的刷新要求。其程序如下:MOV AL, 54H ;選擇計數器1,方式2,

MOV 43H,AL;只寫入低8位,二進制計數

OUT AL,12H;預置計數初值18OUT 41H,AL

3)計數器2

該計數器控制揚聲器發聲,作為機器的報警信號或伴音信號,選用方式3工作。計數器2輸出的方波經電流驅動器75477放大后驅動揚聲器發聲。門控GATE2接8255的PB0,用它控制計數器2的計數過程。輸出OUT2經過一個與門,這個與門受PB1控制,所以揚聲器由PB0和PB1來控制發聲。在IBMPC/XT機的BIOS中有一個聲響子程序BEEP,它將計數器2設置為工作方式3,作為方波發生器輸出約1KHz(896)的方波,經濾波驅動后推動揚聲器發聲。程序如下所示:BEEP PROC MOV AL,10110110B ;設計數器2為方式3,二進制計數

OUT 43H,AL ;按先低后高順序寫入16位計數初值

MOV AX,0533H ;初值為0533H=1331,1.19MHz/1331=896Hz OUT 42H,AL ;寫入低8位

MOV AL,AH OUT 42H,AL ;寫入高8位

IN AL,61H ;讀8255的B口原輸出值

MOV AH,AL ;將B口原值送AH保存

OR AL,03H ;使PB1和PB0位均為1 OUT 61H,AL ;輸出使揚聲器發聲

SUB CX,CX G7: LOOP G7 ;延時

DEC B1 ;B1為控制發聲長短的入口條件

JNZ G7 ;B1=6為長聲,B1=1為短聲

MOV AL,AH OUT 61H,AL ;恢復8255的B口原值,停止發聲

RETBEEP ENDP8.2可編程并行接口芯片8255A8.2.18255A的引腳與結構

1.8255A的引腳

8255A是可編程的并行輸入輸出接口芯片,它具有三個8位并行端口(A口、B口和C口),具有40個引腳,雙列直插式封裝,由+5?V供電。

圖8.148255A引腳及功能示意圖(a)引腳;(b)功能示意圖表8.38255A各端口讀/寫操作時的信號關系

A1A0操作01000寫端口A01001寫端口B01010寫端口C01011寫控制寄存器00100讀端口A00101讀端口B00110讀端口C00111無操作WR

2.8255A的內部結構

1)端口A、端口B和端口C

端口A、端口B和端口C都是8位端口,可以選擇作為輸入或輸出。還可以將端口C的高4位和低4位分開使用,分別作為輸入或輸出。當端口A和端口B作為選通輸入或輸出的數據端口時,端口C的指定位與端口A和端口B配合使用,用做控制信號或狀態信號。

2)?A組和B組控制電路圖8.158255A內部結構框圖8.2.28255A的工作方式與控制字

1.8255A的工作方式

8255A在使用前要先寫入一個工作方式控制字,以指定A、B、C三個端口各自的工作方式。8255A共有三種工作方式:方式0——基本輸入輸出方式,即無須聯絡就可以直接進行8255A與外設之間的數據輸入或輸出操作。A口、B口、C口的高4位和低4位均可設置為方式0。方式1——選通輸入輸出方式,此時8255A的A口和B口與外設之間進行輸入或輸出操作時,需要C口的部分I/O線提供聯絡信號。只有A口和B口可工作于方式1。方式2——選通雙向輸入輸出方式,即同一端口的I/O線既可以輸入也可以輸出,只有A口可工作于方式2。此種方式下需要C口的部分I/O線提供聯絡信號。

2.8255A的控制字

1)工作方式選擇控制字

8255A的工作方式可由CPU寫一個工作方式選擇控制字到8255A的控制寄存器來選擇。圖8.168255的工作方式選擇控制字

2)?C口按位置位/復位控制字

8255A的C口具有位控功能,即端口C的8位中的任一位都可通過CPU向8255A的控制寄存器寫入一個按位置位/復位控制字來置1或清0,而C口中其他位的狀態不變。例如,要使端口C的PC4置位的控制字為

00001001B(09H),使該位復位的控制字為

00001000B(08H)。

應注意,C口的按位置位/復位控制字必須跟在方式選擇控制字之后寫入控制字寄存器,即使僅使用該功能,也應先選送一個方式控制字。方式選擇控制字只需寫入一次,之后就可多次使用C口按位置位/復位控制字對C口的某些位進行置1或清0操作。圖8.178255A的C口按位置位/復位控制字8.2.3各種工作方式的功能

1.方式0——基本輸入輸出方式方式0無須聯絡就可以直接進行8255A與外設之間的數據輸入或輸出操作。它適用于無須應答(握手)信號的簡單的無條件輸入/輸出數據的場合,即輸入/輸出設備始終處于準備好狀態。在此方式下,A口、B口、C口的高4位和低4位可以分別設置為輸入或輸出,即8255A的這四個部分都可以工作于方式0。當數據從外設送往8255A時為輸入,反之,數據從8255A送往外設則為輸出。圖8.18方式0查詢方式的接口電路方式0也可以用于查詢方式的輸入或輸出接口電路,此時端口A和B分別作為一個數據端口,而用端口C的某些位作為這兩個數據端口的控制和狀態信息。例中將8255A設置為:A口輸出,B口輸入,C口高4位輸入(現僅用PC7、PC6兩位輸入外設的狀態),C口低4位輸出(現僅用PC1、PC0兩位輸出選通及清除信號)。此時8255A的工作方式控制字為10001010B(8AH)。與下面介紹的選通輸入輸出方式(方式1)和選通雙向輸入輸出方式(方式2)相比,方式0的聯絡信號線可由用戶自行安排(方式1和方式2中使用的C口聯絡線是已定義好的),且只能用于查詢,不能實現中斷。

2.方式1——選通輸入輸出方式與方式0相比,它的主要特點是當A口、B口工作于方式1時,C口的某些I/O線被定義為A口和B口在方式1下工作時所需的聯絡信號線,這些線已經定義,不能由用戶改變。A口、B口可初始化為方式1,可以作為輸出口也可以作為輸入口,C口的一些位提供聯絡信號STB:選通輸入;ACK:外設響應IBF:輸入緩沖器滿;OBF:輸出緩沖器滿INTR:中斷請求,INTE:中斷允許STB(Strobe):選通信號,輸入,低電平有效。當STB有效時,允許外設數據進入端口A或端口B的輸入數據緩沖器。STBA接PC4,STBB接PC2。

IBF(InputBufferFull):輸入緩沖器滿信號,輸出,高電平有效。當IBF有效時,表示當前已有一個新數據進入端口A或端口B緩沖器,尚未被CPU取走,外設不能送新的數據。一旦CPU完成數據讀入操作后,IBF便復位(變為低電平)。

INTR(InterruptRequest):中斷請求信號,輸出,高電平有效。在中斷允許信號INTE=1且IBF=1的條件下,由STB信號的上升沿產生,該信號可接至中斷管理器8259A作中斷請求。它表明數據端口已輸入一個新數據。若CPU響應此中斷請求,則讀入數據端口的數據,并由RD信號的下降沿使INTR復位(變為低電平)。

INTE(InterruptEnable):中斷允許信號,高電平有效。它是8255A內部控制8255A是否發出中斷請求信號(INTR)的控制信號。這是由軟件通過對C口的置位或復位來實現對中斷請求的允許或禁止的。端口A的輸入中斷請求INTRA可通過對PC4(INTEA)的置位或復位加以控制:PC4置1,允許中斷;PC4清0,則屏蔽中斷。端口B的中斷請求INTRB可通過對PC2(INTEB)的置位或復位加以控制。8255A工作方式1——輸入INTE

&STBIBFINTRRD數據A/B口1STB

IBF=1

INTR=1

CPURD

IBF=0

INTR=0INTE=11)A口和B口均為輸入圖8.19方式1輸入時端口線的功能圖8.20方式1輸入信號時序圖

OBF(OutputBufferFull):輸出緩沖器滿信號,輸出,低電平有效。當CPU把數據寫入端口A或B的輸出緩沖器時,寫信號WR的上升沿把OBF置成低電平,通知外設到端口A或B來取走數據,當外設取走數據時向8255A發應答信號ACK,ACK的下降沿使OBF恢復為高電平。

ACK(Acknowledge):外設應答信號,輸入,低電平有效。當ACK有效時,表示CPU輸出到8255A的數據已被外設取走。

INTR(InterruptRequest):中斷請求信號,輸出,高電平有效。該信號由ACK的后沿(上升沿)在INTE=1且OBF=1的條件下產生,該信號使8255A向CPU發出中斷請求。若CPU響應此中斷請求,則向數據口寫入一新的數據,寫信號WR上升沿(后沿)使INTR復位,變為低電平。

INTE(InterruptEnable):中斷允許信號,與方式1輸入類似,端口A的輸出中斷請求INTRA可以通過對PC6的置位或復位來加以允許或禁止。端口B的輸出中斷請求信號INTRB可以通過對PC2的置位或復位來加以允許或禁止。8255A工作方式1——輸出1INTE

&ACKOBFINTRWR數據A/B口CPUWROBF=0,ACK

OBF=1

INTR=1

INTE=12)?A口和B口均為輸出圖8.21方式1輸出時端口線的功能圖8.22方式1輸出時信號時序圖

3)混合輸入與輸出在實際應用中,8255A端口A和端口B也可能出現一個端口工作于方式1輸入,另一個工作于方式1輸出的情況,這有以下兩種情況:圖8.23方式1A口輸入B口輸出圖8.24方式1A口輸出B口輸入

3.方式2——選通雙向輸入輸出方式選通雙向輸入輸出方式,即同一端口的I/O線既可以輸入也可以輸出,只有A口可工作于方式2。此時C口有5條線(PC7

PC3)被規定為聯絡信號線。剩下的3條線(PC2

PC0)可以作為B口工作于方式1時的聯絡線,也可以獨立工作于方式0。8255A工作方式211INTE2&STBIBFINTRRD數據A口ACKOBFINTE1&ORWR圖8.258255A工作于方式2時端口線的功能8.2.48255A的應用舉例例8.48255A初始化編程。設8255A的A口工作方式1輸出,B口工作方式1輸入,PC4和PC5輸入,禁止B口中斷。設片選信號CS由A9

A2=10000000確定。試編寫程序對8255A進行初始化。根據題意,設計接口電路如圖8.26所示。圖8.268255方式1接口電路及控制字初始化程序如下:MOV AL,10101110B ;控制字送AMOV DX,1000000011B ;8255A控制字寄存器地址送DXOUT DX,AL ;控制字送8255A的控制寄存器MOV AL,00001101B ;PC6置1,允許A口中斷OUT DX,ALMOV AL,00000100B ;PC2置0,禁止B口中斷OUT DX,AL

例8.6

(方案1)

利用8255A作為兩機并行通信接口。兩臺PC機通過8255A構成并行數據傳送接口,A機發送數據,B機接收數據。A機一側的8255A工作于方式1輸出,從PA7

PA0發送數據,PC3、PC7和PC6提供A口工作于方式1時的聯絡信號INTR、OBF和ACK。B機一側的8255A工作于方式0輸入,從PA7

PA0接收數據,PC4和PC0選作聯絡信號。圖8.28兩臺PC機并行通信接口電路1010000010011000A機CPU總線PC3(INTR)A機8255APC(READY)4PA7--PA0)OBF(PC7)ACK(PC6B機CPU總線PA7--PA0B機8255APC0

8259

其工作過程如下:A機PA口輸出數據,PC7(OBF)自動有效信號,B機查詢到(B機PC4READY)有效后,PA口輸入數據,通過軟件在PC0上產生ACK有效信號,ACK的上升沿使A機的PC3上產生有效的INTR信號,A機CPU中斷,發送下一個數據,如此不斷重復,直到發送完所有的數據為止。假設兩臺PC機傳送1KB數據,發送緩沖區為BUFA,接收緩沖區為BUFB,

A、B兩機的8255A的端口地址均為300H

303H。驅動程序如下:;A機的發送程序片段MOV AX,DATA

MOV DS,AX

;設置A機發送數據緩沖區段地址LEA BX,BUFA

;設置A機發送數據緩沖區偏移地址MOV CX,0400H

;設置發送字節數;對A機8255A進行初始化MOV DX,303H

;指向A機8255A的控制寄存器MOV AL,10100000B;8255A指定為工作方式1輸出OUT DX,AL

MOV AL,00001101B;置發送中斷允許INTEA=1OUT DX,AL ;(PC6)

;發送數據

MOV DX,300H ;向A口寫1個數據,

MOV AL,[BX] ;自動產生一個OBF信號

OUT DX,AL ;

INC BX ;緩沖區指針加1DEC CXA1:STIHLTJMPA1

;等待中斷

IRQ:MOVAL,

[BX] OUT DX,AL INC BX ;緩沖區指針加1 LOOPA2MOV DX,303H MOV AL,00001100B ;清發送中斷允許

OUT DX,AL;INTEA=1A2:MOVAL,20HOUT20H,ALIRET;B機接收數據

MOV AX,DATA

MOV DS,AX

;設B機接收緩沖區段地址LEA BX,BUFB

;設B機接收緩沖區偏移地址MOV CX,400H

;置接收字節數計數器;對B機的8255A初始化MOV DX,303H

;指向B機8255A的控制寄存器MOV AL,10011000B

;設A口和C口高4位為方式0輸入OUT DX,AL

;C口低4位為方式0輸出MOV AL,00000001B

;置PC0=ACK=1OUT DX,AL

LOOP0:MOVDX,302H ;指向C口LOOP1:IN AL,DX ;查A機的OBF(B機的PC4)=0?

AND AL,10H;即查詢A機是否發來數據

JNZ LOOP1 ;若未發來數據,則等待

MOV DX,300H;若發來數據,則從A口讀數據

IN AL,DX MOV [BX],AL ;存入接收緩沖區

MOV DX,303H ;產生ACK信號,并發回A機

MOV AL,0 ;PC0置0OUT DX,AL ;NOP ;延時,NOPMOV AL,01H ;PC0置1,使ACK變為高電平,OUT DX,AL ;INC BX ;緩沖區指針加1DEC CX ;計數器減1JNZ LOOP0 ;不為0,繼續MOV AX,4C00H ;INT 21H ;返回

例8.6

(方案2)利用8255A作為兩機并行通信接口。

A機一側的8255A工作于方式0輸出,從PA7

PA0發送數據,PC3和PC6提供A口工作于聯絡信號STB和READY。B機一側的8255A工作于方式1輸入,從PA7

PA0接收數據,PC0

、PC1和PC2聯絡信號INTR、IBF和STB

。圖8.28兩臺PC機并行通信接口電路1000100010110000A機CPU總線PC0(INTR)A機8255APC(STB)2PA7--PA0)STB(PC3)READY(PC6B機CPU總線PA7--PA0B機8255APC(IBF

1

8259

其工作過程如下:A機PA口查詢READY低電平后,輸出數據,通過軟件在PC3產生(STB)有效信號,B機收到STB,自動產生IBF、INTR有效信號,B機CPU中斷,PA口輸入數據,IBF自動變為低電平,如此不斷重復,直到發送完所有的數據為止。;A機的發送程序片段MOV AX,DATA

MOV DS,AX

;設置A機發送數據緩沖區段地址LEA BX,BUFA

;設置A機發送數據緩沖區偏移地址MOV CX,0400H

;設置發送字節數;對A機8255A進行初始化MOV DX,303H

;指向A機8255A的控制寄存器MOV AL,10001000B;8255A指定為工作方式0輸出OUT DX,AL

MOV AL,00000111B

;置PC3=STB=1OUT DX,AL

LOOP0:MOVDX,302H ;指向C口LOOP1:IN AL,DX ;查A機READY=0?

AND AL,40H;即查詢B機是否準備好接收

JNZ LOOP1 ;若未準備好則等待

MOV DX,300H;若準備好,則從A口發數據

MOV AL,

[BX] ;從緩沖區取數據輸出

OUT

DX,ALMOV DX,303H ;產生STB信號,并發回A機

MOV AL,0 6H ;PC3置0

OUT DX,AL ;NOP ;延時,NOPMOV AL,07H ;PC3置1,使STB變為高電平,OUT DX,AL ;INC BX ;緩沖區指針加1DEC CX ;計數器減1JNZ LOOP0 ;不為0,繼續MOV AX,4C00H ;INT 21H ;返回

;B機接收數據

MOV AX,DATA

MOV DS,AX

;設B機接收緩沖區段地址LEA BX,BUFB

;設B機接收緩沖區偏移地址MOV CX,400H

;置接收字節數計數器;對B機的8255A初始化MOV DX,303H

;指向B機8255A的控制寄存器MOV AL,1011000B

;設A口為方式1輸入OUT DX,AL

;MOV AL,00000101B;置接收中斷允許INTEB=1OUT DX,AL ;(PC2)

MOV DX,300H ;A1:STIHLTJMPA1

;等待中斷

IRQ:

IN AL,

DX MOV[BX],

AL INC BX ;緩沖區指針加1 LOOPA2MOV DX,303H MOV AL,00000100B ;清發送中斷允許

OUT DX,AL;INTEB=1A2:MOVAL,20HOUT20H,ALIRET8.3串行通信及可編程串行接口芯片8251A在數據通信與計算機領域中,有兩種基本的數據傳送方式:串行通信與并行通信。有關并行通信的知識已在上一節做了詳細介紹。本節將介紹串行通信的概念、特點及接口電路。隨著大規模集成電路技術的發展,通用的可編程串行同步/異步接口芯片種類越來越多。常用的有Intel的8251A,NationalSemiconductor的8250,Motorola的6850以及Zilog的SIO等。本節重點介紹Intel的8251A串行同步/異步接口芯片的工作原理及使用方法。8.3.1串行通信的基本概念

1.概述計算機之間以及計算機與一些常用的外部設備之間的數據交換,往往需要采用串行通信的方式。在計算機遠程通信中,串行通信更是一種不可缺少的通信方式。在并行通信中,數據有多少位就要有多少根傳輸線,而串行通信中只需要一條數據傳輸線,所以串行通信可以節省傳送線。在位數較多、傳輸距離較長的情況下,這個優點更為突出,但串行通信的速度比并行通信的低。2.串行通信中數據的傳送模式圖8.29串行通信中數據的傳送模式(a)單工通信模式;(b)半雙工通信模式;(c)全雙工通信模式

(1)單工(Simplex)通信模式:該模式僅能進行一個方向的數據傳送,數據只能從發送器A發送到接收器B。

(2)半雙工(HalfDuplex)通信模式:該模式能夠在設備A和設備B之間交替地進行雙向數據傳送。即數據可以在一個時刻從設備A傳送到設備B,而另一時刻可以從設備B傳送到設備A,但不能同時進行。

(3)全雙工(FullDuplex)通信模式:該模式下設備A或B均能在發送的同時接收數據。

3.串行通信中的異步傳送與同步傳送在數據通信中為使收、發信息準確,收發兩端的動作必須相互協調配合。這種協調收發之間動作的措施稱為“同步”。在串行通信中數據傳送的同步方式有異步傳送和同步傳送兩種。

1)異步傳送所謂異步傳送,是指發送設備和接收設備在約定的波特率(每秒鐘傳送的位數)下,不需要嚴格的同步,允許有相對的延遲。即兩端的頻率差別在1/10以內,就能正確地實現通信。在進行異步傳送時必須確定字符格式及波特率。(1)字符格式。字符格式即字符的編碼形式及規定。圖8.30異步傳送數據格式(a)有空閑位;(b)無空閑位起始位:每個字符的開始必須是持續一個比特時間的邏輯“0”電平,標志著一個字符的開始。數據位:有5

8位,緊跟起始位之后,是字符中的有效數據位。傳送字符時,先送低位,后送高位。奇偶校驗位:僅占一位。可根據需要設置為奇校驗或偶校驗,也可以不設校驗位。停止位:可設置為1位、1.5位或2位,并規定為邏輯“1”狀態。每個字符傳送前,其傳輸線上必須處于高電平“1”狀態,這樣,當傳輸線由“1”變為“0”狀態,并持續1比特時間時,就表明是字符的起始位,下面傳送的位信息必然是有效數據位信息。當一個字符傳送完后,立即傳送下一個字符,那么,下一個字符的起始位便緊挨著前一個字符的停止位(即無空閑位),如圖8.30(b)所示。如果后續數據跟不上,則在停止位后加高電平的空閑位等待下一個字符的到來,如圖8.30(a)所示。可以看出,異步串行通信時,字符的發送和接收可以隨時地間斷進行,不受時間限制。因此,這種傳送方式在同一字符內各位是以固定的時間傳送的,而字符間是異步的。這種異步傳送是靠收發雙方在字符格式中設置起始位和停止位來協調“同步”的。在計算機通信中,傳送的數據格式可通過對可編程的串行接口電路設置相應的命令字來確定。在同一個通信系統的發送站和接收站,雙方約定的字符格式必須一致,否則將會造成數據傳送的錯誤與混亂。串行通信的異步傳送方式每發送一個字符都需要附加起始位和停止位,從而使有效數據傳輸率降低,故該方式只適用于數據量較少或對傳輸率要求不高的場合。對于需要快速傳輸大量數據的場合,一般應采用串行同步傳送方式。

(2)波特率。波特率(Baudrate)是指每秒鐘傳送的二進制位數,單位為位/秒(bit/s)。串行通信時發送端和接收端的波特率必須一致。設計算機數據傳送的速率是120字符/s,而每個字符假設有10個比特(bit)位(包括1個起始位、7個數據位、1個奇偶校驗位和1個停止位),則其波特率為:120字符/s

10bit/字符=1200bit/s=1200波特最常用的波特率有110、300、600、1200、1800、2400、4800、9600和19200。通常用選定的波特率除以10來估計每秒鐘可以傳送的字符數。

2)同步傳送所謂同步傳送,就是指取掉異步傳送時每個字符的起始位和停止位,僅在數據塊開始處用1

2個同步字符來表示數據塊傳送的開始,然后串行的數據塊信息以連續的形式發送,每個發送時鐘周期發送一位信息,故同步傳送中要求對傳送信息的每一位都必須在收、發兩端嚴格保持同步,實現“位同步”。同步傳送時一次通信傳送信息的位數幾乎不受限制,通常一次通信傳送的數據可達幾十到幾百個字節。這種通信的發送器和接收器比較復雜,成本較高。用于同步通信的數據格式有很多種,圖8.31給出了常見的幾種。圖中,除數據場的字節數不受限制外,其他均為8位。圖8.31同步傳送數據格式(a)單同步數據格式;(b)雙同步數據格式;(c)SDLC數據格式;(d)HDLC數據格式;(e)外同步格式圖(a)為單同步數據格式,傳送一幀數據僅使用一個同步字。當接收端檢測到一個完整的同步字后,就連續接收數據。一幀數據結束,便進行16位的循環冗余校驗(CyclicRedundancyCheck)——CRC校驗,以校驗所傳送的數據中是否出現錯誤。圖(b)為雙同步數據格式,這時利用兩個同步字進行同步。圖(c)是IBM公司推出的同步數據鏈路控制數據格式SDLC(SynchronousDataLinkControl)。圖(d)是ISO推薦的高級數據鏈路控制數據格式HDLC(High-levelDataLinkControl)。這兩種格式的細節本書不做詳細說明。圖(e)是一種外同步方式所采用的數據格式。該方式在發送的一幀數據中不包含同步字。同步是由專門的控制線產生一個同步信號SYNC加到串行接口上,當SYNC一到達,表明數據場開始,接口就連續接收數據。

4.信號的調制與解調在計算機系統中,主機與外設之間所傳送的是用二進制“0”和“1”表示的數字信號。數字信號的傳送要求占用很寬的頻帶,且還具有很大的直流分量,因此數字信號僅適用于在短距離的專用傳輸線上傳輸。在進行遠距離的數據傳輸時,一般是利用電話線作通信線路。由于電話線不具備數字信號所需的頻帶寬度,如果數字信號直接用電話線傳輸,信號將會出現畸變,致使接收端無法從發生畸變的數字信號中識別出原來的信息。因此必須采取一些措施,在發送端把數字信號轉換成適于傳輸的模擬信號,而在接收端再將模擬信號轉換成數字信號。前一種轉換稱為調制,后一種轉換稱為解調。完成調制、解調功能的設備叫做調制解調器(Modem)。調制解調器的類型比較多,但基本可分為兩類:異步調制解調器和同步調制解調器。異步調制解調器適用于異步通信方式,它不提供同步時鐘信號。常用的調制方法是頻移鍵控(FSK,FrequencyShiftKeying)或稱為兩態調頻。如圖8.32所示,頻移鍵控的基本原理是把“0”和“1”兩種數字信號分別調制成兩個不同頻率的音頻信號。頻移鍵控適用于低速率傳送,一般是在傳輸波特率在1200以下時可采用FSK調制。圖8.32FSK調制原理(a)數字信號;(b)FSK信號同步調制解調器主要用于高速同步通信方式,常用的調制方式是調相和正交幅度調制等。調相方式就是相移鍵控(PSK,PhaseShiftKeying),它是以相位變化來表示“1”和“0”。假定有兩個相位差180°的正弦波(如圖8.33(a)、(b)所示),當數字信號為1時,把其中一個波形(圖(a)所示)與傳輸線路接通;當數字信號為“0”時,將另一個波形(圖(b)所示)與傳輸線路接通,則得到傳輸線路上的波形如圖8.33(c)所示。圖8.33PSK調制原理8.3.2串行通信接口及其標準

1.串行I/O接口標準串行通信接口是實現串行通信的基礎。接口硬件的一側與計算機系統總線相連,另一側提供一組信號與通信設備相連。所謂串行接口的標準化,就是指與通信設備相連接的這組信號的內容、形式以及接插件引腳的排列等的標準化。通用的串行I/O接口標準有許多種,本節僅介紹常用的EIARS–232C接口標準。

1)引腳定義

EIARS–232C是美國電子工業協會推薦的一種標準(ElectronicIndustriesAssociationRecommendedStandard)。它在一種D型25針連接器(DB–25)上定義了串行通信的有關信號。在實際異步串行通信中,并不要求用全部的RS–232C信號。現在微機中廣泛使用D型9針連接器(DB–9),因此這里不打算就RS–232C的全部信號作詳細解釋。表8.4給出25針或9針D型插座引出的9個常用RS–232C信號及其在D型插座中的引腳。

TXD/RXD:是一對數據線。TXD發送數據線,輸出;RXD為接收數據線,輸入。當兩臺微機以全雙工方式直接通信(無Modem方式)時,雙方的這兩根線應交叉連接(扭接)。

GND:信號地。所有信號都要通過信號地構成耦合回路。通信線有以上三條(TXD、RXD和信號地GND)就能工作了。其余信號主要用于雙方設備通信過程中的聯絡(握手信號),而且有些信號僅用于對Modem的聯絡。圖8.34和8.35分別給出無Modem(DTE與DTE或具有RS–232C的串口)和有Modem(DTE與DCE)時常見的RS–232C連接方式。表8.4D型25針或9針RS–232C連接器引出的常用信號功能圖8.34無Modem的RS–232C典型連接方式(a)三線經濟方式;(b)三線式;(c)七線式圖8.35有Modem的RS–232C典型連接

RTS/CTS:請求發送信號RTS是發送器輸出的準備好信號。接收方準備好后送回清除發送信號CTS后,就可開始發送數據。在同一端將這兩個信號短接就意味著只要發送器準備好即可發送。

DCD:載波檢測(又稱為接收線路信號檢測)。Modem在檢測到線路中的載波信號后,通知終端準備接收數據的信號。在沒有接Modem的情況下,也可以和RTS、CTSD短接。

DTR/DSR:數據終端準備好時發DTR信號,在接收到數據通信設備準備好DSR信號后,方可通信。

RI:在Modem接收到電話交換機有效的撥號時,使RI有效,通知數據終端準備傳送。在無Modem時也可和DTR相連。

2)信號電平規定

RS–232C規定了雙極性的信號電平:?3~??25V的電平表示邏輯“1”。

+3~?+25V的電平表示邏輯“0”。可以看出,RS–232C的電平與TTL電平是不能直接互連的。為了實現與TTL電路的連接,必須進行電平轉換,詳見下節。

2.串行通信接口可編程串行接口芯片如Intel的8251以及NationalSemiconductor的8250等僅完成TTL電平的并串或串并轉換。為了增大傳送距離,可在串行接口電路與外部設備之間增加信號轉換電路。目前常用的轉換電路有RS–232收發器、RS–485收發器和Modem等。RS–232收發器將微型計算機的TTL電平轉換為

15V電壓進行傳送,最大通信距離為15m。

RS–485收發器將微型計算機的TTL電平轉換為差分信號進行傳送,最大傳送距離為1.2km。Modem將電平信號調制成頻率信號送入電話網,如同音頻信號一樣在電話網中傳送。

80x86微機的串行口就是使用可編程串行通信芯片8251或8250以及RS–232電平轉換電路,將微型計算機并行的邏輯“0”或邏輯“1”電平轉換為串行的+15V或?15V脈沖,通過25針(或9針)D型插座與外部進行串行通信的。本節簡要介紹RS–232電平轉換器(RS–232收發器)。目前,國際上有很多廠商生產RS–232收發器,這里僅介紹MAXIM生產的RS–232發送器1488(將TTL電平轉換為RS–232C電平)和RS–232接收器1489(將RS–232C電平轉換為TTL電平),其引腳如圖8.36所示。圖8.37給出了一個使用1488和1489實現電平轉換的例子。圖8.36RS–232發送器1488和RS–232接收器1489圖8.37RS–232C總線接收器與發送器的連接方法8.3.3可編程串行接口芯片8251A1.8251A內部結構

Intel8251A是可編程的串行通信接口芯片,它有以下主要特點:①可用于串行異步通信,也可用于串行同步通信。②對于異步通信,可設定停止位為1位、1位半或2位。③對于同步通信,可設為單同步、雙同步或外同步等。同步字符可由用戶自己設定。④可以設定奇偶校驗的方式,也可以不校驗。校驗位的插入、檢出及檢錯都由芯片本身完成⑤異步通信的時鐘頻率可設為波特率的1倍、16倍或64倍。⑥在異步通信時,波特率的可選范圍為0

19.2千波特;在同步通信時,波特率的可選范圍為0

64千波特。⑦提供與外部設備特別是調制解調器的聯絡信號,便于直接和通信線路相連接。⑧接收、發送數據分別有各自的緩沖器,可進行全雙工通信。圖8.38給出了8251A的內部結構框圖,它由5部分組成,各功能模塊的功能如下:

(1)I/O緩沖器。8251A的I/O緩沖器是三態雙向的緩沖器。引腳D7

D0是8251A和CPU接口的三態雙向數據總線,用于向CPU傳遞命令、數據或狀態信息。與CPU相互交換的數據和控制字就存放在這里,共有三個緩沖器。①接收緩沖器:串行口收到的數據變成并行數據后,存放在這里供CPU讀取。②發送/命令緩沖器:這是一個分時使用的雙功能緩沖器。CPU送來的并行數據存放在這里,準備由串行口向外發送;另外,CPU送來的命令字也存放在這里,以指揮串行接口的工作。由于命令一旦輸入就馬上執行,不必長期存放,因而不會影響存放待發送的數據。③狀態緩沖器:存放8251A內部的工作狀態,供CPU查詢。圖8.388251A內部結構框圖

(2)讀/寫控制邏輯。該模塊的功能是接收CPU的控制信號,控制數據的傳送方向。

(3)接收器及接收控制。該模塊的功能是從RXD引腳接收串行數據,按指定的方式裝配成并行數據。

(4)發送器及發送控制。該模塊的功能是從CPU接收并行數據,自動加上適當的成幀信號并轉換成串行數據后從TXD引腳發送出去。

(5)調制解調器控制。該模塊提供和調制解調器的聯絡信號。

2.8251A的外部引腳

8251A是一個采用NMOS工藝制造的28腳雙列直插式封裝的芯片,其外部引腳如圖8.39所示。8251A的引腳按功能可分為與CPU連接的信號引腳和與外部設備(或調制解調器)連接的信號引腳。圖8.398251A的外部引腳

1)與CPU之間的接口引腳

(1)數據信號D0

D7:與CPU的數據總線對應連接。

(2)讀/寫控制信號:

RD——讀選通信號輸入線,低電平有效。

WR——寫選通信號輸入線,低電平有效。

C/D——信息類型信號輸入線。低電平時傳送的是數據,高電平時傳送的是控制字或狀態信息,通常將該引腳與CPU地址總線A0引腳相連,以實現對8251A內部寄存器的尋址。C/D、WR、RD三者的控制編碼與相應的操作功能如表8.5所示。表8.5CPU對8251A的讀/寫控制

讀/寫功能說明001CPU從8251A中讀取數據010CPU向8251A中寫入數據101CPU從8251A中讀取狀態110CPU向8251A中寫入控制命令

(3)收發聯絡信號:

TXRDY(TransmitterReady)——發送準備好信號,輸出,高電平有效。當發送寄存器空閑且允許發送(CTS為低電平、命令字中TXEN位為1)時,TXRDY輸出為高電平,以通知CPU當前8251A已做好發送準備,CPU可以向8251A傳送一個字符。當CPU將要發送的數據寫入8251A后,TXRDY恢復為低電平。TXRDY可作為8251A向CPU發送的中斷請求信號。

TXE(TransmitterEmpty)——發送器空信號,輸出,高電平有效。TXE=1時,表示發送器中沒有要發送的字符,當CPU把要發送的數據寫入8251A中后,TXE自動變為低電平。

RXRDY(ReceiverReady)——接收器準備好信號,輸出,高電平有效。RXRDY=1時,表明8251A已經從串行輸入線接收了一個字符,正等待CPU將此數據取走。因此,在中斷方式時,RXRDY可作為向CPU申請中斷的請求信號;在查詢方式時,RXRDY的狀態供CPU查詢之用。

SYNDET(SynchronousDetect)——同步檢測信號。用于內同步狀態輸出或外同步信號輸入。此線僅對同步方式有意義。

(4)時鐘、復位及片選信號:

CLK——時鐘信號輸入線,用于8251A工作時內部的定時,它的頻率沒有明確值的要求,但必須不低于接收或發送波特率的30倍。

RESET——復位信號輸入線,高電平有效。復位后8251A處于空閑狀態直至被初始化編程。

CS——片選信號,低電平有效,它由CPU的地址信號譯碼而形成。CS為低電平時,8251A被CPU選中。

2)與外部設備(或調制解調器)之間的接口引腳

DTR(DataTerminalReady)——數據終端準備好,輸出,低電平有效。CPU對8251A輸出命令字使控制寄存器D1位置1,從而使DTR變為低電平,以通知外設CPU當前已準備就緒。

RTS(RequestToSend)——請求發送,輸出,低電平有效。此信號等效于DTR,CPU通過將控制寄存器的D5位置1,可使RTS變為低電平,用于通知外設(調制解調器)CPU已準備好,請求外設(調制解調器)做好發送準備。

TXD(TransmitterData)——發送數據輸出線。CPU并行輸入給8251A的數據從該引腳串行發送出去。

DSR(DataSetReady)——數據裝置準備好,輸入,低電平有效。這是由外設(調制解調器)送入8251A的信號,用于表示調制解調器或外設的數據已經準備好。當DSR端出現低電平時會在8251A的狀態寄存器的D7位反映出來。CPU可通過對狀態寄存器進行讀取操作,查詢D7位即DSR狀態。

CTS(ClearToSend)——清除發送,輸入,低電平有效。這是由外設(調制解調器)送往8251A的低電平有效信號。它是對RTS的響應信號。CTS有效,表示允許8251A發送數據。

RXD(ReceiverData)——串行數據輸入線。

RXC(ReceiverClock)——接收器接收時鐘輸入端。它控制8251A接收字符的速度,在上升沿采集串行數據輸入線。在同步方式時,它由外設(或調制解調器)提供,RXC的頻率等于波特率;在異步方式時,RXC由專門的時鐘發生器提供,其頻率是波特率的1倍、16倍或64倍,即波特率將等于RXC端脈沖經過分頻得到的脈沖的頻率,分頻系數可通過方式選擇字設定為1、16或64。實際上,RXC和TXC往往連在一起,共同接到一個信號源上,該信號源要由專門的輔助電路產生。

TXC(TransmitterClock)——發送器發送時鐘輸入端。TXC的頻率與波特率之間的關系同RXC。數據在TXC的下降沿由發送器移位輸出。

3.8251A的工作過程

1)接收器的工作過程在異步方式中,當接收器接收到有效的起始位后,便開始接收數據位、奇偶校驗位和停止位。然后將數據送入寄存器,此時,RXRDY輸出高電平,表示已收到一個字符,CPU可以來讀取。在同步方式中,若程序設定8251A為外同步方式,則引腳SYNDET用于輸入外同步信號,該引腳上電平正跳變啟動接收數據。若設定為內同步接收,則8251A先搜索同步字(同步字事先由程序裝在同步字符寄存器中)。RXD線上收到一位信息就移入接收寄存器并和同步字符寄存器內容比較,若不同則再接收一位再比較,直到兩者相等。此時SYNDET輸出高電平,表示已搜索到同步字符,接下來便把接收到的數據逐個地裝入接收數據寄存器。

2)發送器的工作過程在異步方式中,發送器在數據前加上起始位,并根據程序的設定在數據后加上校驗位和停止位,然后作為一幀信息從TXD引腳逐位發送數據。在同步方式中,發送器先送同步字符,然后逐位地發送數據。若CPU沒有及時把數據寫入發送緩沖器,則8251A用同步字符填充,直至CPU寫入新的數據。

4.8251A的控制字寄存器和狀態字寄存器

8251A內部除了具有可讀可寫的數據寄存器外,還具有只可寫的控制字寄存器和只可讀的狀態寄存器。

1)控制字寄存器控制字寄存器存放方式控制字和命令控制字。

(1)方式控制字。方式控制字用來確定8251A的通信方式(同步或異步)、校驗方式(奇校驗、偶校驗或不校驗)、數據位數(5、6、7或8位)及波特率參數等。方式控制字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論