特別連載:ラズパイ試作からマイコン量産への進め方

連載企画:ラズパイ試作からマイコン量産への進め方

第2回:アーキテクチャ設計段階の留意事項

システム設計で最終目標が決定したら、次の段階はアーキテクチャを設計します。この設計が以降の開発をスムーズに進めるために重要なステップとなります。

ここでのポイントはラズパイをPoCで使う前提の場合は、ハードウェアもソフトウェアも、共用アーキテクチャとするということです。

共用アーキテクチャとは、PoC環境(ラズパイ)と最終製品(マイコン)で、インターフェースおよびソフト構造を共通化する設計方針とするということです。

共用アーキテクチャを採用しない場合、PoCとマイコン実装で構造が大きく異なり、ハードウェア/ソフトウェアの大部分を作り直す必要が生じることになります。

A) ハードウェアのアーキテクチャ設計

システム設計で作成したブロック図を基に、PoC検証が必要な部分については、最終構成でもPoC段階の構成でも同じインターフェースとする共用アーキテクチャとします。つまり、次のようにします。

① 新規デバイスのインターフェースをマイコンの場合と、ラズパイの場合と同じものとします。

GPIO、UART、I2C、SPI、PWMなどのインターフェース仕様をマイコンとラズパイで共通化し、外付けの回路も同じものとします。

② マイコンの速度、メモリサイズ、電源を意識してラズパイの性能に依存しないようにします。

例えば、大量メモリの使用やLinuxのファイルシステム、マルチプロセス機能に依存した設計は避けるようにします。

③ PoC段階での性能評価用のハードウェアは、最終製品には必要がありませんから、独立構成として切り離せるようにしておきます。

④ 通信に何を使うか、プロトコルはどうするかは最初に決めておき、同じものとします。

B)ソフトウェアのアーキテクチャ設計

ソフトウェアも同じようにシステム設計時に作成したブロック図を基に、共用アーキテクチャとします。

① 共用アーキテクチャ

共用アーキテクチャの基本は図-1のように新規インターフェース部をHAL構成として抽象化し、共通APIでアクセスするようにします。

例えば、センサ読み取りや通信処理をHALとして抽象化することで、ハード依存部分のみ差し替えればよい構造とします。これによりマイコンで構成する段階とPoC段階とで異なる部分をそれぞれ別々に開発することができます。こうすることで、アプリ部分はそのまま使えるようになります。

図1 ソフトウェアの共用アーキテクチャ例

図1 ソフトウェアの共用アーキテクチャ例

② アプリ部はステートマシンで構成

マイコンではベアメタル構成でもRTOSを使う場合でも、多くのアプリケーションがステートマシンで構成されます。ステートマシンにすることで、イベントやタイムアウトによる状態遷移を明確にでき、異常時の復帰処理も設計しやすくなります。

このステートを分離する場合、PoC検証対象の機能は独立したステートとして切り出し、ラズパイを使った試作段階で、このステートマシンの部分を試作して確認できる構造とします。

③ 通信処理も共用とする

通信処理も抽象化して専用APIを用意するようにします。これによりPoC試作段階で確認した通信方式をマイコンへの移植でも使えるように整理することができます。また、通信方式(Wi-Fi、UART、BLEなど)が変更されても、アプリケーションに影響を与えない構造とすることができます。

PDF 資料請求

連載企画_Raspberry_2:アーキテクチャ設計段階の留意事項

著者プロフィール

後閑 哲也 Tetsuya Gokan

経歴 1971年 東北大学卒業後 大手通信機メーカにて各種の制御装置を開発
2003年 有限会社マイクロチップ・デザインラボ設立
現在の活動
  • マイコンや計測制御システムの開発コンサルタント、グローバル電子(株)顧問
  • 神奈川工科大学 非常勤講師としてモノづくりの基礎を指導
  • 書籍や雑誌記事の執筆
書籍
(技術評論社)
  • 電子工作の素(改定新版)
  • MCC、C言語によるPICプログラミング大全
  • マイコンの使い方がよくわかる本
  • 逆引きPIC電子工作やりたいこと事典
  • IoT電子工作やりたいこと事典
講師プロフィール

連載企画「ラズパイ試作からマイコン量産への進め方」リンク

連載企画