日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]   51單片機具有串行通信能力。其串行接口(UART)是一個全雙工的通信接口,能方便地與其他單片機實現(xiàn)雙機或多機串行通信。隨著IBM - PC機的普及和單片機應用的迅速發(fā)展,把這兩種微型機結合起來的應用日

  51單片機具有串行通信能力。其串行接口(UART)是一個全雙工的通信接口,能方便地與其他單片機實現(xiàn)雙機或多機串行通信。隨著IBM - PC機的普及和單片機應用的迅速發(fā)展,把這兩種微型機結合起來的應用日益廣泛,從而使之既具有較強的實時控制功能,又有很強的數(shù)據(jù)處理能力,充分發(fā)揮了不同機種的特長。在這種應用中,雙方都采用了RS - 232C標準串行通信接口,以實現(xiàn)雙機或多機之間的通信。
  
  在不同機種的微機通信中,眾所周知的一個問題是進行通信的雙方應該采用相同的傳輸速率,即雙方都應使用同樣的傳輸波特率,這是確保通信成功的重要條件之一。下面僅對通信中波特率的設置問題作一些論述,供大家參考。
  
  在IBM - PC/XT系統(tǒng)中,配備有異步通信適配器,該板上設有INS8250異步通信接口。PC機上波特率的設置是通過對8250初始化而實現(xiàn)的。在8250端口寄存器中,3FSH和3F9H分別設置為波特率因子的低8位和高8位值。該因子取值范圍為1~65 535,對輸入時鐘(1. 843 2 MHz)進行分頻,產生16倍波特率的波特率發(fā)生器時鐘(BAUDOUT),因而


  
  對8250初始化預置了波特率因子之后,波特率發(fā)生器方可產生規(guī)定的波特率。
  
  51單片機串行通信的波特率因串行口工作方式選擇不同而異。它除了與系統(tǒng)的振蕩頻率、電源控制寄存器PCON的SMOD位有關外,還與定時器T1的設置有關。
  
  在串行口工作方式O時,波特率固定不變,其大小為foSC/12。在串行口方式2時,波特率也只固定為兩種,與SMOD位的值有關:當SMOD-O時,波特率為foSC/64;當SMOD=1時,波特率為foSC/32。串行口方式1、3的波特率是可變的,除與SMOD位的取值有關外,主要取決于定時器1的溢出率。當定時器1用作串行通信的波特率發(fā)生器時,波特率可由下式確定:
  
  波特率=T1溢出率/n
  
  式中:n=32或16,對應于PCON中SMOD=O或1。而Ti的溢出率取決于計數(shù)速率和定時時間常數(shù),即
  
  T1溢出率=計數(shù)速率/256-x
  
  此時T1工作于方式2,即8位自動裝載方式。這種方式可以避免重新設定定時初值。式中x即為在TH1和TL1中裝入的初始計數(shù)值。定時器1的計數(shù)速率與定時器工作方式的選擇有關。當選擇T1為定時工作方式時,其計數(shù)輸入脈沖為內部時鐘信號,即每個機器周期使寄存器值加1,而每個機器周期為12個振蕩周期,故計數(shù)速率為fosc/12。若系統(tǒng)fosc=12 MHz,則T1計數(shù)速率為fosc/12=1 MHz。由此可得出


  
  例如,假定串行通信雙方波特率要求為9 600 b/s.系統(tǒng)振蕩頻率fosc=11. 59 MHz,當SMOD選為1時,TH1、TL1的初值計算如下:

