Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

algemene vraag hardware aansturen

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

Verwijderd

Topicstarter
ik vraag mij nu al een hele tijd af hoe de wisselwerking van software (low level) naar hardware precies wordt gerealiseerd. Ik volg zelf een electronica opleiding maar ook daar heb ik de vraag meerdere malen gesteld maar ik krijg er geen duidelijk antwoord op. Het komt neer op het volgende: hoe kan het dat iets wat je programmeert en vervolgens compileert naar machinetaal, het fysieke hardwarematige deel weet wat voor acties hij moet doen. Nou weet ik ook wel het verhaal van spanningen, logische poorten etc etc., maar ik mis gewoon iets in het hele verhaal.

Heeft iemand hier misschien een antwoord? Ik hoor het graag!

  • Invisible_man
  • Registratie: Juni 2006
  • Laatst online: 21-11 14:05
Door gebruik te maken van (micro)controllers (of andere programeerbare ic's wat dat betreft) die via een databus kunnen praten met andere controlers (chipset, cpu, hd-controller, you name it). Mischien kan je wat specifieker uitleggen wat je precies wilt weten?

Anders zou je je eens moeten verdiepen in de architectuur van z'n microcontroller of een cpu, dan wordt het je mischien al wat duidelijker.

[ Voor 21% gewijzigd door Invisible_man op 09-10-2007 15:04 ]


  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 19-11 14:21

LauPro

Prof Mierenneuke®

Door middel van een interface, bijv: http://www.velleman.be/nl/en/product/view/?id=364910

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • BraveWorld
  • Registratie: September 2001
  • Niet online
Mmm, ik denk dat ik me wel iets kan voorstellen bij de vraag van de TS. Ik denk dat ik vroeger ook wel 's in dat schemergebied tussen begrip en onbegrip heb gehangen wat software en hardware betreft.

Alleen is de vraag makkelijker en breder gesteld dan je zo even kan beantwoorden. Op welk nivo wil je het beantwoord zien? Wat begrijp je niet precies? Kan je een voorbeeld geven? Begrijp je niet hoe de processorinstructies tot bepaalde acties en het verloop van de software leiden? Begrijp je niet hoe je bijvoorbeeld een lampje aan/uit kan schakelen met een processor?

Houd in gedachte dat processors dom zijn en uitvoeren wat processsorinstructie (opcode) en cpu-struktuur bepalen. Een bepaalde opcode zal betekenen dat de waarde van 2 registers verwisseld worden, of een byte van een geheugenlokatie opgehaald en in een register gezet moet worden. Daartoe zal naast de opcode ook het geheugenadres meegegeven moeten worden, en wellicht het register waarnaar je de waarde gekopieerd wilt hebben.

Er zijn instructies die de waarde van registers bij elkaar optellen. En dat optellen is weer een hardwarematig trucje waar je een pagina over kan vullen.

Als je een lampje wilt aan/uit schakelen, dan moet je ergens een I/O poort schakelen. Daartoe zal er een opcode zijn die verwijst naar een bepaalde I/O adres en die daarbij een waarde (bit of byte) naar die lokatie kan schrijven. Die instructie genereert dan de juiste bits op zijn adres- en databus en geeft daarbij aan of geschreven of gelezen moet worden. Die I/O-poort is dan ook weer gewoon een register die de geschreven bits onthoudt. Alleen zijn die bits dan naar buiten toe uitgevoerd waardoor je er via een elektronische schakeling en relais bijvoorbeeld een lamp mee kan schakelen.

Het werk dat een computer doet is kortweg het heel veel verplaatsen en kopiëren van bits tussen registers, memory en I/O en het uitvoeren van rekenkundige bewerkingen daarop. Betekenisloos dus. Het krijgt pas betekenis als er een interface naar de buitenwereld aanhangt, en een toetsaanslag een inputbitje zet, of een bitje op een uitgang een pixel op een beeldscherm aanstuurt.

Dit alles is nogal simpel uitgelegd. Vraag alsjeblieft niet hoe een moderne processor z'n werk doet... :)

Ik denk dat je flink moet gaan Googlen, er valt gewoon te veel over te zeggen. En een microprocessorkitje van PIC of AVR kopen en mee experimenteren, dan ga je het snel genoeg doorhebben.

[ Voor 8% gewijzigd door BraveWorld op 09-10-2007 16:10 ]

Dit is geen signature...


  • flux_w42
  • Registratie: November 2006
  • Laatst online: 07-09-2024

flux_w42

jah, nu is het helemaal kapot

Vorig jaar heb ik in VHDL een systeem gebruikt met een PowerPC, AC97 geluidskaart, uart, gpio, ...

Alle hardware apparaten waren (viavia) verbonden met één bus (PLB = Peripheral Local Bus). Zelfs het extern RAM (ramlatje van 512Mb) was aangesloten op die BUS. Tijdens het ontwerp moest er voor gezorgd worden dat alle hardware componenten hun eigen adresbereik hadden, zonder dat deze overlapten.

De software die later moest draaien op de PPC, merkte in principe géén verschil tussen adressen waar een geheugenplaats uit het ramlatje mee werd aangewezen en een adres die naar een hardware onderdeel verwees.

Door nu de juiste data naar de juiste adressen te schrijven of te lezen, was het mogelijk om bijvoorbeeld de geluidskaart te besturen (volume, balans, lin/in aan en uitschakelen, ...). Het enige wat je goed moest weten was: Op welk adres staat welke functie van een hardware onderdeel.

Volgens mij heet dit systeem Memory-mapped I/O

Hopelijk heb je iets aan mijn uitleg :)

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

Dit topic is een dubbelpost van algemene vraag hardware aansturen . Dubbelposts is niet iets wat hier op GoT gewenst is; als je wilt dat je andere topic naar EL gemoved word, kan je dat in je oude topic dmv een topicreport (het handje bovenin je topic) aangeven.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog

Pagina: 1

Dit topic is gesloten.