增強抗干擾是原因之一 標準UART可以選16倍采樣,也可以選64倍采樣,個人覺得應(yīng)該是方便分頻設(shè)計.
標準UART的RXD前端有一個"1到0跳變檢測器",當其連續(xù)接受到8個RXD上的地電平時,該檢測器就認為RXD線出現(xiàn)了起始位,進入接受數(shù)據(jù)狀態(tài).在接受狀態(tài),接受控制器對數(shù)據(jù)位7,8,9三個脈沖采樣,并遵從三中取二的原則確定最終值.采用這一方法的根本目的還是為了增強抗干擾,提高數(shù)據(jù)傳送的可靠性,采樣信號總是在每個接受位的中間位置,可以避開數(shù)據(jù)位兩端的邊沿失真,也可以防止接受時鐘頻率和發(fā)送時鐘頻率不完全同步引起的誤差. 首先回顧一下異步串口通信的數(shù)據(jù)格式: 由于在空閑狀態(tài)時,傳送線為邏輯“1”狀態(tài),,而數(shù)據(jù)的傳送總是以一個起始位“0”開始,,所以當接收器檢測到一個從“1”向“0”的跳變時,,便視為可能的起始位(要排除干擾引起的跳變);起始位被確認后,就知道發(fā)送器已開始發(fā)送,,接收器就可以按這個數(shù)據(jù)通信格式接收后續(xù)的數(shù)據(jù)了,;當檢測到停止位“1”后就表明一幀字符數(shù)據(jù)已發(fā)送完畢。 關(guān)于接收器的設(shè)計最主要的一點是如何提高采樣的準確率,,最好是保證采樣點處于被采樣數(shù)據(jù)的時間中間點,。所以,在接收采樣時要用比數(shù)據(jù)波特率高n倍(n≥1)速率的時鐘對數(shù)據(jù)進行采樣,。在本程序中用16倍波特率時鐘進行采樣,。結(jié)合圖示,我們講解一下如何讓采樣時刻處于被采樣數(shù)據(jù)的時間中間點: 1. 在t1時刻若檢測到低電平,,就開始對這個低電平進行連續(xù)的檢測 2. 當檢測了8個時鐘周期后,到達t2,,此刻,,若前面的8個周期都是低電平,則認為檢測到了起始脈沖,。否則就認為是干擾,,重新檢測。 3. 在檢測到起始位后,,再計數(shù)16個采樣時鐘周期就到達了第一個數(shù)據(jù)位的時間中間點t3,在此刻采樣數(shù)據(jù)并進行保存,。 4. 然后再經(jīng)過16個周期,就是第二個數(shù)據(jù)位的時間中間點,在此時刻進行采樣,;然后,,再經(jīng)過16個周期,就是第三個數(shù)據(jù)位的時間中間點, 在此時刻進行采樣…..一直這樣采樣,,直到把所有的數(shù)據(jù)位采樣完畢,。 |
|
來自: carl_xie12 > 《UART》