Sei sulla pagina 1di 35

Comandi implementati per interfaccia SCS - UART SCS - UART interface implemented

commands
Versioni (Versions):
Versione
(Version)

Data
Date

Autore
Author

Note
Notes

1.0

12/09/2008 Romanato

1.1

25/01/2010 Romanato

1.2

03/10/2010 Romanato

256 AUX addressee management (cmd $15). Deleted bug about frame lossing from SCS to serial port Deleted 3x and 4x commands management New $16 command (Access Time Management) $14 command modified (only 8 bits addressee permitted) New draft, more detailed. Italian and English versions have been separated to more clarify the document - Added new revision for 8MHz version - Init procedure example more explained

Nome File (File Name) Autore (Author) Data (Date) Numero di pagine (Page Number)

SCS_UART_12.doc Andrea Romanato 12/09/2008 67

Indice (Summary):
1. 2. 3. VERSIONE INTERFACCIA.................................................................................................. 4 1.1 SCHEMA INTERFACCIA ................................................................................................................. 4 PARAMETRI LINEA SERIALE INTERFACCIA .............................................................. 6 DESCRIZIONE COMANDI ................................................................................................... 6 FUNZIONAMENTO INTERFACCIA ......................................................................................................... 7 CONFIGURAZIONE INIZIALE INTERFACCIA .......................................................................................... 8 Esempio di configurazione iniziale ............................................................................................. 10 COMANDI IMPLEMENTATI NELLINTERFACCIA ................................................................................. 10 $00 Ack PC MICRO .................................................................................................... 10 $01 NoDisp (Nack) PC MICRO ...................................................................................... 11 $02 SetLoc PC MICRO ................................................................................................... 11 $03 SendFramePP PC MICRO ......................................................................................... 12 $04 SendFrameBroad PC MICRO .................................................................................... 13 $05 SendFramePPExt PC MICRO.................................................................................... 14 $06 SendFrameBroadExt PC MICRO .............................................................................. 15 $07 Busy PC MICRO .................................................................................................... 16 $08 State_TX_SCS PC MICRO ...................................................................................... 17 $09 Reset hardware PC MICRO ...................................................................................... 18 $13 Reset PC MICRO .................................................................................................... 18 $14 Local Addressee Management PC MICRO................................................................ 19 $15 Addressee Management PC MICRO ......................................................................... 20 $16 Access Time Management PC MICRO ..................................................................... 23 $17 AsyncFrameBreve PC MICRO .................................................................................. 24 $18 AsyncFrameExt PC MICRO ...................................................................................... 24 $19 AsyncFrameAck PC MICRO ..................................................................................... 25 $20 AsyncFrameError PC MICRO .................................................................................. 26 $24 ReqVersione PC MICRO .......................................................................................... 27 $25 Versione PC MICRO ............................................................................................... 27 $26 Configuratori PC MICRO ........................................................................................ 27 $27 CNF_TX_SCS PC MICRO ....................................................................................... 28 $50 SetPortDirection PC MICRO .................................................................................... 32 $51 Port PC MICRO ...................................................................................................... 32 $52 setBit PC MICRO ...................................................................................................... 33 $53 resetBit PC MICRO ................................................................................................... 33 $54 DefaultPort PC MICRO ............................................................................................ 34 $55 ReadPort PC MICRO ................................................................................................ 34

Generalit
Il presente documento descrive il protocollo di comunicazione tra il microcontrollore delllinterfaccia SCS ed una apparecchiatura provvista di una comunicazione seriale (ad es. un PC). Da questo punto di vista, linterfaccia viene trattata con la stessa filosofia di un modem standard, quindi il protocollo realizzato richiama lo standard ISO 646 utilizzando comandi AT. Questa scelta facilita luso della periferica collegata ad un PC, infatti possibile eseguirne il pilotaggio tramite un qualsiasi software di comunicazione (es. Hyperterminal o DockLight)

1. Versione interfaccia
Versione firmware pi recente: Versione hardware: 4.7 3 .x (PIC16F913) 4 .x (PIC16F886) x = 1 hardware senza configuratori x = 2 hardware con configuratori 1 (16 MHz) 2 (8 MHz)

Release firmware:

1.1 Schema interfaccia


Versione hardware con configuratori

Versione hardware senza configuratori

Il funzionamento pu avvenire nelle seguenti combinazioni frequenza/tensione di alimentazione: Vdd = 5V; f = 16 MHz Vdd = 5V; f = 8 MHz Vdd = 3.3V; f = 8 MHz

La scelta tra il funzionamento in modalit anti-intrusione e la modalit normale dalla versione 4.7 gestito tramite una coppia di resistenze, posizionate sui pin 0 e 1 della porta C del microcontrollore. In particolare, il funzionamento in modalit normale avviene ponendo PORTC,0 = GND PORTC,1 = Vdd Mentre il funzionamento in modalit anti-intrusione avviene ponendo PORTC,0 = GND PORTC,1 = GND Tramite opportune resistenze di pull-up o pull-down.

