Universitatea Politehnica din Timioara Facultatea de Electronic i

  • Slides: 35
Download presentation
Universitatea “Politehnica” din Timişoara Facultatea de Electronică şi Comunicaţii Departamentul Electronică Aplicată Platforma de

Universitatea “Politehnica” din Timişoara Facultatea de Electronică şi Comunicaţii Departamentul Electronică Aplicată Platforma de dezvoltare TINI- nod într-o reţea CAN Conducător ştinţific: Conf. Dr. Ing. Dorina Isar Student: Cărbunar Ovidiu

Platforma de dezvoltare TINI Este formată din placa de bază şi SIMM.

Platforma de dezvoltare TINI Este formată din placa de bază şi SIMM.

Platforma de dezvoltare TINI

Platforma de dezvoltare TINI

Microcontrolerul DS 80 C 400

Microcontrolerul DS 80 C 400

Microcontrolerul DS 80 C 400 Port 5 Control Register (P 5 CNT) SFR A

Microcontrolerul DS 80 C 400 Port 5 Control Register (P 5 CNT) SFR A 2 h -- CAN 0 BA C 0_I/O Bit 3 CAN 0 BA -- -- C 0_I/O P 5 CNT. 2 P 5 CNT. 1 CAN 0 I/O enable. CAN 0 bus active status. P 5 CNT. 0

Microcontrolerul DS 80 C 400 Memoria de date internă - 9472 octeţi de memorie

Microcontrolerul DS 80 C 400 Memoria de date internă - 9472 octeţi de memorie SRAM internă din care 256 octeţi este pentru memoria controlerului CAN.

Microcontrolerul DS 80 C 400

Microcontrolerul DS 80 C 400

Microcontrolerul DS 80 C 400

Microcontrolerul DS 80 C 400

Caracteristici - CAN n n n n n Bus serial asincron APLICAŢII DE CONTROL

Caracteristici - CAN n n n n n Bus serial asincron APLICAŢII DE CONTROL IN TIMP REAL Viteza: 1 Mbps Detecţie excelentă a erorilor Identificatorul mesajului specifică atât conţinutul cât şi prioritatea mesajului Deconectare automată a nodurilor defecte Retransmisie automată în urma detectării unei erori Funcţionare în regim de consum redus Excelent raport preţ-performanţă Se pot conecta/deconecta noduri în timp ce reţeaua locală este în funcţiune

Frame-uri CAN Frame = structura unei transmisii de date Frame CAN Mesajul CAN Există

Frame-uri CAN Frame = structura unei transmisii de date Frame CAN Mesajul CAN Există 4 tipuri de formate pentru frame-uri: - Data Frame, - Remote Frame, - Error Frame, - Overload Frame

Data Frame Nr. biti/camp 1 11+1 1+1+4 0. . . 64 15+1 ID +

Data Frame Nr. biti/camp 1 11+1 1+1+4 0. . . 64 15+1 ID + RTR (D) SOF(D) 1+1 7 ACK + Delimitator ACK (R) Secv. CRC + Delimitator CRC (R) 7 x. R

Transmiterea şi primirea mesajelor - datele CAN sunt transmise şi recepţionate prin cele 15

Transmiterea şi primirea mesajelor - datele CAN sunt transmise şi recepţionate prin cele 15 centre de mesaje.

Transmiterea şi primirea mesajelor - biţii TXS şi RXS din registrul de stare indică

Transmiterea şi primirea mesajelor - biţii TXS şi RXS din registrul de stare indică dacă s-au trimis sau recepţionat date. SFR A 4 h BSS EC 96 /128 WKS RXS TXS ER 2 ER 1 ER 0

Transmiterea şi primirea mesajelor - 4 registre pentru verificarea recepţiei/transmisiei datelor. SFR 96 h

Transmiterea şi primirea mesajelor - 4 registre pentru verificarea recepţiei/transmisiei datelor. SFR 96 h SFR 97 h C 0 RMS 0. 7 C 0 RMS 1. 7 C 0 RMS 0. 6 C 0 RMS 0. 5 C 0 RMS 0. 4 C 0 RMS 0. 3 C 0 RMS 0. 2 C 0 RMS 0. 1 C 0 RMS 0. 0 C 0 RMS 1. 6 C 0 RMS 1. 5 C 0 RMS 1. 4 C 0 RMS 1. 3 C 0 RMS 1. 2 C 0 RMS 1. 1 C 0 RMS 1. 0

Transmiterea şi primirea mesajelor - 4 registre pentru verificarea recepţiei/transmisiei datelor. SFR 9 Eh

Transmiterea şi primirea mesajelor - 4 registre pentru verificarea recepţiei/transmisiei datelor. SFR 9 Eh SFR 9 Fh C 0 TMA 0. 7 --- C 0 TMA 0. 6 C 0 TMA 1. 6 C 0 TMA 0. 5 C 0 TMA 1. 5 C 0 TMA 0. 4 C 0 TMA 1. 4 C 0 TMA 0. 3 C 0 TMA 1. 3 C 0 TMA 0. 2 C 0 TMA 1. 2 C 0 TMA 0. 1 C 0 TMA 1. 1 C 0 TMA 0. 0 C 0 TMA 1. 0

