RTOS - クミコミ https://www.kumikomi.jp クミコミは、組込みシステム・ソフトウェア、マイコン・プロセッサ、CPU、RTOS等の情報サイトです。電子機器開発メーカーの経営者・責任者・開発担当者・エンジニア向けに、組込み関連の機器、開発、プログラミング、セミナー情報等を発信しています。 Wed, 21 Oct 2026 00:59:32 +0000 ja hourly 1 https://wordpress.org/?v=7.0.8 https://www.kumikomi.jp/wp-content/uploads/2023/03/クミコミシンボルホワイト-150x150.png RTOS - クミコミ https://www.kumikomi.jp 32 32 Yocto Projectとは?利用するメリット・デメリットを解説 https://www.kumikomi.jp/yocto-project/?utm_source=rss&utm_medium=rss&utm_campaign=yocto-project Fri, 27 Sep 2024 01:17:00 +0000 https://www.kumikomi.jp/?p=8857 組込み機器やIoT機器開発で、ソフトウェアのカスタマイズ性や効率性を追求する開発者にとっては、Yocto Project(ヨクトプロジェクト)は非常に有用なツールです。しかし、Yocto Projectを使うには一定の知 […]

The post Yocto Projectとは?利用するメリット・デメリットを解説 first appeared on クミコミ.

]]>
組込み機器やIoT機器開発で、ソフトウェアのカスタマイズ性や効率性を追求する開発者にとっては、Yocto Project(ヨクトプロジェクト)は非常に有用なツールです。しかし、Yocto Projectを使うには一定の知識や経験が必要となります。この記事では、Yocto Projectの概要とその特長、メリット・デメリットについて詳しく解説していきます。

Yocto Projectとは?

Yocto Projectは、組み込みLinuxのディストリビューションを構築するために生まれたLinux Foundation傘下のオープンソースプロジェクトです。具体的には、ビルドシステムやレシピ、パッケージ管理のためのツール群を提供し、開発者が自身の要件に合ったLinuxディストリビューションの作成が可能で、無料で利用することができます。

Yocto Projectの主なコンポーネント

poky : リファレンス・ビルド・システム

カスタマイズした独自のLinuxディストリビューションを構築するためのシステムです。

bitbake(ビットベイク): ビルドツール

Yocto(poky)上で利用される組込みLinuxシステム向けのビルドツール。 BitBakeは、Makeのようなもので、後述のレシピを元に依存関係ツリーを作成してコンパイルを順序付け、含まれるコードのコンパイルをスケジュールし、最後に指定されたカスタム Linux イメージのビルドを実行します。

レシピ: ソフトウェアのビルド定義

ソフトウェアのビルドを行うのに必要な手順や依存関係、ソースコードの情報などを記述したファイルです。

レイヤー

レシピなどを含めた情報を集めた層。レイヤーは階層化されており、以前の仕様に機能を追加することができます。

Yocto Projectを利用する際の3つのメリット

メリット①:高いカスタマイズ性によってOSを構築できる

Yocto Projectは、OSの機能を自由に選択・削除できるため、必要最低限の機能に絞り込んで軽量化することが可能です。このレイヤーモデルによって、各プロジェクトの要件に最適化された組込みLinuxディストリビューションを作成できるため、メモリリソースが限られたデバイスでも効率的に動作させることができます。

メリット②:組込み業界全体で広く採用されている

Yocto Projectは、組込みLinux開発においてデファクトスタンダードとして広く認知されています。
実際、多くの半導体メーカーやデバイスメーカーがYocto Projectをサポートしており、業界全体で採用が進んでいます。豊富な情報やリソース、コミュニティサポートも活用できるため、新しいプロジェクトでも安心して導入できる環境が整っています。

メリット③:複数プラットフォームとの互換性の高さ

Yocto Projectは、異なるアーキテクチャやプラットフォーム間でも一貫した開発環境を提供します。特定のハードウェアに依存せず、さまざまなデバイス向けに最適化されたLinuxイメージを構築できるため、異なるプラットフォームへの展開が容易です。そのため将来的なハードウェアの変更や新しいアーキテクチャへの移行もスムーズです。

この互換性の高さにより、開発コストを削減しつつ、柔軟な開発が可能となります。

Yocto Projectを利用する際の3つのデメリット

ここまでYoctoProjectを利用する際のメリットについて解説しましたが、少なからずデメリットも存在します。

デメリット①:習得までに時間がかかる

Yocto Projectを効果的に利用するためには、専門的な知識とスキルが必要で、初心者にとっては習得に時間がかかる点がデメリットとして挙げられます。特に、BitBake(ビットベイク)やレシピの作成、Pokyなどのコンポーネントを理解するには、ある程度の学習と経験が必要です。

デメリット②:初期設定の複雑さ

Yocto Projectのビルド環境を構築するための初期設定は、他のビルドシステムと比較しても複雑です。各種ツールのインストールや環境構築には細かな設定が必要なため、エラーが発生した場合のトラブルシューティングも容易ではありません。この初期設定の複雑さが、プロジェクトの立ち上げにおいて高いハードルとなることがあります。

まとめ

Yocto Projectは、組込み機器開発において有効的なツールです。その高いOSのカスタマイズ性やクロスプラットフォームへの対応など、導入することによって多くのメリットを得ることができます。

一方で、高い学習コストや複雑な初期設定という課題が存在していることも理解する必要があります。これらの点を考慮しつつYocto Projectを導入することで、より効率的で柔軟な組込みシステム開発が可能になるでしょう。

The post Yocto Projectとは?利用するメリット・デメリットを解説 first appeared on クミコミ.

]]>
IEEE 802.1Xとは?構成要素や認証の流れを解説 https://www.kumikomi.jp/ieee-802-1x/?utm_source=rss&utm_medium=rss&utm_campaign=ieee-802-1x Thu, 27 Jun 2024 02:30:39 +0000 https://www.kumikomi.jp/?p=8555 不正ユーザーのネットワークアクセスなどサイバー攻撃は日々進化を遂げ、ネットワークセキュリティの重要性がますます高まっています。 そのような中、ネットワークセキュリティを強化する手段として、近年注目を集めているのがIEEE […]

The post IEEE 802.1Xとは?構成要素や認証の流れを解説 first appeared on クミコミ.

]]>
不正ユーザーのネットワークアクセスなどサイバー攻撃は日々進化を遂げ、ネットワークセキュリティの重要性がますます高まっています。

そのような中、ネットワークセキュリティを強化する手段として、近年注目を集めているのがIEEE 802.1Xです。

本記事では、IEEE 802.1X とはなにか、構成要素や認証の流れ、利用するメリットなどを紹介します。

また、弊社では組込みシステムの開発者に向けて「eForceの開発者から学ぶウェビナー」を公開しています。ウェビナーでは、RTOSやセキュリティなどについての基礎知識から少し踏み込んだ内容まで解説していますので、自己学習や社内教育などにぜひご利用ください。

IEEE 802.1Xについて

IEEE 802.1Xについて

ここでは、IEEE 802.1X について解説します。

IEEE 802.1Xとは

IEEE 802.1Xは、LANの標準規格の1つで、ネットワークに接続するコンピュータなどの端末を認証する技術です。この規格は、ネットワークへの不正なアクセスを防ぎ、認証が完了していない通信を拒否できます。

IEEE 802.1Xの主な目的は、ネットワーク環境のセキュリティを強化することです。これにより、データ漏洩のリスクを低減し、安全なネットワーク環境を維持します。

IEEE 802.1Xの構成要素

IEEE 802.1Xは、以下3つの要素で構成されています。

構成要素1:サプリカント

サプリカントとは、IEEE 802.1X 認証を行うためのソフトウェアです。認証を受けたいPCなどの端末にサプリカントをインストールする必要がありますが、現在のWindowsやMacなどのOSには、すでにサプリカントの機能が内蔵されている場合が多いです。

構成要素2:オーセンティケータ

オーセンティケータは、サプリカントからの認証要求を中継する役割を担います。具体的には、LANスイッチや無線LANアクセスポイントなどのネットワーク機器がこの機能を果たします。

構成要素3:認証サーバ

認証サーバーは、サプリカントの認証情報を検証し、ネットワークアクセスの可否を判断する中枢となる存在です。 IEEE 802.1X認証に対応したRADIUSサーバーが一般的に利用されます。

IEEE 802.1Xの認証の流れ

IEEE 802.1Xの認証の流れは以下の通りです。

EEE 802.1Xの認証の流れシーケンス

認証の流れ 1:アクセス要求を送信

サプリカントがオーセンティケータへアクセス要求を送信しすると、無線LANアクセスポイントなどのオーセンティケータが認証を要求します。その後、サプリカントはユーザー名、パスワードなど認証情報をオーセンティケータに送信します。

認証の流れ 2: 認証サーバーへ問い合わせ

オーセンティケータは認証サーバーにサプリカントの認証情報を問い合わせます。この際、 IEEE 802.1Xの認証プロトコルEAP(Extensible Authentication Protocol)を使用してオーセンティケータと認証サーバーはやり取りを行います。

認証サーバーは認証情報を照合し、アクセスの可否を判断してオーセンティケータに通知します。オーセンティケータは認証結果に基づき、サプリカントのネットワークアクセスを許可または拒否します。

認証の流れ 3: 認証の成功を通知、証明書配布

認証に成功したサプリカントには、認証成功の通知が送られます。 初回認証実施時に暗号化キーなどの証明書が配布されネットワークへのアクセスが可能になります。

認証の流れ 4: ネットワークに接続

ユーザーは提供された暗号キーを使用してネットワークに接続し、通信を開始します。その後は、該当のネットワークにある通信機と自由に接続が可能です。ただし、認証情報や不正行為などが行われた場合は、再認証が行われる場合があります。

IEEE 802.1Xのメリット

IEEE 802.1Xの利用には、以下のようなメリットがあります。

内部ネットワークのセキュリティ強化

企業のネットワークセキュリティでは、外部からの不正アクセスだけでなく、内部からの脅威にも注意を払う必要があります。内部ネットワークを利用するユーザーは全員が信頼できるとは限りません。

内部ネットワークのセキュリティ対策として、接続するユーザーや端末を制限することが重要です。IEEE 802.1X認証は、どのユーザーがどの端末を使用しているかを認証サーバーで確認し、不正ユーザーの侵入を防げます。

認証の強化

無線LAN機器を利用する際、MACアドレス認証を使用するケースが多いですが、MACアドレスは偽装が容易であり、セキュリティ上の懸念がありました。

