A comunicação do PC com uma interface remota é limitada em distância quando usamos a porta paralela. Além do elevado número de condutores necessários, o sinal atenua-se e perde sua consistência em poucos metros. Para interfaceamento remoto o mais indicado é usar a porta serial. O circuito que propomos pode fazer a amostragem de sinais remotamente usando a porta serial, não limitando assim o comprimento da linha.
O circuito que apresentamos baseia-se na UART CDP6402C ou equivalente, e ainda emprega um MAX232 que é um dos circuitos mais utilizados quando se deseja converter sinais TTL/CMOS em tensões compatíveis com a porta RS232 de um PC.
Dentre as aplicações possíveis para esta interface de amostragem temos o sensoriamento remoto, a coleta de dados a partir de sensores, ou ainda a monitoria de eventos que tenham um transdutor que proporcione uma saída analógica.
Com o aperfeiçoamento do circuito é possível multiplexar a entrada e fazer a monitoria de diversos sensores ou de diversas fontes de sinais analógicas ao mesmo tempo.
O conversor analógico digital utilizado tem uma boa resolução (8 bits) e com uma frequência de clock de 640 kHz o ciclo completo de amostragem dura 100 µs, e uma linearidade melhor do 1/4 do bit menos significativo é conseguida com facilidade.
Se o leitor desejar maior resolução poderá empregar conversores equivalentes fazendo as devidas modificações no circuito.
Para acoplar ao circuito sinais de sensores menos sensíveis, a National recomenda como amplificadores operacionais e comparadores compatíveis o Lm393 e o Lm339.
COMO FUNCIONA
Na figura 1 temos um diagrama de blocos que representa este circuito de amostragem de dados via porta serial.
Em funcionamento, o circuito espera por um byte de informação correspondente ao valor analógico convertido na entrada.
O sinal analógico entra via pinos 7 e 8 do conversor A/D ADC0804 (faixa de tensões de 0 a 5 V) e sai na forma digital (8 bits ou 1 byte) pelos pinos de 11 a 18, sendo então este valor digitalizado aplicado aos pinos TBR1 a TBR8 da UART (Universal Assincronous Receiver/Transmiter).
O clock do circuito é feito na frequência de 2,4576 MHz determinando assim uma velocidade de transmissão dos dados de 2400 a 115 200 BPS, conforme programação do divisor interno da UART.
Alterações neste circuito podem ser feitas com a troca do cristal, caso o leitor deseje modificar a velocidade de transmissão de dados.
Repare que a saída Data Received (DR) está no nível alto enquanto que a entrada nWrite (WR) do ADC está ativa quando no nível baixo. Se observarmos a operação do ADC, veremos que numa transição do nível alto para o nível baixo da entrada nWrite o circuito interno de aproximações sucessivas e os shift registers são ressetados. Fornecido um sinal para a linha nWrite, ela permanece neste estado e o ADC fica ressetado. O processo de conversão se inicia quando uma transição do nível baixo para o nível alto é aplicada na entrada nWrite.
Isso significa que a saída Data Received (DR) ficará no nível baixo enquanto não houver dados para serem recebidos, e ao mesmo tempo o ADC ficará ressetado. Quando os dados são recebidos pela UART, uma transição do nível baixo para o nível alto ativa a linha Data Received e com isso o pino nWrite do ADC é habilitado.
Quando a conversão de dados para a forma digital é completada, a linha nINTR (Interrupt) é ativada indo ao nível baixo. Este sinal é usado para avisar a UART que ela pode enviar os dados que estarão armazenados no seu Transmitter Buffer Register (TBR1 a TBR8). A entrada nINTR está também ligada ao Data Received Reset da UART de modo a zerar o circuito no final da transmissão.
Com isso o circuito estará pronto para repetir uma nova conversão e enviar um novo byte correspondente a uma nova leitura do dispositivo ligado à entrada do circuito.
MONTAGEM
O circuito tem alguns pontos críticos devendo, por isso, ter cuidado para que as ligações à terra sejam bem planejadas.
Na figura 2 temos o diagrama completo do circuito de amostragem pela porta serial.
A ligação à porta serial é feita por um conector DB-9.
A tensão de alimentação é de 5 V e deve ser feita com fonte estabilizada. Se necessário, capacitores de 100 nF cerâmicos junto ao pino de alimentação de cada integrado devem ser acrescentados diminuindo assim a possibilidade da ocorrência de instabilidades.
O circuito pode ser desenvolvido inicialmente numa matriz de contatos e depois o leitor, em função dos resultados ou das aplicações, pode planejar a placa de circuito impresso correspondente.
PROGRAMA
O programa de leitura dos dados pode ser elaborado em diversas linguagens comuns como, por exemplo, QBasic, VisualBasic, Delphi, C++, Pascal, etc.
Lembramos apenas que os endereços das portas seriais são:
COM1 0x3F8
COM2 0x2F8
COM3 0x3E8
COM4 0x2E8
Observamos ainda que a velocidade de transmissão pode ser ajustada pelo próprio programa que atua sobre o divisor interno da UART.
Os parâmetros para esta divisão são:
0x01 = 115 200 BPS
0x02 = 56 700 BPS
0x03 = 38 400 BPS
0x06 = 19 200 BPS
0x0C = 9 600 BPS
0x18 = 4 800 BPS
0x30 = 2 400 BPS
Semicondutores:
CI-1 - MAX232 - circuito integrado
CI-2 - D36402R - UART - circuito integrado
CI-3 - 74HC4060 - circuito integrado
CI-4 - ADC0804 - conversor A/D - circuito integrado
Resistores: (1/8 W, 5%)
R1, R2 - 10 k Ω
Capacitores:
C1, C2, C3, C4 - 10 µF/16 V - eletrolíticos
C5, C6 - 22 pF - cerâmicos
C7 - 150 nF - poliéster
Diversos:
Matriz de contato ou placa de circuito impresso, conector DB-9, fonte de alimentação de 5 V, fios, solda, etc.