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
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:
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.
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.
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
Downloads: |
|
|
|
|
|
|
|
|
LTC je registrovaná ochranná značka firmy Linear Technology,