工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

マイクロコントローラ タイマーシリーズ第3回:リアルタイムクロック(RTC)の内部

今回はマイクロコントローラベースのリアルタイムクロック(RTC)の核心に迫ります。前回はタイマーの基礎とパルス幅変調を扱いました。この記事では、RTCがいかに正確な1秒間隔を維持し、時刻と日付を管理し、ドリフトを補償し、改ざんから保護するかを説明します。

RTCの役割

RTCは、安定した1秒ティックを生成し、連続カウントを維持する専用ハードウェアです。シンプルなタイミング図は、ティックジェネレータ、秒カウンタを読み取るソフトウェアルーチン、3秒後に発火するアラームを示します。主要な要件は精度と連続動作です。

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

図1. 基本的なRTCタイミング図

典型的なハードウェア機能

最新のマイクロコントローラRTCには通常以下が含まれます:

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

図2. 一般的なRTCハードウェア機能

精度と周波数補償

RTCの心臓部は32,768 Hzクリスタルです。よく設計された発振器では、クリスタル自体が主な誤差源です。外部TCXOはサブppm安定性を提供できますが、内部発振器も補償により同等の性能を達成可能です。

典型的な誤差源には:

以下のグラフはテキサス・インスツルメンツ提供で、温度と初期誤差の組み合わせ、慎重なキャリブレーションで総誤差を黄色帯域(ボードレベル測定後に達成可能な目標)に収められる様子を示しています。

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

図3. 誤差 vs 温度(テキサス・インスツルメンツ)

1 ppm精度で1年間では、クロックは約30秒ずれます—ほとんどの趣味プロジェクトよりはるかに優れていますが、ミッションクリティカルシステムでは依然として考慮すべきです。

タイミング誤差の補償

ハードウェアのシンプルさを犠牲にせず、小さなドリフトを補正する2つの一般的な戦略があります:

調整可能なプリスケーラー。 RTCがプログラマブルなプリスケーラーを公開している場合、ソフトウェアは数秒ごとにモジュラスを調整できます。例えば、0.00010秒速く進むクロックでは、4秒ごとにプリスケーラーを32,768から32,781に変更し、不足分0.00010秒を毎回加算します。

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

図4. ドリフト対策のためのプリスケーラー調整

利点:きめ細かな補正と最小限のコード。欠点:調整可能なプリスケーラーと追加レジスタが必要。

ソフトウェア補正。 ハードウェアにプログラマブルなプリスケーラーがない場合、ファームウェアは秒カウンタの累積誤差を追跡し、蓄積誤差が1秒に達したらティックを加減算します。調整はサイクルごとに1回しか見えないため、急激に感じられることがあります。

マイクロコントローラ リアルタイムクロック(RTC)の内部:設計、精度、セキュリティ

図5. ソフトウェアのみのタイミング補正

利点:あらゆるRTCで動作。欠点:ティックレートに顕著なジャンプが生じる。

セキュリティ考慮事項

時間が請求、使用制限、クリティカルなシーケンシングに関わるアプリケーションでは、RTCを改ざんから保護することが不可欠です。多くのマイクロコントローラは以下を提供します:

例えば、この記事で使用しているMCUにはロックビットがあり、一度設定するとチップリセットまでクリアできず、不正コードによるクロック変更を防止します。

時刻と日付の管理

一部のRTCは完全な時刻とカレンダーカウンタを統合しています。ハードウェアにこれらがない場合、ファームウェアは標準アルゴリズムで32ビット秒カウンタから日付を導出できます。C標準ライブラリのtime.hは、エポック(通常1970年1月1日)からの秒数を返す関数を期待します。RTCのカウンタを読み取るシンプルなget_time()ラッパーがライブラリに供給され、ライブラリが閏年、夏時間、フォーマットを処理します。

32ビット秒カウンタの限界

32ビットカウンタは2³²秒(約136年以上)でオーバーフローします。しかし、エポックが1970年開始の場合、カウンタは2038年にロールオーバーします(Y2038問題)。Cライブラリに依存するシステムでは、カウンタが2³¹-1に達すると未定義動作を起こす可能性があります。

NASAのディープインパクトミッションは、0.1秒単位で時間を追跡する32ビットタイマーが2013年にロールオーバーし、制御コマンドが破損した可能性があるとして通信を失いました。

「正確な原因は不明だが、分析によりディープインパクトの姿勢制御喪失につながった可能性のあるコンピュータータイムタグの潜在的問題が明らかになった。」

— NASAニュースリリース、2013年

設計者は、システムの予想寿命を十分に超えるカウンタを使用するか、ファームウェアでロールオーバー処理を実装すべきです。

次のステップ

このシリーズの最終記事では、ソフトウェアハング時でもマイクロコントローラを生かすセーフティネット、ウォッチドッグタイマーを扱います。

産業技術

  1. OPC Unified Architectureでリアルタイム企業相互運用性を実現
  2. コンデンサの充放電:RC回路のハンズオン実験
  3. RCおよびRL回路の時定数計算をマスターする
  4. リアクティブDC回路における電圧と電流の計算
  5. 産業成長の解き放ち:IoTが新たな産業革命をどう推進するか
  6. 作業設備をアップグレードすべきタイミング:賢明なビジネス判断
  7. デジタルトランスフォーメーションを加速する7つの主要ドライバー
  8. 高性能加工(HPM)を受け入れよう:速度、精度、ROIを飛躍させる
  9. ロボットが3D環境変化をリアルタイム検知しARグラスで兵士に警告、ヒューマン・ロボットチームで状況認識強化
  10. 高度航空機センサー:リアルタイム着氷検知と融解率監視
  11. クラウド管理を戦略的ITプラクティスへ変革する