Czy napięcie modułu sterującego i napięcie akumulatora są takie same?


8

Czy napięcie modułu sterującego (z trybu OBD 01 PID 42) i napięcie akumulatora są takie same? Jeśli nie, jaki jest związek między nimi? Dlaczego maksymalna wartość napięcia modułu sterującego (z trybu OBD 01 PID 42) wynosi 65,535 V, kiedy napięcie akumulatora może wynosić maksymalnie 14 V w samochodzie?


Dla wyjaśnienia: czy rzeczywiście otrzymujesz 65,535 V jako odczyt, czy tylko zastanawiasz się, dlaczego maksymalny możliwy odczyt to ta konkretna liczba?
user253751

1
Gdyby była to maksymalna wartość 99,999, uzasadnienie byłoby dość jasne (5 cyfr, z kropką dziesiętną po drugiej). 65535 jest dwójkowy, a 99999 w systemie dziesiętnym.
user253751

Odpowiedzi:


9

Wygląda na to, że problem dotyczy przychodzącego sygnału.

O ile twój pojazd nie jest wyposażony w kondensator strumieniowy , 65 V na akumulatorze to trochę za dużo. Według mojej wiedzy nawet ciężkie ciężarówki nie zasilają tego napięcia.

65535 to maksymalna 16-bitowa liczba całkowita bez znaku.

Patrząc na stronę wiki OBD-II wygląda na to, że wzór zastosowany przez OBD-II PID zgodnie z SAE J1979 to:

( A * 256 + B ) / 1000

Gdzie A to pierwsze dwa bajty, B to kolejne dwa bajty. Jeśli oba A i B mają wartość 255 (więc 11111111 dwójkowo), otrzymasz maksymalne możliwe napięcie, 65,535 V


Jeśli ten wynik pochodzi z symulatora, obwiniłbym tam winę. Jeśli jest to sygnał pochodzący z prawdziwego pojazdu, sprawdziłbym, czy nie ma zwarcia w ECU (choć nie jestem pewien). Upewnij się, że odpytujesz właściwy adres, aby wykluczyć możliwość wystąpienia nietypowego napięcia.

Napięcie modułu sterującego to napięcie dostarczane do ECU. To nie jest napięcie akumulatora, ale zwykle jest wystarczająco blisko, gdy pojazd jest uruchomiony.


1
Na początek nie jest tak, jak w przypadku oprogramowania motoryzacyjnego. Nawiasem mówiąc, to fantastyczna odpowiedź. :)
gorączka wyścigu

6

Myślę, że to, co widzisz, to tylko artefakt działania komputera. Podana liczba to zaledwie 65535 z wstawionym ułamkiem dziesiętnym. Jest to specjalna liczba dla komputerów - to największa wartość, jaką można zapisać w 16-bitowej (2 bajty) liczbie całkowitej. Mówiąc najprościej, jest to największa wartość, jaką można zwrócić dla tego konkretnego pomiaru ze względu na zmienną komputerową, którą postanowili zastosować. To wymysł programowania - nie spodziewają się, że kiedykolwiek mierzy 65 woltów. Jeśli była to wartość, która może być dodatnia lub ujemna, możesz zobaczyć maksymalną wartość 32 767.

Inną liczbą, którą możesz często zobaczyć, jest 255. Jest to maksymalna wartość 8-bitowej (jednobajtowej) liczby bez znaku. Jeśli wartość może być dodatnia lub ujemna, maksymalna wartość wynosi 127.


Zobacz moją odpowiedź. Myślę, że coś mi się
Zaid

Zwykle 12 7 będzie maksymalną wartością 8-bitowej liczby całkowitej ze znakiem.
user253751

@immibis, Masz mnie - „podpisałem” w głowie i myślałem -128. Dzięki.
JPhi1618

1

Podczas pracy silnika napięcie powinno śledzić moc wyjściową alternatora / regulatora napięcia (która jest również napięciem ładowania akumulatora). Gdy silnik nie pracuje, będzie śledzić napięcie akumulatora.

Mogę jedynie spekulować na temat powodu szerokiego zakresu napięcia. Nieuregulowana moc alternatora może przekraczać 48 V, więc może być użytecznym układem diagnostycznym. Lub może być tylko artefaktem kodowania cyfrowego, że zakres wartości przekracza to, co jest konieczne.


1
Jeśli CMV osiągnie 65 + Vdc, jak to śledzi napięcie alternatora? To całkowicie usmażyłoby baterię w krótkim czasie. Większość działających pojazdów powinna czytać na alternatorze ~ 14vdc. Coś za wiele minęło, a to pożegnanie z baterią.
Pᴀᴜʟsᴛᴇʀ2

@ Paulster2 Zaktualizowałem swoją odpowiedź, aby odpowiedzieć na twoje pytania.
kmarsh

1

Napięcie modułu sterującego to napięcie akumulatora minus wszelkie wolty spadające w okablowaniu między akumulatorem a ECU. 65535 to pełny rejestr 16-bitowy. ECU prawdopodobnie będzie działać z liczbami całkowitymi (oblicza się szybciej), ale przekształci końcowy wynik swoich obliczeń dla OBD w postać „zmiennoprzecinkową” lub „rzeczywistą” (liczby, które mogą używać kropek dziesiętnych).

Powodem, dla którego maksimum nie jest 65535, 6553.5 lub 655.35, jest to, że z kropką dziesiętną umieszczoną dwa od lewej strony, pozwala ona na największą dokładność na całkowitym etapie obliczeń, zapewniając jednocześnie wystarczającą liczbę miejsc po lewej stronie dziesiętnej, aby wyświetlić wszystkie prawdopodobne wartości. Zasadniczo pozwala ECU pracować z dokładnością do 3 miejsc po przecinku w liczbach całkowitych. Być może nie jest to tak ważne dla napięcia akumulatora, ale zakładam, że taka jest zasada.

Być może nie istniała możliwość sztucznego zastosowania wartości maksymalnej mniejszej niż 65535, ale nawet jeśli nie było, nie widzę żadnej korzyści.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.