IEEE 802.1X認証は認証情報の改ざんが困難なため、より強固なセキュリティを実現できます。

セキュリティが厳しい環境のIEEE 802.1Xの利用

IIEEE 802.1Xは、 セキュリティが厳しい大規模ネットワーク環境で利用されています。具体的には、企業オフィスの無線LANや教育機関のキャンパスネットワーク、医療機関のネットワークなどです。このような環境では、登録済みのユーザーとデバイスのみをネットワークに接続させる必要があります。

また、ビジネスの現場でも、セキュリティの強化とIT資産管理の効率化を図るためにIEEE 802.1Xが採用されています。端末の認証情報を一元管理できるため、管理コストの削減とセキュリティの向上の両立が可能です。

今後の展望とまとめ

IEEE 802.1Xの利用は、従来の有線LANや無線LANにとどまらず、さらに広がっていくと予想されます。さまざまな分野で IEEE 802.1Xによる端末認証を組み込むことで、データ通信のセキュリティ保護に役立てられるでしょう。

しかし、組込み用途での対応ベンダーがまだ少ないなどの課題も存在します。対応ベンダーの拡充や技術の普及が進むことで、さらに多様な分野での活用が期待されます。

関連記事

The post IEEE 802.1Xとは?構成要素や認証の流れを解説 first appeared on クミコミ.

]]>
OCPPとは?特長や重要性、OCPIとの関係性を紹介 https://www.kumikomi.jp/ocpp/?utm_source=rss&utm_medium=rss&utm_campaign=ocpp Thu, 30 May 2024 22:00:00 +0000 https://www.kumikomi.jp/?p=7911 電気自動車の普及が進む中、充電インフラを効率的に運用することが重要となっています。そこで注目を集めているのが、充電管理システムの通信規格のOCPPです。 本記事では、OCPPの特長や重要性とOCPIとの関係性について紹介 […]

The post OCPPとは?特長や重要性、OCPIとの関係性を紹介 first appeared on クミコミ.

]]>
電気自動車の普及が進む中、充電インフラを効率的に運用することが重要となっています。そこで注目を集めているのが、充電管理システムの通信規格のOCPPです。

本記事では、OCPPの特長や重要性とOCPIとの関係性について紹介します。

OCPPとは?

OCPPは、Open Charge Point Protocolの略称で、電気自動車(EV)のネットワーク化された充電ステーションと充電管理システムの通信に使用される国際標準通信プロトコルです。

この規格により、充電などの課金や充電器の保守・運用などを、専用の端末や特別なネットワークを介さずに実施できます。

これにより、利用者はCHAdeMOやType 2 CCSといった充電技術を使用して、違う充電器メーカーやクラウドサービス提供者に、柔軟に対応できるようになります。

OCPPの特長

OCPP特長

OCPPの特長は次のとおりです。

特長1:互換性の向上

異なるメーカーの充電器と充電管理システム間で互換性を保つことができます。

OCPPの採用により、充電器の製造メーカーや充電サービスプロバイダが異なっても、互いの機器やシステムが円滑に連携可能となり、充電器のメーカーやモデルへ依存しません。

充電インフラの提供側にとっては、充電器の調達や管理が容易になり、利用者にとっては充電インフラの利用がシンプルになるというメリットがあります。

特長2:柔軟な選択

OCPPを充電インフラに採用すると、充電器のベンダを選ぶ際の選択肢が大幅に広がります。

従来は特定のベンダに依存せざるを得ませんでしたが、OCPP対応機器であれば、ベンダを気にすることなく製品を幅広い選択肢から選べます。

企業は充電インフラの構築において、ベンダロックインの問題から解放され、コストの最適化や、戦略に合わせて最適な充電器の選定が可能です。

特長3:リモート管理

OCPPを活用すれば、リモート管理も可能になります。

充電ステーションのオペレーターは、充電器の稼働状況やエネルギー消費量、課金情報などの各種データをリアルタイムで監視できます。さらに、需要の変化や特定の要件に応じた充電料金の設定やスケジュール管理なども可能です。

特長4:エネルギー分配の最適化

1つの場所に設置された複数の充電器間の負荷分散などができます。

利用可能な電力リソースを柔軟かつ効率的に活用しながら、複数の充電器間でエネルギーの分配を最適化してくれます。

このようなエネルギー管理の最適化は、充電インフラの運用コストの削減や、再生可能エネルギーの有効活用にもつながります。

OCPPのスマートグリッドでの使用

近年、SDGsの推進に伴い様々な分野で環境への配慮や、従来とは異なる仕組みづくりが求められるようになってきています。

その一つが、風力発電や太陽光発電などの再生可能エネルギーの効率的な活用です。また、電力を大容量バッテリーに蓄電し、需要に合わせて適切なタイミングで使用するという方法も注目されています。

急速に普及が進んでいる電気自動車と充電管理システムも、スマートグリッドの一端を担うことが期待されています。

そのためには、 電気自動車と充電管理システム の接続・連携に、共通の通信規格が必要不可欠です。ここで重要な役割を果たすのが、OCPPなのです。この規格は、充電器と充電管理システムの間の相互運用性を高め、電力の効率的な配分や課金管理など、様々な機能を実現することができます。

OCPPは、持続可能な充電インフラの構築と、スマートグリッドの実現に不可欠な技術基盤といえるでしょう。SDGsの推進やカーボンニュートラルの実現に向けて、OCPPの重要性はますます高まっていくと考えられます。

OCPPとOCPIの関係性

OCPPとOCPIはどちらも電気自動車の充電インフラにおいて重要な役割を果たしています。似たような名前ですが、両者はそれぞれ異なる役割と目的を持っています。

ここからは、OCPPとOCPIの関係性について紹介します。

OCPIとは?

OCPIは、Open Charge Point Interfaceの略称で、異なる電気自動車充電ネットワーク、サービスプロバイダ間などの円滑な連携を促進するためのオープン標準プロトコルです。

OCPIの主な目的は、電気自動車利用者がどこにいても、問題なく充電できるようにすることです。具体的には、ローミング機能の提供や、充電ステーションの空き状況・稼働状況に関するリアルタイム情報の共有、課金トランザクションの正確な管理など、充電インフラの利便性向上を目指しています。

OCPIの活用により、利用者は一つのアクセスカードやモバイルアプリで、様々な充電ネットワークの充電ステーションを利用できます。

OCPPとOCPIの関係性

OCPIとOCPPは、電気自動車の充電インフラを支える2つの重要な規格ですが、それぞれ異なる目的を果たしています。

OCPI は、電気自動車利用者がさまざまな充電ネットワークに簡単にアクセスしてローミングできるよう、充電インフラ提供側の円滑な運営を高めることに重点を置いています。つまり、ユーザー目線での充電の利便性向上が主な目的です。

一方、OCPPは、充電ステーションと充電管理システム間の通信プロトコルとして機能し、充電インフラの効率的な運用を実現することに焦点を当てています。

実際には、多くの充電インフラでは、OCPIとOCPPの両方を活用して包括的な充電サービスを提供しています。

OCPI によって電気自動車ドライバーのローミングを可能にし、一方でOCPPによって充電ステーションが効率的に管理され、ネットワーク上のシステムと確実に連携できるようになるのです。

OCPPとOCPIは、進化する電気自動車充電インフラにとって不可欠な存在といえます。両者を組み合わせて活用することで、利用者の利便性向上と充電インフラの効率化が同時に実現できるのです。

IoTサービスでの活用事例

デルタ電子株式会社は、IoTテクノロジーを活用した先進的な充電サービスプラットフォーム「EZQC」を開発しました。

「EZQC」は、OCPPを採用し、スマートフォンアプリと連携することで、ユーザー登録や決済、充電操作などをシームレスに行えるサービスを提供しています。ユーザーは事前の個人情報登録なしに、どの充電器でも簡単に利用できるため、利便性が大幅に向上します。

また、「EZQC」は充電データの収集と制御が可能なため、電力供給の負荷管理にも有効活用できます。急速充電器の急増に伴う電力需要の増加は大きな課題ですが、本サービスの活用により、最適な電力配分が実現できるのです。

このようにIoT技術とOCPPの組み合わせにより、使いやすさと効率性を両立した充電サービスが提供されています。

参考:スマートフォンを利用した電気自動車用充電管理サービス「EZQC」

まとめ

本記事では、OCPPとはなにか、特長や重要性、OCPIとの関係性を紹介しました。OCPPは、電気自動車の充電インフラ構築において重要な標準規格プロトコルです。今後もOCPPは、電気自動車の普及を支える基盤技術として発展していくと考えられます。

The post OCPPとは?特長や重要性、OCPIとの関係性を紹介 first appeared on クミコミ.

]]>
LEオーディオとは?Classicオーディオとの違いや特長を解説 https://www.kumikomi.jp/leaudio/?utm_source=rss&utm_medium=rss&utm_campaign=leaudio Fri, 17 May 2024 10:00:00 +0000 https://www.kumikomi.jp/?p=8465 近年、モバイルデバイスやIoT機器の発達に伴い、低消費電力で高音質を実現するLEオーディオと呼ばれる新技術が注目を集めています。 本記事では、LEオーディオとはなにか、従来のClassicオーディオとの違いや特長について […]

The post LEオーディオとは?Classicオーディオとの違いや特長を解説 first appeared on クミコミ.

]]>
近年、モバイルデバイスやIoT機器の発達に伴い、低消費電力で高音質を実現するLEオーディオと呼ばれる新技術が注目を集めています。

本記事では、LEオーディオとはなにか、従来のClassicオーディオとの違いや特長について解説します。また、活用事例も紹介するので、ぜひご一読ください。

LEオーディオとは

LEオーディオは、次世代のBluetooth®オーディオ規格です。LEオーディオの「LE」は、Low Energyの略称で「低消費電力」を意味します。

この規格は、Bluetooth®オーディオの品質を大幅に向上させただけでなく、補聴器向けの機能強化や、「マルチストリーム」「Auracast™ ブロードキャスト オーディオ」「LC3コーデック」機能も新たに追加されています。

Classicオーディオとの違い

Classicオーディオは、従来のBluetooth®オーディオ規格を指します。元々はハンズフリー通話用途としてスタートした規格でしたが、LEオーディオの登場までほとんど大きな機能アップデートはありませんでした。

2020年にLEオーディオが発表された後、新旧の区別を明確にするために、従来のBluetooth®オーディオ規格を「Classicオーディオ」、新しいBluetooth®オーディオ規格を「LEオーディオ」と呼ぶようになりました。

