Citat:
Ursprungligen inskrivet av Happen
Du gör inte en speciellt rättvis jämförelse. Prestanda(hastighet) skillnaden är enorm mellan RS232 och USB. Det gör att USB behöver vara mer avancerat, vilket leder till att det finns fler saker som kan strula. Precis som att en F1-bil kräver mycket mer underhåll för att fungera jämfört med en Toyota Corolla. RS232 går inte använda till flesta produkter eftersom det är långsamt och klumpigt.
Öhh? Jämförelsen mellan RS232 och USB står artikeln för, inte jag. Jag förklarade just bara att de kompletterar varandra och den ena inte kan ersätta den andra.
Vad hastigheten beträffar har du fel. Det finns ingen som helst relation mellan prestanda i betydelsen hastighet och hur "avancerat" det är på de högre kommunikationslagren. Prestandan hänger mer på kabel och signalintegritet och liknande än på något mjukvarulager längre upp. UART på PC klarar i allmänhet bara upp till 115 200 eller 200 någonting, och själva standarden tillåter hastigheter upp till dryga 1 Mbit/s. Inget hindrar emellertid att man har en elektrisk specifikation som kan köra RS232 i säg 100 MBit, eller ännu bättre RS485 med full differentiell signalering. Andra icke-relaterade standarder kan vara både snabbare och enklare än RS232, t.ex. SPI som klarar 20 Mbit/s eller så och är i sin enklaste form två (eller t.o.m. bara 1 vid simplexförbindelse) skiftregister. RS232 kan vidare kompliceras godtyckligt genom att smeta på protokoll och högre lager som t.ex. Modbus eller ännu simplare SMBus. Vidare finns CAN-bus, TWI och en sjujäkla massa standarder och ostandarder med alla möjliga hastigheter och komplexitetsgrad. Det finns inget universellt med USB egentligen, USB löser bara mycket specifika, konsumentelektroniska, problem. RS232 är mer universellt då det låter en vanlig, billig PC tala med miljoner mycket speciella, konstiga, specifika, förunderliga, generella och coola apparater. USB har där inte en sportslig chans.
Vidare; om hastigheten är USBs existensberättigande så faller det på att man kopplar möss, tangentbord och annat låghastighetsfanskap till de alltför få men snabba USB-portarna.
Problemet med USB är att det så att säga utger sig för att vara ett universellt seriellt gränssnitt vilket det ju inte är. USB är ett speciellt gränssnitt.
Citat:
Ursprungligen inskrivet av khanan
Hade bestämt för mig att styrmaskinerna i processindustrin, vilka enbart levereras med RS232, kör en seriell<->USB-converter till standard POLL-maskiner -- och SE! När jag frågade den där konstiga snubben från sogeti, så är det just USB -> RS232 converters man använder uteslutande idag och alla seriella styrkretsar (som tydligen gick sönder i tid och otid) är kastade för 6-7 år sedan.
Precis, industrin fullkomligt dräller av USB<>RS232-omvandlare vilket kan vara ett gissel. Embeddedsystemen har i allmänhet RS232 (eller annat) men problemen är kopplingen till vanliga kontors-PC på t.ex. utvecklingsavdelningar. Gamla processmaskiner (i mjukvara) som körs på modern hårdvara är dock ett problem när gamla OS inte gillar dessa donglar. Fördyrande och platskrävande är det också.
Citat:
Ursprungligen inskrivet av Hummus
De allra flesta USB enheter kommer igång utan omstart. Ja, även på ful-OS. Många USB enheter behöver inga drivrutiner alls. Jämfört med alla andra standarder så är min erfarenhet att USB är överlägset mest problemfritt. Bäst av allt är att man kan plugga in och ut enheter fritt. Drog man någonsin ut en PS/2 mus från kontakten hängde sig datorn. Pluggade man in en när datorn var igång så var den död tills man startade om.
Bra induktion!
Du redogör alltså för två typer av data: "Många" USB-enheter vilka "de flesta" inte utgör något problem och _en_ RS232-applikation, nämligen seriemus. Ur detta drar du slutsatsen att RS232 har problem, men inte USB. Kanske skulle fundera lite på ditt dataunderlag?
Hur Windows hanterar seriellmöss är välkänt och fult. För det första finns egentligen inga RS232-möss. I stället är RS232 faktiskt också ett ganska universellt och förlåtande gränssnitt som tolererar prylar som inte följer den rena RS232-standarden. Möss, t.ex, är "fulenheter" som bara snor ström och använder Tx. Windows signalerar vid boot och skickar ut ett "m" på serieporten för att kolla om en seriemus finns ansluten. Hur i helsike kan det vara RS232s fel att Windows inte klarar att återansluta en seriellmus? Det är nämligen Windows som helt enkelt inte frågar. Mössen flyttade man sedermera över till en dedikerad, förenklad RS232-port, nämligen PS/2. Eftersom Windows (eller andra OS) vet att PS/2-kontakten för musen bara ska kopplas till just en mus, kan operativet polla porten och därmed medge in- och urkoppling under drift (något som fungerar ungefär som för USB, det vill säga "sådär"). När operativen ska snacka med ett USB-tangentbord eller en USB-mus så finns en jäkla overhead, inte minst mellan in- och urkoppling.
När man diskuterar sådana här saker kan det vara viktigt att redogöra en smula stringent för sakens natur och inte hemfalla åt känsloargument. Jag skulle kunna svara något i stil med "hur vanligt är det att man byter mus under drift?" för att vifta bort "kritiken". Dylika goddag-yxskaft-svar är ungefär vad man får när man pekar på problem med USB. "Men hur vanligt är det att man vill kommunicera mer än 5 meter"? osv. Det handlar återigen för något jag talat tidigare om: 'confirmation bias' vad självbilden angående den "typiska användaren" beträffar.
Det är så att USB lättare ruckar operativet eller annan mjukvara. RS232 kan inte, så länge du inte kör in 230 volt i kontakten, påverka operativsystemet. Du kan rycka och koppla in enheter precis hur som helst, hur ofta som helst, när som helst. RS232 medger helt "tom" signalering som inte behöver kvitteras alls. Det måste vara operativsystemet eller den generella RS232-drivrutinen (vilket är en del av OS) som tappar fattningen - något som knappast är RS232s fel.
Du skriver att "många" USB-enheter inte behöver drivrutin. Det är fel. RS232 däremot, kan omöjligt kräva någon speciell drivrutin alls eftersom RS232 är just en standard i själva länklagret. I själva verket finns en generell drivrutin för RS232 som är OS-specifik. En enda. Hur kommunikationen ser ut är upp till applikationsmjukvaran. Det UART-chipet på moderkortet vill ha är baudrate och övriga FIFO-inställningar (paritet, etc). USB däremot kräver flera drivrutiner. Nu råkar det vara så att några av de vanligaste finns integrerad i de flesta operativsystem från början. Det finns en drivare för USB-storage (minneskort, etc), för HID-interface (möss, tangentbord och en del enklare apparater) och några till. Dessa, i sin tur, är ofta uppdelade i mer märkes- och produktspecifika drivrutiner. Att USB-sticka X fungerar från fösta början beror inte på att det inte krävs drivrutin utan för att operativet hemfaller åt en HID-liknande grundnivå som alla USB ska kunna kommunicera på och helt enkelt frågar vilken drivrutin som ska användas. Om tillverkaren specat rätt (vilket inte är självklart) går allting smidigt (med dröjer flera sekunder eller rentav minuter i Windows). Om inte får man ett förbaskat jäkla helvete att reda ut vad som gick snett. RS232 kan sniffas, kräver generellt inga drivisar alls (förutom en (1) - den generella, väl utprovade. Om den inte finns tillgänglig kan du alltid 'bit-banga' via UART-kontrollchipet och BIOS-interrupter [om Windows bara låter dig komma nära hårdvara du själv äger ]).
Den som aldrig upplevt DLL-hell med USB (eller över huvud taget) kan bara inte ha speciellt stor erfarenheter av datorer (med ful-OS) och USB-enheter. Någon analog till detta, ett "RS232-hell" finns inte. Möjligt är förstås att modem strular därför att den puckade tillverkaren bestämt sig för att lägga AT-kommandon i en DLL i stället för applikationen och råkar skicka med fel DLL (detta har hänt). Men där finns en solklar analogi till USB.
Skillnaden är denna: USB kräver drivrutiner eftersom protokollen är för komplexa att implementera i hårdvara och förutsätter och uppmuntrar drivrutiner "by design". RS232 är helt "platt" och specades långt innan någon hade hört talas om något så dumt som en "drivrutin" över huvud taget. Drivrutiner där är "by idioticy". Sedan har vi licensfrågor som inte är lika lätta att sätta sig in i för USB.
Så, slutligen: Du kan inte jämföra USB med RS232 och kalla den ena för bättre eller sämre. De är för olika. RS232 är i USB-perspektiv oersättligt. USB är "sämre" där en RS232-lösning är lämplig. USB är "bättre" där just en USB-lösning är lämplig. Något annat finns det egentligen inte. USB ersätter alltså inte RS232 och RS232 kan inte hantera flashdiskar, digitalkameror, webbkameror och andra snabba enheter.