組込み・ファームウェア
UARTの送信側と受信側のボーレートが少しずれていると、文字化けが起こることがある。ずれの許容範囲がおよそ数%程度に限られる理由として正しいものはどれか。
- A受信側はスタートビットで合わせた後、自分のクロックで各ビットの真ん中を読むので、ずれが1文字の間に積み重なって最後のビットで半ビットを超えると誤るから
- Bボーレートがずれると、送信側の電圧が下がるから
- CUARTはずれを自動で直すので、実際には許容範囲はない
答えと解説を見る
正解:A. 受信側はスタートビットで合わせた後、自分のクロックで各ビットの真ん中を読むので、ずれが1文字の間に積み重なって最後のビットで半ビットを超えると誤るから
受信側は、スタートビットの始まりでタイミングを合わせ、その後は自分のボーレートで数えて各ビットの真ん中で値を読みます。速度にずれがあると、読むタイミングのずれがビットごとに積み重なり、約10ビット後のストップビットで半ビット以上ずれると隣のビットを読んでしまいます。そのため両側を合わせた誤差は数%以内に抑える必要があり、クロックの精度の低い内蔵の発振器では注意が必要です。
- A. 正しい。約10ビットの間に半ビット以上ずれると誤ります。
- B. 電圧とは関係ありません。
- C. 普通のUARTは文字の途中でずれを直しません。