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

PCB技術 - 経験の10年は組み込みシステム(ARMプラットフォームに基づく)を学ぶ方法をあなたに教えます

PCB技術

PCB技術 - 経験の10年は組み込みシステム(ARMプラットフォームに基づく)を学ぶ方法をあなたに教えます

経験の10年は組み込みシステム(ARMプラットフォームに基づく)を学ぶ方法をあなたに教えます

2021-08-21
View:388
Author:IPCB

ハードウェアに関しては、CPUベースの周辺機器をCPUチップに統合する。例えば、X 86アーキテクチャに基づく初期のコンピュータでは、CPUは演算ユニットとアキュムレータの機能を持っています、そして、すべてのチップは外部ブリッジを構築することによって拡大される必要があります。実現、シリアルポート等は、外部の16 C 550 / 2シリアルポートコントローラチップによって実現され、現在のシリアルポートコントローラチップは既にCPUに組み込まれており、PCはグラフィックスカードを有し、ほとんどの組み込みプロセッサはすべてLCDコントローラを持っているが、ある意味ではグラフィックスカードに相当する。インテルXScaleアーキテクチャのような比較的ハイエンドのARMの下のIXPネットワークプロセッサCPUは、PCIコントローラを統合します(これは4台のPCIスレーブデバイスをサポートしたり、CPIスレーブデバイスとして自分自身を構成することができます)。また、他のNPEネットワークプロセッサエンジンがDSLをサポートする間、それは2つのMACアドレスに対応します。phyチップを外部に追加する限り,dslインターネットアクセスを実現できる。IXPシリーズの最高周波数は1.8 G、サポート2 Gメモリ、1 G * 10または10 G * 1イーサネットポートまたはfebreチャンネルの光学チャネルに達することができます。IXPシリーズは、XSystemsになることを目指す最高のプロセッサでなければなりません。


ソフトウェアの先頭から、カスタムオペレーティングシステムカーネルでアプリケーションを選択し、コンパイル後にカーネルをダウンロードします。オペレーティングシステムのカーネルをカスタマイズするときに選択されたアプリケーションコンポーネントは、ソフトウェアの「埋め込み」を完了することです。例えば、Winceがカーネルをカスタマイズするとき、WordPad、PDF、MediaPlayなどの対応する選択肢があります。選択した場合は、CEの起動後、インターフェイスでこれらのことを見つけることができます。それが前のPCのWindowsオペレーティングシステムであるならば、ほとんどのものは再インストールされる必要があります。


ソフトウェアカーネルやアプリケーションファイルシステムを組み込みのシステムハードウェアプラットフォームのROMに書き込む。

上記の定義は、私が6年か7年前に埋め込まれたシステムの理解に集中していた定義です。本の中に多くの定義がありますが、この分野では、誰も彼らの定義は非常に正確であると言うことを敢えて。はい、これらの専門家や学者を含め、すべての組み込みシステムは、コンピュータの分野で包括的な科目です


組込みシステムの階層的および専門的分類

埋め込みシステムは4層,ハードウェア層,ドライバ層,オペレーティングシステム層,アプリケーション層に分けられる。

ハードウェア層は組み込みシステム全体の基礎です。マイクロコントローラとインターフェースに精通していて、Cとアセンブリ言語でプログラムされることができるならば、埋め込まれたシステムのハードウェア層から歩くのは比較的簡単です、そして、ハードウェア層もドライバーです。レイヤーに基づいて、優れたドライバーエンジニアはハードウェアの回路図を理解して、自分でCPLDの論理設計を完了することができなければなりません。同時に、彼はオペレーティングシステムのカーネルとそのスケジューリングにかなり慣れている必要があります。しかし、ハードウェアプラットフォームは基礎です、そして、付加価値はソフトウェアに依存します。

ハードウェア層は、エレクトロニクス、通信、自動化、メカトロニクス、および情報工学を専門とする人々に適しています。マスタリングする必要がある基本的な専門知識は、原理とマイクロチップの単一チップマイクロコンピュータ技術、原理とインターフェイス技術のインターフェイスとC言語が含まれています。


ドライバ層。この部分はもっと難しい。ドライバエンジニアは、回路図を理解できるだけでなく、オペレーティングシステムのカーネルに非常に熟練している必要があります。その結果、他のタスクを実行することができず、オペレーティングシステムのカーネルアーキテクチャとリアルタイムスケジューリングを理解できず、スタイルを記述する良いドライバを持っていません。ほとんどの書籍に記載されているドライバを追加する方法によると、多くの人々がそれを行うことができますが、彼らは、ジュニアドライバエンジニアのレベルでもレベルがない可能性がありますので、アプリケーションが呼び出されると、ドライバは、我々がプログラムを開いて、Windowsの下でそれを実行するようなものです。私たちがプログラムを開くとき、それは前のプログラムを中断するか、待つでしょう。後でオープンしたプログラムを実行するのにしばらくかかります。あなたが良いドライバーになりたいならば、あなたは3年か4年の知識を持ちません。オペレーティングシステムのカーネルを研究することなく成功することは容易ではありません。


