Pages: [1]   Go Down
Author Topic: RS485, Modbus, protocollo custom...  (Read 3330 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
sto cercando un modo per poter connettere un certo numero di Arduino anche a parecchi metri di distanza, come canale fisico mi sembra che la scelta di RS485 sia quasi obbligata da questo punto di vista ma ho problemi più che altro a decidere il protocollo da usare su RS485: ho visto che spesso viene usato Modbus ma ahimé non sembra fare al caso mio perché ho bisogno di un protocollo che supporti connessioni punto a punto. Cosa mi consigliate?
Volendo scrivere un protocollo personalizzato quali accorgimenti dovrei tenere presenti? Ad esempio ho visto che Modbus separa i frame inserendo una certa pausa (3.5 caratteri), come mai hanno deciso di separare i frame in questo modo invece di mettere un "separatore" di fine frame o semplicemente di scrivere all'inizio del frame la lunghezza del frame?
Inoltre come mi consigliate di comportarmi per gestire le collisioni sul bus?

Grazie mille in anticipo.
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche se non è proprio il mio campo... ti rispondo con una domanda: pechè non usi semplicemente il protocollo I2C? (già corredato di librerie standard).
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Anche se non è proprio il mio campo... ti rispondo con una domanda: pechè non usi semplicemente il protocollo I2C? (già corredato di librerie standard).

Perché ho bisogno di dislocare i vari device anche a parecchi metri di distanza, I2C è limitato da questo punto di vista.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao segfault

cercando ho trovato questo:
http://www.oceancontrols.com.au/controllers/kta223_Relayduino.htm
http://real2electronics.blogspot.com/2009/09/arduino-and-rs485-english-version.html
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1245014666/all

Ciao Uwe
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 185
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@segfault
hai scartato l'i2c solo per la distanza? in questo caso dai un occhio qui http://www.nxp.com/documents/data_sheet/PCA9600.pdf
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In linea di massima non vedo ragioni particolari per preferire I2C, al momento stiamo sviluppando un protocollo punto a punto per RS485, per quanto riguarda le collisioni pensiamo di poterle rilevare in due modi:
1) semplice sistema con pacchetto ACK di conferma
2) abilitando contemporaneamente i pin DE (Driver Enable, abilita la scrittura sul bus) e RE (Read Enable, abilita la lettura) in modo da poter leggere immediatamente il frame appena scritto: una differenza tra i 2 frame confrontati indicherebbe una collisione.
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 8
Posts: 2955
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se ti pagano per sviluppare un protocollo custom allora si, altrimenti una ragione per preferirlo ci ssarebbe... è gia fatto!  ;D
e già prevede i problemi che tu menzioni.
P.S.
Quando dici collegare a distanza, di che distanze parliamo?
Logged

Livorno (italy)
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao ti posso consigliare i moduli radio, li interfacci direttamente alla seriale di arduino, setti la velicità che ti pare...i moduli sono trasparenti
non ci fanno nulla sul segnale, possono riconoscere anche i comandi standard HAYES. Viaggiano da 300 a 19.200 baud, sono utilizzabili senza licenza. Viaggiano a 868 Mha con potenze da 10 mW a 500 mW.
vai a vedere su  www.satel.com Hanno un solo difetto essendo prodotti professionali....costano.
Un saluto
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Electronic Service

A quel punto é meglio usare dei XBee. costano con scheda adattatore intorno ai 35€.
Un bus RS485 cista molto di meno.

Ciao Uwe
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

abbiamo la linea linea bilanciata... usiamo CAN bus!! o un versione semplificata.. UMM..
Logged

Pages: [1]   Go Up
Jump to: