210 likes | 330 Views
Lynkurs i PC-basert instrumentering. FYS 223 – PC-basert instrumentering Vårsemester, Fysisk institutt, 3 vekttall Gi gjerne tilbakemelding til:. Datafangst med PC. Styring med PC. Bakpå PC’en (1). Bakpå PC’en (2). 8 bit = 1 byte. Inne i PC’en. Noe av det du finner i en PC.
E N D
Lynkurs i PC-basert instrumentering • FYS 223 – PC-basert instrumenteringVårsemester, Fysisk institutt, 3 vekttall • Gi gjerne tilbakemelding til: ogm@fys.uio.no
Datafangst med PC ogm@fys.uio.no
Styring med PC ogm@fys.uio.no
Bakpå PC’en (1) ogm@fys.uio.no
Bakpå PC’en (2) 8 bit = 1 byte ogm@fys.uio.no
Inne i PC’en ogm@fys.uio.no
Noe av det du finner i en PC ogm@fys.uio.no
Hvor skal vi så koble oss til? • Parallellport: Kanskje det enkleste. Ca. 100 kB/s og oppover (8 bit). • Serieport (RS232): Også relativt enkelt. Mange A/D og D/A –omformere med serietilkobling. Opp til ca. 10 kB/s. • USB: Noe mer komplisert, men finnes egne kontrollerkretser. Opptil 1 MB/s (IEEE1394/Firewire ca. 8 MB/s og oppover). • ISA-buss: Maks. 8 MB/s (16 bit). Må inn i PC’en. Ikke særlig aktuell for bærbar PC. Ellers enkel å konstruere for. • PCI-buss: Maks. 528 MB/s (64 bit). Inne i PC’en. Rask og noe komplisert. • PCMCIA (CardBus): Hovedsaklig for bærbar PC. Maks. 7,8 MB/s (16 bit) (CardBus 132 MB/s (32 bit)). Krever mer spesielt utstyr p.g.a. små dimmensjoner. ogm@fys.uio.no
Eks.: Parallell-porten ogm@fys.uio.no
Programmering outportb(0x378,0x01); Eksempler fra C: • outportb(adr,data); • a=inportb(adr); • pek=getvect(ir_num); • setvect(ir_num,pek); • I DOS er alt dette lov, men ikke i et vanlig Windows-program ogm@fys.uio.no
Dette kan f.eks. være med adressebuss databuss INT A/D omformer måle noe Adresse dekoder D/A omformer styre noe kontrollbuss Kontroll signaler Avbrudd, DMA, wait-state, etc. ogm@fys.uio.no
Eks.: ISA-buss eller PCMCIA ogm@fys.uio.no
Eks.: I/O på ISA-buss ogm@fys.uio.no
Windows Windows 98 WINDOWS 98 Kooperativ multitasking: • 16 bits win programmer Preemptive multitasking: • 32 bits win programmer • DOS-programmer DOS-programmer kjører i Windows 98 og Windows NT, men kan ikke gjøre I/O etc. i NT ogm@fys.uio.no
Windows driverarkitektur - plattformstøtte Win 3.x Win 95 Win 98 VxD VxD+PnP VxD/PnP + WDM Win 2000 NT 3.x NT 4.x KMD + PnP + WDM KMD KMD VxD = Virtual x Device KMD = Kernel Mode Driver WDM = Windows Driver Model ogm@fys.uio.no
NuMega DriverStudiowww.numega.com Microsoft DDKrequired Windows 95 Windows 98 Windows NT 4.0 Windows2000 MicrosoftVisual C++ BorlandC++ Builder Component Other Visual Basic Java Delphi DriverAgent NO VtoolsD NO (VxD) DriverWorks (WDM) YES SoftICE NO DriverWorkbench NO FieldAgent NO Bounds-Checker NO NO TrueCoverage TrueTime NO
Driver Agent • Driver Agent gir: DLL (Dynamic Link Library - fellesprogram i ring 3) + Driver-fil (VxD eller KMD)eller “Kernel Agent” (større del av applikasjonen i ring 0 - unngår tidkrevende bytte av modus) • Gir I tillegg kildekode for applikasjonsprogrammet (skjelett) • Driver-filen er egentlig ferdiglaget og dekker alle I/O-adresser , avbrudd, o.s.v. • Oppretter en s.k. “device” (blir automatisk beskrevet i Windows-registeret) som aktiverer de nødvendige adresser og avbrudd ogm@fys.uio.no
Driver Agent (Device 1) ogm@fys.uio.no
Driver Agent (Device 2) ogm@fys.uio.no
Driver Agent (Application 1) ogm@fys.uio.no
Driver Agent (Application 2) ogm@fys.uio.no