Comunicación serial entre VB.NET y el microcontrolador
Debido a sus propias ventajas, los microcontroladores se han utilizado ampliamente en el control de procesos integrados, instrumentación automatizada, adquisición y procesamiento de datos, periféricos de sistemas informáticos, etc. Utilice la biblioteca API FOXTOOLS.FLL proporcionada por FoxPro para Windows para acceder a las funciones especiales de Windows y podrá comunicarse directamente con otras computadoras en el entorno de lenguaje FoxPro para Windows.
1 Circuito de interfaz de hardware
Existe una conexión uno a uno entre la PC y el microcontrolador, mediante comunicación serie RS-232C full-duplex. Conectado al puerto serie de la PC hay un conector tipo D de 9 núcleos. Las definiciones de todos sus pines y los niveles de señal correspondientes están conectados y diseñados de acuerdo con el estándar RS-232C. En este diseño solo se utilizan tres de las líneas de señal: transmitir datos (TXD), recibir datos (RXD) y señal a tierra (GND).
El nivel de señal de entrada/salida de la interfaz estándar RS-232C es el nivel EIA: es decir, para la señal de entrada, el "1" lógico es -15~-3V (normalmente -12V), y el "0" lógico es 3~15V (normalmente 12V). Para la señal de salida, el "1" lógico es -15~-5V (normalmente -12V), el "0" lógico es 5~15V (normalmente 12V). Dado que el nivel de señal de entrada/salida del circuito de aplicación del microcontrolador general es el nivel CMOS o TTL, para lograr la coincidencia del nivel de señal de entrada/salida entre la PC y el microcontrolador en el modo RS-232C, la interfaz RS-232C y el Se debe conectar una computadora de un solo chip entre los puertos serie del microprocesador del chip, se utiliza MAX232 para realizar la conversión mutua entre el nivel EIA y el nivel CMOS/TTL. MAX232 funciona con una fuente de alimentación única de 5 V. Utiliza un circuito de refuerzo y un circuito de conversión de polaridad internamente para obtener niveles lógicos positivos y negativos de EIA, omitiendo los dos conjuntos de fuentes de alimentación de -12 V y 12 V.
2 Método de implementación del software de comunicación serie
Para realizar la comunicación serie entre PC y microcontrolador, además de cumplir con el protocolo de comunicación serie RS-232C, también deben tener su propia comunicación. software de aplicación. Aunque diferentes sistemas de microcontroladores utilizan diferentes lenguajes ensambladores para compilar sus aplicaciones, la idea de diseño del software de comunicación es la misma: es decir, la PC es el modo activo y el microcontrolador determina si enviar o recibir datos en función de los comandos enviados por el PC. Si está enviando un comando, prepare los datos requeridos y el código de verificación, complételos en el búfer serie y envíelos a la PC, y luego lea el código de retorno enviado por la PC. Si es un código de error, debe reenviarlo. los datos. Si se recibe el comando, los datos enviados por la PC al búfer en serie se extraen y se almacenan en un área de almacenamiento fija. Si hay un error en los datos recibidos, se envía un código de error a la PC y luego se repite el proceso de recepción. Cabe señalar aquí que los métodos de verificación de datos entre el microcontrolador y la PC deben ser consistentes. A continuación se describe en detalle el método de implementación del software de comunicación en la PC.
Para realizar la transferencia de datos entre la aplicación FoxPro para Windows y la aplicación del microcontrolador, debe usar su función de biblioteca API para registrar y ejecutar la función de comunicación Windows.DLL para acceder al puerto serie. El archivo .FLL (Biblioteca de enlaces dinámicos) es la forma de una biblioteca de enlaces externos utilizada por la API. En realidad, es un archivo .DLL (Biblioteca de enlaces dinámicos) de Windows que permite que FoxPro para Windows interactúe con programas escritos en C/C o. lenguaje ensamblador. Los usuarios también pueden colocar algunas funciones que hayan escrito en una biblioteca .FLL personalizada. FOXTOOLS.FLL es una biblioteca API proporcionada por FoxPro para Windows. Al instalar FoxPro para Windows, se colocó en el subdirectorio \FOXPROW. FOXTOOLS.FLL proporciona acceso a varias funciones de Windows.
Al escribir un programa de comunicación FoxPro para Windows, primero cargue la biblioteca con el siguiente comando:
SET LIBRARY TO SYS(2004) "FOXTOOLS.FLL" ADDITIVE
Entre ellos, SYS( 2004) devuelve el nombre del directorio de inicio de FoxPro para Windows. Agregar ADDTIVE garantiza que cualquier biblioteca cargada previamente sea válida. Retiro de coleccionistas
Utilice el siguiente comando para cancelar la biblioteca FOXTOOLS.FLL:
RELEASE LIBRARY SYS(2004) “FOXTOOLS.FLL”
Cargue FOXTOOLS una vez. Si tiene la biblioteca FLL, puede comenzar a usar la función Regfn() en la biblioteca para registrar las funciones de comunicación de Windows a las que desea acceder. La función Regfn() permite a los usuarios llamar funciones en Windows.DLL. DLL permite la entrada de los siguientes tipos de datos: entero (I), entero largo (L), punto flotante (F), doble precisión (D), cadena?, y también permite la devolución de los tipos de datos anteriores. El formato de función para registrar una función Windows.DLL y sus parámetros es:
myfun=Regfn(Winfunction, Argtypes, Rtntype)
Donde Winfunction es la función Windows.DLL a la que se accederá nombre. Argtypes es el código de tipo de cada parámetro que se le debe pasar. Por ejemplo, cuando el tipo de parámetro que se pasará a la función es entero, entero, punto flotante o carácter, Argtypes es "IIFC"; o método numérico para pasar parámetros Al pasar parámetros por referencia, el signo @ debe colocarse antes del tipo de parámetro. El parámetro se utiliza como puntero al búfer. Rtntype es el tipo de datos del valor de retorno de la función .DLL. Si el registro es exitoso, la función Regfn() devuelve un valor numérico a myfun; si el registro falla, devuelve -1.
Después de registrar exitosamente la función de comunicación Windows.DLL con Regfn(), el siguiente paso es llamarla con la función Callfn() para ejecutar la función registrada. El formato de llamada es el siguiente:
myret=Callfn(myfun, pm1,,...)
donde myfun es el identificador numérico de la función registrada, pm1, pm2, etc. . se deben pasar a Windows.DLL. El valor de cada parámetro de la función y el número de parámetros varían según la función .DLL a la que se accede. El orden y el tipo de cada parámetro se deben pasar estrictamente de acuerdo con los requisitos especificados por la función .DLL; de lo contrario, la llamada fallará. Si la llamada Callfn() tiene éxito, el contenido de la variable myret es el valor de retorno de la función Windows.DLL, que tiene el tipo de datos especificado por el parámetro Rtntype.