精密PCB製造、高周波PCB、高速PCB、標準PCB、多層PCB、およびPCBアセンブリ。
最も信頼性の高いPCB&PCBAカスタムサービスファクトリー。
PCB技術

PCB技術 - 組み込みPCBマザーボード用の複数のヒント

PCB技術

PCB技術 - 組み込みPCBマザーボード用の複数のヒント

組み込みPCBマザーボード用の複数のヒント

2021-11-06
View:360
Author:Will

正式に埋め込まれる PCBマザーボード設計 そして、開発エンジニアは難しいプロセスです, システムのあらゆるビットとバイトを維持し管理するために開発者を必要とする. よく規制された開発サイクルから厳しい実装とシステム検査まで, 高信頼性組み込みシステムの開発には多くの技術がある. 今日, 私は簡単に動作し、長い間使用できる7つのPCB技術をご紹介します. 彼らは、システムがより確実に実行して、異常な行動を捕えるのを確実にするのに非常に役に立ちます.

ソフトウェア開発者はしばしば、人々の非常に楽観的なグループです。マイクロコントローラがアプリケーション空間から飛び出して、予期しないコード空間で実行するのは非常に珍しいようです。しかし、この出来事のチャンスはバッファオーバーフローまたは間違っているポインタが参照を失うことである。それは起こる!メモリ空間がデフォルトで0 xffであるか、通常、メモリ領域が書き込まれないので、値は神に知られるかもしれません。

しかし、そのようなイベントを特定し、それらからシステムを回復するのに役立つことができる全く完全なリンカまたはIDE技術があります。トリックは、既知のビットパターンで未使用のROMを埋めるためにFillコマンドを使用することです。使用されていないメモリを埋めるには、使用することができる多くの異なる組み合わせがありますが、より信頼性の高いシステムを構築する場合は、最も明白な選択は、これらの場所にISRの障害ハンドラを配置することです。システムにおいて何かがうまくいかず、プロセッサがプログラム空間の外でコードを実行し始めるならば、それはISRをトリガーし、修正動作を決定する前にプロセッサ、レジスタ、およびシステム状態を保存する機会を提供する。

PCBボード

埋め込まれたエンジニアのための大きな利点は、私たちのIDEとツールチェーンが自動的にアプリケーションまたはメモリ空間チェックサム(チェックサム)を生成することができます、それによって、アプリケーションがこのチェックサムに基づいて無傷であるかどうか確かめることです。興味深いことに、これらのケースの多くで、チェックサムはプログラムコードがデバイスにロードされるときだけ使用されます。

しかし、CRCまたはチェックサムがメモリに保持されている場合、アプリケーションがまだ起動時に無傷であることを確認する(または長期的なシステムのために定期的にさえ)、予期しないことが起こらないようにするための優れた方法です。最近では、プログラムされたアプリケーションの変更の確率は非常に小さいですが、数十億マイクロコントローラを毎年提供し、潜在的に厳しい作業環境を考慮すると、医療機器アプリケーションのクラッシュのチャンスはゼロではありません。より可能性があるので、システムの欠陥はあるセクタにおいてフラッシュライトまたはフラッシュ消去を引き起こす可能性があり、それによってアプリケーションの整合性を破壊する。

起動時にRAMチェックを行う

より信頼性のある、しっかりしたシステムを構築するためには、システムハードウェアが正常に動作するようにすることが非常に重要です。結局、ハードウェアは失敗するでしょう。(幸いにも、ソフトウェアは決して失敗しません、ソフトウェアはそれが正しいか間違っているかどうか、コードがすることを望むだけです)。起動時に内部または外部RAMに問題がないことを確認することは、ハードウェアが期待通りに動作できることを保証する良い方法です。

RAMチェックを行うための多くの異なった方法があります、しかし、一般的な方法は既知のパターンを書いて、それからそれを読む前に短い期間待ちます。結果は、あなたが読むものがあなたが書くものであるべきです。実際には、ほとんどの場合、RAMチェックが渡されます。しかし、チェックが通過しない可能性は非常に小さい可能性があり、ハードウェアの問題を示すための優れた機会を提供します。

スタックモニタの使用

多くの組み込み開発者のために、スタックはかなり神秘的な力のようです。奇妙なことが起こり始めたとき、技術者はついに困惑し、彼らはスタックで何が起きているのかを考え始めた。その結果、スタックのサイズや位置などをまともに調整できます。しかし、エラーはしばしばスタックに関連しません、しかし、どのように、それは確かにありえますか?結局、何人のエンジニアが実際に最悪ケーススタックサイズ解析を実行しましたか?

