Transmissão de Dados

Telecom em geral

Moderadores: andre_luis, 51

Transmissão de Dados

Mensagempor JeanPaul » 24 Jan 2013 11:05

Olá pessoal,

Estou trabalhando em um projeto onde preciso fazer a comunicação entre dois dispositivos microcontrolados. As distâncias podem variar de 20 a 500 metros no máximo. A rede será composta por um mestre que fará a leitura de um ou mais escravos. Os escravos precisam ter a possibilidade de pedir a atenção do mestre no caso de algum tipo de alarme. Os dados são valores de tensão, corrente e temperatura que serão atualizados a cada segundo.

Bom, sempre trabalhei com SPI e I2C para pequenas distâncias, mas não tenho experiência nenhuma com distâncias maiores. Algum dos amigos pode me direcionar para a melhor solução?

Pesquisei alguns protocolos como o RS232, que acho que não me atende pela distância, RS485 e CAN, mas não tenho certeza qual seria a melhor opção para o meu caso. Existem outras opções?

Desde já agradeço por qualquer ajuda!

[]’s

Jean Paul
JeanPaul
Byte
 
Mensagens: 182
Registrado em: 12 Out 2006 21:27
Localização: Florianópolis -SC

Mensagempor brasilma » 24 Jan 2013 11:41

O RS485 irá atender, ele é projetado para distâncias de até 1.200m.

Você consegue até 10Mbits para pequenas distâncias e 100K à 1.200m.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor KrafT » 24 Jan 2013 11:47

Tem n opções, desde Ethernet, redes sem fio, fibra óptica, etc...

Mas o mais barato é RS485. Se teus escravos precisam avisar o mestre sem poderem ser "pooleados", o CAN é uma boa solução.

Eu faria RS485.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor JeanPaul » 25 Jan 2013 12:43

Fiz uma pesquisa mais focada nestes dois protocolos sugeridos. Coisa superficial, mas dá pra ter uma ideia. Quanto ao RS485 ele me atende na distância e na velocidade. A questão de ter que “poolear” os escravos pode ser até revisto no projeto, talvez o alarme não precise ser instantâneo. O que está pegando é que li que o protocolo suporta apenas 32 indivíduos na rede, por questões de impedância. Procede isso?

Vi que é possível fazer algumas modificações para aceitar mais unidades na rede, mas isso pode afetar a velocidade e a imunidade à ruídos da rede.

Quanto à CAN, gostei do que li. Me parece ser muito simples de implementar com um MCU que tenha um módulo embutido. Quanto à distância e velocidade também me atende, agora não encontrei nada sobre a quantidade de módulos que posso conectar no barramento. Quem limita isso são os bits de identificação?

Não queria trabalhar com um protocolo limitado no que diz respeito ao número de módulos conectados, e achei a CAN aparentemente muito simples de ser implementada. Posso estar errado, pois o que fiz até agora foi ler apostilas e datasheets.

Kraft e brasilma, vocês já trabalharam com CAN? Tiveram bons resultados?

Muito obrigado pela ajuda.

[]’s

Jean Paul
JeanPaul
Byte
 
Mensagens: 182
Registrado em: 12 Out 2006 21:27
Localização: Florianópolis -SC

Re: Transmissão de Dados

Mensagempor andre_luis » 25 Jan 2013 12:54

Jean,


Dependendo da carga de dados á trafegar, os protocolos síncronos I2C/SPI podem ser uma boa pedida, pois se o handshake foi realizado por firmware ( e não pelos módulos built-in do uC ) a taxa de comunicação pode ser até mesmo de poucos Hz, compensando a efeitos decorrentes distancia.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor KrafT » 25 Jan 2013 16:24

- O CAN não é adequado à longas distâncias (CAN com par trançado).
- O RS485 pode ter até 256 nós no barramento, depende só do driver.

Critérios que vão definir o que usar:

1- O delay que teu alarme pode ter antes de ser reconhecido pelo mestre;
2- A distancia máxima da rede;
3- A quantidade máxima de nós que a rede vai ter que suportar.

Veja que de repente até o LIN te atenda.
"..."Come to the edge," he said. And so they came. And he pushed them. And they flew."― Guillaume Apollinaire
Avatar do usuário
KrafT
Dword
 
Mensagens: 2228
Registrado em: 11 Out 2006 14:15
Localização: Blumenau -SC

Mensagempor RobL » 25 Jan 2013 21:30

Não queria trabalhar com um protocolo limitado no que diz respeito ao número de módulos conectados, e achei a CAN aparentemente muito simples de ser implementada. Posso estar errado, pois o que fiz até agora foi ler apostilas e datasheets.


1- Precisa eleger o padrão elétrico mais conveniente.
2- Eleger o protocolo mais conveniente.

Pode haver limitação na quantidade de módulos tanto no ítem 1 como no item 2.
No item um a limitação normalmente estará na baixa impedância e no 2 na quantidade de endereços possíveis. Por exemplo, no protocolo ModBus o endereço tem um byte (8 bits).
Quanto ao padrão elétrico, por exemplo RS485, se usar componentes antigos, a limitação esta em 32 unidades sem repetidores, mas com compontentes modernos pode-se chegar a centenas sem repetidor.
Não confundir padrão elétrico RS485 com protocolo, por exemplo, o DH485.
Quanto ao padrão elétrico, deverá recair em um de modo diferencial como o CAN e o RS485, por exemplo.
Muitos pensam que o RS485 é half duplex, mas não é. O RS422 normalmente é usado como full duplex e o RS485 normalmente usado como half duplex.
Quanto ao protocolo, infelizmente haverá sempre uma quantidade máxima de servos, devido a quantidade de bits do endereço.
Mesmo com o padrão elétrico como o RS485, com protocolo ModBus, tem maracutaia para endereçar um número muito grande de servos.
E deve pensar no Ethernet com TCP/IP também.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56


Voltar para Telecomunicações

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x