RS232, SPI, I2C ou outra?

421 views
Skip to first unread message

Prof. Alessandro Cunha

unread,
Feb 10, 2013, 2:15:25 PM2/10/13
to afc...@yahoo.com

Pessoal, boa tarde.

 

Um aluno me mandou a seguinte pergunta:

 

Qual o melhor padrão para comunicação serial entre microcontroladores?

 

RS232, SPI, I2C, outra?

 

Vejam este comparativo:

 

http://www.embedded.com/design/embedded/4023975/Serial-Protocols-Compared

 

Algo mais que eu deva acrescentar?

 

Abraços.

 

Alessandro Ferreira da Cunha
TECHtraininG - ENGENHARIA E TREINAMENTOS
aless...@techtraining.eng.br
MSN --> afcu...@gmail.com
SKYPE --> alessandroferreiradacunha
twitter --> @prof_afcunha
(11) 995–363-828
www.techtraining.eng.br

 

kruk

unread,
Feb 10, 2013, 3:33:29 PM2/10/13
to sis_emb...@googlegroups.com
Oi Alessandro,

A comunicacao entre controladores pode demandar priorizacao de
mensagens, principalmente numa situacao com mais de 2 nós. Por exemplo,
imagine num carro, se um nós controla a lampada do pisca-pisca, e
outro, controla a injecao de ar na mistura de combustivel. Obviamente,
qualquer mensagem da lampada DEVE ter menor prioridade do que da
mistura de combustivel e sensores envolvidos.

Se a comunicacao entre os nós fosse LAN, poderia haver "conflito" de
mensagens, e ninguem transmitiria, e ninguem receberia. Isso poderia
comprometer a seguranca da aplicacao. Quando o DETERMINISMO eh
importante, convem pensar na CAN.

http://www.barrgroup.com/Embedded-Systems/How-To/CAN-vs-SPI

Sds,
Kruk


================================
Am Sun, 10 Feb 2013 17:15:25 -0200
schrieb "Prof. Alessandro Cunha" <afcu...@gmail.com>:
--
== Registered Linux User #506425 at linuxcounter.net ==

"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Führer" - Adolf Hitler

"Support bacteria - they're the only culture some people have." -
unknown


Everly & Hugo

unread,
Feb 27, 2013, 3:54:15 PM2/27/13
to sis_emb...@googlegroups.com
Olá Kruk,

CAN também é baseado em detecção de colisões semelhantemente a LAN. É bom para
uma topologia multi-nódulo mas a carga na malha não é 'predizível' (predictable).

Existem entretanto variações de CAN dedicados a aplicações críticas que proporcionam 'predictability',
veja por exemplo:

http://en.wikipedia.org/wiki/CANaerospace

ou

http://en.wikipedia.org/wiki/ARINC_825

Até,
Hugo Sobreira



--
Você está recebendo esta mensagem porque se inscreveu no grupo "sis_embarcados" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para sis_embarcado...@googlegroups.com.
Para postar neste grupo, envie um e-mail para sis_emb...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/sis_embarcados?hl=pt-BR.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



Luis Filipe Rossi

unread,
Feb 27, 2013, 8:27:26 PM2/27/13
to sis_emb...@googlegroups.com
Hugo, 

Explique melhor seu comentário...CAN é apenas layer físico e datalink.. não tem camadas acima. CANaerospace não é uma variação de CAN.. ele usa CAN como layer físico e de datalink. E CAN tem colisão sem perda de dados, levando á uma comunicação determinística. Você consegue calcular a latência máxima para todas as mensagens na rede baseado na prioridade delas.

Abraços 

2013/2/27 Everly & Hugo <herrso...@gmail.com>



--
Luís Filipe Rossi
Electrical Engineer
Biomechatronics Lab. / Grupo de Sensores Integráveis e Sistemas
Escola Politécnica
Universidade de São Paulo

Everly & Hugo

unread,
Feb 28, 2013, 6:26:11 PM2/28/13
to sis_emb...@googlegroups.com
Olá,

Já vai um tempo que trabalhei com CAN, e foi com o protocolo J1939 ao invés de CANaerospace. Tanto um como outro são popularmente chamados de protocolos CAN, portanto não vejo nenhum problema com a terminologia. Perdoe-me se o termo que uso não faz sentido pra você, linguagem humana não é uma ciência exata.

De qualquer forma o problema está na camada de datalink. Se o acesso ao bus é arbitrário, como pode ser determinístico? Colocando a questão de outra forma: se existe um 'bad node' na rede CAN que tenta acessar o barramento continuamente, como é possível garantir entrega de um pacote? Conseguir definir a latência máxima não significa que o barramento é determinístico (no tempo). Determinismo temporal é mesmo que dizer que é possível determinar exatamente o momento em que um pacote será transmitido/recebido, e que este padrão pode ser sempre reproduzido.

Ou talvez você tenha uma definição diferente de determinismo?

Você chegou a ler o link sobre CANaerospace que eu passei? Veja um trecho:

"An essential characteristic of all flight safety critical systems is that their behavior has to be precisely defined, analyzed and tested to meet formal certification requirements. This characteristic is often misinterpreted as timing determinism but is in fact predictability. The degree of precision required for timing is specific to each application and has to be quantified by system analysis. The ultimate target to be reached, however, is that it may be demonstrated to certification authorities (i.e. FAA, EASA) that a safety critical system behaves predictably under foreseeable circumstances. Using CANaerospace, this predictability may be achieved. CANaerospace sets forth a concept of managing the available bandwidth of a multi-drop CAN network to ensure predictable behavior for ATM and PTP communication which is called Time Triggered Bus Scheduling."

Hope it helps,
Hugo
Reply all
Reply to author
Forward
0 new messages