Transmiterea şi primirea mesajelor - fiecare centru de mesaje conţine un registru format (C

Transmiterea şi primirea mesajelor - fiecare centru de mesaje conţine un registru format (C 0 My. F) DTBYC 3 DTBYC 2 DTBYC 1 DTBYC 0 T/R EX/ST MEME MDME DTBYC 3 -0 (Data byte count) - indică numărul de biţi din câmpul de date al mesajului.

Totul despre erori n n n Erori de bit transmis Erori datorate inserării/neinserării de

Totul despre erori n n n Erori de bit transmis Erori datorate inserării/neinserării de biţi suplimentari (de bit stuffing) Erori de verificare CRC Erori de format Erori datorate bitului de Acknowledge

Totul despre erori Registrul de stare CAN 0 (C 0 S) SFR A 4

Totul despre erori Registrul de stare CAN 0 (C 0 S) SFR A 4 h BSS EC 96 /128 WKS RXS TXS ER 0 Prioritate ER 2 ER 1 ER 0 ER 2 ER 1 Eroare 0 0 0 N/A 0 0 1 2 Eroare de bit stuffing. 0 1 0 5 Eroare de format. 0 1 1 4 Eroare de acknowledge. 1 0 0 6 (mică) Eroare de bit 1. 1 0 1 1 (mare) Eroare de bit 0. 1 1 0 3 1 1 1 N/A Nici o eroare în ultimul frame. Eroare de CRC. Nici o eroare de la ultima citire a C 0 S.

Totul despre erori - fiecare nod CAN are numărătoare interne de erori. - în

Totul despre erori - fiecare nod CAN are numărătoare interne de erori. - în funcţie de valoarea conţinută de aceste numărătoare un nod CAN poate fi in una din următoarele stări:

Totul despre erori -modulul CAN conţine 2 registre speciale (C 0 RE si C

Totul despre erori -modulul CAN conţine 2 registre speciale (C 0 RE si C 0 TE) care permit monitorizarea şi modificarea numărătoarelor de erori. SFR A 7 h C 0 RE. 7 C 0 RE. 6 C 0 RE. 5 C 0 RE. 4 C 0 RE. 3 C 0 RE. 2 C 0 RE. 1 C 0 RE. 0 SFR A 6 h C 0 TE. 7 C 0 TE. 6 C 0 TE. 5 C 0 TE. 4 C 0 TE. 3 C 0 TE. 2 C 0 TE. 1 C 0 TE. 0

Sicronizarea pe bus-ul CAN - sincronizare hard pe SOF - pentru a asigura o

Sicronizarea pe bus-ul CAN - sincronizare hard pe SOF - pentru a asigura o eşantionare corectă, nodul CAN trebuie să se resincronizeze pe tot parcursul Frame-ului.

Construcţia unui bit - durata unui bit pe bus-ul CAN are 4 segmente bine

Construcţia unui bit - durata unui bit pe bus-ul CAN are 4 segmente bine definite si este un multiplu de tactul u. Controler-ului. -“unitatea de masura” pentru costrucţia bitului pe CAN este Time Quanta, TQ. - registrul de temporizare 0 pe bus-ul CAN (C 0 BT 0) - BPR 7 -BPR 0 determină numărul de tacte asociate cu time quanta. SJW 1 SJW 0 BPR 5 BPR 4 BPR 3 BPR 2 BPR 1 BPR 0 BPR 7, BPR 6 BPR 5 BPR 4 BPR 3 BPR 2 BPR 1 BPR 0 BPRV 00 0 0 0 1 00 0 0 1 2 -- -- -- -- 11 1 1 0 255 11 1 1 1 256

Construcţia unui bit Segment de sincronizare- este folosit de fiecare nod să se sincronizeze

Construcţia unui bit Segment de sincronizare- este folosit de fiecare nod să se sincronizeze pentru receptie. - durata 1 TQ.

Construcţia unui bit Segment pentru timpul de propagare- furnizează întârzierea necesară pentru compensarea timpului

Construcţia unui bit Segment pentru timpul de propagare- furnizează întârzierea necesară pentru compensarea timpului de propagare a semnalului electric. - durata 1. . 8 TQ.

Construcţia unui bit “Segmentul 1 pentru defazare” - compensarea erorilor de defazare la sincronizare.

Construcţia unui bit “Segmentul 1 pentru defazare” - compensarea erorilor de defazare la sincronizare. -Lungimea sa: 1. . . 8 TQ poate fi mărită pe timpul resinscronizarii. - registrul de temporizare 0 pe bus-ul CAN (C 0 BT 0) SJW 1 SJW 0 0 1 t. QU (1) 0 1 2 t. QU (2) 1 0 3 t. QU (3) 1 1 4 t. QU (4) SJW 1 SJW 0 BPR 5 BPR 4 BPR 3 BPR 2 BPR 1 BPR 0

Construcţia unui bit “Segmentul 2 pentru defazare” -durata: 1. . . 8 TQ, nu

Construcţia unui bit “Segmentul 2 pentru defazare” -durata: 1. . . 8 TQ, nu mai mare decat segmentul 1.

Construcţia unui bit Pentru o programare mai usoara:

Construcţia unui bit Pentru o programare mai usoara:

Construcţia unui bit Pentru o programare mai usoara: Registrul de temporizare 1 (C 0

Construcţia unui bit Pentru o programare mai usoara: Registrul de temporizare 1 (C 0 BT 1) SMP TSEG 26 TSEG 25 TSEG 24 TSEG 13 TSEG 12 TSEG 11 TSEG 10 TSEG 13 TSEG 12 TSEG 11 Lungimea Seg. 1 TSEG 26 TSEG 25 TSEG 24 Lungimea Seg. 2 0 0 Invalid 0 0 0 1 2 t. QU (2) 0 0 1 0 3 t. QU (3) -- -- 1 1 1 0 15 t. QU (15) 1 1 0 7 t. QU (7) 1 1 16 t. QU (16) 1 1 1 8 t. QU (8) -- --

Programarea momentului de esantionare - eşantionarea mai devreme- se pot utiliza oscilatoare mai ieftine.

Programarea momentului de esantionare - eşantionarea mai devreme- se pot utiliza oscilatoare mai ieftine.

Programarea momentului de esantionare - eşantionarea mai târziu- lungime maximă pentru bus.

Programarea momentului de esantionare - eşantionarea mai târziu- lungime maximă pentru bus.

Necesităţi software pentru programarea platformei TINI Java Development Environment Java Communications API TINI Software

Necesităţi software pentru programarea platformei TINI Java Development Environment Java Communications API TINI Software Development Kit Java Development Environment - mediul de dezvoltare al aplicatiilor JAVA Java Communication API - infrastructura necesară comunicării pe portul serial RS 232 între calculator şi platforma TINI SDK - software-ul pentru aplicatiile dedicate platformei TINI

Clase în java utilizate pentru comunicaţia pe interfaţa CAN Clasa Can. Bus - Această

Clase în java utilizate pentru comunicaţia pe interfaţa CAN Clasa Can. Bus - Această clasă permite accesul la controlerele Can. Bus Metode - set. Synchronization. Jump. Width (int jump. Width) - receive (Can. Frame frame) - send. Data. Frame (int ID, boolean extended. ID, byte[] data) - set. Message. Center. RXMode (int message. Center) - set. Baud. Rate. Prescaler (int prescaler) - set. TSEG 1 (int tseg 1) - set. TSEG 2 (int tseg 2) - enable. Message. Center (int message. Center) - enable. Controller () - close ()

Clase în java utilizate pentru comunicaţia pe interfaţa CAN Clasa CANFrame - este folosită

Clase în java utilizate pentru comunicaţia pe interfaţa CAN Clasa CANFrame - este folosită împreună cu clasa CANBus pentru a transmite/recepţiona frame-uri pe bus-ul CAN Constructori Can. Frame() – creează un nou frame CAN cu următorii parametrii : ID = 0 ; extended. ID = false ; message. Center = 0 ; remote. Frame. Request = false ; data = new byte [8]; lenght = 0 ;

Program de identificare a vitezei de comunicaţie pe CAN baud rate = Fosc/[BRP*(1+TSEG 2)]

Program de identificare a vitezei de comunicaţie pe CAN baud rate = Fosc/[BRP*(1+TSEG 2)] BRP, TSEG 1 şi TSEG 2 pot fi programate folosind metode din clasa com. dalsemi. comm. Can. Bus. Paşii pentru setarea vitezei: - Can. Bus bus = new Can. Bus(Can. Bus. CANBUS 0); - bus. set. Baud. Rate. Prescaler(BRP); - bus. set. TSEG 1(TSEG 1); - bus. set. TSEG 2(TSEG 2); Baud Rate BRP TSEG 1 TSEG 2 10 Kbps 88 13 7 20 Kbps 71 5 7 20 Kbps 44 13 7 50 Kbps 41 3 5 50 Kbps 23 10 5 125 Kbps 7 13 7 SFR A 3 h Registrul de control CAN 0 (C 0 C) ERIE STIE PDE SIESTA CRST AUTOB ERCS SWINT

Contribuţii personale n n n Documentare TINI Documentare CAN Studiu asupra eficientizarii transmisiilor Program

Contribuţii personale n n n Documentare TINI Documentare CAN Studiu asupra eficientizarii transmisiilor Program in java pentru setari ale controlerului CAN Program de detectare automata a vitezei de comunicatie pe CAN