工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

JTAGとArmコアデバッグの理解:ADIとSWDを解説

JTAGがARMコアデバイスにどう統合されているかを解明:Arm Debug Interface(ADI)とSerial Wire Debug(SWD)プロトコルに焦点を当てる

このシリーズの前回記事では、IEEE 1149.1標準、Test Access Port(TAP)コントローラ、TAPステートマシンを探求しました。また、一般的なJTAGピンアウト、コネクタ、市場で入手可能なデバッグプローブの配列もレビューしました。

ここではARMエコシステムに焦点を移し、いかにARMコアプロセッサがADIとその2線式SWDバリアントを通じてJTAGを実装しているかを詳述します。

ARMとは

ARMはプロセッサアーキテクチャと、マイクロプロセッサおよびマイクロコントローラインターフェースを定義する膨大な知的財産ポートフォリオを指します。コンシューマーPCは通常x86を使用しますが、組み込みシステムはほぼ排他的にARMコアに依存しています。

コアIPはSTMicroelectronics、NXPなどのシリコンメーカーにライセンスされ、彼らがペリフェラル機能(I²C、SPI、ADC/DAC、USBなど)を追加します。ARMアーキテクチャはバージョン管理され(ARMv2、ARMv6、ARMv7、ARMv8など)、コアはARMx(例:ARM7)または、より最近ではアプリケーション、リアルタイム、マイクロコントローラユースケース向けのCortex-A/R/Mシリーズとしてブランド化されています。アーキテクチャバージョニングはCortexサフィックスに従い、ARMv7-AやARMv6-Mといった名前になります。

ARMでのデバッグはCoreSightアーキテクチャによって統括され、Arm Debug Interface(ADI)、Embedded Trace Macrocell(ETM)、High-Speed Serial Trace Ports(HSSTP)、プログラムフロートレースを包含します。ADIはデバッグの基盤を提供し、JTAGインターフェースとSerial Wire Debug(SWD)の代替の両方を提供します。

Arm Debug Interface(ADI)の概要

ADI仕様は、ホストデバッガと1つ以上のARMデバイス間のハードウェアおよび論理インターフェースを定義します。最新プロセッサの多くはADIv5(Arm IHI0031E)をサポートし、ADIv6(Arm IHI0074C)が徐々に採用されています。ここではADIv5に焦点を当てます。

ADIはDebug Access Port(DAP)を導入し、Debug Port(DP)と1つ以上のAccess Port(AP)で構成されます。DPは物理接続(JTAGまたはSWD)を管理し組み込みレジスタを含み;APはデバッグレジスタ、トレースポート、ROMテーブル、システムメモリなどのシステムリソースへのアクセスを提供します。

ADIは2タイプのDPをサポート:JTAG-DPとSWD-DP。APは3種類:MEM-AP(メモリマップドアクセス)、JTAG-AP(デバッグユニット全体のスキャン)、ベンダー固有AP。MEM-APが最も一般的です。

JTAGの文脈では、ADIv5は命令コード(EXTEST、SAMPLE、PRELOAD、INTEST、CLAMP、HIGHZ、ABORT、DPACC、APACC、IDCODE、BYPASS)とデータレジスタ(ABORT、DPACC、APACC、IDCODE、BYPASS)を提供。特にDPACCとAPACCにより、デバッガはDPとAPレジスタにそれぞれコマンドを発行できます。

典型的なDPレジスタには:

MEM-APレジスタには:

図1はADIの配線とレジスタマップを示します(簡潔さのため全レジスタは非表示)。

JTAGとArmコアデバッグの理解:ADIとSWDを解説

図1. Arm Debug Interface図、接続を要約。すべてのDP/APレジスタは描画されていません。

Serial Wire Debug(SWD)

SWDはARMの2線式JTAG代替で、ピン数制約のあるデバイス向けに設計されています。多くのCortex-Mマイクロコントローラは、ピンを節約するためフルJTAGの代わりにSWDを採用しています。

SWDはJTAGのTDI/TDOペアを単一の双方向SWDIOピンに置き換え、TMSピンを削除、クロック(SWCLKと再ラベル)を保持。SWDはTAPステートマシンを省略するため、コマンドはSWDIO経由でシリアル送信され、同じピンでデータ転送に使用されます。

通信は3フェーズで進行:パケットリクエスト、応答、データ転送。全体でパリティビットを使用。シーケンスはスタートビット(HIGH)、AP/DPビット、RnWビット、アドレスビット、パリティ、ストップビット(LOW)、パークビットで開始。リクエスト後、ターゲットは3ビットACKで応答。書き込みではホストが32ビットデータ(LSBファースト)とパリティビットを送信;読み取りではターゲットが32ビットデータをホストに駆動。

図2は読み書き操作のタイミング図を示します。

JTAGとArmコアデバッグの理解:ADIとSWDを解説

図2. Serial Wire Debug読み書き操作のタイミング図。クリックで拡大。

SWDには2バージョン存在:SWDv1(ポイントツーポイント)とSWDv2(シングルホスト、マルチターゲット)。バージョン2はマイナーなエッジケース差異を除き、ほぼ後方互換です。

その他の減ピンJTAGバリアント

SWD以外にも、IEEE 1149.7標準が2線式JTAGインターフェースを定義。追加のIEEE 1149.x標準(1149.4はミックスドシグナルテスト、1149.6は高度デジタルネットワーク)は、アナログバウンダリスキャンや差動AC結合ラインなどの拡張機能を提供。

更新された標準はIEEE Standards Associationウェブサイトで入手可能です。

結論

JTAGの起源をたどり、その物理実装を検証し、ARMコアプロセッサがADIとSWDプロトコルを通じてJTAGをどう適応させているかを探求しました。この知識を武器に、エンジニアは組み込みデバイスを自信を持ってデバッグおよびプログラミングでき、ハードウェア制約に適したインターフェースを選択できます。

埋め込み

  1. インダクタ解説:種類、機能、応用
  2. ウインドラス安全装置:海洋作業における必須保護機能
  3. Arm、Cortex-Mコアでカスタム命令サポートを導入——柔軟性を拡大
  4. バッテリー駆動医療機器向け信頼性の高い電源投入ソリューション
  5. マウザー、Analog Devices ADIS1647x IMUを在庫:IoT、UAV、AR/VR向け精密ナビゲーション
  6. amsとFace++、3D光学センシングで顔認証導入を加速する戦略的パートナーシップ締結
  7. Marvell、Armとの戦略的アライアンスを深化 - 次世代ThunderXサーバープロセッサー開発を加速
  8. 医療機器技術の進歩を追跡:市場予測と主要トレンド
  9. Infineon、Arm Cortex-M0統合のIMC300モーターコントローラー発表——柔軟性を強化
  10. ADI ADM2867E:省スペース用途向け絶縁型RS-485トランシーバ内蔵DC/DCコンバータ
  11. Arm、Stream Technologies買収でIoT接続性とデバイス管理を強化