Lavorando con Rs232

Lavorando con Rs232

Oct 30, 2014. | Da: Kevin Guglielmetti

Concetti Generali

Per verificare il corretto funzionamento del codice si è implementato lo standard di comunicazione seriale RS232c: ciò significa che i bit di informazione verranno inviati uno alla volta attraverso una connessione seriale implementata attraverso i cavi DB9.

I numero 9 sta a indicare il numero di pin presenti nella parte finale del cavo; i pin sono collegati a fili di rame presenti nel corpo del cavo, ognuno dei quali ha una specifica funzione: trasmissione, ricezione, massa, handshake (protocollo di sincronia che garantisce che i dati trasmessi non vadano persi), ecc.

Lo standard RS232c si basa sulla comunicazione asincrona, cioè trasmettitore e ricevitore non sono sincronizzati durante la trasmissione/ricezione. Ogni carattere inviato è codificato con un certo numero di bit a seconda della codifica utilizzata.

Ogni serie di bit è preceduta da un bit di start e seguita da uno o più bit di stop e uno di parità (controllo di errore).

Ovviamente la comunicazione può essere attuata solo se si dispone di una porta seriale sul pc oppure si possono utilizzare programmi di virtualizzazione come Com0com.

Esistono inoltre dei parametri che permettono di gestire la connessione quali:

  • Nome della porta (PortName)
  • Numero di bit per secondo (BaudRate)
  • Numero di bit che codificano il singolo carattere (DataBits)
  • Tipo di parità (Parity)
  • Valore del bit di stop (StopBits)


    Esempio C#


    Il codice incluso indica come l'inizializzazione delle porte Rs232 è gestita in Crypthat.

    Il metodo utilizzato è infatti "InizializzaPorta" dove viene specificato a che persona (Identity) attribuire un porta Rs232.

    Come prima cosa si inizializza la proprietà Identity.serialPort ad un nuovo oggetto SerialPort con il nome specificato nei parametri del metodo.

    Seguono poi i settaggi dei parametri della porta, in questo caso sono stati utilizzati:

    • Velocità di 9600bps, questo perchè il cavo utilizzato presentava un forte deterioramento e velocità superiori avrebbero probabilmente causato perdita di dati.
    • 8 bit per codificare i caratteri, per includere anche i caratteri speciali ASCII.
    • Controllo di Parità in modalità Pari, per garantire un minimo controllo sugli errori di trasmissione.
    • 1 StopBit

      Considerazioni Finali

      Durante lo sviluppo della classe di gestione di Rs232 abbiamo riscontrato un problema inaspettato che ha ritardato il progetto.
      Crypthat, infatti, utilizza la porta Rs232 ad eventi, ovvero ogni volta che un dato viene ricevuto, viene chiamato l'evento Data_Received della porta che restituisce la porta Rs232 di origine ed i dati letti (presenti nel buffer di ricezione). Nella fase di testing, però, il gruppo ha scoperto che l'evento veniva chiamato alla ricezione di un certo numero di bit, non necessariamente alla fine del messaggio.
      E' stato quindi necessario modificare i metodi di comunicazione, inserendo alla fine di ogni messaggio un carattere di escape (nel nostro caso ~) ed in ricezzione usando il metodo dell'oggetto SerialPort, "ReadTo(char carattere)" che legge il buffer corrente fino ad un determinato carattere e cancella solo i byte letti.


Sottoscrizione

Sottoscriviti a questo Blog via RSS.

Categorie

Programmazione 2

Organizzazione 1

Connessioni 2

Interfaccia 1

Crittografia 3

Sito 1

Posts Recenti

Tags Popolari

Programmazione (2) Organizzazione (1) Connessioni (2) Interfaccia (1) Crittografia (3) Sito (1)

Chi Siamo

Il gruppo è stato formato per una serie di progetti scolastici di cui Crypthat è il primo. Sebbene le disuguaglianze interne cerca costantemente di rendere al meglio rispettando tempi e consegne previste.

Dove Siamo

ISII Marconi, via IV Novembre,
29122, Piacenza,
Italy.