Tenho algumas ideias com as quais quero brincar no meu carro. Em todo o meu tempo livre inexistente, estou a investigar um registador CAN Linux. Alguém já trabalhou nesta área e tem algo para partilhar?
messex,Só por curiosidade, mas qual versão do Excel você está usando? Eu pensei que o 2010 permitia mais de 65 mil linhas, mas posso estar errado.
Enviado do Aplicativo AutoGuide.com
Olá Jim,Então, o primeiro teste não correu muito bem.
Aparentemente, o escudo CAN e o programa que me deram não funcionam com o Arduino Mega. O escudo CAN tem um slot micro-SD para registro, mas a configuração dos pinos é diferente para a placa Mega.
Então, corri para a Radio Shack e peguei um Arduino Uno por US$ 29,99 e os problemas foram resolvidos... pelo menos com o cartão SD.
Fiquei animado e corri para o carro para conectá-lo e começar a registrar. E adivinha? Os E60s Pre LCI não têm sinais CAN na porta OBD...
Então, agora para descobrir um lugar de fácil acesso para tocar no barramento CAN. Até agora, estou pensando no porta-malas no módulo PDC. Posso até mover o módulo PDC para fora do poço do pneu sobressalente (supondo que esteja lá nos Ms, como está nos não-Ms), como muitos caras do bimmerforums fizeram para evitar a possibilidade de um derramamento de líquido no porta-malas que o inundaria.
Postarei mais quando eu o conectar e alguns dados forem coletados.
Remco, fico feliz que você tenha aparecido aqui. Este foi um experimento que funcionou bem e meu objetivo final era pegar um módulo PDC sobressalente e reutilizá-lo para "monitorar" o barramento CAN como um módulo "pass-through", por assim dizer. A localização na parte traseira forneceria espaço para instalá-lo e usar os dados do barramento para sinalizar outras coisas conforme desejado em todo o carro. Uma de muitas ideias que eu nunca pareço ter tempo/prioridade para acompanhar.Olá Jim,
Quando você se conectar ao CAN em qualquer lugar que não seja o OBD-II, certifique-se de usar a resistência de terminação adequada em sua placa transceptora. Um barramento CAN é projetado como uma "espinha dorsal" à qual os participantes se conectam. Se você for um ponto final, precisará terminar com 2 x 60 Ohms para o terra, conectados por meio de um capacitor de 10 nF. Se você estiver no 'meio' do barramento (onde você normalmente deveria estar mirando), você não termina. Portanto, esteja ciente da sua posição no barramento e tente se conectar 'no meio'. Caso contrário, você causará reflexos e poderá ter problemas de qualidade do sinal.
Agora, no barramento CAN do atuador do acelerador e nos barramentos CAN do solenóide VANOS, você deve se conectar sem terminação, pois é um barramento CAN de alta velocidade ponto a ponto. Não há meio: você é ele com seu sniffer. Estes são os interessantes, na minha opinião :wink, especialmente se você puder alinhar o tempo com os dados de registro. A propósito, esses transceptores específicos são fabricados pela Infineon (TLE6250G) rodando a 1 Mbit/s. Geralmente é melhor usar os mesmos transceptores no modo de escuta para obter a melhor fidelidade, mas ei, ele também funcionará com um TJA1043 da NXP, eu aposto. Qual transceptor é usado na configuração Arduino?
Não tenho certeza sobre as outras redes CAN em nossos carros e suas taxas de dados exatas. Algumas redes de alta velocidade operam a 500 kbit/s. Então, cuidado. Um osciloscópio barato é útil em tais assuntos. Eu tenho um, se necessário.
O melhor software e hardware para registro é este: CANalyzer
Mas é muito caro. É o que as montadoras usam, pois em muitos casos elas executam seu software em um Vector OS (baseado em OSEK). Eu procurei no eBay, mas nada apareceu. Surpresa surpresa. Eu não tentei muito, devo dizer. No entanto, diga a palavra e eu posso ir com um conjunto de ferramentas quando as perguntas ficarem difíceis!
Verdadeiro para todos os ArbIds em PT-CAN, K-CAN, ByteFlight, LLS-CAN e DK-CAN. Os ArbIds são únicos e atribuídos seus números por prioridade, por isso faz sentido manter a ordem consistente.RPM bruto (não otimizado para KOMBI) está embutido no ID da mensagem K-CAN, bytes 4 e 5, como um inteiro sem sinal de 16 bits. Os IDs de mensagem K-CAN e PT-CAN são os mesmos. Essas mensagens são transmitidas em média a uma taxa de atualização de 100 ms (enquanto em PT-CAN seria em média 10 ms). Obrigado BMW por tornar isso fácil.
Eu sei. Mas as suposições são para os fracos, então eu tive que verificar. LOL!Verdadeiro para todos os ArbIds em PT-CAN, K-CAN, ByteFlight, LLS-CAN e DK-CAN. Os ArbIDs são únicos e atribuídos aos seus números por prioridade, por isso faz sentido manter a ordem consistente.
Postagem abreviada de Terra acima para o que eu acho que a maioria está procurando aqui.Eu postei isso no bimmerforums, mas vocês provavelmente também acharão útil. Encontrei isso enquanto cavava no tool32
Lista do que um monte de IDs de mensagens são e de quais módulos eles se originam. Existem alguns IDs faltando quando eu verifico em relação ao meu 535xi, então a lista está incompleta, mas ainda é muito melhor do que voar completamente às cegas.Code:0x399 Status M-Drive [2] Status M-Drive [2] 0x12 DME1
0xB5 Drehmomentanforderung EGS [9] Torque demand EGS [9] 0x18 EGS_MECH+NAVI/EGS_MECH
0xB8 Drehmomentanforderung DKG [2] Torque requirement DKG [2] 0x18 DKG
0xBA Getriebedaten [20] Transmission data [20] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0xBD Drehmomentanforderung SSG [6] Torque demand SSG [6] 0x18 SMG_M/SMG
0x1A2 Getriebedaten 2 [6] Transmission data 2 [6] 0x18 EGS_MECH+NAVI/EGS_MECH/DKG
0x1A3 Rohdaten Längsbeschleunigung [3] Raw data longitudinal acceleration [3] 0x18 SMG_M
0x1D2 Anzeige Getriebedaten [22] Transmission data display [22] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0x304 Status Gang [13] Status Status [13] 0x18 SMG_M/SMG/EGS_MECH+NAVI/EGS_MECH/DKG
0x3B1 Getriebedaten 3 [2] Transmission data 3 [2] 0x18 EGS_MECH/DKG
0x498 Netzwerkmanagement Network management 0x18 DKG/EGS_MECH/EGS_MECH+NAVI/SMG/SMG_M
0x598 Dienste services 0x18 DKG/EGS_MECH/EGS_MECH+NAVI/SMG/SMG_M
Eu estava olhando para isso ontem à noite. Estou configurando meu simulador de mensagens CAN. Existem várias opções aqui. Eu estava pensando no byte 4, bits 5 e 4. Esta é a parte da luz M do painel da mensagem. Um 01 ou um 10 nesses bits indicará que a luz M-drive dash / HUD está LIGADA. Um 00 significa DESLIGADO. Desta forma, é agnóstico de um status ECU específico no veículo. Isso também corresponde ao rastreamento CAN que você deixou em algum lugar a montante neste tópico. Você deve ter alternado o botão M naquele experimento, pelo que pude perceber.Postagem abreviada de Terra acima para o que eu acho que a maioria está procurando aqui.
Hex ArbID para M-Drive é 0x399. Especificamente, você pode acionar a partir do byte 1, bits 7-8.
View attachment 774593
Mesmo que você codifique o módulo do volante para um VO M5 (presumivelmente é tudo o que é necessário), o carro ainda não saberá nada sobre esses quadros CAN.@jcolley, você tem alguma atualização sobre seu projeto? Estou tentando ativar o botão do volante M no modelo E60 não M, então se você tiver alguma dica útil para mim, agradecerei.
Bem, eu já ativei a visualização M no HUD do meu E60 não M, então eu gostaria de poder ativar/desativar essa visualização no HUD quando eu pressiono o botão M no volante. Atualmente, eu só consigo ativar/desativar essa visualização nas configurações do iDrive. Eu vi que existe a opção M drive no módulo SZL, que eu eventualmente posso ativar com a codificação NSC Expert, mas eu não sei a que mais essa opção pode estar relacionada e eu não quero causar nenhum problema com ela. Eu estava pensando que eu posso apenas obter as mensagens, que são enviadas no CAN Bus quando o botão M é pressionado e, depois de recebê-las, enviar novas mensagens para o CIC para ativar a visualização M no HUD. Isso faz sentido?Mesmo que você codifique o módulo do volante para um VO M5 (presumivelmente é tudo o que é necessário), o carro ainda não saberá nada sobre esses quadros CAN.
K-can é configurado como um barramento serial e cada módulo vê o tráfego e ignora as coisas com as quais não se importa. Você não vai estragar as coisas se você codificar o SZL para começar a enviar os quadros m-mode-on (a única coisa que eu vi que estragou as coisas é a duplicação de mensagens 0x380 com um número de vin diferente).Bem, eu já ativei a visualização M no HUD do meu E60 não M, então eu gostaria de poder ativar/desativar essa visualização no HUD quando eu pressiono o botão M no volante. Atualmente, eu só consigo ativar/desativar essa visualização nas configurações do iDrive. Eu vi que existe a opção M drive no módulo SZL, que eu posso eventualmente ativar com a codificação NSC Expert, mas eu não sei a que mais essa opção pode estar relacionada e eu não quero causar nenhum problema com ela. Eu estava pensando que eu posso apenas pegar as mensagens, que são enviadas no CAN Bus quando o botão M é pressionado e depois de recebê-las enviar novas mensagens para o CIC para ativar a visualização M no HUD. Isso faz sentido?
Sim, eu sei como o barramento CAN funciona. Provavelmente eu não fui claro no meu post anterior. Tenho medo de não quebrar nada, o que está funcionando bem no momento. Por exemplo, meu carro está equipado com o sistema de Aviso de Saída de Faixa, que não existe nos modelos M. Esse sistema pode ser ativado/desativado pelo botão, que fica abaixo do botão M. Se eu habilitar o modo M no SZL, posso perder a capacidade de iniciar e parar esse sistema. Este é apenas um exemplo, que posso dar, mas provavelmente pode haver alguns outros casos em que a ativação do modo M no SZL pode levar a um resultado negativo. Além disso, como você mencionou, habilitar o modo M no SZL pode não ser suficiente e eu posso precisar habilitar outras opções em outros módulos... no entanto, eu posso facilmente tentar e se o resultado não for bom o suficiente, eu posso reverter essas configurações.K-can é configurado como um barramento serial e cada módulo vê o tráfego e ignora as coisas com as quais não se importa. Você não vai estragar as coisas se você codificar SZL para começar a enviar os quadros m-mode-on (a única coisa que eu vi estragar as coisas é duplicar mensagens 0x380 com um número vin diferente).
As chances são de que o CIC vai ignorá-los de qualquer maneira, até que você o codifique para habilitar essa funcionalidade - não tenho certeza se você pode habilitá-lo codificando para ativar a funcionalidade, ou recodificar todo o CIC com um VO que o tenha. Provavelmente o primeiro, no entanto, pela minha experiência as coisas do VO não fazem muita coisa.
De qualquer forma, fazer isso deve ser mais fácil do que configurar um arduino como um tipo de intermediário.
Err, eu acho que não vejo como você vai compelir o SZL a enviar quaisquer quadros CAN do botão M, se esse recurso não estiver codificado. IIRC, a sinalização entre os botões e o SZL é baseada em resistência, então colocar um arduino no meio disso seria uma grande dor de cabeça. Por outro lado, executar um fio separado para o botão m exigiria uma mola espiral com mais fios (volante aquecido talvez? embora você possa estar SOL com a vibração de saída de faixa no volante)Sim, eu sei como o barramento CAN funciona. Provavelmente não fui claro no meu post anterior. Tenho medo de não quebrar nada, o que está funcionando bem no momento. Por exemplo, meu carro está equipado com um sistema de aviso de saída de faixa, que não existe nos modelos M. Esse sistema pode ser ativado/desativado pelo botão, que fica abaixo do botão M. Se eu ativar o modo M no SZL, posso perder a capacidade de iniciar e parar esse sistema. Este é apenas um exemplo, que posso dar, mas provavelmente pode haver alguns outros casos em que a ativação do modo M no SZL pode levar a um resultado negativo. Além disso, como você mencionou, ativar o modo M no SZL pode não ser suficiente e eu posso precisar ativar outras opções em outros módulos... no entanto, posso tentar facilmente e, se o resultado não for bom o suficiente, posso reverter essas configurações.
E, finalmente, se eu conseguir o resultado que quero via codificação, não será tão divertido quanto consegui-lo com Arduino![]()
Sim, essa é a terminação adequada para o K-can. Dê uma olhada no esboço do arduino aqui.Olá pessoal, revivendo um tópico antigo - alguém pode compartilhar seu esboço Arduino usado para farejar as mensagens k can? Além disso, alguém pode confirmar que resistores de terminação de 120 ohms de H e L para o terra seriam necessários ao conectar ao k can no PDC?