Wybór warstwy sieci za pośrednictwem magistrali CAN

10

Planuję używać magistrali CAN w aplikacjach automatyki przemysłowej, ale trudno mi zdecydować, jak wdrożyć warstwę sieciową. Czy ktoś tu ma jakieś zalecenia dotyczące protokołu wyższej warstwy w stosunku do CAN, który zawiera wytyczne dotyczące przypisywania identyfikatorów wiadomości i formatowania pakietów danych? Czy powinienem opracować własną, zastrzeżoną warstwę sieciową, czy wdrożyć istniejący standard, taki jak CANopen?

mjh2007
źródło

Odpowiedzi:

7

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.

J. Polfer
źródło
Książka mówi o implementacji CANopen o nazwie MicroCANopen. Jakiej implementacji CANopen używasz?
mjh2007
1
@ mjh2007 - opracowaliśmy własny, ponieważ musiał być używany w połączeniu z innym protokołem.
J. Polfer
„CANOpen” -> „CANopen”
Peter Mortensen
7

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.

Brad Hein
źródło
7
istnieje OpenCAN oraz CANOpen? Aha! okropne nazewnictwo.
Jason S
1
@Jason, obwiniam Microsoft.
Kortuk
5

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ć.

Kortuk
źródło
1
Właściwie używam Microchip, więc to jest bardzo pomocne. Dzięki!
mjh2007
1
To wszystko na pic18. Wydaje się, że z CANopen masz master, który modyfikuje ustawienia w innych, w większości przypadków, w których moje użycie Canbus obejmuje, idealnie pasuje.
Kortuk
Czy korzystasz z biblioteki Microchip do implementacji CANopen?
mjh2007
1
W trakcie jego wdrażania jest to proces powolny, ponieważ wymaga wielu różnych osób, aby zobowiązać się do zmiany systemu. Zaktualizuję cię, gdy zostanie wdrożony, jeśli to pomoże.
Kortuk
1
@ mjh2007, przestałem pracować dla procesora i studenci przejmujący zdecydowali, że wielu z nich wcześniej nie korzystało z poprzedniego sprzętu i kupowało coś, z czym byli bardziej komfortowi. Po raz kolejny nie ma postępu w tym projekcie profesorów, ale dzieje się tak, gdy profesor nie wie, co się dzieje, i pozwala ludziom zmieniać wszystko raz w roku.
Kortuk