KEYCEO-Design, Fabricação e Serviços de Desenvolvimento de Marcas OEM de Teclados e Mouses.
1. IntroduçãoNa produção de energia e testes elétricos, muitas vezes é necessário usar um PC portátil para coletar e processar dados por meio da interface.
O coletor de dados comumente usado com porta serial RS232 não permite plug-in ativo (quente), o que é muito inconveniente de usar. E agora a maioria dos PCs não possui interface RS232, especialmente computadores portáteis. Em vez disso, a interface USB. Atualmente, a aplicação da tecnologia de interface flexível USB do microcomputador de chip único AVR é muito comum. A empresa ATMEL apresenta em detalhes o uso da porta IO comum do microcomputador de chip único AVR para realizar a função de interface USB no barramento serial universal do software avr309; Ao mesmo tempo, o método de programação do programa ATmega8 (Firmware) é introduzido e todos os códigos-fonte do montador são fornecidos. Com base no código-fonte, o autor otimiza e combina várias versões de firmware de interface de software USB (programa original) referindo-se e analisando diferentes autores. Depois de alterar e excluir alguns programas, o desempenho melhora bastante. A utilização da CPU é muito menor do que a do programa de origem. O microcomputador de chip único AVR ATmega8 tem o desempenho e as características do microcomputador de chip único de alta qualidade AVR, e o preço é equivalente apenas ao do microcomputador de chip único de baixo grau. Seu conversor A/D multicanal integrado atende às necessidades de aquisição de dados analógicos.
2. Microcomputador de chip único ATmega8 O ATmega8 é um microcomputador de chip único da série AVR da empresa ATMEL. É um microcomputador de chip único de 8 bits baseado na estrutura AVR RISC produzida pelo processo CMOS de baixa potência. A maioria das instruções é executada em um único ciclo. ADC de aproximação sucessiva com precisão de 10 bitsO ADC é conectado a um multiplexador analógico de 8 canais e pode amostrar tensões de entrada de terminação única de 8 canais da porta C.
A entrada de tensão de terminação única é baseada em 0V (GND). O ADC inclui um circuito de amostra e retenção para garantir que a entrada de tensão para o ADC permaneça constante durante a conversão. O ADC é alimentado separadamente pelo pino avcc. O desvio entre avcc e VCC não deve exceder 0,3V. Há um valor nominal de 2,56v e tensão de referência avcc no dispositivo. A tensão de referência pode ser desacoplada adicionando um capacitor ao pino aref para suprimir melhor o ruído. Devido às características programáveis do microcomputador de chip único AVR no sistema, o sistema integrado de microcomputador de chip único pode ser projetado e desenvolvido sem a compra de simuladores caros e programadores; Ao mesmo tempo, também fornece um ambiente de aprendizado e desenvolvimento muito conveniente e simples para iniciantes em microcomputadores de chip único. Além disso, é mais abrangente e perfeito em termos de desempenho de economia de energia, estabilidade, anti-interferência e flexibilidade. Em comparação com outros microcontroladores, o microcomputador de chip único ATmega8 é simples e fácil de usar, baixo custo, baixo limite para entrar na série AVR de chip único desenvolvimento de microcomputadores, ricos recursos de software e fácil desenvolvimento de programas. Como o microcomputador de chip único ATmega8 é um chip comum, suas características, estrutura interna e descrição dos pinos não são apresentadas neste artigo.
3. Circuito de hardwareO circuito de hardware de aquisição de dados de interface de software USB baseado em ATmega8 é muito simples. Microcontrolador ATmega8 como núcleo, mais um pequeno número de componentes externos (conforme mostrado na Figura 1). O resistor pull-up R3 na linha de dados USB D - na Figura 1 é usado para o host identificar o dispositivo USB de baixa velocidade (definido na especificação USB).
Cristal de 12Mhz e dois capacitores de 20p formam o clock necessário para a operação do MCU (um bit de dados do USB tem 8 ciclos de clock).
D está conectado ao PD2 e também é o pino INT0. D - conectado a PD3. Os resistores R1 e R2 desempenham o papel de limitação de corrente e proteção para evitar danos acidentais à porta USB do computador ou à porta do microcomputador de chip único. A energia VCC exigida pelo microcomputador de chip único é fornecida diretamente pela saída de energia de 5V da porta USB. Porque a especificação USB especifica que a faixa de nível nas linhas de dados D e D - é de 3,0 V a 3,6 V, e D1 e D2 são diodos zener de 3,6 V para limitar o nível na linha de dados. LED1 e R4 na figura são circuitos de indicação de energia. Leda1-leda6 e ra1-ra6 são circuitos de indicação de canal de conversão a/D. L1, C3 e C4 são definidos de acordo com os requisitos de precisão de conversão A/D no manual de instruções do produto ATmega8. Ri1-ri6 e ci1-ci6 são configurações de entrada de amostragem de sinal analógico e seus circuitos e parâmetros mudam de acordo com diferentes requisitos de entrada. J2 na figura é o terminal de entrada de amostragem de sinal analógico, que pode ser conectado a um único terminal de sinais analógicos de entrada 0-2,56v e 0-5V. A medição de parâmetros CA requer processamento e entrada de sinal CA; Para medir o sinal analógico diferencial, o circuito de amostragem de entrada precisa ser alterado. A conversão A/D do ATmega16 pode ser entrada de terminação única ou entrada diferencial; Existem também 2 canais de entrada diferencial com ganho opcional de 10 vezes e 200 vezes; Apenas mais alguns pinos, o diagrama do circuito mudou; O software de microcomputador de chip único pode ser compatível e transplantado, e várias instruções sobre entrada diferencial de conversão a/D e processamento de dados são adicionadas. Se necessário, consulte o manual de instruções do produto ATmega16 (que pode ser baixado do site da ATMEL).
4. Programa de microcomputador de chip único ATmega8 (Firmware) Este programa é baseado no microcomputador de chip único ATmega8 e usa software puro para concluir o recebimento, envio e decodificação do protocolo USB, de modo a realizar a função de comunicação de dados da interface USB; A função de aquisição de dados analógicos é realizada através da conversão A/D integrada do microcomputador de chip único. O protocolo USB define que a taxa de comunicação de dispositivos USB de baixa velocidade é de 1,5 m bits / s. Se o microcomputador de chip único usar a frequência de clock de 12 MHz, a frequência principal é 8 vezes a de 1,5 MHz. Em outras palavras, o microcomputador de chip único deve concluir com precisão a aquisição ou transmissão de um bit de dados (porta IO comum) a cada 8 ciclos.
Esta situação tem requisitos estritos sobre o tempo do microcomputador de chip único. Portanto, o código principal do software de microcomputador de chip único deve ser escrito em linguagem assembly. O chip ATmega8 é o AVR Series MCU da empresa ATMEL. O site da ATMEL fornece software de desenvolvimento de ambiente integrado (IDE) de estúdio AVR para download gratuito. A linguagem de montagem é suportada diretamente após a instalação. O programa de firmware é compilado, compilado e gravado com este software de desenvolvimento (gravação com cabo de download USB ISP). O programa é escrito em uma estrutura modular. Para a coordenação e eficiência de cada módulo, a interface USB é configurada da seguinte forma.
Código de status = 1: indica que o pacote de token de configuração da porta de controle foi recebido (definido após o recebimento do pacote de token na interrupção) Código de status = 2: indica que a porta de controle no pacote foi recebida (definido após o recebimento do pacote de token na interrupção) Código de status = 3: indica que o pacote de saída da porta de controle foi recebido (definido após o recebimento do pacote de token na interrupção)
Código de status = 5: indica que o pacote de saída da porta de dados foi recebido (definido após receber o pacote de token na interrupção) Código de status = 6: indica a alteração do endereço de recebimento (definido no ciclo principal) Sinalizador de operação = 2: indica que os dados do pacote de configuração da porta de controle são recebidos (definido após o recebimento do pacote na interrupção)
Flag de operação = 3: indica que o pacote de entrada da porta de controle foi enviado (definido após o pacote de entrada ser enviado na interrupção) Flag de operação = 4: indica que a porta de controle no pacote está pronta (definida no ciclo principal)Porta número = 0: porta de controle
Número da porta = 1: dados na portaNúmero da porta = 2: saída de dados número da portaPorta = 3: status da porta serial na porta (interface RS232 virtual USB, requisitos de especificação de classe CDC)
5. Conclusão
O programa começa a partir da reinicialização do sistema, inicializa o sistema (define o endereço da pilha, memória e inicialização do registro, inicialização do conversor a/D) e define o valor inicial da interface USB flexível e, em seguida, entra no programa principal para detectar continuamente o USB sinal de reset (as duas linhas de dados permanecem no nível baixo de 10-20ms). Em caso de reinicialização, quando vários itens compartilham um transmissor total, uma vez que o transmissor total não pode ser encontrado imediatamente, será difícil recuperar os itens necessários. Portanto, um pequeno transmissor pode ser instalado em um ou vários itens e um alarme pode ser anexado ao transmissor total, de modo que o transmissor no item possa ser usado para detectar e recuperar o transmissor total. Em seguida, use o transmissor total para recuperar o itens requeridos. Além disso, possui uma ampla gama de aplicações, como museus e bancos, e a demanda do mercado será relativamente grande. É um dos produtos necessários na sociedade moderna. Portanto, tem alto valor de promoção e boas perspectivas de aplicação.