2つの最大の違いは、無線機です。Classicオーディオは従来のBluetooth® Classic無線機を使用し、LEオーディオはBluetooth® LE無線機を使用し動作します。

LEオーディオの必要性

Bluetooth®にとってオーディオ分野は最重要ソリューション領域の一つでしたが、従来のClassicオーディオの音声技術には課題が存在していました。


Classicオーディオ が普及し始めた当初は、ハンズフリー通話やヘッドセットでの活用が中心でした。その後A2DPの登場により、スマートフォン、タブレット、PC、ワイヤレススピーカーなどの製品でも利用されるようになったのです。

しかし、Classicオーディオ の音声技術は、高い消費電力、同時接続のサポート不足、単一方向ストリーミングのみ、などの制約がありました。モバイルデバイスやIoT機器の普及が進む中で、これらの課題を解決することが求められていたのです。


そこで登場したのがLEオーディオです。

LEオーディオの特長

LEオーディオ特長

ここでは、LEオーディオの特長を紹介します。

特長1:低遅延で高音質

LEオーディオは、新しいコーデック「LC3コーデック」を採用しています。Classicオーディオで使用されていたSBCコーデックに比べ、LC3コーデックは同ビットレート音声データでより優れた音質を実現できます。また、SBCコーデックの半分未満のビットレートのLC3コーデックで比較しても、SBCコーデックと同程度または若干優れた音質です。

さらに、Classicオーディオに比べてさらに低遅延が実現されており、ゲームなどのリアルタイム性の高い用途でも快適に利用できます。

特長2: 独立したストリーム伝送が可能

LEオーディオには「マルチストリーム」機能が備わっています。これにより、1つの送信デバイスから複数の受信デバイスに、それぞれ独立したストリーム伝送ができるのです。Classic Audioでは片方のイヤホンが音楽再生し、もう片方のイヤホンへ中継をする必要がありましたがLE Audioのマルチストリーム機能を使えば、2つのイヤホンへの同時転送が可能になります。これにより低遅延、低消費電力が実現できます。

特長3: 複数人で音声をシェアが可能

従来のBluetooth®オーディオは1対1の接続のみでした。LEオーディオの「Auracast™ ブロードキャスト オーディオ」機能により、無制限のデバイスに対しブロードキャスト送信することが可能になりました。これにより、周囲の人と音楽やテレビの音声などの共有が可能になります。無声テレビの音声を聴けるようにしたり、映画館や講堂で複数の言語で音声を提供したりもできます。

LEオーディオの活用事例

LEオーディオの低消費電力性能は、新しいタイプのオーディオ機器の開発を可能にしています。特に注目されるのが補聴器分野での活用です。

今後、劇場やスタジアム、空港や駅など公共施設がLEオーディオに対応していけば、そういった場所の音声をクリアな音質で補聴器に直接流せるようになります。

参考:オーダーメイドかつBluetooth新規格「LE Audio」対応 リオンとの共同開発第1号、耳あな型補聴器「C5シリーズ」発売

今後の展望とまとめ

LEオーディオの誕生により、Bluetooth®オーディオの体験は今後大きく進化していくことが期待されています。特に、「Auracast™ ブロードキャスト オーディオ」は最も重要な機能と位置付けられ、多くの新しい利用シーンが想定されています。

例えばテレビの音声をBluetooth®でパーソナル視聴できる「サイレントTVスクリーン」や、空港アナウンスを手元で聞ける「アシスタントリスニング」、会議や映画館での同時多言語配信といった「多言語サポート」、博物館やスタジアムでのオーディオガイドとしての「ツアーシステム」などです。

このように幅広い分野でAuracast™ ブロードキャスト オーディオが活用可能になれば、Bluetooth®オーディオのユーザー体験は今後大きく進化するでしょう。

The post LEオーディオとは?Classicオーディオとの違いや特長を解説 first appeared on クミコミ.

]]>
Arm TrustZoneとは? https://www.kumikomi.jp/arm-trustzon/?utm_source=rss&utm_medium=rss&utm_campaign=arm-trustzon Fri, 26 Apr 2024 00:44:00 +0000 https://www.kumikomi.jp/?p=7776 Arm TrustZoneは、Armプロセッサが提供するセキュリティ技術です。コンピューターシステムのセキュリティを向上させるために開発されました。 非セキュアな環境とセキュアな環境にコンピューターリソースを分割し、安全 […]

The post Arm TrustZoneとは? first appeared on クミコミ.

]]>
Arm TrustZoneは、Armプロセッサが提供するセキュリティ技術です。コンピューターシステムのセキュリティを向上させるために開発されました。

非セキュアな環境とセキュアな環境にコンピューターリソースを分割し、安全な実行環境の提供を目的としています。モバイルデバイスやマイクロコントローラーなど、さまざまなプラットフォームで利用可能です。

TrustZoneは、Armv8-M(Cortex-Mシリーズ)とArmv8-A(Cortex-Aシリーズ)に搭載されています。また、 Armv8-AとArmv8-Mでは仕組みが異なり、Armv8-Mは組込みシステム向きに最適化されています。

IoTデバイスでは堅牢なシステムが必要

近年、スマートホームや産業機器などのIoTデバイスがインターネットに接続されることで、高度なセキュリティが求められています。情報のやり取りが含まれるため、攻撃の標的となりやすくなってしまいます。

IoTの普及により、社会は便利になる一方で、インターネットに接続する機器の増加に伴いセキュリティリスクも増加していると言えます。例えば、以下のようなリスクが考えられます。

  • 自動車の車載システムに不正アクセスを行い、遠隔操作でブレーキやハンドルを操作することで事故を引き起こす
  • 病院の輸液ポンプを不正に操作して薬物の投与量を変更する
  • 自宅の監視カメラが不正にアクセスされ、映像が公開される
  • IoT機器が不正なソフトウェアに乗っ取られ、攻撃側として他のシステムを攻撃する

自動車や医療機器などのIoT機器におけるセキュリティ事故は、人命に関わる可能性もあるでしょう。このようなリスクを踏まえて、IoTデバイスにおける堅牢なセキュリティ対策がますます重要となっています。

組込みシステムでサイバー攻撃の可能性を下げるためには

組込みシステムでは、セキュリティファームウェアを独立させることで攻撃のリスクを低減できます。 Armv8-MのTrustZone技術では、非セキュアモード、セキュアモードにコンピューターリソースを分離させて、より安全な環境を実現させています。

非セキュアモードでは、通常のアプリケーションを動かし、 セキュアモードでは、暗号処理、指紋、パスワードなどの機密性の高い処理を実行します。

また、非セキュアモードからセキュアモードの処理を呼び出す際は、必ずセキュアゲートウェイを中継する仕組みになっているます。

ここで、一般的な組込みシステムにおけるセキュリティ要件も紹介するので、ご覧ください。

  • 通信保護:データ転送が許可されていない人に見られたり傍受されたりするのを防ぐもので、暗号化などの他の技術が含まれる場合もある
  • データ保護:権限のない人がデバイス内の機密データへのアクセスを防止
  • ファームウェア保護:オンチップ・ファームウェアのリバースエンジニアリングを防止
  • 動作保護:悪意のある意図的な故障から、重要なオペレーションを保護
  • 改ざん防止:デバイスの動作や保護メカニズムがオーバーライドされるのを防ぐための、改ざん防止機能

参考:Arm Developer

また、Armv8-MのTrustZone技術は、組込みシステム向けに最適化されており、セキュリティ要件の一部に直接対応も可能です。

  • データ保護:機密データは安全なメモリ空間に保存され、安全なソフトウェアだけがアクセス可能。非セキュアソフトウェアは、セキュリティチェックまたは認証後にのみ、非セキュアドメインにサービスを提供するセキュアAPIにアクセス可能。
  • ファームウェア保護:プリロードされたファームウェアは、セキュアメモリに保存して、リバースエンジニアリングや悪意のある攻撃による侵害を防ぐ。 追加の保護テクノロジーと併用も可能。
  • 動作保護:重要な操作用のソフトウェアはセキュアファームウェアとしてプリロードでき、適切な周辺機器はセキュア状態からのアクセスのみを許可するように設定可能。非セキュア側からの侵入から操作を保護。
  • セキュアブート:セキュアブートメカニズムにより、常にセキュアメモリから起動するため、プラットフォームの信頼性を高める。

参考:Arm Developer

ワンチップマイコンでセキュリティ対策は実現できる

Arm Cortex-M33は、Armv8-Mのアーキテクチャに基づき作成されているため、セキュア状態と非セキュア状態をサポートするTrustZoneを使用できます。それにより、ワンチップでのセキュリティ対策を実現できるのです。

Arm Cortex-M33は 、ゲート数が少なく、エネルギー効率が高いとされており、組込みアプリケーション向けのプロセッサです。また、Arm Cortex-M4と比較すると、CPUの性能が約20%強化されています。

主にセキュリティを重視する環境での利用を目的とし、高度な構成が可能で、高速な割り込み応答機能を必要とする幅広い組込みアプリケーションに対応できます。

Arm、Cortexは、米国およびその他の国におけるARM Ltd.の登録商標または商標です。

Trust Zoneテクノロジーを使用して使えるμC3

イー・フォースでは、 Arm Cortex-M33 のセキュリティ機能を活用したRTOS「μC3(マイクロシーキューブ)」を提供しています。 Armv8-Mのアーキテクチャ をベースとして、TrustZone技術のサポートをしています。

マイコン向け超軽量カーネルを採用したRTOS「μC3(マイクロ・シー・キューブ)/Compact」

μC3(マイクロ・シー・キューブ)/Compactは、マイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOSです。

μC3/Compactは、ソースコードに直接コンフィグレーションを行うのではなく、付属のコンフィグレータによりGUIベースでRTOS、TCP/IP、デバイスのコンフィグレーションからベースコードの自動生成まで行います。

小さいフットプリント
マイコンの小さなROM/RAMのみで動作するように最適化された最小2.4kbyteのコンパクトなカーネル。メモリ容量が小さい安価なデバイスを使用する事ができます。
μC3/Configurator付属
選択・設定するだけでベースコードが生成できるコンフィギュレーションツール。開発時間の大幅な短縮やコーディングミスの減少が可能。RTOSの初心者でも簡単に開発をスタートできます。
豊富なCPUサポート
業界随一のCPUサポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実。使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
省電力対応
デフォルトで省電力機能がついているため、システム全体の省電力に貢献します。

詳しい資料をご希望の方は、下記よりプロダクトガイドをダウンロードしてください。

資料ダウンロード(無料)

高性能リアルタイム処理向けRTOS「μC3(マイクロ・シー・キューブ)/Standard」

