N 마이크로 컨트롤러 (N> = 2 MCU)로 구성된 시스템 구현을 시작하고 싶지만 서로 통신 할 수있는 가능성을 알고 싶습니다.
이상적으로, (N-1) 마이크로 컨트롤러는 집안의 클라이언트 역할을하는 반면, 마지막 ( "서버") 마이크로 컨트롤러는 USB를 통해 PC에 연결됩니다. 지금 당장 문제는이 (N-1) 마이크로 컨트롤러를 "서버"에 연결하는 방법입니다. 클라이언트 MCU는 매우 간단한 작업을 수행하므로 CAN / PHY-MAC를 제공하기 때문에 ARM을 사용하여 이러한 간단한 작업을 수행하는 것은 좋은 솔루션이 아닙니다 .
통신은 대부분의 장치에 대해 몇 분마다 한 번 이상 일어나지 않으며 다른 장치에 대해서는 요청시 발생하지 않습니다. 속도는 그다지 중요하지 않습니다 (메시지가 짧음) : 1 Mbit / s 나는 내 목적에 너무 과도하다고 생각합니다.
내가 사용하려는 MCU는 다음과 같습니다.
- Atmel AVR Tiny / Mega
- TI MSP430
- 팔 외피 M3 / M4
- (아마 Atmel AVR UC3-32 비트)
PIC 를 프로그래밍 할 가능성이 적기 때문에 가능한 한 (개인 선택) PIC 를 피하고 싶습니다 (위의 모든 것은 공식 도구뿐만 아니라 오픈 소스 도구가 많거나 적습니다).
일부 ARM은 CAN 기능을 제공하지만 다른 ARM은 확실하지 않습니다.
지금 나는 이러한 가능성을 생각해 냈습니다.
- 데이터를 전송하는 간단한 GPIO (메시지 시작을 나타내려면 16 비트 이상> 메시지의 끝을 나타내려면 16 비트 이상) 그러나 모든 비트를 감지하려면 표준 주파수 << (frequency_client, frequency_server)에 있어야합니다. 클라이언트 MCU 당 하나의 케이블 만 필요합니다.
- RS-232 : 나는 이것이 가장 널리 사용되는 통신 프로토콜이라고 생각하지만 그것이 얼마나 잘 확장되는지 모르겠습니다. 현재 최대 64 개의 클라이언트 MCU를 고려하고 있습니다 (아마도 나중에)
- USB : AFAIK 이것은 주로 RS-232와 비슷하지만이 경우에는 잘 확장되지 않는다고 생각합니다 (USB는 많은 장치를 지원하지만-255를 올바르게 기억하면이 응용 프로그램에는 너무 복잡 할 수 있습니다)
- RJ45 / 이더넷 : 문제없이 장거리 전송이 가능하기 때문에 (실제로는 차폐> Cat 6 케이블 사용시) 실제로 사용하고 싶습니다 . 문제는 비용 (PHY, MAC, 변압기 등)입니다. 그래도 실제로 집에서 잘 납땜 할 수 있는지 모르겠습니다. 이렇게하면 클라이언트 MCU가 필요하지 않습니다.
- Wireless / ZigBee : 책상 뒤에 "스파게티"를 피하기 위해 갈 수있는 방법 일지 모르지만 모듈은 매우 비쌉니다.
- RF 모듈 / 트랜시버 : 300 MHz-1 GHz 대역의 제품을 말하고 있으므로 집에서 납땜하기가 어려워 야합니다. 이 모듈은 모두 내장되어 있지만 ZigBee만큼 비싸다 (Sparkfun, Sparkfun의 RF 모듈은 더 싼 것 같다).
- 할 수있다? 매우 강력 해 보입니다. 자동차 애플리케이션에 사용하지 않더라도 여전히 좋은 대안이 될 수 있습니다.
- I²C / SPI / UART ? 다시 말하지만 가능하면 케이블로 "스파게티"를 피하는 것이 좋습니다.
- PLC 는 실제로 옵션이 아닙니다. 길이가 길어지면 전력 네트워크의 커패시턴스 부하에 따라 성능이 매우 빠르게 저하됩니다. 가격은 이더넷과 거의 같다고 생각합니다.
또한, 동시 전송의 경우 어떤 프로토콜이 "더 나은"상태가됩니까 (두 개의 장치가 동일한 순간에 전송을 시작하는 경우는 거의 없습니다 : 어떤 프로토콜이 가장 "충돌 관리 시스템"/ "충돌 관리 시스템"을 제공합니까?
요약 : 유연성 (최대 장치 수, 충돌 / 충돌 관리 시스템 등), 가격을 모두 고려하여 매우 가벼운 데이터 통신을 수행하는 분산 클라이언트 시스템에 가장 적합한 솔루션이 무엇인지 듣고 싶습니다. , 집에서 쉽게 만들 수 있습니다 (납품) ... 통신 모듈에 20 달러를 쓰지 않으려 고하지만 동시에 책상 뒤에 30 개의 전선이 있으면 빠질 것입니다.
지금 당장 이미징하고있는 솔루션은 GPIO 또는 RS-232를 통해 가까운 MCU 사이에서 기본적인 통신을 수행하고 ( 존속 !) "영역"당 하나의 MCU에서 이더넷 / 지그비 / Wi-Fi를 사용하여 서버와 통신하는 것입니다 ( 비용이 많이 듭니다) 하지만 각 클라이언트 MCU 당 하나의 이더넷 모듈보다 훨씬 저렴합니다.)
케이블 대신 광섬유 / 광섬유를 사용하는 것이 가능할 수도 있습니다. 추가 변환이 필요하지만이 경우 가장 적합한 솔루션인지 확실하지 않습니다. 더 자세한 내용을 듣고 싶습니다.