Upload
nydia
View
34
Download
0
Embed Size (px)
DESCRIPTION
Universitatea “ Politehnica ” din Timişoara Facultatea de Electronică şi Comunicaţii Departamentul Electronică Aplicată. Platforma de dez voltare TINI- nod într-o reţea CAN. Conducător ştinţific : Conf.Dr.Ing. Dorina Isar Student : Cărbunar Ovidiu. - PowerPoint PPT Presentation
Citation preview
Platforma de Platforma de dezdezvoltare TINI- nod voltare TINI- nod
într-o reţea CANîntr-o reţea CAN
Conducător ştinţificConducător ştinţific:: Conf.Dr.Ing. Dorina IsarConf.Dr.Ing. Dorina Isar
StudentStudent: : Cărbunar Cărbunar
OvidiuOvidiu
Universitatea “Politehnica” din TimişoaraFacultatea de Electronică şi Comunicaţii
Departamentul Electronică Aplicată
Este formată din placa de bază şi SIMM.
Platforma de dezvoltare TINI
Platforma de dezvoltare TINI
Microcontrolerul DS80C400
Port 5 Control Register (P5CNT)
P5CNT.0P5CNT.1P5CNT.2C0_I/O -- --CAN0BA --SFR A2h
CAN0BACAN 0 bus active status.
C0_I/O Bit 3 CAN 0 I/O enable.
Microcontrolerul DS80C400
Memoria de date internă
- 9472 octeţi de memorie SRAM internă din care 256 octeţi este pentru memoria controlerului CAN.
Microcontrolerul DS80C400
Microcontrolerul DS80C400
Microcontrolerul DS80C400
CCaracteristici - CANaracteristici - CAN
Bus serial asincronBus serial asincron APLICAAPLICAŢŢII DE CONTROL IN TIMP REAL Viteza: 1Mbps II DE CONTROL IN TIMP REAL Viteza: 1Mbps DetecDetecţţie excelentie excelentăă a erorilor a erorilor Identificatorul mesajului specificIdentificatorul mesajului specificăă at atâât cont conţţinutul cinutul câât t şşi i
prioritatea mesajuluiprioritatea mesajului Deconectare automatDeconectare automatăă a nodurilor defecte a nodurilor defecte Retransmisie automatRetransmisie automatăă îîn urma detectn urma detectăării unei eroririi unei erori FuncFuncţţionare ionare îîn regim de consum redusn regim de consum redus Excelent raport preExcelent raport preţţ-performan-performanţăţă Se pot conecta/deconecta noduri Se pot conecta/deconecta noduri în timp ce reţeaua locală în timp ce reţeaua locală
este în funcţiuneeste în funcţiune
Frame-uri CANFrame-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 FrameData Frame
Nr. biti/camp 1 11+1 1+1+4 0...64 15+1 1+1 7
SOF(D)
ID + RTR (D)
Secv.CRC + Delimitator CRC (R)
ACK + Delimitator ACK (R)
7 x R
- datele CAN sunt transmise şi recepţionate prin cele 15 centre de mesaje.
Transmiterea şi primirea mesajelor
Transmiterea şi primirea mesajelor
ER0ER0 ER1ER1 ER2ER2 TXSTXS RXSRXS WKSWKSEC96 /128EC96 /128BSSBSSSFR SFR A4hA4h
- biţii TXS şi RXS din registrul de stare indică dacă s-au trimis sau recepţionat date.
- 4 registre pentru verificarea recepţiei/transmisiei datelor.
Transmiterea şi primirea mesajelor
C0RMS 0.0
C0RMS 0.1
C0RMS 0.2
C0RMS 0.3
C0RMS 0.4
C0RMS 0.5
C0RMS 0.6
C0RMS 0.7
SFR 96h
C0RMS 1.0
C0RMS 1.1
C0RMS 1.2
C0RMS 1.3
C0RMS 1.4
C0RMS 1.5
C0RMS 1.6
C0RMS 1.7
SFR 97h
- 4 registre pentru verificarea recepţiei/transmisiei datelor.
Transmiterea şi primirea mesajelor
C0TMA 0.0
C0TMA 0.1
C0TMA 0.2
C0TMA 0.3
C0TMA 0.4
C0TMA 0.5
C0TMA 0.6
C0TMA 0.7
SFR 9Eh
C0TMA 1.0
C0TMA 1.1
C0TMA 1.2
C0TMA 1.3
C0TMA 1.4
C0TMA 1.5
C0TMA 1.6
-- --
SFR 9Fh
- fiecare centru de mesaje conţine un registru format (C0MyF)
DTBYC3DTBYC3 DTBYC2DTBYC2 DTBYC1DTBYC1 DTBYC0DTBYC0 T/R T/R EX/STEX/ST MEMEMEME MDME MDME
DTBYC3-0 (Data byte count) - indică numărul de biţi din câmpul de date al mesajului.
Transmiterea şi primirea mesajelor
Totul despre eroriTotul despre erori
Erori de bit transmisErori de bit transmis Erori datorate Erori datorate
inserinserăării/neinserrii/neinserăării de birii de biţţi i suplimentari (de bit stuffing)suplimentari (de bit stuffing)
Erori de verificare CRCErori de verificare CRC Erori de format Erori de format Erori datorate bitului de AcknowledgeErori datorate bitului de Acknowledge
Totul despre eroriTotul despre erori
ER2ER2 ER1ER1 ER0ER0 PrioritatPrioritatee
EroareEroare
00 00 00 N/AN/A Nici o eroare în ultimul frame.Nici o eroare în ultimul frame.
00 00 11 22 Eroare de bit stuffing.Eroare de bit stuffing.
00 11 00 55 Eroare de format.Eroare de format.
00 11 11 44 Eroare de acknowledge.Eroare de acknowledge.
11 00 00 6 (mică)6 (mică) Eroare de bit 1.Eroare de bit 1.
11 00 11 1 (mare)1 (mare) Eroare de bit 0.Eroare de bit 0.
11 11 00 33 Eroare de CRC.Eroare de CRC.
11 11 11 N/AN/A Nici o eroare de la ultima citire a Nici o eroare de la ultima citire a C0S.C0S.
Registrul de stare CAN 0 (C0S)
ER0ER0 ER1ER1 ER2ER2 TXSTXS RXSRXS WKSWKSEC96 /128EC96 /128BSSBSSSFR SFR A4hA4h
Totul despre eroriTotul 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:
-modulul CAN conţine 2 registre speciale (C0RE si C0TE) care permit monitorizarea şi modificarea numărătoarelor de erori.
Totul despre eroriTotul despre erori
SFR A7h
C0RE.7 C0RE.6 C0RE.5 C0RE.4 C0RE.3 C0RE.2 C0RE.1 C0RE.0
SFR A6h
C0TE.7 C0TE.6 C0TE.5 C0TE.4 C0TE.3 C0TE.2 C0TE.1 C0TE.0
Sicronizarea pe bus-ul Sicronizarea pe bus-ul CANCAN
- pentru a asigura o eşantionare corectă, nodul CAN trebuie să se resincronizeze pe tot parcursul Frame-ului.
- sincronizare hard pe SOF
ConstrucConstrucţţia unui bit ia unui bit
BPR7,BPR7, BPR6BPR6
BPR5BPR5 BPR4BPR4 BPR3BPR3 BPR2BPR2 BPR1BPR1 BPR0BPR0 BPRVBPRV
0000 00 00 00 00 00 00 11
0000 00 00 00 00 00 11 22
---- ---- ---- ---- ---- ---- ---- ----
---- ---- ---- ---- ---- ---- ---- ----
1111 11 11 11 11 11 00 255255
1111 11 11 11 11 11 11 256256
SJW1SJW1 SJW0SJW0 BPR5BPR5 BPR4BPR4 BPR3BPR3 BPR2BPR2 BPR1BPR1 BPR0BPR0- registrul de temporizare 0 pe
bus-ul CAN (C0BT0)
- BPR7-BPR0 determină numărul de tacte asociate cu time quanta.
- durata unui bit pe bus-ul CAN are 4 segmente bine definite si este un multiplu de tactul uControler-ului.
-“unitatea de masura” pentru costrucţia bitului pe CAN este Time Quanta, TQ.
ConstrucConstrucţţia unui bitia unui bit
Segment de sincronizare- este folosit de fiecare nod să se sincronizeze pentru receptie.- durata 1 TQ.
ConstrucConstrucţţia unui bitia unui bit
Segment pentru timpul de propagare- furnizează întârzierea necesară pentru compensarea timpului de propagare a semnalului electric.- durata 1..8TQ.
ConstrucConstrucţţia unui bitia unui bit
“Segmentul 1 pentru defazare” - compensarea erorilor de defazare la sincronizare. -Lungimea sa: 1 ... 8 TQ poate fi mărită pe timpul resinscronizarii.
SJW1SJW1 SJW0SJW0 BPR5BPR5 BPR4BPR4 BPR3BPR3 BPR2BPR2 BPR1BPR1 BPR0BPR0
SJW1SJW1 SJW0SJW0 SJWSJW
00 00 1 1 ttQUQU (1) (1)
00 11 2 2 ttQUQU (2) (2)
11 00 3 3 ttQUQU (3) (3)
11 11 4 4 ttQUQU (4) (4)
- registrul de temporizare 0 pe bus-ul CAN (C0BT0)
ConstrucConstrucţţia unui bitia unui bit
“Segmentul 2 pentru defazare”-durata: 1 ... 8 TQ, nu mai mare decat segmentul 1.
ConstrucConstrucţţia unui bit ia unui bit
Pentru o programare mai usoara:
ConstrucConstrucţţia unui bit ia unui bit
SMP SMP TSEG26TSEG26 TSEG25TSEG25 TSEG24TSEG24 TSEG13TSEG13 TSEG12TSEG12 TSEG11TSEG11 TSEG10TSEG10
TSEG26TSEG26 TSEG25TSEG25 TSEG24TSEG24 Lungimea Seg.2Lungimea Seg.2
00 00 00 InvalidInvalid
00 00 11 2 2 ttQUQU (2) (2)
00 11 00 3 3 ttQUQU (3) (3)
---- ---- ---- -- --
11 11 00 7 7 ttQUQU (7) (7)
11 11 11 8 8 ttQUQU (8) (8)
Pentru o programare mai usoara:
Registrul de temporizare 1 (C0BT1)Registrul de temporizare 1 (C0BT1)
TSEG13TSEG13 TSEG12TSEG12 TSEG11TSEG11 TSEG11TSEG11 Lungimea Seg.1Lungimea Seg.1
00 00 00 00 InvalidInvalid
00 00 00 11 2 2 ttQUQU (2) (2)
00 00 11 00 3 3 ttQUQU (3) (3)
---- ---- ---- ---- -- --
11 11 11 00 15 15 ttQUQU (15) (15)
11 11 11 11 16 16 ttQUQU (16) (16)
Programarea momentului Programarea momentului de esantionarede esantionare
- eş- eşantionarea mai devremeantionarea mai devreme- - se pot utiliza oscilatoare mai ieftine.se pot utiliza oscilatoare mai ieftine.
Programarea momentului Programarea momentului de esantionarede 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 Development Kit
Java Development Environment - mediul de dezvoltare al aplicatiilor JAVA Java Communication API - infrastructura necesară comunicării pe portul serial RS232 între calculator şi platforma TINI.
TINI SDK - software-ul pentru aplicatiile dedicate platformei TINI
Clase în java utilizate pentru Clase în java utilizate pentru comunicaţia pe interfaţa CANcomunicaţia pe interfaţa CAN
Clasa CanBus - Această clasă permite accesul la controlerele CanBus
Metode
- setSynchronizationJumpWidth (int jumpWidth) - receive (CanFrame frame) - sendDataFrame (int ID, boolean extendedID, byte[] data) - setMessageCenterRXMode (int messageCenter) - setBaudRatePrescaler (int prescaler) - setTSEG1 (int tseg1) - setTSEG2 (int tseg2) - enableMessageCenter (int messageCenter) - enableController () - close ()
Clase în java utilizate pentru Clase în java utilizate pentru comunicaţia pe interfaţa CANcomunicaţia pe interfaţa CAN
Clasa CANFrame - este folosită împreună cu clasa CANBus pentru a transmite/recepţiona frame-uri pe bus-ul CAN
ConstructoriCanFrame() – creează un nou frame CAN cu următorii parametrii :
ID = 0 ;extendedID = false ;messageCenter = 0 ;remoteFrameRequest = false ;data = new byte [8];lenght = 0 ;
Program de identificare a Program de identificare a vitezei de comunicaţie pe CANvitezei de comunicaţie pe CAN
Baud Rate BRP TSEG1 TSEG2
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
CAN baud rate = Fosc/[BRP*(1+TSEG1+TSEG2)]
BRP, TSEG1 şi TSEG2 pot fi programate folosind metode din clasa com.dalsemi.comm.CanBus. Paşii pentru setarea vitezei:
- CanBus bus = new CanBus(CanBus.CANBUS0);- bus.setBaudRatePrescaler(BRP);- bus.setTSEG1(TSEG1);- bus.setTSEG2(TSEG2);
Registrul de control CAN 0 (C0C)
SFR SFR A3hA3h
ERIEERIE STIESTIE PDEPDE SIESTASIESTA CRSTCRST AUTOBAUTOB ERCSERCS SWINTSWINT
Contribuţii personaleContribuţii personale
Documentare TINIDocumentare TINI Documentare CANDocumentare CAN Studiu asupra eficientizarii Studiu asupra eficientizarii
transmisiilortransmisiilor Program in java pentru setari ale Program in java pentru setari ale
controlerului CANcontrolerului CAN Program de detectare automata a Program de detectare automata a
vitezei de comunicatie pe CANvitezei de comunicatie pe CAN