組み込みシステム設計者のためのLIN2.0マイコン実装術(後編) ――スレーブ・ノード用ドライバ・ソフトウェア開発のポイント

舘 伸幸

tag: 組み込み

技術解説 2006年2月17日

● ブレーク検出の三つの方法

 まず,ブレークをどのように検出するかですが,これには三つの方法が考えられます.

 一つ目は,UARTのフレーミング・エラーを利用する方法です注1.この場合の注意点は,ノードのマイコンはかならず水晶などの精度の高い発振器で動作していなければならないことです.

 実装例をリスト1に示します.これは,LIN 2.0仕様にある,フレーム途中のブレーク検出にフレーミング・エラーを利用している場合のものです.この関数はエラー発生時の割り込みハンドラです注2.ブレークの判定は16~17行目(薄い灰色の部分)で行っています.UARTがフレーミング・エラーで,かつ受信データがゼロであれば,ブレーク検出を意味します.ただし,フレーム途中のロー・パルス検出は,かならずしもブレークとはいえない場合があるので,対策が必要です.イベント・トリガ・フレーム時のレスポンスの衝突で,ロー・パルスが合成されてしまうことがあるためです.詳細は次の同期バイト処理のところで述べます.

 フレーム途中のブレークはエラー発生とみなす必要がありますが,イベント・トリガ・フレームにおける衝突は,スレーブとしては単に無視するだけです.19行目(濃い灰色で示した部分)はその判断を行っており,その後,同期バイトの処理を呼んでいます.

 注1;プロトコル仕様上の規定,および技術的な原理については中編を参照.
 注2;78K0/Kxシリーズでは,UARTのエラー時に専用の割り込みを発生できる.

リスト1  UARTのフレーミング・エラーを利用したブレーク検出

list01_01.gif

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日