Bus (datakommunikation)

Indenfor computerteknologi er en bus, datakommunikationsbus eller computerbus en dataforbindelse, som overfører data mellem computerkomponenter (f.eks. hukommelsesord, dataport) indeni en computer eller mellem dataværter (f.eks. computere, modemmer og dataterminaler).

I modsætning til en punkt-til-punkt dataforbindelse, kan en bus logisk forbinde flere dataenheder via de samme ledninger. Hver busstandard definerer dets grænseflader (fysiske dataforbindelser + de elektriske signalers form + dataprotokol) med henblik på den fysiske sammenkobling af datakort og datakabler.

Oprindelig var en bus de interne signalforbindelser som forbandt digitale hukommelser, visse datachip med CPUen. Der var separate adresselinjer, datalinjer og styrelinjer. En styrelinje er f.eks. read/write-signalet og kan også være chip-select/enable-linjer. I dag kan adressesignaler og styresignaler være indlejret i datarammer som f.eks. afsenderadresse, modtageradresse og evt. styresignaldata(f.eks. bitflag) – sammen med de normale data.

En bus omfatter disse fysiske eller logiske signaler – de logiske signaler er indlejrede i datarammer:
 Styresignaler (styrebus-funktion) – eller indlejrede styresignaldata eller bitflag (f.eks. clear to send (CTS)...). Et taktgiversignal (clock, synkroniseringssignal) kan være en del af bussens fysiske styresignaler.
 Adressesignaler (adressebus-funktion) – eller indlejrede modtageradresse eller afsenderadresse (f.eks. ethernetadresse)
 Datasignaler (databus-funktion) – det som skal sendes; payload

En seriel bus har netop ét datakredsløb til at sende data via – og kan have et separat datakredsløb til at modtage data via. (Men et datakredsløb kan faktisk godt anvendes til at sende og modtage via – og det både som halv-dupleks og fuld-dupleks)

En parallel bus har mindst to datakredsløb til at sende data via – og kan have to eller flere separate datakredsløb til at modtage data via.

I princippet er ældre PCeres RS-232 (serielport) og parallelport (f.eks. IEEE 1284) ikke busser, da de hverken har adressesignaler eller indlejrede adresser. Men anvendes der lag-2 dataprotokoller, som har indlejret adresser, bliver RS-232- og parallelport-forbindelsen anvendt som om det var en bus. RS-232- og parallel-porte er oprindeligt blot beregnet til punkt-til-punkt dataforbindelser.

Busterminering 
Før i tiden havde en bus to ender og hver datakredsløbende skal sædvanligvis belastes af ohmsk modstand (kaldes på engelsk en terminator-modstand). Grunden er, at en datakredsløbs to ledere faktisk skal opfattes som en transmissionslinje, grundet de høje formidlede signalfrekvenser. Hvis de to ender ikke belastes korrekt, bliver de højere frekvenser reflekteret ved enderne og bliver en del af det oprindelige signal, hvilket derfor bliver ødelagt og dermed ulæseligt for datamodtager(ne).

En del busser behøver ikke "korrekte" terminator- modstande, enten pga. korte afstande – eller pga. lave overførselshastigheder.

Multi-drop, punkt-til-punkt 
Hvis der mellem de to busender kan tilsluttes dataudstyr udover dataudstyret ved enderne, kaldes bussen for en multi-drop bus. En computers interne bus er et eksempel på en multi-drop bus og RS-485 er det også.

Er bussen ikke beregnet til multi-drop, kaldes den for en punkt-til-punkt bus eller punkt-til-punkt dataforbindelse.

Forgrenede busser (og datanet) 
Nyere busser (f.eks. USB) har ikke traditionel multi-drop, men kan derimod forgrenes, da en USB-hub kan forbinde til flere USB-hubs og USB-dataenheder.

Datanet (f.eks. ethernet) henregnes ikke som en bus, men forskellen mellem busser og datanet er mere en begrebsmæssig forskel end en praktisk.

Datanet kan under særlige omstændigheder have en eller flere dataløkker. Dette forudsætter at f.eks. switche understøtter og har aktiveret en spanning-tree-dataprotokol. Spanning-tree vil via kommunikation gennem dataforbindelser finde løkker og vil så beregne et "optimalt" datatræ baseret på dataforbindelsernes portes spanning-tree-vægte.

Internettet kan i princippet opfattes som en stor bus med enorme mængder løkker. Der behøves ikke spanning-tree, da routerne normalt kun sender lag-3-datapakkerne én vej.

Eksempler på busser til primært internt brug

Parallelle 
 S-100 bus anvendt i Altair og lignende computerere
 Industry Standard Architecture eller ISA
 Extended ISA eller EISA
 MicroChannel eller MCA
 NuBus eller IEEE 1196
 SBus eller IEEE 1496
 Peripheral Component Interconnect eller PCI
 VMEbus, the VERSAmodule Eurocard bus
 VESA Local Bus eller VLB eller VL-bus
 Accelerated graphics port eller AGP

Serielle 
 I²C
 HyperTransport
 PCI-Express

Eksempler på busser til primært eksternt brug

Parallelle 
 Advanced Technology Attachment eller ATA (også kendt som IDE, EIDE, ATAPI, osv.) disk/tape peripheral attachment bus
 IEEE-488 (også kendt som General-Purpose Instrumentation Bus eller Hewlett-Packard Instrumentation Bus)
 HIPPI HIgh Performance Parallel Interface
 PCMCIA
 SCSI disk/tape peripheral attachment bus

Serielle 
 ACCESS.bus (A.b)
 Apple Desktop Bus (ADB)
 Fibre Channel
 IEEE 1394 (FireWire)
 RS-232
 RS-422A
 RS-423A
 RS-485
 Serial ATA
 Serial Storage Architecture (SSA)
 Universal Serial Bus (USB)

Eksempler på interne/eksterne databusser 
 Futurebus
 InfiniBand
 SCI
 QuickRing

Eksterne henvisninger 

 Chip Weems' Lecture 12: Buses 
 interfacebus.com: Computer and Embedded Interface Bus List

 
Datatransmission
Digital elektronik