2. Parametri linea seriale interfaccia


Baud Rate: Bit di dati: Parit: Bit di stop: Handshake: 38400 8 nessuna 1 nessuno

3. Descrizione comandi
Tutti i comandi e le risposte sono sotto forma di caratteri Ascii . Il carattere di apertura sempre il $ ed seguito sempre da due caratteri che definiscono il comando e da una eventuale successione di caratteri rappresentanti i parametri del comando stesso. Tutti i comandi devono comunque terminare col carriage return CR (carattere Ascii 0x0Dh ). Esempio trasmissione frame B1 00 12 01 -(hex)-> 24 4231 3030 3132 3031 0D I comandi disponibili sono:

Nome Ack NoDisp

Codice 00 01

Direzione PC PC

Descrizione

MICRO Comando ricevuto ed eseguito correttamente MICRO Comando ricevuto non disponibile o scritto in maniera scorretta Impostazione dellindirizzo locale della periferica e del sistema di appartenenza

SetLoc

02

PC MICRO

SendFramePP SendFrameBroad SendFramePPExt SendFrameBroadExt Busy State_TX_SCS

03 04 05 06 07 08

PC MICRO Invio su SCS di una frame punto punto breve PC MICRO Invio su SCS di una frame broadcasting breve PC MICRO Invio su SCS di una frame punto punto estesa PC MICRO Invio su SCS di una frame broadcasting estesa PC PC MICRO Periferica occupata, comando non eseguito MICRO Stato Trasmissione SCS

Reset HW Reset LocalAddressee

09 13 14

PC

MICRO Reset hardware dellinterfaccia

PC MICRO Reset di indirizzo PC MICRO Impostazione degli indirizzi locali multipli (max 8 indirizzi ausiliari) Impostazione indirizzi locali multipli (max 256 indirizzi ausiliari) Impostazione tempo di accesso al bus

Addressee Management Access Time Management AsyncFrameBreve AsyncFrameExt AsyncFrameAck AsyncFrameError ReqVersione Versione Configuratori CNF_TX_SCS SetPortDirection SetPort SetBit ResetBit SetDefaultPort ReadPort

15

PCMICRO

16 17 18 19 20 24 25 26 27 50 51 52 53 54 55

PCMICRO PC PC PC PC

MICRO Frame breve ricevuta dallinterfaccia MICRO Frame estesa ricevuta dallinterfaccia MICRO Ack su SCS ricevuto dallinterfaccia MICRO Frame corrotta ricevuta dallinterfaccia

PC MICRO Richiesta versione HW/FW interfaccia PC MICRO Versione HW/FW interfaccia PC MICRO Lettura configuratori interfaccia PC MICRO Imposta parametri ricezione frame PC MICRO Programmazione porte micro interfaccia PC MICRO Impostazione valore delle porte del micro PC MICRO Settaggio a 1 dei bit delle porte del micro PC MICRO Settaggio a 0 dei bit delle porte del micro PC MICRO Configurazione di default delle porte del micro PC MICRO Richiesta/invio valore della porta del micro

Funzionamento interfaccia
Al reset (collegamento al sistema oppure invio del comando $09), linterfaccia verifica la presenza in memoria di una specifica firma digitale a 16 bit (ABCD). Se riconosciuta, vengono caricati i valori presenti al suo interno dei parametri di configurazione (tempo di accesso al bus, sistema, etc) e degli indirizzi ausiliari. Al contrario, linterfaccia eseguir un reset della memoria stessa, ponendosi nelle condizioni di primo avvio, cio con sistema = 0, tempo di accesso al bus minimo e nessun indirizzo ausiliario settato. Sar necessario seguire quindi una procedura di configurazione dellinterfaccia stessa nel caso 7

in cui si volesse modificare i parametri di configurazione appena citati. Per maggiori dettagli riferirsi alla figura 1.
Interface reset

Load memory data

ID present?

Reset memory data

Load system

System = 0

Load bus access time

Minimum bus access time

Load aux addresses

No aux addr set

Send $13 to upper level

Fig. 1 Comportamento dellinterfaccia in fase di reset. Quando linterfaccia subisce un riavvio controlla la presenza della chiave corretta in memoria. Se tale chiave corrisponde, linterfaccia carica dalla sua memoria i dati presenti, altrimenti setta i parametri di default. Dopo questa procedura automatica, linterfaccia invia il comando $13 per avvisare del ritorno al normale funzionamento.

Configurazione iniziale interfaccia


Per impostare linterfaccia secondo le preferenze desiderate necessario andare ad effettuare una configurazione al suo primo avvio (od ogni qualvolta sia necessario andare a modificare i parametri relativi allinterfaccia). E possibile gestire le impostazioni di differenti parametri: indirizzo locale (profondit di indirizzo 8/12 bit) sistema di appartenenza indirizzi ausiliari (profondit di indirizzo 8 bit) tempo di accesso al bus SCS filtraggio frame (per sistema, tipo, etc)

