Recebimento de dados seriais no PIC

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Recebimento de dados seriais no PIC

Mensagempor lpagano » 01 Set 2008 06:37

Pessoal,

Seguinte, quero fazer um protocolo simples unidirecional só usando 0 e +5Vcc (sem ser os RS da vida) para enviar num PIC e depois ser decodificado. Por exemplo: mandar para um único pino do PIC vários bits de informações, bit a bit serial, tipo uma máquina de aquisição de dados. A partir daí o uC decodifica isso, aciona um led, etc, etc. O esquema seria aquele mais simples: mandar 8 bits seriais e um bit de sicronismo.

O meu problema é como estruturar a programação para esse tipo de hardware, já que estou tendo dificuldades no início.

Não estou querendo dicas de programação ou exemplos prontos, mas se puderem me dizer a estrutura que deve ser seguida na programação, já seria um bom começo para mim.

O que pensei de início foi fazer uma programação tipo PLCs, que ficam constantemente fazendo uma varredura em todas as entradas da CPU para ver se chega algum dado.

Não sei se deu para entender.


Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor xultz » 01 Set 2008 08:37

Eu não entendi se você já projetou a camada de hardware ou não, e não entendi que distância você quer cobrir com tua linha, eu sugeriria dar uma olhada no protocolo LIN, ele foi desenhado pensando em usar linhas de 12V, mas você pode operar com 5V (apesar que se a tensão de entrada do teu circuito for algo diferente de 5V, seria interessante usar esta tensão). Procure no site da Microchip por app note de LIN, tem apresentação em Powerpoint do protocolo, exemplos de circuito e de firmware para implementar o bichano.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor phophollety » 01 Set 2008 20:06

Baseie-se no protocolo One Wire, é um ótimo começo (pode tirar algumas frescuras deles)

Mas eu, se fosse para fazer, faria serial mesmo.. nem que fosse na unha, funciona bem, sabe-se as limitações e você conhece..

Para que ficar inventando a roda se vai ser unidirecional mesmo!?
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor lpagano » 01 Set 2008 22:17

Phophollety e xultz,

Pelo jeito acho que vocês entenderam o que eu queria. Obrigado!
Portanto vou ver esses dois protocolos (LIN e OneWire) e dar uma estudada.
Ainda não fiz nada de hardware, só mesmo pensei em fazer alguma coisa.
A distância para a comunicação não seria maior do que uns 10 metros.

Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Djalma Toledo Rodrigues » 01 Set 2008 22:30

Start Stop é a mais simples (e antiga) solução

A linha fica no nível alto

O que transmite :
Start / Byte / Stop

O que recebe
Na transição para nível baixo presume que é o Start bit , no meio desse pulso é feita nova verificação (as vezes duas) que confirma é realmente o Start bit
Apartir dai os 8 bits de dados são verificados tmb no meio do pulso de cada um
Após os dados vem o Stop bit , verificado também no meio do pulso, com duração em dobro ( pode durar 1 ou 11/2 ) no caso doblo é mais recomendado . Este Stop bit não tem limite de tempo, pode e deve ficar indefinidamente em nível alto até uma nova mensagem.

Assim
------__-......................----
........S¹........Byte.........S²

S¹ Start bit
S² Stop bit

Este é o sistema da UART. Ver 8251 da Intel

P. S. : O que recebe sabe o tempo de duração dos pulsos.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor lpagano » 03 Set 2008 04:23

Djalma,

Achei interessante essa UART, não conhecia a fundo.
Também pensei em criar o meu próprio protocolo nesse mesmo esquema, mas antes vou ver esses UART, LIN e 1-WIRE para depois verificar se compensa fazer o meu próprio, "made by lpagano".

Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor phophollety » 03 Set 2008 08:07

lpagano escreveu:Djalma,

Achei interessante essa UART, não conhecia a fundo.
Também pensei em criar o meu próprio protocolo nesse mesmo esquema, mas antes vou ver esses UART, LIN e 1-WIRE para depois verificar se compensa fazer o meu próprio, "made by lpagano".

Valeu!


Eu iria certo que não vale, tem todos esses protocolos relativamente simples muito usados já, alguns até com rotinas por SW em C e ASM perdidas por ai...

Eu iria de OneWire, assim pode ter a flexibilidade de usar qualquer IO (um com interrupção de mudança de estado ou de borda será melhor) sem ter que depender de módulo podendo assim usar um pic low end se for necessário...
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor Djalma Toledo Rodrigues » 03 Set 2008 09:49

phophollety escreveu:Eu iria certo que não vale, tem todos esses protocolos relativamente simples muito usados já, alguns até com rotinas por SW em C e ASM perdidas por ai...podendo assim usar um pic low end se for necessário...


A UART / USART é o principio de todos. Veja o 485 é a UART com linhas simétricas. Ela é tão low end, mais tão low end que é o sistema das Teleimpressoras mecânicas as famosas Lorens Alemã ou Teletype USA, com Código Baudot de 5 bits. Depois dessas máquinas veio os Telex.

-------------------------------------------------------------------------------------

:idea: Uma curiosidade:
Durante teste essas teleimpressoras enviavam as letras RYRYRYRYRY
a combinação dos códigos dessas letras é uma onda quadrada que servia para ajustar a velocidade das máquinas ou o Bias dos Equipamentos Eletrônicos .

Pessoal antigo cabeças ! Esse código foi inventado em 1871. Consulte o Google.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor lpagano » 04 Set 2008 06:44

Realmente esse protocolo UART é mais simples do que qualquer outra coisa.

Agora o interessante é que esse código foi inventado em 1871!!!!!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Djalma Toledo Rodrigues » 04 Set 2008 12:36

Pois é, muito antes da eletrônica "nascer" :D :D :D

A verificação no centro do pulso faz o sistema seguro mesmo que a velocidade de TX Rx não seja exatamente igual.
Como ele se sincroniza a cada Start não acumula desvio e
Ainda que os pulsos sofram deformação, devido ao meio ( Cabos, RF etc.) e se transformem até em trapezoidal /¨¨¨\ continua funcionado.

Abraço e bom start/stop
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor lpagano » 05 Set 2008 00:35

Djalma,

Pelo jeito você é doutor no assunto!!!
Mas esses detalhes são realmente ajudam muito.

Valeu!
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Djalma Toledo Rodrigues » 07 Set 2008 20:48

A tempo:
:idea: Se vc usar velocidade compatível com a Porta Serial do PC (pode configurar diversas velocidades no PC) Poderá se comunicar através da porta Serial do PC com seu PIC, desde este possua um CI chamado Max232 para compatibilizar nível de tensão do PC.
Isto facilita monitorar o PIC.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor Renie » 08 Set 2008 00:53

Olá Ipagano,

Você já viu meu Remoto Serial?

Tá lá no meu site
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor lpagano » 08 Set 2008 01:24

Renie,

Qual é o site?
lpagano
Byte
 
Mensagens: 393
Registrado em: 06 Nov 2006 14:23

Mensagempor Djalma Toledo Rodrigues » 08 Set 2008 02:05

Renie aí na sua foto esse a direita é "você amanhã" ? Ki koisa tétrica.
:cry: :cry: :cry:

Agora sério. Agente ta aqui, mas, o coveiro já pode estar cavando a nossa.

Outro dia li aqui "Morrer é igual a nascer, só que ao contrário.

Vou experimetar. Se a cabeça passar ... "Adeus Mundo Imundo!"
:D :D :D
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Próximo

Voltar para PIC

Quem está online

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

cron

x