嵌入式與韌體
UART的傳送端與接收端的鮑率若有些許偏差,可能會出現亂碼。偏差的容許範圍只限於大約數%左右,其原因下列何者正確?
- A接收端以起始位元對準後,用自己的時脈在各位元的中央讀取,偏差會在一個字元期間內累積,到最後一個位元超過半個位元就會出錯
- B鮑率一有偏差,傳送端的電壓就會下降
- CUART會自動修正偏差,所以實際上沒有容許範圍
查看答案與解析
正確答案:A. 接收端以起始位元對準後,用自己的時脈在各位元的中央讀取,偏差會在一個字元期間內累積,到最後一個位元超過半個位元就會出錯
接收端在起始位元的起點對準時序,之後以自己的鮑率計數,在各位元的中央讀取數值。若速度有偏差,讀取時序的偏移會逐位元累積,約10位元之後的停止位元若偏移達半個位元以上,就會讀到相鄰的位元。因此雙方合計的誤差必須抑制在數%以內,使用時脈精度較低的內建振盪器時需要注意。
- A. 正確。約10位元期間內偏移超過半個位元就會出錯。
- B. 與電壓無關。
- C. 一般的UART不會在字元中途修正偏差。