新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機(學習ing)-ATMEGA16的USART與PC機串行通信

        AVR單片機(學習ing)-ATMEGA16的USART與PC機串行通信

        作者: 時間:2016-11-27 來源:網絡 收藏

        4)外部時鐘(這些東西感覺都是扯淡的~~呵呵)

        同步從機操作模式由外部時鐘驅動,如Figure 70 所示。
        輸入到XCK 引腳的外部時鐘由同步寄存器進行采樣,用以提高穩定性。同步寄存器的輸
        出通過一個邊沿檢測器,然后應用于發送器與接收器。這一過程引入了兩個CPU 時鐘周
        期的延時,因此外部XCK 的最大時鐘頻率由以下公式限制:

        fsck要注意fosc 由系統時鐘的穩定性決定,為了防止因頻率漂移而丟失數據,建議保留足夠的
        裕量。

        5)同步時鐘操作

        使用同步模式時(UMSEL = 1)XCK 引腳被用于時鐘輸入( 從機模式) 或時鐘輸出( 主機模
        式)。時鐘的邊沿、數據的采樣與數據的變化之間的關系的基本規律是:在改變數據輸出
        端TxD 的XCK 時鐘的相反邊沿對數據輸入端RxD 進行采樣。

        4、幀格式

        串行數據幀由數據字加上同步位( 開始位與停止位) 以及用于糾錯的奇偶校驗位構成。

        1)數據幀格式

        • 1 個起始位
        • 5、 6、 7、 8 或9 個數據位
        • 無校驗位、奇校驗或偶校驗位
        • 1或2 個停止位
        數據幀以起始位開始;緊接著是數據字的最低位,數據字最多可以有9 個數據位,以數據
        的最高位結束。如果使能了校驗位,校驗位將緊接著數據位,最后是結束位。當一個完整
        的數據幀傳輸后,可以立即傳輸下一個新的數據幀,或使傳輸線處于空閑狀態。Figure
        72 所示為可能的數據幀結構組合。括號中的位是可選的。



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

        USART的字長位UCSZ2:0確定了數據幀的數據位數;校驗模式位UPM1:0用于使能與決
        定校驗的類型; USBS 位設置幀有一位或兩位結束位。接收器忽略第二個停止位,因此
        幀錯誤(FE) 只在第一個結束位為"0” 時被檢測到。

        2)校驗位的計算

        校驗位的計算是對數據的各個位進行異或運算。如果選擇了奇校驗,則異或結果還需要取
        反。校驗位與數據位的關系如下:



        注意:校驗位位于最后一個數據位與第一個停止位之間。

        5、USART的寄存器及設置

        1)USART I/O數據寄存器



        USART 發送數據緩沖寄存器和USART 接收數據緩沖寄存器共享相同的I/O 地址,稱為
        USART 數據寄存器或UDR。將數據寫入UDR 時實際操作的是發送數據緩沖器存器
        (TXB),讀UDR 時實際返回的是接收數據緩沖寄存器(RXB) 的內容。
        在5、6、7 比特字長模式下,未使用的高位被發送器忽略,而接收器則將它們設置為0。
        只有當UCSRA寄存器的UDRE標志置位后才可以對發送緩沖器進行寫操作。如果UDRE
        沒有置位,那么寫入UDR 的數據會被USART 發送器忽略。當數據寫入發送緩沖器后,
        若移位寄存器為空,發送器將把數據加載到發送移位寄存器。然后數據串行地從TxD 引
        腳輸出。
        接收緩沖器包括一個兩級FIFO,一旦接收緩沖器被尋址FIFO 就會改變它的狀態。因此
        不要對這一存儲單元使用讀- 修改- 寫指令(SBI 和CBI)。使用位查詢指令(SBIC 和SBIS)
        時也要小心,因為這也有可能改變FIFO 的狀態(這些東西果斷沒有用過)。

        2)USART控制和狀態寄存器A



        • Bit 7 – RXC: USART 接收結束
        接收緩沖器中有未讀出的數據時RXC 置位,否則清零。接收器禁止時,接收緩沖器被刷
        新,導致RXC 清零。RXC 標志可用來產生接收結束中斷( 見對RXCIE 位的描述)。
        • Bit 6 – TXC: USART 發送結束
        發送移位緩沖器中的數據被送出,且當發送緩沖器 (UDR) 為空時TXC 置位。執行發送結
        束中斷時TXC 標志自動清零,也可以通過寫1 進行清除操作。TXC 標志可用來產生發送
        結束中斷( 見對TXCIE 位的描述)。
        • Bit 5 – UDRE: USART 數據寄存器空
        UDRE標志指出發送緩沖器(UDR)是否準備好接收新數據。UDRE為1說明緩沖器為空,已
        準備好進行數據接收。UDRE標志可用來產生數據寄存器空中斷(見對UDRIE位的描述)。
        復位后UDRE 置位,表明發送器已經就緒。
        • Bit 4 – FE: 幀錯誤
        如果接收緩沖器接收到的下一個字符有幀錯誤,即接收緩沖器中的下一個字符的第一個
        停止位為0,那么FE 置位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當接收到的
        停止位為1 時, FE 標志為0。對UCSRA 進行寫入時,這一位要寫0。
        • Bit 3 – DOR: 數據溢出
        數據溢出時DOR 置位。當接收緩沖器滿( 包含了兩個數據),接收移位寄存器又有數據,
        若此時檢測到一個新的起始位,數據溢出就產生了。這一位一直有效直到接收緩沖器
        (UDR) 被讀取。對UCSRA 進行寫入時,這一位要寫0。
        • Bit 2 – PE: 奇偶校驗錯誤
        當奇偶校驗使能(UPM1 = 1),且接收緩沖器中所接收到的下一個字符有奇偶校驗錯誤時
        UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對UCSRA 進行寫入時,這一
        位要寫0。
        • Bit 1 – U2X: 倍速發送
        這一位僅對異步操作有影響。使用同步操作時將此位清零。
        此位置1 可將波特率分頻因子從16 降到8,從而有效的將異步通信模式的傳輸速率加倍。
        • Bit 0 – MPCM: 多處理器通信模式
        設置此位將啟動多處理器通信模式。MPCM 置位后, USART 接收器接收到的那些不包
        含地址信息的輸入幀都將被忽略。發送器不受MPCM設置的影響。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 新和县| 高雄县| 雅安市| 高雄市| 康马县| 上蔡县| 北辰区| 兰溪市| 应用必备| 奉贤区| 嘉黎县| 大关县| 同仁县| 班戈县| 修文县| 县级市| 徐州市| 石城县| 葫芦岛市| 浦城县| 珲春市| 静宁县| 漾濞| 蓬安县| 永泰县| 夏河县| 潜山县| 宕昌县| 阿城市| 兴文县| 巴彦淖尔市| 邢台市| 南安市| 伊宁县| 吴江市| 英德市| 惠东县| 赤水市| 林周县| 天峨县| 宣武区|