-
1. Data: 2014-03-05 22:18:06
Temat: transmisja danych po magistrali CAN
Od: Atlantis <m...@w...pl>
Jak to właściwie jest z transmisją większej ilości danych po magistrali
CAN? Z tego co mi wiadomo jedna ramka pozwala na przesłanie 8 bajtów.
Zwykle realizuje się to właśnie w ten sposób (kod rozkazu + kilka bajtów
danych) czy też istnieje możliwość uruchomienia jakiegoś stosu, który
umożliwiłby przesyłanie bardziej skomplikowanych treści?
Co jeśli chciałbym przekierować na do określonego urządzenia na
magistrali CAN treść pakietu UDP (kilkadziesiąt - kilkaset bajtów w
ASCII)? Co, gdybym chciał przesłać tekst do wyświetlenia na LCD? Jest
jakiś sposób, czy to rozwiązanie zostało stworzone z myślą o przesyłaniu
prostych komend i niczego wiecej?
-
2. Data: 2014-03-06 08:31:40
Temat: Re: transmisja danych po magistrali CAN
Od: Krystian <k...@g...com>
On 05-03-2014 22:18, Atlantis wrote:
> Jak to właściwie jest z transmisją większej ilości danych po magistrali
> CAN? Z tego co mi wiadomo jedna ramka pozwala na przesłanie 8 bajtów.
> Zwykle realizuje się to właśnie w ten sposób (kod rozkazu + kilka bajtów
> danych) czy też istnieje możliwość uruchomienia jakiegoś stosu, który
> umożliwiłby przesyłanie bardziej skomplikowanych treści?
>
> Co jeśli chciałbym przekierować na do określonego urządzenia na
> magistrali CAN treść pakietu UDP (kilkadziesiąt - kilkaset bajtów w
> ASCII)? Co, gdybym chciał przesłać tekst do wyświetlenia na LCD? Jest
> jakiś sposób, czy to rozwiązanie zostało stworzone z myślą o przesyłaniu
> prostych komend i niczego wiecej?
>
Witam
W przypadku diagnostyki (CAN w samochodzie) stosuje się warstwę sieciową
ISO TP (możliwość) przesłania do 4095 bajtów(12 bitowy parametr dlugosci
ramki). Opisana jest w normie ISO15765-2. Nad tą warstwą siedzi UDS
(diagnostyka - warstwa aplikacji).
Nie wiem jak to realizuje się w przemysłowym zastosowaniu CAN.
Pozdrawiam
Krystian
-
3. Data: 2014-03-06 09:01:04
Temat: Re: transmisja danych po magistrali CAN
Od: Marek <f...@f...com>
On Wed, 05 Mar 2014 22:18:06 +0100, Atlantis <m...@w...pl>
wrote:
> Co jeśli chciałbym przekierować na do określonego urządzenia na
> ASCII)? Co, gdybym chciał przesłać tekst do wyświetlenia na LCD?
Jest
No i w czym problem? Podziel swój pakiet na 8 części i wysyłaj
ciurkiem. Podłącz sobie skaner can np. do samochodu, po odpaleniu
silnika jest wręcz zalew danych z kilkudziesięciu czujników.
--
Marek
-
4. Data: 2014-03-06 11:10:05
Temat: Re: transmisja danych po magistrali CAN
Od: Piotr Gałka <p...@c...pl>
Użytkownik "Atlantis" <m...@w...pl> napisał w wiadomości
news:lf84ai$l5v$1@portraits.wsisiz.edu.pl...
> Jak to właściwie jest z transmisją większej ilości danych po magistrali
> CAN? Z tego co mi wiadomo jedna ramka pozwala na przesłanie 8 bajtów.
> Zwykle realizuje się to właśnie w ten sposób (kod rozkazu + kilka bajtów
> danych) czy też istnieje możliwość uruchomienia jakiegoś stosu, który
> umożliwiłby przesyłanie bardziej skomplikowanych treści?
>
> Co jeśli chciałbym przekierować na do określonego urządzenia na
> magistrali CAN treść pakietu UDP (kilkadziesiąt - kilkaset bajtów w
> ASCII)? Co, gdybym chciał przesłać tekst do wyświetlenia na LCD? Jest
> jakiś sposób, czy to rozwiązanie zostało stworzone z myślą o przesyłaniu
> prostych komend i niczego wiecej?
Koncepcja w której wszyscy mogą nadawać jednocześnie a wygrywa ten, kto ma
najważniejszą informację (to jest idea CANa od strony sprzętowej)logicznie
wymusza krótkie ramki aby ważne informacje nie musiały czekać na zakończenie
nadawania jakichś bzdetów przez kogoś komu się akurat udało dorwać do łącza.
Między kolejne ramki długiej transmisji zawsze można się wciąć z nie
cierpiącym zwłoki przerwaniem.
Gdyby było inaczej to samochody z CANem działały by jak Windows.
P.G.
-
5. Data: 2014-03-06 18:52:57
Temat: Re: transmisja danych po magistrali CAN
Od: "Piotr (RtB)" <r...@N...onet.pl>
W dniu 2014-03-06 08:31, Krystian pisze:
> On 05-03-2014 22:18, Atlantis wrote:
>> Jak to właściwie jest z transmisją większej ilości danych po magistrali
>> CAN? Z tego co mi wiadomo jedna ramka pozwala na przesłanie 8 bajtów.
>> Zwykle realizuje się to właśnie w ten sposób (kod rozkazu + kilka bajtów
>> danych) czy też istnieje możliwość uruchomienia jakiegoś stosu, który
>> umożliwiłby przesyłanie bardziej skomplikowanych treści?
>>
>> Co jeśli chciałbym przekierować na do określonego urządzenia na
>> magistrali CAN treść pakietu UDP (kilkadziesiąt - kilkaset bajtów w
>> ASCII)? Co, gdybym chciał przesłać tekst do wyświetlenia na LCD? Jest
>> jakiś sposób, czy to rozwiązanie zostało stworzone z myślą o przesyłaniu
>> prostych komend i niczego wiecej?
>>
> Witam
>
> W przypadku diagnostyki (CAN w samochodzie) stosuje się warstwę sieciową
> ISO TP (możliwość) przesłania do 4095 bajtów(12 bitowy parametr dlugosci
> ramki). Opisana jest w normie ISO15765-2. Nad tą warstwą siedzi UDS
> (diagnostyka - warstwa aplikacji).
> Nie wiem jak to realizuje się w przemysłowym zastosowaniu CAN.
Można zdefiniować sobie własny protokół komunikacyjny na bazie CANa i
ISO TP (albo podobnych protokołów). Nic też nie stoi na przeszkodzie,
żeby potraktować ID ramki jako adres urządzenia i zbudować protokół
master-slave albo multimaster.
Mogę powiedzieć, że to się sprawdza - niedawno zdefiniowaliśmy protokół
master-slave pozwalający na przesłanie (teoretycznie) 2^32 bajtów w
jednej wiadomości i z powodzeniem wykorzystujemy (więcej szczegółów,
niestety, podać nie mogę).
Pozdrawiam,
Piotr