Vysokoprecízny voltmeter ovládaný Excel-makrom

 

Úvod

Tento projekt si dáva za cieľ, ukázať na názornom príklade možnosti vysokoprecízneho merania napätia s riadením a zobrazením dát priamo v štandardnom Office-programe ako je napr. Microsoft Excel.
Práca na PC sa dnes v prevažnej miere koncentruje na niekoľko programov pod spoločným Windows-rozhraním. Pre špeciálne oblasti ako je napr. meranie a zber dát je užívateľ odkázaný na špeciálny software. Tento dodávajú výrobcovia prístrojov a každý z nich vytvoril vlastný štandard. Naša skúsenosť ukazuje, že výsledky meraní sa potom väčšinou ďalej spracovávajú v štandardných programoch ako je napríklad Excel. Užívateľ teda stojí pred problémom neustáleho formátovania a konverzie dát.

V tomto príspevku popísaná metóda umožňuje užívateľovi ovládať svoj špeciálny hardware sériovým rozhraním priamo z Excelu svojho PC. Namerané dáta sú ukladané bez nutnosti konverzie priamo do tabuliek. Umožňuje to jednoduché makro, ktoré rozširuje možnosti štandardných excelovských funkcií a ktoré si môže aj v programovaní nie celkom skúsený užívateť jednoducho prispôsobiť podľa svojich konkrétnych požiadaviek.
Podmienkou ovládania sériového rozhrania priamo z excelovského makra je použitie špeciálne na tento účel vyvinutej funkčnej knižnice. V knihe H. J. Berndta a Burkharta Kainku Messen, Steuern und Regeln mit Word a Excel (Franzis Verlag) je popísaná funkčná knižnica RSAPI.dll ktorá umožňuje ovládať sériové rozhranie priamo z Excelu. Spomínaná RSAPI.dll sa dá stiahnuť z www stránky autora knihy http://www.b-kainka.de/msrwefaq.htm

Hardware

Jadrom voltmetra je A/D prevodník LTC2400 od firmy Linear Technology, čo je kompletný 24-bitový - A/D prevodník v púzdre SO-8 a celkovou chybou 10ppm v celom rozsahu napájacieho napätia a jednoduchou sériovou komunikáciou. Bližšie o LTC2400 nájdete tu:
Tento prevodník nie je k sériovému rozhraniu bežného PC pripojený priamo, ale prostredníctvom jednočipového mikrokontroléra (napr. AT90S4433/ATmega8). Bolo by možné aj priame ovládanie prevodníka sériovým portom, mikrokontrolér však prináša niekoľko rozhodujúcich výhod:

Popis zapojenia

 

Celé zariadenie sa dá samozrejme zjednodušiť. AT90S4433 sa zdá niekomu príliš veľký kanón na takú jednoduchú úlohu. Jeho nasadenie však bolo podmienené použitím jestvujúcej vývojovej dosky DAB-02 pre tento typ procesora a prevodník LTC2400.

 

 nach oben nach unten 

Firmware AT90S4433

Princíp funkcie:

Mikrokontrolér (konkrétne AT90S4433 firmy Atmel) obsluhuje vo svojej hlavnej slučke externý 24-bitový - A/D prevodník a na požiadanie nadradeného systému (PC) posiela ako odpoveď požadované dáta.
Komunikácia je riadená mastrom (Excel makro v PC) rýchlosťou 19200-8-N-1. Excel makro pošle príkaz a čaká na dáta poslané AVR-mikrokontrolérom.
Príkazy majú nasledovný formát (ASCII):
":" ako začiatok príkazu, "l" pre LTC prevodníky nasledované číslom kanálu "1" a ukončovacím znakom príkazu ";"

Implementované príkazy:

":lx;" AVR pošle "YYYYYY" ( čo sú tri bajty zakódované do 6 ASCII znakov, Big Endian poradie, teda vyšší bajt ako prvý) zo zodpovedajúceho prevodníka LTC2400. x-je číslo prevodníka (1-4 pre DAB-02). Informáciu o tom, koľko prevodníkov je osadených poskytuje príkaz ":u;"

":u;" AVR pošle obsah stavového registra, ERROR flag je následne zhodený
Význam bitov stavového registra:
S1 0. bit vo Flags-registri, osadený je 1. LTC2400
S2 1. bit vo Flags-registri, osadený je 2. LTC2400
S3 2. bit vo Flags-registri, osadený je 3. LTC2400
S4 3. bit vo Flags-registri, osadený je 4. LTC2400
ERROR 7 .bit vo Flags-registri, posledný príkaz sa nedal analyzovať
Príklad: 2.a 3.  LTC2400 sú osadené, odpoveď AVR "06"

V hlavnej slučke AVR programu sa neustále pozerá, či osadené prevodníky ukončili prevod. Ak áno, vyčíta sa prevedená hodnota a uloží na príslušné miesto v SRAM pamäti AVR. Vyčítaním sa automaticky štartuje nový prevod. Ak prevod nie je ukončený, nečaká sa, ale pokračuje v hlavnej slucke. Nasledovať môže obsluha ďalšieho prevodníka (ak je osadený). Na konci hlavnej slučky sa testuje či bol prijatý príkaz od mastra testovaním príznaku COMMAND. Príjem znakov je realizovaný v prerušení generovanom UARTom. Prijatý znak sa uloží do buffera a pozerá sa, či práve prijatý znak je ukončovací znak príkazu. Ak áno, nastaví sa spomínaný príznak COMMAND.
Ak je v hlavnej slučke detekované prijatie kompletného príkazu, príkaz sa analyzuje a nasleduje jeho vykonanie teda napríklad vyslanie poslednej hodnoty prevodnika smerom k mastrovi.

Formát výstupných dát

AT90S4433 číta a ukladá do SRAM 24 najvýznamnejších bitov z celkových 30 výstupných bitov prevodníka LTC2400.
 

Tu prezentovaný program je možné samozrejme rozšíriť o ďalšie funkcie a príkazy. Vývojová doska DAB-02 ponúka možnosť zápisu dát do dátovej FLASH pamäte alebo pripojenie zálohovaného obvodu reálneho času. Bude nás tešiť, ak sa s nami podelíte o skúsenosti z realizácie vašej aplikácie.

 

 nach oben nach unten 

 Príklad: meranie teploty s PT1000

Schéma zapojenia:

Excel makro s prikladom merania teploty s PT1000

Na zabezpečenie funkcie tohto makra je nevyhnutné inštalovať hore spomenutú funkčnú knižnicu RSAPI.dll do adresára C:\WINDOWS

Meranie teploty ovladane priamo z Excelu

 

Výhody kombinácie mikroprocesor- Excel-makro

 

 

 Downloads:

 

  Schéma zapojenia

 

  AT90S4433 firmware

 

  Excel makro na meranie teloty

 

LTC je registrovaná ochranná značka firmy Linear Technology,

Posledná aktualizácia: 23.05.2003