Różnica i związek między oprogramowaniem układowym a sterownikiem urządzenia

27
  1. Czym różni się oprogramowanie układowe i sterownik urządzenia od siebie? Myślę, że oba urządzenia sterujące?
  2. Czy oprogramowanie układowe zawsze uruchamia się automatycznie, podczas gdy sterownik musi być uruchamiany / uruchamiany przez system operacyjny?
Tim
źródło

Odpowiedzi:

24
  1. Oprogramowanie układowe to oprogramowanie działające na urządzeniu. Sterownik to oprogramowanie, które informuje system operacyjny, jak komunikować się z urządzeniem. Nie wszystkie urządzenia mają oprogramowanie wewnętrzne - tylko urządzenia o pewnym poziomie inteligencji.

  2. Nie jestem do końca pewien, co masz na myśli ... mówiąc ogólnie, oprogramowanie układowe nie ma nic wspólnego z „uruchamianiem”… Myślę, że może chodzi o to, czy urządzenia z oprogramowaniem zawsze mają zainstalowane oprogramowanie układowe na urządzeniu, czy jest ładowany po czasie uruchamiania. Jeśli o to pytasz, odpowiedź brzmi nie ...

Najczęściej urządzenia z oprogramowaniem układowym mają oprogramowanie zaprogramowane w urządzeniu (z układem ROM lub programowalnym układem ROM), ale istnieją urządzenia, w których oprogramowanie układowe jest ładowane do urządzenia w czasie inicjalizacji. Mogę wymyślić niektóre karty sieciowe i kamery internetowe, które działają w ten sposób, ale jestem pewien, że są też inne.

Flimzy
źródło
Dzięki! w 2, przez samoczynne uruchomienie, mam na myśli to, że jeśli oprogramowanie układowe jest uruchamiane samodzielnie przez innych, a sterownik nie jest uruchamiany przez system operacyjny? Słowo „samoczynne uruchamianie” wybrałem z „Bez systemu operacyjnego użytkownik nie może uruchomić aplikacji na swoim komputerze, chyba że program sam się uruchamia” w en.wikipedia.org/wiki/Operating_system
Tim
1
Oprogramowanie układowe jest uruchamiane przez samo urządzenie sprzętowe ... Myślę, że to odpowiada na pytanie? Rozważ to: wiele urządzeń nie-komputerowych ma „oprogramowanie układowe” - takie jak aparaty cyfrowe, odtwarzacze DVD, telefony komórkowe itp. Oczywiście w takich przypadkach oprogramowanie układowe jest całkowicie samoistne w samym urządzeniu. Tylko jeśli / kiedy podłączysz jedno z tych urządzeń do komputera, potrzebujesz sterownika .
Flimzy,
1
Dzięki! From en.wikipedia.org/wiki/Computer_software : „Oprogramowanie układowe to oprogramowanie niskiego poziomu, często przechowywane w programowalnych elektrycznie urządzeniach pamięci. Nazwa oprogramowania układowego jest traktowana jako sprzęt i uruchamiana („ uruchamiana ”) przez inne programy.” Czy oprogramowanie układowe jest obsługiwane przez inne programy lub sam sprzęt?
Tim
-1 dlaczego mówisz only devices with some level of intelligence have firmware? Powiedziałbym, że jest na odwrót, proste (elektroniczne) urządzenia mogą nie mieć systemów operacyjnych, ale mają oprogramowanie wewnętrzne.
Celeritas,
@Celeritas: Ponieważ tylko urządzenia o pewnym poziomie inteligencji mają oprogramowanie wewnętrzne, w przeciwieństwie do tych (takich jak port RS-232), które tego nie robią. Jeśli porównujesz urządzenia z całym systemem operacyjnym (telefon komórkowy, iPod, programowalny GPS itp.), Mówisz o zupełnie innej warstwie abstrakcji, która tak naprawdę nie ma nic wspólnego ze „sterownikami urządzeń” w tradycyjnym tego słowa znaczeniu. Ta klasa oprogramowania dostępowego jest często nazywana „sterownikiem urządzenia”, ale w rzeczywistości jest to protokół aplikacji sieciowej zaimplementowany na sterowniku urządzenia (takiego jak ten, który komunikuje się z portem USB lub bluetooth).
Flimzy,
5

Oprogramowanie wewnętrzne implementuje szczegóły niskiego poziomu, które są wymagane do obsługi sprzętu, i zapewnia interfejs API / ABI na wyższy poziom. Sterownik urządzenia zapewnia adapter między systemem operacyjnym a interfejsem API / ABI ujawnionym przez oprogramowanie układowe.

Ignacio Vazquez-Abrams
źródło
1
Dzięki! Czy sterownik urządzenia jest częścią systemu operacyjnego i jest uruchamiany przez jądro systemu operacyjnego? Czy oprogramowanie układowe jest częścią urządzenia i przez które jądro systemu operacyjnego lub samo oprogramowanie układowe działa?
Tim
1
Sterownik urządzenia jest uważany za część systemu operacyjnego i zwykle działa na hoście CPU. Oprogramowanie układowe jest zwykle uruchamiane przez urządzenie; może jednak zostać przesłany na urządzenie przez system operacyjny.
Ignacio Vazquez-Abrams,
To powinna być zaakceptowana odpowiedź.
Eric Wang,
4

