Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Memahami JTAG dan Debugging Inti Arm: ADI dan SWD Dijelaskan

Artikel ini mengungkap bagaimana JTAG terintegrasi ke dalam perangkat inti ARM, dengan fokus pada Antarmuka Debug Arm (ADI) dan protokol Serial Wire Debug (SWD).

Postingan sebelumnya dalam seri ini menjelajahi standar IEEE 1149.1, kontroler Port Akses Uji (TAP), dan mesin status TAP. Kami juga meninjau penampilan pin JTAG umum, konektor, dan sekumpulan probe debug yang tersedia di pasar.

Di sini kami beralih ke ekosistem ARM, mendetail bagaimana prosesor inti ARM yang umum menerapkan JTAG melalui ADI dan varian dua‑kabel SWD-nya.

Apa Itu ARM?

ARM menunjukkan arsitektur prosesor dan portofolio luas kekayaan intelektual yang mendefinisikan antarmuka mikroprosesor dan mikrokontroler. Sementara PC konsumen biasanya menggunakan x86, sistem tertanam hampir eksklusif bergantung pada inti ARM.

Kekayaan intelektual inti dilisensikan kepada pabrikan silikon—seperti STMicroelectronics, NXP, dan lainnya—yang kemudian menambahkan fitur periferal (I²C, SPI, ADC/DAC, USB, dll.). Arsitektur ARM versi (ARMv2, ARMv6, ARMv7, ARMv8, dll.), dan inti diberi merek ARMx (misalnya, ARM7) atau, lebih baru, sebagai seri Cortex‑A/R/M untuk kasus penggunaan aplikasi, waktu nyata, dan mikrokontroler. Versi arsitektur mengikuti sufiks Cortex, menghasilkan nama seperti ARMv7‑A atau ARMv6‑M.

Debugging di ARM diatur oleh arsitektur CoreSight, yang mencakup Antarmuka Debug Arm (ADI), Makrosel Lacak Terembed (ETM), Port Lacak Serial Tinggi Kecepatan (HSSTP), dan lacak alur program. ADI memberikan fondasi untuk debugging, menawarkan antarmuka JTAG dan alternatif Serial Wire Debug (SWD).

Ringkasan Antarmuka Debug Arm (ADI)

Spesifikasi ADI mendefinisikan antarmuka perangkat keras dan logis antara debugger host dan satu atau lebih perangkat ARM. Sebagian besar prosesor kontemporer mendukung ADIv5 (Arm IHI0031E), sementara ADIv6 (Arm IHI0074C) sedang diadopsi secara bertahap. Kami fokus pada ADIv5 di sini.

ADI memperkenalkan Port Akses Debug (DAP), yang terdiri dari Port Debug (DP) dan satu atau lebih Port Akses (AP). DP mengelola koneksi fisik (JTAG atau SWD) dan berisi register bawaan; AP menyediakan akses ke sumber daya sistem seperti register debug, port lacak, tabel ROM, atau memori sistem.

ADI mendukung dua tipe DP: JTAG‑DP dan SWD‑DP. AP hadir dalam tiga varian: MEM‑AP (akses terpeta memori), JTAG‑AP (pemindaian seluruh unit debug), dan AP spesifik vendor. MEM‑AP adalah yang paling umum.

Dalam konteks JTAG, ADIv5 menyediakan sekumpulan kode instruksi (misalnya, EXTEST, SAMPLE, PRELOAD, INTEST, CLAMP, HIGHZ, ABORT, DPACC, APACC, IDCODE, BYPASS) dan register data (ABORT, DPACC, APACC, IDCODE, BYPASS). Secara khusus, DPACC dan APACC memungkinkan debugger untuk mengeluarkan perintah ke register DP dan AP, masing‑masing.

Register DP umum meliputi:

Register MEM‑AP meliputi:

Gambar 1 mengilustrasikan kabel ADI dan peta register (tidak semua register ditampilkan untuk singkatnya).

Memahami JTAG dan Debugging Inti Arm: ADI dan SWD Dijelaskan