μC3(マイクロ・シー・キューブ)/Standardは、μITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組み込みシステム向けのRTOSです。

μC3/Standardは、高性能プロセッサがより高度なリアルタイム制御に耐えられるよう、割込み禁止時間を極力なくし、割込み応答性を最重要課題として設計したRTOSです。

Arm Cortex-Aシリーズ、Arm Cortexシリーズだけでなく、高性能な Arm Cortex-MやRenesas RXシリーズにも対応しています。

32/64bitの高性能プロセッサに最適化
割り込み応答性を高め、32/64bitの高性能プロセッサ向けに最適化されたμITRON4.0仕様のカーネル。
豊富なプロセッサ・サポート
業界随一のプロセッササポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサ
ポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
マルチコア対応
組み込み機器向けに最適なAMP型カーネル。マルチコアによって、リアルタイム性能を強化します。
豊富なデバイスドライバを用意
I2C, SPI, GPIO, SDなどのデバイスドライバをオプションで用意。(UART, Timer, INTCはμC3に、EthernetドライバはμNet3に付属しています。)

詳しい資料をご希望の方は、下記よりプロダクトガイドをダウンロードしてください。

資料ダウンロード(無料)

The post Arm TrustZoneとは? first appeared on クミコミ.

]]>
μITRONとT-Kernel 国内におけるRTOSカーネル仕様について紹介 https://www.kumikomi.jp/uitron_tkernel/?utm_source=rss&utm_medium=rss&utm_campaign=uitron_tkernel Fri, 28 Apr 2023 00:00:01 +0000 https://stg.kumikomi.jp/?p=5264 国内の組込みRTOS用カーネル仕様のうち、ITRON系が6割のシェアを占めています。ITRONはオープンな仕様であり、特定の会社や国の政策に縛られず、利用者が自由にカスタマイズできます。そのため、産業機器や家電製品など、 […]

The post μITRONとT-Kernel 国内におけるRTOSカーネル仕様について紹介 first appeared on クミコミ.

]]>

国内の組込みRTOS用カーネル仕様のうち、ITRON系が6割のシェアを占めています。ITRONはオープンな仕様であり、特定の会社や国の政策に縛られず、利用者が自由にカスタマイズできます。そのため、産業機器や家電製品など、様々な製品に広く利用されています。ITRON系OSは大きく分けて『μITRON(マイクロアイトロン)』と『T-Kernel(ティーカーネル)』があります。 本記事では、『μITRON』と『T-Kernel』について、共通点や違いを比較し、それぞれの特徴を理解することを目的としています。

μITRONとT-Kernel のあゆみ

μITRONとT-Kernelのあゆみを年表で下図に示します。※クリックで拡大

μITRONとT-Kernelは共にTRON系のOSで、ITRON(アイトロン)が母体となっています。1987年にITRONの初期仕様が決まりました。当時は16bit CPUのパソコンが出始めた頃のため、機器開発には必要最低限の機能のみが採用されました。

その後、μITRON2.0が公開された際にCPUの大きさごとに二つの仕様へ分かれます。8bit/16bit CPU向けのμITRON 2.0と、32bit CPU向けのITRON 2.0です。後年、32bit CPUの低価格化に伴い組込み機器でも32bit CPUが採用されるようになりました。そのため、μITRON 3.0では再び一つに統合され、1999年に現在使用されているμITRON4.0が公開されました。

21世紀初頭に組込みシステムのハードウェア性能の向上に伴い、μITRONの後継として大規模システム向けに仕様が策定され、2004年にT-Kernelは公開されました。ハードウェアの仕様からOSまでをトータルに標準化してソフトウェアの移植性、再利用性を高めることを目的としています。

μITRON 4.0仕様には、ベーシックプロファイルが追加されました。このプロファイルは、μITRON3.0、μITRON4.0、T-Kernelで同等の機能を持つサービスコールを定義しており、T-KernelとμITRON間の移植を容易にすることを目的としています。ベーシックプロファイルに準拠するミドルウェアやアプリケーションは、T-KernelとμITRONの間で簡単に移植できます。

μITRONとT-Kernelの比較

主な特長を下記表に示します。

μITRON T-Kernel
公開時期 1999年 2004年
設計思想 弱い標準化・最適化 強い標準化・移植性
仕様が規定されている範囲 カーネル仕様
(RTOSとしての仕様のみ規定)
カーネル仕様(T-Kernel)
ハードウェア仕様(T-Engine)
モニタ仕様(T-Monitor)
サブシステム管理機能仕様(T-Kernel/Extention)
ライセンス 提供OSベンダにより異なる T-License(最新版:T-License2.0)
但しT-Kernel仕様で開発された商用RTOSのライセンスについては提供OSベンダにより異なる
サブシステム管理機能 提供OSベンダにより異なる
ミドルウェアはOSベンダがオプションとして用意していることが多い
T-Kernel/Extensionとして実装
(大規模システムで標準利用されるプロセス制御やファイル・システムをT-Kernel/ SEとして公開)
OSベンダ eForce、東芝、TOPPERS、ミスポ、ユビキタスAI、ルネサスなど eSOL、パーソナルメディア、ユーシーテクノロジ

仕様の規定範囲

μITRONは『弱い標準化』の設計仕様により、RTOSとしてのカーネル仕様のみ規定されており、ハードウェアに依存する部分は実装依存です。T-Kernelでは『強い標準化』の設計思想により、ハードウェア仕様、モニタ仕様、サブシステムについても定義されています。μITRONとT-Kernelの詳細な仕様、ガイドラインはトロンフォーラムで公開されています。弱い標準化と強い標準化については、次章で解説します。

μITRON
■カーネル仕様  μITRON4.0仕様書(ver.4.03.03)

T-Kernel
■ハードウェア仕様  T-Engine設計ガイドライン(ver1.01.01)
■カーネル仕様    T-Kernel2.0仕様書(ver.2.01.00)
■モニタ仕様          T-Monitor仕様書(ver.1.00.01)
■サブシステム仕様  T-Kernel/Standard Extention仕様書(ver.1.00.02)

標準化の範囲

μITRONとT-Kernelでの大きな違いの一つに『標準化の範囲』が挙げられます。μITRONは『弱い標準化』、T-Kernelは『強い標準化』を設計思想に持ちます。

μITRON:弱い標準化

μITRONはAPIや変数定義を標準化しており、カーネル(RTOSとしての仕様)のみを規定しています。ハードウェアウェアについては規定しておらず、共通化すること実行時性能の低下につながる部分は無理に標準化を行わず、機能を絞っています。


※μITRON Ver4.03.03仕様書の「1.3 ITRON仕様の設計方針」から抜粋

μITRONに向いているケース

システムの規模や性能にあった適切なRTOSを選択したいとき
小規模システムではコスト削減が重要視されるため、MCU内蔵の小さなROM/RAMのみで動作するような、フットプリントの小さいRTOSが選ばれます。 また、高いリアルタイム性能が必要なシステムでは、割込み応答性の高いRTOSが選ばれます。

μITRONとは?入門者向けに意味・特徴・種類を解説

T-Kernel:強い標準化

T-Kernelは強い標準化を特徴とします。標準化の範囲をカーネルのみならず、ハードウェア(T-Engine)、サブシステムの扱い(T-Kernel Extention)まで拡げています。範囲を広げることで実装依存性を排除し、プロセッサが異なるハードウェアに対してもソフトウェアの再利用性と移植性を容易とします。

T-Kernelに向いているケース

ソフトウェアの移植性を必要とする場合
T-Kernelは強い標準化のため移植性が高いという特徴があります。システムを他のハードウェアに移植する際に、既存のソフトウェア資産を再利用しやすいため、開発の効率化が期待できます。

ライセンス

μITRONとT-Kernelは、いずれもオープンアーキテクチャです。一方で、配布元のトロンプロジェクトの方針により、自社で拡張を加えたとしても、自社のノウハウが詰まったプログラムコードまで公開する義務はなく、商用利用も自由なので、企業にとって大きな利点となり日本国内で広く普及する理由の一つとなりました。

μITRON

μITRONが規定する仕様はカーネルのみです。その為、μITRON仕様を元に、実在するCPUで動くサンプルコードと一緒に企業や団体・個人が『μITRON仕様準拠RTOS』として配布、販売をしています。μITRON準拠RTOSのライセンスについては配布・販売するベンダーにより異なりますが、機能制限された評価版は無償、拡張機能と保守サポートがついた有償版と開発段階に応じて用意されています。

参考:μC3(eForce)のライセンスの場合

μC3のライセンスの種類は3つあります。
・研究開発用プロジェクトライセンス(研究開発のみ可能)
・開発量産用プロジェクトライセンス(研究開発から量産販売まで可能、一つの製品ファミリ)
・プラットフォームライセンス(プロジェクトライセンスの拡張版・複数の製品ファミリが範囲)

開発段階に応じてライセンスのアップグレードが可能です。お客様のご要望をお聞きした上で適切な範囲を設定させて頂きますので、先ずは、担当営業にご相談下さい。

T-Kernel

T-Kernelは、シングル・ワン・ソース(single one source)としてT-Engineフォーラムのwebページからソースコードが入手できます。T-Kernelを利用するためにはT-Licenseに契約する必要があります(最新版はT-License2.0)。

■T-License 2.0
■T-License 2.0で改定された項目について(TRON Forum : T-License 2.0 FAQ)

T-Kernel仕様で開発された商用RTOSは、各ベンダーが独自機能を実装したライセンスつきSDKとして販売しています。機能制限された評価版は無償、拡張機能と保守サポートがついた有償版と開発段階に応じて用意されています。

T-License2.0の特徴

1)ソースコードの複製・改変可
2)改変したソースコードをバイナリ形式で製品に搭載・販売可、ライセンス費用無償
3)T-Kernelを利用した旨の表示が必要
4)T-Kernelのソースコードを元に改良・改変したソースコードを第三者に配布する場合、「T-Kernelトレーサビリティサービス」への登録が必要

まとめ

本記事ではμITRONとT-Kernelを紹介しました。

μITRON仕様のRTOSは、登場からすでに35年以上を経過していますが、現在でも多くの機器で採用されています。その要因の一つにRTOSのコア部分であるカーネルの機能が小さいということが挙げられます。技術の進化でCPUが高性能化されても、ソフトウェアの動作原理は変わりません。そのため、カーネル部分の構造を大きく変える必要がなく効率的に開発ができるのです。

