Rede com PIC 18F452

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Rede com PIC 18F452

Mensagempor rodrigoadachi » 12 Fev 2012 07:48

Ola pessoal,

Comprei 3 plaquinhas com 6 relés + 8 entradas fotoacopladas e um conector DB9(RS232) + LCD Serial, subistituir o PIC de 16F877 para 18F452 http://www.smartradio.com.br/loja-pic/?id=24.

Bom o negocio é o seguinte, estou em uma missão de comunicar 3 destas plaquinas a um PC utilizando Linux, no linux fiz em C ele recebe da serial e escreve no MySQL e Ler o MySQL e escreve na serial, RS232 ta facil comunicar uma para as 3 já pensei RS485, ModBus, Ethernet, ZigBee, bom, o que está pegando para mim é o protocolo, a redundância como por exemplo:

se estas plaquinas estão falando com o PC dai o pc envia um sinal para um relé ativar e eu deconecto o cabo de comunicação desta plaquina o relé tem que desativar;

outro exemplo:

se a plaquinha estiver desconectada e o PC enviar um sinal para ativar um relé e sei lá o sinal falhou, como o pc saber que a plaquinha recebeu este sinal.

Ja tentei varias coisas aqui:

Endereceu as plaquinas (slave) e o PC seria o master, fiz uma varredura no pc para envio de status para todos os nós, mas as vezes a plaquinha recebe o sinal as vezes não.

:?

Alguem já fez algo do tipo?[/url]
rodrigoadachi
Nibble
 
Mensagens: 70
Registrado em: 15 Out 2007 12:19
Localização: Bahia - Brazil

Re: Rede com PIC 18F452

Mensagempor andre_luis » 12 Fev 2012 12:02

rodrigoadachi escreveu:...se estas plaquinas estão falando com o PC dai o pc envia um sinal para um relé ativar e eu deconecto o cabo de comunicação desta plaquina o relé tem que desativar...


Como essa decisão tem de ser implementada do lado do microcontrolador, pode prever no protocolo, enviar regularmente de um frame de lifecheck, no qual o PIC sabe se o link com o PC continua estabelecido.

rodrigoadachi escreveu:...se a plaquinha estiver desconectada e o PC enviar um sinal para ativar um relé e sei lá o sinal falhou, como o pc saber que a plaquinha recebeu este sinal...


Realizando o "eco" dos comandos recebidos.
Também é prudente anexar bytes verificadores de erro.


+++
"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 rodrigoadachi » 12 Fev 2012 13:45

Ok, havia pensado em algo do tipo, só não conhecia os termos..

Bom dai fiz o seguinte:

Em RS232 115200baud 8N1:

Criei um frame de comunicação $IH01O11111111*

$IH Cabeçalho
01 Endereço do slave
O O (saida) ou I (Entrada)
11111111 6 ou 8 bits referente as entradas ou saidas
* Fim de frame

Dai como falei anteriormente o PC varre enviando status para todos os nós no campo endereço de 00 a 99 quando o slave correspondente recebe seu frame ele responde cm a mesma coisa confirmando o recebimento e envia o status de entrada em seguida.

Mas ficou intermitente, diminuir o tempo de scan e nada...
rodrigoadachi
Nibble
 
Mensagens: 70
Registrado em: 15 Out 2007 12:19
Localização: Bahia - Brazil

Mensagempor andre_luis » 12 Fev 2012 15:23

Rodrigo,


Voce intuitivamente, implementou uma estrutura meio que padrão nos protocolos de comunicação mais comumente usados :
Imagem
Só acho que 1 ou 2 bytes verificadores de erro poderiam ser necessários, dependendo da precariedade do meio físico de comunicação.
Também a implementação de um eco, permitiria voce contabilizar a quantidade de pacotes perdidos.
Voce pode també usar um LED no PIC para informar esse recebimento.

Aparentemente, pelo que voce descreveu, o PC não está recebendo retorno do PIC, ou seja, não está perguntando se já pode enviar o próximo frame. Assim, a implementação de um protocolo de mão-dupla, pode resolver algum problema de overflow.



+++
"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 rodrigoadachi » 12 Fev 2012 19:12

Bom numca trabalhei cm RS485, ja li muita coisa e fiz alguns testes aqui, aproveitando... poderia utilizar o mesmo modelo de frame?
rodrigoadachi
Nibble
 
Mensagens: 70
Registrado em: 15 Out 2007 12:19
Localização: Bahia - Brazil

Mensagempor andre_luis » 12 Fev 2012 19:32

Rodrigo,



Sem problemas.

O RS-484 não é um protocolo de comunicação, mas apenas um padrão de especificação elétrica.
Uma coisa é a camada físico e outra é a camada lógica de comunicação.

Voce tem de raciocinar dessa maneira na programação do firmware, para quando implementar o programa, realizar o acesso apenas de uma camada para outra, tendo funções separadas para cada uma.

Por exemplo, uma função para a manipulação dos bytes, outra para a formatação do frame, e outra para o protocolo de negociação dos frames.

No seu caso, a padronização RS-484 é feita fora da programação, mas por um circuito driver conversor de nível elétrico.

A manipulação dos bytes, voce não precisa se preocupar, pois o PIC possui UART, a formatação do frame e a negociação, aí sim, voce teria de primeiro desenhar o fluxo que deseja, e apenas depois partir pra programação.


+++
"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 RobL » 12 Fev 2012 20:29

Poderia implementar Modbus sobre RS485.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor rodrigoadachi » 09 Set 2012 09:02

Encontrei uma lib modBUS em uC mas ainda ñ terminei, a lib ñ compila, tem muito bug, achei estranho pois estava acompanhando um forum onde todos estavão compilando.

lib
http://www.libstock.com/projects/view/355/modbus-slave

forum
http://www.mikroe.com/forum/viewtopic.php?f=88&t=49111&sid=4e85a8cf259bf5a2f27fd97cf0f9e7db
rodrigoadachi
Nibble
 
Mensagens: 70
Registrado em: 15 Out 2007 12:19
Localização: Bahia - Brazil

Mensagempor _blackmore_ » 09 Set 2012 15:07

rodrigoadachi

talvez o pessoal do fórum tenha alguma biblioteca que esteja faltando para vc, ou alguma configuração.
Passei por isso algumas vezes com o CCS.
Ouça mais classic rock
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor rodrigoadachi » 09 Set 2012 16:58

Abandonei o CSS, o fabin me recomendou o MikroC dai utilizo ele já a uns dois anos o MikroC Pro for PIC.

Vou quebrar a cabeça um pouco aqui e volto a postar... Valew...
rodrigoadachi
Nibble
 
Mensagens: 70
Registrado em: 15 Out 2007 12:19
Localização: Bahia - Brazil

Mensagempor turuna » 14 Set 2012 21:43

Olha rodrigo, esse embrólio seu pode ser resolvido com rádios zigbee, se vc querer adiantar seu projeto tenho umas plaquinhas já com os rádio+pilhas+protocolo de comunicação, ai é só mandar o que precisar para o endereço xxxx e pronto. Tenho também uma para ligar no PC já com conversor USB integrado. Me mande um e-mail turuna_2@hotmail.com

turuna
turuna
Nibble
 
Mensagens: 97
Registrado em: 10 Mar 2008 12:50


Voltar para PIC

Quem está online

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

cron

x