daisuke2 2024年2月19日 18時32分 RS00を使用したシリアル通信時に、設定したボーレート外のデータを受信した場合フレーミングエラーが発生していると思うのですが以下について教えてください。 ・フレーミングエラーは設定ボーレートの何%以上の誤差時に検出する様になっていますでしょうか? ・フレーミングエラーの発生状態をアプリ側で取得することは可能でしょうか? コメントを投稿するにはログインまたは登録をしてください コメント at_mizo 2024年3月1日 14時35分 溝渕です。 > RS00を使用したシリアル通信時に、設定したボーレート外のデータを受信した場合フレーミングエラーが発生していると思うのですが以下について教えてください。 > ・フレーミングエラーは設定ボーレートの何%以上の誤差時に検出する様になっていますでしょうか? 前提として、N%ずれたらフレームエラーとなるわけではなく、フレームエラーが発生したらフレームエラーと判定されます。 フレームエラーとなるのは通信設定次第ですが、例えばデータ長8bit, パリティ無しの場合、およそ5%ずれるとフレームエラーとなります。 上記設定の場合、10clockで1つのデータを送信します。通常、データの中心でラッチしようとするため、前後どちらかに半clock分ずれると正常に受信できません。 100% / (10 * 2) = 5% > ・フレーミングエラーの発生状態をアプリ側で取得することは可能でしょうか? 以下で取得可能です。 [armadillo]# cat /proc/tty/driver/IMX-uart 以下の項目があれば、エラー等が発生しています。未検出状態だと項目自体が表示されません。 fe: フレームエラー検出 pe: パリティエラー検出 brk: BREAK検出 oe: FIFOオーバーラン検出 コメントを投稿するにはログインまたは登録をしてください
at_mizo 2024年3月1日 14時35分 溝渕です。 > RS00を使用したシリアル通信時に、設定したボーレート外のデータを受信した場合フレーミングエラーが発生していると思うのですが以下について教えてください。 > ・フレーミングエラーは設定ボーレートの何%以上の誤差時に検出する様になっていますでしょうか? 前提として、N%ずれたらフレームエラーとなるわけではなく、フレームエラーが発生したらフレームエラーと判定されます。 フレームエラーとなるのは通信設定次第ですが、例えばデータ長8bit, パリティ無しの場合、およそ5%ずれるとフレームエラーとなります。 上記設定の場合、10clockで1つのデータを送信します。通常、データの中心でラッチしようとするため、前後どちらかに半clock分ずれると正常に受信できません。 100% / (10 * 2) = 5% > ・フレーミングエラーの発生状態をアプリ側で取得することは可能でしょうか? 以下で取得可能です。 [armadillo]# cat /proc/tty/driver/IMX-uart 以下の項目があれば、エラー等が発生しています。未検出状態だと項目自体が表示されません。 fe: フレームエラー検出 pe: パリティエラー検出 brk: BREAK検出 oe: FIFOオーバーラン検出 コメントを投稿するにはログインまたは登録をしてください
at_mizo
2024年3月1日 14時35分
溝渕です。
> RS00を使用したシリアル通信時に、設定したボーレート外のデータを受信した場合フレーミングエラーが発生していると思うのですが以下について教えてください。
> ・フレーミングエラーは設定ボーレートの何%以上の誤差時に検出する様になっていますでしょうか?
前提として、N%ずれたらフレームエラーとなるわけではなく、フレームエラーが発生したらフレームエラーと判定されます。
フレームエラーとなるのは通信設定次第ですが、例えばデータ長8bit, パリティ無しの場合、およそ5%ずれるとフレームエラーとなります。
上記設定の場合、10clockで1つのデータを送信します。通常、データの中心でラッチしようとするため、前後どちらかに半clock分ずれると正常に受信できません。
100% / (10 * 2) = 5%
> ・フレーミングエラーの発生状態をアプリ側で取得することは可能でしょうか?
以下で取得可能です。
以下の項目があれば、エラー等が発生しています。未検出状態だと項目自体が表示されません。
fe: フレームエラー検出
pe: パリティエラー検出
brk: BREAK検出
oe: FIFOオーバーラン検出