E consigliabile, al primo avvio, di eseguire una sessione di setup delle impostazioni del microcontrollore di interfaccia, cos da stabilire con certezza le impostazioni desiderate. Oltre a settare le impostazioni desiderate al riavvio del dispositivo si consiglia di effettuare un rinfresco degli indirizzi ausiliari settati, eseguendo un reset completo degli indirizzi memorizzati e un conseguente settaggio di quelli desiderati, cos da avere evitare che rimangano indirizzi settati dalle sessioni precedenti da non utilizzare nella sessione corrente. Di default, le impostazioni precaricate nel microcontrollore sono le seguenti: indirizzo locale: 0x00 (o 0x000, identicamente, se si usa un indirizzo a 12 bit) 8

sistema di appartenza: 0 indirizzi ausiliari: nessuno settato tempo di accesso al bus: minimo (accesso prioritario al bus SCS) filtro frame disabilitato (ricezione su seriale dellintero pacchetto di 3 frame broadcast) comando $08 (informazione stato trasmissione frame su bus SCS) abilitato generazione ACK su SCS abilitata

Attraverso le impostazioni appena descritte perci definibile il comportamento dellinterfaccia. La procedura di configurazione sequenziale, ed eseguita interamente lato UART tramite comandi dedicati allo scopo, di seguito elencati e poi spiegati in dettaglio nei paragrafi successivi. Setup sistema ed indirizzo locale: comando $02 Setup indirizzi ausiliari: comando $14 o comando $15 Setup tempo di accesso al bus SCS: comando $16 Setup configurazione traduzione messaggi SCS UART: comando $27

Il processo di setup, con I relativi passi da seguire, stato riassunto schematicamente in figura 2.

Fig. 2 Quando lapplicativo di livello superiore riceve il comando $13 dallinterfaccia, dopo un suo reset, possibile eseguire una procedura di configurazione per settare linterfaccia secondo i canoni desiderati. Dopo questa procedura di configurazione (evidenziata in giallo) linterfaccia funzioner normalmente secondo le impostazioni settate. 9

Esempio di configurazione iniziale Allavvio dellinterfaccia si esegue un reset completo degli indirizzi ausiliari memorizzati in eeprom, cos da evitare possibili errori di indirizzamento legati alle sessioni di lavoro precedenti (nota: dovranno poi chiaramente essere risettati tutti gli indirizzi ausiliari utili alla sessione di lavoro corrente). Viene poi impostato il sistema di appartenenza (1 = automazione) e lindirizzo locale dellinterfaccia (54), con il comando $02. Viene infine impostato il tempo attesa di bus libero (25) attraverso il comando $16. Nota bene: per avere T = 5.2 ms + 25 * 104 us, il valore da passare con il comando $16 52. Impostiamo poi i parametri di gestione dellack dellinterfaccia attraverso il comando $27. In particolare abilitiamo la trasmissione dellACK (bit2 AA = 1), settiamo linvio di $08 (bit1 AA = 1) e disabilitiamo il filtro frame (bit0 AA = 0), bloccando linvio su seriale delle frame con sistema differente da quello impostato (bit3 AA = 1).

Comandi implementati nellinterfaccia


$00 Ack PC MICRO

Questo comando viene inviato dalla periferica al PC ogni qual volta viene ricevuto e interpretato un comando valido. 10

Il mittente che non riceve lACK entro 1 secondo a fronte di un invio di un comando, pu effettuare una ritrasmissione tenendo presente di non bloccare il protocollo per assicurare la trasmissione di nuovi comandi. Costituzione Messaggio: $00 + CR

Fig. 3 Dopo linvio di un comando corretto, linterfaccia risponde con un ACK lato UART $01 NoDisp (Nack) PC MICRO

Il dispositivo invia questo messaggio se non riconosce o non pu eseguire il comando richiesto. Costituzione Messaggio: $01 + CR
Device Interface

Wrong command

ACK

Fig.4 Dopo linvio di un comando errato, linterfaccia risponde con un NACK lato UART $02 SetLoc PC MICRO

Tramite questo comando viene impostato il tipo sistema e lindirizzo locale della periferica collegata, ovvero lindirizzo al quale essa risponder se gli viene inviata una frame punto punto. Tale indirizzo locale rimarr tale fino ad una nuova impostazione o ad un invio di comando in grado di modificare tale impostazione. 11

Se lindirizzo locale settato a 8 bit, allora verr gestito anche lACK ad esso corrispondente, altrimenti (ind.loc. a 12 bit) verr solamente settato in memoria e non ci sar risposta allACK. Costituzione Messaggio: $02 A BCD + CR In particolare: A BCD Tipo sistema bus SCS Rappresentano lindirizzo locale a 8/12 bit con cui viene impostata la periferica

Fig.5 Nella figura di esempio si va inizialmente a settare per linterfaccia il sistema automazione (1) e lindirizzo locale a 8 bit 0x34. Linterfaccia risponde ACK a tale comando. Se da bus SCS viene inviata una frame indirizzata allinterfaccia, questa risponde con un ACK su bus SCS. Nella seconda parte della figura viene invece settato lindirizzo locale a 12 bit 0x534 nellinterfaccia. Se su bus SCS viene inviata la stessa frame indirizzata del caso precedente linterfaccia non risponde ACK, in quanto lindirizzo differisce.

