www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

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


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


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

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

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

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

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

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

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

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


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

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

關(guān)鍵字: 波特率

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

關(guān)鍵字: CAN總線 波特率 汽車電子

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

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

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

關(guān)鍵字: 串口 波特率 UART

以下內(nèi)容中,小編將對(duì)波特率的相關(guān)內(nèi)容進(jìn)行著重介紹和闡述,希望本文能幫您增進(jìn)對(duì)波特率的了解,和小編一起來(lái)看看吧。

關(guān)鍵字: 波特率 碼元

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

關(guān)鍵字: 波特率 傳輸速度 MCU

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

關(guān)鍵字: 波特率 比特率 信道

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

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

串行通信是一種通信方式,其中數(shù)據(jù)按順序一位一位地傳輸。與并行通信不同,串行通信在一條線路上傳輸數(shù)據(jù),因此需要較少的數(shù)據(jù)線。串行通信主要用于長(zhǎng)距離通信,因?yàn)樗墓牡?、成本低、?jiǎn)單易實(shí)現(xiàn)。

關(guān)鍵字: 串行通信 波特率
關(guān)閉