Fui designado para um projeto para encontrar a melhor comunicação possível entre várias placas de circuito impresso que possuem microcontroladores para uma função específica. Eu preciso que todos os microcontroladores se comuniquem com a placa principal que contém uma CPU.
Preciso enviar algumas informações da placa principal para os controladores e receber uma resposta dos controladores. Cada placa controladora é projetada para uma finalidade específica. Não preciso me comunicar entre os microcontroladores, mas mesmo se um microcontrolador falhar na comunicação, isso não afetará os outros. Atualmente, preciso ter seis microcontroladores se comunicando, mas no futuro mais do que isso. Quero evitar mais conexões com fio entre a placa principal e os outros controladores (deve ser menor).
A comunicação não deve ser afetada pela temperatura (120 ° C) e pressão (alta). A distância entre a placa principal e o controlador final pode ser superior a um metro. Que tipo de controladores são melhores? Preciso realizar alguns cálculos e leituras do sensor. Cada placa possui mais de dois sensores. Preciso executar alguns cálculos nas leituras do sensor ou enviar valores diretamente.
Eu sou novo neste tipo de projeto. Procurei a melhor comunicação, mas estou confuso quanto à melhor. Algumas pessoas estão sugerindo que eu use a comunicação CAN. Se eu escolher a comunicação CAN, que tipo de microcontroladores é melhor? Anexei um diagrama simples como ele será, conforme mostrado abaixo.
fonte
Respostas:
Se você escolher CAN, o "melhor" micro é aquele com o CAN embutido (muitos têm isso, o Coldfire MCF5225x é um exemplo).
I2C ou RS485 / RS422 também são boas escolhas, dependendo das características elétricas da situação (distância, ruído, potência). O restante se resume ao protocolo que você usa para se comunicar - como lidar com mensagens, controlar o fluxo, evitar colisões.
Desejo-lhe boa sorte em encontrar um micro que funcione a 180c, as especificações automotivas atingem os 125c e acho que nem as especificações militares melhoram drasticamente nisso.
Você precisa começar com a camada 1 (elétrica) para descobrir o que a interface física deve fazer; depois disso, é principalmente um problema de software sobre como você fala. Atualmente, a Ethernet pode até ser uma opção viável se os micros tiverem espaço para executar um sistema operacional modesto.
fonte
Você pode dar uma olhada em http://www.keil.com/dd/chip/3648.htm LPC 2129 ARM7TDMI-S com suporte CAN. Isso pode ajudar se você consertar sua interface como CAN. Você também pode ter conectores e cabos industriais ou MIL devido a sua restrição de temperatura. Confira fornecedores como cabos Radiant, conectividade TE, Amphenol, Allied Connectors que fabricam coisas destinadas a ambientes de alta temperatura. Além disso, você pode conferir alguns materiais resistentes ao calor, como o teflon, que ajudam a proteger a interface de comunicação.
fonte
Para CAN (e eu recomendo fortemente o CAN para sua configuração), recomendo o LPC11C24 , um ARM Cortex-M0. Eu acho que é o único que já possui o transceptor incorporado, portanto não há necessidade de um chip extra para implementar a camada física (como é habitual nos demais microcontroladores CAN). Ele também possui algumas bibliotecas C agradáveis e fáceis de usar, incorporadas na ROM para o padrão CAN e CANOpen.
fonte
A família Freescale S08D ou alguns Kinetis baratos possuem CAN e suporte a 125ºC. No entanto, os valores mais altos de temperatura são obtidos apenas com chips valiosos no Freescale (fonte: pesquisa paramétrica). Experimente a Pesquisa paramétrica de todos os sites!
fonte
O CAN é bastante complicado na implementação em software.
Por que não usar o RS-485, que também é padrão industrial? Existem muitos transceptores RS-485 com suporte de temperatura de 125'C.
fonte