ドライバ層は、エレクトロニクス、通信、自動化、メカトロニクス、情報工学、特にコンピュータに偏ったアーキテクチャを専攻する人々にとってより適している。ハードウェア層の基本的な規律に加えて、データ構造、アルゴリズム、および操作も必要です。システムの原理とコンパイルの原則は理解に非常に熟練している必要があります。


オペレーティングシステム層。オペレーティングシステム層にとって、それは現在単純な移植であるかもしれません、しかし、書かれたオペレーティングシステムまたは腕と足が欠如しているオペレーティングシステムから来ている少数の人々。作業のこの部分は主にドライバーエンジニアによって行われます。完了。オペレーティングシステムは、システム・タスク・デバッギング、ディスクおよびファイル管理に責任があり、埋め込まれたシステムのリアルタイム性は非常に重要である。マイクロソフトは2年間でXPオペレーティングシステムで300人を投資したという。合計時間は600年。中国科学アカデミーソフトウェア研究所のNuwa Hopenオペレーティングシステムが完了するために何百年もの年を取ると推定されます。したがって、作品のこの部分は比較的無意味です。


アプリケーション層は比較的容易である。Windowsの下でプログラミングインターフェース機能を呼ぶ方法を知っているならば、それはオペレーティングシステムの下で編集と開発環境を変えるだけです。Javaプログラミングが含まれている場合も同様です。埋め込まれたシステムに含まれるアルゴリズムは専門のアルゴリズム人によって扱われます、そして、それは埋め込まれたシステムカテゴリーに起因する必要はありません。しかし、埋め込まれたシステムの下に埋め込まれたデータベース、埋め込まれたシステムに基づくネットワークプログラミングと、特定のアプリケーションレベル(例えばSIP、H . 323、Astrisk)に基づくプロトコルアプリケーション開発を含むなら、それはより複雑で難しいです。


目標とポジショニング。

まず、ゴールを持って、それを見つけます。

学習アームはハードウェアに関して、一方でインタフェース回路設計を学ぶことであり、他方、C言語でアセンブリとボードレベルプログラミングを学ぶことです。ソフトウェアの観点から,アームプロセッサに基づいて運転者レベルとオペレーティングシステムレベルの移植を学ぶ必要がある。これらは初心者のために、ハードウェアから学ぶか、またはオペレーティングシステムの慣れからアプリケーションにとって明確でなければなりません、しかし、あなたが何を学ぶかに関係なく、それが純粋なオペレーティングシステムレベルまたはより高いAPIベースのアプリケーション層プログラミングでない限り、ハードウェアはまだ登録物を理解することができなければなりません。そして、まだボードレベルのアセンブリとCプログラミングを理解できるようにする必要があります。したがって、組込みシステムのハードウェア層とドライバのために、ARMインターフェース回路設計、ARMのC言語およびアセンブリ言語プログラミングおよびデバッグ開発環境は、まだ習得される必要がある。


したがって、初心者は方向を把握しなければなりません、彼らのゴールは何ですか?次に、より良い、より実用的な2つのレベルの腕に関連する組み込みシステム、ハードウェア層とドライバの層は、どの層がよく学んでいるが、それは非常に有望となる学習を開始します。


あなたが埋め込まれたシステムのアプリケーションレベルから行きたいなら、それは腕と他のシステムから遠く離れているかもしれません。組み込みのオペレーティングシステムと対応する開発ツールチェーンの環境応用に焦点を当てる必要があります。SIPまたはH . 323プロトコルに基づくアプリケーション層開発のようなVoIP分野、または埋め込まれたネットワークデータベース開発などに基づいて。

 

初心者には、できることをしなければならない。ドンアウ運転手の給料が高いと思い、方向として取る。我々は自分自身の特徴を結合しなければならない。埋め込まれたシステムの4つのレベルに関しては、専門家がすべてのレベルにあります。もちろん、専門家もいる。高い給料に対応して、ハードウェア層で働いています。過去に、私は私の毎月の給料から個人所得税でおよそ3000元を控除しなければなりませんでした。もちろん、片手でエンジニアの役割を果たし、監督者と人の役割を果たしました。私は単独で職をします、しかし、それらの労働時間だけ。ハードウェアに関しては、非常に少数の人々が私と競争しているかもしれません。

   

