Diseño de módulo inteligente de adquisición/transmisión de datos en serie multicanal
Centro de investigación de ingeniería eléctrica y optomecánica de Guangzhou Co., Ltd.
Biotecnología Fangtong de Guangzhou Co., Ltd. Company Guan Qiang
Introducción
Con el desarrollo continuo de la tecnología electrónica, ahora se puede realizar la detección y el control de diversas cantidades físicas. Los sistemas de detección y control por microcomputadoras no solo se utilizan en el control de procesos industriales como la aeroespacial, la robótica, la maquinaria textil, el procesamiento de alimentos, etc., sino que también se han convertido en un componente importante de varios electrodomésticos cotidianos. Entre ellos, los equipos A/D (conversión de analógico a digital) juegan un papel muy importante. De esta manera, se necesitarán más dispositivos A/D en un sistema. Esto generalmente se logra extendiendo una o más tarjetas de captura A/D. Cuando hay pocas cantidades analógicas o señales que cambian lentamente, como temperatura y presión, utilizar una tarjeta A/D tipo bus no es la solución más adecuada y económica. Aquí presentamos un módulo de muestreo con un microcontrolador AT89C2051 como núcleo y un convertidor A/D serial de 12 bits TLC2543L. Los datos muestreados de este módulo se convierten desde el puerto serial del microcontrolador y se envían al puerto serial COM1 de la computadora host. (PC). O COM2, formando un método de adquisición de datos en serie y transmisión de datos en serie.
Introducción a las funciones de los componentes principales
Microcontrolador AT89C2051
AT89C2051 es un microcontrolador de 8 bits con una relación rendimiento y precio extremadamente alta lanzado por ATMEL. consistente con la serie MCS -51 totalmente compatible. La distribución de pines se muestra en la Figura 1.
Convertidor A/D serie TLC2543L
TLC2543L adopta el bus de interfaz serie SPI El bus de interfaz serie SPI fue propuesto por Motorola. Es una interfaz de sincronización de tres cables, respectivamente. , señal de entrada y señal de salida. Además, el chip también tiene una línea de selección de chip, y el microcontrolador selecciona el TLC2543L a través de la línea de selección de chip. Entre ellos, CLK es el pulso de reloj síncrono, CS es la línea de selección de chip, DIN es la línea de salida de datos del microcontrolador y la línea de entrada de datos de TLC2543L, y DOUT es la línea de entrada de datos del microcontrolador y la línea de salida de datos de TLC2543L. La Figura 2 es el diagrama de tiempos del TLC2543L. El TLC2543L es full-duplex, lo que significa que los datos se pueden enviar y recibir simultáneamente. Si solo escribe datos en TLC2543L, el microcontrolador puede descartar los datos leídos al mismo tiempo; por el contrario, si solo lee datos, puede escribir cualquier dato después del byte de comando; La transferencia de datos se realiza en bytes y adopta el formato big-endian.
El módulo utiliza el convertidor A/D serie TLC2543L de 12 bits de TI y utiliza el método de aproximación sucesiva del condensador conmutado para completar el proceso de conversión A/D. La estructura de entrada en serie puede ahorrar en gran medida los recursos de E/S del microcontrolador de la serie 51 y es asequible. Sus características son:
(1) 11 canales de entrada analógica
(2) Tiempo de conversión 10 s
(3) Resolución de 12 bits A/; Convertidor D;
(4) método de autoprueba integrado de 3 canales;
(5) Frecuencia de muestreo 66 kbps;
(6) Error lineal 1LSB (máx.)
(7) Tiene salida de fin de conversión (EOC)
(8) Tiene salida unipolar y bipolar
(9; ) MSB o LSB programable disponible;
(10) Longitud de datos de salida programable. La distribución de pines de TLC2543L se muestra en la Figura 3. En la Figura 3, AIN0 ~ AIN10 son terminales de entrada analógica; son terminales de selección de chip; DIN es el terminal de entrada de datos en serie; CLK es el terminal de salida en serie de tres estados del resultado de la conversión A/D; Reloj de E/S; REF es el terminal de voltaje de referencia positivo; REF- es el terminal de voltaje de referencia negativo; VCC es la fuente de alimentación;
Convertidor de nivel MAX232C
MAX232C es un transceptor RS-232 sencillo y fácil de utilizar. Se alimenta con una única fuente de alimentación de 5V y sólo necesita unos condensadores externos. Para completar la conversión del nivel TTL al nivel RS-232, la disposición de los pines se muestra en la Figura 4.
Diseño de hardware
El circuito de hardware se muestra en la Figura 5.
El microcontrolador AT89C2051 es el núcleo de todo el sistema. El TLC2543L recopila las señales analógicas de entrada. Los resultados de la conversión son recibidos por el microcontrolador a través de P3.5 (pin 9). el chip AD que pasa a través de P3.4 (Pin 8) se ingresa a una dirección de 8 bits y un registro de control dentro de él, y los datos recopilados por el microcontrolador se convierten en niveles RS232 mediante MAX232C a través del puerto serie (Pin 3, 2) y transmitido al ordenador central.
Diseño de software MCU
El programa MCU incluye principalmente la información del sistema, el número de canal, el ciclo de recolección y la definición del protocolo de comunicación del módulo de adquisición/transmisión de datos en serie, así como las subrutinas estándar. para el programa de adquisición y transmisión de datos.
Los datos de modo y selección de canal del TLC2543L son de 8 bits. Sus funciones son: D7, D6, D5 y D4 se utilizan para seleccionar el canal requerido para la conversión. Cuando D7D6D5D4=0000, se selecciona el canal 0. Cuando D7D6D5D4=0001, se selecciona el canal 0, y así sucesivamente; D3 y D2 se utilizan para seleccionar la longitud de los datos de salida. Este programa selecciona la longitud de los datos de salida para que sea de 12 bits, es decir, D3D2=00 o D3D2=. 10; D1 y D0 seleccionan el bit inicial de los datos de entrada, y D1D0=00 selecciona el bit inicial.
Los datos leídos por TLC2543L en cada ciclo de E/S son el resultado de la última conversión, y el resultado de la conversión actual se desplaza en serie en el siguiente ciclo de E/S. El resultado de la conversión de la primera lectura puede no ser exacto debido a ajustes internos y debe descartarse.
El programa de recopilación de datos es el siguiente:
sbit DATAIN=P1^1
sbit CLOCK=P1^0
sbit DATAOUT= P1^2;
sbit CS=P1^3;
bit datain_a_bit0()
{ bit m=0;
DATAOUT =1;
m=DATAOUT;
DATOS=0;
Nop();
RELOJ=1;
Nop();
RELOJ=0
Retorno(m); datain_a_bit1()
{ bit m=0
DATAOUT=1
m=DATAOUT
DATOS=1;
Nop();
RELOJ=1;
Nop();
RELOJ=0;
Return(m );
}
El microcontrolador genera un reloj en serie mediante programación, envía y recibe bits de datos en secuencia de tiempo y completa la escritura del modo de canal/datos del canal y el la lectura de los resultados de la conversión es la siguiente:
unsigned int Tlc2543L(unsigned char ch)
{unsigned char i, chch=0;lt;brgt;unsigned int xdata xxx. =0;lt;brgt;unsigned int xdata y=0;lt;brgt;CS=0;lt;brgt;Chch=chlt;lt;4;lt;brgt;Y=chch;lt;brgt;Ylt;lt; =8;lt;brgt;I =0;lt;brgt;Mientras(Ilt;12)lt;brgt;{if((yamp;0x8000)==0)lt;brgt;{if(datain_a_bit0()==0 ) xxxamp;=0xfffe;lt; brgt;else xxx|=0x0001;lt;brgt;if(I!=11) xxxlt;lt;=1;lt;brgt;}
else
{if(datain_a_bit1 ()==0) xxxamp;=0xfffe;lt;brgt;else xxx|=0x0001;lt;brgt;if(I!=11) xxxlt;lt;=1;lt;brgt ;}
ylt;lt;=1;
I =1;
}
CS=1;
Return(xxx);
}
El módulo de transmisión de datos en serie incluye una subrutina de inicialización del puerto serie y una subrutina de transmisión de datos. Cada subrutina es la siguiente. La transmisión de datos adopta el modo de consulta, que también se puede cambiar fácilmente al modo de interrupción.
Nulo rs232init()
{TMOD=0x20;lt;brgt;TH1=0xfd;lt;brgt;TR1=1;lt;brgt;SCON=0x50;lt;brgt ;}
void receandtran()
{unsigned char da;lt;brgt; while(!RI)lt;brgt;RI=0;lt;brgt;Da=SBUF; lt; brgt; SBUF==da; lt; brgt; While(!TI); brgt; lt; brgt;}
El programa en lenguaje C utilizado para recibir Los datos incluyen un programa inicializador y una subrutina de recepción. Cada subrutina es la siguiente:
void cominit(void)
{
outportb(0x3fb, 0x80
outportb(0x3f8); , 0x18); /La velocidad en baudios es consistente con la velocidad en baudios del microcontrolador de 9600 bps*/
outportb (0x3f9,
outportb (0x3fb, 0x03); bits, 1 bit de parada, sin paridad*/
outportb(0x3fc, 0x03); /*Configuración del registro de control del módem para habilitar la salida DTR y RTS*/
outportb(0x3f9, 0x00 /*Establezca el registro de habilitación de interrupciones y deshabilite todas las interrupciones*/
}
void data_rece(void) /*Modo de consulta que recibe subrutina de datos*/
< p); >{while(!kbhit())
{
while(!(inportb(0x3fd)amp;0x01));/*if recibiendo If el registro está vacío, espere */
printf("x ", inportb(0x3f8) /*Lea el resultado y muéstrelo*/
}
getch();
}
Aplicación del módulo inteligente de adquisición/transmisión en serie en un instrumento de PCR
En el diseño del circuito del instrumento de PCR, debido a que existe Hay muchas señales que deben detectarse, incluida la detección de temperatura de la cubierta caliente, la detección de temperatura del radiador, la detección de temperatura dentro de la cavidad, la detección de temperatura del flujo de aire, la detección de señales ópticas, etc. Para simplificar el circuito, guarde Costos y reducción del volumen. Al elegir el circuito de conversión A/D, elegí el TLC2543 con bus SPI. Este chip tiene hasta 11 terminales de entrada de señal analógica, lo que satisface completamente las necesidades del diseño de circuitos de instrumentos PCR. no solo detecta múltiples señales, sino también para ahorrar los recursos del microcontrolador, la Figura 6 es su diagrama esquemático de hardware.
Conclusión
El módulo de datos en serie inteligente descrito en este artículo se puede utilizar directamente en cualquier sistema de detección y control de microcomputadora para reemplazar el diseño original de conversión de analógico a digital. Después de pruebas prácticas, el módulo tiene bajo consumo de energía, alta precisión de muestreo, buena confiabilidad, interfaz simple y alto valor práctico. El software y el hardware de este módulo inteligente se han utilizado con éxito en el diseño y la práctica de "cicladores térmicos" de instrumentos de ciencias biológicas. Es fácil de usar, simple y factible, ahorra costos y puede cumplir con la mayoría de las aplicaciones de muestreo de datos. Fuente: www.lw3721.com