サービスホットライン
最近、組み込みARMが記事を共有しました。GD32にも偽物が大量に出回るようになってきた。》記事によると、組み込みARMの旧友であるストロンガー・ホアン氏は、自身の技術交流グループが議論しているとも述べている。チップ価格が上昇(NAIST) と塩漬け魚のチップスを売るこのテーマについて、再生品偽造品の見分け方とその背景を明らかにする記事を執筆しました。参考のために、ここに転載します。
1
チップ価格上昇の背景過去2年間の米中対立は、ファーウェイなどの国内大手テクノロジー企業に影響を与えた。しかし、ほとんどの電子機器関連企業への影響は最小限にとどまっている。
2020年には、労働者のストライキなど、パンデミックが一部の半導体企業に大きな打撃を与えた。
その後、一部の原材料価格が程度の差こそあれ上昇し始めた。特に今年に入ってからは、金属やプラスチックといったほとんどの原材料価格が上昇している。抵抗器やコンデンサーから、テレビや冷蔵庫といった家電製品に至るまで、あらゆるものの価格が程度の差こそあれ上昇している。
(画像はインターネットからの引用です。著作権侵害および削除の申し立てはご遠慮ください。)チップについても同様です。私たちがよく知っているMCUの価格は、程度の差こそあれ上昇しています。これは誰もが知っていることでしょう。特に、STM32の一部のモデルは、価格が数倍にまで上昇しています。
こうした価格上昇の状況下では、悪質な業者が必ず存在するはずであり、そうなると偽造品が出回る可能性が高まる。
2
STM32/GD32の再生品または偽物経験豊富なエンジニアであれば、私を含め、再生品や偽物のSTM32/GD32の問題に遭遇したことがあるかもしれません。私は以前、GD32のロゴを消してSTM32にしたり、古い基板から取り外した再生品のSTM32を使用したりしたことがあります。
チップの再生品や偽造品に関するいくつかの事例についてお話ししましょう。
1. フラグを消去する
チップの消去マークは非常に一般的で、当社が開発する製品にも時折見られます。他社によるチップの模倣を防ぐため、チップ表面のマークを消去することもあります。
一部の企業は、この「王子様のためのジャコウネコ」のような手法を使って利益を上げています。初期の頃のSTM32などの互換チップの中には、偽物のGD32が多数存在していたことを私は知っていました。
2.偽モデル
STM32内部のフラッシュメモリの実際の容量は、型番と一致しない場合があります。例えば、STM32F103RFの標準容量は768KBですが、実際のフラッシュメモリの容量は768KBを超えています。
この話題をさらに掘り下げると、お使いのSTM32チップのFLASH容量は、ST社の公式選定マニュアルに記載されている通りなのでしょうか?
1 まずは別のことについて話しましょう
一般的に、初心者にとっては内蔵FLASHで十分です。シンプルなベアメタルデモや、RTOSと2つのタスクからなるデモを実行する程度であれば、現在のMCUには全く負荷がかかりません。
しかし、実際のプロジェクトに携わるようになると、多くの場所でFLASHが使われるだろうまた、プロジェクトによっては大量のFLASHメモリを消費するものもあります。例えば、特定のアルゴリズムの実行、フォントライブラリの読み込み、あるいはFLASHに2枚の画像を挿入する場合などです。
IAPアプリケーションプログラミングの別の例を見てみましょう。一般的に、この機能をより適切にアップグレードできるアプリケーションは、アプリケーションとほぼ同じサイズのFLASH領域(バックアップ領域)を備えています。つまり、安全性を確保するために、プログラムのダウンロードをバックアップ領域に保存し、ダウンロードが成功した後にアプリケーションを更新します。これを行う目的は次のとおりです。これは、ダウンロードが途中で切断されて失敗するのを防ぐためです。。
フラッシュメモリを3つの領域(ブートプログラム用フラッシュ領域、アプリケーション用フラッシュ領域、バックアッププログラム用フラッシュ領域)に分割した図を見つけました。おおよそ以下のとおりです。考えてみてください。
2つのSTM32チップの選択
一般的に、プロジェクトで要件を提示した後、適切なMCUを選定します。まず最初に考えるべきことは、[選定マニュアル]を確認することです。周辺リソースの選定に加えて、適切なFLASH容量の選定も必要です。STM32製品のコマンドルールは以下のとおりです。
選考マニュアルのアドレス:https://www.stmcu.com.cn/upload/selection_Guide.pdf(WeChat公式アカウントは外部リンクをサポートしていないため、URLをコピーして開いてください)
3. STM32の内蔵FLASHの容量を確認する
FLASHに関するいくつかのトピックについて説明した後、この記事の要点に戻りましょう。当社のSTM32の内蔵FLASHメモリは、上記の選定マニュアルに記載されている容量よりも大きい場合があります。。
例えば、私のMCUチップの具体的なモデルはSTM32F103RFです。マニュアルを見ると、容量は768Kと記載されていますが、実際には1MのFLASH容量があります。
ここでは、2つの簡単な検証方法について説明します。
1. プログラムによる検証
簡単に言うと、指定されたアドレス(つまり、FLASHメモリのサイズを超えるアドレス)を消去、書き込み、読み出すことによって行われます。
FLASH_EraseSector FLASH_ProgramWord
2. ツールを使用してFLASHデータを読み取る
この方法は最も直接的でシンプルな方法です。STM32 ST-LINK Utilityのダウンロードツールを例にとってみましょう。
重要なポイントは、実は図に示されています。アドレスが768Kを超える場合、実際にデータを読み出すことができます。(上の画像は、STM32F103RF実機MCUで読み取ったものです。アプリケーションの開始アドレスは0x080C0000で、アプリケーションは実際に実行されています。)
ここまで述べてきましたが、私が本当に言いたいのは、STM32チップには似たようなものがたくさんあり、上で例として挙げたSTM32F103RFだけでなく、103RCは公称256Kですが、実際には256K以上の容量があります。FLASHメモリの容量が不足している場合は、上記の方法を使って、それ以上の容量があるかどうかを確認できます。
3. オリジナルで本物の製品に再生このタイプは特定の製品で最もよく見られます。見た目が安っぽいタイプです。小売店でいくつか購入すると、送られてきます。これらは再生品のチップである可能性が高いです。
再生チップを購入した場合、LEDランニングライトを書いてテストすれば問題なく動作するでしょう。しかし、プロジェクトに参加すると、特に周辺機器が多く、機能が複雑なプロジェクトでは、チップ本来の性能がすぐに露呈する可能性があります。
運が悪いと、次のような状況が発生する可能性があります。
-
ソフトウェアは数日間フル稼働したが何の成果も得られず、ハードウェアに問題があるとされた。
-
ハードウェアの配線が飛び出している状態を様々な方法でテストし、チップを交換して問題を解決する。
- ソフトウェアエンジニアとハードウェアエンジニアが対立する。
- ・・・・・・・・
そのため、現在市場には偽物や不良チップが多数出回っていることは驚くべきことではなく、組み込みARMも「GD32も偽物が出回り始めている」と述べている。それは当然のことだと思う。
3
再生品または偽造品を識別する再生品または偽造品のSTM32/GD32を識別するには、まず基板(または治具)にはんだ付けし、電源を入れて正常に動作するかどうかを確認するのが一般的な方法です。発熱、過電流、あるいは発煙が見られる場合は、注意が必要です。次に、フラッシュ容量、UID情報、オプションバイト数などのチップ情報を読み取ります。
過去の記事をこちらで共有します:STM32のこれらのレジスタについてご存知ですか?
具体的な読み方は以下のとおりです。
1 フラッシュ容量レジスタ
1. 登録簿を読むことによって
STM32の「リファレンスマニュアル」には、フラッシュサイズデータレジスタなどのレジスタ(通常はマニュアルの末尾に記載)があり、そのレジスタのベースアドレスが明確に記載されています。
ヒントチップのモデルによってレジスタのアドレスが異なる場合があります。例えば、F103のベースアドレスは0x1FFFF7E0です。
これは工場出荷時に書き込まれた16ビット値であり、プログラムによってのみ読み取ることができます。読み取り方法は非常に簡単で、次のようになります。
uint16_t フラッシュサイズ; Flash_size = *(uint16_t *)0x1FFFF7E0;
2. STM32 ST-LINKユーティリティを介して直接読み込む
ST-Linkを介してチップを接続し、直接読み取ると、容量情報が表示されます。
2 UIDレジスタ
以前、STM32のUIDを使って暗号化できるかと質問されたことがあります。もちろん可能です。
しかし、別の質問をされました。私はすべて(96ビット)を読みたくありません。レジスタの一部のみを識別子として読み取ることは可能ですか?読み取られた部分は重複しますか?
STM32 UID 一意の識別子に適用:
- シリアル番号として使用されます。
- これはパスワードとして使用されます。フラッシュメモリへの書き込み時には、この固有識別子がソフトウェアの暗号化および復号化アルゴリズムと組み合わせて使用され、フラッシュメモリ内のコードのセキュリティを向上させます。
- 安全機構を備えた起動プロセスを起動するために使用されます。
STM32のUIDは合計96ビット(32×3)です。皆さん、このうち特定の部分だけを一意の識別子として読み取ることは可能でしょうか?
厳密に言えば、この質問は不可能です。しかし、それほど厳密な意味でなければ問題ありません。なぜなら、このUIDはウェハーやバッチなどで番号付けされているからです。同じバッチを購入すれば、番号が連続している可能性があります。
以前に製造された基板をいくつか読み取ったことがあります(購入したMCUは同じロットのものです)。チップのUIDは連番になっています。興味があれば試してみてください。
ので、UIDの一部を識別子として読み取ることは、厳密ではないとしか言えない。。
3 レジスタオフセットアドレス
初歩的な知識を学んでいる初心者はまだたくさんいます。例えば、レジスタを使って自分でプログラミングをしたいと思っている友人がいますが、レジスタベースアドレスやレジスタオフセットアドレスが何なのかを知らない人もいます。
1.ベースアドレス
各オンチップおよびオンチップデバイスには、製造元によって決定され変更できない対応するベースアドレスがあります。以下に示すように。
プログラムには、上記に対応するコードが含まれています。
2. オフセットアドレス
オフセットアドレスとは、ベースアドレスを基準としたオフセット(通常は4バイト増加)のことで、例えばTIMタイマーのオフセットアドレスなどがこれに該当します。
同様に、プログラム内の対応するコードは、構造体を通してオフセットを実装しています。
ベースアドレスとオフセットアドレスに関しては、標準周辺ライブラリであろうとHALライブラリであろうと、上記に示したベースアドレス+オフセット方式で実装されています。
この記事で何度も述べてきたように、レジスタの原理を理解したり、レジスタを使ってレジスタを実装したりするには、「標準周辺機器ライブラリ」のルーチンを参照するのが最適です。HALライブラリはカプセル化が比較的複雑で、最下層のレジスタを学習するには適していません。
さらに検証を行い、データ書き込み(RAM、フラッシュ)テスト、各種周辺機器の基本機能テストなどを実施します。
4
推奨される正式なチャネル偽物や模倣品を購入すると、非常に高い代償を払うことになります。開発初期段階で問題が発見されるのは良いのですが、量産後に問題が発覚するのではないかと心配です。さらに恐ろしいのは、製品が大量に出荷された後、偽造チップが原因で顧客の手元に届いた際に問題が発生するケースです。
今日、コミュニケーショングループの誰かが塩漬け魚の上にポテトチップスを売る状況について話し合っていました。私は思うのですが、チップスを趣味で買うのは構わないが、製品を作る場合は注意した方が良いだろう。
例えば、淘宝(タオバオ)で10元以上で売られているSTM32は、輸入された正規品だと謳われています。信じられますか?
正規ルートで購入したチップの場合、Xianyuのようなプラットフォームの問題ではなく、チップ自体に問題がある可能性も依然として一定程度存在する。以前、大手代理店から購入したSTM32で問題が発生したことがありました。FAE(フィールドアプリケーションエンジニア)が何度もメーカーに問い合わせましたが、原因を特定できませんでした。最終的に、工場出荷時のチップを回収して分解したところ、チップ自体に問題があることが判明しました。
したがって、安いからといってタオバオや仙宇でチップスを買うのは避けるべきです。正規のルートで購入することをお勧めします。そうしないと、高くつく可能性があります。
免責事項:この記事は知的財産権の保護を支持する「strongerHuang」からの転載です。転載の際は、出典と著者を明記してください。著作権侵害が疑われる場合は、削除いたしますのでご連絡ください。
会社の電話番号:+86-0755-83044319
ファックス番号:+86-0755-83975897
Eメール:1615456225@qq.com
QQ: 3518641314 李マネージャー
QQ: 332496225 邱マネージャー
住所:深圳市龍華新区民治大道1079号 占濤科技ビルC棟809室




粤公网安备44030002007346号