版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串行通信及介面電路
11.1串行通信
11.1.1概述 CPU與外部的資訊交換稱為通信(Communication)。基本的通信方式有兩種: 並行通信——數據的各位同時傳送; 串行通信——數據一位一位順序傳送。 並行通信與串行通信方式如圖11-1所示。1.
串行通信的優點 從圖11-1中可以看到,在並行通信中數據有多少位就要有同樣數量的傳送線,而串行通信只要一條傳送線。故串行通信節省傳送線,特別是當位數很多和長距離傳送時,這個優點就更為突出。例如,微型電腦要將數據傳送到遠方的終端,或傳送到大的計算中心,則常用通信線路(電話線等)進行傳送,這時採用串行傳送可以大大減少傳送線,從而大大地降低成本。但是串行傳送的速度慢,若並行傳送所需的時間為T,則串行傳送的時間至少為NT(其中N為位數)。2.
同步通信與非同步通信 在串行通信中,有兩種最基本的通信方式:
(1)非同步(非同步)通信ASYNC(AsynchronousDataCommunication)
它用一個起始位表示字元的開始,用停止位表示字元的結束來構成一幀。如圖11-2所示。起始位占1位,字元編碼為7位(ASCII碼),第8位為奇偶校驗位,即加上這一位(第8位)使字元中為“1”的位為奇數(或偶數),停止位可以是1位、1.5位或2位。於是一個字元就由10個或10.5個或11個二進位位構成。
用這樣的方式表示字元,則字元可以一個挨著一個傳送。 在非同步數據傳送中,在CPU與外設之間必須有兩項規定:
①字元格式 即前述的字元的編碼形式,奇偶校驗形式,以及起始位和停止位的規定。例如,用ASCII編碼,字元為7位,加一位奇偶校驗位,一位起始位,以及一位停止位,共10位。 ②數據信號傳送速率 數據信號傳送速率的規定,對於CPU與外界的通信是很重要的。假如數據傳送的速率是120字元/秒,而每一字元包含10個數據位,則每秒傳送的二進位位數(b/s,常稱為bps)為:
10×120=1200(位/秒)=1200(bps)
則每一位的傳送時間即為:
Td=1/1200=0.833(ms) ③串列傳輸速率(Baudrate)
串行通信的信號常常要通過數據機進行傳送。 在數據源出口與調製器入口之間,或者解調器出口與數據信宿入口之間,用數據信號傳輸率(bps)來描述數字信號的傳輸速度;而在調製器出口、通信線路與解調器入口之間,用單位時間內線路狀態變化(電信號變化)的數目即串列傳輸速率來描述傳輸速度,如圖11-3所示。
當採用“零調製”或“空調制”,即基波傳輸時,或者在單位時間內僅調製或解調一個信號時,則數字信號傳輸率(bps)與串列傳輸速率是一致的。在採用數據機的載波傳輸系統中,兩者間的關係為:
C=B·log2n其中:
C——數據信號傳輸速率(bps);
B——調製速率(baud);
n——調製信號數或線路狀態數,它是2的整數倍。 非同步通信的傳送速度在50~9600波特之間,常用於電腦到CRT終端和字元印表機之間的通信,直通電報以及無線電通信的數據發送等。 (2)同步傳送 在非同步傳送中,每一個字元要用起始位和停止位作為字元開始和結束的標誌,佔用了時間。所以,在數據塊傳送時,為了提高速度,就去掉這些標誌,採用同步傳送,於是在數據塊開始處就要用同步字元來指示。如圖11-4所示。 同步傳送的速度高於非同步,通常為幾十~幾百千波特(kilobaud)。但它要求有時鐘來實現發送端與接收端之間的同步,故而硬體複雜。常應用於:
①電腦到電腦之間的通信。
②電腦到CRT/外設之間的通信等。3.
數據傳送方向 通常串行通信,數據在兩個站之間是雙向傳送的,A站可作為發送端,B站作為接收端;也可以A站作為接收端而B站作為發送端。根據要求又可以分為:
(1)半雙工(HalfDuplex)
半雙工如圖11-5所示。 每次只能有一個站發送,即只能是由A站發送到B站,或是由B站發送到A站,不能A站和B站同時發送。
(2)完全雙工(FullDuplex)
完全雙工即兩個站同時都能發送。如圖11-6所示。4.
信號的調製和解調 電腦通信是一種數字信號的通信,如圖11-7所示。
它要求傳送線的頻帶很寬,而在長距離通信時,通常是利用電話線傳送的,電話線不可能有這樣寬的頻帶,其寬頻如圖11-8所示。所以若有數字信號直接通信,經過傳送線,信號就會產生畸變,如圖11-9所示。
所以,要用調製器(Modulator)把數字信號轉換為模擬信號;用解調器(Demodulator)檢測此模擬信號,再把它轉換成數字信號,如圖11-10所示。
FSK(FrequencyShiftKeying)是一種常用的調製方法:它把數字信號的“1”與“0”調製成不同頻率(易於鑒別)的模擬信號,其原理如圖11-11所示。 兩個不同頻率的模擬信號,分別由電子開關控制,在運算放大器的輸入端相加,而電子開關由要傳輸的數字信號(即數據)控制。當信號為“1”時,控制上面的電子開關導通,送出一串頻率較高的模擬信號;當信號為“0”時,控制下麵的電子開關導通,送出一串頻率較低的模擬信號,於是在運算放大器的輸出端,就得到了調製後的信號。5.
串行I/O的實現 如上所述,串行傳送時數據是一位接一位依次順序傳送的,而在電腦中數據是並行傳送的。所以當數據由電腦送至數據終端時,先要把並行的數據轉換為串行的再傳送,而在電腦接收由終端送來的數據時,先要把串行的數據轉換為並行的數據才能處理加工,這樣的轉換可以用軟體也可以用硬體實現。
(1)要實現CPU的並行數據變成串行數據輸出,或串行輸入的數據在CPU內部要變成並行的數據,可以由CPU通過軟體來實現。
串→並轉換或者並→串轉換完全可以由CPU通過軟體來實現,外部只要增加簡單的電平轉換電路就可以了。但是這樣一來,CPU就要用相當多的時間來進行串→並、並→串的轉換任務,因此降低了CPU的利用率。為減輕CPU的負擔,可以用硬體來實現。
(2)硬體UART(UniversalAsynchronousReceiver/Transmitter)——通用非同步(非同步)接收器/發送器 硬體UART電路如圖11-12所示。
硬體UART既能發送,由並行→串行輸出;又能接收,由串行→並行輸入。它的每一部分都是一個雙緩衝器結構。當輸入時,由RxD來的串行數據先進入移位寄存器,然後並行輸入給緩衝器(變為並行的),由數據匯流排輸入至CPU。 在發送時,由CPU來的並行數據由緩衝器接收,然後送至移位寄存器,由TxD一位一位移位輸出(變為串行的)。 在UART中,還有一些控制和狀態資訊。在UART工作時,接收器部分始終監視著RxD線,當發現一個起始位時,就開始了一個新的字元的接收過程。
UART是用外部時鐘來和接收的數據同步的。外部時鐘的週期Tc和數據位的週期Td之間的關係為:
Tc=Td/K其中,K=16或64。 若K=16,在每一個時鐘脈衝的上升沿採樣接收數據線,若發現了第一個“0”(即是起始位的開始),以後又連續採樣到8個“0”,則確定它是起始位(不是干擾信號),以後每隔16個時鐘脈衝採樣一次數據線,作為輸入數據。如圖11-13所示。
為了檢測長距離傳送中可能發生的錯誤,通常增加一個奇偶校驗位。UART在發送時,檢查每個要傳送的字元中的“1”的個數,自動在奇偶校驗位上填“1”或“0”,使得“1”的總和(包括奇偶校驗位)為偶數即偶校驗(在奇校驗中則為奇數),如圖11-14所示。 在接收時,UART檢查字元的每一位以及奇偶校驗位的“1”的個數是否為偶數,以確定是否發生傳送錯誤,如圖11-15所示。
為了使傳送過程更可靠,在UART中還設立了各種出錯標誌。常用的出錯標誌有以下三種:
①奇偶錯誤(Parityerror)
在接收時,UART檢查接收到的每一個字元“1”的個數,若不符合要求,則置這個標誌,發出奇偶校驗出錯資訊。
②幀錯誤(Frameerror)
若接收到的字元格式不符合規定(例如缺少停止位等),則置出錯標誌,發出幀錯誤資訊。
③溢出(丟失)錯誤(Overrunerror)
上述的UART是一種雙緩衝器結構。例如在接收時,接收的數據先由移位寄存器移位,把串行的變為並行的,然後送到接收數據寄存器,由輸入指令輸入至CPU中,若數據已變為並行且送至接收數據寄存器中時,UART就可以接收另一個新的字元。但是,若已接收到第二個字元的停止位,且要把第二個字元傳送到接收數據寄存器中時,CPU還未取走上一個數據,於是就會出現數據丟失,這樣就置溢出錯誤標誌。由此可見,若數據緩衝器的級數越多,則溢出錯誤的幾率就越少。6.
串行通信的校驗方法 串行通信主要適用於遠距離通信,因而雜訊和干擾較大,為了保證高效而無差錯地傳送數據,對傳送的數據進行校驗就成了串行通信中必不可少的重要環節。常用的校驗方法有:奇偶校驗,迴圈冗餘校驗CRC(CyclicRedundancyCheck)等。
(1)奇偶校驗 奇偶校驗這種校驗方法主要用於對一個字元的傳送過程進行校驗。在發送時,在每一個字元的最高位之後(發送總是最低有效位D0先發送)都附加一個奇偶校驗位,這個校驗位本身有可能是“1”或“0”,加上這個校驗位,使所發送的任何字元中的“1”的個數始終為奇數——奇校驗,或偶數——偶校驗。
接收時,檢查所接收的字元連同這個奇偶校驗位,其為“1”的個數是否符合規定,若不符合規定就置出錯標誌,供CPU查詢及處理。 根據國際電報電話諮詢委員會CCITT(ConsultativeCommitteeInternationalTelegraphandTelephone)的建議:在非同步操作中使用偶校驗,而在同步操作中使用奇校驗。 奇偶校驗位的產生和檢驗,可用軟體或硬體的方法實現。 ①軟體奇偶校驗 在8088(8086)中,有判斷字元奇偶性的標誌以及相應的轉移指令。所以,用軟體產生奇偶較驗位(發送時),或進行奇偶校驗(接收時)是比較方便的。 若每字元為7位,用偶校驗,產生奇偶校驗位的程式如下:
MOV AL,DATA;取出要發送的數據
AND AL,AL;檢查數據本身的奇偶性
JPE TRANS;若“1”的個數已為偶數則 直接發送
OR AL,10000000B;否則,置最高 位為“1”TRANS:OUT (UART),AL;輸出
進行奇偶校驗的程式如下:
IN AL,UART;輸入接收的數據
AND AL,AL;檢查“1”的個數的奇 偶性
JP OERROR;若“1”的個數為奇 數,轉至出錯處理
MOV DATA,AL;否則存入記憶體 ②硬體奇偶校驗 目前現有單片的專門的奇偶發生器/校驗器器件,可對7位或8位字元進行奇偶校驗,這是一種中規模TTL積體電路。如SN54/742809位奇偶發生器位/校驗器(8位數據位加1位校驗位)和SN54/741808位奇偶發生器/校驗器(7位數據位加1位校驗位)。 但在實際的串行通信中,我們通常採用可編程的串行通信介面晶片如Intel8251A。這些晶片中包含硬體的奇偶校驗和產生電路,可用程式選擇是否用奇偶校驗,或選擇是奇校驗還是偶校驗。11.1.2串行介面標準EIARS-232C介面
EIA(ElectronicsIndustriesAssociation)RS(RecommendedStandard)-232C是目前最常用的一種串行通信介面。實質上這是一種標準,它是一個25腳的連接器,它的每一個引腳的規定是標準的,對各種信號的電平規定也是標準的,因而便於互相連接。其最基本的最常用的信號規定,如圖11-17所示。 凡是符合RS-232C標準的電腦或外設,都把它們往外發送的數據線連至25個引腳的連接器的插座的2號引腳,接收的數據線連至3號引腳。顯然在插頭連線時,一方的接收數據線應連至對方的發送數據線,反之亦然。
在串行通信中,除了數據線和地線以外,為了保證資訊的可靠傳送,還有若干條聯絡控制資訊線。 請求發送RTS#(RequestToSend)
通常當一個通信站的發送器已經做好了發送的準備,為了瞭解接收方是否做好了接收的準備,是否可以開始發送,就向對方輸出一個有效的RTS#信號(RTS#信號在轉換為TTL電平時為低電平有效,但在RS-232C的標準中另有規定,見下麵的介紹),以等待對方的回答。
准許發送CTS#(ClearToSend)
通常當接收方做好了接收的準備,在接收到發送方送來的有效的RTS#信號以後,就以有效的CTS#信號作為回答。 數據終端準備好DTR#(DataTerminalReady)
通常當某一個站的接收器已做好了接收的準備,為了通知發送器可以發送了,就向發送器送出一個有效的DTR#信號。
數據裝置裝備好DSR#(DataSetReady)
當發送方接收到接收方送來的有效的DTR#信號,在發送方做好了發送的準備後,就向接收方送出一個有效的DSR#信號作為回答。 載波檢測CD#(CarriedDetect)
有的器件把它當作DSR#來使用。 總之,為了使設備具有通用性和互換性就制訂了標準,凡是遵照RS-232C標準的設備,它們的各種信號線都按規定的標準(即指定的引腳)連接。
其次,標準的另一個重要含義是這些信號的電氣性能也是標準的。
RS-232C對各種信號的規定如下:
(1)在TxD和RxD線上
MARK(即表示為1)=-3V~-25V SPACE(即表示為0)=+3V~+25V例如:是符合標準的。 (2)在RTS#、CTS#、DSR#、DTR#、CD#等線上:
ON=+3V~+25V OFF=-3V~-25V
顯然,RS-232C規定的信號電平及極性與TTL是不同的,需要經過轉換。需要從TTL轉換為RS-232C的電平,或從RS-232C轉換為TTL的電平。因此,RS-232C本來是一種標準,它規定了為了進行串行通信所需要的信號,規定了它們的引腳號,也規定了它們的電氣性能。由於目前大部分微機是TTL電平的,所以需要有轉換電路。於是,凡具有RS-232C串行介面的都需要有一個轉換電路(介面電路)。 1488和1498就是能實現從TTL→RS-232C(發送器)及從RS-232C→TTL(接收器)的器件,如圖11-18所示。
EIA電纜的任何一腳能夠直接接至任何別的腳而不會引起對驅動器和接受器的損壞。 對於電腦像對於CRT終端一樣,都看成是數據終端設備。 電腦和遠方以及當地終端(用查詢方式交換信號)的連接的示意圖見圖11-19。當地終端可直接通過RS-232介面連接;而遠方的要經過調製後通過電話線傳送。在數據終端與調製器之間用RS-232介面。11.2Intel8251A可編程通信介面
11.2.18251的基本功能 Intel8251具有以下基本功能:
(1)可用於同步和非同步傳送。
(2)同步傳送:5~8位/字元,內部或外部同步,可自動插入同步字元。
(3)非同步傳送:5~8位/字元,時鐘速率為通信串列傳輸速率的1、16或64倍。 (4)可產生中止字元(BreakCharacter);可產生1、1.5或2位的停止位。可檢查假啟動位,自動檢測和處理中止字元。
(5)串列傳輸速率:
DC—19.2K(非同步);DC—64K(同步)。
(6)完全雙工,雙緩衝器發送器和接收器。
(7)出錯檢測:具有奇偶、溢出和幀錯誤等檢測電路。11.2.28251的方框圖
可編程串行通信介面晶片8251的結構,如圖11-20所示。整個8251可以分成5個主要部分:接收器、發送器、調製控制、讀寫控制以及I/O緩衝器。而I/O緩衝器由狀態緩衝器、發送數據/命令緩衝器和接收數據緩衝器三部分組成。8251的內部由內部數據匯流排實現相互之間的通信。1.接收器 接收器接收在RxD腳上的串行數據,並按規定的格式把它轉換為並行數據,存放在接收數據緩衝器中。當8251工作於非同步方式且允許接收和準備好接收數據時,它監視RxD線。在無字元傳送時,RxD線為高電平(即所謂Mark),當發現RxD線上出現低電平時,則認為它是起始位(即所謂Space),就啟動一個內部計數器,當計數到一個數據位寬度的一半(若時鐘脈衝頻率為串列傳輸速率的16倍時,則為計數到第8個脈衝)時,又重新採樣RxD線,若其仍為低電平,則確認它為起始位,而不是雜訊信號。此後,每隔16個脈衝,採樣一次RxD線作為輸入信號,送至移位寄存器,經過移位,又經過奇偶校驗和去掉停止位後,就得到了轉換為並行的數據,經過8251的內部數據匯流排傳送至接收數據緩衝器,同時發出RxRDY信號,告訴CPU字元已經可用。
在同步方式,USART監視RxD線,每出現一個數據位就把它移一位,然後把接收寄存器與含有同步字元(由程式給定)的寄存器相比較,看是否相等,若不相等則USART重複上述過程。當找到同步字元後(若規定為兩個同步字元,則必須出現在RxD線上的兩個相鄰字元與規定的同步字元相同),則置SYNDET信號,表示已找到同步字元。在找到同步字元後,利用時鐘採樣和移位RxD線上的數據位,並且按規定的位數,把它送至接收數據緩衝器,同時發出RxRDY信號。2.發送器 發送器接收CPU送來的並行數據,加上起始位、奇偶校驗位和停止位,然後由TxD腳發送。 在非同步方式時,發送器加上起始位,檢查並根據程式規定的檢驗要求(奇校驗還是偶校驗)加上適當的校驗位,最後根據程式的規定,加上1位、1.5位或2位停止位。 在同步方式,發送器在數據發送前插入一個或兩個同步字元(這些都在初始化時由程式給定),而在數據中,除了奇偶校驗位外,不再插入別的位。只有在USART工作於同步發送方式,而CPU來不及把新的字元送給它,則USART自動地在TxD線上插入同步字元,因為在同步方式時字元之間是不允許存在間隙的。
不論是在同步或非同步工作方式,只有當程式設置了TxEN(TransmitterEnable——允許發送)和CTS#(CleartoSend——這是對調制器發出的請求發送的回應信號)有效時,才能發送。 另外,發送器的另一個功能是能發送中止符(BREAK)。中止符是由在通信線上的連續的Space符組成,它是用來在完全雙工通信時中止發送終端的。只要8251的命令寄存器的位3(SBRK)為“1”,則USART就始終發送中止符。3.I/O控制 讀/寫控制邏輯對CPU輸出的控制信號進行解碼以實現如表11-1所示的讀/寫功能。USART是以RD#或WR#信號中的一個為“0”來實現I/O操作的。若兩者中無一為“0”,則USART不執行I/O操作;若兩者全為“0”,這是一種無確定結果的非法狀態。11.2.38251的介面信號 8251是用來作為CPU與外設或數據機之間的介面,如圖11-21所示。故它的介面信號可以分為兩組:一組為與CPU介面的信號;另一組為與外設(或數據機)介面的信號。1.與CPU的介面信號
①DB7~DB0——8251的外部三態雙向數據匯流排,它可以連到CPU的數據匯流排。CPU與8251之間的命令、數據以及狀態資訊都是通過這組數據匯流排傳送的。 ②CLK——由這個CLK輸入產生8251的內部時序。CLK的頻率在同步方式工作時,必須大於接收器和發送器輸入時鐘頻率的30倍;在非同步方式工作時,必須大於輸入時鐘的4.5倍。 另外,規定CLK的週期要在0.42μs~1.35μs的範圍內。
③CS#——選片信號,它應由CPU的IO/M#及地址信號經解碼後供給。
④C/D#——控制/數據端。在CPU讀操作時,若此端為高電平,由數據匯流排讀入的是8251的狀態資訊;低電平時,讀入的是數據。在CPU寫操作時,此端為高電平,CPU通過數據匯流排輸出的是命令資訊;低電平時,輸出的是數據。此端通常連到CPU的地址匯流排的A0。 ⑤TxRDY(TransmitterReady)——發送準備好信號。只有當USART允許發送(即CTS#是低電平和TxEN是高電平),且發送命令/數據緩衝器為空時,此信號有效。它用以通知CPU,8251已準備好接收一個數據。當CPU與8251之間用查詢方式(Polling)交換資訊時,此信號可作為一個“狀態”信號(handshake);在用中斷方式交換資訊時,此信號可作為8251的一個中斷請求信號。當USART從CPU接收了一個字元時,TxRDY複位。 ⑥TxE(TransmitterEmpty)——發送器空信號。當它有效(高電平有效)時,表示發送器中的並行到串行轉換器空。在同步方式工作時,若CPU來不及輸出一個新的字元,則它變高,同時發送器在輸出線上插入同步字元,以填補傳送空隙。
⑦RxRDY(ReceiverReady)——接收器準備好信號。若命令寄存器的RxE(ReceiverEnable)位置位時,當8251已經從它的串行輸入端接受了一個字元,可以傳送到CPU時,此信號有效。在查詢方式時,此信號可作為一個“狀態”信號;在中斷方式時可作為一個中斷請求信號。當CPU讀了一個字元後,此信號複位。 ⑧SYNDET(SynchronousDetect)——同步檢測信號。它只用於同步方式。它是作為輸入還是輸出,取決於初始化程式對8251是工作於內同步或外同步的規定。在RESET時,此信號複位。當工作於內同步方式時,在8251已經檢測到所要求的同步字元,此信號為高,輸出以指示USART已達到同步。若8251由程式規定為雙字元同步時,此信號在第二個同步字元的最後一位的中間變高。當CPU執行一次讀狀態操作時,SYNDET複位。 當在外同步方式工作時,從這個輸入端輸入的一個正跳沿,使8251在下一個RxC的下降沿開始收集字元。SYNDET輸入高電平至少應維持一個RxC週期,直至RxC出現下一個下降沿。2.與裝置的介面信號
①DTR#(DataTerminalReady)——數據終端準備好。這是一個通用的輸出信號,低電平有效。它能由命令指令的位置“1”變為有效,用以表示CPU準備就緒。
②DSR#(DataSetReady)——數據裝置準備好。這是一個通用的輸入信號,低電平有效。用以表示數據機或外設已準備好。CPU可通過讀入狀態操作,在狀態寄存器的位7檢測這個信號。DTR#與DSR#是一組信號,通常用於接收器。 ③RTS#(ReguestToSend)——讀求傳送,這是一個輸出信號等效於DTR。這個信號用於通知調製器CPU準備好發送。可由命令指令的位5置1來使其有效(低電平有效)。
④CTS#(ClearToSend)——准許傳送,這是調製器對USART的RTS信號的回應,當其有效時(低電平)USART發送數據。
⑤RxC(ReceiverClock)——接收器時鐘。這個時鐘控制USART接收字元的速度。 在同步方式,RxC等於串列傳輸速率,由數據機供給。 在非同步方式,RxC是串列傳輸速率的1、16或64倍,由方式控制指令預先選擇。USART在RxC的上升沿採樣數據。 ⑥RxD#(ReceiverData)——接收器數據,字元在這條線上串行地被接收,在USART中轉換為並行的字元。高電平表示Mark即“1”。
⑦TxC#(TransmitterClock)——發送器時鐘,這個時鐘控制USART發送字元的速度。時鐘速度與串列傳輸速率之間的關係同RxC#。數據在TxC#的下降沿由USART移位輸出。
⑧TxD#(TransmitterData)——發送器數據。由CPU送來的並行的字元在這條線上被串行地發送。高電平代表Mark即“1”。11.2.48251的編程 8251是一個可編程的多功能通信介面。所以在具體使用時必須對它進行初始化編程,以確定它的具體工作方式。例如:規定工作於同步還是非同步方式;傳送的串列傳輸速率;字元格式等。 初始化編程必須在系統複位(RESET)以後,在USART工作以前進行,即USART不論工作於任何方式,都必須先經過初始化。 初始化編程過程的流程圖如圖11-22所示。1.方式選擇指令 方式選擇指令格式如圖11-23所示。 指令可以分為四組,每組兩位。首先,由D1D0確定是工作於同步方式還是非同步方式。當D1D0=00時,則為同步方式;而在D1D0≠00時,則為非同步方式,且D1D0的三種組合用以選擇輸入時鐘頻率與串列傳輸速率之間的係數。
D3D2用以確定字元的位數,D5D4用以確定奇偶校驗的性質,它們的規定都是很明確的。D7D6在同步和非同步方式時的意義是不同的,非同步時用以規定停止位的位數;同步時用以確定是內同步還是外同步,以及同步字元的個數。 在同步方式時,緊跟在方式指令後面的是由程式輸入的同步字元。它是用與方式指令類似的方法由CPU輸給USART的。2.命令指令 在輸入同步字元後,或在非同步方式時,在方式選擇指令後應由CPU輸給命令指令,其格式如圖11-24所示。 方式選擇指令是規定8251的工作方式,而命令指令直接使8251處於規定的工作狀態,以準備接收或發送數據。3.狀態寄存器
8251上還有狀態寄存器,CPU可通過I/O讀操作把8251的狀態字讀入CPU,用以控制CPU與8251之間的數據交換。 讀狀態字時,C/D#端為“1”。狀態字的格式如圖11-25所示。 狀態寄存器的TxRDY,只要數據緩衝器一空就置位;而引腳TxRDY只能當條件: 數據緩衝器空·CTS#·TxEN成立時,才置位。11.2.58251應用舉例
我們以兩臺微型電腦之間進行雙機串行通信的硬體連接和軟體編程來說明,8251在實際中是如何應用的。1.要求 在A、B兩臺微機之間進行串行通信,A機發送,B機接收。要求把A機上開發的應用程式(其長度為2DH)傳送到B機中去。採用非同步方式,字元長度為8位,2個停止位,串列傳輸速率因數為64,無校驗,串列傳輸速率為4800。CPU與8251之間採用查詢方式交換數據。端口地址分配是:命令/狀態口為309H,數據口為308H。2.分析 由於是近距離傳輸,可以不用MODEM,而直接互連。同時採用查詢方式,故接收/發送程式中只需要檢查發送/接收的準備好狀態位是否置位,在準備好時就發送或者接收一個位元組。3.設計
(1)硬體連接 根據以上分析把兩臺微機都當作DTE。它們之間只需TxD、RxD和SG(信號地)三根線連接就能通信。採用8251A作為介面的主晶片再配置少量的附加電路,如串列傳輸速率發生器、RS-232C與TTL電平轉換電路、地址解碼器電路等就可構成一個串行通信介面。如圖11-26所示。 (2)軟體編程 接收程式和發送程式分開編寫,每個程式段中包括8251A初始化、命令字、狀態查詢和輸入輸出幾部分。①發送程式(略去堆疊STACK和數據DATA段)CSEG SEGMENT ASSUME CS:CSEGTRA PROC FARSTART: MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PS平面设计考试模拟题库及答案
- 教师招聘教育学试卷题库带答案
- 技术学院单招职业适应性考试题库带答案
- 2026年中政行测题库带答案
- 仓储管理技师题库及参考答案
- 飞机钣金实操题库带答案
- 采油工初级理论题库及答案
- 2026年度重庆市招聘村居后备干部考试应知应会题库带答案
- 环境空气采样题库及答案
- 2026年职称中级药师题库及答案
- 《四川省预拌混凝土及砂浆企业试验室技术标准》
- 2021年5月22日全国事业单位联考C类《职业能力倾向测验》真题
- 中医技术操作规范 颊针编制说明
- YY/T 0866-2024医用防护口罩总泄漏率测试方法
- 机械制图常见错误经典示例图册
- 临时工协议书模板
- 公共艺术装置施工合同
- 2024年中国水利水电科学研究院招聘工作人员92人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 除盐水罐浮顶充排水及鼓包处理方法
- 风机更换施工方案
- 管理学原理 王光健版
评论
0/150
提交评论