Comunicații de date

Referat
8/10 (1 vot)
Conține 1 fișier: docx
Pagini : 8 în total
Cuvinte : 1291
Mărime: 16.99KB (arhivat)
Publicat de: Nicodim Petrea
Puncte necesare: 5
Universitatea “Politehnica” Timişoara Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Informatică Aplicată

Extras din referat

Se consideră o structură hardware constînd din două sisteme de dezvoltare echipate cu

microcontrolere de tip 80C552. Acest tip de microcontroler integrează în cip facilităţile

hardware necesare pentru a comunica pe o magistrală serială în standard I2C. Acest hardware

are structura unui automat cu stări finite, exploatabil prin intermediul unor registre ale

microcontrolerului. Modul de exploatare este descris pe larg în paragraful 2.

Se cere să se lege între ele două sisteme, unul care funcţionează ca master şi unul care

funcţionează ca sclav. Pentru fiecare dintre sisteme se va scrie un program, în limbaj C, care

să permită comunicaţia între cele două sisteme astfel:

1. La începutul rulării aplicaţiei (după reset), fiecare modul iniţializează interfaţa

I2C.

2. După iniţializare, sistemul master intră în modul transmiţător şi transmite către

sclav două şiruri de octeţi. Aceste şiruri sînt preluate din memorie, unde se

presupune că au fost declarate prin program, ca constante. Sistemul sclav va

recepţiona aceste şiruri de octeţi şi le va memora într-un buffer. Transmisia celor

două şiruri se va face ca o operaţie indivizibilă, prin generarea unui start repetat

după transmiterea primului şir.

3. După terminarea transmisiei de către master, acesta va trece în mod receptor, iar

sclavul va trece în mod transmiţător. Acum sistemul sclav va transmite două şiruri

de octeţi, iar sistemul master le va recepţiona, deasemenea cu start repetat.

Apariţia unei erori de magistrală va avea ca efect abandonarea operaţiei curente (de

transmitere, respectiv de recepţie) şi încercarea de reluare a ei. Deoarece în sistem există un

singur master, apariţia unei stări de pierdere a arbitrării va fi tratată la fel ca o eroare.

Deasemenea, absenţa semnalului de acknoledge de la sclav va fi tratată ca eroare. Încercarea

de repetare a transferului se va face de trei ori, după care se va aborta întreaga sesiune de

comunicaţie.

Sistemele pe care se va implementa această aplicaţie sînt concepute în principal ca platformre de dezvoltare şi testare a aplicaţiilor. Aceasta înseamnă că dispun de resurse mai mari decît ale unui sistem dedicat (embedded) dar mai mici decît ale unui calculator PC.

De regulă, astfel de aplicaţii de dezvoltă, la nivel software, pe un calculator PC pe care rulează un crosscompilator. Acesta generează cod obiect care va fi transportat, de obicei printr-o cale de comunicaţie serială (RS232), pe sistemul ţintă.

Compilatorul C pentru microcontrolerul 80552 recunoaşte numele registrelor SFR şi ale biţilor din aceste registre. Ele sînt asimilate unor variabile predefinite şi pot apărea în expresii şi în instrucţii de atribuire

sînt instrucţii valide.

Pentru interfaţa cu dispozitivele de intrare-ieşire presupunem că sînt disponibile două funcţii de bibliotecă care au următoarele prototipuri:

unsigned char citeste(void);

void scrie(unsigned char);

Prima funcţie citeşte starea tastaturii şi returnează un cod ASCII, dacă este apăsată o tastă, respectiv valoarea 0, dacă nu este apăsată nici o tastă. Există 12 taste care au însemnele 0,1,2,3,4,5,6,7,8,9,*,#, respectiv codurile ASCII 0x30, 0x31, 0x32 etc.

A doua funcţie afişează un caracter pe un dispozitiv de afişare cu cristale lichide.

#include <reg552.h>

#include <ap_lib.h>

char slv=0xA;

char key;

void initializare()

{

//initializez S1CON

//setare rata de transfer 16 MHz

ENS=1; //pentru validarea SIO1

STA=0;//se reseteaza

STO=0;//se reseteaza

SI=0;//se reseteaza

AA=1;//se seteaza

CR0=0;//cei trei biti

CR1=0;//sunt pozitionati pentru

CR2=0;//rata de transfer dorita

}

//trimitere tasta incrementata

void slave_send()

{

S1ADR=slv<<1;//adresa slave

while (1)

{

if (SI)//testare SI

{

switch(S1STA)//se analizeaza starea curenta

{

case 0x0://eroare de comunicatie pe bus

lcd_Write(1, "*");//se afiseaza caracterul asterisc

break;

case 0xA8://SLA+R receptionat;ACK receptionat

S1DAT=key;//data transmisa

STO=0;

AA=1;

break;

case 0xB0://arbitrare pierduta

break;

case 0xB8://data transmisa;ACK receptionat de la master

S1DAT=key;

STO=0;

AA=1;

break;

case 0xC0://data transmisa;NOT_ACK receptionat

STA=0;

STO=0;

AA=1;

break;

case 0xC8://identic cu starea C0H

STA=0;

STO=0;

AA=1;

break;

}

SI=0;//resetare SI

}

}

}

// citeste data transmisa de master

void slave_receive()

{

S1ADR=slv<<1;//adresa slave

AA=1;//modul slave receptor.

Preview document

Comunicații de date - Pagina 1
Comunicații de date - Pagina 2
Comunicații de date - Pagina 3
Comunicații de date - Pagina 4
Comunicații de date - Pagina 5
Comunicații de date - Pagina 6
Comunicații de date - Pagina 7
Comunicații de date - Pagina 8

Conținut arhivă zip

  • Comunicatii de Date.docx

Te-ar putea interesa și

Studiu de caz - comunicarea managerială în SC Farmec SA

COMUNICAREA ORGANIZAŢIONALĂ 1. Ce este comunicarea? În sens general, comunicarea este procesul de transmitere a unui mesaj, printr-un canal, de...

Comunicații de date în rețea cu microcontroller

DECLARAȚIE DE ORIGINALITATE Subsemnatul MARCU ADRIAN RADUCU, student la specializarea Electronica Aplicata din cadrul Facultății de Automatică,...

Comunicații de date - coduri de linie

1.Tema proiect Sa se proiecteze un sistem de comunicatii de date care sa permita transmisia informatiei binare folosind coduri de linie:...

Proiect comunicații de date

PROIECT LA DISCIPLINA COMUNICATII DE DATE 1. Tema proiectului Se considerã o structurã hardware constand din douã sisteme de dezvoltare echipate...

Comunicații de Date prin Fascicul Laser

SCURT ISTORIC AL DEZVOLTĂRII SISTEMELOR DE COMUNICAŢII OPTICE Lumina,ca şi mijloc de comunicaţii,nu a fost folosită doar în era noastră...

Comunicații de date în sisteme distribuite subiecte

Student: Grupa Data 05-06-2010 1. Care este deosebirea intre un PLC si un RTU? 2. Enumerati 3 avantaje ale culegerii de date bazate pe semnale...

Comunicații de date

Comunicatiile de date reprezinta procesul de comunicare a informatiilor in forma binara intre doua sau mai multe echipamente. Ele sunt denumite de...

Sisteme de fișiere distribuite

BIBLIOGRAFIE 51 Introducere 1 Introducere Sistemele de fisiere distribuite constituie o categorie aparte a sistemelor distribuite si oferã...

Ai nevoie de altceva?