T-Kernelは2004年にμITRONの後継として公開され、国産の人工衛星システムやECU(車載組込みシステム)など、安全性が最重要視される大規模システムへの導入実績をあげています。また、省メモリMCU製品向けのμT-Kernelを公開、IEEE対応など世界標準となる取り組みを着々と進めています。

μITRONとT-Kernelのどちらを選択するか、また別仕様のOSを選択するかは、 性能は勿論、『システムの規模』『 既存資産』『今後の移植性 』など様々な要素を考慮する必要があります。商用RTOSを選択するのであれば、アフターサポートのきめ細やかさなども含めて、総合的に判断し、自身に合った組込みシステムの構築を検討してみてください。

関連記事

初心者でもわかる RTOS開発入門 (1)

組込みで使用するリアルタイムOS(RTOS)とは?入門者向けに意味、種類、特徴を解説

弊社製品「μC3(マイクロ・シー・キューブ)」のご紹介

マイコン向け超軽量カーネルを採用したRTOS「μC3/Compact」

μC3(マイクロ・シー・キューブ)/Compactは、マイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOSです。ソースコードに直接コンフィグレーションを行うのではなく、付属のコンフィグレータによりGUIベースでRTOS、TCP/IP、デバイスのコンフィグレーションからベースコードの自動生成まで行います。

小さいフットプリント
マイコンの小さなROM/RAMのみで動作するように最適化された最小2.4Kbyteのコンパクトなカーネル。メモリ容量が小さい安価なデバイスを使用する事ができます。
コーディング不要のベースコード自動生成機能
製品に付属されているμC3/ConfiguratorにてGUIベースでRTOS、TCP/IPの設定ができます。RTOSの初心者でも簡単に開発をスタートすることができます。
豊富なCPUサポート
業界随一のプロセッササポート実績があります。また、現在未対応のものでもお客様のご依頼に合わせて随時対応をさせていただいております。
省電力対応
デフォルトで省電力機能がついているため、システム全体の省電力に貢献します。

高性能リアルタイム処理向けRTOS「μC3/Standard」

μC3(マイクロ・シー・キューブ)/Standardは、μITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組込みシステム向けのRTOSです。高性能プロセッサがより高度なリアルタイム制御に耐えられるよう、割込み禁止区間を極力なくし、割込み応答性を最重要課題として設計したRTOSです。

ARM社の Cortex-A、Cortex-R、Cortex-Mシリーズだけでなく、Renesas社の RXシリーズなど、最新プロセッサに対応しております。

32/64bitの高性能プロセッサに最適化
割り込み応答性を高め、32/64bitの高性能プロセッサ向けに最適化されたμITRON4.0仕様のカーネル。
豊富なプロセッサ・サポート
業界随一のプロセッササポート実績があります。また、現在未対応のものでもお客様のご依頼に合わせて随時対応をさせていただいております。
マルチコア対応
RTOSとLinuxの共存を実現した「μC3+Linux」、AMP型のマルチコア拡張を追加した「μC3/Standard+M」などのラインアップもございます。
豊富なデバイスドライバを用意
μC3にて動作確認済みのオプション製品をご用意。I2C, SPI, GPIO, SDなどのデバイスドライバをオプションで用意。(UART, Timer, INTCはμC3に、EthernetドライバはμNet3に付属しています。)

The post μITRONとT-Kernel 国内におけるRTOSカーネル仕様について紹介 first appeared on クミコミ.

]]>
組込みシステムにおけるエッジAIとは?AIの概念やエッジ処理の特長を紹介 https://www.kumikomi.jp/edgeai/?utm_source=rss&utm_medium=rss&utm_campaign=edgeai Mon, 27 Feb 2023 00:00:39 +0000 https://stg.kumikomi.jp/?p=5050 「カメラモジュールとは?市場・用途・実装について紹介」の記事では、最後にAIでの実装について述べました。 普段の生活でも耳にすることが多い「AI」という言葉ですが、AIが何かを説明することはできるでしょうか。 この記事で […]

The post 組込みシステムにおけるエッジAIとは?AIの概念やエッジ処理の特長を紹介 first appeared on クミコミ.

]]>
「カメラモジュールとは?市場・用途・実装について紹介」の記事では、最後にAIでの実装について述べました。

普段の生活でも耳にすることが多い「AI」という言葉ですが、AIが何かを説明することはできるでしょうか。

この記事では、AIとは何かを確認したうえで、組込みで使用されるAIやエッジ処理について紹介していきます。

そもそもAIとは?

AI

AIの定義は専門家によっても異なり、「定義することはできない」としている専門家もいます。

専門家によるAIの定義

公立はこだて未来大学の中島秀之氏
「人工的につくられた、知能をもつ実態。あるいはそれをつくろうとすることによって知能全体を研究する分野」

東京大学の堀浩一氏
「人工的に作る新しい知能の世界」

慶應義塾大学の山口高平氏
「人の知的な振る舞いを模倣・支援・超越するための構成的システム」

大阪大学の浅田稔氏
「知能の定義が明確でないので、人工知能を明確に定義できない」

出典:株式会社トライエッティング「AI(人工知能)の定義とは?特徴や機能を徹底解説!」

総務省の「令和元年版 情報通信白書」でも下記のように述べられています。

AIに関する確立した定義はないのが現状である。あえていえば、「AI」とは、人間の思考プロセスと同じような形で動作するプログラム、あるいは人間が知的と感じる情報処理・技術といった広い概念で理解されている。

引用:総務省「令和元年版 情報通信白書(第1部 特集 進化するデジタル経済とその先にあるSociety 5.0)」

機械学習

AIの手法の一部として、「機械学習」があります。

総務省の「令和元年版 情報通信白書」では機械学習について下記のように述べられています。

機械学習(マシーンラーニング、ML)とは、人間の学習に相当する仕組みをコンピューター等で実現するものであり、一定の計算方法(アルゴリズム)に基づき、入力されたデータからコンピューターがパターンやルールを発見し、そのパターンやルールを新たなデータに当てはめることで、その新たなデータに関する識別や予測等を可能とする手法である。

引用:総務省「令和元年版 情報通信白書(第1部 特集 進化するデジタル経済とその先にあるSociety 5.0)」

機械学習には、教師あり学習・教師なし学習・強化学習の3つの分類があります。

機械学習

教師あり学習…入力データとデータ処理結果の正解(教師)を同時に与える。正解を参考に、他の入力データについの分類・識別や、今後の動向予測(回帰)をおこなう。
(活用例:画像や音声の認識、メールフィルタリング、翻訳、需要予測)

教師なし学習…入力データのみを与える。コンピュータは、データの共通項や法則性を独自に見つけ出してグループ化する(クラスタリング)。
(活用例:画像の高精細化や色彩の補正・着色、不良品の検知や設備トラブルの検出)

強化学習…入力データとコンピュータの出力結果に対する評価を与える。コンピュータは評価がもっとも良くなるよう判断し出力を調整する。
(活用例:囲碁や将棋などゲームのシミュレーション、エレベーターの制御)

参考:東日本電信電話株式会社 クラソル「機械学習と深層学習はどう違う?ビジネス有効活用のポイントを解説」
株式会社レッジ Ledge.ai「教師なし学習とは | 教師あり学習や強化学習との違い・活用事例・代表的なアルゴリズムを紹介」

ディープラーニング(深層学習)

さらに、機械学習の一部には、ディープラーニングとも呼ばれる「深層学習」があります。

総務省の「令和元年版 情報通信白書」では深層学習について下記のように述べられています。

深層学習とは、多数の層から成るニューラルネットワークを用いて行う機械学習のことである。深層学習という概念は、あくまでもこの多層的なニューラルネットワークに着目したものであるが、深層学習により、コンピューターがパターンやルールを発見する上で何に着目するか(「特徴量」という。)を自ら抽出することが可能となり、何に着目するかをあらかじめ人が設定していない場合でも識別等が可能になったとされる。

引用:総務省「令和元年版 情報通信白書(第1部 特集 進化するデジタル経済とその先にあるSociety 5.0)」

深層学習は、機械学習のうちニューラルネットワークと呼ばれる手法が進化した学習方法で、ニューラルネットワークの隠れ層(中間層)を多層化することで、より高度なデータ処理ができます。

以下が、機械学習(深層学習以外)と深層学習の主な違いです。

機械学習(深層学習以外) 深層学習
学習スピード 速い 遅い
学習データ量 少量でも可能 大量に必要
コンピューターに必要なスペック・処理力 深層学習ほどは高くない 高い
特長 用いるアルゴリズムの見当がついている場合は素早く結果を入手できる 人間には対応が難しい複雑な処理も可能

参考:東日本電信電話株式会社 クラソル「機械学習と深層学習はどう違う?ビジネス有効活用のポイントを解説」
参考:株式会社電算システム「機械学習と深層学習の違いとは?メリットや課題を挙げながら解説」

組込みで使われるAIとは?

それではいよいよ、AIの活用状況を見ていきましょう。記事を作成している2023年1月時点では、組込み機器開発において、エッジAIの利用が進んでいます。

エッジAIとは、AIを端末に搭載し、端末側で学習済みモデルを用いて推論をおこなってから、結果をクラウドに送信する仕組みです。

従来は、IoT機器やセンサーなどの端末から収集したデータをクラウドに送信してクラウド上で処理し、結果を端末に戻していました。しかしこのクラウドAIの手法では時間がかかり、リアルタイム性も担保されず、通信量コストもかさんでしまうという課題がありました。

高度化されたセンサーのデータ量は、2018年から2025年までに79兆4億GBと5.8倍まで増大するという予測もあり、クラウド側で一元処理するには、リアルタイム性やセキュリティ面、処理前のデータを大量に送る端末側のメモリサイズの問題がますます大きくなってしまいます。

そこで、クラウドAIと組み合わせて使用され始めたのがエッジAIです。

参考:JAPANSecuritySummit Update「組込みAIの基礎知識と、現状の課題を解決する最新ソリューションとは?」
参考:コネクシオ株式会社「クラウドAIとエッジAIとは? メリット・デメリットや違いを解説」

エッジAI処理とは?

AI

エッジAIの特長を紹介します。

特長1:リアルタイム性

AI処理を端末側で行うため、判断を出してから受け取るまでのタイムラグが発生せず、端末制御をリアルタイムでおこなえます。

特長2:通信コスト削減

端末側で保持している学習済みモデルで事前にデータを処理してから、結果データのみをクラウドへ送信します。そのため、推論に必要なすべてのデータを送るクラウドAIよりもデータ容量を抑えられ、通信コストを削減できます。

特長3:セキュリティ強化

