COMUNICAÇÃO

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

COMUNICAÇÃO

Mensagempor lucflores » 16 Nov 2006 15:50

ola Amigos

Gostaria de saber se alguem ja fez algo assim, necessito enviar um código de 8 bits para uma placa e receber a resposta desta placa.

hoje eu faso isto com os ci 145026 e 145028, numa placa com 8952 eu codifico o 145026 para enviar um codigo a uma placa que se encontra a uns 200 metros do local com fio, essa placa recebe o codigo com o 145028 e transmite o mesmo codigo com o 145026 novamente, e o meu 89s52 recebe na outra placa a uns 200m. Não sei se fui bem claro, mas a pergunta é a seguinte.

Alguem ja fez o 89s52 enviar um codigo de 8bits pela serial em modo sincrono utilizando um buffer a uns 200m e o outro 89s52 receber este dado e assim que receber a tivar a serial para tx e envia-lo novamente, acho que funciona a poucas distancias, acho, e a longas distancias, alguem ja fez algo parecido, necessito com uma certa urgência. Obrigado
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor Ander_sil » 16 Nov 2006 16:09

O correto é usar uma interface 485, Tem o chip SN75176 da texas.

http://www.datasheetcatalog.com/datashe ... 5176.shtml

até+

Anderson
Ander_sil
Byte
 
Mensagens: 368
Registrado em: 30 Out 2006 09:58
Localização: Campinas - SP

Mensagempor lucflores » 16 Nov 2006 16:13

Vou dar uma olhada neste ci, se alguem tivar mais dicas pode falar heheh, ate mais...
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor Paulo » 16 Nov 2006 16:17

Eu tb utilizo o padrão rs485 quando necessito de distâncias maiores, nunca tive problema, inclusive tenho um projeto que chega a 1000m a distância entre os pontos de tx e rx e está funcionando OK.
Acredito que talvez essa seja a melhor opção.


Até +...
Paulo D.
"Se o teu sonho for maior que ti, Alonga tuas asas, Esgarça os teus medos, Amplia o teu mundo, Dimensiona o infinito, E parte em busca da estrela... " (Trecho de Voa - Ivan Lins / Leda Selma)
Avatar do usuário
Paulo
Byte
 
Mensagens: 421
Registrado em: 07 Nov 2006 07:26

Mensagempor lucflores » 16 Nov 2006 16:25

Dei uma olhada no datasheet so que infelismente não tenha experiencia nenhuma com as tal das rs232 e 485, alguem sabe me informar se tenho que utilizar um protocolo ou é so enviar pelo 89s52 que o CI485 ja envia,
Obrigado
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor chipselect » 16 Nov 2006 16:39

bom, além de usar o 485, se você quiser ter uma maior garantia de transmissão correta, implemente algum protocolo de comunicação.

Pode até ser o MODBUS, que é muito usado em 485, mas vc também pode fazer um protocolo simples com checagem de erro, já que é só um byte de dados que você precisa transmitir e receber.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor lucflores » 16 Nov 2006 16:48

Ok, alguem teria algum exemplo de como coloco em funcionamento o 89s52 com o CI RS485 (75176), para duas placas se comunicarem tem que ter o 75176 dos dois lados né?.
Desculpe a ignorancia no assunto é que uma vez tentei comunicar um pc com uma interface rs232 e não consegui acho que peguei um pouco de trauma dos "RS"...

Obrigado
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor lucflores » 16 Nov 2006 16:55

Ha outra coisa que esqueci de dizer é que a placa remota, ou seja que estará a uns 200m vai ser alimentada pela placa principal ou seja não vai possuir alimentação propria, os encoders que tenho funciona assim jogo na linha de 200m um cabo de 4 fios, terra 12V, tx e RX, e na placa remota abaixo os 12 que ja chega com alguma queda para 5V com um regulador, isso tem algum problema para o RS485?????
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor lucflores » 17 Nov 2006 07:17

E ai pessoal, nimguem tem um exemplinho ai de como faço para funcionar um CI RS485, não tenho muita experiencia em sistemas seriais, mas sei programar o 89s52, so desconheço o protocolo RS485.
Obrigado
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor Ander_sil » 17 Nov 2006 08:48

A comunicação é serial, o chip converte o nivel TTL para rs485.
Da uma olhada nesse artigo.
http://tesla.eletrica.ufpr.br/~srm02/in ... igital.pdf

até+

Anderson
Ander_sil
Byte
 
Mensagens: 368
Registrado em: 30 Out 2006 09:58
Localização: Campinas - SP

Mensagempor lucflores » 17 Nov 2006 16:11

Muito Obrigado ate agora, vou dar uma olhada no site e comprar os componentes, qualquer coisa prendo o grito aqui. Mas se alguem tem mais alguma dica pode dizer ai.

Valeu...
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor jeanfernandes » 18 Nov 2006 12:10

