Como indica el título, ¿qué es el IAP integrado?
Introducción a IAP IAP es un modo de programación aplicado a la memoria de programa Flash. El espacio de almacenamiento del programa se puede leer, borrar y escribir bajo el control de la aplicación. Es muy similar al funcionamiento del ISP. No es necesario retirar el chip de la placa de circuito y programarlo con un programador. Ambos tienen funciones de programación en línea. La diferencia entre los dos es: ISP generalmente borra y programa todo el chip y descarga el programa a Flash a través del puerto serie de la PC bajo operación manual, mientras que IAP lee y escribe otro programa Flash bajo el control de un determinado programa. La implementación de IAP IAP consiste en programar el nuevo programa de usuario en el Flash designado ejecutando el programa. La operación de lectura/escritura de la memoria del programa Flash es la clave para realizar IAP, que se presentará en detalle a continuación. La MCU puede leer la memoria Flash como un dispositivo ROM, pero solo puede programar la memoria Flash mediante instrucciones especiales de borrado y programación. La memoria flash debe borrarse antes de poder programarse. Un byte de la memoria Flash se borra a todos (FFh) y se programa estableciendo el bit de selección en 0. MCU puede borrar toda la memoria Flash o un sector a la vez, pero no puede borrar por byte, mientras que MCU se puede programar por byte. Una vez que la MCU emite un comando de programación/borrado de memoria Flash, se pueden usar varios métodos para determinar si la programación/borrado está completo. Los siguientes dos métodos de evaluación se utilizan en el programa para programar el Flash. Método de sondeo de datos La programación del método de sondeo de datos se completa con la función unsigned char flash_boot_write_with_poll (volatile uchar xdata*addr, uchar dat). Cuando el comando recibido del centro de monitoreo requiere actualizar el programa de usuario anterior utilizando el método de sondeo de datos, esta función se llamará en el programa principal, la MCU emitirá una instrucción de programación y el algoritmo incorporado comenzará a ejecutarse. El bit del indicador de error (DQ5) es 1 para indicar que el ciclo de programación ha expirado y 0 para indicar que no hay ningún error. La MCU puede leer el bit de sondeo de datos (DQ7) y el bit de indicador de error en cualquier posición del sector programado. Método de salto de datos La programación del método de salto de datos se completa con la función unsigned char flash_write_with_toggle(volatile uchar xdata*addr, uchar dat). El ciclo de programación es aproximadamente el mismo que el método de sondeo de datos. La diferencia es que la MCU no lee DQ7, sino el bit de bandera de salto de datos (DQ6). Durante la programación, el bit DQ6 alterna hasta que se completa el ciclo de programación. El bit DQ5 es 1 para indicar que el ciclo de programación ha expirado y 0 para indicar que no hay ningún error. La MCU puede leer los bits DQ6 y DQ5 en cualquier posición del sector programado. Además, este chip también tiene una función de protección del sector de memoria Flash: cada sector de la memoria Flash principal y de la segunda memoria Flash se puede proteger individualmente contra programación y borrado. Esta característica proporciona seguridad de datos adicional contra cualquier error de programa o borrado. En este diseño, el sector CSBOOT1 del segundo Flash almacena algunos números de tarjeta fijos del control de puerta, y este sector debe estar protegido. Los sectores restantes del segundo Flash se utilizan como respaldo para guardar algunos parámetros de energía o aire acondicionado y números de tarjetas de control de puertas que deben agregarse. Estos datos son variables y por lo tanto no están protegidos. El sector de almacenamiento Flash se puede proteger o desproteger a través del puerto JTAG o la configuración del programador del dispositivo. La MCU puede leer el estado de protección del sector leyendo el registro de protección del sector (en el bloque CSIOP), pero no puede cambiarlo. Diseño del programa principal de la función IAP Después de encender el sistema, el programa primero se ejecuta en el sector de arranque, espera comandos de la computadora host y realiza las operaciones correspondientes de acuerdo con los comandos (consulte la Figura 2). Cambia automáticamente al programa de usuario después del tiempo de espera o no se envía ningún comando. Cuando sea necesario actualizar el programa de usuario, vuelva al programa de inicio.
En el funcionamiento del sistema de manejo de excepciones, existen tres situaciones principales: corte de energía, interrupción de la comunicación y error de código, que provocarán que falle la actualización del programa. La siguiente es una breve introducción a algunas de las medidas de protección tomadas en este diseño. En el primer caso, considere la mala estabilidad del suministro de energía causada por el medio ambiente y la interferencia de señales de alto voltaje como rayos y relés. El sistema utiliza un módulo de alimentación CC/CC de alto aislamiento para aislar la tierra externa de la tierra del sistema, y se agrega un optoacoplador de alta velocidad al puerto serie que es susceptible a interferencias para el aislamiento en el segundo caso, que utiliza el sistema; Puertos serie, GPRS/GSM, Una red de comunicación compleja compuesta por TCP/IP.
Dado que solo una falla de comunicación causará una falla de comunicación entre las computadoras superior e inferior, para evitar la parálisis del sistema debido a una falla de comunicación, la función Eeprom_Init se utiliza en el programa para restaurar y reparar datos en caso de una falla de comunicación o un corte de energía. En el tercer caso, durante el proceso de comunicación entre las computadoras superior e inferior, aunque la comunicación es normal, existe la posibilidad de errores de bits debido a la gran cantidad de datos. Por lo tanto, el programa primero verifica el tipo de trama para cada trama de datos recibida y luego realiza una suma de verificación de 4 bytes sobre ella. Si hay un error en la verificación, el tipo de información del error se enviará de regreso a la computadora host para su retransmisión. Solo cuando los datos sean completamente correctos se guardará el marco de datos en la dirección Flash correspondiente.