Komunikacja między czujnikami, czyli protokół SENT

19 lutego 2024, 9:17

W branży motoryzacyjnej istnieje konieczność przetwarzania coraz większej ilości informacji podczas jazdy, dlatego przewody komunikacyjne w samochodzie muszą mieć coraz większy przekrój. Cyfryzacja sygnałów analogowych to nie wszystko – konieczne jest również zwiększenie wydajności, przepustowości, a także racjonalizacja przepływu informacji. To jednak wymaga nowego rozwiązania. W taki właśnie sposób narodził się nowy protokół komunikacyjny zwany SENT.

Definicja, podstawowe informacje

Protokół SENT został pierwotnie opracowany dla samochodowych układów napędowych, ale ze względu na niski koszt realizacji i większą integralność danych z czujników o wysokiej rozdzielczości, a także odporność na zakłócenia, stał się atrakcyjny również w innych zastosowaniach powiązanych z motoryzacją.

Tematem artykułu jest norma SAE J2716. Według zawartej w niej definicji SENT (Single Edge Nibble Transmission) to asynchroniczny protokół komunikacyjny sterowany zdarzeniami z możliwością dekodowania czasowego. Znaczenie komunikatu jest określane przez długość czasu między dwoma końcowymi krawędziami. Podstawową przesłanką komunikacji jest to, że czas między dwoma „krawędziami” w komunikacie reprezentuje cztery bity oraz że wiadomość jest jednokierunkowa, a transmisja odbywa się na jednym przewodzie.

Jedną z głównych cech sygnału cyfrowego jest częstotliwość, która ma decydujący wpływ na szybkość przepływu informacji. Długość wiadomości zależy również od jej zawartości, więc transmisja małej wartości zużywa mniej czasu niż transmisja większej wartości.

Dużą zaletą tego systemu jest to, że nie ma potrzeby przerwy synchronizacyjnej między komunikatami, dzięki czemu można przesłać więcej informacji w danej jednostce czasu.

Dekodowanie

Działanie protokołu SENT jest sterowane czasowo, a definicja jednostki czasu – tzw. „tyknięcia” – zależy od nadawcy. Definicja ta następuje w pierwszej części komunikatu, gdyż zgodnie z normą ta początkowa część odpowiada za synchronizację. Dzięki temu odbiornik jest w stanie oddzielić od siebie kolejne komunikaty, nawet jeśli nie ma pauzy.

Sześć kolejnych komunikatów na bazie protokołu SENT (źródło: www.wikipedia.org)

Długość pola synchronizacji wynosi 56 tyknięć. W przeliczeniu na jednostki czasowe długość ta jest równa 560 mikrosekundom, co oznacza, że jedno tyknięcie to 10 mikrosekund.

Druga część komunikatu zawiera informacje o nadawcy. Może to być dowolny identyfikator używany do jego określenia.

Trzecia część to właściwa treść komunikatu, w której dane przesyłane są kolejno w 4-bitowych pakietach, zwanych z angielska „nibbles,” czyli „kawałki”. Czas pomiędzy dwiema końcowymi krawędziami definiuje liczba dziesiętna, która może wynosić od 0 do 15. Wynika to z faktu, że między dwoma końcowymi krawędziami w polu danych może upłynąć co najmniej 12, a maksymalnie 27 tyknięć, przy czym 12 to zerowa wartość dziesiętna. Liczba ta musi zostać przeliczona na system dwójkowy, przyjmując wartość z zakresu od 0000 do 1111. Znając niezbędne dane, można również obliczyć czas, jaki upłynął między dwoma końcowymi krawędziami.

Jeśli chodzi o długość wiadomości, zgodnie z przywołaną wcześniej normą w komunikacie można przesłać co najmniej jeden, a maksymalnie sześć 4-bitowych pakietów, co oznacza, że pole danych może mieć rozmiar od 4 do 24 bitów.

Po pakiecie danych następuje część komunikatu z sumą kontrolną, która służy do sprawdzenia poprawności transmisji danych. Jest to koniec komunikatu, od tego miejsca może nastąpić tylko ewentualna przerwa do momentu pojawienia się zbocza nowej krawędzi, a wraz z nią rozpoczyna się synchronizacja następnego komunikatu.

Działanie w praktyce

Fakt, że SENT wykorzystuje tylko jeden przewód (przynajmniej jeśli chodzi o transmisję danych), zasadniczo determinuje obszary, w których można go sensownie wykorzystać. Spośród nich najbardziej odpowiednim obszarem są czujniki. Mogą one wysyłać własne dane do jednostki przetwarzającej, a ponieważ długość standardowego komunikatu jest elastyczna, pozwala to każdemu czujnikowi wysyłać dane zgodnie z własnymi właściwościami ilościowymi. Czas cyklu można również dostosować do czujnika, w zależności od zastosowania. Transmisję danych można ustawić w odstępach od 3 do 90 mikrosekund w zależności od jej częstotliwości. A gdyby tego było mało, można zmieniać nawet długość przerwy.

Kanał szybki i wolny

Protokół SENT, choć w rzeczywistości przesyła dane jednym przewodem, wymaga łącznie trzech przewodów: przewodu sygnałowego (niskie napięcie < 0,5 V, wysokie napięcie > 4,1 V), przewodu zasilającego (5 V) i przewodu uziemiającego.

Komunikaty przesyłane są zasadniczo kanałem szybkim, który został również opisany w sekcji dotyczącej dekodowania: każdy komunikat jest poprzedzony impulsem kalibracyjnym, po którym każdy „nibble” jest transmitowany z niskim sygnałem o stałej szerokości, a po nim następuje wysoki okres o zmiennej długości. Dolny okres ma długość 5 (lub więcej) tyknięć, podczas gdy długość górnego okresu może się zmieniać.

Nie jest to jednak jedyna forma działania. Oprócz opisanej powyżej ramki sygnału danych czujnika szybkiego kanału, SENT umożliwia również jednoczesną transmisję komunikatów na wolnym kanale, które mogą zawierać różne inne informacje.

Komunikaty te są przesyłane szeregowo, jeden bit na komunikat w kanale szybkim, zakodowany w dwóch najbardziej znaczących bitach nibble’a określającego stan. Ten typ wiadomości jest zwykle używany do przesyłania informacji diagnostycznych lub raportowania z dodatkowych czujników o wolno zmieniających się stanach, takich jak wartości temperatury. Do transmisji tych danych służy właśnie kanał wolny.

Opisany powyżej komunikat wygląda następująco:

16-bitowy format krótkiego komunikatu szeregowego przesyła 16-bitową wiadomość w 16 ramkach na kanale szybkim. Komunikat składa się z następujących elementów: 4-bitowego identyfikatora wiadomości, 8-bitowego pola danych i 4-bitowego pola sumy kontrolnej. Jest on kodowany przez bit 3 (znany również jako MSB) nibble’a określającego stan, który wynosi 1 w pierwszej ramce komunikatu i zero dla kolejnych 15 ramek. Wiadomość jest następnie przesyłana, 1 bit na ramkę, w bicie stanu 2.

Komentarze

Komentarz musi być dłuższy niż 5 znaków!

Proszę zaakceptuj regulamin!

Brak komentarzy!