Documente Academic
Documente Profesional
Documente Cultură
Rețele de Sisteme Încorporate Proiect
Rețele de Sisteme Încorporate Proiect
Irașoc Alexandru
Munteanu Ciprian
Grijincu Cristi
CI 1A
2017
CUPRINS
1. INTRODUCERE .................................................................................................................................. 3
1.1. Tema proiectului ........................................................................................................................... 3
2. IMPLEMENTAREA HARDWARE .................................................................................................... 5
2.1. Componentele hardware ale nodului CAN ................................................................................... 5
2.2 Structura nodului CAN ................................................................................................................. 7
3 IMPLEMENTARE SOFTWARE ......................................................................................................... 8
3.1. Transmiterea mesajului CAN........................................................................................................ 8
3.2. Comunicația cu senzorii folosiți în proiect ................................................................................... 9
1. INTRODUCERE
1.1. Tema proiectului
Tema proiectului este de a realiza în mai multe echipe o serie de noduri de intrare sau de
ieșire ce vor face parte dintr-o rețea CAN. Nodurile de intrare vor transmite mesaje cu anumite
id-uri în rețeaua CAN, iar cele de ieșire vor monitoriza rețeaua și vor prelua mesajele necesare.
Scopul proiectului este de a avea o rețea CAN funcțională care să implice cât mai multe noduri și
care să se respecte mesajele, conexiunile între noduri și frecvențele de transmitere a mesajelor
prestabilite.
Nodurile participante la rețeaua CAN sunt prezentate în tabelul următor.
Nr Nod în rețeaua CAN Tip Nod Conexiune cu alte noduri
1 Motor Ieșire TX: -
RX: 4, 9, 10
2 RS323 - out Ieșire TX: -
RX: * IN
3 Senzor temperatură Intrare TX: 2, 5, 6, 8
RX:
4 RS323 - in Intrare TX: * OUT
RX: -
5 WiFi - Telefon Ieșire TX: -
RX: 3, 4, 11
6 LCD Ieșire TX: -
RX: 3, 9, 11, 7
7 Senzor lumină / Senzor Intrare TX: 2, 5, 6
gaz RX:
8 LED RGB Ieșire TX: -
RX: 6, 11, 10, 9
9 Tastatura Intrare TX: 1, 2, 6, 8
RX: -
10 Senzor Accelerometru Intrare TX: 1, 2, 8
RX: -
11 Scanner de culoare Intrare TX: 2, 5, 6, 8
RX: -
12 Difuzor Ieșire TX: -
RX: * IN
Tabel 1. Nodurile din rețeaua CAN
3
Mesajele ce vor fi transmise în rețeaua CAN de către nodurile de intrare sunt prezentate în
tabelul de mai jos.
Nume mesaj ID DLC Mod de Perioadă Întârziere Transmițător
[octet] transmitere ciclicitate
Speaker_Control 0x1 1 Eveniment - 50 Serial / tastatură
LCD_Control 0x2 1 Eveniment - 50 Serial / tastatură
WiFi_Control 0x3 1 Eveniment - 50 Serial / tastatură
Motor_Control 0x4 2 Eveniment - 50 Serial / tastatură
LED_Control 0x5 4 Eveniment - 50 Serial / tastatură
Char_data 0x10 1 Eveniment - 50 Serial / tastatură
Temperature_Data 0x20 1 Ciclic 1000 0 Senzor Temperatură
LightGas_Data 0x30 2 Ciclic 500 0 Senzor Lumină / Gas
Color_Data 0x40 3 Ciclic 200 0 Color Scanner
Accelerometer_Data 0x50 6 Ciclic 100 0 Senzor Accelerometru
Tabel 2. Nodurile din rețeaua CAN
Echipa noastră va realiza un nod de intrare ce va transmite informații legate de
luminozitate și concentrația de gaze din aer în rețeaua CAN.
4
2. IMPLEMENTAREA HARDWARE
2.1. Componentele hardware ale nodului CAN
5
Pentru a putea prelua informații despre concentrația de gaze din aer în cadrul proiectului
am folosit senzorul MQ-2. Acesta este un senzor de gaz ce folosește o componentă
electrochimică ce se încinge pentru a detecta prezența gazului în aer. MQ-2 este sensibil la o
gamă largă de tipuri de gaz precum Metan, Butan, Propan, Hidrogen, LPG, alcool sau fum.
Senzorul oferă date prin intermediul unei ieșiri analogice ce poate fi citit cu un periferic de tip
ADC de pe o platformă de dezvoltare. Rezistența senzorului este influențată de prezența gazului
în aer și acest lucru este transmis prin ieșirea analogică a senzorului. Pentru a încinge
componenta electrochimică acest senzor consumă destul de mult curent și trebuie conectat la o
sursă de alimentare de 5V. Senzorul folosit în proiect face parte dintr-un circuit integrat.
6
2.2 Structura nodului CAN
Componentele hardware folosite pentru crearea nodului CAN sunt conectate conform
figurii de mai jos:
7
3 IMPLEMENTARE SOFTWARE
3.1. Transmiterea mesajului CAN
În cadrul rețelei CAN nodul nostru va transmite un mesaj cu id-ul 0x30 ce va conține
informații despre luminozitate și concentrația gazelor din aer. Mesajul va fi format din doi octeți,
câte unul pentru fiecare senzor.
Dintre aceste funcții în aplicația noastră folosim pe cea de inițializare a perifericului pentru
a seta rata de transmisie și pe cea de configurare pentru a asigna funcții de tratate a
evenimentelor legate de comunicația în rețeaua CAN. Printre acestea se află și funcția care se
apelează atunci când sunt întâlnite erori în rețeaua CAN. În această funcție reinițializăm
perifericul pentru a putea continua transmiterea mesajelor. Pentru a transmite un mesaj se
creează o variabilă de tip CCAN_MSG_OBJ_T, membrii acestei structuri fiind setați
corespunzător.
Pentru a trimite mesajul în rețeaua CAN la fiecare 500ms, am configurat un timer în care
construim și trimitem mesajul. Un al doilea timer este configurat să declanșeze citirea senzorilor
cu 100ms înainte ca mesajul să fie trimis. Acesta din urmă este repornit în rutina de tratare a
întreruperii primului timer.
8
3.2. Comunicația cu senzorii folosiți în proiect
Nodul nostru trebuie să transmită la 500ms un mesaj în rețeaua CAN cu date legate de
intensitatea luminoasă(lucși) și concentrația de gaze(%) din aer, date preluate de către cei doi
senzori. Cu 100ms înainte de transmiterea mesajului CAN declanșăm citirea canalelor ADC
alocate senzorilor și realizăm calculul necesar ce ține de preluarea valorilor de la ADC și
transformarea lor în informații utile.
Activăm preluarea de date de către ADC într-o întrerupere de timer. Astfel începe citirea
canalelor selectate, sfârșitul citirii generând întreruperi. În întreruperea ADC - ului preluăm
datele și dezactivăm achiziția până la reactivarea acesteia cu 100ms înainte de următoare
transmitere a mesajului CAN.
Senzorii noștri sunt alimentați din exterior la 5V iar ADC - ul folosește referința internă de
3.3V. Pentru a nu avea probleme cu depășirea valorii de tensiune și interpretarea greșită a valorii
de tensiune avem un divizor rezistiv cu o rezistență RL de 1kΩ ce limitează tensiunea la o
valoare sub 3.3V pentru senzorul de lumină, iar valoarea tensiunii de ieșire a senzorului de gaz
este limitată prin intermediul circuitului integrat din care face parte.
9
Folosind aceste două perechi de valori cunoscute și de faptul că ieșirea senzorului este
lineară se poate calcula ecuația dreptei. Pe baza acestei ecuații se poate determina valoarea în
lucși pentru o anumită intensitate a curentului determinată. Figura de mai jos reprezintă ieșirea
lineară a senzorului în funcție de intensitatea curentului.
10