メディア

マイコンのクロックセキュリティシステムって何?Q&Aで学ぶマイコン講座(110)(2/3 ページ)

» 2025年12月25日 10時00分 公開
[EDN Japan]
解説します

発振停止検出の必要性

 発振が停止し、システムクロックがなくなると、マイコンは全く動作しません。モーター制御などの産業用アプリケーションでは、重大な事故につながります。そのため、アプリケーションを安全な状態にするために、発振停止をいち早く検知し、事故対応する必要があります。対応策としては、正常に動作しているクロック源に切り替え、マイコンの動作を継続させ、同時に緊急の割り込みを発生させて、各アプリケーションの制御回路を安全に停止させます。

 ここではSTマイクロエレクトロクス(以下、ST)の汎用マイコンSTM32ファミリー*1)を例に挙げて説明します。

 STM32ファミリーには、外部に振動子を接続する発振回路のHSEと、内蔵発振回路のHSIが搭載されています。

 発振停止検知の対象はHSEです。HSEの発振停止が検出されると、システムクロックはHSIに自動的に切り替えられます。これにより、HSEに障害が発生した場合でもアプリケーションソフトウェアは動作を続けます。そして、発振停止のノンマスカブル割り込み(以下、NMI)が発生します。システムクロックの周波数や周波数精度はHSIの仕様に変わりますが、ソフトウェアは動作を続けられるので、NMIを利用して緊急対応用のソフトウェアを走らせることができます。さらに、モーター制御などの重要なアプリケーションを安全な状態にするために、タイマーにブレーク入力を送信することもできます。

 読者の中には、「HSIが停止したら、どうするんだ?」と思われる方がいらっしゃると思います。HSIは、シリコン上に作られた抵抗やコンデンサーで構成されるために、外部の振動子に比べると、非常に信頼性が高く、障害が発生することはほとんどありません。そのため、高い信頼性が要求される車載用のマイコンなどでは、HSIをシステムクロックとして使用します。

*1)STM32ファミリー

発振停止検出の仕組み

 最も簡単な方式は、クロックを使ってコンデンサーを充電する方法です。コンデンサーには充電用のMOSを付けます。MOSには発振信号をバッファーで受けた発振信号をつなげます。クロックが正常だと、クロックの周期でコンデンサーが充電されるので、コンデンサーの電位は、常にハイレベルに保たれます。

 発振回路に障害が発生し、クロックが停止すると、コンデンサーは充電されなくなり、コンデンサーにたまった電荷が放電されます。しかし、自然放電の場合だと、放電に時間がかかって検知が遅くなってしまいます。そこで、放電用の抵抗を付けておきます。すると、抵抗を介してコンデンサーの電荷が放電され、電位が下がります。この電位の低下を検出することにより、クロック停止を検出できます。

 同時に、クロック停止割り込みを発生させ、クロックラインを正常に動作する発振回路に切り替え、マイコンは動作を継続します。

 この他にも、さまざまな方法がありますが、一般的には企業秘密なので公開されていません。

図2:発振停止検知方法 図2:発振停止検知方法[クリックで拡大]
発振停止検知の仕組みを説明するための簡略図です。細部は実際の回路と異なります。

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.