增強抗干擾是原因之一
標準UART可以選16倍采樣,也可以選64倍采樣,個人覺得應該是方便分頻設計。
標準UART的RXD前端有一個"1到0跳變檢測器",當其連續接受到8個RXD上的地電平時,該檢測器就認為RXD線出現了起始位,進入接受數據狀態.在接受狀態,接受控制器對數據位7,8,9三個脈沖采樣,并遵從三中取二的原則確定最終值.采用這一方法的根本目的還是為了增強抗干擾,提高數據傳送的可靠性,采樣信號總是在每個接受位的中間位置,可以避開數據位兩端的邊沿失真,也可以防止接受時鐘頻率和發送時鐘頻率不完全同步引起的誤差。
首先回顧一下異步串口通信的數據格式:
由于在空閑狀態時,傳送線為邏輯“1”狀態,而數據的傳送總是以一個起始位“0”開始,所以當接收器檢測到一個從“1”向“0”的跳變時,便視為可能的起始位(要排除干擾引起的跳變);起始位被確認后,就知道發送器已開始發送,接收器就可以按這個數據通信格式接收后續的數據了;當檢測到停止位“1”后就表明一幀字符數據已發送完畢。
關于接收器的設計最主要的一點是如何提高采樣的準確率,最好是保證采樣點處于被采樣數據的時間中間點。所以,在接收采樣時要用比數據波特率高n倍(n≥1)速率的時鐘對數據進行采樣。在本程序中用16倍波特率時鐘進行采樣。結合圖示,我們講解一下如何讓采樣時刻處于被采樣數據的時間中間點:
1.在t1時刻若檢測到低電平,就開始對這個低電平進行連續的檢測
2. 當檢測了8個時鐘周期后,到達t2,此刻,若前面的8個周期都是低電平,則認為檢測到了起始脈沖。否則就認為是干擾,重新檢測。
3. 在檢測到起始位后,再計數16個采樣時鐘周期就到達了第一個數據位的時間中間點t3,在此刻采樣數據并進行保存。
4. 然后再經過16個周期,就是第二個數據位的時間中間點,在此時刻進行采樣;然后,再經過16個周期,就是第三個數據位的時間中間點, 在此時刻進行采樣…..一直這樣采樣,直到把所有的數據位采樣完畢。
審核編輯:劉清
-
控制器
+關注
關注
114文章
17022瀏覽量
183276 -
接收器
+關注
關注
15文章
2563瀏覽量
73530 -
uart
+關注
關注
22文章
1271瀏覽量
103440 -
串口通信
+關注
關注
34文章
1636瀏覽量
56625 -
時鐘采樣
+關注
關注
0文章
4瀏覽量
3415
原文標題:為什么UART串口通信要16倍過采樣數據
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
請問單片機和GSM模塊通信使用的串口可以同時使用在電腦上打印調試信息嗎?
串口通信使用的電平轉換電路介紹
介紹一種Atmega16單片機串口通信
uart是什么意思?認識uart串口

串口通信的原理,IO口模擬UART串口通信

如何使用FPGA實現串口通信的資料和程序免費下載

Atmega16單片機串口通信

STM32F103VE USART & UART串口通信

評論