●リアルタイム・クロック(RTC)とはどんなものか

Q:マイコンの機能で、リアルタイム・クロックという名前のものがありますが、これはどんなものですか。

A:リアルタイム・クロックは、一言で言えば時計機能です。パソコンやスマートフォンには時分秒、年月日、曜日などを表示するカレンダー時計が必ず備わっています。これはOSが管理していて、ファイルやメールのタイムスタンプにも利用されています。ビデオレコーダなどのデジタル家電、電気釜などの白物家電にも、予約のための時計機能を持つものがあります。これらをリアルタイム・クロック、略してRTCと呼びます。

Q:時計なら、わざわざ『リアルタイム・クロック』なんて分かりにくい名前を付けないで、ただ『時計』って言ってくれればいいと思うのですが…。

A:コンピュータの世界では、単に『クロック』と言えばCPUの動作クロックを指すのが普通です。日本語だと『クロック』と『時計』は別の言葉に聞こえるのですが、英語だとどちらも『clock』になって区別が付きません。それで、時計機能の方はわざわざ『リアルタイム・クロック』と呼ぶことにしたのです。

Q:『リアルタイム』という言葉も聞いたことがありますが、どういう意味ですか。

A:直訳すれば『実時間』ですが、私たちが現実世界で普通に使っている時間のことです。CPU内部での時間の流れはクロックに支配されていて、同じCPUで同じプログラムを実行するとしても、クロック周波数が変われば外部(つまり現実世界)から見たプログラムの実行速度は変わります。

基本的には、コンピュータは外部の時間とは関係なく勝手に突っ走ります。それを、外部の時間に合わせて入出力の動作をさせたり、機械を制御したりするには、プログラムのループで待ったり、タイマ機能や割り込み機能を活用する必要があります。特に、現実世界の時間に合わせて、ということを強調したい場合に、『リアルタイム処理』、『リアルタイム制御』、『リアルタイムOS』というように、『リアルタイム』という言葉を使います。

Q:なるほど。『リアルタイム処理』、『リアルタイム制御』も聞いたことがあります。

 

●リアルタイム・クロック(RTC)の基本的な構成

Q:リアルタイム・クロックは、どのようにして時計機能を実現しているのですか。

A:リアルタイム・クロックの基本的な構成は、十分な精度を持つ1秒クロック、クロックをカウントする機能、カウント値(たとえば秒、分、時、日など)を記憶しておくメモリ、システムの電源オフ時にもバッテリでリアルタイム・クロックを動かし続ける電源機能などからなります。

Q:電源オフ時にも、バッテリで動かし続けることが必要なのですか。

A:普通の時計の場合でも、私たちが寝ている間でも時計が動き続けているから、目を覚ました時に時間が分かりますよね。寝ている間に時計が止まっていたら、起きてから何か別の時計を使って時刻合わせをしないと使えません。パソコンの場合でも、長期間使わずに放置したら時計が止まってしまい、電池交換や時刻合わせが必要になるという経験をした方もいるかと思います。ただ、最近では電波時計とかGPSとかネットワーク時計を使って、電源オンの直後に自動的に時刻合わせをすることも可能になっています。

Q:1秒クロックはどうやって作るのですか。

A:一般に、高精度のクロックを生成するには水晶振動子を使います。CPUクロック用の水晶振動子は数MHz~数十MHz程度のものが多いですが、1秒クロックを生成するには時計用の32.768kHzの水晶振動子が広く使われています。これを分周回路で1/215=1/32768に分周すれば、簡単に1秒クロックが得られます。

図1 リアルタイム・クロック(時計機能)の基本構成の例

Q:分、時、日などはどのように作るのですか。

A:1秒を60回カウントすれば1分が、1分を60回カウントすれば1時間が、1時間を24回カウントすれば1日が得られます。この基本の時計機能は、機械的に処理できるので楽です。それに対して、1日をカウントして月や年を得るカレンダー機能は、月によって日数が異なったり、うるう年を考慮する必要があるのでちょっと面倒です。

パソコンやスマートフォンが使っているプロセッサやチップセットには、これらの処理を自動的に行ってくれるカレンダー時計の機能を内蔵しているものがあります。また、カレンダー時計の機能だけを1個にまとめたLSIも製品化されています。演算量やメモリの使用量はごくわずかなので、基本的なタイマ機能とソフトウェアで実現することもあります。特に、マイコンではハードウェアの単純化や省電力の実現のために、リアルタイム・クロックとしてはごく基本的な機能だけを内蔵するものもあります。

Q:どんな機能ですか。

A:たとえば、超ローパワーマイコンの入門に最適なテキサス・インスツルメンツ(TI)のMSP430™ マイコン・バリュー・ラインの場合、水晶振動子用の外付けピンをもち、また内蔵のタイマ機能としてWDT+(ウォッチドッグ・タイマにも汎用のインターバル・タイマにも使用可)とTimerA(汎用の多機能タイマ)を使って簡単に1秒クロックを作ることができます。分、時、日などのカウントはソフトウェアで実現できます。

MSP430ファミリでも、より高機能のシリーズには時計機能、カレンダー機能を備えたリアルタイム・クロックを装備しているものもたくさんあります。

図2 MSP430のリアルタイム・クロック機能の例

[関連リンク]

 

※CapTIvate、MSP430およびMSP432はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。

Anonymous