logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Nawiązanie komunikacji AVR z ECU Conzult w Nissan - jak zacząć?

djkomprez 29 Lis 2007 12:25 3647 6
REKLAMA
  • #1 4533314
    djkomprez
    Poziom 21  
    Posty: 561
    Pomógł: 23
    Ocena: 63
    Witam !

    Interesuje mnie czy udalo sie komus nawiazac komunikacje z
    komputerem w aucie za pomoca AVR-a

    Bede probowac cos takiego robic a zabardzo nie wiem jak sie
    do tego zabrac :P
  • REKLAMA
  • #2 4535583
    MichaelR
    Poziom 21  
    Posty: 387
    Pomógł: 22
    Ocena: 82
    jaki nissan, który rok i jaki silnik?
    więcej szczegółów prosze.
  • REKLAMA
  • #3 4535903
    djkomprez
    Poziom 21  
    Posty: 561
    Pomógł: 23
    Ocena: 63
    Nissan sunny lx silnik prawdopodobnie GA14DE 1.4 wtrysk wielopunkt
    do kompa juz sie podpinalem poprzez interfejs i bez problemu dzialalo

    moze to naswietli troche sprawe :

    Cytat:

    1.3. Communications baud rate is 9600 baud (default). Clock speed for this baud rate
    is 153.6 Khz, plus or minus 5 khz (as tested by PL& MS). Other baud rates and
    matched clocks may be possible as well. Clock GENERATED by the Host
    terminal (Consult or PC Interface). Synchronizing the clock to the data lines is
    NOT necessary. E.g. the clock free runs at the required speed. (16x the data rate).
    1.4. The Data Format is 1 start bit (always low), 8 data bits, no parity, 1 stop bit
    (always high).
    The data is actually processed by the ECU's micro LSB first. Each serial string is
    made up of blocks of : <Start bit (0)> <8 data bits LSB-MSB(xxxxxxxx)><Stop
    bit (1)>
    Data is sent as raw Hex,8N1, no spaces or carriage return characters etc are
    used.

    [/code]
  • REKLAMA
  • #4 4536380
    bartek_j
    Poziom 35  
    Posty: 2599
    Pomógł: 255
    Ocena: 816
    No i tu masz opis warstwy 1 i 2 protokołu. A gdzie opis wyższych warstw, tzn format ramek, znaczenie poszczególnych bajtów w ramkach i procedury ?
  • #5 4536534
    djkomprez
    Poziom 21  
    Posty: 561
    Pomógł: 23
    Ocena: 63
    No to jeszcze takie cos :

    Cytat:

    Initialization String. The ECU will not communicate until a valid hex
    initialization string message is detected.. (0xff)(0xff)(0xef) must be sent at the
    correct baud rate with the clock present on the ECU clock pin.
    Once Initialized the ECU responds with (0x10), it is then ready for commands.

    2. Command format and sequence (as tested with a laptop and terminal program in
    HEX mode).
    Consult terminal (or PC) sends a query command whose value determines
    function to be performed.
    ECU responds with the same command byte but having inverted all bits as an
    error check. Data send after a command is echoed same as sent.
    E.g. Send (0xd1)(hex), ECU responds with (0x2e). For valid commands only.
    Consult terminal sends a go ahead/terminate message byte (0xf0)

    ECU responds with result of query starting with a frame start leader character
    (0xff), then a byte it indicate the number of data bytes to follow, then the data.
    ECU WILL STREAM THE REQUESTED DATA until forced to stop.
    Consult terminal then sends a stop byte, Command 0x30
    e.g. Send (0xd1)(0xf0) , Ecu replies (0x2e)(0xff)(0x02)(0x55)(0x00). Where 2e
    is the inverted command, FF is the frame start byte, 02 is the number of data
    bytes to follow, 55 is the fault code (55 = no fault), 00 is fault code MSB.

    Read any Register Parameter (Live sensor data stream)
    (0x5a)<parameter code to read>(0xf0) for single byte stream
    (0x5a)<parameter>(0x5a)<next parameter>(0x5a)<next parameter>(0xf0)
    for a multi-byte response stream. Maximum of 20 bytes.
    terminate command with (0xf0) to start data stream, stop with (0x30).


    i tu np. czytanie obrotomierza

    Cytat:

    Data Name Byte Register No Scaling
    Tachometer MSB 0x00 See LSB
    Tachometer LSB 0x01 Value * 12.5 (RPM)


    I tera pytanie ... jak ustanowic polaczenie miedzy np Atmega a tym kompem ?

    szczerze to dopiero zaczolem programowac uC i jak narazie gryze
    bascoma ;)
  • REKLAMA
  • #6 4536565
    bartek_j
    Poziom 35  
    Posty: 2599
    Pomógł: 255
    Ocena: 816
    No.. To już jest coś. Z tymi danymi można próbować podchodzić do tematu. Ale bez oscloskopu porządnego z możliwością podłączenia przy samochodzie będzie trudno. Musisz też wiedzieć co robisz coby jakimś zwarciem kompa w samochodzie nie uszkodzić (naszczęście nie tak łatwo go uszkodzić przez złącze diagnostyczne)
    Jak to zaimplementować na uC ? no supertrudne to nie jest, ale jako pierwszy program to raczej rzut na głęboką wodę. Ale to troche NTG, popytaj lepiej w dziale dot. programowania mikrokontrolerów.
    Aha, i rzuć linka skąd masz ten opis protokołu ;)[/i]
  • #7 4536592
    djkomprez
    Poziom 21  
    Posty: 561
    Pomógł: 23
    Ocena: 63
    Opis mam od kumpla z serwisu ;)

    ponizej link
    Załączniki:
    • Protokol nissana.doc (29 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Dyskusja dotyczy nawiązania komunikacji między mikrokontrolerem AVR (np. Atmega) a komputerem pokładowym ECU Conzult w samochodzie Nissan Sunny LX z silnikiem GA14DE 1.4 (wtrysk wielopunktowy). Użytkownik podłączył się już do komputera za pomocą interfejsu i uzyskał działającą komunikację. Wymieniono potrzebę znajomości protokołu komunikacyjnego, w tym warstw fizycznej i linkowej, a także formatów ramek i znaczenia poszczególnych bajtów. Podkreślono konieczność posiadania oscyloskopu do analizy sygnałów oraz ostrożność, aby nie uszkodzić ECU podczas eksperymentów. Implementacja protokołu na mikrokontrolerze nie jest bardzo trudna, ale dla początkującego programisty może być wyzwaniem. Autor korzysta z Bascoma do programowania. Udostępniono również link do opisu protokołu od serwisu samochodowego.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA