Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
PROIECT Electronica Aplicata - SISTEM DE ACHIZITIE DE DATE CU SENZOR 1-WIRE

PROIECT Electronica Aplicata - SISTEM DE ACHIZITIE DE DATE CU SENZOR 1-WIRE


UNIVERSITATEA “POLITEHNICA” TIMISOARA

FACULTATEA DE ELECTRONICA SI TELECOMUNICATII

Specializarea: Electronica Aplicata

SISTEM DE ACHIZITIE DE DATE CU SENZOR 1-WIRE



Introducere

Majoritatea oamenilor de stiinta, ingineri si utilizatori de PC sunt de acord cu urmatoarele elemente comune:

Calculatorul PC este folosit pentru programarea echipamentului de testare, pentru manipularea si stocarea datelor. Termenul de PC acopera in general orice calculator pe care ruleaza un sistem de operare cu software-ul aferent. Calculatorul poate fi folosit de asemenea pentru trasarea curbelor in timp real sau pentru generarea unui raport. El nu trebuie neaparat sa controleze sistemul de masurare si nici macar sa ramana in legatura permanenta cu acesta.

Echipamentul de testare poate fi alcatuit din placi de achizitie pentru PC, sisteme de achizitie externe PC-ului sau instrumente de masura de sine statatoare.

Echipamentul de testare poate realiza una sau mai multe masuratori si controla procese folosind diverse combinatii de intrari analogice, iesiri analogice, intrari/iesiri digitale sau alte functii specializate.

Dificultatea diferentierii clare a termenilor de “achizitie de date”, “ testare si masurare” si “masurare si control” apare din cauza granitei neclare care separa diferitele tipuri de aparate de masura in functionalitate, facilitati si performanta. De exemplu, anumite instrumente de sine statatoare contin microprocesoare sau placi de tip “plug-in”, folosesc sisteme de operare si functioneaza mai degraba ca un calculator, decat ca un instrument traditional.

Exista instrumente care fac posibila construirea unor echipamente de testare care achizitioneaza date de la un numar foarte mare de canale si le stocheaza intr-un calculator. Placile de achizitie transforma calculatorul intr-un multimetru digital, osciloscop sau alt instrument, care are un panou virtual de comanda pe ecranul calculatorului.

Placi de achizitie “plug-in”

Ca si placile video, modem-uri sau alte tipuri de placi destinate calculatorului, si placile de achizitie se monteza intr-un slot din placa de baza a calculatorului. Astazi, in marea lor majoritate, placile sunt de tipul PCI (Peripheral Component Interconnect), vechea generatie pe bus ISA (Industry standard Architecture) fiind pe cale de disparitie.

Aceasta categorie de placi ofera un numar mare de canale de intrare (intre 8 si 64), viteza ridicata de achizitie (in general, aceasta se situeaza sub 1250Mhz), sensibilitate destul de buna pentru masurarea semnalelor mici, rezolutie de 12..16 biti si un pret relativ mic de cost.

Caracteristicile placilor de achizitie de tip “plug-in”:

Metoda computerizata relativ ieftina pentru masurari si control.

- Viteza mare de achizitie (100kHz…1 GHz).

- Disponibile in multiple configuratii cu functii specializate.

- Performante excelente pentru majoritate domeniilor. Zgomotul electric din interiorul calculatorului limiteaza totusi masurarile sensibile.

- Domeniile de intrare limitate la ±10 V.

Sisteme pentru achizitie de date externe

Alternativa a sistemelor de achizitie plug-in, aceste sisteme externe ofera un numar ridicat de intrari/iesiri intr-un mediu mult mai bine protejat la zgomote electromagnetice si o mai mare versatilitate de modelare la diverse cerinte.

Astazi, aceste sisteme iau adesea forma unor solutii stand-alone de testare si masurare orientate in special catre aplicatiile industriale. Aceste aplicatii cer mai mult decat poate oferi un PC cu placi de achizitie incorporate. Sistemele moderne externe de achizitie de date ofera:

-Sensibilitate mare pentru semnalele de nivel mic;

-Aplicabilitate mare pentru diferite tipuri de senzori;

-Aplicabilitate pentru aplicatii de timp real;

Ca si sistemele plug-in, sistemele de achizitie externe au nevoie de prezenta unui calculator pentru prelucrarea si stocarea datelor. Acesta se monteaza direct in rack-ul sistemului de achizitie de date. Cele cateva tipuri de arhitecturi folosite pentru sistemele de achizitie externe folosesc rackuri industriale standardizate. Anumite sisteme includ si module dotate cu microprocesor care suporta toate facilitatile unui PC obisnuit: tastatura, mouse, monitor si porturi de comunicatie.

Caracteristicile sistemelor de achizitie externe:

- Numar mare de sloturi.

- Mediul din interiorul sistemului este mai putin afectat de zgomotele electromagnetice decat sistemele de achizitie interne (plug-in), ceea ce permite masurarea unor semnale de nivel mic.

-Utilizarea interfetelor standard de comunicatie(IEEE-488, RS 232, USB, FireWire, Ethernet) inlesnesc achizitiile de date la distante mari, o mai buna conectivitate intre sistemele de achizitie si legarea lor la calculatoare non PC.

- Sistemele dotate cu microprocesor dedicat si memorie pot realiza controlul in timp real asupra procesului sau functiona independent de prezenta unui PC.

- Arhitectura modulara standardizata ofera o varietate mare de functii de masura si control

- Din cauza necesitatii unei carcase, a arhitecturii modulare, a accesoriilor, costul efectiv pe canal de masura este ridicat

Sisteme de timp real

Un loc aparte in locul sistemelor de masurare si control este ocupat de asa numitele sisteme de timp real. In general,acestea sunt sisteme de masura autonome, dotate cu procesor si sistem de operare dedicat. Aceste procese se preteaza a fi rulate mult mai bine pe sisteme externe dacat pe un sistem PC dotat cu placa de achizitie. Desi Microsoft Windows a devenit sistemul standard de operare pentru calculatoarele PC, acesta nu este un sistem determinist si nu poate garanta un raspuns predictibil in cazul unor masurari si procese de control critice. De aceea solutia este de a lega PC-ul la un sistem ce poate functiona autonom si care garanteaza un anumit timp de reactie la aparitia unor stimuli externi.

Instrumente discrete

La inceputuri, aceste instrumente electronice de test constau adesea dintr-un aparat de masura cu o singura intrare si sursa de alimentare. De-a lungul anilor, datorita progresului tehnologic in design, fabricatie si in tehnologii de masurare s-au extins posibilitatile si domeniile instrumentelor de masura. Aparitia unor noi instrumente ca scannere, multiplexoare, calibratoare, counter timere, nanovoltmetre, micro-ohmmetre si altele au facut posibila crearea sistemelor de testare bazate pe controlul microprocesorului, sisteme ce ofera o sensibilitate si rezolutie excelenta. Anumite sisteme de acest tip pot prelucra informatia doar pe maxim cateva canale de intrare, ceea ce duce la un pret per canal ridicat. Prin adaugarea unei matrici sau a unor scanere, acest pret poate fi micsorat, permitand unui singur instrument de precizie sa prelucreze informatia pe mult mai multe canale de intrare. Aceste instrumente pot fi de asemenea conectate la un sistem PC-placa de achizitie.

Caracteristicile instrumentelor discrete

- Domeniile de masura si sensibilitate sunt in general mult peste cele oferite de sistemele plug-in sau de cele externe

- Folosesc interfate de comunicatie standard (IEEE 488, RS232, FireWire, USB ) care permit achizitionarea de date de la mare distanta si compatibilitatea cu calculatoare non IBM

-Se preteaza foarte bine la masurarea temperaturilor, tensiunilor, curentilor, rezistentelor, inductantelor etc. Apar probleme la anumiti senzori specializati ori la anumite conditionari a semnalelor de intrare

- In general sunt mai lente decat sistemele de achizitie plug-in si

- Mult mai scumpe decat sistemele standard de achizitie de date

Sisteme de achizitie de date hibride.

Recent aparute, aceste sisteme dezvoltate in tehnologia sistemelor de achizitie de date externe combina un instrument discret, gen multimetru digital interfatabil, cu cateva functii caracteristice sistemelor de achizitie de date plug-in, forma finala fiind tipica pentru un instrument compact. Functiile tipice includ masurarea tensiunii si a curentilor continui si alternativi, masurarea temperaturii, a frecventei, precum si facilitati pentru controlul proceselor.

Caracteristicile sistemelor de achizitie de date hibride:

- Domeniile de masura, rezolutie si sensibilitate caracteristice unui instrument de masura digital, superioare sistemelor de achizitie de date standard.

- Au ecrane digitale, caracteristice instrumentelor digitale. Rezolutia unui instrument de masura digital este cuprinsa intre 18 si 22 biti si chiar se depasesc aceste valori in anumite cazuri.

- Au memorie interna ce le permit stocarea anumitor cantitati de date masurate

- Utilizeaza interfate standard de comunicatie, ceea ce le permite legatura cu sisteme non PC.

- Capacitate limitata de sloturi libere.

- In general sunt mai lente decat sistemele de achizitie interne sau externe.

Capitolul 1

1.Istoricul 1-Wire

1-Wire este o marca inregistrata de Dallas Semiconductor Corp pentru un dispozitiv de comunicatii de tip magistrala system, proiectat de Dallas Semiconductor, care ofera date de viteza redusa, de semnalizare si de putere de peste un singur semnal, folosindu-se chiar doua fire, unul de masa, si unul de putere si de date. 1-Wire este tehnologia in conceptul de a I˛C(circuit integrat), dar cu rate de date mai mici si mai largi. Acesta este de obicei folosit pentru a comunica cu dispozitive mici, ieftine, cum ar fi termometre digitale si instrumente meteo. O retea de dispozitive 1-Wire asociate cu un dispozitiv de master se numeste 'MicroLan', acest termen fiind marca inregistrata de catre Dallas.

Unul dintre caracteristicile atractive ale magistralei este ca un dispozitiv are nevoie doar de doua fire: de date si de la masa. Pentru a realiza acest lucru, un circuit integrat include un condensator de 800 pF la putere de la linia de date. Unele dintre aceste dispozitive sunt disponibile in cutii mici, care arata ca mici condensatori sau baterii de ceas, in care ambalajele sunt numite iButtons.

Aparatele 1-Wire sunt, de asemenea, gasite montate pe panourile circuitului imprimat, cu sau fara 1-Wire controller. Uneori PCB-ul este singurul care suporta dispositive 1-wire, dar, in multe aplicatii comerciale, dispozitivul 1-Wire este doar unul din cipurile solutiei pentru a crea unele nevoie. Spre exemplu uneori, ele sunt prezente in laptopuri, telefoane celulare si pachete de baterii .

Unele sisteme de laborator si alte achizitii de date sau sisteme de control se conecteaza la 1-wire, folosind dispozitive de cabluri cu conectori de modulare sau cu cablu CAT-5, cu dispozitivele montate pe ele insele intr-un soclu, incorporate intr-un mic PCB sau atasat la obiect, fiind monitorizate . In astfel de sisteme, RJ11 (6P2C sau modular 6P4C prize, frecvent utilizate pentru telefoane) sunt populare.

Sistemele de senzori si actuatoare pot fi construite legand impreuna componente 1-Wire, fiecare dispunand de logica necesare pentru a opera pe magistrala 1-Wire. Exemplele includ temperatura de jurnalizare, temporizatoare, senzori de tensiune si curent, monitorizarea bateriilor, si-a memorie. Acestea pot fi conectate la un calculator, folosind un convertor al magistralei. USB, RS-232 serial, port paralel si interfetele sunt populare solutii de conectare a MicroLan-lui la PC-ul gazda. De asemenea MicroLans face interfatarea cu microcontrolere, la fel ca Arduino, Parallax BASIC Stamp si familia PIC microcip.

iButton (cunoscut si sub denumirea de Dallas Key) este un mecanic de ambalaje standard, care pune o componenta 1-Wire in interiorul unui 'buton' mic din otel inoxidabil similara cu un disc in forma de baterie. iButtons sunt conectate la sistemul magistralei 1-Wire prin intermediul unor contacte cu prize care ating de 'capac' si 'de baza' canistrei. Conexiunea poate fi temporar, comparabila cu un deget mare fiind scanate de un cititor de amprenta. iButtons sunt folosite ca tichete destepte Akbil pentru transportul public din Istanbul. De asemenea, conexiunea poate fi semi-permanenta cu un alt tip de socket; iButton este prins in el, dar este usor de inlaturat.

JavaRing, un inel care monteaza iButton cu o Masina Virtuala Java (compatibile cu specificatia Java Card 2.0) care a fost prezentat la insotitorii de conferinta JavaOne 1998.

Fiecare cip individual 1-Wire are un cod unic inserat in el. Fiecare cip are un numar diferit. Aceasta caracteristica face din chips-urile, mai ales intr-un pachet iButton, ideal ca 'cheie', in sensul de dispozitiv care sa deschida o incuietoare. Exista solutii iButton pentru asigurarea spatiilor, armand si dezactivand alarmele hotilor si in alte scopuri. Exista, de asemenea, sisteme pentru 'deblocarea' mai putin evident a 'zonelor sigure'. De exemplu, iButtons poate fi folosit pentru a autentifica computerul utilizatori de sistem, sau cu sisteme 'time clock'.

2.Tehnologia 1-Wire

Baza tehnologiei 1-Wire este un protocol serial, folosind o singura linie de date plus masa de referinta pentru comunicare. Un master 1-Wire initiaza si controleaza comunicarea cu unul sau mai multe dispositive slave 1-Wire pe magistrala 1-Wire (figura 1). Fiecare dispozitiv slave 1-Wire are un ID (numarul de identificare), unic, invariabil, programat din fabrica, pe 64 de biti care serveste ca adresa dispozitivului de pe magistrala 1-Wire. Codul familie pe 8 biti, un subgrup din cei 64 de biti ai ID-lui, identifica tipul dispozitivului si functionalitatea. In mod obisnuit, dispozitevele slave 1-Wire opereaza peste tensiune gama de 2.8V (min) la 5.25V (max). Cea mai mare varietate de dispozitive 1-Wire nu au nici un pin de alimentare cu energie; ei isi iau energie de la magistrala 1-Wire (sursa parazita).


1-Wire este singurul sistem digital bazat pe tensiune, care functioneaza cu doua contacte, date si masa, pentru comunicarea bidirectionala semi-duplex. Spre deosebire de alte sisteme de comunicare de serie, cum ar fi I˛C sau SPI ™, dispozitivele 1-Wire sunt proiectate pentru a fi utilizate intr-un mediu de contact. Deconectarea de la magistrala 1-Wire sau o pierdere de contact pune slave-ul 1-Wire intr-o stare de reinitializare. In cazul in care tensiunea revine, slave-ul se trezeste si semnalizeaza prezenta. Cu doar un contact pentru a proteja, protectia construita in ESD a dispozitivului 1-Wire este extrem de ridicat. Cu doua contacte, dispozitivele 1-Wire sunt cel mai economic mod de a adauga functionalitate electronica pentru obiecte neelectronice de identificare, autentificare, si livrare a datelor de calibrare sau a informatilor de fabricatie.

3.Ambalarea dispozitivelor 1-Wire

Dispozitivele 1-Wire sunt oferite in tranzistoare conventionale (TO-92) si pachete IC (TSOC, SOIC, SOT23). Proiectat pentru aplicatii de contact si usor de atasat, cele 2 pachete de contact SFN1 acomodeaza alimentarea parazita a dispozitivelor 1-Wire (Figura 2). Pachetul iButtonul de 16mm diametru-inox protejeaza dispozitive 1-Wire de medii dure, facandu-le potrivite pentru interior si exterior (Figura 3). Multe dispozitive sunt de asemenea disponibile in flip chip (Figura 4) si versiunea UCSP ™ 3 (Figura 5).

Figure 2. The 6.0mm x 6.0mm x 0.9mm SFN package has large contact areas.

Figure 3. The 16mm-diameter iButton package protects the 1-Wire chip inside from harsh environments

Figure 4. The flip chip DS2502 package, 1.6mm x 0.91mm, has two rectangular contacts

Figure 5. The UCSP package, 1.68mm x 1.68mm, for the DS2431 has spherical contacts located on a grid with a 0.5mm pitch.

4.Functile disponibile si aplicatile tipice

In acest moment, exista aproximativ 40 de dispozitive 1-Wire, inclusiv unele aproape de sfarsitul vietii lor. Numarul componentei enumerate aici include numai dispozitive programate pentru normele de productie pentru un viitor previzibil. Numerele componentelor care incep cu DS19 sunt intotdeauna iButtons. Restul de numere din aceasta sectiune, si anume, cele care incep cu DS24, DS25, DS28 sunt disponibile in ambalaje de plastic conventionale. In cazul in care un produs este, de asemenea, disponibila ca SFN sau flip chip / UCSP, atunci acest lucru este mentionat in coloana Notelor.

Dispozitivele 1-Wire pot fi grupate in functie de functiile lor, in mai multe categorii:

Numai identificarea

Identificarea plus control

Identificarea plus temperatura

Identificarea plus timp

Identificarea plus NV SRAM

Identificarea plus (un timp programabil) OTP EPROM

Identificarea plus EEPROM

Identificarea plus SHA-1 sigur EEPROM

Identificarea plus logare

Asocierea de resurse suplimentare determina aplicarea zonelor tipice pentru un dispozitiv.

5.Urmatoarele etape la aplicatile 1-Wire

Dupa ce produsele 1-Wire sunt selectate, trebuie sa alegeti un tip de master circuit (adica, echivalentul a unui adaptor 1-Wire in kituri). Pentru aplicatii embedded, exista o multitudine de optiuni, in functie de dispozitia resurselor sistemului. Aplicatii care necesita cablare semnificativa intre dispozitivele 1-Wire beneficiaza de un circuit master specializat.

In afara de hardware, firmware este necesar pentru a comunica cu dispozitivele 1-Wire, pentru a citi sau scrie datele, precum si de a exercita functile de control. Pentru dispozitive conducatorul specific, interfetele de program de aplicare (API), precum si exemple de software, se refera la 1-Wire Software Resurse Guide. Acest ghid include, de asemenea, functii API bazat pe simele 1-Wire de fisier, care sunt utile in special atunci cand lucreaza cu mai mult de cateva sute de octeti de date.

6.Exemplu de comunicare cu un dispozitiv

Urmatoarele semnale au fost generate de un FPGA, care a fost masterul de comunicare cu un chip DS2432 (EEPROM) , si masurate cu un analizator logic. High pe iesirea 1-Wire inseamna ca datele de iesire ale FPGA sunt in modul tri-state si dispozitivul 1-Wire poate trage in jos magistrala. Low inseamna ca FPGA trage in jos magistrala. Intrarea 1-Wire este semnalul magistralei. La intrarea esantionului mare de timp, FPGA-ul verifica intrarea pentru detectarea aparatului de raspuns si de a primi biti.

Capitolul 2

PIC16C745

1.DESCRIERE GENERALA

Dispozitivele PIC16C745/765 sunt low-cost, de inalta performanta, CMOS, pe deplin-static, 8-bit microcontrolere in rangul de mijloc al familiei PIC16CXX .

Toate PICmicro ® microcontrolere angajeaja un avansat RISC de arhitectura. Familile de microcontroler PIC16C745/765 a sporit caracteristicile de baza, in termen de opt nivele, de adancime, stiva si multiple surse intrerupte interne sau externe.

Instructiunile separate si magistralele de date a arhitecturei Harvard permite 14-biti la nivel de instruire cu cuvinte separate de cate 8-biti. Cele doua etape de instructiuni permite tuturor instructiunilor a se executa intr- un singur ciclu, cu exceptia ramurilor programului, care necesita doua cicluri. Un total de 35 de instructiuni (set redus de instructiuni) sunt disponibile. In plus, un mare set de registru ofera unele dintre inovatiile arhitecturale folosite pentru a realiza o mare performanta.

Microcontrolerul PIC16C745 are 22 de pini I / O. Fiecare microcontroler are 256 octeti de RAM. In plus, mai multe functii periferice sunt disponibile, inclusiv: trei contoare de timp, doua module PWM de captura si comparare si doua porturi seriale. Universal Serial Bus (USB 1.1) viteza redusa periferica prevede magistrala de comunicatii. Receptorul/transmitator Universal Sincron si Asincron (USART) este, de asemenea, cunoscut sub numele de interfata serial de comunicatii sau SCI. De asemenea, un A / D pe 5-canale de mare viteza,pe 8-biti este furnizat pe PIC16C745, in timp ce PIC16C765 ofera 8 canale. Rezolutia pe 8-biti este ideala pentru aplicatii care necesita un cost redus a interfetei analogice (de exemplu, termostat de control, senzor de presiune, etc.)

Microcontrolerele PIC16C745/765 au caracteristici speciale pentru a reduce componentele externe, astfel, se reduc costurile, se imbunatateste fiabilitatea sistemului si se reduce consumul de energie. Exista 4 optiuni Oscilator, a fiecarui EC, care este pentru sursa clock-lui reglementata exterior, E4 este pentru sursa clock-lui reglementat exterior cu PLL activata, HS este de mare viteza, cristale / resonators si este H4 de mare viteza, cristale / resonators cu PLL activat. SLEEP (putere-jos) ofera o facilitate putere-modul de economisire. Utilizatorul poate trezi cipul din starea de repaus prin mai multe intreruperi interne si externe si RESETS.

O mare fiabilitate Watchdog Timer (WDT), cu un Oscilator RC dedicat pe-chip, ofera protectie impotriva software-ul de blocare si ofera, de asemenea, un mod de “trezire” a aparatul de la somn.

Un CERDIP rescriptibil cu UV este ideal pentru cod de dezvoltare, in timp ce raportul cost-eficienta one-time-Programabile (OTP) este potrivit pentru productie in orice volum.

Dispozitive PIC16C745/765 se potriveste bine in multe aplicatii variind de la senzorii de distanta si de securitate pentru controlul dispozitivului si automotive. Tehnologia EPROM face personalizarea programelor aplicate (date automate, control industrial, UPS) extrem de rapid si convenabil. Pachetele amprentelor mici fac aceasta serie de microcontroler perfecta pentru toate aplicatiile cu spatiu limitat. Low-cost, low-power, performanta inalta, usurinta in utilizare si flexibilitate I / O face din PIC16C745/765 un dispozitiv foarte versatil, chiar si in domenii in care nici un microcontroler nu a fost considerat inainte (de exemplu, functiile de timp, comunicarea seriala, captarea si compararea, functile PWM si aplicatile coprocessor).

1.1 Architectura generala

Inalta performanta a familiei PIC16C745/765 poate fi atribuita la o serie de elemente arhitecturale frecvent intalnite in microprocesoare RISC. Pentru a incepe cu, PIC16C745/765 foloseste o arhitectura Harvard, in care programul si datele sunt accesate de la memorii separate utilizand magistrale separate. Acest lucru imbunatateste latimea de banda peste traditionale in arhitectura von Neumann in care programul si date sunt preluate de la aceeasi memorie utilizand aceeasi magistrala. Separand programul si magistrala de date suplimentare permite instructiunilor pentru diferite dimensiuni decat 8-biti la nivelul intregului cuvant de date. Instructiunee opcodes este 14-biti latime ceea ce face posibil de-a avea toate instructiunile cuvintelor singure. Un program de lungime pe 14-biti de memorie acceseaza magistrala care preia o instructiune pe 14-biti intr-un singur ciclu. A doua etapa pipeline suprapune descarca si executa instructiunile. In consecinta, cele mai multe instructiuni se executa intr-un singur ciclu (166.6667 ns @ 24 MHz), cu exceptia ramurilor programului.

Device

Memory

Pins

A/D

Resolution

A/D

Channels

Program

X14

Data

X8

PIC16C745

8K

PIC16C745

8K

PIC16C745/765 poate adresa, direct sau indirect, registru fisierelor de date sau de memorie. Toate functile speciale a registrelor, inclusiv numaratorul programul, sunt mapate in datele de memorie. PIC16C745/765 are un ortogonal (simetric) set de instructiuni care face posibila efectuarea oricare-i operatii cu privire la orice registru, folosind orice mod de adresare. Aceasta simetrie naturala si lipsa de 'optim de situatii speciale' fac programarea cu PIC16C745/765 simpla dar eficienta. In plus, curba de invatare este redusa in mod semnificativ.

Dispozitivele PIC16C745/765 contin un 8-biti ALU si registru de lucru. ALU este, scopul general al unitatii aritmetice. Indeplineste functii aritmetice si booleene intre datele din registrul de lucru, precum si orice registru. ALU este de-o largime pe 8-biti si capabila de adaugare , scadere, trecerea si operatiuni logice .Pe de alta parte mentionand, operatile aritmetice sunt doua complete in natura. In doua instructiuni operand, de obicei, un operand este un registru de lucru (W registru). Celalalt operand este un registru de fisiere sau o constanta imediata. In instructiunile operanzilor simpli, operand-ul este intregul registru W sau un fisier registru. W este un registru de 8 biti, registru de lucru utilizate pentru operatile ALU. Aceasta nu este un registru adresabili.

In functie de instructiuni de executat, ALU afecteaza valorile de Carry (C), cifre Carry (DC), si Zero (Z) biti in ceea ce priveste statutul registrului. Biti C si DC functioneaza ca un imprumut de biti si o cifra de imprumut de biti, respectiv, in scadere.

1.2Diagrama Bloc

1.3Descrierea pinilor de iesire

Nume

Functie

Tipul intrarii

Tipul iesiri

Descriere

MCLR/VPP

MCLR

ST

Master Cleaner

Vpp

Pover

Programming Voltage

OSC1/CLKIN

OSC1

Xtal

Crystal/Resonator

CLKIN

ST

External Clock Imput

OSC2/CLKOUT

OSC2

Xtal

Crystal/Resonator

CLKOUT

CMOS

Internal Clock(FINT/4) Output

RA0/AN0

RA0

ST

CMOS

Bi-directional I/O

AN0

AN

A/D Imput

RA1/AN1

RA1

ST

CMOS

Bi-derectional I/O

AN1

AN

A/D Imput

RA2/AN2

RA2

ST


CMOS

Bi-directional I/O

AN2

AN

A/D Imput

RA3/AN3/Vref

RA3

ST

CMOS

Bi-directional I/O

AN3

AN

A/D Imput

Vref

AN

A/D Positive Reference

RA4/T0CKI

RA4

ST

OD

Bi-directional I/O

T0CKI

ST

Timer 0 Clock Imput

RA5/AN4

RA5

ST

Bi-directional I/O

AN$

An

A/D Imput

RB0/INT

RB0

TTL

CMOS

Bi-directional I/O

INT

ST

Interrupt

RB1

RB1

TTL

CMOS

Bi-directional I/O

RB2

RB2

TTL

CMOS

Bi-directional I/O

RB3

RB3

TTL

CMOS

Bi-directional I/O

RB4

RB4

TTL

CMOS

Bi-directional I/O with Interrupt on change

RB5

RB4

TTL

CMOS

Bi-directional I/O with Interrupt on change

RB6/ICSPC

RB6

TTL

CMOS

Bi-directional I/O with Interrupt on change

ICSPC

ST

In-Circuit Serial Programming Clock Imput

RB7/ICSPD

RB6

TTL

CMOS

Bi-directional I/O with Interrupt on change

ICSPD

ST

CMOS

In-Circuit Serial Programming Data I/O

RC0/T1OSO/T1CKI

RC0

ST

CMOS

Bi-directional I/O

T1OSO

Xtal

T1 Oscillator Output

T!CKI

ST

T1 Clock Imput

RC1/T1OSI/CCPD

RC1

ST

CMOS

Bi-directional I/O

T1OSI

Xtal

T1 Oscilator Imput

CCPD

Capture In/Compare Out PWM/OUT2

RC2/CCP1

RC2

ST

CMOS

Bi-directional I/O

CCP1

Capture In/Compare Out PWM/OUT1

VUSB

VUSB

Power

Regulator Output Voltage

D-

D-

USB

USB

USB Differential Bus

D+

D+

USB

USB

USB Differential Bus

RC6/TX/CK

RC6

ST

CMOS

Bi-directional I/O

TX

CMOS

USART Async Transmit

CK

ST

CMOS

USART Master Out/Slave In Clock

RC7/RX/DT

RC7

ST

CMOS

Bi-directional I/O

RX

ST

USART Async Reciver

DT

ST

CMOS

USART Data I/O

RD0/PSP0

RD0

TTL

CMOS

Bi-directional I/O

PSP0

TTL

Parallel Slave Port Data Imput

RD1/PSP1

RD1

TTL

CMOS

Bi-directional I/O

PSP1

TTL

Parallel Slave Port Data Imput

RD2/PSP2

RD2

TTL

CMOS

Bi-directional I/O

PSP2

TTL

Parallel Slave Port Data Imput

RD3/PSP3

RD3

TTL

CMOS

Bi-directional I/O

PSP3

TTL

Parallel Slave Port Data Imput

RD4/PSP4

RD4

TTL

CMOS

Bi-directional I/O

PSP4

TTL

Parallel Slave Port Data Imput

RD5/PSP5

RD5

TTL

CMOS

Bi-directional I/O

PSP5

TTL

Parallel Slave Port Data Imput

RD6/PSP6

RD6

TTL

CMOS

Bi-directional I/O

PSP6

TTL

Parallel Slave Port Data Imput

RD7/PSP7

RD7

TTL

CMOS

Bi-directional I/O

PSP7

TTL

Parallel Slave Port Data Imput

RE0/RD/AN5

RE0

ST

CMOS

Bi-directional I/O

RD

TTL

Parallel Slave Port Control Imput

AN5

AN

A/D Imput

RE1/WR/AN6

RE1

ST

CMOS

Bi-directional I/O

WR

TTL

Parallel Slave Port Control Imput

AN6

AN

A/D Imput

RE2/CS/AN7

RE2

ST

CMOS

Bi-directional I/O

CS

TTL

Parallel Slave Port Data Imput

AN7

AN

A/D Imput

VDD

VDD

Power

Power

VSS

VSS

Power

Ground

Legend  OD=Open Drain, ST=Schmitt Trigger

2. Familile si compatibilitatea evolutiei favorabile

Utilizatorii familiarizati cu microcontroler din familia PIC16C5X isi vor da seama ca aceasta este o versiune imbunatatita a arhitecturei PIC16C5X. Codul scris pentru familia de dispositive PIC16C5X poate fi usor portat la PIC16C745/765.

Dispozitivele PICmicro ® sunt sustinute de linia completa Microcip a instrumentelor de dezvoltare.

3.Caracteristici electrice

Calificative absolut maxime(†)

Temperatura ambianta sub partinire . .- 55 ° C la 125 ° C

Temperatura de depozitare .. -65 ° C la 150 ° C

Tensiunea de pe orice PIN cu privire la vss (cu exceptia VDD, MCLR si RA4).. Pentru a-0.3V (VDD + 0.3V)

Tensiunea de pe VDD cu privire la vss -0.3V la 7.5 V

Tensiunea de pe MCLR cu privire la vss .. .. .. -0.3V la 13.25 V

Tensiunea de pe RA4 cu privire la vss .. -0.3V la 10.5 V

Total putere disiparii (Nota 1) . 1.0W

Maxima curent din vss PIN .. .. 300 mA

Maxima curent in VDD PIN .. 250 mA

Curent scufundat de intrare, IIK (VI <0 sau VI> VDD ) .± 20 mA

Curent scufundat de iesire, IOK (VO <0 sau VO> VDD) . ± 20 mA

Maxima de iesire curent scufundat prin orice I / O PIN .. 25 mA

Maxima de iesire curent obtinute prin orice I / O PIN .. . 25 mA

Valoarea maxima a curentului scufundat de Poarta, PORTB, si PORTE (Nota 2) (combinat ) 200 mA

Curent maxim de origine Poarta, PORTB, si PORTE (Nota 2) (combinat ) ………..200 mA

Valoarea maxima a curentului scufundat de PORTC si PORTD (Nota 2) (combinat ) 200 mA

Curent maxim de origine PORTC si PORTD (Nota 2) (combinat ) 200 mA

Nota 1: disiparile de energie se calculeaza dupa cum urmeaza: Pdis = VDD x (IDD - Σ IOH) (+ Σ (VDD-VOH) x IOH) + Σ (vol x IOL)

Nota 2: PORTD si PORTE nu sunt disponibile pe PIC16C745.

4Universal Serial Bus (USB)

4.1 Prezentare generala

Aceasta sectiune introduce o suma minima de informatii pe USB. Daca ai deja cunostinte de baza despre USB, puteti sa sariti aceasta sectiune. Daca termenii ca Enumeration, final, in / out, tranzactii, Transferuri de viteza redusa / Full Speed sunt straine pentru tine, cititi mai departe.

USB a fost dezvoltat pentru a-si adresa conectivitatea sporita fata de un PC. A fost o cerinta de baza pentru a creste latimea de banda si numarul de dispozitive, care ar putea fi atasate. De asemenea dorit a fost abilitatea pentru hot swapping,operatia user friendly, comunicatie robusta si costuri reduse. Principali promotori USB sunt Intel, Compaq, Microsoft si NEC.

USB este implementat ca o topologie Star, cu gazda, in partea de sus, hub-uri in mijloc, la sfarsitul intinzanduse la dispozitivele individuale. USB este limitat la 127 dispozitive in magistrala, si de copac nu poate fi mai mult de 6 niveluri de adancime.

USB este o arhitectura gazda centrica. Gazda este intotdeauna capitanului. Aparatele nu sunt permise pentru a 'vorbi' cu exceptia cazului in care este 'Vorbit' de catre gazda.

Transferurile au loc la una din cele doua viteze. Viteza totala este de 12 Mb / s si viteza redusa este de 1,5 Mb / s. Viteza totala se refera la mijloc de date intensiv audio si comprimate, aplicatii video, in timp ce viteza redusa sprijina mai putin aplicatii de date intensive.

4.1.1 Transferul Protocoalelor

Viteza maxima suporta patru tipuri de transfer: izocron, in masa, de intrerupere si de control. Viteza minima accepta doua tipuri de transfer: de intrerupere si de control. Cele patru tipuri de transfer sunt descrise mai jos:

- Transferul Izocron, sensul egal timp, sa garanteze o suma fixa de date la o rata fixa. Acest mod garanteaza acuratetea datelor pentru oportunitate garantata. Data de valabilitate nu este verificat, deoarece nu exista timp pentru a re-trimite pachete rele si, oricum consecintele datelor rele nu sunt catastrofale.

- Transferul in masa este opusul transferului izocron. Acuratetea datelor este garantata, dar oportunitatea nu este.

- Transferurile Intrerupte sunt concepute pentru a comunica cu aparate care au o cerinta moderata a ratelor de date. Human Interface

Dispozitive tip clape, dar sunt un exemplu. Pentru Transferuri intrerupte, cheia este dorinta pentru a transfera date la intervale regulate. USB-ul periodic voteaza acest aparat, la o rata fixa pentru a vedea daca exista date de transferat.

- Transferuri de control sunt folosite pentru configurati propuse.

4.1.2Cadre

Informatile comunicate in magistrala sunt grupate intr-un format numit cadre. Fiecare cadru este de 1 ms si este compus din mai multe transferuri. Fiecare transfer de tip se poate repeta mai multe ori intr-un cadru.

4.1.3Putere

Puterea a fost intotdeauna un motiv de ingrijorare cu orice dispozitiv. Cu USB, 5 volti putere este acum disponibil direct de la magistrala. Dispozitivele pot fi auto-powered sau buspowered. Self-powered, dispozitive vor trage putere de la adaptorul de putere. Pe de alta parte, dispozitivele buspowered vor trage puterea direct de la magistrala USB. Exista limite de cat de mult putere poate fi trasa magistralei USB. Puterea este exprimata in termeni de 'unitate de sarcini' (≤ 100 mA). Toate dispozitivele, inclusiv Hub-uri, sunt garantate de cel putin 1 unitate de incarcare (nivel scazut de putere), dar trebuie sa negocieze cu gazda timp de pana la 5 unitati de sarcini (de mare putere). In cazul in care gazda stabileste ca magistrala in configuratia prezenta nu poate suporta un aparat de cerere pentru mai multe unitati de sarcini, aparatul va fi interzis iar extra unitatea de sarcina trebuie sa ramana intr-o mica putere de configurare.

4.1.4Puncte de oprire

La cel mai mic nivel, fiecare dispozitiv controleaza una sau mai multe puncte de oprire. Un final poate fi gandit ca un port virtual. Obiective sunt utilizate pentru a comunica cu functile unui aparat. Fiecare punct de orire este o sursa de date. Punctele de oprire au in acelasi timp, o intrare si o iesire asociate cu aceastea. Fiecare dispozitiv trebuie sa puna in aplicare puncte de oprire 0 pentru a sprijini transferuri de control pentru configurare. Exista un numar maxim de 15 puncte de oprire disponibile pentru utilizarea de catre fiecare dispozitiv de viteza maxima si 6 puncte de oprire pentru fiecare dispozitiv de viteza lenta. Amintiti-va ca magistrala este gazda centrica, deci in / out este cu privire la gazda si nu la aparat.

4.1.5Enumerarea

Inainte de a comunica in magistrala, gazda, trebuie sa vada ca un nou dispozitiv a fost conectat si apoi trebuie sa treaca printr-un 'proces de enumerare'. Acest proces permite gazdei de a pune aparatul sa se introduca in sine, parametrilor de performanta si de negociere, cum ar fi consumului de energie, de transfer de protocol si de rata de votare. Prin urmare, procesul de enumerare este initiat de catre gazda, atunci cand detecteaza ca un nou dispozitiv sa conectat la magistrala. Acest lucru are loc in fundalul aplicarii procesului.

4.1.6Descriptori

Specificatia USB necesita o serie de descriptori diferiti care sa ofere informatiile necesare pentru identificarea unui dispozitiv, specifice sunt punctele de oprire, si in final fiecare functiei a punctelor de oprire. Cele cinci categorii generale de descriptori sunt: Aparat, de configurare, de interfata, End Point si String. Aparatul Descriptorului furnizeaza informatii generale, cum ar fi producatorul, numarul de produse, numarul de serie, clasa dispozitivului USB, produs scade sub, si numarul de diferite configuratii de suportat. Acolo nu poate fi decat un singur dispozitiv descriptorul pentru o anumita aplicatie.

Configurararea Descriptorului ofera informatii cu privire la cerintele de putere a aparatului si de cat de multe interfete diferite, atunci cand sunt sustinute in aceasta configuratie.

Nu poate fi mai mult de o configurare pentru fiecare aparat, (de exemplu, un dispozitiv de mare putere poate, de asemenea, sprijini o configurare de putere mica).

Interfata Descriptorul detaliaza numarul de obiective utilizate in aceasta interfata, precum si clasa soferului pentru a utiliza aparatul trebuie sa suporte in mai multe functii decat doar un aparat de clasa. Nu poate fi decat o singura Interfata a Descriptorul pentru fiecare configuratie.

Descriptorul punctelor de oprire detaliaza registru actual pentru functia data. Informatiile sunt stocate despre tipul transferul suportat, directie (in / out), cerintele latimii de banda si intervalul de votare. Nu poate fi mai mult de un punct final intr-un dispozitiv, si punctele finale pot fi impartita intre diferite interfete.

Multe din cei patru descriptori enumerati mai sus se refera sau indexeaza descriptori String diferiti. Descriptorii String sunt utilizati pentru a furniza distribuitorului informatii specifice aplicatilor. Acestea pot fi si sunt optionale codificate in format 'Unicode'.

4.1.7Clasele dispozitivelor / Driverele claselor

Sisteme de operare ofera drivers al caror grup functioneaza impreuna, cu tipuri de dispositive comune numite clase.

Exemple de clase a dispozitivelor includ, dar nu se limiteaza , la stocare, audio, la comunicatii si HID (Human Interface). Class drivers pentru o anumita aplicatie sunt referite in ambele dispozitivul Descriptor si interfata Descriptorului. Majoritatea aplicatiilor pot gasi o clasa Driver care sustine majoritatea lor functie / nevoile comanda. Furnizori, care au o cerinta pentru anumite comenzi care nu sunt acceptate de catre oricare dintre standarde driverele pot sa prevada un anumit furnizor '. INF' fisier sau driver pentru support extra.

4.1.8 Rezumat

In timp ce un ansamblu complet de USB este dincolo de domeniul de aplicare a acestui document, cateva concepte cheie trebuie sa fie observate. Viteza minima de comunicare este proiectata pentru dispozitive, care in trecut, folosesc intreruperile pentru a comunica cu gazda. In schema USB , aparatele nu intrerup direct procesorul atunci cand ele au date. Gazda face sondaje periodice fiecarui dispozitiv pentru a vedea daca au vre-un fel de date. Aceasta rata de votare este negociata intre aparat si gazda, care sa cuprinda un sistem de latenta garantata.

Pentru mai multe detalii despre USB, a se vedea USB v1.1 spec., disponibil la site-ul USB www.usb.org.

4.2 Introducere

Modulul USB PIC16C745/765 suporta viteza mica de control si de intrerupere (IN si OUT) numai transferuri. Punerea in aplicare sprijina 3 puncte finale (0, 1, 2), pentru un total de 6 puncte finele(oprire).

Urmatorii termeni sunt utilizati in descrierea modulului USB:

• MCU - Nucleul procesor si firmware corespunzatoare

• SIE - interfata seriala : acea parte a USB-lui care indeplineste functii cum ar fi generatia CRC si pontajul semnalelor D + si D-.

• USB – modulul USB inclusiv SIE si registre

• Bit stuffing - forteaza o tranzitie de insertie pe D + si D- pentru a mentine ceasul de sincronizare

• BD –Descriptorul tampon

• BDT –Tabelul descriptorulul tampon

• EP – punct final (combinatie de punct final si directie)

• IN - pachete de transfer in gazda

• OUT - pachete de transfer in afara gazdei

4.3 Tranzactile USB-lui

Cand USB-ul transmite sau primeste date SIE va verifica mai intai ca punctual de oprire corespunde si directia Buffer-lui UOWN este egal cu 1. USB-ul va muta datele catre sau de la buffer-ul corespunzator. Cand token-ul este complet, USB va actualiza statutul BD-lui si schimba bitul UOWN pe 0. Registrul USTAT este actualizat si TOK_DNE este setat pe intrerup. In cazul in care procesele MCU intrerup TOK_DNE, citeste registrul USTAT, care da MCU-lui informatiile de care are nevoie pentru a procesa punctele de oprire. La acest punct MCU-ul va prelucra datele si va seta corespunzator biti UOWN. Figura 10.1 prezinta o linie de timp cum un tipic USB token-ar fi procesate.

4.4 Suport Firmware

Microcip ofera un suport complet de biblioteca, capitolul standard 9 din comenzile USB-lui. Aceste biblioteci furnizeaza un strat de software pentru a izola aplicatile software-ului de la a se ocupa de complexitatea protocolului USB. O simpla interfata Pune / Ia este pusa in aplicare pentru a permite proceselor majoritare a USB-lui de a lua loc in fundal, in cadrul USB intrerupe serviciul de rutina. Cererile sunt incurajate sa foloseasca bibliotecile furnizate in timpul celor 2 operatii enumerarea si configurarea.

4.5Harta registrelor USB

Registrul de control al USB-lui, Descriptori buffer-lui sunt situate in Banca 3.

CONTROLUL SI STAREA REGISTRELOR

Modulul USB este controlat de 7 registri, plus cele care controleaza fiecare punct de oprire si punct de oprire / directie buffer.

4.5.1 USB Interrupt Register (UIR)

USB Interrupt Status Register (UIR) contine pavilioane de biti, pentru fiecare dintre sursele de intrerupere in cadrul USB. Fiecare din acesti biti sunt calificati cu biti lor de intrerupe permite (a se vedea de Interrupt Enable Register UIE). Toti bitii din registru sunt logic OR'ed impreuna pentru a forma o singura sursa de intrerupere pentru microprocesor intrerupere gasit in PIR1 (USBIF). Odata ce un bit de intrerupere a fost stabilit, aceasta trebuie sa fie eliminate prin scrierea unui zero.

bit 7-6: Neimplementat: Citeste ca'0 '

bit 5: STALL: O strangere de mana STALL a fost trimisa de catre SIE

bit 4:   UIDLE: Acest bit este setat in cazul in care USB-ul a detectat o constanta inactiva pe magistrala USB-lui pentru semnale de 3 ms. Timer-ul inactiv este resetat cand simte activitate la magistrala USB. Odata ce o conditie de mers in gol a fost detectata, utilizatorul ar putea dori sa puna modulu USB in SUSPEND, prin setarea bitului SUSPEND in registrul UCTRL.

bit 3:   TOK_DNE: Acest bit este setat cand prelucrarea actualului simbol este completa. Microprocesor ar trebui sa citeasca imediat registrul USTAT pentru a stabili numarul punctului final si directia utilizata pentru acest simbol. Stergerea acestui bit provoaca eliminarea registrului USTAT sau registrul de asteptare USTAT va fi incarcate in registrul STAT, daca un alt simbol a fost procesat.

bit 2:  ACTIVITY: Activitate pe linile D + / D- va provoca SIE pentru a seta acesti biti. In mod tipic, acest bit este nemascat in urma detectarii SLEEP. Utilizatorii trebuie sa permita activitatea de intrerupere in USB Interrupt Register (UIE: 191h) prioritar intrarii suspendate.

bit 1:   UERR: Acest bit este setat, atunci cand nici una dintre conditiile de eroare in registru ERR_STAT au avut loc. MCU-ul trebuie sa citeasca registru ERR_STAT pentru a determina sursa de eroare.

bit 0:   USB_RST: Acest bit este setat cand USB-ul a decodificat o resetare valabila a USB-lui. Acesta va informa MCU-ul pentru a scrie adresa 00h in registru de adresare si pentru a porni punctul final 0. USB_RST se stabileste o data ce restarea USB-lui a fost detectat pentru o perioada de 2.5 microsecunde. Acesta nu va fi afirmat din nou, pana cand conditile de resetare a USB-lui nu au fost eliminate, apoi resetate.

Nota 1: Biti pot fi modificati numai in cazul in care UCTRL.SUSPND = 0.

4.5.2 USB Interrupt Enable Register (UIE)

USB Interrupt Enable Register (UIE) contine enable biti, pentru fiecare dintre sursele de intrerupere, in USB. Setarea oricarui din acesti biti va permite sursei de intrerupere respectiva in registrul UIR. Valorile in registrul UIE afecteaza numai la raspandirea conditilor de intrerupere a registrului PIE1. Conditile de intrerupere mai pot fi chestionate si de servicii.

bit 7-6:   Unimplemented: Read as '0'

bit 5:   STALL: Set to enable STALL interrupts

1 = STALL interrupt enabled

0 = STALL interrupt disabled

bit 4:   UIDLE: Set to enable IDLE interrupts

1 = IDLE interrupt enabled

0 = IDLE interrupt disabled

bit 3:   TOK_DNE: Set to enable TOK_DNE interrupts

1 = TOK_DNE interrupt enabled

0 = TOK_DNE interrupt disabled

bit 2(1):   ACTIVITY: Set to enable ACTIVITY interrupts

1 = ACTIVITY interrupt enabled

0 = ACTIVITY interrupt disabled

bit 1:   UERR: Set to enable ERROR interrupts

1 = ERROR interrupt enabled

0 = ERROR interrupt disabled

bit 0:   USB_RST: Set to enable USB_RST interrupts

1 = USB_RST interrupt enabled

0 = USB_RST interrupt disabled

Note 1: This interrupt is the only interrupt active during UCTRL.SUSPEND = 1

4.5.3USB Error Interrupt Status Register (UEIR)

USB Error Interrupt Status Register (UEIR) contine biti, pentru fiecare dintre sursele de eroare in cadrul USB. Fiecare din acesti biti sunt activati de catre respectivi biti de eroare (UEIE). Rezultatul este OR'ed impreuna si de a trimite catre bitii de EROARE a registrului UIR. O data ce un bit de intrerupere a fost setat trebuie sa fie eliminate de scrierea unui zero la bitul respective de intrerupere. Fiecare bit este setat la momentul in care conditia de eroare este detectat. Astfel, de obicei, intreruperile nu vor coincide cu sfarsitul token-ul in curs de procesare.

bit 7:   BTS_ERR: A bit stuff error has been detected

bit 6: OWN_ERR: This bit is set if the USB is processing a token and the OWN bit within the BDT is equal to 0(signifying that the microprocessor owns the BDT and the SIE does not have access to the BDT). If processingan IN TOKEN this would cause a transmit data underflow condition. Processing an OUT or SETUPTOKEN would cause a receive data overflow condition.

bit 5:   WRT_ERR: Write Error

A write by the MCU to the USB Buffer Descriptor Table or Buffer area was unsuccessful. This error occurswhen the MCU attempts to write to the same location that is currently being written to by the SIE.

bit 4: BTO_ERR: This bit is set if a bus turnaround time-out error has occurred. This USB uses a bus turnaroundtimer to keep track of the amount of time elapsed between the token and data phases of a SETUP or OUT TOKEN or the data and handshake phases of a IN TOKEN. If more than 17-bit times are counted from the previous EOP before a transition from IDLE, a bus turnaround time-out error will occur.

bit 3: DFN8: The data field received was not 8 bits. The USB Specification 1.1 specifies that data field must be an integral number of bytes. If the data field was not an integral number of bytes this bit will be set.

bit 2:   CRC16: The CRC16 failed

bit 1: CRC5: This interrupt will detect CRC5 error in the token packets generated by the host. If set the tokenpacket was rejected due to a CRC5 error.

bit 0:   PID_ERR: The PID check field failed

Note 1: Bits can only be modified when UCTRL.SUSPND = 0.

4.5.4Error Interrupt Enable Register (UEIE)

USB Error Interrupt Enable Register (UEIE) contine enable biti, pentru fiecare dintre sursele de eroare intrerupte in cadrul USB-lui. Setarea oricarui din acesti biti va permite pornirea respective surse de intreruperi in registrul UEIR.

bit 7:   BTS_ERR: Set this bit to enable BTS_ERR interrupts

1 = BTS_ERR interrupt enabled

0 = BTS_ERR interrupt disabled

bit 6:   OWN_ERR: Set this bit to enable OWN_ERR interrupts

1 = OWN_ERR interrupt enabled

0 = OWN_ERR interrupt disabled

bit 5:   WRT_ERR: Set this bit to enable WRT_ERR interrupts

1 = WRT_ERR interrupt enabled

0 = WRT_ERR interrupt disabled

bit 4:   BTO_ERR: Set this bit to enable BTO_ERR interrupts

1 = BTO_ERR interrupt enabled

0 = BTO_ERR interrupt disabled

bit 3:  DFN8: Set this bit to enable DFN8 interrupts

1 = DFN8 interrupt enabled

0 = DFN8 interrupt disabled

bit 2:   CRC16: Set this bit to enable CRC16 interrupts

1 = CRC16 interrupt enabled

0 = CRC16 interrupt disabled

bit 1:   CRC5: Set this bit to enable CRC5 interrupts

1 = CRC5 interrupt enabled

0 = CRC5 interrupt disabled

bit 0:   PID_ERR: Set this bit to enable PID_ERR interrupts

1 = PID_ERR interrupt enabled

0 = PID_ERR interrupt disabled

4.5.5Registrul status(USTAT)

Registrul status al USB-lui raporteaza tranzactile de stare in cadrul USB-lui. In cazul in care MCU recunoaste o intrerupere TOK_DNE, acest registru trebuie sa fie citit pentru a determina starea anterioara a punctului final de comunicare.

Datele din registrul de stare sunt valabile atunci cand bitul de intrerupere TOK_DNE este afirmat.

Registrul USTAT este de fapt o fereastra citita intr-un status FIFO mentinut de USB. Cand USB-ul foloseste BD-ul,atunci se actualizeaza registrul de stare. Daca o alta tranzactie este efectuata inainte de itreruperile TOK_DNE este deservit, USB-ul va pastra statutul tranzactie urmatoare in STAT FIFO. Astfel, registrul STAT este, de fapt, o perioada de patru biti FIFO care permite MCU pentru a procesa o tranzactie in timp ce SIE prelucreaza urmatoarea tranzactie. Stergerea bitilor TOK_DNE in registrul INT_STAT face ca SIE sa actualizeze registrul STAT cu continutul urmatoarei valori STAT. In cazul in care datele in registrul de asteptare STAT este valabil, SIE va reseta imediat intreruperile TOK_DNE.

bit 7-5:   Unimplemented: Read as ’0’

bit 4-3:   ENDP<1:0>: These bits encode the endpoint address that received or transmitted the previous token.This allows the microprocessor to determine which BDT entry was updated by the last USB transaction.

bit 2:   IN: This bit indicates the direction of the last BD that was updated

1 = The last transaction was an IN TOKEN

0 = The last transaction was an OUT or SETUP TOKEN

bit 1-0:   Unimplemented: Read as ’0’

4.5.6Registrul de control(UCTRL)

Registru de control ofera diverse de control si de configurare a informatilor pentru USB.

bit 7-6:   Unimplemented: Read as ’0’

bit 5:   SE0: Live Single Ended Zero

This status bit indicates that the D+ and D- lines are both pulled to low.

1 = Single ended zero being received

0 = Single ended zero not being received

bit 4 PKT_DIS: The PKT_DIS bit informs the MCU that the SIE has disabled packet transmission and reception.Clearing this bit allows the SIE to continue token processing. This bit is set by the SIE when a Setup Token is received allowing software to dequeue any pending packet transactions in the BDT before resuming token processing. The PKT_DIS bit is set under certain conditions such as back to back SETUP tokens. This bit is not set on every SETUP token and can be modified only when UCTRL.SUSPND = 0.

bit 3:   DEV_ATT: Device Attach

Enables the 3.3V output.

1 = When DEV_ATT is set, the VUSB pin will be driven with 3.3V (nominal)

0 = The VUSB pins (D+ and D-) will be in a high impedance state

bit 2: RESUME: Setting this bit will allow the USB to execute resume signaling. This will allow the USB to perform remote wake-up. Software must set RESUME to 1 for 10 mS then clear it to 0 to enable remote wake-up. For more information on RESUME signaling, see Section 7.1.7.5, 11.9 and 11.4.4 in the USB 1.1 specification.

1 = Perform RESUME signaling

0 = Normal operation

bit 1: SUSPND: Suspends USB operation and clocks and places the module in low power mode. This bit will generally be set in response to a UIDLE interrupt. It will generally be reset after an ACTIVITY interrupt. VUSB regulation will be different between suspend and non-suspend modes. The VUSB pin will still be driven, however the transceiver outputs are disabled.

1 = USB module in power conserve mode

0 = USB module normal operation

bit 0:   Unimplemented: Read as ’0’

4.5.7Registrul adresa(UADDR)

Registrul adresa (UADDR) contine unica adresa a USB-lui pe care USB-ul o va decoda. Registrul este resetate la 00h dupa RESET intrarea a trecut pe activa sau USB-ul a decodificat un semnal de resetare al USB-lui. Aceasta va initializa registrul de adresare pentru a decoda adresa 00h in conformitate cu specificatiile USB. Adresa USB trebuie sa fie scris de catre MCU in timpul fazei de SETUP a USB-lui.

bit 7:   Unimplemented: Read as ’0’

bit 6-0:   ADDR<6:0>: This 7-bit value defines the USB address that the USB will decode

4.5.8 USB Software Status Register (USWSTAT)

Acest registru este utilizat de catre bibliotecile USB firmware.

4.5.9 Registrul Punct de oprire

Fiecare punct final este controlata de un registru de control. PIC16C745/765 sprijina descriptori bufferului (BD) pentru urmatoarele obiective:

- EP0 Out

- EP0 In

- EP1 Out

- EP1 In

- EP2 Out

- EP2 In

Utilizatorul va fi nevoit sa dezactiveze puncte finale neutilizate si directii folosind registrul de control al punctelor finale.

4.5.10 Registrul de control al punctelor de oprire (EPCn)

Registrul de control a punctelor de oprire contine biti de control pentru fiecare din cele 6 puncte finale ale USB-lui pentru o adresa de decodata. Acesti patru biti definesc controlul necesar pentru orice punct final. Punctul final 0 (ENDP0) este asociata cu controlul conductelor 0, care este cerut de USB pentru toate functiile (IN,OUT si SETUP). De aceea, dupa ce s-a receptionat o intrerupere a USB_RST, microprocesor ar trebui sa seteze UEP0 de a contin 06h.

bit 7-4:   Unimplemented: Read as ’0’

bit 3-1:   EP_CTL_DIS, EP_OUT_EN, EP_IN_EN: These three bits define if an endpoint is enabled and the directionof the endpoint. The endpoint enable/direction control is defined as follows:

EP_CTL_DIS

EP_OUT_EN

EP_IN_EN

Endpoint Enable/Direction Control

X

Disable Endpoint

X

Enable Endpoint for IN tokens only

X

Enable Endpoint for OUT tokens only

Enable Endpoint for IN and OUT tokens

Enable Endpoint for IN, OUT, and SETUP tokens

bit 0: EP_STALL: When this bit is set it indicates that the endpoint is stalled. This bit has priority over all other control bits in the Endpoint Enable register, but is only valid if EP_IN_EN=1 or EP_OUT_EN=1. Any access to this endpoint will cause the USB to return a STALL handshake. The EP_STALL bit can be set or cleared by the SIE. Refer to the USB 1.1 Specification, Sections 4.4.4 and 8.5.2 for more details on the STALL protocol.

4.6 Interfata software a USB-lui

Microcip prevede un strat a software-lui care se ocupa de cel mai scazut nivel al interfatei astfel incat aplicatia dvs. nu-l va avea. Aceasta ofera o simpla Pune / Ia la interfata pentru comunicare. Cea mai mare parte a procesarilor USB-lui au loc in fundal prin serviciile intreruperilor de rutina. Din punct de vedere al cererii, procesul de enumerare si comunicatiile de date sa aiba loc fara a mai fi interactiune. Cu toate acestea, setup-ul substantial este cerut sub forma de generatoare a descriptorilor apropiati.

Interfata Software a USB-lui

Capitolul 3

Senzorul DS1980

1.Caracteristici speciale:

- Termometrul deigital masoara temperature de la -55°C la +100°C intr-un timp de 0.2s

- Puterea in modul standby egala cu zero.

- Rezolutia de 0.5°C, citirea digitala a temperaturii se face printr-un complement al acestei valori

- Accesul la contoarele interne permit cresterea rezolutiei prin interpolare

- Reducerea controlului, adresei, datelor si sursei de alimentare pentru o singura data de contact

- CRC pe 8 biti generat de dispozitv pentru integritatea datelor

- Codul de 8 biti al familiei specifica cereri de comunicare DS1920 cu cititorul

- Un set special de comenzi permite utilizatorului sa treaca peste sectiunea ROM si sa efectueze simultan masurari de temperatura pentru toate dispozitivele de pe magistrala

- 2 Octeti ai memoriei EPROM sunt utilizati fie ca si declansatori de alarma fie ca si memoria utilizatorului

- cautarea alarmei indica direct care dintre dispozitive detecteaza temperaturile de alarma

2.Trasaturi comune ala senzorului iButton

- Numarul unic de inregistrare testat din fabrica de 64de biti (codul familiei de 8 biti + numarul serial de 48 biti + tester CRC de 8 biti) asigura o caracteristica unica deoarece nu exista doua parti identice

- Controler multidrop pentru MicroLAN

- Identificare digitala si informationala pentru contacte momentale

- Un chip de transport de date inmagazineaza informatiile intr-un mod compact

- Datele pot fi accesate in timp ce sunt aplicate obiectului

- Comunica din punct de vedere economic cu Bus Master-ul printr-un semnal digital singular de 16.3 Kbps

- Diametru standard de 16mm si un protocol 1-Wire in asigurarea compatibilitatii cu familia iButton

- Forma senzorului este compatibila cu formele de proba

- Carcasa durabila din otel inoxidabil gravata cu numarul de inregistrare este proiectata sa reziste unui mediu ostil

- Dispune de o suprafata auto-adeziva pentru a putea fi plasat in diferite zone

- Un detector de prezenta recunoaste cand se aplica pentru prima data tensiune

- Este proiectat sa indeplineasca cerintele UL#913;

3.Descrierea senzorlui iButton

Senzorul de temperatura iButton DS19020 furnizeaza citiri ale temperaturii pe 9 biti, ceea ce reprezinta temperatura dispozitivului. Informatia este transmisa la/de la DS1920 prin intermediul unei interfete 1-Wire. Energia necesara citirii, scrierii si efectuarii conversiilor de temperatura deriva din insasi linia de date. Datorita faptului ca fiecare DS1920 contine un numar unic de identificare, mai multe DS1920 pot exista mai multe asemenea modele pe aceeasi magistrala 1-Wire. Acest lucru permite plasarea senzorilor in locuri diferite. Dintre aplicatiile in care aceasta caracteristica este utila sunt aplicatiile de control al mediului HVAC, determinarea temperaturii din interiorul cladirilor si in diferite procese de monitorizare.

4.Privire de ansamblu

Diagrama bloc din figura prezinta componentele majore ale DS1920. Senzorul DS1920 contine trei componente de date de baza: 1) o memorie ROM de 64 biti, 2) un senzor de temperatura si 3) declansatoare de alarma TH si TL. Dispozitivul se alimenteaza din linia de comunicare 1-Wire prin acumularea energiei intr-un capacitor intern in decursul perioadelor de timp in care linia semnalului este inalta si continua sa foloseasca aceasta sursa in momentele joase ale liniei 1-Wire pana in momentul in care nivelul creste si capacitorul se reincarca.

O functie de comanda trimite o instructiune DS1920 pentru a efectua o masurare de temperatura. Rezultatul acestei masuratori va fi plasat in memoria DS1920 si poate fi scris prin initierea unei functii de comanda care citeste continutul memoriei. Declansatoarele de alarma de temperatura TH si TL sunt alcatuite dintr-un bit EPROM fiecare. In cazul in care comanda de cautare a alarmei nu este aplicata DS1920, inregistrarile pot fi folosite ca si memorie de uz general. Legarea TH si TL se face printr-o functie de comanda a memoriei. Accesul la citirea acestor registrii se face prin memoria temporara. Datele sunt citite si apoi scrise incepand cu cel mai putin semnificativ bit.

5.Puterea Parazita

Diagrama bloc arata circuitul alimentat cu putere parazita. Acest circuit “fura” energia oridecateori datele de contact sunt sus. Datele vor furniza suficienta putere atata timp cat timpul specificat si cerintele de tensiune sunt indeplinite. Avantajul acesteri puteri parazite este acela ca nu este necesara nici o sursa locala de alimentare pentru detectarea temperaturii de la distanta.

Pentru ca DS1920 sa poata efectua conversii precise de temperatura, trebuie sa fie furnizata suficienta putere peste linia de date cand are loc o conversie de temperatura. Senzorul DS1920 necesita un curent de pana la 1 mA in timpul conversiei, prin urmare, linia de date nu va avea suficienta conducere ca urmare a celor 5 kΩ de rezistenta. Problema este destul de acuta daca mai multi DS1920 sunt conectati la aceeasi linie de date si incearca conversia simultan.

Modalitatea prin care se poate asigura ca DS1920 sa aiba destul curent de alimentare este de a furniza o puternica incarcare a liniei de date oridecateori conversia temperaturii sau scrierea in EEPROM are loc. Acest lucru poate fi realizat folosind un MOSFET pentru conectarea liniei de date cu sursa de alimentare asa cum este prezentat in figura. Linia de date trebuie comutata pe modul incarcare puternica in maxim 10µs de la trimiterea comenzii care implica copierea in EEPROM sau initierea unei conversii de temperatura.

6.Operatia de masurare a temperaturii

Senzorul DS1920 masoara temperatura prin folosirea unei tehnici proprii de masurare on-board a temperaturii. Diagrama bloc a circuitului de masurare a temperaturii este afisata in figura 3.

Senzorul DS1920 masoara temperatura prin numararea ciclurilor de ceas prin care trece un oscilator cu un coeficient de temperatura mic intr-o perioada de poarta determinata de un oscilator cu un coeficient de temperatura mare. Contorul este presetat cu un start care corespunde temperaturii de -55°C. In cazul in care contorul ajunge la 0 inainte ca peroada de poarta sa se termine, registrul de temperatura, care este si el presetat la valoarea de -55°C, este incrementat, indicand faptul ca temperatura este mai mare decat -55°C.

In acelasi timp, contorul este presetat cu o valoare determinata de circuitul de acumulare a pantei. Contorul este din nou intregistrat pana ajunge la 0. Daca perioada de poarta nu este finalizata, procesul se repeta.

Acumulatorul de panta compenseaza comportamentul nonliniar al oscilatoarelor fata de temperatura, asigurand o masurare foarte precisa a temperaturii. Acest luctu este realizat prin schimbarea numarului masuratorilor necesare prin care contorul trece pentru fiecare grad masurat al temperaturii. Pentru obtinetea rezolutiei dorite, atat valoarea contorului cat si numarul de masurari pe grad C (valoarea pantei acumulatorului) la o anumita temperatura trebuie cunoscuta.

Intern, calculul este realizat in DS1920 pentru a furniza o rezolutie de 0.5°C. Citirea temperaturii este realizata intr-o citire pe 16 biti. Tabela 1 descrie exact relatia dintre datele afisate si temperatura masurata. Datele sunt transmise serial prin interfata 1-Wire. Senzorul DS1920 poate masura temperatura intr-o plaja de -55°C pana la +100°C cu o incrementare de 0.5°C. Pentru citirea in grade Fahrenheit, este necesara o tabela de conversie.

Temperatura este reprezentata in termenii DS1920 cu 1/2°C LSB, avand urmatorul format

MSB LSB

= -25°C.

Cel mai semnificativ bit este duplicat in toti bitii nivelului superior MSB ai celui de-al 2-lea octet al registrului de temperatura din memorie. Rezolutii mai mari pot fi obtinute urmand urmatoarea procedura. Prima data, se citeste temperatura si se trunchiaza bitul 0.5°C (LSB) al valorii citite. Aceasta valoare reprezinta TEMP_READ. Valoarea ramasa in contor poate fi citita ulterior. Aceasta este COUNT_REMAIN si reprezinta valoarea ramasa in contor dupa ce perioada de poarta s-a incheiat. Ultima valoare necesara este numarul de inregistrari per grade C (COUNT_PER_C) al temperaturii. Valoarea efectiva a temperaturii poate fi calculata de catre utilizator folosind formula:

TEMPERATURE = TEMP_READ - 0.25 + (C OUNT_PER_C – COUNT_REMAIN) / COUNT_PER_C

7.Magistrala 1-Wire

Magistrala 1-Wire reprezinta un sistem care are o singura magistrala master si unul sau mai multe slave-uri. Senzorul DS1920 se comporta ca si un slave. Discutia legata de aceasta magistrala se imparte in 3 topice separate: configurarea hardware, secventa de tranzactie si semnalele 1-Wire (tipul semnalelor si monentele).

8.Configurarea hardware

Magistrala 1-Wire are prin definitie o singura linie; este important ca fiecare dispozitiv de pe magistrala sa fie capabil sa o directioneze la momentul potrivit. Pentru a facilita acest lucru, fiecare dispozitivatasat magistralei 1-Wire trebuie sa aiba drain deschis sau iesiri 3-states. Portul 1-Wire al DS1920 este deschis cu un circuit interior echivalent cu cel din figura. O magistrala multidrop consta dintr-una 1-Wire cu multipli slave atasati de ea. Magistrala 1-Wire necesita un rezistor de aproximativ 5kΩ. Starea de mers in gol pentru magistrala 1-Wire este inalta. Daca pentru un motiv anume o tranzactie trebuie suspendata, magistrala trebuie lasata in stare de functionare in gol daca se va relua tranzactia. Daca acest lucru nu se intampla si magistrala este lasata intr-o stare joasa mai mult de 120µs, unul sau mai multe dispozitive de pe magistrala se vor reseta.

9.Secventa de trazactie

Potocolul pentru accesarea DS1920 via portul 1-Wire este urmatorul:

Initializare

Comanda functiei ROM

Comanda functiei de memorie/control

Tranzactie/date

10.Semnalarea 1-Wire

Senzorul DS1920 necesita protocoale stricte pentru asigurarea integritatii datelor. Protocolul consta in 5 tipuri de semnalari pe o singura linie: ResetSequence cu Reset Pulse si Presence Pulse, Write 0, Write 1, Read Data snd Strong Pullup. Toate aceste semnale cu exceptia semnalului Presence Pulse sunt initiate de care masterul magistralei. Secventa de initializare necesara inceperii oricarui tip de comunicare cu DS1920 este prezentata in figura 10. Un Reset Pulse urmat de Presence Pulse indica faptul ca senzorul DS190 este gata sa accepte o comanda ROM. Masterul magistralei transmite (Tx) un Reset Pulse (tRSTL, minim 480µs). Dupa aceasta, masterul magistralei elibereaza linia si intra intr-un mod de primire (Rx). Magistrala 1-Wire este trasa intr-o stare inalta prin rezistorul de stare. Dupa detectarea cresterii nivelului liniei 1-Wire, senzorul DS1920 asteapta (tPDH, 15-60µs) si transmite pe urma semnalul Presence Pulse (tPDL, 60-240µs).

Capitolul 4

Descrierea lucrarii

1.Destinatie

Acest proiect este un modul de dezvoltare ce are in componenta un microcontroler PIC16F745B. Cu 4 canale de masura analogice unipolare, 2 canale de masura analogice bipolare, 8 intrari digitale, un bus pe un fir (masurarea temperaturii la distanta), comunicatie prin USB, poate fi utilizat in 101 aplicatii diferite utilizand un simplu calculator PC sau un terminal, pentru alimentare, afisare si achizitie de date. Existenta conectorului de programare in circuit (USB) permite stergerea, (re)programarea, citirea si verificarea memoriei microcontrolerului. In acest mod, un utilizator avand cunostiinte medii de electronica si de programare, poate schimba configuratia standard a modulului intr-una cu totul noua.

Modulul permite:

• masurarea temperaturii in domeniul -50+100°C cu rezolutie de 0.2s, utilizand un senzor de temperatura 1-Wire

• masurarea a 4 tensiuni unipolare: 2x(0+5)V, 1x(0+10)V, 1x(0+20)V cu rezolutia de 10 biti

• masurarea a 2 tensiuni bipolare 0±2.5 V cu rezolutia de 10 biti

• interfatarea a 8 intrari digitale (active in stare logica 0)

• comunicatie prin USB





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.