みなさんこんにちは。第一技術部の赤谷です。
しばらくは製品開発でヒントとなる情報をブログで投稿していこうと思います。エンジニアの皆様の気づきに繋がればと思いますので、どうぞよろしくお願いします。
今回はソフトウェア・アップデートについてお話しします。
スマートフォンやPCに代表されるように製品購入後にソフトウェア・アップデートすることは、皆さんにとって身近な体験になっています。ソフトウェア・アップデートは、製品リリース後に判明したバグを改修するとともに、新機能をユーザに提供する機能です。
近年IoT化が急速に進む中、世の中のあるあらゆるモノが無線ネットワークに接続され、わざわざショップに持ち込まなくても、ソフトウェア・アップデートが可能となっています。ちなみに無線によるアップデートをOTA(Over The Air)アップデートと言います(単にOTAともいう)。
DX(デジタルトランスフォーメーション)が進むこれからの世界は、ソフトウェアによって常にユーザをわくわくさせることのできる企業が大きく成長すると言われており、製品にソフトウェア・アップデート機能を実装することは必須になりつつあります。
それではソフトウェア・アップデートの仕組みを簡単に説明しましょう。
製品のメモリに保存されるプログラムは、下図のように製品機能を実現するアプリケーション部とプログラム・アップデートなどの機能を実装しているブート部に分けて格納されています。
メモリマップのイメージ
通常のソフトウェア・アップデートでは、アプリケーション部に相当するプログラムを一旦消去し、新しいプログラムを書き込みます。このため、ソフトウェア・アップデート中に電源が切れてしまったり、無線通信が途絶えたりしてプログラムが正しく書き換えできなかった場合でも、ブート部のプログラムは残っているため、電源や通信が復帰した後、再びソフトウェア・アップデートを実行することが可能となります。
稀にブート部自体も書き換えることがありますが、このときは一工夫必要です。通常は下図のように、ブート領域を2面持ちにします。
メモリマップのイメージ
このように、今実行しているブートプログラムとは別のメモリ領域に新しいブートプログラムを書き込み、正しく書き込みが完了したことを確認した後で実行するプログラムを新しいブートに変更します。このようなブートスワップ機能をアーキテクトされたマイコンもあります。
当社では近年OTAの実装を依頼されるケースが増えてきており、当社ソフトウェアエンジニアは経験を積んでおります。製品にOTAを実装したいけど、どうしたらいいの?とお困りのお客様がおられましたら当社の「ソフトウェア開発受託サービス」を是非ご利用ください。
【関連リンク】
【関連ブログ】
- ESP32マイコンでOTA! Wi-Fiでプログラムを書き込む
- M5stackで簡易Wi-Fiチェッカーを作ってみました
- 無線モジュール搭載IoT機器の開発には幅広い知見と技術が必要です
- IoT化のお手伝い-ワンストップでアイデアを形にします
- IoTのプロフェッショナルを顧客社内に育成する「テクノシェルパ」登場
- WTIブログ(IoT関連)
- 無線通信モジュールのコストを抑える方法とは
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。