第7章串行接口_第1頁
第7章串行接口_第2頁
第7章串行接口_第3頁
第7章串行接口_第4頁
第7章串行接口_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第第7章串行接口章串行接口 計算機之間的通信有并行通信和串行通信兩種。串行通信是一位一位傳送數據的,由于串行通信只需要二根傳送線,特別適用于長距離通信。在串行通信中,通信的快慢用波特率來表示,在不同的工作模式下,波特率的設置方式也不同,只有正確進行波特率的設置,才能進行可靠的數據通信。串行通信的總線標準有多種,有RS一232C、RS422、RS一485以及2OmA電流環。RS一232C是最常用的串行接口標準。.MCS一51系列單片機內部有一個全雙工的異步通信I/O口,波特率和幀的格式可以通過軟件編程來設置。它的串行通信口有四種工作模式:方式0、方式1、方式23。幀的格式有1O位、11位兩種。M

2、CS一51系列單片機的串行通信有著廣泛的應用。可以實現單片機與單片機之間或單片機與PC機之間的串行通信,也可以使用單片機的串行通信接口,實現鍵盤輸入和LED、LCD顯示器的輸出控制,簡化電路,節約單片機的硬件資源。應用串行通信接口,還可以進行遠程參數檢測和控制。第7章 串行接口 第7章 串行接口 通信系統包括數據傳送端、數據接收端、數據轉換接口和傳送數據的線路。單片機、PC機、工作站都可以作為傳送、接收數據的終端設備。數據在傳送過程中常常需要經過一些中間設備,這些中間設備稱為數據交換設備,負責數據的傳送工作。數據在通信過程中,由數據的終端設備傳送端送出數據,通過調制解調器把數據轉換為一定的電平

3、信號,在通信線路上進行傳輸。通信信息被傳輸到計算機的接收端時,同樣,也需要通過調制解調器把電平信號轉換為計算機能接受的數據,數據才能進入計算機。計算機在通信過程中通常使用RS-232接口,通信線路常用雙絞線、同軸電纜、光纖或無線電波。數據通信的方式有兩種,一種為并行通信,另一種為串行通信。通常根據通信的距離和具體要求決定采用何種通信的方式。一般當通信的距離在15m 到30 m之內,可以采用并行通信方式或串行通信方式,當通信的距離在30m以上時,應采用串行通信方式。MCS-51系列單片機具有并行通信和串行通信兩種方式,給單片機在通信中的應用帶來極大的方便。7.1串行通信概念第7章 串行接口 在并

4、行通信中,數據的所有位是同時進行傳送的。它的特點是數據傳送的速度快,缺點是需要比較多的傳送數據線,有多少位數據就需要多少根線,而且數據傳送的距離有限,在單片機中,一般常常應用于CPU與LED、LCD顯示器的連接,或CPU與A/D、D/A轉換器之間的數據傳送等并行接口方面。圖7.1所示為MCS-51系列單片機與外部設備之間的數據并行通信的連接方法。7.1串行通信概念 D0 D1 MCS-51 D2 D3 D4單片機 D5 D6 D7控制檢測D0D1D2 計算機D3D4 外部D5D6 設備D7選通狀態 在串行通信中,數據是按一定的順序一位一位地傳送的。串行通信時只需要兩根傳送線,可以利用 線進行通

5、信,特別適用于長距離通信,非常方便,價格低。圖7.2所示為MCS-51系列單片機之間的串行通信的連接方法。第7章 串行接口7.1串行通信概念 MCS-51 單片機(1)RXDTXDGND GND MCS-51 單片機(2)TXDRXDGND 在串行通信時,計算機內部的并行數據傳送到內部移位寄存器中,然后數據被逐位移出形成串行數據,通過通信線傳送到接收端,再將串行數據逐位送入移位寄存器后轉換成并行數據存放在計算機中。進行串行通信的接收端和發送端的計算機,必須有一些約定,必須有相同的傳送速率和采用統一的編碼方法,接收端的計算機必須知道發送端的計算機發送了哪些信息,發送的信息是否正確,如果有錯如何通