$03 SendFramePP

PC MICRO

12

Alla ricezione di tale comando linterfaccia SCS invia un frame punto punto su SCS facendosi carico del protocollo e del livello di linea. Costituzione Messaggio: $03 AA BB CC DD + CR In particolare: AA BB CC DD Rappresenta il 1 byte di una frame breve Rappresenta il 2 byte di una frame breve Rappresenta il 3 byte di una frame breve Rappresenta il 4 byte di una frame breve

Fig.6 Dopo la ricezione del comando $03, linterfaccia invia il contenuto informativo del comando (ovvero la frame punto-punto breve) su bus SCS $04 SendFrameBroad PC MICRO

Alla ricezione di tale comando linterfaccia SCS invia un frame broadcasting breve su SCS facendosi carico del protocollo e del livello di linea. Costituzione Messaggio: $04 AA BB CC DD + CR In particolare: AA BB CC DD Rappresenta il 1 byte di una frame breve Rappresenta il 2 byte di una frame breve Rappresenta il 3 byte di una frame breve Rappresenta il 4 byte di una frame breve

13

Fig.7 Dopo la ricezione del comando $04, linterfaccia invia il contenuto informativo del comando (ovvero la
frame broadcast breve) su bus SCS

$05 SendFramePPExt

PC MICRO

Alla ricezione di tale comando linterfaccia SCS invia un frame punto punto ti tipo esteso su SCS facendosi carico del protocollo e del livello di linea. Costituzione Messaggio: $05 AA BB CC DD EE FF GG HH + CR In particolare: AA BB CC DD EE FF GG HH Rappresenta il 1 byte di una frame estesa Rappresenta il 2 byte di una frame estesa Rappresenta il 3 byte di una frame estesa Rappresenta il 4 byte di una frame estesa Rappresenta il 5 byte di una frame estesa Rappresenta il 6 byte di una frame estesa Rappresenta il 7 byte di una frame estesa Rappresenta il 8 byte di una frame estesa

Fig.8 Dopo la ricezione del comando $05, linterfaccia invia il contenuto informativo del comando (ovvero la
frame punto-punto estesa) su bus SCS

14

$06 SendFrameBroadExt

PC MICRO

Alla ricezione di tale comando linterfaccia SCS invia un frame broadcasting esteso su SCS facendosi carico del protocollo e del livello di linea. Costituzione Messaggio: $06AABBCCDDEEFFGGHH+ CR In particolare: AA BB CC DD EE FF GG HH Rappresenta il 1 byte di una frame estesa Rappresenta il 2 byte di una frame estesa Rappresenta il 3 byte di una frame estesa Rappresenta il 4 byte di una frame estesa Rappresenta il 5 byte di una frame estesa Rappresenta il 6 byte di una frame estesa Rappresenta il 7 byte di una frame estesa Rappresenta il 8 byte di una frame estesa

Fig.9 Dopo la ricezione del comando $06, linterfaccia invia il contenuto informativo del comando (ovvero la
frame broadcast estesa) su bus SCS

15

$07 Busy

PC

MICRO

Questo codice viene inviato dalla interfaccia al dispositivo connesso sulla linea seriale ogni qualvolta sia impossibilitata ad eseguire il comando ricevuto, poich impegnata in trasmissione SCS od in altra operazione. Per evitare di bloccare la linea seriale ed assicurare la gestione di altri nuovi comandi, il dispositivo dovr rendere disponibile il buffer di ricezione. Il dispositivo collegato via seriale potr ritrasmettere il comando allinterfaccia. Costituzione Messaggio: $07 + CR

Fig.10 Se il bus SCS occupato, oppure se linterfaccia impegnata in altre operazioni, linterfaccia invia su seriale il comando $07, finch la situazione non si risolve.

16

$08 State_TX_SCS

PC

MICRO

Questo comando consente di notificare lo stato della trasmissione di frame su bus SCS Struttura del messaggio: $08 AA + CR AA parametro di indicazione stato trasmissione 00 01 02 03 Trasmissione eseguita correttamente Non utilizzato Trasmissione non eseguita per numero massimo di retry raggiunto Trasmissione non eseguita per raggiunto tempo massimo di attesa bus libero

Fig.11 Esempi di trasmissione su SCS: nel primo caso la trasmissione va a buon fine; nel secondo caso il
dispositivo con indirizzo 34 non presente su bus, quindi linterfaccia esegue 8 retry di trasmissione, comunicando poi lesito fallito; nel terzo caso il bus SCS occupato per tutto il tempo dedicato alla trasmissione, perci linterfaccia la abortisce.

17

$09 Reset hardware

PC MICRO

La ricezione del comando da parte dellinterfaccia determina immediatamente un reset hardware. In questo caso linterfaccia non invier un ACK ($00) di conferma, ma direttamente il comando di avvenuto reset ($13) Costituzione Messaggio: $09 + CR

