Co zastosowanie niezbyt samochodowe, ale technologia typowo kojarzona z samochodową i elektroniką, a więc wydaje mi się, że to najbardziej odpowiednie miejsce na zadanie tego pytania.
Od pewnego czasu bawię się z magistralą CAN. Z paru różnych względów chciałbym ją zastosować w prostym systemie automatyki domowej. Wiadomo - spora odporność na błędy transmisji, multimaster, sprzętowe wykrywanie kolizji, przyzwoita prędkość, nieskomplikowana infrastruktura (brak dodatkowych elementów jak to ma miejsce w przypadku np. Ethernetu).
Niestety główną wadą jest jak dla mnie ograniczenie długości ramki do 8 bajtów. Tak, wiem - zdaje sobie sprawę z czego to wynika. Jednak w moich projektach lubię stosować komunikację z zastosowaniem komend AT, a te po doliczeniu argumentów zwykle są jednak trochę dłuższe od ośmiu bajtów. Właściwie wszystkie tutoriale poświęcone łączności w sieciach CAN zamykają się na temacie przesyłania tych ośmiu bitów i nic poza tym. Wiem, że istnieją wyższe warstwy transportowe. Całkiem przypadła mi do gustu ISO-TP. Nawet znalazłem jakąś bibliotekę C w sieci, ale po bliższym zapoznaniu się z nią okazało się, że aktualna wersja jest mocno okrojona i nie obsługuje właśnie tego, na czym najbardziej mi zależy - wiadomości multiframe.
Pytałem już na kilku anglojęzycznych forach, ale jak na razie nie dostałem żadnej odpowiedzi. Czyżby cały świat ograniczał się do tych ośmiu bajtów i nie było zapotrzebowania na wysyłanie większych porcji informacji przez CAN? A może coś pominąłem?
Od pewnego czasu bawię się z magistralą CAN. Z paru różnych względów chciałbym ją zastosować w prostym systemie automatyki domowej. Wiadomo - spora odporność na błędy transmisji, multimaster, sprzętowe wykrywanie kolizji, przyzwoita prędkość, nieskomplikowana infrastruktura (brak dodatkowych elementów jak to ma miejsce w przypadku np. Ethernetu).
Niestety główną wadą jest jak dla mnie ograniczenie długości ramki do 8 bajtów. Tak, wiem - zdaje sobie sprawę z czego to wynika. Jednak w moich projektach lubię stosować komunikację z zastosowaniem komend AT, a te po doliczeniu argumentów zwykle są jednak trochę dłuższe od ośmiu bajtów. Właściwie wszystkie tutoriale poświęcone łączności w sieciach CAN zamykają się na temacie przesyłania tych ośmiu bitów i nic poza tym. Wiem, że istnieją wyższe warstwy transportowe. Całkiem przypadła mi do gustu ISO-TP. Nawet znalazłem jakąś bibliotekę C w sieci, ale po bliższym zapoznaniu się z nią okazało się, że aktualna wersja jest mocno okrojona i nie obsługuje właśnie tego, na czym najbardziej mi zależy - wiadomości multiframe.
Pytałem już na kilku anglojęzycznych forach, ale jak na razie nie dostałem żadnej odpowiedzi. Czyżby cały świat ograniczał się do tych ośmiu bajtów i nie było zapotrzebowania na wysyłanie większych porcji informacji przez CAN? A może coś pominąłem?