將此值置入TH,、TL1時,波特率發(fā)生器產生的實際的傳輸速率為

  在這種情況下,PC機與單片機可以進行正常的接收與發(fā)送。
  
  根據(jù)以上條件,若系統(tǒng)采用12 MHz系統(tǒng)時鐘,按照上面公式計算可得出z≈250或249(FAH或F9H)。此時在THi和TL1中置入FAH或F9H時,實際的傳輸速率為10 416. 67或8 928. 57 b/s,其誤差分別為-8.5%或+7%。
  
  實踐表明,PC機與單片機在這種條件下不能實現(xiàn)正常的接收與發(fā)送。
  
  上面的計算表明,在串行通信中,當規(guī)定了傳輸速率以后,波特率的設置與系統(tǒng)使用的振蕩頻率有著很重要的作用,可直接影響通信的成功與失敗。上例中,當雙機約定了傳輸速率為9600 b/s時,若系統(tǒng)振蕩頻率為12 MHz或6 MHz,PC機的波特率為9 600 b/s,而單片機實際的波特率大于(或小于)9 600 b/s.則波特率誤差為8.5%。也就是說,若PC機以101.17 μs的時間發(fā)送一位數(shù)據(jù),則單片機以96 μs的時間接收一位數(shù)據(jù)。在接收一幀數(shù)據(jù)的過程中,由于誤差的累積,則產生了錯碼。
  
  我們知道,在單片機的串行接收方式(1、2、3)中,CPU以16倍波特率的采樣速率不斷對接收數(shù)據(jù)(RxD)采樣,一旦檢測到由1到0的負跳變,16分頻計數(shù)器立刻復位,使之滿度翻轉的時刻恰好與輸入位的邊沿對準。16分頻計數(shù)器把每個接收位的時間分為16份,在中間三位即7、8、9狀態(tài)時,位檢測器對RxD端的值采樣,并以3取2的表決方式,確定所接收的數(shù)據(jù)位。這3個狀態(tài),理論上對應于每一位的中間段,若發(fā)送端與接收端的傳輸速率不一致,就會發(fā)生采樣偏移。這種傳輸速率的誤差在允許范圍內不致產生錯位或漏碼;但當誤差超出允許范圍時,便會發(fā)生錯位,使接收的某數(shù)據(jù)重復接收,因而產生接收數(shù)據(jù)錯。
  
  下面僅對由波特率誤差引起的錯碼現(xiàn)象作一分析。例如PC機與單片機的通信速率約定為9 600 b/s,系統(tǒng)時鐘為6 MHz時,為了按約定的速率通信,PC機在8250異步通信接口中的3F8H和3F9H寄存器中設定波特率因子分別為OCH和OOH;而單片機中定時器1初值TH1=TL1 =FDH。此時,PC機發(fā)送數(shù)據(jù)與單片機接收數(shù)據(jù)情況如下:
  
  PC機發(fā)送數(shù)據(jù) 單片機接收數(shù)據(jù)
  
  10H—1FH 30H~3FH

  以上數(shù)據(jù)表明了接收數(shù)據(jù)中出現(xiàn)的錯碼情況。通過對上述錯碼進行剖析可以看到:當因波特率誤差引起接收端采樣偏移時,如果這個偏移使得接收某數(shù)據(jù)位的采樣在該位中點的半位間隔時,將會對該位采樣兩次,因而形成了上面的錯碼情況。下面公式表明錯碼或漏碼發(fā)生的位數(shù)N:

即當串行異步通信的幀格式為11位時:
  
  ●N≤11,表示一幀數(shù)據(jù)中有某位被采樣錯,且采樣出錯在第N位;
  
  ●N>ll,表示一幀數(shù)據(jù)中沒有數(shù)據(jù)位發(fā)生采樣錯。
  
  本例中,波特率誤差為8. 5%,由上面公式得出8.5%×11=0.935>0.5,說明在這個波特率誤差下將出現(xiàn)采樣錯,且出錯位為:

  即在數(shù)據(jù)幀包括起始位的第6位發(fā)生錯碼,在第6位采樣了兩次,因而得到上面錯碼情況。

  由此可以類推出錯誤的接收數(shù)據(jù)。
  
  相反,當PC機的傳送波特率大于單片機的傳送波特率時,則會在第N位出現(xiàn)漏碼錯誤。這里不再贅述。
  
  由上面的公式還可以推斷出,當波特率相對誤差小于4. 5%時,這種采樣的偏移將不影響正常的數(shù)據(jù)接收。但一般為了保證傳輸?shù)目煽啃?,通常波特率誤差不大于2.5%,而盡量選擇最小的傳輸誤差率。
  
  在波特率的設置中,還有一個問題值得注意,這就是SMOD位的選擇也影響著波特率的準確率。請看下面例子:
  
  設波特率為2 400 b/s,fosc=6 MHz時,SMOD可以任選為0或1。但是由于對SMOD不同的選擇,產生了不同的波特率誤差:

  上面的分析說明了SMOD值雖然是可以任意選擇的,但在某些情況下,它直接影響著波特率誤差范圍,因而在波特率設置時,對SMOD的選取也需要做適當?shù)目紤]。
  
  以上對串行通信所必須涉及的波特率設置問題作了一些分析。由此可以看出,在異機種的串行通信中,波特率的設置是很重要的問題,它直接關系著串行通信的成功與失敗,因此在波特率設置時需要給予足夠的認識。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

未來,隨著 5G、物聯(lián)網(wǎng)、人工智能等技術的發(fā)展,可編程波特率產生器將面臨更高的性能要求和更復雜的應用場景。通過不斷創(chuàng)新和技術進步,可編程波特率產生器將在更廣泛的領域發(fā)揮重要作用,推動數(shù)字通信技術的發(fā)展和應用。

關鍵字: 波特率

在現(xiàn)代汽車電子、工業(yè)自動化以及嵌入式系統(tǒng)領域,CAN(Controller Area Network)總線作為一種高效、可靠的串行通信協(xié)議,得到了廣泛應用。然而,在實際應用中,我們有時會遇到需要確定未知CAN總線波特率的...

關鍵字: CAN總線 波特率 汽車電子

UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)是一種廣泛使用的異步串行通信協(xié)議。它允許數(shù)據(jù)在發(fā)送端和接收端之間通過單根或多根線進行傳輸,是許多嵌入式...

關鍵字: UART協(xié)議 波特率

在下述的內容中,小編將會對手把手教大家如何去實現(xiàn)RA UART實現(xiàn)串口波特率自適應,如果串口波特率自適應內容是您想要了解的焦點之一,不妨和小編共同閱讀這篇文章哦。

關鍵字: 串口 波特率 UART

以下內容中,小編將對波特率的相關內容進行著重介紹和闡述,希望本文能幫您增進對波特率的了解,和小編一起來看看吧。

關鍵字: 波特率 碼元

波特率9600的傳輸速率為每秒9600個比特,而波特率115200的傳輸速率為每秒115200個比特,因此,115200的傳輸速度比9600快得多。

關鍵字: 波特率 傳輸速度 MCU

比特率:在數(shù)字信道中,比特率是數(shù)字信號的傳輸速率,它用單位時間內傳輸?shù)亩M制代碼的有效位(bit)數(shù)來表示,其單位為每秒比特數(shù)bit/s(bps)。

關鍵字: 波特率 比特率 信道

在通信領域中,波特率與數(shù)據(jù)傳輸速率是兩個關鍵的性能指標。波特率通常用于描述模擬通信系統(tǒng)中的信號調制速率,而數(shù)據(jù)傳輸速率則用于描述數(shù)字通信系統(tǒng)中的數(shù)據(jù)傳輸效率。了解波特率與數(shù)據(jù)傳輸速率的關系對于正確選擇和配置通信系統(tǒng)至關重...

關鍵字: 波特率 數(shù)據(jù)傳輸速率 模擬通信

串行通信是一種通信方式,其中數(shù)據(jù)按順序一位一位地傳輸。與并行通信不同,串行通信在一條線路上傳輸數(shù)據(jù),因此需要較少的數(shù)據(jù)線。串行通信主要用于長距離通信,因為它的功耗低、成本低、簡單易實現(xiàn)。

關鍵字: 串行通信 波特率
關閉