Abbiamo un protocollo di comunicatione proprietario che dobbiamo modificare.
Il problema è che abbiamo un comando per leggere dei registri che attualmente ha un indirizzamento di 8 bit.
256 registri non ci bastano piú e quindi dobbiamo essere in grado di indirizzare i registri con 16 bit.
Vi mostro qui la versione attuale del protocollo di comunicazione (per ovvi motivi molto semplificata e un po' offuscata
Mi interessere sapere quale implementereste voi.
In grigio la variante attuale.
Da sinistra a destra:
- Slave ID: indirizzamento di tutto il messaggio ad un certo slave sul bus
- Lunghezza payload: quanti bytes ci sono del campo payload (vedi oltre)
- Comando: identifica l'azione (reset, scrivi, leggi, identifica...), in questo caso si tratta di leggere
- Payload: il contenuto dipende dal comando, nel caso di una lettura viene passato un byte che identifica il registro da leggere
- CRC: checksum
La risposta è simile, le differenze sono le seguenti:
- Payload: viene ripetuto l'indirizzo del registro da cui si è letto, seguito da 4 bytes di dati contenuti nel registro. Se il registro non esiste, viene ritornato 0xFFFFFFFF e lo status riporta un errore (vedi qui sotto)
- Status: contiene un codice diagnostico generato dallo slave (OK, comando sconosciuto, CRC sbagliata, dati non validi...)
In giallo una delle proposte di soluzione:
- la lunghezza dell'indirizzo passato nel payload diventa variabile
- lo slave deve osservare il campo di lunghezza e da lì capire come interpretare il payload, se con 8 o 16 bit
- per slave che conoscono solo la versione vecchia del protocollo non cambia nulla
- master che cercano di richiedere un indirizzo a 16 bit da uno slave a 8 bit ricevono una risposta con status = lunghezza errata
In blu l'altra soluzione:
- il comando leggi non viene modificato
- viene definito un nuovo comando leggi_ext che supporta solo l'indirizzamento a 16 bit
- il vecchio comando continua ad esistere, ma il suo uso viene deprecato
Io ho la mia opinione... il mio collega ha un'altra opinione. Non vi dico chi pensa cosa... ditemi voi cosa pensate
Grazie, Boiler

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)








