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