Fig.12 Dopo la ricezione del comando $09 linterfaccia si riavvia $13 Reset PC MICRO

Tramite questo comando possibile ripristinare le impostazioni di default della trasmissione SCS/UART e lindirizzo locale di default dellinterfaccia. Dopo Il ripristino linterfaccia il comando ACK ($00) di conferma Indirizzo locale (ADD) interfaccia = 0x0CA (se sistema 4 ADD= 0x0C6) Tipo sistema interfaccia = 0 Trasmissione ACK su SCS: abilitato Filtro frame broadcast: disabilitato Informazione stato trasmissione su SCS ($08): abilitato Blocco invio frame con tipo sistema diverso: disabilitato Blocco invio frame con indirizzo destinatario ADD: disabilitato Trasmissione ACK se DST > ADD: disabilitato Trasmissione ACK se DST < ADD: disabilitato Trasmissione ACK su sistemi diversi da quello impostato: disabilitato

Costituzione Messaggio: $13 + CR

Fig.13 Dopo a rocezione del comando $13, linterfaccia riprisitina lindirizzo locale e I parametri di
trasmissione/ricezione SCS/UART

18

$14 Local Addressee Management

PC

MICRO

Questo comando permette di impostare 8 indirizzi ausiliari nella memoria dellinterfaccia. Prima di settare questi indirizzi ausiliari ricordarsi di settare il sistema di appartenenza dellinterfaccia con il comando SetLoc ($02) E possibile gestire solo indirizzi locali con profondit di 8 bit. Se si settasse un indirizzo con profondit di 12 bit, ne sarebbero utilizzati solamente i due nibble inferiori (corrispondenti quindi a 8 bit) Costituzione Messaggio: $14 XX NN + CR In particolare:
XX Comando da eseguire: - 00: Cancella indirizzo NN (PC MICRO)

$14 00 NN + CR
- 01: - 02: - 03: NN Imposta indirizzo NN. (PC MICRO)

$14 01 NN ABCD + CR
Richiesta informazioni indirizzo NN (PC MICRO)

$14 02 NN + CR
Invio informazioni indirizzo NN (MICRO PC)

$14 03 NN CD YY + CR
Numero dellindirizzo su cui eseguire il comando (00 = tutti gli indirizzi)

A B CD
YY

Sistema bus SCS Non utilizzato (settare 0 quando si utilizza il comando) Rappresentano lindirizzo ausiliario a 8 bit
Informazioni sullindirizzo: - 00: Non impostato - 01: Impostato

Se linterfaccia non gestisce lindirizzo NN o se il comando inviato non valido, viene trasmesso un NoDisp ($01). Altrimenti linterfaccia risponde ai comandi Delete (00) e Set (01) con un ACK ($00), mentre alla ricezione del comando Info (02) invia direttamente la risposta (03). Quando un indirizzo viene cancellato dalla memoria dellinterfaccia, se si va ad interpellare linterfaccia sullindirizzo posto nella posizione appena cancellata, si vedr aggiornata solo la flag Impostato/Non impostato, quindi il valore dellindirizzo cancellato rimarr visibile (anche se non pi

19

utilizzabile in quanto cancellato) fino al momento in cui si proceder a registrarne un altro nella stessa posizione.

Fig.14 In questa figura di esempio la prima operazione compiuta settare lindirizzo ausiliario 0x25 (in
prima posizione) per una interfaccia configurata nel sistema 1. Dopo questa operazione si va a settare allo stesso modo lindirizzo ausiliario 0x3A (in seconda posizione) Dopo questi settaggi il comando eseguito quello di richiesta stato per lindirizzo in posizione 1. La risposta dellinterfaccia che in posizione 1 si trova lindirizzo ausiliario 0x25 ed settato. Dopo questa verifica si va a richiedere lo stato dellintera tabella di 8 indirizzi ausiliari (si noti che solo i primi due erano stati settati precedentemente in memoria). Lultima operazione compiuta quella di cancellare dalla memoria lindirizzo in posizione 1 e verificare poi lo stato (Non impostato) con il comando di richiesta stato indirizzo 1.

$15 Addressee Management

PC

MICRO

Tramite questo comando possibile impostare fino a 256 indirizzi ausiliari con profondit di 8 bit ciascuno, da 0x00 a 0xFF (tra questi 256 indirizzi ausiliari compreso quello locale dellinterfaccia settato con il comando $02).

20

Struttura comando:

$15 XX + CR
XX Comando da eseguire: - 00: Cancella indirizzo AB (PC MICRO)

$15 00 AB + CR
- 01: Imposta indirizzo AB (PC MICRO)

$15 01 AB + CR
- 02: Richiesta informazioni indirizzo AB (PC MICRO)

$15 02 AB + CR
- 03: Invio informazioni indirizzo AB (MICRO PC)

$15 03 AB YY + CR
YY = - 04: - 05: 00 non gestito 01 gestito