6、知對方重新發送。發送端的計算機必須知道接收端的計算機是否正確接收到信息,是否需要重新發送,這些約定叫做串行通信協議或規程。通信的雙方遵守了這些協議才能正確地進行數據通信。 串行異步通信時,數據是一幀一幀傳送的,不需要同步時鐘,通信方法的示意圖如圖7.3所示。第7章 串行接口7.1串行通信概念移位寄存器數據接收器移位寄存器 在異步通信中,異步數據發送器先送出一個起始位,再送出具有一定格式的串行數據位、奇偶校驗位和停止位。 在沒有進行通信時,通信線上處于“1”狀態。當數據發送器要發送一個字符數據時,首先發送一個起始位信號“0”,數據接收器檢測到這個“0”,就開始準備接收。所以起始位的作用就是表示字

7、符傳送的開始,同時還被用作同步接收端的時鐘,以保證以后的接收正確。起始位后面是數據位,數據位的個數可以有5、6、7或8位數據,數據位從最低位開始傳送。數據位之后發送奇偶校驗位,它只占據一位,通信雙方在通信時須約定一致的奇偶校驗方式,用于有限差錯檢測。奇偶校驗位或數據位(在沒有奇偶校驗時)之后發送停止位,停止位有1位、1位半和2位,它一定是“1”,停止位用來表示一個字符數據的結束。數據接收器收到停止位后,知道前一個字符傳送結束,同時也為接收下一個字符作準備,如果再收到“0”信號,就表示有新的字符要傳送,否則就表示目前的通信結束。 串行通信中,數據在通信線路兩端的設備之間傳送的方式通常有三種:單工

8、、半雙工和全雙工。單工為單向配置,只允許數據按照一個固定的方向傳送,通信線的一端為發送端,另一端為接收端。半雙工為半雙向配置,允許數據向任何一個方向傳送,但每次只能有一個站發送,另一個站接收。通信線兩端的每一端都由一個發送設備和一個接收設備組成,通過接收和發送開關使設備與線路接通,接收與發送開關是由軟件控制的電子開關,通信線兩端的設備通過半雙工通信協議進行功能的切換。全雙工為全雙向配置,允許同時雙向傳送數據。在半雙工通信方式中,由于發送、接收方式的切換需要時間,效率比較低。而在全雙工通信中,數據可以同時雙向傳送,效率比較高。但是,通信線兩端的通信設備都必須有完整、獨立的發送器和接收器。第7章

9、串行接口7.1串行通信概念 在MCS-51單片機芯片內部有一個全雙工的串行口,它可以通過單片機內部的定時器/計數器和串行口控制寄存器,用軟件設置的方式以4種工作模式和不同的波特率進行工作。第7章 串行接口7.2 串行接口的工作方式 在MCS-51單片機內部的串行接口,有二個物理上獨立的發送緩沖器和接收緩沖器。發送緩沖器只能寫入信息,不能被讀出,用于發送信息。接收緩沖器只能讀出信息,不能被寫入,用于接收信息。這兩個緩沖器共用一個地址:99H。另外,在串行接口內部還有二個特殊的寄存器SCON、PCON,用于控制串行接口的工作方式和波特率。 第7章 串行接口串行接口的結構接口第7章 串行接口1.串行

10、接口控制寄存器SCON串行接口控制寄存器SCON的地址為98H,8個二進制位。可以對串行接口的工作方式、接收發送和串行接口的工作狀態標志進行設置。其格式如下。 串行接口的結構接口數據位D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998其中:SM0、SM1:用于控制串行接口的工作方式 SM0、SM1=00,定義為串行接口工作方式0,移位寄存器方式,用于I/O口擴展; SM0、SM1=01,定義為串行接口工作方式1,8位UART,波特率可變; SM0、SM1=10,定義為串行接口工作方式2,9位UART,波特率為fosc/64

