News

お知らせ
  • 2019.10.15
  • blog
     
  • 組み込みシステムについてのご紹介

  • こんにちは!名古屋支社のKです。

    皆さんご存知の通り、愛知県は自動車産業の盛んな地域です。
    ITエンジニアのお仕事でいうと「組み込み」と言われるシステム開発が多くあります。

    「組み込み」とは、名前の通り、機械の中に組み込まれたコンピューターを
    制御するためのシステムのことを言います。

    自動車はもちろん、例えば、カーナビ、ゲーム機、炊飯器など
    身近なものも組み込み系システムと呼ばれるものが使われています。

    コンピューターを内蔵しているものには組み込みシステムが必要であり
    IoTなどの普及が進む中、ますます需要も高まっています。

    そこで今回は、液晶時計の組み込みシステム開発を例に
    どんなものかを簡単にご紹介させて頂きたいと思います!

    1.時計を作ろう

    下記の図のような液晶時計(時刻合わせ機能付き)の作成についてを順を追ってご紹介します。

    2.液晶に時計(時刻)を表示させよう

    (1) はじめに

    前提として、時計は1秒ごとに表示を更新させるものとします。

    基本的なフローチャート

    「1秒待つ」を実現するにはどうしたらいいでしょうか。

    ↑ でもいいですが、ちょうど1sに合わせるなんてことができるでしょうか。
    また、「時刻を更新して表示」の処理時間だけ、どんどん時刻が遅れていきます。

     

    (2) タイマ機能を使用する

    ほとんどのマイコンには、タイマ機能なるものがついています。
    今回は、以下のようなものとします。(以下はあくまで例、マイコン毎にまったく異なる)

    1/256sで、値が1増加する  255の次は、0になります。

    すなわち、256*1/256s = 1s ごとに値が0になります。

    タイマ機能を使うと、フローチャートは以下のようになります。

    これで、液晶に時計表示はできます。
    タイマというハードを使うので、組み込みらしくなってきました。

    3.時刻合わせを考える前に

    (1) 空き時間を作って、時刻合わせ機能を作りこみたい

    タイマ機能を使用したフローチャートでは、時刻表示の処理をしている以外の時間は
    タイマの値を監視しているため、時刻合わせの処理をする空き時間がありません。

    空き時間を作ることを考えていきましょう!

    タイマの値を監視するのを、ハードがやってくれないかな。
    組込みでよく聞く、割込みとはどういう機能だろう。

    割込みとは・・・
    ① ハードが何かを検出すると、CPUに伝える。(割込み要求をする。)
    ② 割込み要求を受けると、CPUは実行中の処理を中断し、別の処理(割込み処理)を行う。
    ③ CPUは、割込み処理を終了すると、②で実行を中断した処理に戻る。

    タイマにも割込み要求をする機能があります。
    タイマの割込み要求をする機能を、タイマ割込みといいます。

    タイマ割込みとは、タイマの値が、255から0になるたびに、CPUに割込み要求をするものです。
    (あくまで例、マイコン毎にまったく異なります)

    これを使うとどうなるだろうか。

     

    (2) タイマ割込みを使用する

    タイマ割込みを使用すると、1s毎にタイマから割込み要求が発行されます。
    その時の処理(タイマ割込み処理)で、以下を処理していきます。

    これだけで、1秒ごとに時刻を更新して表示できてしまいます。
    実行が中断されるほうの処理(メイン処理)は、以下になります。

    タイマ動作を開始すれば、無処理の無限ループを回るだけです。
    この時間が空き時間になります。

    4.時刻合わせを組み込もう

    (1) ポート入力と外部割込み

    ハード設計により、時刻合わせ用のボタンとマイコンは、
    以下のように接続されているとします。

    ここで、ハード機能を簡単に説明します。
    (以下はあくまで例です。マイコンにより異なります。)

    ポート入力機能・・・ポート入力端子の信号(0/1)を読込む機能。
    外部割込み機能・・・外部割込み端子の信号が、0→1に変化すると、割込み要求する機能。

    従って、いずれかのボタンが押されると、外部割込み要求が発行され、
    ポート入力を読込むと、どのボタンが押されたかがわかるようになります。

     

    (2) 外部割込み処理を作る

    外部割込み要求が発行された時の処理を、以下のように作れば時刻合わせもできそうです。

    メイン処理、タイマ割込み処理は、以前の処理のまま使えそうです。
    タイムチャートは、以下になります。

    複数の処理が、複雑に入り組んで処理するようになってきました。
    このように複数の処理を実行するのが、組込みソフトの一つの特徴である
    「リアルタイムシステム」です。

    実は、上に記述したフローチャートはバグだらけなのですが
    組込みソフトのさわりとしてご紹介しました。
    興味のある方は、ぜひ一度調べながらチャレンジしてみてくださいね!