スタックサイズはコンパイル時に静的に割り当てられますが、スタックは動的に使用されます。コードが実行されるように、変数、リターン・アドレスおよびアプリケーションによって、必要な他の情報はスタックに連続的に格納される。この機構は、割り当てられたメモリ内でスタックを連続的に成長させる。しかし、この成長は時々コンパイル時に決定される容量限界を超えて、スタックが隣接した記憶領域のデータを破壊する原因になる。

スタックが適切に動作していることを確実に保証する一つの方法は、システムの「健康」コードの一部としてスタックモニタを実装することです。スタック・モニタは、スタックと「他の」メモリ領域との間のバッファ領域を作成し、既知のビットパターンでそれを塗りつぶす。その後、モニタは継続的にパターン内の任意の変更があるかどうかを監視します。ビットパターンが変わるならば、それはスタックがあまりに大きくなりすぎて、システムが暗闇地獄に押されることになっていることを意味します!このとき、モニタは、事象の発生、システム状態、および将来の問題診断のための他の有用なデータを記録することができる。

スタック・モニタは、メモリー保護装置(MPU)を実行する大部分のリアルタイムオペレーティングシステム(RTOS)またはマイクロコントローラ・システムにおいて、提供される。恐ろしいことは、これらの関数がデフォルトでオフになっているか、または開発者によって意図的にオフにされることです。インターネット上の迅速な検索は、多くの人々がフラッシュメモリの空き容量などの56バイトを節約するために、リアルタイムのオペレーティングシステムでスタックモニタをオフにすることを示唆していることを明らかにします。

MPUを使う

過去に, it was difficult to find a memory protection unit (MPU) in a small and cheap microcontroller, しかし、この状況は変化し始めた. 今ではハイエンドからローエンドまでのマイクロコントローラは既にMPAT, そして、これらのmpus PCBソフトウェア ファームウェアのロバスト性を大いに改善する機会を持つ開発者.

MPUはメモリ空間を確立するために、オペレーティングシステムと徐々に結合されており、処理が分離されているか、またはタスクがストアドされることを心配せずにコードを実行することができます。何かが起こるならば、制御されない処理はキャンセルされます、そして、他の保護処置は実行されます。この種のコンポーネントでマイクロコントローラに注意してください。

強力な監視システムを構築する

あなたが頻繁に見つける常に好きなウォッチドッグの実装の一つは、ウォッチドッグが有効になっている(これは良いスタートです)が、また、ウォッチドッグがクリアされている場所に定期的なタイマーを使用することができますタイマーの活性化は完全にプログラムで発生するあらゆる状況から隔離されます。ウォッチドッグを使用する目的は、エラーが発生した場合、ウォッチドッグがクリアされないことを保証するのを助けることです。つまり、ワークが中断された場合、システムは回復のためのハードウェアリセットを実行するよう強制されます。システムアクティビティから独立したタイマーを使用すると、システムが失敗してもウォッチドッグはクリアされたままになります。

どのようにアプリケーションタスクをウォッチドッグシステムに組み込み、組み込みPCBマザーボード開発者は慎重に検討し、設計する必要があります。例えば、特定の期間の範囲内で実行する各々の仕事がそれらが正常にその仕事を完了できることを示すために実行できるテクニックがあることができる。この場合、ウォッチドッグはクリアされず、リセットされる。また、いくつかのより高度な技術は、外部のウォッチドッグプロセッサの使用など、主なPCBプロセッサの動作を監視するために使用することができるように、逆も同様です。信頼性の高いシステムでは,強力なウォッチドッグシステムを確立することが非常に重要である。

揮発性メモリ割り当てを避ける

限られた資源で環境で働くのに慣れていないエンジニアは、彼らのプログラミング言語の特徴を使用しようとするかもしれません, これは、揮発性PCBメモリの割り当てを使用することができます. 結局, これは PCB技術 計算機システムでしばしば使用される. 計算機システム, メモリは必要なときだけ割り当てられる. 例えば, Cで開発するとき, エンジニアは、ヒープの上でスペースを割り当てるためにmallocを使用する傾向があります. 実行される操作があります. 完了, あなたは、ヒープの使用のために割り当てられたメモリを返すために、自由に使用できます.