Imposta indirizzi compresi tra indirizzo AB e indirizzo CD: (PC MICRO)

$15 04 AB CD + CR
Resetta gli indirizzi compresi tra AB e CD: (PC MICRO)

$15 05 AB CD + CR
possibile impostare tutti gli indirizzi per cui linterfaccia deve rispondere ACK (tali indirizzi vengono memorizzati nella memoria della interfaccia). A questo punto linterfaccia risponder ACK ad ogni frame SCS ricevuta che corrisponda ai parametri settati in fase di setup.

Fig.14 Esempio di set indirizzo locale interfaccia (0x32) e degli indirizzi ausiliari 0x4B e dallindirizzo ausiliario 0x7E allindirizzo ausiliario 0x9A

21

Fig.15 Visualizzazione in griglia degli indirizzi settati nellesempio di figura 14

Fig.16 Richiesta stato di un indirizzo ausiliario settato (0x4B) e di uno non settato (0x5A); di seguito viene
eseguito il reset dellindirizzo ausiliario 0x84 e degli indirizzi ausiliari che vanno da 0x8D a 0x93.

22

Fig.17 Visualizzazione in griglia degli indirizzi settati dopo la cancellazione dellesempio di figura 16 $16 Access Time Management PC MICRO

Questo comando consente di impostare il tempo di accesso al bus SCS da parte dellinterfaccia. E possibile assegnare priorit massima allinterfaccia, dandole tempo di accesso 0 (zero) oppure subordinare il suo tempo di accesso al valore passato con il byte AB. Dopo un reset dellinterfaccia il tempo ritorna a 0. AB pu assumere i valori esadecimali compresi tra 0x00 e 0xFF. Costituzione Messaggio: $16 AB + CR AB = byte contenente tempo di attesa -> BA * 104 us + 5.2 ms

Fig.18 Settaggio di diversi tempi di accesso al bus SCS da parte dellinterfaccia

23

$17 AsyncFrameBreve

PC

MICRO

Questo messaggio rappresenta una frame breve (punto-punto o broadcast) ricevuta dallinterfaccia Costituzione Messaggio: $17 AA BB CC DD + CR In particolare: AA BB CC DD Rappresenta il 1 byte di una frame breve Rappresenta il 2 byte di una frame breve Rappresenta il 3 byte di una frame breve Rappresenta il 4 byte di una frame breve

Fig.19 Trasferimento di frame brevi (prima una punto-punto e poi un pacchetto di broadcast) da SCS a
UART

$18 AsyncFrameExt

PC

MICRO

Questo messaggio rappresenta una frame estesa ricevuta dallinterfaccia Costituzione Messaggio: $18 AA BB CC DD EE FF GG HH + CR

24

In particolare: AA BB CC DD EE FF GG HH Rappresenta il 1 byte di una frame estesa Rappresenta il 2 byte di una frame estesa Rappresenta il 3 byte di una frame estesa Rappresenta il 4 byte di una frame estesa Rappresenta il 5 byte di una frame estesa Rappresenta il 6 byte di una frame estesa Rappresenta il 7 byte di una frame estesa Rappresenta il 8 byte di una frame estesa

Fig.20 Trasferimento di frame estese (un pacchetto di broadcast) da SCS a UART $19 AsyncFrameAck PC MICRO

Questo messaggio rappresenta un ACK-SCS ricevuto sul bus SCS dallinterfaccia Costituzione Messaggio: $19 + CR

Fig.21 A seguito della corretta ricezione di una frame, un dispositivo su bus SCS replica con un ACK, che viene ritrasmesso dallinterfaccia su UART sotto forma di comando $19 25

$20 AsyncFrameError

PC

MICRO

Questo messaggio rappresenta una frame corrotta ricevuta dallinterfaccia. In questo caso particolare la frame ha un contenuto a lunghezza variabile (da AA a JJ) nel quale vengono inseriti i dati ricevuti su SCS dallinterfaccia. In funzione del tipo di errore riscontrato (specificato dal codice XX) possono essere inviati un numero di byte a partire da 0 fino a 9 (al massimo 8 byte frame estesa + checksum frame). Costituzione Messaggio: $20 XX AA BB CC DD EE FF GG HH JJ + CR In particolare: XX AA BB CC DD EE FF GG HH JJ specifica il codice di errore riscontrato (vedi tabella) Rappresenta il 1 byte di una frame corrotta Rappresenta il 2 byte di una frame corrotta Rappresenta il 3 byte di una frame corrotta Rappresenta il 4 byte di una frame corrotta Rappresenta il 5 byte di una frame corrotta Rappresenta il 6 byte di una frame corrotta Rappresenta il 7 byte di una frame corrotta Rappresenta il 8 byte di una frame corrotta Rappresenta il 9 byte di una frame corrotta