開発システムの選択。

多くの腕の初心者は、彼らが使用することができるシステムを持っているが、彼らは、プロセッサのバージョンが高く、パフォーマンスが高く、より多くの人々がアーム9とアーム7が良いと思うように、より良い、私は初心者のために考えるという誤解を持っているだろう、この点で賢明である必要があります。開発システムの選択は、組み込みシステムの方向、ドライバの開発やアプリケーションを実行するかどうか、または組み込みシステムハードウェア層の設計とボードレベルのテストを行うに依存します。オペレーティングシステムレベルまたはアプリケーションレベルから、ドライバまたはアプリケーションであるかどうか、もちろん、プロセッサのパフォーマンスが高いほど、このことのより良い、しかし、自己学習は非常に困難です。2年でできること。


ある意味で、ARM 7と9の違いは、いくつかの機能的命令セットが濃縮され、主周波数が増加することである。ユーザーのために、彼らは何も気づいていないかもしれません、しかし、彼らは速度が少しより速いと感じることができるだけです。


ARM 7シリーズプロセッサは非常に少数の内部MMusを持っているので、ARM 7はハードウェアレベルから行きたい方に適しています。例えば、S 3 C 44 B 0は、キャッシュを簡単にオフにすることができ、内部インターフェイスレジスタは非常に簡単に参照し、ハードウェアプログラムの制御またはAXDの単一ステップコマンドライン命令によって様々なインターフェイスを制御できることを理解しやすいです。51個のシングルチップマイクロコンピュータの考えに基づいて,それを理解しやすく,32ビットシングルチップマイクロコンピュータと考え,多くの51エンジニアを排除した。埋め込まれたシステムハードウェアARMの開発エンジニアの混乱になるように、彼らは本当に埋め込まれた埋め込まれた理解していない業界で、特定の企業によってオペレーティングシステムのレベルにもたらされることはありません、彼らを怯えさせ、業界の才能のこの分野でさらに多くの不足を作る。


組込みシステムはハードウェア設計とソフトウェアドライブに関してインタフェースに大きな注意を払っている。プラットフォームを選択するときは、プロセッサの外部リソースも調べなければなりません。より多くのあなたが外部資源と接触し、より多くのそれらに精通し、将来的に成功した雇用の可能性が決定されます。より高い方が、これはリクルートの際に参照される「関連技術」です。なぜなら、人はほんの数年ですべてのプロセッサにアクセスすることができないからです。また、採用ユニットによって使用されるプロセッサは完全に私たちにはわからないかもしれません。過去には、台湾の中小企業(数百万の市場値)によって生産されたARMプロセッサも非常に有用であるが、これらのことは多すぎて、これらのプロセッサを使用している企業はリクルートすることができます。関連する仕事経験を持つ人々、関連する仕事経験は何ですか?ハードウェアに関しては,周辺インタフェース設計であり,ソフトウェアに関しては,オペレーティングシステムにおけるインタフェースドライバとアプリケーション開発経験に関連している。私はその業界に10年近くいます。2000年に腕が出現した。私はARM 7に1日で働き始めました、そして、私はスケール(まっすぐにARM 10-11の間にあります)にまっすぐ行きました。私は5年間それをして、インタビューのために何百人もの人々を募集しませんでした。これらの側面はまだ深く理解されている。

ATL研

私は個人的にサムスンのS 3 C 44 B 0は初心者に適していると思います。なぜそれを言うのですか。インタフェース資源が比較的豊富であるので、テクノロジーは成熟しています、そして、材料はより多くです。問題がある場合は、ほとんどの人がそれに慣れているので、誰かを助けて解決するのは簡単かもしれません。専門家レベルの数字を助けることができる、関連する質問はすぐに答えられる。しかし、この腕は使用には悪いと思っていますが、初心者にとっては良いことです。

したがって、開発システムの選択は、自分の将来の目標、開発ボードのインターフェイスリソース、業界の汎用性に依存します。


訓練のあり方 

最初に私自身について話しましょう。私は約10年間業界でされており、一緒に国内の組み込みシステム産業を始めた。私は、組み込みシステム産業の最前線に常にありました。私は多くのハイエンドの組み込みシステムプラットフォームの製品を設計し、多くの企業のソリューションを提供しています。彼の仕事を辞める前に、彼はIP - PBXを設計しました。プロジェクトマネージャー、プロジェクト監督、テクニカルディレクター、部長を務めています。彼は多くの連絡先を蓄積し、長年の経験を蓄積している。学生雇用と企業募集のミスマッチを考慮して、人材を募集したいと思っていますが、学生や新卒エンジニアが仕事を見つけるのは簡単ではありません。


