hallo, kennt jemand unterschied zwischen softwareschnittstelle und hardwareschnittstelle. in welchem fall benutzt man eine oder andere, wie implementiert man ein softwareschnittstelle ? danke
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
Hardwareschnittstelle = Stecker (kann man anfassen) Softwareschnittstelle = API (muss man programmieren)
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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.