luc

O chip para 485 eh simples de usar

8 pinos (vcc - 8, gnd - 6)

Pino 1 voce recebe dados do 485 (Rx)
Pino 4 voce transmite dados pro 485 (Tx)

Lado Binario

Os pinos 2 e 3 voce pode juntar. O pino 2 habilita a recepcao (em 0), o pino 3 habilita a transmissao (em 1).

Junta os dois pinos e poe num pino do MCU. Para deixar em recepcao voce deixa 2-3 o pino em 0. Para transmitir voce poe o 2-3 em 1. Seguinte. Se voce operar por transmissao usando a interrupcao da serial voce tem que fazer o seguinte :

1) Arbitre quem é o device mestre, ou seja ele sempre inicia a conversa com o escravo. O escravo sempre envia comandos pro mestre apos o recebimento de um comando para tal. Nunca assincronamente.

A) Mestre pergunta ---- Escravo Responde (comando tipo 1)
B) Mestre pergunta ---- Escravo nao Faz Nada (comando tipo 2)

Quando ninguem ta transmitindo nada, há duas considerações:

C) mestre e escravo ficam no modo de recepção
D) mestre garante a polarizacao do barramento (ver item 2 abaixo).

2) Do lado 485

No mestre ponha R = 120 Ohms entre pinos 6 - 7
R = 560 Ohms pullup pino 6.
R = 560 ohms pulldown pino 7. (pronto polarizou o barramento).

No lado escravao ponha R = 120 Ohms entre os pinos 6-7

Tem que ligar pinos 6 com 6 e 7 com 7...(mestre-escravo).

Se voce quer dar uma proteção a mais voce usa um KPC (Kraft Protection Circuit). que é o seguinte .....depois dos resistore voce poe em SERIE com cada linha um PTC (Referencia : KRT2500012FB, pode ser adquirido na Voltts ou em lojas de eletronica).


Com os PTC em serie....voce pode dar curto no barramento que nao queima.....por falar em barramento....qq cabo UTP cat 5 pode ser usado, mas nao caia na esparrela de usar um par pra cada linha voce tem que usar um PAR trancado para as duas linhas.....

Bom hardware no ar.....

3) Protocolo

Ai tem varios...mas voce pode implementar qq tipo de protocolo que nada mais eh do que uns caracteres de controle que trafegam com os dados.....

Um bem Zé Ruela....

#TD!

# - Caractere de Inicio de Frame
T - Tamanho do Campo de Dados
D - Frame de Dados
! - Caractere de Fim de Frame

Tipo :
Mestre

#4JEAN!

Escravo

#7MONSTRO!

E por ae vai eheheheh (o campo tamanho nao eh ASCII eh byte mesmo).

E finalmente na parte de transmissao por interrupcao voce tem que esperar que o ultimo byte seja transmitido efetivamente, para pode chavear o dispositivo pr arecepcao..

Fuiz.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor lucflores » 18 Nov 2006 17:51

Brigadão Jean

Ma olha so.

Eu vou ter somente uma placa mestre e mais ou menos 64 placas escaravos, e necessito ligar todas num mesmo par, mais ou menos como mostra a fig abaixo:




MCU-----CI 485-----------Linha 485 (1par)---------------CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
.
.
.
Todas as placas esravos ficam sempre em receção e a placa mestre envia um código a 1º placa escravo e aguarda sua resposta, depois envia a 2º a 3º e assim sucessivamente ate chegar a ultima, e então começa tudo novamente, se alguma placa falhar gera um erro o se a linha estivar em curto também gera erro.

Os CI RS 485 podem ser ligados assim vários num mesmo par??????? pois era assim que fazio com os 145028.

O que você quiz dizer para não usar um par para cada linha, e ese cabo (utp cat 5) e cabo de rede normal, eu estava pensando em usar cabo manga blindado.

Obrigado, e no aguardo
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor lucflores » 19 Nov 2006 13:23

Desculpem a insistencia, mas alguem sabe se isso (acima) da para fazer com o Ci RS485, Valeu....
lucflores
Nibble
 
Mensagens: 90
Registrado em: 16 Nov 2006 15:39

Mensagempor eletroinf » 19 Nov 2006 22:41

Sim, dá pra ligar vários CIs em rede, porém a quantidade é limitada, se não me engano pela impedância de entrada deles, agora não consigo lembrar; Sobre o SN75176, não esqueça que quando tu colocá ele no modo de TX, o pino 1 fica em alta impedância. Justamente este pino é ligado a entrada de RX da USART do MCU, que quando está em repouso deve ficar em nível 1. Então, é bom usar um Pull-up aí, porquê se a interrupção de RX estiver habilitada, mesmo se tu estiver transmitindo vai ficar travando teu programa.
Avatar do usuário
eletroinf
Word
 
Mensagens: 948
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Próximo

Voltar para 8051

Quem está online

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

x