Forum: PC-Programmierung IDE bzw. SATA Controller für andere Zwecke entfremden


von basst scho (Gast)


Lesenswert?

Hi zusammen,
mich hat letztens ein Kumpel ziemlich kirre gemacht.

Er wollte den IDE Controller bei einer PCI Karte für andere Zwecke 
entfremden.

Ok, es gibt aber auch Festplatten die entweder per CHS oder LBA 
Verfahren angesprochen werden.

CHS-> Cylinder, Head, Sektor
LBA-> Ein 48 Bit langer Digitalcode zum auswählen des Sektors.

IDE hat doch nur das CHS Verfahren oder?

Tjo...er wollte die Festplatte mit einem Atmega simulieren.

Unter simulieren versteht er, das er dem Controller der PCI Karte mit 
einem Atmega eine Festplatte vorgaukelt.....

Wenn man nun auf die simulierte Festplatte "Atmega" zugreift sollte 
folgendes sein "......der Atmega kennt nur 1 Sektor, da dies für seine 
Zwecke ausreicht".

1 Sektor = 512 Byte.


Beim Lesen werden 512 Byte von Schieberegistern eingelesen, da dort Gott 
weis was gemessen werden soll.

Beim Schreiben schiebt er die entsprechenden Werte in die anderen 
Schieberegister um got weis was zu steuern.

Des dürfte doch so funktionieren oder?

Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE 
Festplatten beschrieben wird?

von Rene B. (themason) Benutzerseite


Lesenswert?

>Des dürfte doch so funktionieren oder?

Versuch den ATMega dann mit 1GHz laufen zu lassen. Dann klappts 
vielleicht.

>Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE
>Festplatten beschrieben wird?

Ansteuern != Simulieren

Und da ist der Hund begraben. Beim Ansteuern kannst du dir Zeit lassen. 
Beim Simulieren/Emulieren mußt du die maximale Geschwindigkeit die der 
IDE-Controller kann unterstützen. Oder ne Möglichkeit finden den 
Controller deine Platte so langsam auszulesen das der AVR keine dicken 
Backen macht. -> Praktisch unmöglich.

Also abgesehen von der Sinnhaftigkeit ist es meiner Meinung nach nicht 
machbar, da der AVR zu langsam ist.

von basst scho (Gast)


Lesenswert?

Deswegen frage ich ja,
wo es eine Website gibt, die die Ansteuerung einer IDE Festplatte 
beschreibt.

Wenn es nämlich ein Übernahmebit gibt, der dann die Werte erst 
übernimmt, dann spielt die Geschwindigkeit doch keine Rolle.

Ob das Bit nach 1 ms gesetzt, oder erst nach 100 ms gesetzt wird, ist 
doch dann Wurst

von (prx) A. K. (prx)


Lesenswert?

basst scho schrieb:

> IDE hat doch nur das CHS Verfahren oder?

Nein.

> Des dürfte doch so funktionieren oder?

Ich fürchte, dass noch der allerlangsamste Transfermodus den armen AVR 
etwas überfordern könnte.

> Kennt von Euch jemand eine gute Seite, wo das Ansteuern von IDE
> Festplatten beschrieben wird?

Sucht mal nach dem entsprechende Standard. Wobei ihr mit dem Begriff 
"ATA" eher fündig werden, denn so heisst das offiziell.

von Skua (Gast)


Lesenswert?


von Skua (Gast)


Lesenswert?

Die Schnitstelle an sich ist AT-BUS.
IDE ATA ATAPI ist in der Festplatte.

Da kann man dranbasteln was man will und über PIO so langsam übertragen 
wie nötig.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

basst scho schrieb:
> Unter simulieren versteht er, das er dem Controller der PCI Karte mit
> einem Atmega eine Festplatte vorgaukelt.....

Geht nicht. Zwar kann man mit einem AVR eine Festplatte ansteuern, aber 
eine nachahmen geht nicht, weil die Geschwindigkeit der I/O-Zugriffe 
darauf nicht vom AVR, sondern vom PC vorgegeben werden. Und der führt 
die I/O-Zugriffe ganz erheblich schneller durch als ein AVR darauf 
reagieren kann, ganz abgesehen davon, daß das eine 16-Bit-Schnittstelle 
ist.

Eine deutlich lohnendere Spielwiese (die auch schon ausreichend 
kompliziert ist) dürfte die Nachbildung eines Diskettenlaufwerks sein. 
Vom Speicher abgesehen (der extern an den AVR angebunden werden muss, 
praktischerweise als SD-Karte o.ä.) könnten die Resourcen eines gut 
programmierten AVR ausreichen, das Verhalten eines Diskettenlaufwerks 
nachzuahmen.

Ein 360k-/720k-Laufwerk ist leichter nachgebildet als ein 1.2MB- oder 
ein 1.44MB-Laufwerk, da die Datenrate geringer ist.

Aber auch hier gilt, daß der ansteuernde PC das Tempo vorgibt.

von Skua (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> basst scho schrieb:
>> Unter simulieren versteht er, das er dem Controller der PCI Karte mit
>> einem Atmega eine Festplatte vorgaukelt.....

OK.
Dann wird es schwierig.

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.