Apenas mais um bloqueador veicular usando sensor de presença, mas com ‘código saltitante’…
Em 2014 este blog publicou um artigo que tratava de um chaveiro emissor para uso com um receptor de bloqueio por presença. De forma resumida, o usuário deve andar com um transmissor junto de si, que transmitirá a cada 45 segundos para o receptor. Enquanto o receptor estiver recebendo sinal do transmissor, este manterá o veículo com o sistema desbloqueado. Após não receber 2 transmissões sucessivas, ou cerca de 2 minutos, o sistema bloqueia o veículo (pela bomba de gasolina ou bobina de ignição). Na época foi usado o protocolo do HT6P para a transmissão de dados do transmissor para o receptor. Como trata-se de uma transmissão fixa, infelizmente esta pode ser escaneada e usada para desbloquear o veiculo.
Este novo artigo segue os moldes do anterior, mas foi substituído o protocolo com transmissão fixa por uma transmissão ‘saltitante’ . Cada transmissão é diferente das anteriores e das posteriores. Usa o sistema de encriptação por aplicação de XOR e por substituição de 4 bits/byte usando uma tabela. O esquema de ligação dos componentes tem pouca diferença do artigo anterior, para permitir uma possível migração de quem desejar.
Veja o esquema do transmissor abaixo:
Apenas foi acrescentado o interruptor ‘env_ser’ no pino 2 do PIC. Como ele deverá ser usado somente no aprendizado do transmissor, pode ser dispensado, se o usuário fizer um jumper com um fio do pino 2 ao pino 8, na hora de transmitir o ‘serial number’. Veja agora o esquema do receptor:
O esquema é bem similar ao anterior, apenas acrescentado o resistor de 2m2 no pino ‘out_ana’ do receptor, para evitar oscilações indesejadas na recepção.
Este protocolo não é compatível com nenhum outro chaveirinho comercial, mesmo os que utilizam o circuito integrado HC200, 201, 300, 301. Terá que construir o par transmissor/receptor para funcionar. O motivo de não se usar o sistema com a família HCxxx é a alta quantidade de transmissão por dia. Se este circuito integrado fosse usado, enviando a cada 45 segundos 2 códigos seguidos, a cada 17 dias começaria a repetir a sequência de código. Isto não seria bom, pois uma transmissão capturada por um ‘scaner’ seria aceita pelo receptor em apenas 17 dias. Portanto, não faria sentido usar um sistema criptografado numa aplicação que resultasse nesse grau de fragilidade!
Nesta proposta foi usado um contador de encriptação com 24 bits de comprimento. Isto significa que terá muito tempo antes de repetir as mesmas sequências de código (uma década ou mais, dependendo do uso).
Cada transmissor deverá receber um número serial diferente do outro. São 32 bits de comprimento. Se necessitar mais de um transmissor terá que alterar este número no programa C e recompilar para obter o novo arquivo .hex. Faça isto para cada novo transmissor que necessite.
A chave de decodificação (KEY) secreta tem que ser igual no transmissor e no receptor. Ela tem 64 bits de comprimento.
Diferente de outros transmissores comerciais, o sinal transmitido não tem uma parte fixa (‘serial number’) e uma parte encriptada. Toda ela é encriptada e trocada a cada transmissão. Portanto, para o processo de aprendizado do transmissor, é necessário que ele transmita de forma fixa o seu ‘serial number’. Por isso foi acrescentado o botão ‘env_ser’. O processo de aprendizado é muito simples:
- Aperte o botão ‘gravar_ser’ do receptor. Irá acender o led ‘gravar’ por aproximadamente 40 segundos.
- No transmissor, aperte o botão ‘env_ser’.
- Quando o led ‘gravar’ piscar e apagar, então terá tido sucesso na programação.
- Verifique o funcionamento desligando a alimentação do transmissor e religando de novo. Isto provocará uma transmissão imediata e deverá ligar o relé do receptor.
O transmissor emite dois códigos seguidos. Isto visa ressincronizar o contador de encriptação do receptor. Isto significa que uma única transmissão correta mas dessincronizada, que alguém consiga gerar, não será suficiente para ligar o relé.
Também transmissões anteriores que sejam capturadas por algum dispositivo de escaneamento e depois retransmitidas para o receptor não funcionarão. Na decriptação é obtido o valor do contador de encriptação do transmissor. Este valor é comparado com o do receptor. Se o valor do contador for menor que o contador do receptor, então não ativa o relé nem grava o novo valor recebido no contador do receptor. Valores do contador maiores que 1 farão o receptor dessincronizar. Uma recepção dessincronizada, mesmo que certa, não ativa o relé. Ela apenas ressincroniza. Somente na próxima transmissão correta ativará o relé.
Para alimentar o transmissor, poderá ser usado 3 pilhas do tipo A76 ou LR44 em série. Outras opções podem ser usadas, levando em conta o tamanho que deseja para a montagem. O receptor usará a alimentação da bateria do veículo, reduzindo dos 12 Volts para 5 Volts pelo regulador de tensão 7805. O receptor não deve ficar próximo de fontes de interferências para não comprometer o seu funcionamento.
Nota: Fica por conta de cada hobista escolher a forma de montagem e como acondicionar a montagem para torna-la prática ao uso. O programa está sendo cedido em caráter de teste. Não foi feito estudo mais profundo do comportamento das rotinas de encriptação em situações do dia a dia. Seu uso é por conta e risco. Quanto a uso de antena no receptor e transmissor você poderá usar antena miniatura bobinada. Veja este pdf. Como a distancia de atuação deve ser curta (3 metros) até com um pedaço de fio de 1 cm de comprimento como antena deverá funcionar. Deverá fazer seus testes neste assunto.
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.
Segue abaixo uma pasta zipada com todos os arquivos, para 3 tipos de compiladores: CCS C Compiler V3.200, Compilador Great Cow Basic e MPLAB-IDE V6.61 ASM:
Em 04/09/2020 foi feita esta versão 3. Apenas foi acrescentado um botão de ‘liberar’ (usando o reset)no chaveiro transmissor. O receptor continua com o mesmo hex e mesmo esquema. Na situação do usuário ficar muito tempo longe do veículo, necessita de um tempo até o chaveiro transmissor transmitir o sinal para liberar o veículo. Com esta versão, o usuário aperta o botão e tem a liberação imediata, podendo ligar o veículo sem ter que esperar uma transmissão temporizada. Segue os arquivos desta versão 3 abaixo:
Em 12/09/2020 foi postada esta versão do receptor do bloqueador. Usa o microcontrolador PIC 16F628A. Foi acrescentado uma saída para mais um relé. Este deverá ser ligado em uma sirene eletrônica para sinalizar um alerta de roubo. Poderá usar o transmissor versão 3 para trabalhar em conjunto. Segue a pasta com os arquivos desta versão do receptor (para compiladores: Great Cow Basic, MplabX-Ide (C), Mplab-Ide (asm) e CCS C Compiler v3.2):
Manuais:
PIC12F675 datasheet
Curiosidades:
Quem dividiu a Bíblia em capítulos e versículos?
Antigo relevo egípcio comprova o relato bíblico
A história de Noé e do grande Dilúvio — Fato ou mito?
‘Dessas montanhas extrairás cobre’
Outros assuntos:
Deus é o culpado pelo nosso sofrimento?
Será que alguém já viu a Deus?
Será que temos data marcada para morrer?
Vídeos:
Cinco médicos docentes do Canadá falam sobre os avanços dos tratamentos que não usam sangue
“Mulheres que trabalham arduamente no Senhor”
Exemplo de aviso para os nossos dias
As maravilhas da criação revelam a glória de Deus – Padrões
Até o próximo artigo!
obrigado Claudião
Grande Claudio esse novo projeto no caso do tx ja esta com aquele sistema poupador de bateria que acorda o pic
o Watch Dog em conjunto com a instrução ‘SLEEP’ ( consumo 10 microamperes)
Sim, utilizando a função SLEEP e o watchdog timer.