エッジAIでは、学習済みモデルを基に端末で推論をおこない、結果データのみをクラウドへ送信します。推論に必要な個人が特定できるようなデータを、インターネットに経由させる必要がないため、セキュリティ面も強化できます。

留意点

一方で留意しておかなければいけない点もあります。

エッジAIで使用するCPUやGPUはクラウドAIに比べてスペックが低く、大容量のデータ処理には向きません。また、推論と学習の実行場所が異なるため、高度で複雑な処理にも制約があります。

さらに、端末にAIを搭載することでシステム設計や保守運用の難易度が上がり、導入ハードルが高いことにも注意が必要です。

これらのメリット・デメリットを理解したうえでエッジAIの活用を検討するとよいでしょう。

参考:JAPANSecuritySummit Update「組込みAIの基礎知識と、現状の課題を解決する最新ソリューションとは?」
参考:コネクシオ株式会社「クラウドAIとエッジAIとは? メリット・デメリットや違いを解説」

RTOSを使ったAI分析

組込みデバイスやモバイル端末上でAIを動かす際は、メモリや処理速度の制約や、デバイス独自の実装方法が存在するため、AIと組込み開発両方の知識が必要です。

開発にはリアルタイムOSであるRTOSが適しており、その中心部分であるカーネルが持つ主な機能の一つに、マルチタスク機構があります。マルチタスクとは、複数のタスクを並列に処理するために、CPUを仮想化、多重化するシステムのことですが、実際にはある時刻にCPUが実行できるのはひとつのタスクのみです。RTOSは、時分割で制御して複数のタスクの実行を疑似的に平行実行させる機構を持っています。RTOSを使うとAIをタスクとして処理ができます。

RTOSを使ったAI分析をおこないたい方は「組み込み用小型カメラを使いこなす Vol.3 ~カメラの画像をAIで判別する~」の記事も、ぜひご覧ください。

The post 組込みシステムにおけるエッジAIとは?AIの概念やエッジ処理の特長を紹介 first appeared on クミコミ.

]]>
機能安全とは?(2)組込みシステムにおける機能安全規格について紹介 https://www.kumikomi.jp/functional_safety_standards/?utm_source=rss&utm_medium=rss&utm_campaign=functional_safety_standards Fri, 09 Dec 2022 00:00:23 +0000 https://stg.kumikomi.jp/?p=4761 近年、組込み機器でも機能安全への意識が高まっています。機能の安全を評価する方法の一つとして、機能安全規格があります。 前回の記事では機能安全における必要な評価軸である「信頼性」と「安全性」について解説しました。今回は、組 […]

The post 機能安全とは?(2)組込みシステムにおける機能安全規格について紹介 first appeared on クミコミ.

]]>
近年、組込み機器でも機能安全への意識が高まっています。機能の安全を評価する方法の一つとして、機能安全規格があります。

前回の記事では機能安全における必要な評価軸である「信頼性」と「安全性」について解説しました。今回は、組込み機器における主要な機能安全規格である「IEC61508」と「SIL(ASIL)」について解説します。

組込み機器における機能安全規格

基本安全規格「IEC 61508」について

プロセス産業における電気・電子・プログラマブル電子(以下、E/E/PE)の機能安全に関する国際規格として、IEC(International Electrotechnical Commission:国際電気標準会議)が制定した基本安全規格「IEC 61508」があります。

IEC 61508は、製造、プロセス、輸送、医療、その他の業務に供される機器、機械類、装置、プラントなどにおけるリスクを軽減するために使用されるコンピュータ・ソフトウェアを含むE/E/PEによる安全性を高めるための機能安全規格です。

機能安全という考え方は、このIEC 61508を策定する段階で導入されています。化学プラントや原子力発電所の事故は、1986年に旧ソビエト連邦で起きたチェルノブイリ原子力発電所事故のように甚大な被害をもたらす可能性が高いです。しかし、電子システムは常に故障するリスクがあり、開発・操作する人間がミスを犯すこともあり得ます。このような条件では、本質安全の考え方だけで、安全を達成することはできません。そこで、電子システムに機能を追加し、何らかの故障やミスが発生した場合でも重大な被害の発生につながらないようにするという考え方が、機能安全の基礎になっています。

出典:株式会社リベルワークス「IEC61508」
出典:アイティメディア株式会社「「機能安全」の導入で何が変わるのか?」

各分野の下位規格

また、IEC 61508は各分野に共通する機能安全の規定を取り扱うため、各分野で要求される事項を個別に規定する下位規格が必要になってきます。そこで、産業機械に機能安全を適用するための「IEC 62061」、自動車分野の「ISO 26262」、医療分野の「IEC 60601」、家電分野の「IEC 60335」など、IEC 61508から派生した規格もつくられています。

出典:佐藤吉信、川島 興「機能安全規格 IEC 61508 の課題と改訂動向」

SILとASIL

機能安全規格の「IEC 61508」や「ISO 26262」などでは、リスクを許容可能なレベルに低減させる機能の実装に対して、実施すべき内容を示した指標があります。

IEC 61508では「SIL」、ISO 26262では「ASIL」を指標として用い、システム/ハードウェア/ソフトウェアの各作業における要求を確認していきます。

SILとは?

SILとは、安全度合いを決める尺度である安全度水準(Safety Integrity Level)のことです。

安全設計をおこなうためには、「ハザードの特定→リスクの見積・評価→リスク低減策決定」というサイクルを回して、許容可能なレベルまでリスクを低減していく必要があります。

実際の作業としては、安全関連系(SRS:Safety Related System、安全関連システム)の要件定義や設計をおこないます。安全関連系とは、制御対象の機器(EUC:Equipment Under Control)を安全な状態に移行したり、安全機能(safety function)を実行するサブシステムのことです。

システム全体に要求される安全機能を実現するため、各安全関連系には、それぞれに必要なSILが割り当てられます。SILは4段階で定められており、SIL4の要求が一番高く、最も安全性が高いといえます。

出典:ハートランド・データ株式会社「ハートランド・ザ・ワールド:「SIL」「ASIL」とは?機能安全規格の開発を始めるにあたり知っておきたいこと。
出典:社団法人 組込みシステム技術協会「組込み系技術者のための安全設計入門」

ASILとは?

ASIL

ASILとは、自動車安全水準(Automotive Safety Integrity Level)のことです。ISO 26262規格で定義されたリスク分類システムで、車の機能安全に関して安全性要件を定めています。

ASILは、暴露の確率、コントローラビリティ、シビアリティの3種のパラメータにより決定され、A~Dの4段階で表されます。自動車のハザードの程度が最も低いのがASIL-A、最も高いことを示すのがASIL-Dです。エアバッグ、アンチロック・ブレーキ、パワーステアリングなど、そのシステムが故障するとリスクが非常に高くなるものには、最も厳しい要件であるASIL-Dグレードが求められます。

ASILを決定する3つのパラメータ

暴露の確率(Exposure):ハザードに関連する動作の実行頻度を表すパラメータ
コントローラビリティ(Controllability):ハザードが発生したときにハザード回避、制御の可能性を表すパラメータ
シビアリティ(Severity):運転者や周辺の人命にどのような影響があるのかを表すパラメータ

出典:ハートランド・データ株式会社「ハートランド・ザ・ワールド:「SIL」「ASIL」とは?機能安全規格の開発を始めるにあたり知っておきたいこと。
出典:シノプシス「ASILとは」

RTOS認証について

近年の組込み機器への機能安全意識の高まりに対し、弊社イー・フォースでは自社製品のRTOS「μC3」の機能安全認証取得に向けて準備しています。

2022年10月現在、一般的にはまだ(RTOSを使用しない)ベアメタルでの取得が多いですが、「なぜ、イー・フォースは機能安全認証の取得をするのか」「機能安全認証の取得は実際にどのように進んでいるのか」について、アーキテクトLLCの支援をうけながら、全3回の動画で紹介していきます。

第1回『機能安全認証にRTOSって必要なの?』~機能安全RTOSが今後の機能安全認証のキーになる~
第2回『機能安全認証にRTOSって必要なの?』~機能安全RTOSと一般的なRTOSの違い~

機能安全認証RTOSと一般的なRTOSの機能面の違いは?

機能安全認証RTOSと一般的なRTOSについて、ユーザーにとっては、使いやすさなどの機能面における違いはほとんどありません。ただし機能安全認証RTOSでは危険側故障への対応が必要となるため、認証機関と一緒に相談しながら進めていくことになります。

この内容について、詳しくはこちら
第2回『機能安全認証にRTOSって必要なの?』~機能安全RTOSと一般的なRTOSの違い~ ③機能安全認証RTOSと一般的なRTOSの機能面の違いは?

いつ機能安全認証RTOSの導入を検討すべきか?

将来的に機能安全認証を取りたいと考えている場合、予め機能安全認証を取得しているRTOSを導入し、それを組込んだ機器の認証は追って取得することで、全体の認証取得期間を短縮することができます。認証を取得したいタイミングの1年前には機能安全認証RTOS導入をはじめるのがよいでしょう。

機能安全認証取得のポイントとして、設計自体が認証の対象になります。設計を始める前のコンセプト段階において、システムの安全性や信頼性を計画することも非常に重要です。

OS利用による危険側故障に対して、安全性に影響が出そうなものには事前のシステム設計が必要です。実際に設計をおこなう半年前、遅くとも2~3か月前にはOSを含めたシステム検討をおすすめします。認証機関と技術検証をして、確実にすすめていきましょう。

この内容について、詳しくはこちら
第2回『機能安全認証にRTOSって必要なの?』~機能安全RTOSと一般的なRTOSの違い~ ④いつ機能安全認証RTOSの導入を検討すべきか?

The post 機能安全とは?(2)組込みシステムにおける機能安全規格について紹介 first appeared on クミコミ.

]]>
機能安全とは?(1)機能安全の考え方やシステムの信頼性・安全性について紹介 https://www.kumikomi.jp/functional_safety/?utm_source=rss&utm_medium=rss&utm_campaign=functional_safety Fri, 02 Dec 2022 00:00:03 +0000 https://stg.kumikomi.jp/?p=4573 近年の組込みシステムの複雑化に伴い、機能安全の重要性はますます高まっています。その一方で、機能安全規格に準拠した組込みシステムのアプリケーション設計は、多くの時間とコストがかかるという現実もあります。 弊社イー・フォース […]

The post 機能安全とは?(1)機能安全の考え方やシステムの信頼性・安全性について紹介 first appeared on クミコミ.

]]>
近年の組込みシステムの複雑化に伴い、機能安全の重要性はますます高まっています。その一方で、機能安全規格に準拠した組込みシステムのアプリケーション設計は、多くの時間とコストがかかるという現実もあります。

