1ms akce pod WinXP
Jaroslav Buchta
jaroslav.buchta@gmail.com
Středa Duben 29 08:49:59 CEST 2009
Delal jsem ovladac pro radkovou kameru pripojenou pres par. Port a reakce na
preruseni byly slusny, 2ms bez problemu a ztrat, min jsem nezkousel. Nevim,
jestli se jde zretezit do systemoveho preruseni od casovace, to by mohlo byt
docela elegantni. V tech ovladacich je to asi jedina relativne zarucena
metoda, I kdyz primo obsluha v ISR to taky asi uplne neni... Je to paradox,
procesory na gigaHertzech a je problem reagovat v 1ms ;-)
-----Original Message-----
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of "Ing. K.Prokůpek"
Sent: Wednesday, April 29, 2009 8:23 AM
To: HW-news
Subject: Re: 1ms akce pod WinXP
Ještě je jedno řešení, které by podpořilo $subj. Udělat si vlastí
periferii, PCI-express nebo PCI, která by na sobě měla hardwarový čítač,
který by pak periodicky házel přerušení.
K tomu by byl potřeba kvalitní driver. Pokud by na sběrnici nebylo moc
dalších zařízení (např. grafická karta, zvuková karta), mohy by být
požadavky obslouženy včas. U ISA by to bylo daleko jednoddušší, ale kdo
ji z nás ještě v PC má :-).
Ještě mně napadlo jedno řešení. Vykostit Win XP, tak aby bylo co nejméně
běžících modulů a ovladačů na nízké vrstvě. Např. dát pryč síťovou
kartu, úplně vyrušit podporu TCPIP. Otázkou je jestli Win XP, když má
kompletně odinstalovanou síť, jestli součást jádra také je deaktivovaná,
nebo jestli ji systém volá stále.
Dát pryč USB hosty, popř. grafickou kartu. Pak už mně nenapadá nic víc
(kromě řadiče disku), co by mohlo periodicky otravovat a být příčinou
prodlev.
KPR
Vojtěch Bubník napsal(a):
>Na Windowsech s pomocí multimedia timers dosáhnete časování v řádech
>jednotek ms většinou, ale není to zaručené, jak jste již zjistil.
>
>Napsat si modul do kernelu, ať už to budou běžné Windows či Linux
>pomůže, ale vyovolání timeru vám to nezaručí. Je to tím, že jádro a
>ovladače nejsou preemptivní. Pro zajímavost, Windows CE jsou psány jako
>real time operační systém, což znamená, že je přesně definovaná
>maximální doba odezvy, ale 10% z 1ms to nebude.
>
>Pokud nutně potřebujete spolehlivé časování po 1ms, potom budete
>potřebovat buď real time operační systém a umět ho použít, a nebo
>nějaký externí bastl. Druhé řešení mi připadá smysluplnější a
>univerzálnější.
>
>Vojta Bubník
>
>
>
>>------------ Původní zpráva ------------
>>Od: Ing. Petr Weissar, Ph.D. <weissar@kae.zcu.cz>
>>Předmět: 1ms akce pod WinXP
>>Datum: 28.4.2009 09:54:55
>>----------------------------------------
>>Zdravim, rada z vas tu k ovladani HW pouziva PC s Win (XP) a tak tu
>>zkusim udat
>>
>>dotaz meho kolegy:
>>
>>Potrebuji spoustet nejaky podprogram s periodou 1ms. Umim to udelat
>>pomoci
>>TimeSetEvent a callback funkce - z knihovny mmsystem. Umim take zjistit
presnou
>>
>>periodu spousteni pomoci TimeGetTime. Problem je ze perioda je v
>>prumeru
>>dostatecne presna, me by stacila prenost kolem 10%, ale obsas do toho
promluvi
>>
>>win, a perioda se prodlouzi 1x na 10-20ms, pak se to system snazi
>>dohnat
>>kratkymi priodami a pak se to vrati zase k normalu. Je to samozrejme
>>nepravidelne s cetnosti tak do 20 za 1s. Co by me stacilo - perioda 1ms,
>>presnost 10% (ale znama, umim zjistit pomoci TimeGetTime) a prodlouzeni,
pokud
>>obcas nastane by nemelo presahnout 3-4ms. Potreboval bych zjistit, zda to
jde.
>>
>>
>>Poradite prosim nekdo ? Dekuji
>>
>> Petr Weissar
>>_______________________________________________
>>HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
>>http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>>
>_______________________________________________
>HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list