ReadOnly-SubFeld am Read/Write-Port wie realisiert?

OP #5827974
Lesenswert?
• ▲
▼
Hi,
angenommen auf einem 32bit-System ist ein 32bit-Port Read/Write, aber 
ein SubFeld darin, sagen wir 3 bits, kann nur ausgelesen werden, aber 
nicht beschrieben werden.
Es gibt viele solcher Ports. Sie werden im Linux-Kernel mit readl() und 
writel() angesprochen.
Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code, 
oder?
Wie wird dann so etwas wie das oben geschilderte (ReadOnly-SubFeld an 
einem R/W-Port) eigentlich realisiert in der Hardware?
#5828008
Lesenswert?
• ▲
▼
Mutluit M. schrieb:
> Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code,
> oder?

RAM/ROM sicherlich nicht, sondern eben ein I/O Port, der 
konfortablerweise über eine Memory-Addresse angesprochen werden kann.

In vielen Fällen haben I/O Ports sog. Push-/Pull-Ausgangstreiber, die 
den Ausgang sowohl VCC als auch mit GND verbinden können.
Wenn beide Treiber (high-side und low-side) inaktiv sind, "floatet" der 
Ausgang (auch High-Z oder tri-stated genannt). In diesem Zustand kann 
der I/O als Eingang verwendet werden und folgt der extern angelegten 
Spannung.
Beim "write" wird also der Ausgangstreiber gesetzt, beim "read" der 
Zustand der Pins abgefragt. Ist ein Pin auf Eingang geschaltet 
(Maskierung), sorgt eine Logik dafür, dass der per "write" gesetzte Wert 
ignoriert wird und der Pin "tri-stated" bleibt.
#5828009
Lesenswert?
• ▲
▼
Moin,

Mutluit M. schrieb:
> Hinter einem Port steckt doch nur eine RAM/ROM-Zelle, aber kein Code,
> oder?

Ja, so ungefaehr. Aber hinter jedem Bit des Ports steckt ja eine 
einzelne "RAM/ROM-Zelle". Also kann man die auch wild kombinieren. Und 
z.B. aus Spass an der Freud' ein Register bauen, in dem nur jedes 2. Bit 
beschreibbar ist.
Hardware kann man durch Sprachen wie VHDL oder Verilog beschreiben. Also 
steckt da dann auch "Code" dahinter.
Ginge aber auch mit einem Schaltplan mit z.B. TTL Chips.

Gruss
WK
#5828045
Lesenswert?
• ▲
▼
Mutluit M. schrieb:
> Wie wird dann so etwas wie das oben geschilderte (ReadOnly-SubFeld an
> einem R/W-Port) eigentlich realisiert in der Hardware?

Nur an write Ausgabeports steht hardwaretechnisch ein FlopFlop (RAM-bit) 
dahinter, deren Q-Ausgang mit dem Output-Pin verbunden ist

An den nur read Eingabebits eben nicht, die leiten nur den Zustand am 
Pin beim Lesen weiter nach innen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.