弊社イー・フォースでは機能安全対応認証の取得を進めています。本記事では、組込みエンジニアの方向けに機能安全の考え方について、システムの信頼性と安全性などに触れながら紹介します。

本質安全と機能安全

本質安全と機能安全の違い

「本質安全」や「機能安全」という言葉を聞いたことはありますか。聞いたことがある方は、それらふたつの違いを説明できるでしょうか。

それぞれの定義を以下で確認してみましょう。

本質安全と機能安全

本質安全:機械や構造の変更などによって人間や環境に危害を及ぼす原因そのものを低減、あるいは除去することる
機能安全:機能的な工夫を組み込み、許容できるレベルの安全を確保すること

引用元:エイブリック株式会社「機能安全とは?」

本質安全と機能安全の具体例

踏切を例に挙げると、列車と車両・人とが衝突などの事故を起こさないために高架を作ったり、立体交差にする(=衝突するリスクそのものをなくす)のが「本質安全」です。一方、踏切に警報機や遮断機を設置して事故の可能性を減らす(=衝突するリスクを、許容できるレベルにする)のが「機能安全」です。

出典:エイブリック株式会社「機能安全とは?」

上記の違いから、「リスク自体を排除する本質安全がよさそう」と思われた方もいるかもしれません。しかし、実際には「すべての踏切をなくして立体交差点にする」「電車そのものをなくす」といった極端な対策をすぐに取れる訳ではありません。そのため、そのシステム(今回は電車)の利用によるリスクが想定される場合、そのリスクを回避するための仕組みやルールを作るというのが「機能安全」の考え方です。

例えば、自動車や洗濯機のチャイルドロック、家電を切り忘れた際のオートオフ機能なども機能安全の一部であり、このように我々の日常生活に根付いていると言えるでしょう。

出典:ミズカラ株式会社 コストダウンナビ「『本質安全』と『機能安全』のお話」

システムの信頼性と安全性

日常で私たちが使用する製品やサービスの多くは、システムによって制御されています。それらのシステムが誤作動を起こして、人や環境に危害を加えることはあってはなりません。

そのため、製品やサービスの開発者は、システムの信頼性や安全性について理解しておく必要があります。

システムの信頼性

何かの製品を購入する際、「信頼性」を基準に選ぶ人も多いでしょう。それでは、「信頼性のあるシステム」とは、どういうものでしょうか。

独立行政法人 情報処理推進機構 ソフトウェア・エンジニアリング・センターの出版物「組込みシステムの安全性向上の勧め」には、以下のように記されています。

通常、一つ一つのシステムは、それぞれが提供する機能や役割を持っています。システムのユーザが、そのシステムが提供する、こうした機能や役割を利用するときに、ユーザの期待どおりにシステムが動作すれば、そのシステムを「信じて頼る」ことができたこととなり、結果として、そのシステムの信頼性は、問題がないことになります。逆に、そのシステムが、当初、ユーザの期待したとおりに動いていたとしても、しばらくして動かなければ、そのシステムの信頼性は、問題があることになります。

(中略)

システム信頼性:機能単位が要求された機能を与えられた条件のもとで、与えられた期間実行する能力

引用:独立行政法人 情報処理推進機構 ソフトウェア・エンジニアリング・センター 「組込みシステムの安全性向上の勧め」

システムに関する評価指標の一つであるRASIS(レイシス)の5項目にも「信頼性」は含まれています。システムの故障しにくさを評価する指標であり、平均故障間隔を意味するMTBF(Mean Time Between Failure)を指標として判断します。MTBF=使用時間の和÷故障回数で、この値が大きいほどよいとされます。

出典:日経BP日経クロステック Active「信頼性と可用性は何が違う?」

システムの安全性

続いて、システムの安全性についてです。

自動ブレーキの誤作動による事故、金融システム不具合による決済遅延などのニュースを耳にしますが、このようにシステムが想定通りに動かない場合、ユーザや、さらに広範囲の人々に被害を及ぼします。

こちらについても、独立行政法人 情報処理推進機構 ソフトウェア・エンジニアリング・センターの出版物「組込みシステムの安全性向上の勧め」には、以下のように記されています。

システムは通常、それが動作することによって、ユーザその他になんらかの利益や効能をもたらすべきものです。しかし、システムが、誤動作などをすることによって、ユーザに不利益や危害をもたらすこともあります。システムの安全性とは、システムが結果として、ユーザに対してこうした不利益や危害をもたらすことのない度合いをさします。

(中略)

システム安全性:システムが規定された条件のもとで、人の生命、健康、財産またはその環境を危険にさらす状態に移行しない期待度合い

引用:独立行政法人 情報処理推進機構 ソフトウェア・エンジニアリング・センター 「組込みシステムの安全性向上の勧め」

「安全」という言葉はさまざまな場面で利用されています。市場の製品の多くにはソフトウェアが組込まれ、ますます高機能化・多様化していますが、便利になればなるほど、開発者は安全の視点に立った設計配慮を求められます。

安全な設計をおこうなうためには、製品に内在するハザードを特定して、リスクを明確にする必要があります。システムが高度になればなるほど、その重要度は高まります。

そして、この時に気を付けておきたいのは、「絶対的な安全というものはない」ということです。どんなに保護方策を講じてもある程度のリスクは必ず残り、その残ったリスクが利用者にとって許容可能なレベルまで低減されたと判断される場合に、「相対的に」安全であるといえます。安全は、リスクを認識して始めて実現できるものなのです。

出典:社団法人 組込みシステム技術協会「組込み系技術者のための安全設計入門」

信頼性と安全性の違い

ソフトウェアは無体物であり、物体のように磨耗や経年劣化がないため、信頼性と安全性が混同されることがあります。しかし、これらは分けて考える必要があります。

例えば、よく故障する製品があったとしても、その製品の故障が使用者を危険にさらすものでない場合、「信頼性は低いが安全性が低いわけではない」のです。

社団法人 組込みシステム技術協会の「組込み系技術者のための安全設計入門」では、JIS Z 8115 信頼性用語による信頼性と安全の定義が紹介されています。

信頼性と安全性の違いは下記のように理解していただくとよいでしょう。

信頼性と安全性

信頼性:アイテムが与えられた条件のもとで、与えられた期間、要求機能を遂行し、製品の機能を実現する能力。
安全性:製品の機能とは無関係に、リスクが許容可能な水準に抑えられている状態。

出典:社団法人 組込みシステム技術協会「組込み系技術者のための安全設計入門」
引用:JIS Z 8115 信頼性用語(ただし社団法人 組込みシステム技術協会「組込み系技術者のための安全設計入門」p. 17より一部引用)

機能安全対応認証について

近年、組込み機器でも機能安全認証取得への意識が高まっており、弊社イー・フォースでも自社製品のRTOS「μC3」の機能安全認証取得に向けて準備を行なっております。

機能安全規格は、安全機能の評価方法の一つです。安全機能に対して今回解説した「安全性」と「信頼性」の2軸の証明が必要となります。

次回は、組込み系における機能安全規格「IEC61508」、「SIL(ASIL)」について解説します。

イー・フォースがアーキテクトLLCの支援をうけ機能安全対応認証を実際に取得するまでのプロセスを全3回でご紹介する機能安全動画も公開中です。ぜひご覧ください。

第1回『機能安全認証にRTOSって必要なの?』~機能安全RTOSが今後の機能安全認証のキーになる~

The post 機能安全とは?(1)機能安全の考え方やシステムの信頼性・安全性について紹介 first appeared on クミコミ.

]]>
初心者でもわかる RTOS開発入門 (2) https://www.kumikomi.jp/rtos_beginner2/?utm_source=rss&utm_medium=rss&utm_campaign=rtos_beginner2 Fri, 15 Jul 2022 00:00:42 +0000 https://stg.kumikomi.jp/?p=3912 本記事は、eForceの【開発者から学べる入門ウェビナー】RTOS基礎編をベースとしています。今回はRTOS(リアルタイムOS)の代表的な機能である [ 時間管理 ]、[ スケジューラーの仕組み ]、[ マルチタスク機構 […]

The post 初心者でもわかる RTOS開発入門 (2) first appeared on クミコミ.

]]>
本記事は、eForceの【開発者から学べる入門ウェビナー】RTOS基礎編をベースとしています。今回はRTOS(リアルタイムOS)の代表的な機能である [ 時間管理 ]、[ スケジューラーの仕組み ]、[ マルチタスク機構 ] について解説します。

前回は [ RTOSの動作の仕組み ] や、[ RTOS上でのアプリケーション作成の流れ ]、[ μITRON(マイクロアイトロン)の概要 ] について解説しました。

初心者でもわかる RTOS開発入門 (1)


本記事でわかること

  • 時間管理:システム時刻管理 / 周期処理の機能
    ・定周期処理
    ・タイミング制御
  • スケジューラの仕組み
    ・優先度の高いタスクから実行
    ・最初に実行待ち状態に入ったタスクから実行(FCFS方式)
  • マルチタスク機構
    ・タスク単位での機能分割
    ・各タスクの優先度設定

RTOS入門:スケジューラーの仕組みとマルチタスク機構

1.時間管理 カーネルタイマ

時間管理の代表的な機能

μITRONは、カーネルタイマを利用して時間を管理しており、次の代表的な機能が利用できます。

処理遅延(dly_xxx)
自タスクをシステムコールが呼び出された時刻から指定される時間の間、待ち状態に遷移させます。

周期起動  (cyc_xxx)
システムを構築する際に一定時間毎に何らかの処理をしたい時に利用します。
周期ハンドラは一定周期で起動されるタイムイベントハンドラです。

タイムアウト (txxx_xxx)
OSの機能を利用するためにシステムコールで呼び出しを実行後、指定時間が経過しても処理が実行されなかった場合にタイムアウトを行います。

アラーム (alm_xxx)
時間経過の監視に用います。タスクでアラームをセットし、指定時間内に次の呼び出しが行われない場合などに、RTOSが指定した関数を呼び出します。

システムコール(API)の名称

システムコールとは実行中のプログラムがOSの機能を呼び出すために使用する仕組みのことです。また、その命令や関数などのAPIをさします。

