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

舘 伸幸

tag: 組み込み

技術解説 2006年2月17日

3.データの送受信とスリープ処理

 ヘッダ処理が完了すると,保護IDの値に応じてレスポンスの送受信を行います.この部分は,動作そのものはごく普通のUARTによる通信です.注意するポイントは,メッセージ・バッファへのアクセス競合です.

● データ送受信時はアクセス競合に注意

 図13は,スレーブから送信する場合のメッセージ・バッファのようすを単純化したものです.API(application programming interface)からは時間順にメッセージ・バッファにデータを書き込んでいきます.一方,LINバスからもこれとは非同期に送信要求が来ます.そのため,あるタイミングでドライバからの読み出しが発生します.設計上なにも考慮していないと,新旧混在したデータを送信してしまうことになります.逆に,スレーブが受信の場合も同じような問題が起こります.データが新旧混在しても問題ないようなシステムでないかぎり,なんらかの対策を行う必要があります.

f13_01.gif
図13 バッファ・アクセスの競合
APIからの書き込み途中でLINバスからの要求が発生すると,新旧混在のデータを送信してしまう.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日