Ṁikroprocesory v přístroj. technice Ohm-metr.......... Petr Česák Letní semestr 2001/2002
. Ohm-metr 2. úloha ZADÁNÍ Sestavte mikroprocesorem I8031 řízený přístroj pro měření odporu v rozsahu 0 až 40 kohm. Výsledek se bude opakovaně zobrazovat jako dekadické číslo pomocí sériové linky RS-232 na připojeném počítači ve formě: R = 21 749 Ohmu. Zařízení se musí chovat jako měřicí přístroj. Výsledná hodnota odporu bude určena z délky impulsu na výstupu MKO.Chyby měření odporu musí být menší než 0.5% z rozsahu (tj. absolutní chyba max. 200 Ohmu). Správnost měření a velikost chyby ověřte porovnávacím měřením odporové dekády. Programově se koriguje chyba nuly a měřítka pomocí dvou odměrů. Příkazy: "Z" (nula) obsluha zkratuje měřený odpor a přístroj provede kalibraci nuly. Na obrazovku se vypíše stav čítače po kalibraci nuly. "Cxxxxx" kalibrace, zadá se skutečná hodnota kalibračního odporu, který je připojen k přístroji. Přístroj vypočte a nastaví kalibrační konstanty. "S" provede jednorázový odměr a zobrazí aktuální změřenou hodnotu odporu bez průměrování. Pokud byl před stiskem klávesy S přístroj v režimu periodického měření (spuštěného příkazem M nebo A), po provedení jednorázového odměru se do něj přístroj automaticky nevrátí. "M" provádí měření stále (bez průměrování). "A" stálé měření s průměrováním ze 4 měření. Na obrazovce se zobrazuje hodnota odporu vypočtená jako průměr ze 4 měření. ROZBOR Mikropočítač (dále Mp) bude startovat monostabilní klopný obvod (MKO) 74121 pomocí spádové, případně náběžné, hrany na příslušném vstupu MKO. Na výstupu Q se objeví kladný impuls "1" po dobu T. Tw= ln2.(rp +Rint).C Petr Česák 1
R je měřený externí odpor, Rint je vnitřní předřadný odpor o velikost přibl. 2 kohm. Při použití Rint se dosáhne nižší chyby linearity závislosti (1) v počátku. Mp změří dobu Tw, vypočte celkovou velikost odporu Rint + R. Pro správnou korekci chyby nuly je třeba odečíst hodnotu, která odpovídá Rp. Proto se musí změřit nejdříve doba Tp, která odpovídá velikosti Rp. Měření délky impulsu bude pomocí vnitřního vestavěného čítače. Pro správný návrh způsobu měření se nejdříve vypočte předpokládané rozmezí velikostí doby Tw. K dispozici jsou kondenzátory C=220 nf. Výrobní tolerance kapacity kondenzátorů může dosahovat i hodnot 10 až 20 %. Proto algoritmus měření bude obsahovat možnost korigovat chybu určení R na základě měření referenčního odporu, které se provede pouze v procesu jednorázové kalibrace. K= Rref / Rref1,kde Rref je skutečná velikost referenčního odporu Rref1 je hodnota určená při jeho měření pomocí MKO. Správnou hodnotu neznámého odporu pak program určí po vynásobení změřené hodnoty korekční konstantou. Rspr = R * K,kde Rspr je velikost odporu po korekci chyby. Uvedený princip se obvykle používá v mikroprocesorem řízených přístrojích, aby se obešla nutnost justování nastavovacích prvků. OBVODOVÉ ŘEŠENÍ Startovací impuls pro MKO může MP generovat na libovolném z pinů P1.4 až P1.7. Na vývojové desce (dále VD) je brána P1 je oddělena 8-mi bitovým budičem 74HCT245. P1.4 220nF Petr Česák 2
Pro vstup lze použít P1.0 až P1.3 a přerušovací vstupy /INT0 (P3.2) a /INT1 (P3.3), které lze použít též jako vstupní brány. Je doporučeno připojit výstup MKO na přerušovací vstup /INT0, který umožňuje hradlování čítače T0. Výstup dat Ovládání přístroje a výstup naměřených hodnot bude probíhat prostřednictvím RS-232 na PC. Používá se vestavěný UART v I8031. Pokud se spustí pod MON51 nebo TS51 program na VD, zobrazují se na obrazovce PC znaky, které vysílá program uživatele. Naopak, znaky z klávesnice PC se vysílají prostřednictvím RS-232 do VD. Při použití TS51 je třeba pro tuto funkci myší aktivovat okno "SERIAL". Na počátku programu bude aktivace seriového kanálu. Musí se nastavit mód časovače T1 jako generátoru přenosové rychlosti 9600 Bd. Současně se musí aktivovat UART. Program MONITOR to sice po resetu sám provádí, ale tato činnost se požaduje, aby si uživatel uvědomil, že je nutné vždy před prvním použitím UARTu provést jeho inicializaci. (Podle zkušeností, uživatelé po vyvinutí SW s vývojovou deskou po úpravě programu pro uložení do paměti EPROM bez ladicího programu MONITOR na inicializaci zapomínají.) Tento úsek programu se ZÁSADNĚ nesmí krokovat, protože při krokování může dojít ke kolizi s ladicím programem. SOFTWAROVÉ ŘEŠENÍ Program jsme rozdělili na dvě části viz vývojový diagram: komunikace s uživatelem výpočetní část Postupně jsme si odladili jednotlivé procedury-funkce výpis hodnot na obrazovku pomocí RS232 spouštění časovače&mko měření doby MKO průměrování hodnot výpočetní funkce ošetření při zadávání údajů ošetření přetečení časovače úpravy výpisu hodnot Petr Česák 3
RESET Inicializace - RS232, časovač Čekaní+načtení příkazu Chyba: Mimo rozsah Chyba: Neznámý příkaz Platný příkaz? NE Spouštěcí puls MKO Přetečení Změření doby T Změření doby Tw NE Příkaz "A"? ANO 4x měřeno? NE ANO Dělení 4*Tw/4 Příkaz "M" "A" "S" "Z" "C" Výpočet R=K*(T-T 0 ) Uložení T 0 Výpočet K=R ref /(T-T 0 ) MATH Uložení K ANO R>=40000 Zobrazení T 0 NE Zobrazení R ANO Příkaz "M"? NE Petr Česák 4
NAMĚŘENÉ HODNOTY Pro kalibraci jsme použili hodnotu 40kOhmů. R skut [Ω] R zmer [Ω] Absolutní chyba[ω] Relativní chyba[%] Chyba z rozsahu[%] 0 0 0 0,00 0,00 100 97-3 -3,00-0,01 200 195-5 -2,50-0,01 400 396-4 -1,00-0,01 600 591-9 -1,50-0,02 800 792-8 -1,00-0,02 1000 987-13 -1,30-0,03 1500 1480-20 -1,33-0,05 2000 1981-19 -0,95-0,05 4000 3961-39 -0,98-0,10 6000 5949-51 -0,85-0,13 8000 7943-57 -0,71-0,14 10000 9937-63 -0,63-0,16 12000 11932-68 -0,57-0,17 14000 13926-74 -0,53-0,19 16000 15928-72 -0,45-0,18 18000 17922-78 -0,43-0,20 20000 19930-70 -0,35-0,18 22000 21932-68 -0,31-0,17 24000 23933-67 -0,28-0,17 26000 25935-65 -0,25-0,16 28000 27943-57 -0,20-0,14 30000 29951-49 -0,16-0,12 32000 31953-47 -0,15-0,12 34000 33961-39 -0,11-0,10 36000 35969-31 -0,09-0,08 38000 37985-15 -0,04-0,04 40000 40000 0 0,00 0,00 Chyba z rozsahu ohm-metru 0,00-0,02-0,04-0,06-0,08 chyba[%] -0,10-0,12-0,14-0,16-0,18-0,20 0 5000 10000 15000 20000 25000 30000 35000 40000 R[ohm] Petr Česák 5
Absolutní chyba ohm-metru 0-10 -20-30 chyba[ohm] -40-50 -60-70 -80 0 5000 10000 15000 20000 25000 30000 35000 40000 R[ohm] Relativní chyba ohm-metru 0,00-0,50-1,00 chyba[%] -1,50-2,00-2,50-3,00 0 5000 10000 15000 20000 25000 30000 35000 40000 R[ohm] Petr Česák 6
ZÁVĚR ZADÁNÍ: Po změření celého rozsahu jsme nalezli největší absolutní chybu 75Ω. Tomu odpovídá chyba z rozsahu 0,2%. Zkonstruovaný ohm-metr tedy splnil zadní, které udávalo největší možnou chybu z rozsahu 0,5%. PROGRAMOVÁNÍ: Program jsme si s kolegou rozdělili na dvě části část komunikace s uživatelem a část matematickou. Problémem při programování byl program MONINTOR, který neustále zasílá data po sériové lince RS232 znak 11h. Proto jsme toto číslo při načítání dat od uživatele ignorovali. REALIZACE: HW část jsme realizovali na nepájivém poli. Jako referenci jsme použili odporovou dekádu. CHYBY MĚŘENÍ: Chyby měření jsou způsobeny několika faktory: kalibračním odporem přesností matematické výpočtu chybou odporové dekády při měření kapacita přívodů, indukčnost nelinearitou MKO dalšími rušivými vlivy teplota, přívodními kabely,... Nevýhodou měření pomocí MKO je ta vlastnost, že se měří přechodový děj. Proto nejedná-li se o ideální odpor, zvyšují chybu kapacitní a indukční vlastnosti měřeného odporu. Přístroj vyhověl zadaným parametrům. Petr Česák 7
VÝPIS PROGRAMU Petr Česák 8
Petr Česák 9
Petr Česák 10
Petr Česák 11
Petr Česák 12