Współczesna definicja lub powszechne użycie oprogramowania układowego nie ma nic wspólnego z konkretną funkcjonalnością oprogramowania. Oprogramowanie układowe to po prostu oprogramowanie przechowywane w nieulotnej pamięci półprzewodnikowej (np. PROM, EEPROM lub flash), a nie w urządzeniu pamięci masowej, takim jak dysk twardy. Przechowywane oprogramowanie może być monolitycznym połączonym plikiem binarnym lub składać się z modułu ładującego, jądra i modułów aplikacji. (OTOH Widziałem niektóre karty tunerów TV dla komputerów PC, które wymagają załadowania „oprogramowania układowego” przez jądro Linuksa w celu zakończenia inicjalizacji.)

Początek tego terminu ma związek z logiką sterowaną przez procesor w porównaniu z logiką przewodową. Oprogramowanie przechowywane na dyskach twardych można łatwo modyfikować i aktualizować. Poprawki i aktualizacje logiki przewodowej wymagały przeprojektowania płyty lub modułu i wymiany. Środkiem ziemi był procesor wykonujący oprogramowanie do sterowania sprzętem. Program został nazwany firma ware odzwierciedla kompromis pomiędzy miękkim ware kontra twardego przewodowej logiki. Pierwotnie oprogramowanie było przechowywane w pamięci ROM, PROM lub EPROM w celu zachowania modułowości płyty. Postępy w EEPROM i układach flash pozwoliły na aktualizację oprogramowania układowego w obwodzie i na pokładzie.

Ponieważ procesory (i urządzenia peryferyjne) stawały się coraz mniejsze, tańsze i wymagały mniej energii, rozszerzono możliwości osadzania ich w każdym urządzeniu / urządzeniu. Aby oprogramowanie do obsługi tych urządzeń było solidne i bezpieczne, oprogramowanie jest przechowywane w układach pamięci flash, a nie na dysku twardym; dzięki temu urządzenie jest mniejsze i znacznie tańsze. Termin oprogramowanie wewnętrzne został rozszerzony, aby objąć całe oprogramowanie urządzeń / urządzeń z wbudowanymi procesorami, nawet jeśli niektóre części przechowywanego kodu nie mogą mieć związku z zastąpieniem logiki przewodowej.

trociny
źródło
Co to znaczy instalować oprogramowanie na pamięci masowej? Podoba ci się ten pakiet Debiana ?
xuhdev,
1
@xuhdev - Ten pakiet Debiana składa się z plików, które mogą być używane przez różne sterowniki urządzeń Linux. Pliki są nazywane „oprogramowaniem układowym”, ponieważ są zapisywane na podłączonym urządzeniu przez sterownik Linux. Pliki mogą zawierać dane operacyjne lub kod dla wbudowanego uC / uP urządzenia. Pamiętaj, że ten plik przesłany do urządzenia jest ładowany do pamięci ulotnej urządzenia i ładowanie musi nastąpić po każdym resecie urządzenia lub systemu. „Instalacja” tego „firmware” na pamięć masową gospodarza jest jedynie mechanizmem proceduralny (czyli manipulacja opakowaniem).
trociny
3

Ktoś ostatnio opublikował to pytanie , mówiąc:

Oprogramowanie układowe to połączenie trwałej pamięci, kodu programu i przechowywanych w nim danych. Typowymi przykładami urządzeń zawierających oprogramowanie wewnętrzne są systemy wbudowane, takie jak sygnalizacja świetlna, urządzenia konsumenckie, zegarki cyfrowe, komputery, urządzenia peryferyjne, telefony komórkowe i aparaty cyfrowe. Oprogramowanie układowe zawarte w tych urządzeniach zapewnia program sterujący dla urządzenia.

W rzeczywistości driversznacznik SuperUser jest zdefiniowany:

Sterownik, zwany także sterownikiem urządzenia lub sterownikiem oprogramowania, to oprogramowanie, które umożliwia programom komputerowym wyższego poziomu interakcję z urządzeniem sprzętowym. Gdy program komputerowy zażąda interakcji z określonym urządzeniem sprzętowym, sterownik zajmie się tłumaczeniem instrukcji i danych wyjściowych między urządzeniem a programem komputerowym wywołującym sterownik.

i firmwaretag jest zdefiniowany:

Zasadniczo różnica między oprogramowaniem a oprogramowaniem układowym polega na poziomie interakcji ze sprzętem. Oprogramowanie układowe działa na bardzo niskim poziomie sprzętu, a oprogramowanie na wysokim poziomie. Oprogramowanie układowe ogólnie kontroluje podstawowe czasy, elementy sterujące i funkcje sprzętu.

Początkowo myślałem, że firmwarezostał zainstalowany bezpośrednio na chipie lub płycie i tam mieszkałem, dlatego należy go „sflashować”, podczas gdy należy zainstalować driversystem operacyjny.

Wniosek:

Firmwarepozwala sprzętowi na „robienie” rzeczy i driverspozwala oprogramowaniu na interakcję ze sprzętem.

bgmCoder
źródło