マイコンを効率良く使う「割り込み処理」とは?
割り込み処理とは?
通常のプログラムの動作中に、緊急に処理しなければならなかったり、ある時間までに処理を終えなければならなかったりすることがあります。この場合に、実行しているプログラムを一時中断して他のプログラムを実行することを割り込み処理と言います。割り込み処理には、大きくソフトウェア割り込みとハードウェア割り込みがあります。まず前者のソフトウェア割り込みとは、例えば、実行中のプログラムがオーバーフローや0除算などのエラーを起こしたり、書き込み禁止メモリ領域へ書き込もうとしたりした場合など、実行中のソフトウェアが原因となって発生します。一方のハードウェア割り込みとは、例えば、キーボードのキーを押すなど周辺機からのデータ入力が発生した際に、割り込み要求端子の電圧をHIからLOWにしてアサートすることで、実行中のCPU命令実行が中断され、入力処理ルーチンの実行処理が割り込まれるなど、実行中のハードウェアが原因となって発生します。
組み込み機器における割り込み処理
組み込み制御が行われている最中に、組み込みOSなどに割り込みが発生した場合、現在実行している組み込み制御の作業状態を保存して一時停止し、割り込みハンドラと呼ばれるその割り込み制御に対応した処理を開始します。そして、割り込みハンドラの作業が終了した後に、保存しておいたタスクの状態を復元して元の組み込み制御のタスク作業に戻ります。
割り込み処理は必ず必要という訳ではありません。割り込みをすることで、「割り込み処理によって、他のリアルタイム性を求められている処理が遅延する事がある」「割り込み処理にも遅延が発生する事がある」という点に気を付ける必要があります。
割り込み処理による設計のポイント
①割り込み処理時間は出来るだけ短時間に
割り込み周期に対して、割り込み処理時間が半分以下になるようにします。上記が無理な場合でも、割り込み処理時間は割り込みの周期を超えてはいけません。処理が終わっていないのに次の割り込みタイミングになると、割り込み以外の処理ができずシステムとして破綻してしまいます。
②割り込みの優先順位と多重割り込み
割り込み周期が短い場合や、割り込み処理が遅れると制御対象に影響がある場合は割り込みの優先順位を上げて、多重割り込みを検討します。多重割り込みを許可していない場合は、割り込みの処理途中に 異なる割り込みが発生しても、先行する割り込みの処理が終わるまで割り込みは待たされてしまいます。
組み込み機器の開発なら、当社にお任せください。
組み込み機器 受託開発・生産センターを運営する株式会社サンエスは、組み込みソフトウェアの受託開発を行っています。また、当社は回路設計・組み込みソフトウェアの知見を持つエンジニアが在籍し、ハードウェア・ソフトウェア双方から全体設計をおこなうことで、要求仕様・要求動作を実現するための最適な設計を行います。もちろん、組み込みソフトウェアのみの開発も可能です。お気軽にお問い合わせください。
技術情報・技術コラム
- 電子回路設計
- 組み込みハードウェア
- マイコン制御
ダンピング抵抗とは 設置のポイント
- 電子回路設計
- 組み込みハードウェア
- マイコン制御
マイコンのシステム制御について
- 電子回路設計
- 組み込みハードウェア
- マイコン制御
電子回路設計の注意点
基板実装とは、プリント基板に電子部品をはんだ付けして接続し、電子回路として機能させるプロセスです。製作したプリント基板には、はんだ付けされていない配線だけが配置されており、これに各種電子部品を取り付けることで、電子回路を完成させます…
- 基板実装
基板実装の流れに関して解説!
基板実装とは、プリント基板に電子部品をはんだ付けして接続し、電子回路として機能させるプロセスです。製作したプリント基板には、はんだ付けされていない配線だけが配置されており、これに各種電子部品を取り付けることで、電子回路を完成させます…
- 電子回路設計
- 組み込みソフトウェア
- 組み込みハードウェア
電子回路設計とは?回路設計委託先を選定するポイントも紹介!
電子回路設計とは、電子デバイスや回路を設計し、それらを組み合わせて電子機器の機能や性能を実現するプロセスです。回路設計では、センサーやマイコンなどの様々な電子部品を選定し、回路図や部品表を作成します。実際に基板上にある部品の種類や値、接続方法などを考えて作業します…
- 組み込みハードウェア
- マイコン制御
マイコンって何?組み込み開発とマイコン
マイコンとは電気機器を制御するための小さなコンピュータで、マイクロコントローラやMCU(Micro Controller Unit)、マイクロコンピュータとも呼ばれています。マイコンは、電子レンジや冷蔵庫、掃除機などの家電製品やロボットや産業機器、自動車など、ほとんどの電子機器に組み込まれています…
- 組み込みハードウェア
組み込みソフトウェアにおけるC言語の重要性
組み込みソフトウェアとは、電子機器や組み込みシステムに搭載されて動作するソフトウェアのことを指します。組み込み機器は限られた用途・目的を果たすものであるため、組み込みソフトウェアの機能も限られます…
- マイコン制御
組み込みLinuxとは?
Linuxとは、現在フリーソフトウェアとして公開されているOSで、誰でも無料で入手することができます。元々パソコン向けソフトウェアとして開発されましたが、組み込み機器の高機能化に伴い、その汎用性の高さが注目され、現在ではテレビやスマートフォン、産業機械の組み込みシステムを構築する際にも使われるようになりました。
- 組み込みソフトウェア
組み込みソフトウェアの開発プロセスと開発環境
組み込みソフトウェア開発は、一般的なソフトウェア開発と比べて下記の特徴がございます。組み込みソフトウェア開発では、特定のハードウェア上で動作するため、ハードウェアの仕様や動作に合わせた開発が必要です。また、組み込みソフトウェアは家電製品や自動車などのリアルタイムシステムで使用されることが多いため、時間的な制約の中で動作する必要があり、リアルタイム性が要求されます。
- 基板実装