フロントライン研究者とフロントライン教師の間の接触の不足のために、国内の埋め込まれた才能は不足しています。海外の大学の技術は業界企業を前にしているが,国内の状況は産業界の組込みシステム技術が大学よりはるかに進んでいるということである。産業と大学の間に橋を架けるには、大学の学生に高度な技術をもたらすために、雇用競争の学生のためのトランプカードを作成し、迅速に作成し、自己創造を実現するために業界のエンジニアのための機会を作成し、私は200000以上の位置の年間給料で外国企業から辞任し、組み込みシステムでのトレーニングを行う。


トレーニングのために、それは時間を買うためにお金を使うことです。多くのエンジニアは自分たちで学び、トレーニングが価値がないと思います。これも可能です。もちろん、純粋にお金のためのトレーニングはあまりにも貴重ではないが、彼らは多くのお金を失っている可能性があります。私は、彼らがそれを計算したかどうかわかっています。一週間のトレーニングが2年間の自己学習の後に習得されることができる知識をもたらすことができるならば、トレーニングが完了したあと、彼らはトレーニング内容を消化している3ヵ月から6ヵ月を過ごします。彼は、少なくとも1年半は他のことを学ぶか、別の高さで動作するように保存するために、その後、彼は2年後のレベルに対応する給料を取得します。毎月のレートは少なくとも1000、トレーニングコストは少なくとも1万人です。同時に、それはまた、一年の時間を節約できます。簡単に言えば、私はチームの前に走った。


別のレベルでは、初心者のための訓練は、事前に自分の失業保険を購入することに相当し、マスターは道教にそれらをリードします。今年の夏の私のクラスの一番年下の生徒は2年生でした。今年はジュニアにすぎませんでした。今学期はMCUを習っていましたが、今は腕でのプログラミング作業はとても印象的です。彼はまだ1年以上卒業後に失業しているだろうか?

また、トレーニングを通じて、業界は普通の人々に知られていない多くのことを知ることができると同時に、自分のマスターを見つける。例えば、2台の技術者はハンドヘルド装置を作るためにS 3 C 2410とPXA 255を使います。来年、あなたが仕事を見つけるために外出するならば、2つの間の給料の違いは最も倍になるかもしれません。なぜ?これは業界の普通の人々には定かではない。2410は民間製品です。それは産業によってひどく使われます。製品を作るコストはとても敏感です。もちろん、それは才能のコストにも敏感です。PXA 255はインテル製品です。255台のCPUは3つの2410 sを買うことができます。は、常に業界によって高貴な製品として定義されています。使用される会社は、大きな会社または軍に奉仕する会社です。彼らはコストを気にしない。あなたが良い仕事をする限り、すべては言うのが簡単です、しかし、開発システムが高価であるので、これをする人々はほとんどいません。


自分自身のために良い主人を見つけるために、私は同じレベルのエンジニアの間に潜在的な競争関係があるので、多くの人々が彼らが知っているものを教えるのを気が進まないので、彼らが彼らの仕事を失うということを意味します。いわゆる教会見習いは、マスターは餓死したが、私たちのために、そのような関係はない。私は組み込みシステムプラットフォームの設計においてあるプログラムに達しました。現在、私は中国の技術のこの分野で私自身です。それは途方に暮れにくいので、以下のインターフェースデザインに記載されているタイミングインターフェースなど、みんなにたくさんのことを開きます。私がそれについて話しているならば、私はそれがほとんどの上級ハードウェアエンジニアであると言います。人々のわずか10 %が知ることができます。


熟練したシステムハードウェアエンジニアになるために必要なスキル。

ハードウェアに関してはいくつかの方向がある。単純な信号はデジタルとアナログに分けられる。アナログはより難しい。それは一般的に経験の長い蓄積が必要です。抵抗または静電容量の精度が十分でない場合、信号逸脱は大きいかもしれません。したがって、若者はより少ない仕事をします。技術の発達に伴いアナログ回路のディジタル化が進んでいる。例えば、携帯電話のモデム無線周波数モジュールはすべて成熟したチップを使用する。当時、世界の2社だけがこの技術を持ち、アナログ機能を持っていると感じました。あまり強くない人はこれにふさわしくない。あなたが本当に携帯電話の無線周波数モジュールを得ることができるならば、それが一般的なレベルに達する限り、毎月の給料は15 K以上かもしれません。


