Vai al contenuto
PLC Forum


Pic18 Can Bus E J1939


Marco__

Messaggi consigliati

Salve, volevo avere una delucidazione se possibile.

Io progetto semplici centraline bordo macchina per macchine agricole telecontrollate con implementato nel firmware un semplice protocollo proprietario basato su Bus CAN 2.0 (versione estesa). Quindi è basato sul CAN tradizionale della Bosch. Nulla di più. Il microP che utilizzo è il PIC18F458.

E' da tempo che i clienti mi chiedono di riuscire ad interfacciare le mie centraline con il protocollo J1939. In genere io monto le centraline a mercati di nicchia dove le macchine, soprattutto trattori e rasa-erba, non montano Bus.

Volevo sapere se è fattibile interfacciare il mio bus CAN con il J1939 per esempio con degli adattatori o se devo riscrivere totalmente il firmware adattandolo per j1939. Ho letto diverse dispense sul J1939 e dovrei ricrearmi in c (io programmo con il mikroc) delle librerie apposite. Mi richiederà non poco lavoro.

In fondo a me servirebbero pochi dati da richiedere sul bus, max 3 o 4, come temperatura olio, velocità, e poche altre che poi visualizzerei su un display touch. Proprio come faccio adesso con il mio bus CAN proprietario.

Saluti

Link al commento
Condividi su altri siti


Ho letto leggendo delle riviste di elettronica che si possonon ricevere delle informazioni dal bus can (protocollo J1939) sfruttando l'integrato ELM327. Forse se mi collego con il mio micro all'uscita seriale dell'ELM327 che non è altro che un PIC customizzato, forse riesco a leggere le poche informazioni che mi servono.

Saluti

Link al commento
Condividi su altri siti

Buongiorno,

Io con il PIC mi sono già interfacciato al Canbus e protocollo J1939 dei veicoli (sopprattutto camion tipo Daf e Scania) ... è una cosa fattibile e non difficile da fare.

PS: Essendo a livello hobby, puoi dare un'occhiata al mio sito, e vedrai che pure io mi acquisisco temperatura, velocità, RPM .

Ciaoooo

Link al commento
Condividi su altri siti

Innanzitutto grazie per la risposta (se posso darti del tu).

Ho trovato i progetti molto interessanti. Complimenti. Quindi hai detto, visto che lo hai sperimentato, che è possibile interfacciarsi e non è troppo complesso. Volevo farti alcune domande se possibile.

Allora, l'hardware lo posso lasciare come l'ho attualmente giusto? Nel senso con le due uscite CANH e CANL provenienti dall'MCP2551 (che a sua volta è connesso al PIC18) mi connetto al bus. Ho letto un libro inglese molto valido sul J1939 (si intitola "A Comprehensible Guide to J1939" in modo da iniziare a capire i formati dei messaggi che arrivano.

Innanzitutto per avere un dato, supponiamo la temperatura, con PGN=65262, dovrò crearmi una funzione apposita, diversa dall'invio standard dei messaggi con CAN2.0 a 29 bit, giusto?

Intanto inizio con queste due domande se posso.

Saluti

Link al commento
Condividi su altri siti

Ciao,

Io ho usato un DsPIC33 con Canbus già a bordo.

Penso che la serie che tu vorresti utilizzare è un pò datata... oppure sono io che avendo utilizzato un hardware differente non conosco ciò che è possibile fare con la serie 18.

Comunque puoi spedire un PGN su canbus a 29 bit.

Ciaooo

Link al commento
Condividi su altri siti

Scusa se rispondo ora.

Il Pic che utilizzo è un 18F458 con Can Bus già a porto. Ho sempre utilizzato questo micro nelle mie centraline e mi sono sempre trovato bene. Implementa sia il Can Bus 2.0 A (standard a 11 bit) che il 2.0B esteso a 29 bit (11+18 bit).

Tu dici che sfruttando direttamente l'estensione a 29 bit posso dialogare con il protocollo J1939?

Saluti

Link al commento
Condividi su altri siti

Chiedo scusa a Marco__ ma nel rispondere prima mi sono accorto di aver fatto qualche Gaffe.

Intanto non ho specificato, ma la domanda era rivolta più che altro a RESNIC perchè mi ha molto incuriosito la possibilità di interfacciarmi tramite PIC al J1939.

Come Marco__ a volte realizzo dei mini sistemi di diagnostica su can bus proprietario (2.0B esteso a 29 bit), però non pensavo fosse fattibile interfacciarsi al j1939.

Io utilizzo lo stesso micro di Marco__, ovvero il PIC18F458 che ha il CAN BUS già a bordo (anche in modalità estesa). Funziona discretamente ad una velocità di 250 kbits/s.

Ma ho letto che la struttura del J1939 cambia abbastanza, nel senso che ho in sequenza:

SOF (Start Of Frame)

3 bit di priorità

R

DP

6bit PDU Format

SRR

IDE

2 Bit PF

8 bit PDU Specific

8bit Indirizzo sorgente

RTR

Ma per implementarlo hai utilizzato le funzioni di libreria del software tipo MPLAB o Mikroc (io conosco solo quelle)? Ti chiedo questo perchè hai detto che posso spedire un PGN su can bus a 29 bit. Allora era interessante sapere se occorre ricrearsi delle librerie ad hoc o si possono sfruttare quelle che ci sono.

Saluti

Saluti

Link al commento
Condividi su altri siti

Buongiorno a Marco ed Edge

Sinceramente non so dirvi nulla sul PIC18, ma per quanto riguarda il Canbus e J1939, secondo il livello ISO OSI, il termine Canbus identifica il livello fisico, mentre il termine J1939 identifica il protocollo. In una rete Canbus potete appoggiare un qualsiasi protocollo "personale", oppure un J1939, oppure il CanOpen ... quindi basta dare il giusto significato alle componenti, e potete tranquillamente spedire/ricevere un PGN .

Ciaoooooo

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...