xxx_yyy XXXの部分が操作の種類を表す。YYYの部分が操作の対象(オブジェクト)を表す。
fxxx_yyy 強制を示す。
ixxx_yyy タスクコンテキスト以外から使用するシステムコール。μ3Cの場合は、iがつくシステムコールもつかない場合と同じ実装。
pxxx_yyy ポーリング。待つ可能性がある場合はタイムアウトエラーでリターン。
txxx_yyy 待ちに入る場合、指定された時間まで待つ。時間が経過しても処理が完了しなければタイムアウトエラーでリターン。
vxxx_yyy インプリメント依存を示す。

2.マルチタスク機構

マルチタスク機構とは

カーネルが持つ主な機能の一つに、マルチタスク機構があります。マルチタスクとは、複数のタスクを並列に処理するためにCPUを仮想化、多重化するシステムのことですが、実際にはある時刻にCPUが実行できるのはひとつのタスクのみです。RTOSは、時分割で制御して複数のタスクの実行を疑似的に平行実行させる機構を持っています。

マルチタスク機構は、大きくわけて以下の2つで構成されています。

・スケジューリング
・コンテキスト切替

これよりスケジューリングを解説し、コンテスト切替は5章で解説します。

μITRONとT-Kernel 国内におけるRTOSカーネル仕様について紹介

LEDの点滅処理で時間管理を考える

時間管理の実例としてLED点滅のサンプルを示します。Task Aは、実行状態、実行可能状態、待ち状態の三つの状態があり、LED点灯処理(実行状態)→dly_tsk(待ち状態)→イベント→実行可能状態→LED消灯(実行状態)→dly_tsk(待ち状態)→イベント…と繰り返すことによりLEDを点滅させています。

タスクの状態遷移とディスパッチ

eForce社のRTOS μC3/Compactにおいて、基本の状態遷移は4つの状態で表すことができます。

μC3の無償評価版はこちらから
▶︎ダウンロード

実行状態(RUNNING):現在タスクが実行中の状態
実行可能状態のタスクの中で最も優先順位の高いタスクの状態

実行可能状態(READY):実行可能になった状態
タスクを実行する条件は整っているが、当該タスクより優先度の高いタスク
または同一優先度で先に実行可能状態となったタスクが実行状態のため実行できない状態

待ち状態(WAITING):待ち解除の条件が満たされるのを待っている状態
条件が満たされると実行可能状態に遷移

休止状態(DORMANT):タスクが起動されるのを待っている状態
タスクの起動前、および タスク終了後の状態

LED点滅制御における具体的な遷移は以下の動画でわかりやすく解説しております。
▶︎【基礎編】RTOSとは?(19:40 – 24:00)

3.スケジューラーの仕組み

タスクの優先度とレディーキュー

実行可能状態における優先順位と優先度の関係図を示します。
タスクは休止状態から起動し、実行可能状態に遷移します。OSはタスクの状態を監視し、スケジューリングに従ってプロセッサが実行するタスクを切り替える
ディスパッチが実行されます。ディスパッチが実行しない状態では、次のディスパッチが実行するまで保留されます。この間に、複数のタスクが実行可能状態になる場合を考えます。

実行可能状態に遷移したタスクはレディーキューに登録されます。レディーキューとは、実行可能状態にあるタスクのつながる行列を指します。全てのタスクには優先度が与えられており、複数の実行可能状態のタスクがある場合、最も高い優先度タスクからディスパッチにより実行状態に遷移します。

同一優先度のタスクが複数存在する場合は、先にレディーキューに並んだ順でタスクを実行します(FCFS方式)。また、スケジューラーの機能には、プリエンプト・ディスパッチがあります。これは、実行中のタスクを中断して、優先度の高い別のタスクに差し替えることを指します。例えば、もしタスクCが現在のタスクFよりも優先順位が高い場合、タスクFの実行権を取り上げ、タスクCに実行権を与えることができます。

タスクの優先度とレディーキューについては以下の動画でわかりやすく解説しております。
▶︎【基礎編】RTOSとは?(24:00-27:10)

RTOSの動作開始

RTOSなしの場合、CPUを起動させるブート処理や初期化を行った後に各処理を実行させますが、RTOSを動作させる際にはブート処理・初期化とタスク実行の間に中間の処理が必要となります。


具体的には上図のように、ユーザがメイン関数内にタスク処理からタスク起動までの一連の処理を作成する必要があります。ITRONでは、タスク生成情報などをコンフィグレーションと呼ぶ処理で実際のコードや変数として生成することが可能です。eForceの一部のパッケージ製品ではベースコードを自動で生成するコンフィグレータが付属しており、RTOS導入のサポートをします。

同期処理:優先度の設定も併用

同期処理とは、タスクの状態を直接的に操作してタスク間の同期を行う処理です。一例として、ゲームのコントローラのボタンが押された際にパンチをする動作を参考に考えてます。パンチをする動作のTask Bは通常wai_flgで待ち状態に設定されています。ボタンが押された際に割り込みサービスルーチンが起動し、イベントフラグ(i)set_flgで待ち状態が解除されます。Task Bの優先度が高いため即時実行状態になり、パンチを実行します。

4.イベントフラグの動作紹介

条件待ち合わせ

マルチタスク処理では、各タスクは必要なイベントが発生するまで待ち状態となります。そのため、イベントが発生した時に待ち状態を解除する動作が必要となります。イベントフラグとは、イベント(事象)をフラグの有無(ビットのON/OFF)という組み合わせで表現し、タスク間やタスクと割込みサービスルーチン間で通知するための機能です。

上記の画像のように各タスクに機能を割り当てた場合を考えます。コントローラを操作すると、割り込み処理が発生し、その操作に応じてイベントフラグが通知されます。赤いボタンが1ビットめ、黄色のボタンが2ビットめと予め定義し、受け取り側では対応するビットがONになるのを待ちます。これにより複数ボタンに応じた処理を構築でき、上図だと最大32種類のイベントを割り当てることができます。

優先度ベースのRTOSならではのメリット

上図は、タスクの状態遷移を時系列で示したものです。dly_tskなどのシステムコールを使って待ち状態にすると、タスクの切り替えが起こります。タスクの優先度は1が最も高く、数が多いほど優先度が下がります。図のように、低い優先度のTaskCは、TaskAとTaskBが待ち状態となることで初めて実行状態になります。また、先ほどのパンチの例では、コントローラが押されたときにiset_flgが呼び出され、TaskBが実行されてパンチをします。

イベントフラグの動作について以下の動画でわかりやすく解説しております。
▶︎【基礎編】RTOSとは?(28:45-34:20)

タスクスケジューリングの詳細例

イベントが発生してシステムコールを使うと、タスクの切り替わりが発生します。

Task Aが待ち状態になった後のTask BとTaskCの動きを時系列で見ることができます。Task Bがイベントフラグによって待ち状態が解除される場合のタスク遷移を、5つのステップで説明します。

(1) (2) (3) (4) (5)
TaskB
優先度1
B1
待ち状態
B2
待ち解除
B3
実行可能状態
B4
ディスパッチ
B5
実行状態
TaskC
優先度2
C1
実行状態
C2
実行状態
C3
実行状態
C4
プリエンプト
C5
実行可能状態

(1)  Task Bが待ち状態、Task Cが実行状態です。
(2)  イベントフラグの待ち解除によって Task Cが実行可能状態に遷移します。
(3)  Task Bが実行可能状態となります。ここでは Task B3(実行可能状態)> Task C3(実行状態)と優先度の不均衡がおこります。
(4)  (3)で優先度の不均衡が発生したことから、スケジューラーによってTask Bを実行可能状態から実行状態にディスパッチし、
Task Cを実行状態から実行可能状態にプリエンプトします。
(5)    Task C5(実行可能状態)< Task B5(実行状態)となり優先度が均衡となります。これでTask BとTask Cの状態遷移が行われています。

詳細な動きは以下の動画でわかりやすく解説しております。
▶︎【基礎編】RTOSとは?(35:20-38:0)

RTOS動作(タスクスケジューリング)のまとめ

ポイント
  • タスク優先度は1が最高で、数が大きいほど低くなる
     参考例(μC3/Compact:1~16)(μC3/Standard:1~31)
        ※ eForce製品での設定範囲
  • システムコールを呼ばなければ低優先度のタスクに状態が遷移しなくなる可能性がある
  • プリエンプト・ディスパッチにより、RTOSがタスク切替を実施
  • タスク間協調:複数のタスクが連携してシステムを構築

μC3の無償評価版はこちらから
▶︎ダウンロード

5.コンテキスト切替

コンテキストの切替・概要

RTOSではイベントによってタスクの切り替え(ディスパッチ)が起こることがあります。タスク内に記述されたアプリケーションはタスク切り替えを意識せずに作成されてます。

図はタスクの切り替わりの例を示しています。現在実行中のTask Aは状態を保存し、待ち状態などに遷移します。かわりに実行状態になるTask Bでは前回待ち状態となった時の状態に復帰し、ディスパッチなどが実行されます。

RTOSでのプログラム実行環境はコンテキストと呼ばれ、タスクやタイムイベントハンドラ、割り込みハンドラごとにそれぞれ持ちます。コンテキストを切り替える場合、CPUのプログラムカウンタ(PC)、スタックポインタ(SP)、汎用レジスタ(REG)など必要なレジスタ情報などをスタック空間に保存する必要があり、再開時に保存した情報を復元し実行を再開します。

スタック領域を準備する


コンテキストの切り替えにはスタック領域という、実行中のタスクの状態をすべて保存するための専用のメモリ領域が必要となり
ます。スタック領域はアプリ作成時に定義する必要があり、タスクで使用する変数とレジスタを保管するための十分な容量を持っている必要があります。

スタック領域の定義が不足し、実際の使用量を上回ることをスタックオーバーフローと呼びます。スタックオーバーフローはシステム全体にとって致命的なエラーとなり、原因究明も困難となるため、ユーザは必要なスタック領域を見積もり、適切に指定する必要があります。

タスク間協調処理

RTOSでは各機能ごとにタスクを実装し、優先度が割り当てられます。複数タスクを並行処理する場合、タスク間で連携動作させたり、タスク間での情報交換をするタスク間の協調が必要となります。

本記事では、タスク間の協調の例としてイベントフラグに焦点を当てました。μITRONで定義されいる他の機能についても下図に示します。

種類 特徴 μITRONによる手段(例)
排他 資源待ち合わせ セマフォ、(ミューテックス)など
同期 条件待ち合わせ イベントフラグ
通信 タスク間でのデータ交換 データキュー、メールボックス(メッセージバッファ)

動画資料をご覧になりたい方へ

動画資料をご覧になりたい方はこちらからダウンロード可能です。

The post 初心者でもわかる RTOS開発入門 (2) first appeared on クミコミ.

]]>