5.2.3非同步序列通訊UART(下)
阿新 • • 發佈:2020-10-13
平時是邏輯1,然後會有一個跳0的起始位,然後傳送資料,然後校驗位然後停止位
時鐘驅動下,傳輸資料,LSB先發,你看到01100100,從人類角度最後發的最高位,c語言寫的是0b00100110,16進位制是8421是0x2 421.這個數發出去後,非同步時鐘驅使下的得到資料、
電磁干擾還有電線長後有電容,此時有可能變為10110010這是不對的,現實通訊會遇到這個問題。
使用過取樣避免錯誤,以一定速度來發送資料,在接收端我用比約定好的波特率快一些速度來看資料。在目前晶片中預設速度是16倍速度來檢視接收資料。
會用中間三個bit值,來進行投票,選取取樣多的,或者丟棄重傳
時鐘有誤差
發射1000HZ接受只要950-1050直接就可以了
UART採用奇偶校驗
奇偶校驗不能發現所有錯誤,兩個地方翻轉就會無法確認
人體UART