Autor Tópico: Aumentando as RX-TX de um microcontrolador  (Lida 3477 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Aumentando as RX-TX de um microcontrolador
« Online: 08 de Agosto de 2011, 11:15 »
Pessoal, bom dia!

Eu estou com uma dúvida (para variar) referente a multiplex de serial (in e out) com o mesmo baudrate ...
A dúvida é : É possível fazer um mux para serial (2 in e 2 out) para expandir as entradas e saídas do microcontrolador? Caso a resposta seja positiva, o que deve ser levado em consideração para que não ocorram problemas como perda de dados ou baud variável?
Agradeço qualquer ajuda referente ao assunto.
Abraço

Blackmore

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #1 Online: 08 de Agosto de 2011, 18:06 »
Blackmore,

Pessoal, bom dia!

Eu estou com uma dúvida (para variar) referente a multiplex de serial (in e out) com o mesmo baudrate ...
A dúvida é : É possível fazer um mux para serial (2 in e 2 out) para expandir as entradas e saídas do microcontrolador? Caso a resposta seja positiva, o que deve ser levado em consideração para que não ocorram problemas como perda de dados ou baud variável?
Agradeço qualquer ajuda referente ao assunto.
Abraço

Blackmore

Você quer expandir a quantidade de bits de E/S não é? Voce pode usar registradores de deslocamento ou multiplexadores. No caso de registradores de deslocamento (de 8 bits), conforme o teorema de Niquist, para não ocorrer perda de informação, o clock do registrador deve ser maior ou igual a frequência máxima do sinal em qualquer entrada do registrador mutiplicado por 2 x 8.

Por exemplo, se o sinal a ser aplicado num bit do registrador possui 1KHz, o clock do registrador deve ser 2KHz por bit, como são 8 bits, serão necessários 2 x 8 = 16 KHz no mínimo. O mesmo vale para saídas extras usando registradores de deslocamento.
« Última modificação: 08 de Agosto de 2011, 18:08 por minilathe »

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #2 Online: 08 de Agosto de 2011, 19:25 »
Mestre!! boa noite!

Citar
Você quer expandir a quantidade de bits de E/S não é?

acho que podemos pensar desta forma sim, mas o que eu quero é utilizar um uC comum que possua apenas uma serial (RX-TX) entrar com valores vinda de dois locais diferentes ... (RX-TX 1  e RX-TX 2)

Citar
Voce pode usar registradores de deslocamento ou multiplexadores

eu estava pensando em MUX ... CD4051 por exemplo.

Citar
conforme o teorema de Niquist, para não ocorrer perda de informação, o clock do registrador deve ser maior ou igual a frequência máxima do sinal em qualquer entrada do registrador mutiplicado por 2 x 8

 ???

Citar
Por exemplo, se o sinal a ser aplicado num bit do registrador possui 1KHz, o clock do registrador deve ser 2KHz por bit, como são 8 bits, serão necessários 2 x 8 = 16 KHz no mínimo.


mas o valor do baudrate utilizado na serial não entra na conta? eu devo trabalhar com baud em 31.250KHz (+ou- 1%) ... não entendi como posso determinar o valor do clock do registrador para que eu não perca dados caso eu receba dados nas duas portas RX ou TX ao mesmo tempo ...

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #3 Online: 08 de Agosto de 2011, 19:54 »
Blackmore,

acho que podemos pensar desta forma sim, mas o que eu quero é utilizar um uC comum que possua apenas uma serial (RX-TX) entrar com valores vinda de dois locais diferentes ... (RX-TX 1  e RX-TX 2)

Acho que não entendi muito bem a sua aplicação...

Se queres ler duas interfaces seriais usando apenas a interface serial (UART) do uC pode usar RS485, mas vai ler uma interface de cada vez, e teria de usar endereçamento de quadro (camada de enlace), ....

Além disso, uma UART gasta recursos do uC e tempo, sendo uma interface assincrona, usa Start e Stop bits para delimitar cada byte enviado, que podem ser desnecessários se a tua idéia é apenas expandir a capacidade de E/S. Bastando usar a comunicação síncrona (mais rápida e sem bits de overhead).

Citar
conforme o teorema de Niquist, para não ocorrer perda de informação, o clock do registrador deve ser maior ou igual a frequência máxima do sinal em qualquer entrada do registrador mutiplicado por 2 x 8

 ???

Citar
Por exemplo, se o sinal a ser aplicado num bit do registrador possui 1KHz, o clock do registrador deve ser 2KHz por bit, como são 8 bits, serão necessários 2 x 8 = 16 KHz no mínimo.


mas o valor do baudrate utilizado na serial não entra na conta? eu devo trabalhar com baud em 31.250KHz (+ou- 1%) ... não entendi como posso determinar o valor do clock do registrador para que eu não perca dados caso eu receba dados nas duas portas RX ou TX ao mesmo tempo ...

Esquecendo as UARTs e suas taxas padronizadas por um momento.... Há um requisito básico na teoria de processamento de sinais, que é a capacidade do sistema ler a informação de um sinal na frequência necessária. Ou seja, se voce quer captar uma sequência de eventos, do tipo um bit variando no tempo..., cuja frequência máxima de variação seja de 1KHz, a sua taxa de amostragem deverá ser no mínimo 2KHz, ok?

Agora, se voce vai usar uma USART para fazer isso (capturar a sequência de variação do bit ao longo do tempo), a taxa de transmissão deveria ser superior a menor frequência necessária, sendo a variação de 1 bit a 1KHz, uma taxa igual ou superior a 2400 baud (> 2KHz) atende, ok? Mas ainda tem que levar em conta algum "overhead" de tempo para montar o quadro, mandar a UART transmitir, esperar a transmissão terminar,.... Por isso, um registrador de deslocamento com transmissão sincrona poderia ser mais eficaz.
« Última modificação: 08 de Agosto de 2011, 19:56 por minilathe »

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #4 Online: 09 de Agosto de 2011, 20:12 »
Citar
mandar a UART transmitir, esperar a transmissão terminar,.... Por isso, um registrador de deslocamento com transmissão sincrona poderia ser mais eficaz

mestre, obrigado por toda sua atenção até aqui !
mas eu me lembrei que vi em outro lugar um cara que implementou UART por software e UARF física no mesmo prog ... vou procurar isso ver se consigo implementar ... se conseguir, fechô ... dae mostro o resultado.

Offline fh007

  • Novato
  • *
  • Posts: 20
  • Sexo: Masculino
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #5 Online: 02 de Outubro de 2011, 12:52 »
Qual o microcontrolador utilizado? Se o atual tem UART por hardware,use-a e implemente este codigo que foi feito para AVR(Arduino):
http://arduiniana.org/libraries/newsoftserial/

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #6 Online: 03 de Outubro de 2011, 01:08 »
obrigado pela ajuda ... mas a idéia era jsutamente expandir .. ter por exemplo 2 in e 2 out em um microcontrolador ... usart por software e por hardware jah ajuda um bocado ... mas ainda não é o que eu queria ... o projeto esta congelado ... qdo eu voltar com ele eu coloco a solução que utilizei aqui .. ok?
abraço!

Offline Joao Henrique

  • Fuso
  • **
  • Posts: 135
  • Sexo: Masculino
  • GUIA CNC
  • Cidade - UF: Sete Lagoas, MG
  • Nome:: João Henrique
  • Profissão: Instrutor Técnico
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #7 Online: 03 de Outubro de 2011, 03:49 »
Blackmore,
se você trabalha com PIC, alguns da família 18F já possuem esse recurso.
Ex.: 18F26j50, 18F25k80

João Henrique

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re:Aumentando as RX-TX de um microcontrolador
« Resposta #8 Online: 03 de Outubro de 2011, 11:41 »
Joao Henrique

muito obrigado pela ajuda, mas a idéia era utilizar um PIC12 ... ou PC16 dos mais rebas ... com a menor quantidade de pinos possível, entende?
Mas vou considerar a sua resposta.
abrax!

 

/** * */