Na pewno będziesz chciał wybrać standardową warstwę sieciową. Widziałem niektóre przypadki, w których ludzie opracowali własne, i często protokół jest nieefektywny, a na koniec strata czasu. Sprawdzona warstwa sieciowa zapewnia podstawową funkcjonalność pozwalającą rozwiązać większość problemów, które prawdopodobnie napotkasz podczas pracy w sieci z urządzeniem osadzonym, i że w końcu zaoszczędzisz cenny czas i pieniądze.
Znam CANopen, dlatego przedstawię tu trochę wyjaśnienia, które mogą pomóc ci zdecydować, czy tak właśnie chcesz. Jeśli to nie pasuje do tego, co musisz zrobić, spojrzałbym na coś innego.
CANopen jest bardzo skoncentrowany na danych. Wszystkie węzły podrzędne CANopen (rzeczy, które kontrolujesz z węzła głównego, takie jak czujniki lub sterowniki silników) zapewniają słownik, który zawiera wszystkie dane konfiguracyjne, kontrolne i gromadzące dane, których potrzebujesz do odczytu / zapisu, aby wykonać zadanie. Następnie można odczytywać / zapisywać te obiekty indywidualnie za pomocą mechanizmu SDO (obiekt danych usług) lub okresowo odczytywać / zapisywać te obiekty w czasowych transmisjach komunikatów CAN za pośrednictwem mechanizmu PDO (obiekt danych producenta). Uruchamianie, zamykanie i resetowanie oraz wykrywanie bicia serca / awarii węzła są dostarczane przez usługi NMT, a także usługę przypisywania identyfikatora węzła (jeśli chcesz z niego skorzystać). Aby zaimplementować urządzenie za pomocą wbudowanej biblioteki CANOpen, wystarczy skonfigurować słownik obiektów, skonfigurować PDO do okresowego wysyłania / odbierania aktualizacji danych, i napisz kod użytkownika, który zachowuje się na podstawie tych danych. Istnieją inne rzeczy, które zapewnia CANopen, ale to w większości. Przeczytaj tę książkę, aby uzyskać więcej informacji.
Piszę kod, aby uzyskać dostęp do magistrali CAN w samochodach GM, które używają głównie zastrzeżonej warstwy sieci. Czy zajrzałeś do OpenCAN? Wybrałbym otwarty standard, taki jak CANOpen, a nawet OpenCAN. To naprawdę zależy od poziomu kontroli i elastyczności, jakiej potrzebujesz w swoim środowisku automatyzacji.
źródło
Były świetne odpowiedzi. Nie wiem, jakiej mikro używasz, ale tutaj są linki do niektórych informacji z mikroczipa.
Biblioteka J1939
Oprogramowanie DeviceNet ™ Group 2 Slave Firmware dla PIC18 z CAN
Mogę otworzyć
Każdy z nich ma kod i podstawowy arkusz danych informujący o tym, czego potrzebujesz, aby je wdrożyć.
źródło