組み込みシステムは家電や電子機器に搭載されている大切なシステムです。自社で組みソフトウェアの開発を行う企業も多く、開発の検討を行っている場合もあるでしょう。
しかし、闇雲に開発を行っても思うようなものは作れません。
そこで今回は、組み込みソフトウェアの基本的知識から開発会社まで徹底的に解説していきます。組み込みソフトウェアの開発を検討している場合は、ぜひ参考にしてください。
組み込みシステムとは何か?
組み込みシステムとは、汎用のコンピュータではなく特定の用途向けに設計されたコンピュータシステムのことを指します。テレビや携帯電話、自動車などの電子機器の中に組み込まれ、その機器の制御や演算を行う仕組みです。
画面の表示やボタンの制御、センサーからの情報処理など、機器の機能を実現するためのソフトウェアが組み込みシステム上で動作しています。組み込みシステムは、専用のハードウェアとソフトウェアから構成されます。使用目的に特化したプロセッサやメモリ、入出力インターフェースから成り、リアルタイムOSや制御用ソフトウェアが動作します。
汎用のパソコンとは異なり組み込みシステムは消費電力が少なく、コンパクトで、高速処理と高い信頼性が求められます。用途別に最適化されたハードウェアとソフトウェアにより、各製品の機能と性能が実現されています。
組み込みソフトウェアと通常のソフトウェアの違い
組み込みソフトウェアは、パソコンやスマートフォンで使うOfficeソフトのような一般的なソフトウェアとは異なる特殊なソフトウェアです。
組み込みソフトウェアは、テレビや自動車、ロボットなどの機器に内蔵され、その機器の制御を行います。一方、Officeソフトのような一般的なソフトウェアは、汎用のコンピュータ上で動作します。
以下、それぞれの違いを比較した表になります。
組み込みソフトウェア | 一般的なソフトウェア | |
---|---|---|
使用目的 | 特定の機器の制御 | 汎用の情報処理 |
動作環境 | 専用ハードウェア | 汎用コンピュータ |
開発方式 | ハードウェアに依存 | ハードウェアから独立 |
リソース制約 | 厳しい | 緩やか |
信頼性 | 高信頼性が要求される | 耐障害性は汎用レベル |
このように組み込みソフトウェアは、制御対象の機器に特化した最適化が求められます。一方、Officeソフトなどの身近なソフトウェアは汎用性が重視されるのが違いです。
組み込みソフトウェアの主な用途
組み込みソフトウェアは、テレビや自動車、家電製品など、私たちの生活に身近な多くの電子機器に使われています。これらの機器には、ボタンの制御や画面表示、センサー情報の処理など、製品固有の制御・演算処理機能が必要となります。組み込みソフトウェアは、このような機器の基本動作を実現するために開発されています。
例えばテレビの場合、チャンネル切り替え時の処理は組み込みソフトウェアが担っています。リモコンからの信号を受信してチャンネルを切り替え、表示する映像を変更する一連の制御がソフトウェアで実現されています。
カーナビの場合は現在位置の検出、地図データの表示、ルート検索など、車載システムに不可欠な機能の制御ソフトウェアが組み込まれています。ですから、精度の高い自動車用ソフトウェアの開発が求められます。
このように、組み込みソフトウェアは身近な電子機器の機能や性能を支える、非常に重要な技術といえます。以下、それぞれの電化製品にソフトウェアが使用されている部分について詳しく解説していきます。
テレビ
テレビには、視聴者が直感的に操作できるようにするための組み込みソフトウェアが数多く組み込まれています。
例えば、リモコンからの操作信号を受信してチャンネルを切り替える処理や、入力されたチャンネルの放送波を受信して映像を画面に表示する処理は、組み込みソフトウェアによって制御されています。画面の設定メニューを表示して、明るさや色合いなどを調整するソフトウェアも搭載されています。
さらにスマートテレビの場合には、インターネットに接続してアプリを実行したり、スマートフォンと連携したりするアプリケーションソフトウェアも内蔵されています。
このようにテレビには、視聴者の操作を受け付けて機能を実現するための組み込みソフトウェアが多数存在し、快適な視聴環境を提供しています。
カーナビ
カーナビには、ドライバーを目的地へ誘導するための組み込みソフトウェアが搭載されています。現在位置をGPSで特定し、地図データベースから該当する地図を表示するソフトウェアや、目的地を設定して最適なルートを探索するソフトウェアが中心的な機能です。
このようにカーナビの主要な機能は組み込みソフトウェアによって実現されており、運転者をサポートする高度なシステムが構築されています。
コピー機
コピー機には、原稿をスキャンして読み取り、必要な画像処理を施して印刷するまでの一連の制御を行う組み込みソフトウェアが搭載されています。
原稿をセットしてコピー開始ボタンを押すと、原稿を読み取るタイミングや速度、センサーの感度など、スキャンに関するパラメータをソフトウェアが制御します。
読み取った画像データに対して、傾き補正や濃度補正などの画質調整を施したり、枠消し機能などを実行するのもソフトウェアの役割です。操作パネルのボタンを押すことで実行される、両面コピーや複数部コピーなどの機能制御も組み込みソフトウェアが担当しています。
このようにコピー機の主要機能はソフトウェア技術で実現されており、使いやすく高画質なコピーを提供しています。
エアコン
エアコンには、設定温度に室温を制御するための組み込みソフトウェアが搭載されています。
このように、エアコンの快適な室内環境の実現には、精度の高い組み込みソフトウェア技術が欠かせません。
エレベーター
エレベーターには、利用者の安全と快適な搭乗を実現するための組み込みソフトウェアが搭載されています。
コールボタンを押した階と現在位置から最適な昇降パターンを計算し、制御するソフトウェアが基本的な機能です。ドアの開閉制御や複数人が同時に呼び出した場合の配車最適化も行います。
センサーからの情報を元に、挟まれる危険がある場合は急停止するといった安全制御も重要な機能です。点検データを解析して、部品の異常兆候を検知できる保守用ソフトウェアも搭載されています。
インターホンやカード認証システムとも連携するため、利用者サービスの向上に貢献する組み込みソフトウェアが不可欠となっています。
デジタルカメラ
デジタルカメラには、被写体を美しく撮影するための組み込みソフトウェアが搭載されています。
シャッターボタンを押した瞬間のタイミングでセンサーを制御して映像をキャプチャするのはソフトウェアの役割です。撮影画像にはレンズの歪みを修正したり、解像度を調整する画像処理が施されます。
顔認識機能を使って顔の部分にフォーカスを合わせるのもソフトウェア機能のひとつです。被写体に合わせた最適な露出、ホワイトバランス、コントラストを判断する自動設定モードも、高度な画像処理ソフトウェアに支えられています。
デジタルカメラの性能を左右するのは、組み込みソフトウェアの能力といっても過言ではありません。
自動販売機
自動販売機には、商品の管理やお金の計算などを行う組み込みソフトウェアが搭載されています。
商品の種類と在庫数を記録し、購入ボタンを押すと在庫数を調節する機能が基本となります。お金を投入すると、投入金額に応じて選択できる商品を制限する販売制御も行います。
釣り銭の計算や、紙幣識別センサーと連携して信用度の低い紙幣を戻す判断もソフトウェアが担当します。故障や在庫切れを検知したときに管理者に通知する報告機能や、定期的にセンサーの自己診断を行う保守機能も搭載されています。
自動販売機に高度な商取引処理能力を持たせているのが組み込みソフトウェアといえます。
洗濯機
洗濯機には、洗濯物の量や汚れ具合に応じて最適な洗濯を行うための組み込みソフトウェアが搭載されています。
異常を検知した場合にはブザーで知らせたり、エラー内容を表示する機能もソフトウェアが担当しているのが洗濯機です。
信号機
信号機には、交通量に応じて信号の切り替えタイミングを制御する組み込みソフトウェアが搭載されています。
また、信号機の状態をセンターに定期的に送って異常を検知したり、二酸化炭素情報から交通状況を判断するシステムと連携するなど、高度化が進んでいます。交通流の制御という重要な機能を担う信号機には、精度の高い組み込みソフトウェアが欠かせません。
組み込みソフトウェア開発に必要なこと
組み込みソフトウェア開発では、汎用的なアプリケーション開発とは異なる専門的なスキルが求められます。プログラミング力だけでなく、ハードウェア知識や検証技術も重要です。以下、必要な知識・スキルについて詳しく解説していきます。
幅広い言語のプログラミングスキル
組み込み開発にはC言語をはじめ、Assembler、C++、Javaなど多様な言語が使われます。搭載プロセッサのアーキテクチャに合わせた最適な言語を選択できることが重要となります。
例えば、リソースに制約がある小規模なMPU向けにはC言語が適しています。一方で、Linuxベースの高機能な自動車向けMPUでは、C++やJavaを使った大規模開発が行われることもあります。
マイコンのレジスタやメモリへの直接アクセスが必要な場合は、Assembler言語を用いる必要も出てきます。組み込みソフトウェア開発者には、用途に応じて最適な言語を扱える幅広い能力が求められているのです。
※マイコン・・・マイクロコンピュータの略で、CPU、メモリ、入出力を1チップに集積した小型のコンピュータのことです。組み込みシステムの制御用として利用されます。
※MPU・・・Micro Processing Unitの略で、組み込みシステムの中心となるプロセッサ(CPU)のことを指します。命令を実行して制御や演算を行うハードウェアの核となります。
使用するハードウェアに関する知識
使用するMPUの仕様やメモリマップ、入出力インターフェースの仕様を理解する必要があります。ハードウェアとソフトウェアの密接な連携が求められるため、ハードウェア知識は不可欠です。
例えば、ターゲットMPUの命令セットやレジスタ、周辺ハードウェアのインターフェース仕様をよく理解しないと、最適なプログラムが書けません。メモリマップもハードウェアマニュアルに沿って正しく記述する必要があります。
また、開発機材と製品のハードウェアが異なる場合があるため、動作確認時には仕様の違いを考慮する必要があります。組み込みソフトウェア開発者には、使用するハードウェアのアーキテクチャと仕様に関する専門知識が欠かせません。
動作環境を検証できる環境や技術力
開発機材とは異なるターゲット環境での動作を検証するテストが欠かせません。評価ボードの使用やシミュレータの活用など、検証環境を構築する力も必要不可欠です。
組み込みソフトウェア開発には、こうした検証手法を使いこなす技術が欠かせません。
そのため、技術不足や知識不足を感じる場合は、技術を持った実績のある開発業者へ依頼するのがおすすめです。
株式会社Jiteraでは、組み込みソフトウェア開発に必要な知識と技術を持っています。
開発も効率よく行えるため、始めてのソフトウェア開発に不安を抱えている場合でも、スピード感のあるシステムの導入が可能です。
さらに、安心して運用できる体制も整えているため、技術や知識に不安を感じる場合は、ぜひ株式会社Jiteraへお問い合わせください。
組み込みソフトウェア開発を行う流れ
組み込みソフトウェア開発では、要求分析から設計、プログラミング、テストと一連のフェーズを踏む必要があります。それぞれの段階で注意すべきポイントがあります。ここでは組み込みソフト開発の一般的な流れを順を追ってみていきます。
STEP1要求分析
お客様からヒアリングを行い、実現したい制御や機能について要求を洗い出します。対象機器の動作イメージを想定し、要求仕様を明確化します。要求分析では、制御対象の機器が何の目的でどのように使われるのか、そもそもの用途を確認することが重要です。お客様の業務知識とともに、機器のハードウェア仕様も理解しておきます。
ヒアリングでは開発者側の思い込みに偏らないよう、なぜその機能が必要なのか背景も丁寧に聞き取る必要があります。漠然とした要望ではなく、具体的な使い方のイメージを描き出すことを心がけましょう。
STEP2要件定義
要求分析で洗い出した要求を基に、実装する機能や性能をソフトウェアの要件として文書化します。動作の仕様や性能を明確に定義します。要件定義では、要求を実現するために必要な機能、性能、操作性をソフトウェアの観点から洗い出します。機能要件と非機能要件に分けて記述するのが一般的です。
要件定義書には要件一覧に加えて、画面遷移図やシーケンス図などを含めると、要件が視覚的にも理解しやすくなります。お客様と確認を密にして、漠然とした要求を具体的かつ詳細な要件に展開することが重要です。
STEP3基本設計
要件定義に基づき、ソフトウェアのモジュール構成や処理手順、データ構造といった基本設計を行います。ハードウェアとのインターフェースも考慮します。基本設計では、まずシステムの階層構造と機能ブロックの分割を決定します。制御対象のハードウェア設計を考慮して、最適なソフトウェア構造を設計します。
次に、各機能ブロック内での処理フローや使うデータ構造を定義していきます。処理手順はフローチャートで表現し、データ構造はER図などで表現すると良いと思います。またインターフェースも決定して、設計書に記載していきます。
STEP4詳細設計
基本設計で考えた内容を詳細化し、関数単位の仕様やソースファイル構成を決定します。コーディング時のルールも文書化します。詳細設計では、基本設計の機能ブロックを関数レベルに分割し、各関数の入出力、処理手順、呼び出し関係を詳細に定義します。データ構造も詳細に設計し、変数やクラスの定義を行います。関数間のインターフェース仕様や、ソースファイル構成も文書化することが重要です。
コーディング規約やコメント規約、変数命名規則などのコーディング時の決まり事を詳細設計書に記載しておくことも大切です。
STEP5プログラミング開発
詳細設計書に従って、実際にプログラムコードを作成します。コーディング規約を守り、保守性に優れたコードを心がけることが大切です。コーディングでは、詳細設計で定めた関数単位にソースコードを作成していきます。規約に従って適切なコメントを記述し、可読性の高いコードを作成するようにします。
モジュールごとのコーディングが完了した段階で、静的コード解析を行って品質を測定しましょう。コードレビューも重要で、複数人でのチェックを行うとバグ検出能力が向上します。基本設計で想定された方式や設計から逸脱したり、余計な機能を勝手に追加することは避けるべきです。設計者の意図した通りに実装を心がけることで、システム全体としての一貫性を保ち、品質を確保できます。
STEP6単体テスト
個々のプログラムが要件を満たしているかどうかを、単体でテストを実施します。不具合が見つかれば修正して再テストを行います。単体テストでは、境界値や異常系も含めた網羅的なテストケースを準備する必要があります。テスト項目を漏らさないよう、要件定義とテストケースの照合を行うことが大切です。
テスト結果は記録しておき、すべてのケースを不具合なく完了することを確認し、意図しない動作やバグが見つかった場合は修正して再テストを実施しましょう。全てのプログラムの単体テストが完了するまで繰り返しテストを行っていきます。
STEP7結合テスト
複数プログラム間のインターフェースが要件通りに動作するかを、結合テストにより確認します。主にシステムとしての動作を確認します。結合テストでは、関数やモジュール間の連携動作を確認する必要があります。テストケースとして、正常系と共に境界条件や異常系も設定しておきましょう。
テスト結果が要件を満たしていることをしっかりと記録しておくことも重要です。インターフェースに不整合が見つかれば、要件と設計書を確認して再テストを行います。システム全体としても動作を確認し、意図した仕様通りに動いていることを確認することが結合テストの目的です。
STEP8運用
動作確認が完了したプログラムを実際の機器に組み込み、現場での運用テストを行います。運用フェーズでは、継続的なメンテナンスで品質を維持します。また実際の現場環境で長期にわたって動作を監視することが重要で、環境変化などに対する耐性も確認していきます。
万が一不具合が発生した場合はログ解析を行って原因を特定し、修正パッチを当てていきます。ユーザーからのクレーム対応も重要な運用作業となります。リリース後のメンテナンス力が製品の信頼性を左右するため、迅速な障害対応体制と継続的な品質管理が欠かせません。
組み込みソフトウェア開発を開発会社に発注する方法
組み込みソフトウェアの開発を外注する場合、信頼できる開発会社を選ぶことが成功のカギとなります。ここでは、開発会社の選び方と、実績や開発プロセスなどの選定ポイントを解説します。
組み込みソフトウェア開発会社の選び方
まず開発会社の実績と信頼性を確認することが重要です。類似案件の開発例があれば、要件の理解力や技術力が高い証拠といえます。開発工程も明確で、品質管理体制が整っている必要があります。
具体的には、Webサイトや営業資料を確認し、同業種や同規模の類似プロジェクトの開発実績があることを確認しましょう。社内体制や開発チームのエンジニア数も確認する点が大切です。開発能力だけでなく、プロジェクト管理能力も問われます。見積り作成能力やリスク管理は確実に行えているか、スケジュールやコストの管理手法も確認が必要不可欠です。
開発会社の選定ポイント
開発実績
組み込みソフトウェアの開発実績が豊富で、類似案件の履歴がある会社を選ぶとリスクが低減します。実績データや導入事例を確認することをおすすめします。例えば、自動車部品、家電製品、産業機器などの分野での開発実績があれば、その業界分野の知見があることがわかります。搭載CPUの種類や開発規模などが似たケースがあると、要件定義の正確性や開発力の予測性も高まるかと思います。
参考にすべきは納品件数や開発規模だけでなく、その開発内容が類似案件かどうかも重要なポイントです。
開発期間や納期
案件の規模と難易度に見合った開発期間が提示されているか、スケジュール感が重要です。納期に自信がある会社を選択すべきです。見積書に記載された開発期間感は、その案件に対する開発会社の理解度を示しています。あまりに短すぎる期間見積もりはリスクが高いと言えます。
過去の類似案件の工数データなどから、その開発期間の実現可能性を推測することも重要なポイントです。納期厳守の実績や体制が整っている開発会社を選ぶことがとても大切です。
開発工程の確認
要件定義から設計、コーディング、テストと、標準的な開発プロセスが確立していることを確認する必要があります。
組み込みソフトウェア開発においても、一般的なウォーターフォール型の開発プロセスを踏むことが多いです。要件仕様の固定化、基本/詳細設計、単体/結合テスト、といったフェーズが順を追って実施される必要があります。
開発会社が確立した開発プロセスを持っているか、設計書の品質管理基準やコーディング規約などが明確化されているかを確認することが大切です。
コミュニケーションは円滑に行えるか
開発中の定期的な進捗報告と密なコミュニケーションが可能かもポイントの1つです。円滑なコミュニケーションが取れることは必要不可欠です。
例えば週次での開発進捗の報告や、不明点が発生した際の相談体制が整っていることが重要です。担当者の対応力や報告内容の質から、コミュニケーション能力が判断できます。仕様変更時の迅速な対応も鍵となります。要件変更に対する柔軟な対応が可能な開発会社を選択することをおすすめします。
予算の確認
見積もりの内容が案件に見合っているか、資材費や人件費の内訳が明確かについても確認する必要があります。見積書では、設計/開発工数やテスト工数が適正に計上されているかを確認し、使用する開発ツールのコストに加え、テスト実施のために必要となる評価キットや評価ボードの調達費用も含まれている必要があります。
人件費の単価設定は妥当な水準か、交通費や諸経費の費用は必要最小限かを判断することも重要です。字面だけでなく注釈なども参考に、過大見積りではないかを見極める必要があります。
組み込みソフトウェアの開発会社比較
対応内容 | 実績 | 会社の規模 | |
Jitera | 連携ソフトウェアによる注文管理 IoTの導入支援 フロントエンド・バックエンド・インフラ構築など |
カルビー株式会社 株式会社hit&resonate WOW WORKS株式会社など |
従業員数50名 |
富士ソフト株式会社 | AWS導入支援 Power Platform導入支援 AgileWorksの導入支援など |
gileWorksの導入支援など 実績 株式会社 タカギ パナソニック株式会社 エレクトリックワークス社 TOTO株式会社など |
単体:9,507名 (2023年9月末現在) 連結:17,686名 (2023年9月末現在) |
イーソル株式会社 | 車載ソフトウェア 開発 コンシューマー 開発 産業機器 開発 医療・科学 開発 その他 開発など |
アイシングループ各社 伊藤ハムグループ各社 江崎グリコグループ各社など |
503名(2022年12月31日現在)※役員、出向者除く |
株式会社グレープシステム | 組込み関連機器のソフトウェア製品の開発・販売・サポート 組込み関連機器の受託開発など |
日置電機株式会社 東京計器株式会社 株式会社東芝など |
79名(2023年4月1日現在 ) |
株式会社FoxitJapan | PDF ソリューションを中心とするパッケージソフトウェアの開発・販売・メンテナンスなど | Linfiny Japan 株式会社など | – |
株式会社リョーサン | 組み込みAIソリューション 車載AIソリューション 車載ネットワークソリューションなど |
日本電気株式会社 NECネッツエスアイ株式会社 NECフィールディング株式会社など |
598名(連結:954名)<2023年3月31日現在> |
株式会社インター電子部品 | 半導体製品及び関連製品の販売 ハードウェア・ソフトウェアの設計・開発・製造など |
PCや他装置との通信制御インタフェース タッチパネル液晶やキャラクタLCDの表示制御 キー、スイッチ入力の検出制御、ボリューム入力値の読み取り制御など |
– |
株式会社ソフテック | 組み込みソフトウェアの受託開発 PLC(シーケンサ)ソフトウェアの受託開発 監視制御システム構築など |
同期制御インターフェイスユニット 組み込みソフトウェア開発におけるPCシミュレーションの活用 NIOSⅡを使った通信ソフト開発など |
43名 (令和5年8月現在) |
株式会社アイ・エル・シー | 組込みソフトウェア開発サービス 組込みソフトウェア検証サービス 組込みソフトウェア支援サービスなど |
組込み/FAソフトウェア向けの開発支援ツール(FACTICS商品)の開発・販売 デジタル機器向け 組込みソフトウエア開発支援 組込みソフトウエア開発支援サービスなど |
– |
株式会社アックス | 自動運転ソフトウェア アックスの組込みLinuxなど |
株式会社アイ・オー・データ機器 NECラーニング株式会社 エヌ・ティ・ティ・コミュニケーションズ株式会社など |
– |
株式会社Jitera
株式会社Jiteraは、組み込みソフトウェアを含む自動化システムに強みを持つ会社です。
独自の開発自動化プラットフォームによって、柔軟な提案・支援が行えます。
またどんな人でも利用できるインターフェースなのでで、技術的な制限はありません。
柔軟性の高い開発を実現できるのが特徴です。
対応内容 | 連携ソフトウェアによる注文管理 IoTの導入支援 フロントエンド・バックエンド・インフラ構築など |
実績 | カルビー株式会社 株式会社hit&resonate WOW WORKS株式会社など |
会社の規模 | 従業員数50名 |
富士ソフト株式会社
株式会社富士ソフトは、組み込み系ソフトウェア開発を得意とするIT企業です。携帯電話や家電製品をはじめ、自動車、産業機器などの分野で、組み込みソフトウェアの開発実績が豊富です。
グローバルな開発体制も強みで、海外顧客への対応力が高いことが特徴です。組み込みソフトウェア分野で長年の経験と技術力を蓄積している企業といえます。
対応内容 | AWS導入支援 Power Platform導入支援 AgileWorksの導入支援など |
実績 | 株式会社 タカギ パナソニック株式会社 エレクトリックワークス社 TOTO株式会社など |
会社の規模 | 単体:9,507名 (2023年9月末現在) 連結:17,686名 (2023年9月末現在) |
イーソル株式会社
イーソル株式会社は、組み込みソフトウェア開発を得意とする企業です。自動車や家電、産業機器向けに、リアルタイムOSやミドルウェアなどの製品開発を行っています。
カスタムなシステム開発にも対応でき、性能チューニングやBSPの移植、デバイスドライバ作成といった技術サポートも提供しています。組み込みソフトウェア分野での長年の経験と実績があり、高い開発力を持っているのが特徴です。
対応内容 | 車載ソフトウェア 開発 コンシューマー 開発 産業機器 開発 医療・科学 開発 その他 開発など |
実績 | アイシングループ各社 伊藤ハムグループ各社 江崎グリコグループ各社など |
会社の規模 | 503名(2022年12月31日現在)※役員、出向者除く |
株式会社グレープシステム
株式会社グレープシステムは、組み込みソフトウェアの受託開発を得意としています。組み込み機器メーカー各社向けに、リアルタイムOSやドライバ開発、画像処理、音声認識などの分野で豊富な実績があります。
カメラモジュールや電子黒板、カーナビなど実際の製品開発に携わっており、組み込みソフトウェア開発の高い技術力が特徴です。
対応内容 | 組込み関連機器のソフトウェア製品の開発・販売・サポート 組込み関連機器の受託開発など |
実績 | 日置電機株式会社 東京計器株式会社 株式会社東芝など |
会社の規模 | 79名(2023年4月1日現在 ) |
株式会社FoxitJapan
株式会社FoxitJapanは、PDF関連技術を得意とするソフトウェア開発会社です。独自のPDFエンジンを開発しており、組み込み機器や業務システム向けに、高速で使いやすいPDF表示機能を提供しています。
PDF関連の豊富な開発経験と技術力が特徴的で、カスタマイズ性の高いソリューション開発が可能です。
対応内容 | PDF ソリューションを中心とするパッケージソフトウェアの開発・販売・メンテナンスなど |
実績 | Linfiny Japan 株式会社など |
会社の規模 | – |
株式会社リョーサン
株式会社リョーサンは、半導体や電子部品の販売を中心とする総合エレクトロニクス商社です。組み込みソフトウェア開発においても、メモリやMPUなどのハードウェア販売に加え、ソフトウェアやハードウェアの受託開発を手掛けています。
半導体メーカー各社の製品を扱っていることから、最新デバイスに関する知見が豊富で、ハードウェアとソフトウェアの連携開発が強みです。
対応内容 | 組み込みAIソリューション 車載AIソリューション 車載ネットワークソリューションなど |
実績 | 日本電気株式会社 NECネッツエスアイ株式会社 NECフィールディング株式会社など |
会社の規模 | 598名(連結:954名)<2023年3月31日現在> |
株式会社インター電子部品
株式会社インター電子部品は、半導体関連商品の販売とハードウェア・ソフトウェアの設計開発を行う企業です。FPGAや組み込みソフトウェア、Androidアプリなどの開発実績があり、ハードウェアとソフトウェアを一貫して提供できるのが特徴です。
半導体部品の豊富な取扱いも強みで、ハードウェア重視の組み込み開発に対応力が高いと言えます。
対応内容 | 半導体製品及び関連製品の販売 ハードウェア・ソフトウェアの設計・開発・製造など |
実績 | PCや他装置との通信制御インタフェース タッチパネル液晶やキャラクタLCDの表示制御 キー、スイッチ入力の検出制御、ボリューム入力値の読み取り制御など |
会社の規模 | – |
株式会社ソフテック
株式会社ソフテックは、組み込みソフトウェアやPLCソフトウェア、Windowsアプリなどの受託開発を得意とする企業です。1972年の創業以来、1591件以上の開発実績があり、組み込みソフトウェア分野では産業機器や半導体装置などで豊富な経験を持っています。
開発実績のある分野を中心に、ハードウェアからソフトウェアまでシステム開発が可能なのが強みです。
対応内容 | 組み込みソフトウェアの受託開発 PLC(シーケンサ)ソフトウェアの受託開発 監視制御システム構築など |
実績 | 同期制御インターフェイスユニット 組み込みソフトウェア開発におけるPCシミュレーションの活用 NIOSⅡを使った通信ソフト開発など |
会社の規模 | 43名 (令和5年8月現在) |
株式会社アイ・エル・シー
株式会社アイ・エル・シーは、組み込みソフトウェア向け開発ツールの製品開発とソフトウェア受託開発を手掛ける企業です。組み込みソフトウェアPLCやIEC規格準拠の制御ソフトウェアを提供しており、FA機器や自動車分野での開発経験が豊富です。
組み込みソフトウェアの開発を効率化するツール開発と専門性の高い受託開発が特徴的です。
対応内容 | 組込みソフトウェア開発サービス 組込みソフトウェア検証サービス 組込みソフトウェア支援サービスなど |
実績 | 組込み/FAソフトウェア向けの開発支援ツール(FACTICS商品)の開発・販売 デジタル機器向け 組込みソフトウエア開発支援 組込みソフトウエア開発支援サービスなど |
会社の規模 | – |
株式会社アックス
株式会社アックスは、組み込み向けLinuxやリアルタイムOS、BSD系OSなどの基本ソフトウェアの開発を得意としています。自動車やロボット、家電向けに、信頼性の高い組み込み用OSを多数提供しています。
オープンソースをベースに自社製品の機能拡張を行っており、組み込みLinux分野での実績と技術力が特徴です。
対応内容 | 自動運転ソフトウェア アックスの組込みLinuxなど |
実績 | 株式会社アイ・オー・データ機器 NECラーニング株式会社 エヌ・ティ・ティ・コミュニケーションズ株式会社など |
会社の規模 | – |
最新の組み込みソフトウェア開発
組み込みソフトウェア開発にも、IoTやAI、エッジコンピューティングといった新しい技術トレンドの影響が及んでいます。これらの技術は組み込みソフトウェアの高度化をもたらすと期待されています。以下、詳しく解説していきます。
IoTシステム技術
IoTの普及により、家電や自動車などの組み込み機器がインターネットに接続されるようになっています。これにより自動車の遠隔操作や、洗濯機の遠隔監視などの新機能が実現できるようになります。組み込みソフトウェアは、こうしたIoT化に対応できるよう設計される必要があります。
例えば自動車の組み込みソフトウェアには、クラウドとの通信を行うインターフェースや、スマートフォンアプリからの操作を受け付ける機能が求められるようになります。家電でもインターネット経由での遠隔監視や制御を実現するための通信ソフトウェアが必要となってきます。
IoT対応は組み込みソフトウェアの大きな変化の1つといえます。
AIに関わる技術
組み込み機器でも、AIを活用した自律制御や学習機能の搭載が進んでいます。例えば自動車では、AIによる危険予測や運転支援などが研究されています。組み込みソフトウェアには、こうしたAI処理を実行できるだけの性能が求められるようになっています。
具体的には自然言語処理や画像認識などの深層学習処理を組み込み機器上で実行できるように、ソフトウェアを設計する必要が出てきます。処理性能だけでなく、機械学習のモデルを組み込む仕組みも重要になってきます。このため組み込み向けのAIアクセラレータチップも登場しています。
AI技術の利用が進むにつれ、それを支える組み込みソフトウェアへの要求も高まっていくでしょう。
エッジコンピューティング技術
クラウドと端末ではなく、端末側のみで処理を行うエッジコンピューティングは、組み込みシステムにも適用できます。自動車では、走行中の映像解析を車載コンピュータ上で実行するなど、リアルタイム性が高まっています。高速なエッジ処理を可能にするソフトウェアが不可欠となっています。
エッジコンピューティングを実現するには、組み込み機器に高性能なプロセッサとメモリを搭載するだけでなく、効率的に並行処理を行うソフトウェア設計が重要です。リアルタイムOSも、複数の並列タスクを効率的に実行できるよう改良が進められています。エッジ領域での処理を担う組み込みソフトウェアは、今後さらに高速・高効率化が進むものと予想されます。
まとめ
組み込みソフトウェア開発ではハードウェア依存性が高く、開発プロセスにも専門性が求められます。機器の仕様に合わせた設計・開発能力が不可欠で、十分な開発実績と技術力を持つ開発パートナーを選ぶことが成功の鍵となります。
本記事では、組み込みソフトウェアの基礎知識から開発手法、おすすめの開発会社をご紹介しました。組み込みソフトウェア開発に関心のある方は参考にしてください。開発を検討される際には、豊富な実績を持つ株式会社Jiteraにお問い合わせください。技術力と開発スピードを兼ね備えたソリューションをご提供いたします。