comunicação inter processadores

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

comunicação inter processadores

Mensagempor marcelo_asm » 30 Jun 2011 09:17

bom dia,

estou trabalhando num sistema que tem um DSP TI processando a parte de controle de tempo real, e estou acrescentando um cortex M3 da TI para prover um canal ethernet para fazer dump de dados e outro M3 para cuidar do acesso a 2 sd card.

A princípio pretendo usar uma rede CAN para trocar dados entre eles com velocidade alta e de de maneira determinística.

Alguém tem alguma outra sugestão para implementar essa comunicação seguindo esses requisitos ?
marcelo_asm
Byte
 
Mensagens: 280
Registrado em: 04 Fev 2009 13:11

Mensagempor mastk » 30 Jun 2011 17:26

Que tal SPI? É simples é consegue transferir ums 10MB/s há 80Mhz, se nada lhe atrapalhar.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor andre_luis » 30 Jun 2011 20:35

Se estiverem na mesma placa e tiver pinos disponíveis, sugiro implementar uma comunicação paralela, usando uma porta inteira para criar um barramento de dados/endereços ( com poucas instruçoes resolve o problema ).

+++
"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 Red Neck Guy » 30 Jun 2011 21:03

Eu já fiz isso, e fiz assim: A primeira placa que precisei disso, era equipada com 9 MSPs, fiz a ligação através da UART. Depois fiz mais outros projetos com MCUs diversos, e também fiz utilizando a UART.
Hoje tenho uma placa com 1 LPC1768 e alguns AC32, nesse caso como eu utilizo a UART para comunicação externa, eu fiz a ligação via SPI. Ficou bom.
Eu criei um protocolo bem simples que roda ali, mas tu pode incrementar mais se precisar pq banda tem.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: comunicação inter processadores

Mensagempor Silvio51 » 30 Jun 2011 22:08

marcelo_asm escreveu:bom dia,

estou trabalhando num sistema que tem um DSP TI processando a parte de controle de tempo real, e estou acrescentando um cortex M3 da TI para prover um canal ethernet para fazer dump de dados e outro M3 para cuidar do acesso a 2 sd card.

A princípio pretendo usar uma rede CAN para trocar dados entre eles com velocidade alta e de de maneira determinística.

Alguém tem alguma outra sugestão para implementar essa comunicação seguindo esses requisitos ?


Eu concordo com o Mastk e com o Aquino... SPI é uma ótima opção, porém não achas que tem CI demais não ? Com apenas um Cortex você mata a ethernet e os SD...
Silvio51
Byte
 
Mensagens: 383
Registrado em: 02 Nov 2006 14:04
Localização: Brasil

Mensagempor andre_luis » 30 Jun 2011 22:45

mastk escreveu:Que tal SPI? É simples é consegue transferir ums 10MB/s há 80Mhz, se nada lhe atrapalhar.


Os microcontroladores costumam ter módulos de SPI em hardware que implementam somente no modo Master, não Slave.

+++
"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 Red Neck Guy » 01 Jul 2011 07:50

Olha, esses que citei tem ambos os modos.
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: comunicação inter processadores

Mensagempor luisf.rossi » 01 Jul 2011 08:32

marcelo_asm escreveu:bom dia,

estou trabalhando num sistema que tem um DSP TI processando a parte de controle de tempo real, e estou acrescentando um cortex M3 da TI para prover um canal ethernet para fazer dump de dados e outro M3 para cuidar do acesso a 2 sd card.

A princípio pretendo usar uma rede CAN para trocar dados entre eles com velocidade alta e de de maneira determinística.

Alguém tem alguma outra sugestão para implementar essa comunicação seguindo esses requisitos ?


Como ja comentaram, dependendo da quantidade de dados que estamos falando, provavelmente um FPGA ja da para o gasto. Mas focando apenas no seu problema.. não use CAN para troca de grande quantidade de dados.. CAN é fantástico, mas apenas para controle, para troca de dados a banda dele é muito baixa, e a estrutura de troca de pacote muito pouco eficiente. Qual DSP você está usando e quais cortex. De modo geral, as duas soluções apresentadas são muito boas. Com interface paralela, provavelemnte você tera que fazer toda transmissão usando instruções, porém tera uma taxa de transmissão maior Com SPI provavelmente você pode usar DMA, e livrar o seu processador. Porem o que o mastk comentou está errado. Em um Cortex-M3 você não consegue colocar a SPI na mesma velocidade do processador. ARMs de modo geram são muito bons, mas para lidar com esse tipo de periférico eles apanham e feio de outras plataformas. Acredito que a máxima velocidade que você consegue na sua SPI é 1/4 da velocidade do processador. Dependendo de como foi implementado, no modo Slave até menos. Com a interface paralela, acredito que voce não consiga chavear seus pinos a mais que 12Mhz, mas usando uma porta de 8 bits vc consegue 96Mbps... Provavelmente na SPI você vai ter uns 18-20Mhz no máximo (mas olhe bem as erratas, a maioria delas aparecem em condições extremas). Se o seu DSP tiver interface à memorias externas e você quiser colocar a coisa bem no limite, acho que o mais eficiente seria você conecta-lo à um FPGA,
E usa-lo como um cntrolador de DMA.


Abs
luisf.rossi
Byte
 
Mensagens: 109
Registrado em: 28 Nov 2010 12:48
Localização: São Paulo, SP

Mensagempor marcelo_asm » 01 Jul 2011 13:00

o mais crítico é o CM3 que vai implementar a porta ethernet, esse canal vai fazer dump de dados (16 valores de 16 bits + 64 bits de status) para um computador. Inicialmente @ 2.5ms e se possível @ 1ms. Essa é uma ferramenta muito importante para o sistema, por isso estou considerando que fique um micro apenas para isso.

O DSP que estou usando é um 28335 da TI, faz todo o processamento de tempo real, não quero gastar recursos dele com outras coisas que não sejam as implementações dos algoritmos de controle.

Talvez SPI resolva, vou pensar em como organizar as coisas. O SPI do 28335 pode rodar a no máximo 24MHz, o que já me atende bem.

Obrigado a todos.
marcelo_asm
Byte
 
Mensagens: 280
Registrado em: 04 Fev 2009 13:11


Voltar para Circuitos Diversos

Quem está online

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

x