11、或fosc/32; SM0、SM1=11,定義為串行接口工作方式3,9位UART,波特率可變;SM2:用于方式2、方式3時的多機通訊控制 SM2=1,允許多機通訊。多機通訊規定,在方式2、方式3的情況下,接收第9位數據D8=1,表示本幀為地址值,若D8=0,表示本幀為數據值,不使RI=1。在方式1的情況下,按接收到有效的停止位時,使RI=1。 SM2=0,在方式0時,必須使SM2=0REN:允許串行接收控制位 REN=1,允許接收信息 REN=0,不允許接收信息TB8:是工作方式2、工作方式3中,發送的第9位數據。它既可以作為數據的奇偶校驗位,也可以作為多機通訊中的地址幀或數據幀的標志。RB8

12、: 是工作方式2、工作方式3中,接收的第9位數據。它既可以作為約定的奇偶校驗位,也可以作為多機通訊中的地址幀或數據幀的標志。在工作方式1中,當SM2=0時,RB8的內容是已接收到的停止位。在工作方式0中,不使用RB8。TI:發送中斷標志位。在工作方式0時,發送完8位數據后,由硬件置TI=1,向CPU申請發送中斷。CPU在響應中斷后,要由軟件置TI=0。在其它工作方式時,在發送停止位開始時由硬件置TI=1,并向CPU申請發送中斷。CPU在響應中斷后,也要由軟件置TI=0。RI:接收中斷標志位。在工作方式0時,接收完8位數據后,由硬件置RI=1,向CPU申請接收中斷。CPU在響應中斷后,要由軟件置

13、RI=0。在其它工作方式時,在接收停止位的中途時由硬件置RI=1,并向CPU申請發送中斷。CPU在響應中斷后,也要由軟件置RI=0。發送中斷與接收中斷是用同一中斷源,在全雙工通訊方式中,要用軟件來判別是發送中斷請求還是接收中斷請求。串行接口的結構接口數據位D7D6D5D4D3D2D1D0PCONSMODGF1GF0PDIDL2. 電源控制寄存器PCON 電源控制寄存器PCON的地址為87H,沒有位尋址功能。可以對單片機實現電源控制管理,其中有一位對串行接口的工作實現控制。其格式如下。第7章 串行接口串行接口的結構接口 其中PCON.7位SMOD,為波特率倍增位,當SMOD=1時,使串行接口的波

14、特率加倍。其余幾位用于電源的控制。 通過對串行接口控制寄存器SCON的SM0、SM1二位的設定,可以定義串行接口的4種工作方式。1.工作方式0 串行接口工作方式0為同步移位寄存器輸入輸出方式,波特率是固定的,為f0SC/12。串行數據由RXD(P3.0)端輸入輸出,同步移位脈沖由TXD(P3.1)端輸出,發送、接收8位數據,低位在先。工作方式0不能用于串行同步通訊中,主要是使串行端口和外接的移位寄存器結合起來擴展單片機的并行輸入輸出端口。 當要發送的數據寫入串行口發送緩沖器SBUF時,串行口將8位數據從RXD端輸出,以工作方式0發送數據時,發送完數據后置中斷標志TI=1,TXD端輸出同步脈沖。

15、一幀數據發送完畢,各控制端均恢復原狀態,只有TI保持高電平,呈中斷申請狀態。在下一次發送數據前,須由軟件將TI清零。 當要接收數據時,在REN=1、RI=0的條件下,便啟動串行口接收數據。此時RXD為串行輸入端,TXD為同步脈沖輸出端。接收到一幀數據后,置中斷標志RI=l,呈中斷申請狀態,再次接收數據,須由軟件將TI清零。第7章 串行接口串行接口的工作方式2.工作方式1 串行接口工作方式1為8位異步通訊接口,傳送-幀數據有1O位,1位起始位(低電平信號),8位數據位(先低位后高位),1位停止位(高電平信號)。其格式如下:串行接口的結構接口起始位 8位數據 停止位0D0 D1 D2 D3 D4