Codice di errore: Codice XX 01 02 03 04 05 06 07 08 09 Descrizione STX non identificato Stop bit errato CheckSum errata ETX non identificato Time-out Rx byte non completo Time interbyte troppo lungo Lunghezza frame non valida Buffer over run Retry frame N byte max 1 09 09 09 09 09 09 0 8 Note Start Byte frame errato Stop bit non rilevato Eventuale corruzione frame End Byte frame errato Problemi sulla ricezione frame Problemi sulla ricezione frame Formato frame non riconosciuto Buffer interfaccia pieno Ricevute pi di 3 frame uguali consecutive, problemi sulla ricezione o trasmissione ack del destinatario

26

$24 ReqVersione

PC MICRO

Comando utilizzato per richiedere la versione HW / FW dellinterfaccia. Costituzione Messaggio: $24 + CR $25 Versione PC MICRO

Risposta alla richiesta versione HW / FW che pu essere da 3 a max 5 byte. Il CR determina la fine della risposta. Costituzione Messaggio: $25 AA BB CC ... + CR AA BB CC byte per versione HW byte per versione FW byte per release FW ulteriori byte, max 2

Fig.22 Dopo la richiesta versione, linterfaccia risponde con versione hw 4 (PIC16F886) 2 (hardware con
configuratori), versione fw 4.6 e release fw 1 (funzionamento a 16 MHz)

$26 Configuratori

PC

MICRO

Comando per richiedere allinterfaccia i configuratori letti allavvio. Il dispositivo connesso su UART chiede il numero di configuratori che vuole leggere e linterfaccia risponde con i valori letti. Costituzione Messaggio: richiesta lettura $26 XX + CR conferma lettura $26 AB CD EF + CR PC MICRO 27 PC MICRO

XX AB CD EF

byte contenete il numero di configuratori da leggere diviso 2 byte contenente i configuratori CONF1 e CONF2 byte contenente i configuratori CONF3 e CONF4 byte contenente i configuratori CONF5 e CONF6

Fig.23 In questo esempio poniamo in sede I configuratori 1,2,3,4,5,6 ed eseguiamo prima la lettura dei primi due, poi dei primi quattro ed infime dellinterno pacchetto di 6 configuratori. $27 CNF_TX_SCS PC MICRO

Comando per configurare la modalit di trasmissione/ricezione delle frame SCS. Diverse impostazioni sono gestibili allo stesso tempo, purch non in contraddizione tra loro (se, ad esempio, si disabilita la gestione degli ACK, limpostazione del bit 5 (si veda sotto) non d riscontro). Nota: se attiva la gestione dei bit 5 e 6, linterfaccia continuer a dare ACK anche a tutti gli altri indirizzi ausiliari settati in precedenza. Costituzione Messaggio: $27 AA BB + CR AA byte contenente parametri configurazione Bit0 = filtro frame broadcast (1= abilitato; 0 = disabilitato) Bit1 = gestione comando stato tx su SCS ($08) (1= abilitato; 0 = disabilitato) Bit2 = gestione trasmissione ACK su SCS (1= abilitato; 0 = disabilitato) Bit3 = blocco frame con tipo sistema diverso(1= abilitato; 0 = disabilitato) Bit4 = blocco di tutte le frame per cui linterfaccia non d ACK(1= abilitato; 0 = disabilitato) Bit5 = trasmissione ACK se indirizzo frame DST > indirizzo locale interfaccia ADD (1= abilitato; 0 = disabilitato)

28

Bit6 = = trasmissione ACK se indirizzo frame DST < indirizzo locale interfaccia ADD (1= abilitato; 0 = disabilitato) Bit7 = trasmissione ACK per sistemi diversi da sistema interfaccia SYS (1= abilitato; 0 = disabilitato) BB parametro non utilizzato, impostarlo come 00

Fig.24 In questo esempio si mostra la gestione del filtro frame broadcast: quando disabilitato ($270600)
viene trasferito su seriale lintero pacchetto di tre frame broadcast, mentre quando abilitato ($270700) viene trasferita su seriale una sola frame del pacchetto di tre broadcast

Fig.25 In questo esempio si mostra la gestione del comando di stato trasmissione su SCS: quando
abilitato ($270600), dopo la trasmissione viene notificato lo stato della stessa. Quando invece disabilitato ($270400), non avviene la comunicazione su seriale dellesito della trasmissione

29

Fig.26 In questo esempio si mostra la gestione dei comandi di trasmissione ACK su SCS e di filtraggio frame a cui non si d ACK: quando i comandi sono disabilitati ($270600), linterfaccia gestisce gli ACK per gli indirizzi ausiliari settati; quando i comandi sono abilitati ($271200) linterfaccia non risponde ACK su SCS anche se gli indirizzi ausiliari sono regolarmente settati e non ritrasmette su seriale le frame su SCS, a cui non ha risposto ACK

Fig.27 In questo esempio si mostra la gestione del comando di filtraggio frame con sistema diverso da quello impostato sullinterfaccia: quando disabilitato ($270600), linterfaccia ritrasmette lato seriale anche le frame con sistema diverso; quando attivo ($270E00), le frame con sistema diverso vengono bloccate e non ritramesse lato seriale 30

