Gerçekten bir "genel" protokol yoktur, ne kullanmak sonunda uygulama bağlıdır. Size daha iyi bir cevap verebilmemiz için ihtiyaçlarınızı biraz daha iyi anlamamız gerekiyor. Birbirinizle alt sistemler olarak konuşan ayrı mikro denetleyicilerin olmasını istediğinizi belirtiyorsunuz.
Bu uygulama hakkında bazı sorular:
- Bu projede 2'den fazla mikro denetleyici olacak mı?
- Hız ve verimlilik gereksinimleriniz nelerdir? Bilgilerin oraya ne kadar hızlı ulaşması gerekir ve ne sıklıkla veri gönderip alırsınız?
1. soruya HAYIR yanıtı verdiyseniz:
Bu projede sadece 2 micrco-kontrolör varsa, aralarında kesinlikle UART kullanabilirsiniz. Her ikisinin de iletişimi başlatması gerekiyorsa, akış kontrolünü kullanın, aksi takdirde verileri bir yönde göndermek önemsiz olmalıdır. Daha yüksek baud hızlarından birini seçtiğinizde, çoğunlukla "yeterince hızlı" olmalıdır. I2C ve SPI tipik olarak sadece master / slave mimarisi için iyidir.
1. soruya EVET (2'den fazla denetleyici) yanıtı verdiyseniz:
- Projenizde 2'den fazla mikro denetleyici varsa hangisi iletişimi başlatır? Sadece bir ana denetleyici mi olacak (yani master-slave mimarisi)? Veya herhangi bir alt sistem herhangi bir zamanda konuşabilir mi?
- Alt sistemlerden herhangi birinin birbiriyle konuşmasına ihtiyaç var mı? örneğin: A, B ve C cihazları için: A B ve C'ye gönderebilir ve B hem A hem de C'ye gönderebilir, vb.
Artık adreslenebilir cihazları ortak bir veriyoluna bırakabileceğiniz daha ölçeklenebilir bir şeye ihtiyacınız var. Bu takip sorularının cevabı I2C ve SPI (master-slave) veya CAN (multi-master) gibi bir şey arasında karar vermenize yardımcı olacaktır.
Mikro denetleyicinizde büyük olasılıkla bir UART çevre birimi vardır, diğerleri (özellikle CAN) yalnızca daha yüksek uç yongalarında kullanılabilir. Her iki durumda da, baytları taşımak için bu çevre birimlerinin nasıl kullanılacağına dair çok sayıda belge olmalıdır.