1|2|3緊急事態には外部イベントで対応ソフトウェアによるデジタル制御を実現できる制御ICと言っても、全ての事象にCPUが介在して制御しているわけではない。初期設定はソフトウェアで行うが、それ以降の処理についてはCPUとは独立に実行すべきケースもある。トランジスタのオン状態とオフ状態を遷移させるためにA-D変換器とCPUを介すと、最短でも約1μsを要することは前述の通りだ。これでは、オン状態を継続することで故障につながるような緊急事態(例えば過電流状態や過電圧状態)が発生したときに、オフ状態への強制遷移が間に合うとは限らない。そこでこの強制遷移には、外部イベントとしてアナログ信号の大小比較で生成した論理信号を活用する方法が有効だ。この外部イベントをCPUへの割り込み要求としてソフトウェアで実行すれば数百ns、CPUを介さず外部イベントから直接ハードウェアの連動で実行すれば非同期で数十ns(ハードウェアの遅延時間に相当)での強制遷移が可能になる。CPUを効率よく稼働させよう最後にソフトウェアについて触れておく。図5は、アナログ信号処理でも古くから制御フィルタとして活用されるPI(比例・積分)制御フィルタに、非線形なリミッタ処理を加えたデジタルフィルタをソフトウェア化したものだ。図5(a)は人間が理解しやすいとされる高位言語のC言語で記述したもの、図5(b)はCPUが実際に解釈する実行命令に相当する、アセンブリ言語で記述したものだ。(クリックで拡大)一見するとC言語記述の処理数が少なく見えるが、CPUの処理数(加減算、乗算、メモリ‐レジスタ間転送、メモリアドレス更新など)で換算すると、CPUの所要サイクル数はC言語記述が39サイクル、アセンブリ言語記述が22サイクルとなり、C言語の方が約2倍の処理時間が必要になる。C言語記述は、人間が処理の流れを理解したり数値演算ツールや他のマイコンで動作検証したものを移植したりする場面では、人的ミスが少なく非常に効率的な手段であることは間違いない。C言語は、高位言語であるがゆえに冗長性が高く、コンパイラと呼ばれる言語変換ツールでアセンブリ言語に変換しなければCPU上で実行できない。コンパイラ任せでは、処理時間を最適化できない場合があるので、最適化が必要な処理はぜひアセンブリ言語で記述できるようにしてほしい。最適化において人間に勝るツールは無いことを付け加える。次回は、「実践編その1」をお届けする。一般的なDC-DCコンバータを例に、電源回路を1つのシステムとして見たときに、何を計測し、何を目標値として制御するのか。デジタルフィルタの設計では、制御量をどのように導出し、フィルタ特性をどう調整するのか。これらについて解説する。環境発電から、電子機器の省エネ設計やバッテリーマネジメント、電気自動車、スマートグリッドまで、広範囲にわたるアプリケーションをカバー。LLC.ITmediaはアイティメディア株式会社の登録商標です。