Microchip PIC18F4550 的增強型 USART 模組支援自動檢測和校準波特率。 此功能僅在異步模式下當WUE 位元清零時有效。只要接收到起始位並且 ABDEN 位已置 1 ,就會開始自動波特率檢測。 波特率計算採用自平均的方式。
▲ 自動波特率計算 |
一旦 ABDEN 位置1 ,狀態機就會將 BRG 清零並尋找起始位。 為了正確計算比特率,自動波特率檢測必須接收到一個值為 55h (ASCII 字元U ,也是 LIN 匯流排的同步字元)的位元組。 為了儘量減少輸入信號不對稱所造成的影響,在接收低位元和高位的時間內都要進行測量。 在起始位元後,SPBRG 使用預先選擇的時鐘源,在 RX 引腳上的第一個上升沿開始計數。 在RX 引腳傳輸了 8 個位,或在檢測到第 5 個上升沿後,會將在相應 BRG 週期內累計的值保存在 SPBRGH:SPBRG 寄存器對中。 當第5 個時鐘邊沿出現時(應與停止位對應),ABDEN 位會自動清零。
如果發生了 BRG 計滿返回(從 FFFFh 到 0000h 的溢出),會在 ABDOVF 狀態位元(BAUDCON<7>)有所反映。 當 BRG 計滿返回時,該位元由硬體置 1 ,用戶也可用軟體將其置1 或清零。 在發生計滿返回事件後,繼續保持 ABD 模式,ABDEN 位元保持置 1 。
▲ BRG溢出時序 |
當校準波特率週期時,BRG 寄存器時鐘頻率為預配置時鐘頻率的 1/8 。 請注意 BRG 時鐘將由 BRG16 和 BRGH位元配置。 無論 BRG16 位的設置如何,SPBRG 和 SPBRGH 都將被用作一個 16 位計數器。 通過檢查 SPBRGH 寄存器中的值是否為00h ,用戶可以驗證在 8 位元模式下是否發生了進位。 為 BRG 計數器的時鐘速率。當產生 ABD 序列時,EUSART 狀態機保持在空閒狀態。
一旦在 RX 上檢測到第 5 個上升沿,中斷標誌位元 RCIF 就會置 1 。 需要讀取 RCREG 中的值,來清除中斷標誌位 RCIF 。 應丟棄 RCREG 的內容。
▲ BRG 計數器時鐘速率 |
參考資料:Microchip PIC18F2455/2550/4455/4550 Data Sheet
相關網頁:
◆ DIY - 電子:EIA RS-232 串行通信協議標準 (九十二) :
◆ DIY - 電子:MAX232 串行通信協議標準 IC (九十三) :
◆ DIY - 電子:C18 PIC18F4550 USART 函數庫程式 (九十四) :
◆ DIY - 電子:PIC18F4550 USART 電路功能介紹 (九十五) :
◆ DIY - 電子:PIC18F4550 USART 自動波特率電路介紹 (九十六) :
◆ DIY - 電子:PIC18F4550 USART 異步模式 (九十七) :
◆ DIY - 電子:PIC18F4550 + MAX232 USART 電路 (九十八) :
◆ DIY - 電子:PIC18F4550 + MAX232 USART 電路程式 (九十九) :
◆ DIY - 電子:PIC18F4550 測試程式 Hyper Terminal (一百) :
相關網頁:
◎ RS-232 ﹣串列數據通訊的介面標準 (一)
◎ RS-232 ﹣超級終端機串列介面測試 (二)
◎ RS-232 ﹣超級終端機串列介面 Loopback 測試 (三)
◎ RS-232 ﹣用 Excel 做串列介面數據傳輸及接收 (四)
◎ RS-232 ﹣用 Excel API做串列介面數據傳輸及接收 (五)
相關網頁:
◎ DIY - 智能小車:TL-WR703N 無線路由器與 16F877A 控制版串口連接電路 (二十)
◎ DIY - 智能小車:ser2net 詳細介紹 (二十一)
◎ DIY - 智能小車:智能小車 ser2net 設定 (二十二)
◎ DIY - 智能小車:16F877A 控制版串口連接程式 (二十三)
◎ DIY - 智能小車:TL-WR703N 路由器和 RS232 串行板組裝 (二十九)
◎ DIY - 智能小車:PIC 16F877A 處理器板 RS232 接收程式碼 (三十三)
相關網頁:
◎ ESCORT 3146A 5 1/2位數字雙顯示桌上型電錶數據傳輸
◎ Hameg HM507 CombiScope (模數組合示波器) – RS232
2011 年 07 月 09 日 天氣報告
氣溫:29.1 度 @ 22:00
相對濕度:百分之74%
天氣:大致多雲
沒有留言:
張貼留言