Tlemcen Car electronics

Tlemcen Car electronics (https://www.tlemcen-electronic.com/forum/)
-   Electronique (https://www.tlemcen-electronic.com/forum/forum9/)
-   -   Capture de trame CAN (https://www.tlemcen-electronic.com/forum/electronique/53193-capture-de-trame.html)

PIC16F84 01/06/2016 16h30

Citation:

Envoyé par GAD (Message 431753)
si je comprends bien le ftdi232 fait une émulation de port com ? je pensais qu'il avait un driver ftdi2xx.dll ... avec
http://www.ebay.fr/itm/FTDI-FT232RL-...wAAOSwX~dWhO6b
+
http://www.ebay.fr/itm/2PCS-L9637-L9...IAAOSwQoFWQAYS

besoin d'une 7805 et du 12 volts comme sur le schema ?

et çà roule pour snifer une liaison k entre un diag et une voiture ?
en serie ou parallele la liaison pour snifer ?

il y'a deux dll une pour émule le portcom et la deuxiem utilse le port usb par numéro de série ou par l'identificateur VID/PID que tu le programme dans ton ftdi a l'avance par le soft Mprog, ce soft tu peux le télecharger sur le site ftdi ,
pas besoin de régulateur 7805 car le ftdi il est alimenté par le port usb
le 12v obligatoire pour aliment le bus k-line

VroumVroum 01/06/2016 20h26

Citation:

Envoyé par PIC16F84 (Message 431908)
le 12v obligatoire pour aliment le bus k-line

si tu sniff le port ,c'est qu'il est déjà alimenté par le diag ou l'ecu ? non ?

PIC16F84 02/06/2016 14h23

Citation:

Envoyé par GAD (Message 432002)
si tu sniff le port ,c'est qu'il est déjà alimenté par le diag ou l'ecu ? non ?

nous sniff les données qui passent sur le bus k-line pas le port , et l'alimentation entre le diag et l'ecu tu peux seulement lever la résistance 510hom mais le 12V qui va a la pin VS je ne sais pas s'il marche sans 12V car je ne sais pas le mecaniseme intern de l9637d ni comment il fonction ,et comme le edc15c2
la ligne k-line na pas une résistance de tirage donc le bus est tjr alimenté par le mètre diag ou l'fgtach ou d'autre programmateur

VroumVroum 02/06/2016 14h39

merci de ta réponse mais je pense que le correcteur orthographique a modifier ta phrase car je comprends pas bien le "nous sniff"

PIC16F84 02/06/2016 16h46

Citation:

Envoyé par GAD (Message 432208)
merci de ta réponse mais je pense que le correcteur orthographique a modifier ta phrase car je comprends pas bien le "nous sniff"

non nous ne sniff que de l'air hhh je veux dire que nous réalise ce interface pour sniffer les données qui passe sur le bus k-line

VroumVroum 03/06/2016 22h17

merci pic16f84
aurais-tu l'idée du montage de la L9637d sur le FTDI comme celui-ci ?:
http://www.ebay.fr/itm/FTDI-FT232RL-...wAAOSwX~dWhO6b

PIC16F84 04/06/2016 06h42

Citation:

Envoyé par GAD (Message 432674)
merci pic16f84
aurais-tu l'idée du montage de la L9637d sur le FTDI comme celui-ci ?:
http://www.ebay.fr/itm/FTDI-FT232RL-...wAAOSwX~dWhO6b

ce interface est bon , tu récupère seulement un l9637d d'une ancien ecu et tu connecte la pin TX/RX/GND c'est facile sans schéma :biggrinjester:

VroumVroum 30/06/2016 14h32

bon ben j'ai fait ce schéma sur l'interface que j'ai commander sur ebay :
http://www.ebay.fr/itm/FTDI-FT232RL-...wAAOSwX~dWhO6b
et ben çà marche passsss
quelqu'un peut me donner un coup de main pour sniffer du K .... lol
j'ai fait un montage avec un tDB d'espace et je dialogue avec en K ,J'ai mis le K en parallèle mais rien n'arrive sur le port com .
voila mon branchement du L9637D:http://img15.hostingpics.net/pics/915303schema.jpg

louisbmx11 30/06/2016 15h56

il me semble qu'il faut une résistance de pull up sur ta ligne K

PIC16F84 01/07/2016 02h35

Citation:

Envoyé par GAD (Message 439988)
bon ben j'ai fait ce schéma sur l'interface que j'ai commander sur ebay :
http://www.ebay.fr/itm/FTDI-FT232RL-...wAAOSwX~dWhO6b
et ben çà marche passsss
quelqu'un peut me donner un coup de main pour sniffer du K .... lol
j'ai fait un montage avec un tDB d'espace et je dialogue avec en K ,J'ai mis le K en parallèle mais rien n'arrive sur le port com .
voila mon branchement du L9637D:http://img15.hostingpics.net/pics/915303schema.jpg

salut

deuxieme chose voir si ton logiciel tu permis de choisir une vitesse 10.4baudrate sinon tu ne peux pas capter les données , et 5-baud pour l'initielisation avec l'envois de la valeur 0x33 ,

pour la résistance je pense elle pose probléme car il existe dans ton diag mais mais si t'as un oscilloscope tu visioner le signal sur la ligne k'line

pour logiciel si tu connais le langage C je peux donner une class rs232 pour crée ton propre logiciel

bonne chance

VroumVroum 01/07/2016 10h09

Citation:

Envoyé par PIC16F84 (Message 440162)
salut

deuxieme chose voir si ton logiciel tu permis de choisir une vitesse 10.4baudrate sinon tu ne peux pas capter les données , et 5-baud pour l'initielisation avec l'envois de la valeur 0x33 ,

pour la résistance je pense elle pose probléme car il existe dans ton diag mais mais si t'as un oscilloscope tu visioner le signal sur la ligne k'line

pour logiciel si tu connais le langage C je peux donner une class rs232 pour crée ton propre logiciel

bonne chance

je ne comprends pas ,je veux sniffer les trames ,qui passe en k ,pas en envoyer ! ,je n'ai pas d'oscilloscope .
je ne comprends pas du tout tes explications ,il faut que le diag soit initialiser avec un ecu et que j'initialise aussi mon sniffer sur le même ecu ? (pour voir les trames k qui passe entre le diag et l'ecu )

VroumVroum 03/07/2016 20h25

Pas d'idée sur tes dires PIC16F84 ?

PIC16F84 04/07/2016 04h09

Citation:

Envoyé par GAD (Message 440220)
je ne comprends pas ,je veux sniffer les trames ,qui passe en k ,pas en envoyer ! ,je n'ai pas d'oscilloscope .
je ne comprends pas du tout tes explications ,il faut que le diag soit initialiser avec un ecu et que j'initialise aussi mon sniffer sur le même ecu ? (pour voir les trames k qui passe entre le diag et l'ecu )

non ,si ton diag qui initialise le bus K-line toi pas besoin d'initialiser le bus mais il faut choisir la meme vitesse de communication coté pc la ou tu branche ton interface pour sniffer

pour la class voici le code que j'utilise pour controller le port com avec mes logiciel et dit moi quel logiciel utilise tu pour essayer de sniffer les donnée sur K-line ?

Code:

/******************************************************************************
  TestCOM.c :
 
  fonctions de base pour l'envoi et la réception de donner sur un port
  série RS232.

/


#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

/*=============================================================================
  Définition de constantes
=============================================================================*/
#define RX_SIZE        4096    /* taille tampon d'entrée  */
#define TX_SIZE        4096    /* taille tampon de sortie */
#define MAX_WAIT_READ  5000    /* temps max d'attente pour lecture (en ms) */

/*=============================================================================
  Variables globales.
=============================================================================*/

/* Handle du port COM ouvert */
HANDLE g_hCOM = NULL;

/* Délais d'attente sur le port COM */
COMMTIMEOUTS g_cto =
{
    MAX_WAIT_READ,  /* ReadIntervalTimeOut          */
    0,              /* ReadTotalTimeOutMultiplier  */
    MAX_WAIT_READ,  /* ReadTotalTimeOutConstant    */
    0,              /* WriteTotalTimeOutMultiplier  */
    0              /* WriteTotalTimeOutConstant    */
};

/* Configuration du port COM */
DCB g_dcb =
{
    sizeof(DCB),        /* DCBlength            */
    9600,              /* BaudRate            */
    TRUE,              /* fBinary              */
    FALSE,              /* fParity              */
    FALSE,              /* fOutxCtsFlow        */
    FALSE,              /* fOutxDsrFlow        */
    DTR_CONTROL_ENABLE, /* fDtrControl          */
    FALSE,              /* fDsrSensitivity      */
    FALSE,              /* fTXContinueOnXoff    */
    FALSE,              /* fOutX                */
    FALSE,              /* fInX                */
    FALSE,              /* fErrorChar          */
    FALSE,              /* fNull                */
    RTS_CONTROL_ENABLE, /* fRtsControl          */
    FALSE,              /* fAbortOnError        */
    0,                  /* fDummy2              */
    0,                  /* wReserved            */
    0x100,              /* XonLim              */
    0x100,              /* XoffLim              */
    8,                  /* ByteSize            */
    NOPARITY,          /* Parity              */
    ONESTOPBIT,        /* StopBits            */
    0x11,              /* XonChar              */
    0x13,              /* XoffChar            */
    '?',                /* ErrorChar            */
    0x1A,              /* EofChar              */
    0x10                /* EvtChar              */
};

/*=============================================================================
  Fonctions du module.
=============================================================================*/
BOOL OpenCOM    (int nId);
BOOL CloseCOM  ();
BOOL ReadCOM    (void* buffer, int nBytesToRead, int* pBytesRead);
BOOL WriteCOM  (void* buffer, int nBytesToWrite, int* pBytesWritten);

/******************************************************************************
  main : point d'entrée du programme.
  */

int main()
{
    /* variables locales */
    char buffer[256];
    int nId, nChoice, nBytesWritten, nBytesRead;

    /* demande du numéro du port COM */
    printf("Entrez le numero du port COM : ");
    scanf("%d", &nId);

    /* tentative d'ouverture */
    printf("Ouverture et configuration du port COM%d...\r\n", nId);
    if(!OpenCOM(nId)) return -1;
    printf("...OK\r\n");

    /* boucle tant que l'on ne quitte pas */
    do
    {
        /* menu */
        printf("\r\n");
        printf("1 : Envoyer des donnees.\r\n");
        printf("2 : Recevoir des donnees.\r\n");
        printf("3 : Quitter.\r\n");
        printf("Choix : ");
        scanf("%d", &nChoice);

        /* enoyer des données */
        if(nChoice == 1)
        {
            printf("\r\n");
            printf("Donnees a envoyer :\r\n");
            fflush(stdin);
            gets(buffer);
            printf("\r\n");
            printf("Envoi des donnees...\r\n");
            if(WriteCOM(buffer, strlen(buffer), &nBytesWritten))
                printf("%d octet(s) envoye(s).\r\n", nBytesWritten);
            else
                printf("Erreur lors de l'envoi.\r\n");
        }

        /* recevoir des données */
        if(nChoice == 2)
        {
            printf("\r\n");
            printf("Reception de donnees...\r\n");
            if(ReadCOM(buffer, sizeof(buffer)-1, &nBytesRead))
            {
                buffer[nBytesRead] = '\0';
                printf("%d octet(s) recu(s) :\r\n%s\r\n", nBytesRead, buffer);
            }
            else
                printf("Erreur lors de la réception.\r\n");
        }
    }while(nChoice != 3);

    /* fermeture du port COM et retour */
    CloseCOM();
    return 0;
}

/******************************************************************************
  OpenCOM : ouverture et configuration du port COM.
  entrée : nId : Id du port COM à ouvrir.
  retour : vrai si l'opération a réussi, faux sinon.

*/

BOOL OpenCOM(int nId)
{
    /* variables locales */
    char szCOM[16];

    /* construction du nom du port, tentative d'ouverture */
    sprintf(szCOM, "COM%d", nId);
    g_hCOM = CreateFile(szCOM, GENERIC_READ|GENERIC_WRITE, 0, NULL,
                        OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, NULL);
    if(g_hCOM == INVALID_HANDLE_VALUE)
    {
        printf("Erreur lors de l'ouverture du port COM%d", nId);
        return FALSE;
    }

    /* affectation taille des tampons d'émission et de réception */
    SetupComm(g_hCOM, RX_SIZE, TX_SIZE);

    /* configuration du port COM */
    if(!SetCommTimeouts(g_hCOM, &g_cto) || !SetCommState(g_hCOM, &g_dcb))
    {
        printf("Erreur lors de la configuration du port COM%d", nId);
        CloseHandle(g_hCOM);
        return FALSE;
    }

    /* on vide les tampons d'émission et de réception, mise à 1 DTR */
    PurgeComm(g_hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR|PURGE_TXABORT|PURGE_RXABORT);
    EscapeCommFunction(g_hCOM, SETDTR);
    return TRUE;
}

/******************************************************************************
  CloseCOM : fermeture du port COM.
  retour : vrai si l'opération a réussi, faux sinon.

*/

BOOL CloseCOM()
{
    /* fermeture du port COM */
    CloseHandle(g_hCOM);
    return TRUE;
}

/******************************************************************************
  ReadCOM : lecture de données sur le port COM.
  entrée : buffer      : buffer où mettre les données lues.
          nBytesToRead : nombre max d'octets à lire.
          pBytesRead  : variable qui va recevoir le nombre d'octets lus.
  retour : vrai si l'opération a réussi, faux sinon.
-------------------------------------------------------------------------------
  Remarques : - la constante MAX_WAIT_READ utilisée dans la structure
                COMMTIMEOUTS permet de limiter le temps d'attente si aucun
                caractères n'est présent dans le tampon d'entrée.
              - la fonction peut donc retourner vrai sans avoir lu de données.

*/

BOOL ReadCOM(void* buffer, int nBytesToRead, int* pBytesRead)
{
    return ReadFile(g_hCOM, buffer, nBytesToRead, pBytesRead, NULL);
}

/******************************************************************************
  WriteCOM : envoi de données sur le port COM.
  entrée : buffer        : buffer avec les données à envoyer.
          nBytesToWrite : nombre d'octets à envoyer.
          pBytesWritten : variable qui va recevoir le nombre d'octets
                          envoyés.
  retour : vrai si l'opération a réussi, faux sinon.

*/

BOOL WriteCOM(void* buffer, int nBytesToWrite, int* pBytesWritten)
{
    /* écriture sur le port */
    return WriteFile(g_hCOM, buffer, nBytesToWrite, pBytesWritten, NULL);
}


VroumVroum 04/07/2016 07h42

j'utilise LookRS 232 pour regarder ce qu'il ce passe sur le port com ,pas besoin de soft ni de debuger ,je l'ai déjà fait pour sniffer le dialogue d'une balance avec un soft pour comprendre le protocole ,mais la rien ne ce passe pendant le dialogue , pourtant çà m'a l'air bien brancher et le dialogue entre le diag et le TDB fonctionne ,mais rien depuis mon montage aucun octet sur le port com d'écoute .

VroumVroum 09/07/2016 12h27

plus de son plus d'image PIC16F84 ?


Fuseau horaire GMT +1. Il est actuellement 18h39.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Version française #23 par l'association vBulletin francophone
Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Tlemcen-electronic © All right reserved