組込ソフトウェア開発業務

組込ソフトウェアとは、装置の中の基板上で動作するようなプログラムを言います。「装置に組み込むソフトウェア」です。

1.リアルタイム装置制御の開発

マイコンの能力が低い時代に、装置に組み込むマイコンは、複数の処理(タスク)を同時に動作させて事象に対する反応性を向上させたり、通信しながら機械制御する等ができる必要がありました。
その制御方法をリアルタイム制御といい、特に反応を向上させるために設計されたオペレーティングシステムをリアルタイム・オペレーティングシステム(RTOS)と言います。(代表例:TOPPERS NORTi 等)

昨今はCPUの高速化や低価格化等からかならずしもこのアプローチばかりではなくなってきたように思います。
弊社では長年この方面の開発を受託してまいりました。
最近では医療用X線装置の開発でTOPPERS/ASPを使用しました

2.OSレス装置の開発

メモリが数キロバイト程度の時代は前述のRTOSを搭載するのに充分な容量ではなく、一本のプログラムをぐるぐるループさせながら割り込み処理やフラグ等で工夫していました。
今ではメモリも潤沢ですが、下記のようなケースではいまだにこのような開発になることがあります。

  • そもそも単純な処理
  • CPUがマイナーでリアルタイムオペレーティングシステムの入手が困難
  • 滅多に更新しないシステムなので、コンパイラやRTOSのバージョンアップに合わせて修正していられない(再度テストが必要となる)

3.Aruduino系(M5STACK等)

Arduinoとは、Arduino Holdingが、設計製造しているマイコンボード。よりシンプルに、安価に、学生でもデジタルなものを作れるようにという目的で2005年にイタリアで立ち上がったプロジェクト。オープンソースハードウェアであるので多くの派生品やシールド基板(拡張基板)が安価に入手できます。
ソフトウェアはIDEと呼ばれる統合環境で初期化とループという超シンプル構造で開発するが、豊富なライブラリのおかげもあり開発が容易です。当社では数年前に農業ICT向けに実験的な開発をしました。

M5STACKはArduino IDEを使用して開発できるが、Arduinoとは比較にならない高性能です。
マルチコア・マルチタスクが利用できる32ビットデュアルコアCPUで、WiFi、SD、Bluetooth,SPI,I2C等多彩なインターフェイスが最初から搭載されています。
適当なセンサをつないでコードを少し記述すれば、インターネット上にそれ定期的に記録するなどとても簡単に実現でき、価格もArduinoの基本的なものとほとんど変わらないぐらい安価である。

4.Raspberry Pi

イギリスのラズベリーパイ財団が開発したARMマイクロプロセッサ搭載のシングルボードコンピュータ。SDカードにインストールしたUbuntu Linuxを起動できるというもの。写真のPi ZeroはUSB Micro-Bソケットが一つだが、ハブ経由でWiFiアダプタもつながりネットにつなぐことも可能。発売当時500円でLinuxと話題になった。機能豊富で上位機種ではGigaBit Ether,WiFi,Bluetoothも利用できる。写真はPi ZeroをFRISKケースに入れたもの。