もう1つはディジタル部品であり,51/アームマイクロコントローラ,dsp,およびfpgaに一般的な方向に分けられる。国内のFPGAエンジニアの大部分は、IC設計会社のIPコアのフロントエンド検証に従事している。この部分は関係ありません。ドアレベルでは、未来は非常に明確ではありません。ICフロントエンドの検証エンジニアであっても、数年の間仕事をしなければならない。DSPハードウェア・インタフェースは、比較的finalizedされる。それがドライバーまたはアルゴリズムに近づくならば、将来はあまり大きくありません。アームシングルチップマイクロコンピュータの内容はより多くです。業界の製品は大量を占め、アプリケーションの群衆は広い。したがって、雇用空間は巨大です。ハードウェア設計は、インタフェース設計のレベルと標準を最も反映します。これは様々な上級ハードウェアエンジニアのPKです。レベルを判断するための基礎。インターフェイスデザインの中で最も重要なことは、単純な接続ではなく、タイミングを見ることです。例えば、PXA 255プロセッサI 2 Cは100 kbpsの速度を必要とする。I 2 C周辺機器が100 kbpsに達しないITに接続されているなら、それは必然的に設計失敗に至ります。このような状況はたくさんあります。例えば、51個のシングル・チップ・マイクロコンピュータはバスでLCDに接続することができます、しかし、このLCDがなぜアーム・バスに掛けることができないか、そして、ARM 7バスの上で外部Winband SDカードコントローラがあることができます、しかし、あなたがARM 9またはXScaleプロセッサにアクセスすることができないならば、これらのコントローラの理由はすべて問題です。


したがって、インターフェイスは単純な接続ではなく、タイミングとパラメータによって異なります。優れたハードウェアエンジニアは、参照計画なしでより良いコストとパフォーマンスで製品を設計することができなければなりません。既存の計画に頼って、それは適切な実現可能な調整をする必要があります、しかし、それはランダムではありません、私はエンジニアが計画で5 Vを1.8 VのDCチップに変えて、直接それをLDOと取り替えた時に会いました、時々、彼はいくつかのCPUを燃やすでしょう。数日前、一部の人々は私にPXA 255プラットフォームに基づいて彼らの前のハンドヘルドGPS装置のプログラムを最適化するのを手伝って欲しかったです。私は状況について尋ねた。マップはSDカードに格納され、SPIは、SDカードとPXA 255インターフェイスのMMCコントローラの間で使用されるため、マップの読み込み速度は非常に遅いです、この状況は、プログラムの問題ではなく、デザインの重大な欠陥であるので、私はいくつかの提案をして、それらを更新してみてください。したがって、優秀なエンジニアになりたい場合は、システムの整合性と既存の回路の理解を把握する必要があります。言い換えれば、回路図のセットの後にどのくらい見ることができ、理解することができます。あなたがあなたが80 %以上を理解しないならば、それは良いエンジニアがそれから遠いということを意味します。


第2は、回路デバッグ能力と図面レビュー能力です, しかし、最も基本的な能力はPCB回路 基板設計図と論理設計図. ハードウェア設計エンジニア. ECADエンジニアは、上記のハードウェア設計エンジニアから切り離されることもできます, 誰が描くプロのエンジニアですか PCB ボードとEMC設計技術者は、EMC問題を解決するのを助ける. ハードウェアエンジニアは、ボードレベルのテストエンジニアです, それで, C言語能力の良いハードウェアエンジニア, 誰が回路基板のデバッグ中に自分で書かれたテストプログラムを通してハードウェア機能を検証できる. その後、オペレーティングシステムのレベルに基づいてドライバの開発者にそれを渡す.

 

つまり、ハードウェアの内容は非常に複雑である。あなたがハードウェアで訓練するならば、あなたはマスターになります。私はよく他人の計画を評価します。私はしばしば多くの上級ハードウェアエンジニアの設計を否定する。したがって、エンジニアはそれをします。この種の状況は一部の人々を怒らせます、しかし、ハードウェアは多くの上級ハードウェアエンジニアを混乱させる多くの未知のものを持っています。


だから高度なハードウェアエンジニアは、それらの技術的スキルを持っている必要があります. ファースト, 彼らはedaデザインの補助ツールを習得しなければならない, Protel Orcadのような PCB マプルクス2世, VDDL言語. 彼らは論理設計のための描画ボードを描画するためにこれらのツールを使用する必要があります, インタフェースデザイン. グラフ能力とデバッグ能力. あなたが全体的な計画設計に着くことができるならば, 基本的に上級エンジニアになる.


ハードウェアだけでなく、経験に依存します。10年で剣を研ぎ、100年で針を研ぐ。