16、D5 D6 D71 當把8位數據寫入發送緩沖器SBUF,便啟動串行接口發送數據,數據由TXD端輸出。串行接口能夠自動地在數據的前后插入1位起始位和1位停止位,組成10位一幀的數據,在發送移位脈沖的作用下依次從TXD端發送。8位數據發送后,在停止位開始時使TI=1,通知CPU發送下一幀數據。發送時的移位時鐘是由定時器T1送達的溢出信號經16或32分頻(由SM0D位決定)取得,所以波特率是可變的。 在REN=1時,接收器以所選波特率的16倍速采樣RXD端的狀態,接收移位脈沖的頻率和發送頻率相同。在沒有信號到來之前,RXD端狀態為1。當采樣到RXD端從1到0的跳變時就啟動接收器接收,先復位內部16位

17、分頻計數器,實現時間同步。在接收過程中,接收到的值是3次采樣中至少二次相同的值,以保證輸入的數據可靠無誤。 接收完一幀數據后,在RI=0、SM2=0或接收到的停止位為1,則接收數據有效,將接收移位寄存器內的數據裝入SBUF中,停止位裝入SCON寄存器的RB8中,并置RI=1。若不能滿足RI=0、SM2=0或接收到的停止位為1的條件,則接收的數據丟失。中斷標志RI必須由軟件清零。3.工作方式2 串行接口工作方式2為9位異步通訊接口,傳送-幀數據有11位,1位起始位(低電平信號),8位數 據位(先低位后高位),1位可編程位,1位停止位(高電平信號)。其格式如下:串行接口的結構接口起始位 9位數據

18、停止位0D0D1D2D3D4D5D6D7TB81 發送時可編程位TB8根據需要設置為0或1,TB8既可以作為多機通訊中的地址標志位,也可以作為數據的奇偶校驗位,在接收數據時,可編程位送入SCON寄存器中的RB8位。在工作方式2下,波特率只有二種:f0SC/64和f0SC/32,由SMOD的值決定。 發送時,數據由TXD端輸出,第九位數據是SCON中的TB8,數據寫入SBUF后,即啟動發送器發送。發送完一幀信息后,置TI=1,要發送下一幀信息前,TI必須由軟件清零。 在REN=1時,數據由RXD端輸入,共接收11位數。接收器以波特率的16倍的速率采樣RXD的電平,在檢測到RXD的電平從高到低的負

19、跳變時,啟動接收器接收信息。在接收過程中,若檢測到的起始位值不是0,則復位接收器,在接收到RXD端的下一個負跳變信號時重新啟動接收器。若檢測到的起始位值是O,開始接收本幀的信息。在接收完一幀信息后,且RI=0、SM2=0或接收到的第九位數據為1時,8位數據寫入接收緩沖器,第九位數據寫入SCON寄存器的RB8,并置TI=1,若上述條件不滿足時,接收的數據丟失,也不置TI=1。4.工作方式3 串行接口工作方式3也是9位異步通訊接口,傳送-幀數據有11位,1位起始位(低電平信號),8位數據位(先低位后高位),1位可編程位,1位停止位(高電平信號)。但波特率與工作方式2不同,只有一種。 串行接口的結構

20、接口第7章 串行接口 MCS一51單片機的串行通信波特率是隨著串行口的工作方式不同而不同。波特率除了與單片機系統的振蕩頻率fosc、電源控制寄存器PCON的SM0D位有關外,還與定時器T1的設置狀態有關。只有正確進行波特率的設置才能使單片機正常工作。第7章 串行接口7.3 串行接口的波特率1. 四種工作方式下的波特率計算 串行口工作方式O時:波特率固定不變,它與系統的振蕩頻率fosc的大小有關,其值為fosc/12。串行口工作方式2時:波特率有兩種固定值。 當SM0D=1時,波特率=2SM0D/64fosc=fosc/32 當SM0D=0時,波特率=2SM0D/64fosc=fosc/64串行

