マイコンを効率良く使う「割り込み処理」とは?
割り込み処理とは?
通常のプログラムの動作中に、緊急に処理しなければならなかったり、ある時間までに処理を終えなければならなかったりすることがあります。この場合に、実行しているプログラムを一時中断して他のプログラムを実行することを割り込み処理と言います。割り込み処理には、大きくソフトウェア割り込みとハードウェア割り込みがあります。まず前者のソフトウェア割り込みとは、例えば、実行中のプログラムがオーバーフローや0除算などのエラーを起こしたり、書き込み禁止メモリ領域へ書き込もうとしたりした場合など、実行中のソフトウェアが原因となって発生します。一方のハードウェア割り込みとは、例えば、キーボードのキーを押すなど周辺機からのデータ入力が発生した際に、割り込み要求端子の電圧をHIからLOWにしてアサートすることで、実行中のCPU命令実行が中断され、入力処理ルーチンの実行処理が割り込まれるなど、実行中のハードウェアが原因となって発生します。
組み込み機器における割り込み処理
組み込み制御が行われている最中に、組み込みOSなどに割り込みが発生した場合、現在実行している組み込み制御の作業状態を保存して一時停止し、割り込みハンドラと呼ばれるその割り込み制御に対応した処理を開始します。そして、割り込みハンドラの作業が終了した後に、保存しておいたタスクの状態を復元して元の組み込み制御のタスク作業に戻ります。
割り込み処理は必ず必要という訳ではありません。割り込みをすることで、「割り込み処理によって、他のリアルタイム性を求められている処理が遅延する事がある」「割り込み処理にも遅延が発生する事がある」という点に気を付ける必要があります。
割り込み処理による設計のポイント
①割り込み処理時間は出来るだけ短時間に
割り込み周期に対して、割り込み処理時間が半分以下になるようにします。上記が無理な場合でも、割り込み処理時間は割り込みの周期を超えてはいけません。処理が終わっていないのに次の割り込みタイミングになると、割り込み以外の処理ができずシステムとして破綻してしまいます。
②割り込みの優先順位と多重割り込み
割り込み周期が短い場合や、割り込み処理が遅れると制御対象に影響がある場合は割り込みの優先順位を上げて、多重割り込みを検討します。多重割り込みを許可していない場合は、割り込みの処理途中に 異なる割り込みが発生しても、先行する割り込みの処理が終わるまで割り込みは待たされてしまいます。
組み込み機器の開発なら、当社にお任せください。
組み込み機器 受託開発・生産センターを運営する株式会社サンエスは、組み込みソフトウェアの受託開発を行っています。また、当社は回路設計・組み込みソフトウェアの知見を持つエンジニアが在籍し、ハードウェア・ソフトウェア双方から全体設計をおこなうことで、要求仕様・要求動作を実現するための最適な設計を行います。もちろん、組み込みソフトウェアのみの開発も可能です。お気軽にお問い合わせください。


技術情報・技術コラム

- 組み込みソフトウェア
ソフトの不具合はなぜ再現しにくいのか
「現場では確実に発生しているのに、手元では再現できない」組込み開発において、最も時間を奪われるのが“再現しない不具合”です。ログには痕跡が残っている。しかしテスト環境では正常に動く。
こうした現象は偶然ではなく、ソフトウェアの構造や実行環境に起因する“必然”であることが少なくありません・・・

- メカ設計
ねじ締結設計の基本 緩み防止と再組立性を考慮した設計術
製品の信頼性を支える要素のひとつが「ねじ締結設計」です。振動や温度変化がある環境では、ねじの緩みが不具合の原因となることも少なくありません・・・

- 電子回路設計
ノイズに強い電源ライン設計 アナログとデジタルの分離レイアウトのコツ
制御基板において、電源ラインの設計は動作安定性を左右する重要な要素です。特にアナログ回路とデジタル回路が混在する基板では、スイッチングノイズや電流変動が信号品質に影響を与え、誤動作や測定精度低下の原因となります・・・

- 組み込みソフトウェア
状態遷移設計が長寿命ソフトを生む
組込みソフトウェアは、出荷後も長期間にわたり現場で動き続けることが前提です。そのため、単に「動く」だけでなく「壊れにくい」「拡張しやすい」「解析しやすい」構造であることが求められます・・・

- メカ設計
機構と基板を融合させる「メカ・エレ融合設計」の現場実例
製品の小型化・高密度化が進む中で、従来の「メカ設計(筐体・機構)」と「エレ設計(電気・基板)」を分業で進める開発手法には限界が見えつつあります。限られた筐体スペースの中で 制御基板、センサ、コネクタ、ケーブル、モータ、放熱構造などを最適に配置するには・・・

- 電子回路設計
高電流駆動基板の放熱設計とレイアウトの工夫
モータやヒータ、ソレノイドなどを制御する高電流駆動基板では、設計上の重要課題として「発熱対策」と「レイアウト設計」が挙げられます。電流が大きくなるほど 配線損失による温度上昇や素子の熱劣化が発生しやすくなります・・・

- 組み込みソフトウェア
テストしやすいファームウェア構造とは
組込みソフトウェア開発において 動作検証(テスト工程)の効率と精度は製品品質に直結します。特に 制御機器や産業用装置、医療機器などではファームウェアの不具合が製品全体の信頼性を左右するため開発段階から「テストしやすい構造」を意識することが不可欠です・・・

- メカ設計
構造・熱・振動を考慮した信頼性設計 長期安定計の工夫
製品の信頼性を確保するうえで、構造・熱・振動は避けて通れない設計課題です。いずれも目に見えにくい要素であるため 開発初期の段階から考慮するかどうかが長期安定性を大きく左右します・・・

- 組み込みソフトウェア
- 組み込みハードウェア
通信回路における信頼性向上 – UART・CAN・BLEの最適化事例
近年の組込み機器では システム間やデバイス間の通信がますます重要になっています。複合機やFA機器、スマートキー、医療装置など、どの分野でも複数のマイコンやセンサー無線モジュールが連携しながら動作しています・・・

- 組み込みソフトウェア
- 組み込みハードウェア
センサー信号処理の工夫 – デジタルフィルタとキャリブレーション設計
組込み機器の多くは 温度・圧力・角度・光・加速度など、
さまざまなセンサーからのアナログ信号を基に制御を行っています。
しかしセンサー信号には「ノイズ」「ドリフト」「感度誤差」など、不安定要素が常につきまといます。
これらをそのまま制御演算に取り込むと、誤動作や制御ずれが発生する要因となります。
そのため、センサー信号をいかに“正しく・安定して”扱うかが制御開発の品質を左右します・・・


