PIC单片机入门_同步/异步通信技术基础
生活随笔
收集整理的這篇文章主要介紹了
PIC单片机入门_同步/异步通信技术基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前言
通用同步 / 異步收發器 (Universal Synchronous/Asynchronous Receiver/Transmitter, USART) 模塊是兩個串行 I/O 模塊之一 ( 另一個是 Synchronous Serial,SSP 模塊 )。 USART也稱為串行通訊接口(Serial Communication Interface,SCI)。 USART 可以配置為全雙工異步系統,可與 CRT 終端和個人計算機等外設進行通信(RC6=TX, RC7=RX);也可配置為半雙工同步系統,可與 A/D 或 D/A 集成電路,以及串行 EEPROM等外設器件進行通信。USART 可配置為以下幾種工作模式:全雙工異步模式;半雙工同步主控模式;半雙工同步從動模式為將 RC6= TX/CK 和 RC7=RX/DT 引腳配置為用于 USART,必須把 SPEN 位 (RCSTA<7>) 和相應的 TRIS位置 1。2.USART控制寄存器詳解
2.1 TXSTA:發送狀態和控制寄存器
bit 7 CSRC=時鐘源選擇位:異步模式,同步模式;1 = 主控模式 ( 由內部波特率發生器產生時鐘 );0 = 從動模式 ( 由外部時鐘源提供時鐘信號 )。
bit 6 TX9=9 位發送使能位:1 = 選擇 9 位數據發送;0 = 選擇 8 位數據發送;
bit 5 TXEN= 發送使能位:1 = 允許發送;0 = 禁止發送;注 : 在 SYNC 模式下,SREN/CREN 位比 TXEN 位優先級高。
bit 4 SYNC=USART 模式選擇位:1 = 同步模式;0 = 異步模式;
bit 3 未用位: 讀為 ‘ 0’ 。
bit 2 BRGH=高速波特率使能位:異步模式1 = 高速,0 = 低速;同步模式,此位未用;
bit 1 TRMT=發送移位寄存器狀態位:1 = TSR 空,0 = TSR 滿;
bit 0 TX9D=發送數據的第 9 位:可作為奇偶校驗位。
2.2 RXSTA:接受狀態和控制寄存器
bit 7 SPEN=串口使能位:1=允許串口工作 ( 把 RX/DT 和 TX/CK 引腳配置為串口引腳 );0=禁止串口工作;
bit 6 RX9=9 位接收使能位:1 = 選擇 9 位接收;0 = 選擇 8 位接收;
bit 5 SREN= 單字節接收使能位:異步模式,同步主控模式;1 = 允許接收單字節,0 = 禁止接收單字節;在接收完成后該位被清零。同步從動模式此位未用;
bit 4 CREN=連續接收使能位:異步模式1 = 允許連續接收,0 = 禁止連續接收;同步模式1 = 允許連續接收直到 CREN 位被清零 (CREN 位比 SREN 位優先級高 ),0 = 禁止連續接收。
bit 3 未用位= 讀為 ‘ 0’;
bit 2 FERR= 幀出錯標志位:1=幀出錯;0 = 無幀錯誤。 bit 1 OERR=溢出錯誤位:1 = 有溢出錯誤 ;0 = 無溢出錯誤。
bit 0 RX9D=接收數據的第 9 位,可作為奇偶校驗位。
2.3 USART波特率發生器(Baud rate generator,BRG)
USART 有一個專用的 8 位波特率發生器 ,它支持 USART 的同步模式和異步模式。 SPBRG 寄存器控制著獨立的 8 位定時器的周期。 在異步方式下, BRGH(TXSTA<2>) 位也用來控制波特率。在同步模式下不使用 BRGH(高速波特率發生器)。?討論1:主控模式下(內部時鐘),不同USART工作模式波特率計算。
異步低速9600波特率下,我們來研究一下波特率的偏差:
這個例子,告訴我們一個事實:即使對于低波特率時鐘,使用高波特率公式 ( BRGH = 1)也是有利的,因為公式 FOSC / (16(X +1)) 在某些情況下可以減小波特率誤差。
2.4 與波特率發生器BRG相關的寄存器
異步模式下的波特率計算結果參考如下:
當然,這只是PIC官方提供給我們的參考;實際應用中,我更主張自己根據實際情況計算波特率。這并不復雜!
總結
以上是生活随笔為你收集整理的PIC单片机入门_同步/异步通信技术基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XEIM|XEIM企业即时通讯
- 下一篇: PIC单片机入门_异步通讯模式详解