21、口工作方式1和方式3時:波特率是可變的,可以根據應用的需要靈活地設置波特率,對于波特率的設置,關鍵是要計算定時器T1的溢出率。 波特率=2SMOD/32定時器T1的溢出率 2. 定時器T1的溢出率計算 定時器的溢出率是指在1秒鐘內進行計數產生溢出的次數。定時器的溢出率與定時器的工作模式有關,可以改變單片機內部的特殊功能寄存器TM0D中的T1方式字段中的M1、M0二位,即TM0D.5和TMOD.4位,選擇定時器工作的四種工作模式中一種進行工作。在串行口通信中,一般都使定時器T1工作在模式2,我們只討論定時器T1在工作模式2時的溢出率計算。 在定時工作方式2時,T1為8位自動裝入定時器,由TL1進

22、行計數。TL1的計數輸入來自于內部的時鐘脈沖,每隔12個系統時鐘周期(個機器周期),內部電路將產生個脈沖使TL1加1,當TL1增加到FFH時,再增加1,TL1就產生溢出。因此定時器T1的溢出與系統的時鐘頻率fosc有關,也與每次溢出后TL1重新裝載值N有關。N值越大,定時器T1的溢出率也就越大。當N=FFH時,那么每隔12個時鐘周期,定時器T1就溢出一次。一般情況下,定時器T1溢出一次所需要的時間為: (28N)12時鐘周期=(28N)12/fosc(秒) 于是,定時器每秒所溢出的次數為:定時器T1的溢出率=fosc/(12(28N)式中的N為時間常數,即TH1的預置值。 例如,系統的時鐘頻率

23、fosc=12MHz,TH1的預置值N=E6H,定時器T1在工作模式2下的溢出率為:12106/12/(28E6H)38461.5次/秒第7章 串行接口7.3 串行接口的波特率3. SM0D位對波特率的影響在MCS51單片機串行通信的波特率設置中,SMOD位的選擇會影響波特率的準確性。因為:波特率=2SMOD/32定時器T1的溢出率=2SMOD/32fosc/(12(28N)所以設波特率為2400,fosc=12MHz,當:SM0D=0時預置常數N=2562SMODfosc/(波特率3212)=2562O12106/(24003212)243=F3H將此值裝入TH1,實際的波特率為:波特率=2

24、SMODfosc/(3212(28一N)=2O12106/(3212(28F3H)2403.8由此造成的波特率誤差為:波特率誤差=(2400一2403.8)/240O=0.16%SM0D=1時預置常數N=2562SMODfosc/(波特率3212)=256212106/(24003212)230=E6H將此值裝入TH1,實際的波特率為:波特率=2SMODfosc/(3212(28一N)=212106/(3212(28E6H)2403.8由此造成的波特率誤差為:波特率誤差=(2400一2403.8)/240O=0.16%但是當fosc=6MHz時,通過計算,有:SMOD=0時,波特率的誤差為7%

25、SMOD=1時,波特率的誤差為0.16%第7章 串行接口7.3 串行接口的波特率 所以單片機的波特率設置要考慮到SMOD和波特率大小。表7.1是常用波特率,供參考。第7章 串行接口7.3 串行接口的波特率波特率f(MHz)SMOD定 時 器 1C/T方式重置裝入值方式0最大值:1MHz12X X XX方式2最大值:375Kz 12 1 X X X方式1、3: 62.5 Kz 19.2 Kz 9.6 Kz 4.8 Kz2.4 Kz1.2 Kz137.6Hz110 Hz110 Hz 1211.0592 11.059211.059211.059211.059211.969 6 12 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 1FFHFDHFDHFAHF4HE8H1DH27H FEEBH7.4 串行接口的應用 應用MCS51單片機的串行接口,可以擴展單片機的輸入輸出端口,可以實現單片機之間的串行異步通信,也可以在多個單片機之間進行串行異步通信,還可以在單片機和P

溫馨提示

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

評論

0/150

提交評論