Easy, Powerful, Modern

The world’s most trusted PCB design system.

Filter
0 Selected Tags by Type 0 Selected 全て Software 0 Selected 全て Clear ×
Clear
0 Selected Tags by Type
0 Selected Software
DevOpsを組み込みシステムで使い始める方法:ATmega328Pを使用して DevOpsを組み込みシステムで使い始める方法:ATmega328Pを使用して DevOpsとアジャイル手法は、コラボレーション、自動化、および継続的な改善を重視することでソフトウェア開発を変革しました。DevOpsの原則を私の設計とプロジェクトに適用することは、効率と信頼性を高めるゲームチェンジャーとなりました。この記事では、 既存の組み込みシステムプロジェクトの継続的インテグレーション(CI)ワークフローを設定する方法を説明します。このプロジェクトは ATmega328Pマイクロコントローラを使用しています。この記事の終わりまでに、これらの実践が開発プロセスを合理化し、より高品質な製品を提供する方法を見ることができます。 組み込みシステムのためのDevOpsとアジャイルを理解する DevOpsは、ソフトウェア開発(Dev)とIT運用(Ops)を連続的な流れに統合する、ソフトウェア界で人気のある一連の実践です。ソフトウェア界では、ソフトウェアを開発し、「壁を越えて」運用担当者に顧客への展開を任せるのが一般的でした。DevOpsは、その壁を取り除くだけでなく、プロセス全体を自動化する方法を導入しました。ハードウェアの世界では、製品開発と生産の間に類似点があり、設計を製造エンジニアリングチームに「壁を越えて」投げ、生産の準備が整うように常に確認します。 組み込み製品設計では、ソフトウェアを生産を通じて進める必要がありますが、これまで以上に迅速に動き、可能な限り最高の品質で提供するという課題に直面しています。DevOpsの原則を用いることで、これらの課題のいくつかを解決することを目指しています。 ハードウェアの依存性: 組み込みシステムはハードウェアとそれらのPCBの特定のリビジョンに依存しています。これは、自動化され高度にスケーラブルになるように合理化されていない場合、テストと展開を複雑にする可能性があります。DevOpsの実践は、ハードウェアとソフトウェアの両方に同じセットアップを使用し、自動化された継続的インテグレーション(CI)システムを通じてこれらのプロセスを自動化することで助けます。 長いビルド時間: 組み込みソフトウェアのビルドは設定が難しく、ビルド時間が長くなることがあります。CIは、ビルドをクラウドにオフロードすることでこのプロセスを自動化し、加速します。これにより、通常開発者がアクセスできないより強力なインスタンスを利用できます。 手動テスト: 実際のハードウェアでのテストは不可欠ですが、しばしば手動で、退屈で、時間がかかります。ハードウェア・イン・ザ・ループ(HIL)テストを通じた自動化は、効率と精度を向上させ、CIシステムで設定された自動テスト機器のセットアップにオフロードすることができます。 DevOpsの原則を適用することで、ビルド-テスト-デプロイのパラダイム内でアジャイル手法を使用して迅速に反復し、生産にリリースしたい追加機能ごとに進めることができます。 全体の仕組み 「ビルド、テスト、デプロイ」という言葉は、DevOpsを議論する際によく耳にする一般的な言葉のセットです。組み込みシステムでは、私たちも同じことを行います。なぜなら、私たちのデプロイメントも製造(そして最終的な顧客)に向けて行われるからです。 プロジェクトのリポジトリでは、組み込みDevOpsのエンドツーエンドのワークフローを推進するためにGitlab CIを使用しています。私たちは「パイプライン」と呼ばれるものを使用して、ソフトウェアのコンパイル、ターゲット上でのテストの実行、または公式パッケージとしてのリリースなど、特定のタスクを達成するジョブを作成します。Gitlabでは、パイプラインはこのような順序で実行されるジョブの集合です: 図1: GitlabのATmega328P DevOpsワークフローで使用されるパイプラインの例
エンベデッドシステムのアーキテクチャ:製品に複数のPCBがある場合 Altium Designer Projects 組み込みシステムのアーキテクチャ:製品に複数のPCBがある場合 組み込みシステムは、今日の技術主導の世界で至る所に存在します。インターネットに接続されたシェーバーであれ、複雑な自動車であれ、私たちが今日使用しているほとんどの電子デバイスの中心には組み込みデバイスがあります。1つまたは複数のマイクロプロセッサで構成される組み込みシステムは、複雑さをソフトウェアによって処理させることで、電子機器を簡素化することができます。組み込みデバイスが大きく複雑になるにつれて、プリント回路基板(PCB)も同様に大きく複雑になります。しばしばこれらのデバイスは複数の基板に成長し、当初意図されたよりも大きなアセンブリになることがあります。 この記事では、複数のPCBで構成される組み込みシステムのアーキテクチャのトレードオフと考慮事項について見ていきます。複数のPCBシステムに関連する利点、設計上の考慮事項、および課題について説明します。 なぜ複数のPCBを使用するのか? デバイスを単一のPCBに保つことが理想的な選択肢です(単純さとコストの両方のために)、しかし、設計目標を達成するためには、設計を2つ以上のPCBに分割する必要があることもあります。製品を複数の基板に分割したい理由のいくつかは以下の通りです: モジュラリティ: アセンブリを複数の基板に分けることで、必要に応じて製品の一部だけを交換できます。例えば、単一のPCBが故障した場合、システム全体に影響を与えることなく交換することができます。これは、正しく行われた場合、製造業者のコストと時間を削減することができます。 スペースの最適化: 複数の基板にコンポーネントを分割することで、デザイナーはよりコンパクトで効率的なレイアウトを実現できます。パッケージングのために高さが問題にならない場合の、非常に長く狭い単一の基板と比較して、いくつかの短く積み重ねられた基板を考えてみてください。 熱管理: 多くの熱を発生させるコンポーネントは、熱の放散を改善するために異なるPCBに分割することができます。アセンブリ全体にわたって熱を均等に分散することで、システムの信頼性を大幅に向上させることができます。 スケーラビリティ: 複数のPCBを使用して設計することで、単一の基板で交換可能なインクリメンタルな機能追加が可能になります。全体のコンピューティングシステムを交換することなく、アップグレードされたセンサーやカメラを考えてみてください。 これらの理由(およびその他)から、複数のPCBで構成されるアセンブリを設計することを考慮しますが、組み込みファームウェア側の課題も複雑さを持っています。 複数のPCBアセンブリのための組み込み設計の考慮事項 複数のPCBを使用する場合(該当する場合)のケースを確立した今、組み込みシステムをアーキテクチャする際の設計上の考慮事項を理解することが重要です。ハードウェアとソフトウェアの両方の観点から、単一の基板にすべてを載せるときにはあまり慎重に考慮しないニュアンスがあります。 最初に頭に浮かぶべき考慮事項は、ボード間通信です。各ボードはどのようにして互いに通信するのでしょうか?どのような処理能力(もしあれば)が各ボードに存在するのでしょうか?もしかすると、1枚のボードが脳の役割を果たし、他のボードがセンサーの役割を果たしているのかもしれませんね。I2C、SPI、UART、Ethernetなど、慎重に伝送プロトコルを選び出す際には、伝送線、信号の整合性、そして最も重要な、ボード間コネクタを通じた信号の伝送も考慮しなければなりません。設計者にとって最悪なこと(そして信じてください、私もそこにいました)は、システム全体を設計し、製造業者からPCBを受け取った後で、クロック信号を1つや2つ見落としていたことに気づくことです。また、ボード間コネクタのスペアピンを確保することを忘れがちで、ピン数を最大限に活用しようと試みます。これは最終的に私たちを苦しめることになります。 Altium Designerのマルチボードアセンブリ機能のように、多数の通信ラインをPCB間でルーティングする際には、マルチボードプロジェクトを念頭に置いて設計することが必須です。 また、特にマイクロプロセッサで電力バスを監視する場合、電力の分配方法についても考える必要があります。「脳」へのアクセスを容易にして、任意の壊滅的なイベントを監視できるようにしたいですが、スイッチング供給のノイズ、重負荷のための電力分配、そしてボード間コネクタのピンがその種の電力に耐えられるかどうかも考慮する必要があります。 最後に、組み込みシステムのソフトウェア自体とは直接関係ありませんが、機械設計も重要な役割を果たします。プッシュボタン、タッチスクリーン、およびその他のユーザーへの物理的インターフェースは、マイクロプロセッサに接続されており、考慮されなければなりません。配線はマイクロプロセッサが入力にアクセスできるようにルーティングできるでしょうか?ボード間を通過する際の高速デジタル出力の信号整合性を考慮しましたか?これらは、組み込みデバイスを設計する際に考えなければならないことです。
Altium Need Help?