TAXIMETRU ELECTRONIC (III)

by donpedro

În continuarea seriei de articole dedicate taximetrului electronic, în numărul curent vă prezentăm o serie de soluţii hardware, ce vizează conectarea circuitelor externe la porturile microcontrolerului utilizat

Unitatea centrală este organizată în jurul unui microcontroler 80C51 Philips (One Time Programming – OTP) sau 89C51 ATMEL (U1). Acesta este configurat să lucreze cu memoria ROM internă (4 kocteţi). În acest sens, pinul EA al microcontrolerului este conectat în “1”-logic şi nu se utilizează porturile paralele în scopul formării magistralelor externe de adrese şi date (figura 1). Programul de lucru al taximetrului se încadrează în spaţiul de 4 kocteţi disponibil în ROM-ul intern. Cuarţ-ul (Y1) ce este conectat pe pinii XTAL 1,2 ai controlerului şi are valoarea de 11,0592MHz. Valoarea acestuia este corelată cu o serie de funcţii software implementate în programul de lucru.
Supervizarea tensiunii de alimentare se realizează prin intermediul unui circuit de tip MAX1232 (U2). Scăderea tensiunii sub limita de 4.75V este semnalizată sub forma unui impuls de tip RESET ce se aplică microcontrolerului. Practic, orice perturbaţie a sursei de alimentare poate provoca iniţializarea microcontrolerului. Software-ul este organizat astfel încât în situaţiile de reset o serie de variabile să fie preluate dintr-o memorie de tip EEPROM.
O altă funcţie a circuitului MAX1232 este aceea de watch-dog. Prin această funcţie se supervizează buna funcţionare din punct de vedere al rulării programului de lucru. Circuitul MAX1232 dispune de o intrare (ST) pe care trebuie aplicate impulsuri externe de tip strobe în intervale de timp bine stabilite (100 ms). Impulsurile sunt generate pe un pin al microcontrolerului (P1.0), la parcurgerea corectă a programului de lucru. Orice perturbaţie care ar afecta parcurgerea algoritmilor de lucru conduce la lipsa generării impulsurilor de strobe şi de aici apariţia unui semnal de iniţializare la microcontroler din partea circuitului MAX1232.
Acelaşi circuit poate genera impuls de iniţializare către microcontroler la aplicarea tensiunii de alimentare, în mod automat, fără să mai fie nevoie de un buton special în acest sens.
Soluţia aleasă prin folosirea circuitului MAX1232 şi-a dovedit viabilitatea practică prin lipsa oricăror erori de funcţionare a aparatului, în condiţiile perturbaţiilor electromagnetice intense de pe automobil.

Figura 1

Memoria EEPROM (U3) utilizată este de tip 93C46 (Microchip, National Semiconductor, etc.), având capacitatea de 64 octeţi, cu acces serial pe 4 fire (Microwire). A fost aleasă din considerente economice, preţul fiind mai mic decât la o memorie cu aceiaşi capacitate, interfaţată serial I2C. În vederea interfaţării acesteia au fost folosite 4 linii din cadrul portului paralel P1. Memoria EEPROM este folosită pentru a salva anumite variabile, în desfăşurarea programului de lucru. Aceste salvări permit restaurarea stării curente a programului în cazul unei iniţializări sau la (re)aplicarea tensiunii de alimentare. Dacă în orice moment dispare tensiunea de alimentare, la restabilirea acesteia, programul revine în starea de dinaintea dispariţiei.
Algoritmul software foloseşte un sistem dual de variabile de lucru, aspect ce conduce la evitarea utilizării unui circuit comparator cu funcţia de sesizare a scăderii tensiunii de alimentare şi anunţare a unităţii centrale în vederea salvarii stării curente. Memoria este garantată pentru 1 milion de ciclii ştergere – scriere, pentru fiecare locaţie de memorie, număr suficient pentru aplicaţia noastră.
Traductorul oferă informaţii ce permit determinarea vitezei de deplasare şi a spaţiului străbătut, prin algoritmul de lucru implementat. Traductorul preia informaţiile de la cablul de kilometraj al automobilului. Software-ul este organizat astfel încât aceste informaţii să nu depindă de tipul autovehicolului. În acest sens, în faza de programare se determină constanta respectivului automobil, în raport cu care se fac toate calculele aritmetice pentru determinarea vitezei şi a spaţiului stăbătut. Impulsurile de la traductor sunt filtrate (grupul R3, C5) şi transformate în semnale TTL prin tranzitorul Q1 (BC549C). Din colectorul acestui tranzistor, impulsurile sunt trecute printr-un inversor trigger Schmidt, tot în vederea eliminării perturbaţiilor ce însoţesc semnalul util. O protecţie suplimentară este realizată prin software. Astfel, sunt eliminate impulsurile ce ar corespunde unei viteze de mers superioare valorii de 140 Km/h. În acest fel sunt înlăturate şi posibilele încercări de fraudare, prin aplicarea de impulsuri de la generatoare de semnal şi nu de la traductorul aferent aparatului de taxare.
Impulsurile sunt aplicate în final microcontrolerului pe intrarea de întreruperi externe INT0, orice semnal de acest tip generând o cerere de întrerupere. Aspectele software relative la algoritmii de lucru vor fi prezentate într-un număr viitor.
Tot în figura 1 este prezentat şi modul de conectare a celor 3 taste (T1, T2, T3), prin care utilizatorul acţionează asupra aparatului. Se folosesc în acest sens 3 linii de la portul paralel P1.
Tasta T1 este folosită pentru trecerea succesivă în stările Liber – Ocupat – Plată.
Tasta T2 este folosită pentru alegerea tarifului de taxare (fiind programabile 2 astfel de tarife).
Tasta T3 este folosită pentru afişarea totalurilor înregistrate de aparat (total kilometri parcurşi, total kilometri parcuşi cu client, total lei încasaţi).
În regimul de programare al aparatului aceste taste au şi alte roluri. Regimul de programare este accesibil doar unui operator avizat în acest sens de Biroul Metrologic Român şi care dispune de o parolă numerică de acces. Tastele permit introducerea parolei şi parcurgerea diferiţilor paşi ai programării.

Prof. dr. ing. Gheorghe Şerban
Universitatea din Piteşti
Facultatea de Electronică şi Electromecanică
Catedra de Electronică
e-mail: serban@electra.upit.ro

S-ar putea să vă placă și