Forum: Mikrocontroller und Digitale Elektronik Vergleich zwischen Nexus und JTAG?


von Patrick L. (crashdemon)


Lesenswert?

Hallo Leute,

worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG 
und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw. 
Nachteile?

von Cyblord -. (cyblord)


Lesenswert?

Patrick L. schrieb:
> Hallo Leute,
>
> worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG
> und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw.
> Nachteile?

Pro: Nachts ist es dunkler.
Con: Aber auch kälter.

von 6a66 (Gast)


Lesenswert?

Patrick L. schrieb:
> worin bestehen überhaupt die grundsätzlichen unterschiede zwischen JTAG
> und Nexus. Gut Nexus ist schneller, aber was gibt es noch für Vor- bzw.
> Nachteile?

Darf ich die Wikipedia zitieren:
---

Physically, IEEE-ISTO 5001-2003 defines a standard set of connectors for 
connecting the debug tool to the target or system under test. Logically, 
data is transferred using a packet-based protocol. This protocol can be 
JTAG (IEEE 1149.1); or, for high-speed systems, an auxiliary port can be 
used that supports full duplex, higher bandwidth transfers.

Key Nexus functionality involves either JTAG-style request/response 
interactions, or packets transferred through the debug port, and 
includes:
---

Demnach ist nexus ein Protokoll das sich erst im Markt etablieren muss 
und sich als Schnittstelle JTAG bedienen kann.

rgds

von Nexus (Gast)


Lesenswert?

Hallo,

JTAG ist eine serielle Schnittstelle um Daten in bzw. aus einem Chip zu 
bekommen. Wenn mehrere Chips auf einer Platine sitzen, werden sie oft 
hintereinander zu einer JTAG-Chain verbunden. Dann kann man z.B. bei der 
Produktion überprüfen ob alle Chips funktionieren (Boundary Scan).

Nexus (für PowerPC, oder ETM z.B. bei ARM) ist eine parallele 
Schnittstelle für Mikrocontroller mit mehreren parallelen Datenleitungen 
(wieviele genau hängt vom jeweiligen uC ab, typisch sind 4,8,12 oder gar 
16).  ETM bedeutet "Embedded Trace Macrocell", was schon mal einen 
Hinweis auf den Sinn der Schnittstelle liefert:

Bei JTAG muß man jedes Bit, das man ein- oder auslesen möchte, mühsam 
durch die Chain tickern. Nexus oder eben ETM ist dazu gedacht, schnell 
Daten aus dem uC auslesen zu können ohne den Core stark zu beeinflussen.
Damit ist es z.B. möglich 'Traces' aufzunehmen, d.h. den Programmfluß 
'mitzuschneiden' oder sich anzuschauen was im Speicher abgeht (indem man 
die Schreib-Lese Zugriffe mit aufzeichnet). Die Bandbreite von JTAG ist 
dafür viel zu gering als dass man das in Echtzeit hinbekommen würde.

Kommt man bei JTAG mit einfachen (selbstgebauten) Adaptern/Programmen 
schon recht weit, hat man bei Nexus/ETM keine Chance mehr und muß auf 
die am Mark verfügbaren (teuren) Debugger/Traces zurückgreifen.
Das hat auch seinen Grund. Die Verarbeitung der Datenflut erfordert viel 
Speicher und FPGAs um dem überhaupt beizukommen.

Nimmt man beispielsweise einen Intsruction-Trace über 10s eines PowerPCs 
bei 200MHz CPU-Takt auf, braucht man schon mehrere GByte Speicher!

Bekannte Hersteller von Trace-HW sind: Lauterbach, iSystems, GreenHills 
und diverse andere. Teilweise bekommt man auch beim Chiphersteller 
selbst entsprechendes Equipment oder zumindest eine Empfehlung.

von Patrick L. (crashdemon)


Lesenswert?

Danke Nexus für die ausführliche Erläuterung! Kann man den grundsätzlich 
denn sagen, dass physikalisch die selbe Schnittstelle für Nexus als auch 
für JTAG benutzt werden (z.B. bei einem Renesas R1H)? Die Nexus wird ja 
vermutlich auch auf einer höheren Takfrequenz laufen oder wurde da 
einfach nur eine parallele Übertragung und/oder der Overhead des 
Protokoll (vgl. JTAG) verringert?

: Bearbeitet durch User
von Nexus (Gast)


Lesenswert?

>Kann man den grundsätzlich
>denn sagen, dass physikalisch die selbe Schnittstelle für Nexus als auch
>für JTAG benutzt werden.

Nein. Sowohl die Signale als auch das Protokoll ist unterschiedlich. Ich 
kenne den R1H nicht. Aber im Datenblatt sollten sich da mehr Infos 
finden.
JTAG und Nexus werden parallel genutzt. Über JTAG wird die Debug-Session 
aufgesetz und gesteuert (auch das Nexus-Interface). Nexus wird verwendet 
um die (Trace-)Daten aus dem Controller zu bekommen.

JTAG Signale heißen z.B. TDI,TDO,TMS und TCK. Bei Nexus heißen die 
Leitungen MDO,MCKO,EVTI,EVTO,MSEO wobei das I/O am Ende angibt ob der 
Pin ein Ausgang = O (Chip->Debugger) oder ein Eingang = I 
(Debugger->Chip) ist.

Schau mal hier:
http://nexus5001.org/wp-content/uploads/2015/02/nexus-wp-200408.pdf
oder hier:
http://cache.freescale.com/files/32bit/doc/app_note/AN3968.pdf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.