Forum: Mikrocontroller und Digitale Elektronik hardware und sofware schnittstelle


von Brice B. (Firma: Student) (antonio)


Lesenswert?

hallo,

kennt jemand unterschied zwischen softwareschnittstelle und
hardwareschnittstelle. in welchem fall benutzt man eine oder andere, wie 
implementiert man ein softwareschnittstelle ?

danke

von Jochen M. (taschenbuch)


Lesenswert?

Brice,

Die Frage kommt mir erstmal seltsam vor, oder ich habe sie nicht richtig 
verstanden, oder Du hast Dich unklar ausgedrückt.

SOFTWARESCHNITTSTELLE:
Die Möglichkeit, Daten zwischen verschiedenen Systemen/Programmen auf 
logischer Ebene auszutauschen. Meist über Datenformate (BMP,DOC,TIF,) 
und/oder Exportfunktionen realisiert.

HARDWARESCHNITTSTELLE:
Die Möglichkeit Daten über elektrische Signale auszutauschen, z.b. 
Druckerport, USB, IDE, RS232...

Beide sind nicht beliebig gegeneinander tauschbar, weil es sich um 
grundweg getrennte Dinge handelt. So wie ein Kleid und ein Kühlschrank.
Da macht Deine Frage, wann man was benutze, nicht viel Sinn.

Jochen Müller

von Schnattstulle (Gast)


Lesenswert?

Hardwareschnittstelle = Stecker (kann man anfassen)
Softwareschnittstelle = API (muss man programmieren)

von Frank L. (hermastersvoice)


Lesenswert?

oder Alternativ:

Hardwareschnittstelle: Controller hat bestimmte Hardware OnBoard und man 
kann Diese mit speziellen Befehlen direkt ansteuern

Softwareschnittstelle: Der Controller hat die gewünschte Hardware nicht 
OnBoard, dann kann man diverse Schnittstellen in Software nachbilden.

Oder man benötigt von einer Funktion mehr als der Controller in Hardware 
hat, dann kann man Beides nutzen. Ein Beispiel wäre z.B. UART. In vielen 
Controllern vorhanden, kann aber auch in Software nachgebildet werden. 
Oder man benötigt einen PWM Ausgang und der Controller hat keine 
Hardware dafür, dann schreibt man sich ein Stück Software die diese 
Funktion übernimmt.

War sowas gemeint?

bye

Frank

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

@ Jochen Müller:

Ja, haste wahrscheinlich falsch verstanden. Der OP meinte es sicherlich 
so:
Mancher Controller hat z.B ein UART komplett in Hardware - die CPU 
konfiguriert ein paar Register und muß dann nur noch Datenbytes absetzen 
und abholen. Hat man einen Controller ohne diese Hardware oder braucht 
man mehr als ein UART zur selben Zeit, muß man dieses in einer 
Software-Routine implementieren. Die CPU muß sich dann um das komplette 
Timing kümmern, muß Pins per Befehl setzen und pollen, um die Daten 
verschicken und abholen zu können. Die Hardware-Variante ist extrem 
ressourcenschonend, zumal oftmals Interrupts von der Hardware ausgelöst 
werden können, die das Hauptprogramm nur kurz unterbrechen, den 
Datentransfer in die Register abwickeln und wieder zum Hauptprogramm 
zurückfinden. Wenn man keine Wahl und genügend Rechenzeit hat, kann man 
das auch komplett in Software machen. Immer in Software muß man 
Schnittstellen implementieren, die der Controller ohnehin nicht 
(korrekt) oder nicht nach den Wünschen des Anwenders unterstützt.

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.