Gambar 1. Diagram Antarmuka Debug Arm, meringkaskan koneksi. Tidak semua register DP/AP digambarkan.

Serial Wire Debug (SWD)

SWD adalah alternatif dua‑kabel JTAG dari ARM, dirancang untuk perangkat dengan jumlah pin terbatas. Banyak mikrokontroler Cortex‑M menggunakan SWD daripada JTAG lengkap untuk menghemat pin.

SWD mengganti pasangan JTAG TDI/TDO dengan satu pin SWDIO dua arah, menghapus pin TMS, dan mempertahankan jam (dilebelas SWCLK). Karena SWD menghapus mesin status TAP, perintah dikirim secara serial melalui SWDIO dan kemudian pin yang sama digunakan untuk transfer data.

Komunikasi berlangsung dalam tiga fase: permintaan paket, pengakuan, dan transfer data. Bit paritas digunakan seuruhnya. Urutan dimulai dengan bit Start (TINGGI), diikuti oleh bit AP/DP, bit RnW, bit alamat, paritas, bit Stop (RENDAH), dan bit Park. Setelah permintaan, target membalas dengan ACK 3‑bit. Untuk tulis, host mentransmisikan 32 bit data (bit terendah terlebih dahulu) dengan bit paritas; untuk baca, target mengemudi 32 bit data kembali ke host.

Gambar 2 menunjukkan diagram waktu untuk operasi baca dan tulis.

Memahami JTAG dan Debugging Inti Arm: ADI dan SWD Dijelaskan

Gambar 2. Diagram waktu untuk operasi baca dan tulis Serial Wire Debug. Klik untuk memperbesar.

Terdapat dua versi SWD: SWDv1 (titik ke titik) dan SWDv2 (satu host, multi target). Versi 2 sebagian besar kompatibel mundur dengan perbedaan kasus tepi minor.

Varian JTAG dengan Pin Terbatas Lainnya

Di luar SWD, standar IEEE 1149.7 mendefinisikan antarmuka JTAG dua‑kabel. Standar IEEE 1149.x tambahan (1149.4 untuk uji sinyal campuran, 1149.6 untuk jaringan digital lanjutan) menyediakan kemampuan diperluas seperti boundary‑scan analog dan garis AC‑coupled diferensial.

Standar yang diperbarui dapat ditemukan di situs web IEEE Standards Association.

Kesimpulan

Kami telah menelusuri asal JTAG, memeriksa implementasi fisiknya, dan menjelajahi bagaimana prosesor inti ARM menyesuaikan JTAG melalui protokol ADI dan SWD. Dengan pengetahuan ini, insinyur dapat dengan yakni debug dan memprogram perangkat tertanam, memilih antarmuka yang sesuai dengan keterbatasan perangkat keras mereka.


Tertanam

  1. Arm Memperkenalkan Dukungan Instruksi Kustom untuk Core Cortex-M, Memperluas Fleksibilitas
  2. Solusi Power-On Andalkan untuk Perangkat Medis Baterai
  3. Mouser Menyediakan IMU ADIS1647x Analog Devices: Navigasi Presisi untuk IoT, UAV, dan AR/VR
  4. ams & Face++ Bekerja Sama untuk Mempercepat Penginderaan Optik 3D untuk Penggunaan Pengenalan Wajah yang Lebih Cepat
  5. Marvell Memperdalam Aliansi Strategis dengan Arm untuk Mendorong Prosesor Server ThunderX Generasi Depan
  6. Melacak Kemajuan Teknologi Perangkat Medis
  7. Infineon Resmi Perkenalkan IMC300 Pengontrol Motor dengan Arm Cortex-M0 Terintegrasi untuk Fleksibilitas Tinggi
  8. ADI Meluncurkan ADM2867E: Transceiver RS-485 Terisolasi Terintegrasi dengan Konverter DC/DC untuk Aplikasi Hemat Ruang
  9. Arm Meningkatkan Konektivitas IoT dan Manajemen Perangkat melalui Akuisisi Stream Technologies
  10. Alat Keamanan Windlass: Fitur Perlindungan Esensial untuk Operasi Laut