elektronika
 
Univerzální palubní počítač biprog JTAG AVR AVR - oprava fuse DIY Audio
|| Palubní počítač v1
Jedná se o prototyp, který je založen na procesorech atmega32 a atmega8, které měří a zpracovávají impulzy přímo od snímačů a vstřikovačů motoru. Pro vlastní připojení je tedy potřeba elektro dokumentace daného automobilu. Ikdyž byla uvažována možnost využití dat z OBD diagnostiky, nebylo toto realizováno z důvodu komplikovaného sw. Prototyp je funkční a v plném provozu ve vozidle Chevrolet Lacetti a je prezentovaný také na těchto stránkách majitele automobilu (mého otce).

Popis hw

Počítač se skládá ze tří modulů, které jsou navzájem provázané digitálními a analog. vodiči. Hlavní modul je atmega32, která zabezpečuje sběr dat, výpočty a zobrazování. Na starost má taktéž ukládání hodnot do eeprom a generování přesného času pomocí hodinového krystalu 32768Hz. O zobrazení se stará jednoduchý LCD 2x16 znaků a pro ovládání slouží 4 tlačítka. K mcu jsou dále připojeny dvě teplotní čidla ds18b20 pro měření vnitřní a venkovní teploty. MCU v 1s intervalech provádí sběr naměřených dat a na základě nich kalkulace patřičných provozních hodnot automobilu. K tomu potřebuje měřit zejména doby otevření vstřikovačů a impulzy od pohonu, které udávají ujetou vzdálenost. Tato měření obstarává pomocný mcu atmega8, který neustále vzorkuje stavy všech 4 vstřikovačů s vzorkovací dobou Tvz=0,25ms. Tato není dána limitem mcu, ale byla zvolena jako jakýsi kompromis vzhledem k přesnosti a množství dat. Vlastní počítání impulzů převodovky pak obstará periferie čítač. Tyto hodnoty jsou pak odesílány 4bit paralelní sběrnicí hlavnímu MCU na jeho vyžádání. Takto je zaručen rychlý sběr dat hlavním mcu atmega32, který ještě doměří stav palivové nádrže pomocí interního AD převodníku a dopočte zobrazované hodnoty. Ve vlastních schématech, které tu prezentuji jsem záměrně vynechal hodnoty součástek z toho důvodu, že se jedná o prototyp.

atmega8 - měření vstřikovačů a ujeté vzdálenosti


Kód je psán v assembleru pro přesnou periodu měření a konstantní a minimální fázový posun mezi odměrem jednotlivých vstrikovačů.

atmega32 - řídící mcu, sběr dat a výpočty a zobrazení na LCD


Kód psán v jazyku C. Zpracovává a zobrazuje hodnoty. Naměřená data ukládá v surové podobě. Tak je zabezpečena minimální chyba vlivem celočíselné aritmetiky a libovolná rekalibrace na úkor použití 32bit proměnných pro ukládání času a odometrie(impulzy od převodovky) a 64bit proměnných pro ukládání surových časů vstřikovačů. Nejsou tedy ukládány např průměrné spotřeby a rychlosti ale pouze data potřebná pro jejich výpočet. Každou sekundou dojde tedy k přičtení naměřených dat do základních proměnných vstřik, čas, převodovka a na základě nich výpočet nových aktuálních a průměrných hodnot. Aby nedocházelo k nadměrnému opotřebení eeprom, jsou tato data uchována po čas provozu v ram a do eeprom uložena těsně po vypnutí motoru. K tomu využívá atmega32 informaci o dobíjení či pozici klíčku v zapalovací skříňce, aby uložila hodnoty dříve než se odpojí její napětí s vytáhnutím klíčku úplně. Tato vlastnost bude v nové verzi odebrána s tím, že MCU bude napájen stále, což při odběru řádově 5-40mA nečiní pro akumulátor vozu žádný problém. Rozsahy proměnných byly voleny tak, aby nedošlo v žádném případě k jejich přetečení. Takové určité mezní hodnoty, kterými si teď nejsem úplně jist jsou zhruba 100 let a 1 milion km. Musel bych se podívat do zdrojového kódu, který jsem už pěkně dlouho neviděl.

vstupy a zdroj


Pro vlatní napájení je použit DC/DC měnič z důvodu mnohem vyšší účinnosti a tím menšího ztrátového tepla, které by mohlo být v letních dnech pro počítač kritické. Vstupy jsou pak ošetřeny pro daný typ měření, kde vstřikovače jsou drženy pull-up do +5V a diodami stáhnuty na log 0. pouze v okamžiku aktivního vstřikovače tj. uzemněné cívky vstřikovače. Ostatní vstupy jsou ošetřeny zenerovou diodou popř. děliči u AD měření a kondenzátory pro stabilní měření analogových hodnot a potlačení zákmitů.
Pokračování někdy příště, až bude trochu čas..Tímto se omlouvám za možná trochu nesrozumitelný text, který vznikl v záchvatu mezi přípravou na semestrální zkoušku :-) Jakmile bude klid, text upravím doplním.



All Right Reserved © 2007, Designed by CMG Technologies,                  Luta kontakt: olutera@gmail.com            CNW:Counter