<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > atmega16串口通信

          atmega16串口通信

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          ATmega16單片機帶有一個全雙工的通用同步/異步串行收發(fā)模塊USART,該接口是一個高度靈活的串行通訊設備。其主要特點如下:

          全雙工操作,可同時進行收發(fā)操作;

          本文引用地址:http://www.ex-cimer.com/article/201612/324120.htm

          支持同步或異步操作;

          支持5、6、7、8 和9 位數(shù)據(jù)位,1 位或者2 位停止位的串行數(shù)據(jù)幀結構;

          三個完全獨立的中斷,TX 發(fā)送完成,TX 發(fā)送數(shù)據(jù)寄存器空,RX 接收完成;

          支持多機通訊模式;

          相關寄存器:

          USART 數(shù)據(jù)寄存器—UDR;

          USART 控制和狀態(tài)寄存器—UCSRA,UCSRB,UCSRC;

          波特率寄存器—UBRRL 和UBRRH;

          串口背景知識

          (1)串行通訊簡介

          串行同步通訊容易理解,約定一個同步時鐘,每一時刻傳輸線上的信息就是要傳送的信息單元。串行異步通訊是把 一個字符看作一個獨立的信息單元,每一個字符中的各位是以固定的時間傳送。因此,這種傳送方式在同一字節(jié)內部是同步的,而字符間是異步的。在異步通信中收 發(fā)雙方取得同步的方法是采用在字符格式中設置起始位,而在字符結束時發(fā)送1~2 個停止位。當接收器檢測到起始位時,便能知道經(jīng)接著的是有效的字符位,于是開始接收字符,檢測到停止位時,就將接收到的有效字符裝載到接收緩沖器中。最簡單的串口通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通行的端口,這些參數(shù)必須匹配:


          a,波特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300個bit。當我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。


          b,數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是8位的,標準的值是5、7和8位。如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標準 ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術語“包”指任何通信的情況。


          c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。


          d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步

          通常異步通信的格式如圖:

          USART 接受以下30 種組合的數(shù)據(jù)幀格式:

          • 1 個起始位

          • 5、 6、 7、 8 或9 個數(shù)據(jù)位

          • 無校驗位、奇校驗或偶校驗位

          • 1或2 個停止位

          數(shù)據(jù)幀以起始位開始;緊接著是數(shù)據(jù)字的最低位,數(shù)據(jù)字最多可以有9 個數(shù)據(jù)位,以數(shù)據(jù)的最高位結束。如果使能了校驗位,校驗位將緊接著數(shù)據(jù)位,最后是結束位。當一個完整的數(shù)據(jù)幀傳輸后,可以立即傳輸下一個新的數(shù)據(jù)幀,或使傳輸線處于空閑狀態(tài)。

          數(shù)據(jù)幀的結構由UCSRB 和 UCSRC 寄存器中的UCSZ2:0、 UPM1:0、USBS 設定。接收與發(fā)送使用相同的設置。設置的任何改變都可能破壞正在進行的數(shù)據(jù)傳送與接收。

          (2)串口的組成

          串口由陰陽兩種接口組成。最常使用的信號引腳是TD、RD 和SG,因此最簡單的串口調試只需要包含3 條引線就可以了。在RS232(一種串行工業(yè)總線標準)標準中,利用RD、TD 作為接收、發(fā)送信號線,加入地線,約定好通訊的波特率,實現(xiàn)串行信號傳輸。

          (3)串口電平轉換電路

          PC 的串口工作TTL 信號是12V 的,而在我們一般使用的電路板上,電源信號和TTL電平是5V 的(在低功耗電路中是3.3V 的),為了將信號轉化為可用,需要做串口的電平轉換。這一部分電路已經(jīng)有相應的生產(chǎn)廠商做出了各種集成芯片,例如MAXIM 公司的MAX232/MAX233 芯片,就是實現(xiàn)5V 電路中和PC 實現(xiàn)串口通信的電平轉換芯片,而MAX3232/MAX3233 可以實現(xiàn)3.3V 的電平轉換。


          上一頁 1 2 3 下一頁

          關鍵詞: atmega16串口通

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();