Olá pessoal. Sou dono de um japonês de dez anos de idade, em quem tudo me convinha, com exceção do sistema de áudio padrão - não havia Bluetooth nele. Existem três maneiras possíveis de resolver esse problema:
1. Compre um plugue no isqueiro e não apareça.
Contras:
- Qualidade de som
- Sem gestão
- Nenhuma saída do título da música
Não há vantagens.
2. Comprar em um showdown por muito dinheiro uma unidade Bluetooth comum + uma cabeça mais nova.
Contras:
- Bloquear problemas de compatibilidade
- Saída de áudio monoaural (em algumas unidades)
- O preço com a substituição da cabeça e da fiação é quase igual ao do rádio de emergência
- Além do alfabeto latino, não há suporte
Prós:
3. Faça algo você mesmo, mas para não reduzir a funcionalidade existente.
Contras:
- Preciso de tempo
- Mais dinheiro foi gasto do que escolher as duas primeiras opções juntas
Prós:
- Satisfação no Trabalho
- Suporte de áudio sem perdas
- Suporte cirílico, embora transliterado, como A tela não sabe como.
Como você entendeu pelo nome, eu escolhi o caminho número 3.
Dados de origem.
O sistema de áudio nativo, que consiste em uma unidade principal e um painel semelhante a este:

Possui o modo AUX, que permite conectar dispositivos externos para ouvir música. Por que não usá-lo para seus próprios propósitos? Certifique-se de que, com uma certa combinação de teclas, o modo AUX seja iniciado, mas ao mesmo tempo todos os dados na tela passem completamente sob nosso controle e o som no AUX seja redirecionado do módulo Bluetooth.
Felizmente, no domínio público, você pode encontrar um manual com um circuito, do qual fica claro que a interface entre a cabeça e o painel é um UART normal.

Utilizando um analisador lógico, foram determinadas a velocidade e o protocolo da troca entre a cabeça e o painel. (Taxa de atualização da tela de 10 quadros por segundo, frequência de clique 30 ms, 14400E2). Juntamente com o arduinka, um resultado foi obtido na forma de Hello World.

O próximo passo foi o estágio de escolha de um microcontrolador para implementação. A escolha recaiu sobre o STM32F103, a bordo do qual até 3 UART há suporte para o barramento CAN (por que não adicioná-lo). O CSR8645 foi comprado originalmente como um módulo Bluetooth, a primeira versão estava com ele, mas não podia exibir os nomes das faixas (ou eu não descobri completamente) e também não tinha controle de barramento digital; portanto, um módulo chamado Bluegiga foi comprado diretamente dos EUA WT32i, no qual havia tudo o que era necessário e ainda mais - suporte para saída de áudio digital e codec AptX. Por alguns meses, quando havia tempo livre, foi realizado o desenvolvimento de um protótipo. Todos os horrores da HAL e os encantos da SPL eram conhecidos. Estudou minuciosamente o UART e o DMA no microcontrolador, porque era necessário amarrar tudo para que funcionasse sem freios e falhas.
Algumas fotos do processo Em seguida, todo esse material foi introduzido na unidade principal, mas para que pudesse ser visualizado e removido sem problemas para revisão. Um cabo HDMI e um conector de um laptop morto foram usados como interface.
Fotos no momento da depuração, é melhor não olharVista interna:

Vista externa:

O caso foi feito por uma fonte antiga de laptop.
Chegou a hora de colocar a placa de circuito impresso sob esse negócio, bem como tirar tudo da cabeça, para que a qualquer momento você possa remover esta fazenda coletiva e não atrapalhar a operação da máquina. O resultado foi tanta beleza:

Eu criei o conselho pela primeira vez na minha vida, você pode criticar, mas com moderação. A noite foi cansativa e funcionou pela primeira vez, o que me surpreendeu muito.

Em seguida, foi adicionado o transceptor CAN TJA1051, com o qual você pode obter vários dados interessantes e não muito do barramento CAN do veículo. Por enquanto, uso apenas a produção de consumo de combustível por hora, porque bk regular não tem essa função.

Vídeo como funciona:
Como você deve ter notado, o texto em russo é exibido em transliteração, mais ou menos inteligente. Por exemplo, a letra
h é substituída por ch, etc., o que não poderia ser alcançado por meios regulares. Além disso, suporte para áudio sem perdas.
Para quem deseja detalhes. Todos os três UARTs estão envolvidos. Um no visor, um nas teclas e um no módulo Bluetooth. O fluxo de som é comutado por um multiplexador analógico. CAN também é usado no STM32. Há um DAC PCM5102 externo, o som é muito bom. Conecta-se entre a cabeça e a fiação do carro. Os conectores foram encontrados na desmontagem.
Acabou sendo mais caro do que comprar um sistema Bluetooth comum, mas trouxe muito mais prazer com o desenvolvimento.
Existem planos para possibilitar a personalização das funções de personalização de carros (os proprietários do Mitsubishi 2008+ entenderão o que é isso), o protocolo já está lá, tudo está checado, continua a ser implementado no firmware.
Você pode obter o código aqui.