Volba sběrnice pro modulární systém

RS485 je dobrá voľba. Full duplex si neviem zmysluplne predstaviť. Ak by cez jeden kanál mohli teoreticky naraz vysielať do mastra všetky Slave, musel by si ešte robiť špeci arbiter aby si vôbec niečo štatisticky prijal ak by viaceré naraz cheli niečo vysielať.

Výhoda RS485 je vysoká odolnosť a veľmi nízka cena budiča.

Sieť typu Master-Slave je na malú PLC ako stvorená. Arbiter zbernice je dostatočne použiteľný. Token Ring je zas zbytočne komplikovaný.

Zabezpečenie správy s paritou a CRC na konci správy.

Ak nemusíš, nevymýšľaj vlastný protokol. Použi MODBUS. Je dostatočne jednoduchý a nájdeš naň veľa príkladov či aj SCADA systémov, ktoré zväčša MODBUS podporujú. Dokumentácia je zdarma na nete.

Pre zmysluplnú prácu vôbec nie je potrebné implementovať všetko čo norma vyžaduje. Stačia Ti príkazy na zápis čísel a na načítanie čísel. Je Tvoja vec, ako s číslom naložíš. Či si ho v stanici rozložíš na bity alebo ho použiješ ako číslo. Jedinú značnú nevýhodu MODBUSu vidím v použití prenosu čísel ako Big Endian. To značne komplikuje prenos viac bajtových čísel.

Aj prenos správy cez zbernicu I2C alebo SPI samozrejme zabezpečenie môže mať. To závisí od zvoleného protokolu. Nikde nie je napísané, že sa musí cez I2C komunikovať tým pračudensým protokolom pre komunikáciu s EEPROM.

Ak sa na prenos cez I2C alebo SPI posavíš ako k prenosu množiny bajtov, nič Ti nebráni na konci zaradiť CHS alebo CRC a správu mať chránenú.

Ak je na jednej I2C okrem iných procesorov aj nejaká tá EEPROM, FRAM, či RTC, potom stačí v medziprocesorovom protokole použiť na prvom mieste bajt na ktorý bezpečne EEPROM a spol nebudú reagovať a je to vybavené.

I2C má obrovskú výhodu:

  • na komunikáciu stačia dva vodiče

  • protokol má na hw úrovni vyriešenú arbitráž a preto ak je napríklad na doske RTC obvod, môžu cez jedinú zbernicu k nemu pristupovať viaceré procesory.

  • protokol je zároveň synchrónny. To znamená, že nezáleží na presnom časovaní Mastra. I2C sa dá preto s úspechom implementovať softérovo.

Obdobne ako 1-wire.