Fig.28 In questo esempio si mostra la gestione del comando di trasmissione ACK per frame con sistema diverso da quello impostato nellinterfaccia: quando il comando disabilitato ($270600) linterfaccia non risponde ACK alle frame inviate da dispositivi su SCS indirizzate a un indirizzo ausiliario settato nellinterfaccia. Quando invece limpostazione settata ($278600), il controllo sul sistema di appartenenza viene disabilitato e linterfaccia d ACK se lindirizzo ausiliario tra quelli settati.

Fig.29 In questo esempio si mostra la gestione del comando di trasmissione ACK per frame con indirizzo destinatario maggiore o minore di quello locale dellinterfaccia. Si consideri di avere settato solamente lindirizzo locale (0x5A) dellinterfaccia e nessun indirizzo ausiliario. Se i comandi non sono settati ($271600), allora linterfaccia dar ACK su SCS solo per lindirizzo locale. Se impostato il comando per indirizzi maggiori ($273600), allora linterfaccia dar ACK a tutti le frame indirizzate ad indirizzi ausiliari maggiori di quello locale. Viceversa se viene impostato il comando per indirizzi inferiori a quello locale ($275600).

31

$50 SetPortDirection PC MICRO Questo messaggio imposta la direzione (INPUT=1, OUTPUT=0) dei bit della porta (A, B, C) del PIC. Costituzione Messaggio: $50 XX YY + CR In particolare: XX YY Rappresenta la porta da programmare (vedi tabella) Rappresenta la direzione da imporre ai bit della porta; ad esempio: YY = 01 bit 0 in ingresso, gli altri in uscita (0000 0001) YY = F3 bit 7,6,5,4,1,0 in ingresso, bit 2,3 in uscita (1111 0011) Codice porta: Codice XX 00 01 02 Descrizione Porta "A" del PIC Porta "B" del PIC Porta "C" del PIC PC MICRO

$51 Port

Questo messaggio imposta il valore della porta del PIC. Costituzione Messaggio: $51 XX YY + CR In particolare: XX YY Rappresenta la porta da settare (vedi tabella) Rappresenta il valore da imporre alla porta; ad esempio: $510001 ---> scrive il byte 0x01 sulla porta "A" del PIC. $5101A2 ---> scrive il byte 0xA2 sulla porta "B" del PIC.

32

Codice porta: Codice XX 00 01 02 Descrizione Porta "A" del PIC Porta "B" del PIC Porta "C" del PIC

$52 setBit

PC MICRO

Questo messaggio setta a 1 un bit di una porta del PIC. Costituzione Messaggio: $52 XX YY + CR In particolare: XX YY Rappresenta la porta da settare (vedi tabella) Rappresenta il bit da porre a 1; ad esempio: $52 00 01 pone a 1 il bit 1 della porta "A" del PIC. $52 01 05 pone a 1 il bit 5 della porta "B" del PIC. Codice porta: Codice XX 00 01 02 Descrizione Porta "A" del PIC Porta "B" del PIC Porta "C" del PIC

$53 resetBit PC MICRO Questo messaggio setta a 0 un bit di una porta del PIC.
This message sets up to 0 a bit of a PIC's port.

Costituzione Messaggio:
Message structure:

$53XXYY + CR In particolare:
In detail:

33

XX YY

Rappresenta la porta da settare (vedi tabella) Rappresenta il bit da porre a 0; ad esempio: $530001 ---> pone a 0 il bit 1 della porta "A" del PIC. $530105 ---> pone a 0 il bit 5 della porta "B" del PIC.
Represents the port to be set up (see table) Represents the bit to set up to 1; for example: $530001 ---> set up to 0 the bit 1 of the the PIC's port "A". $530105 ---> set up to 0 the bit 5 of the the PIC's port "B".

XX YY

Codice porta:
Port code:

Codice XX 00 01 02 XX Code 00 01 02

Descrizione Porta "A" del PIC Porta "B" del PIC Porta "C" del PIC Description PIC's Port: "A" PIC's Port: "B" PIC's Port: "C"

$54 DefaultPort

PC MICRO

Questo messaggio setta lo stato (ingresso/uscita) dei bit delle porte del PIC secondo una configurazione di default. Costituzione Messaggio: $54 + CR $55 ReadPort PC MICRO

Questo messaggio permette al dispositivo posto in collegamento via seriale di richiedere il valore di una porta dellinterfaccia. Linterfaccia risponde con lo stesso messaggio nel quale indica il valore della porta richiesta. Costituzione Messaggio: Da dispositivo a interfaccia Da interfaccia a dispositivo In particolare: XX YY Rappresenta la porta da leggere (vedi tabella) Rappresenta il contenuto della porta richiesta. 34 $55 XX + CR $55 YY + CR

Per esempio: il dispositivo richiede lo stato della porta B con $55 01 linterfaccia risponde con lo stato dei pin della porta B: $55 43 Codice porta: Codice XX 00 01 02 Descrizione Porta "A" del PIC Porta "B" del PIC Porta "C" del PIC

35