Red de conocimiento informático - Aprendizaje de programación - controlador de dispositivo linuxi2ccontrolador i2clinux

controlador de dispositivo linuxi2ccontrolador i2clinux

¿Cuál es la diferencia entre el desarrollo de controladores para Linux y el controlador de microcontrolador?

¿Cuáles son las siguientes diferencias entre el desarrollo de controladores lonux y el desarrollo de controladores de microcontroladores? Desarrollo de aplicaciones ARM-Linux y microcontrolador lonux:

Aquí hay una explicación primero. Hay dos formas principales de desarrollar aplicaciones ARM: una es desarrollar aplicaciones directamente en el chip ARM sin utilizar un sistema operativo. Conocido como programación bare-metal, este método de desarrollo se utiliza principalmente en algunos chips ARM de gama baja. Su proceso de desarrollo es muy similar al de una microcomputadora de un solo chip y no se describirá aquí.

Otro método es ejecutar el sistema operativo en el chip ARM. Para el funcionamiento del hardware, es necesario escribir los controladores correspondientes. El desarrollo de aplicaciones se basa en el sistema operativo. Desarrollo de microcontroladores La diferencia es grande. Las principales diferencias entre el desarrollo de aplicaciones ARM-Linux y el desarrollo de microcontroladores son las siguientes:

(1) Los dispositivos de hardware del entorno de desarrollo de aplicaciones son diferentes para los microcontroladores: placa de desarrollo, emulador (depurador), cable USB; ARM-Linux: placa de desarrollo, cable de red, cable de puerto serie, tarjeta SD; para el desarrollo de ARM-Linux, generalmente no hay un depurador de hardware, especialmente en el proceso de desarrollo de aplicaciones, los depuradores de hardware rara vez se utilizan y la depuración de programas es principalmente Depuración. se realiza a través del puerto serie pero cabe destacar que también existen emuladores de hardware para chips ARM, pero normalmente se utilizan para desarrollo bare metal;

(2) Los métodos de descarga del programa son diferentes para los microcontroladores: descarga del emulador (depurador) o descarga del puerto serie

ARM-Linux: descarga del puerto serie, descarga de red tftp o directa; leer Escriba tarjetas SD, MMC y otros dispositivos de almacenamiento para implementar la descarga del programa; esto está directamente relacionado con el dispositivo de hardware del entorno de desarrollo, ya que no hay un emulador de hardware, la descarga del emulador generalmente no se usa cuando se desarrolla ARM-Linux; De hecho, proporciona más métodos de descarga para el desarrollo de aplicaciones ARM-Linux.

(3) Los recursos de hardware del chip son diferentes. Microcontrolador: generalmente un sistema informático completo, que incluye RAM en el chip, FLASH en el chip y varios periféricos como UART, I2C, AD, DA. , etc.;

p>

ARM: por lo general, solo se requiere CPU y un circuito externo para proporcionar RAM para el funcionamiento normal de ARM. El circuito externo proporciona FLASH, tarjeta SD y otras imágenes del sistema de almacenamiento. y realiza diversas funciones periféricas a través de circuitos externos. Debido a la gran potencia de procesamiento del chip ARM, se pueden realizar varias funciones complejas a través de circuitos externos, y sus funciones son mucho más potentes que las de una microcomputadora de un solo chip.

(4) La ubicación de almacenamiento del firmware es diferente. Los microcontroladores generalmente tienen memoria flash en el chip y el programa de firmware generalmente se almacena en esta área. Si el firmware es grande, se necesita una memoria flash externa. Se diseñará a través de un circuito externo para almacenar el firmware.

ARM-Linux: Dado que no tiene flash en el chip y necesita ejecutar un sistema operativo, la imagen completa del sistema suele ser grande, por lo que la imagen del sistema operativo y las aplicaciones desarrolladas por ARM-Linux suelen ser almacenado en MMC externo, tarjeta SD o dispositivo SATA, etc.

(5) Microcontroladores con diferentes métodos de inicio: Su estructura es simple e integra flash. Generalmente, el fabricante del chip agrega una instrucción de salto fija cuando se enciende el programa para saltar directamente a la entrada del programa (generalmente). en la memoria flash); la aplicación desarrollada se compila a través de un compilador y se descarga directamente al espacio de direcciones correspondiente utilizando una herramienta de descarga especial, por lo tanto, después de encender el sistema, se ejecuta directamente en la entrada del programa correspondiente para realizar el inicio del sistema.

ARM-Linux: debido a que utiliza chips ARM, tiene una alta eficiencia de ejecución, funciones potentes y periféricos relativamente ricos. Es un sistema informático potente y necesita ejecutar un sistema operativo, por lo que su método de inicio es. significativamente diferente al de un microcontrolador. Hay algunas diferencias, pero el método de inicio es básicamente el mismo que el de una computadora doméstica. Su inicio generalmente incluye BIOS, cargador de arranque, inicio del kernel, inicio de aplicaciones y otras etapas;

(a) Inicio del BIOS: BIOS es la información de inicio correspondiente establecida por el fabricante del equipo (fabricante de chips o placas de circuito), que está en el dispositivo Después de encenderlo, leerá la información del dispositivo de hardware correspondiente, inicializará el dispositivo de hardware y luego saltará a la ubicación del cargador de arranque (esta ubicación es una ubicación fija, configurada por el BIOS).

(Según mi comprensión personal, el inicio del BIOS es similar al inicio del microcontrolador. Se debe utilizar un depurador de hardware correspondiente para escribir el firmware y almacenarlo en un espacio flash determinado. Después de encender e iniciar el dispositivo, las instrucciones en el espacio flash se lee para iniciar el programa BIOS)

(b) Inicie el gestor de arranque: esta parte ya pertenece al desarrollo del software integrado de Linux. El programa del gestor de arranque correspondiente se puede personalizar mediante la modificación del código. El gestor de arranque generalmente se descarga leyendo y escribiendo directamente en la tarjeta SD. Es decir, escriba y personalice el gestor de arranque correspondiente, compile y genere el archivo de imagen del gestor de arranque y luego use una herramienta (dedicada o general) para descargarlo en el área MBR de la tarjeta SD (generalmente el primer sector del área de almacenamiento). ). En este momento, debe configurar la ubicación de carga del cargador de arranque en el BIOS o mediante la configuración del circuito de hardware de la placa de circuito. Si el BIOS está configurado para arrancar desde la tarjeta SD, una vez completada la inicialización del BIOS, saltará al; Ubicación de la tarjeta SD para ejecutar el gestor de arranque. Esto permite iniciar el gestor de arranque. La función principal del gestor de arranque es inicializar los dispositivos de hardware necesarios, crear cierta información requerida por el kernel y transferir esta información al kernel a través de mecanismos relevantes, llevando así el entorno de software y hardware del sistema a un estado adecuado y finalmente llamando al sistema operativo. El kernel del sistema realmente desempeña el papel de arrancar y cargar el kernel.

(c) Inicie el kernel: después de que el gestor de arranque complete la inicialización y otros trabajos relacionados, se llamará al programa de inicio del kernel. Esto conduce al inicio real del contenido relacionado con el sistema operativo, incluido el inicio de la configuración de hardware correspondiente, la gestión de tareas, la gestión de recursos y otros programas del kernel.

(d) Iniciar aplicaciones: una vez iniciado el kernel del sistema operativo, puede comenzar a iniciar las aplicaciones necesarias para completar operaciones comerciales reales.

¿Qué debo hacer si el puerto arduinoio no es suficiente?

Lo que puede no ser suficiente es pwm, que requiere una placa de expansión. Es más, necesitas convertir i2c a gpio. Por ejemplo, para controlar una matriz de LED, el puerto IO obviamente no es suficiente, por lo que se necesita una placa controladora i2c. Si no, puedes usar otro arduino para expandirlo.

¿Anomalía en el controlador del dispositivo i2chid?

Solo necesita usar el controlador maestro en 360 Security Guard para reinstalar el controlador. Debería ser normal después de la reinstalación.

¿Qué tal el programador de disco duro i2c?

La calidad es buena. Este producto programador representa un avance tecnológico importante, desde la baja velocidad del programador tradicional y los pocos chips de soporte hasta el programador universal rápido, confiable y rentable actual. Se comunica directamente con el puerto USB de la computadora cuando está en funcionamiento y su interfaz de controlador lo hace. Operación muy conveniente.

¿Cuál es la función del controlador i2c?

I2C (Circuito Interintegrado), que debería llamarse bus de circuito integrado en chino, es un bus de comunicación en serie que utiliza una arquitectura multimaestro-esclavo. Fue diseñado por Philips a principios de los años 80 para. Facilitar la placa base, la comunicación entre sistemas integrados o teléfonos móviles y componentes de dispositivos periféricos. Debido a su simplicidad, se usa ampliamente para la comunicación entre microcontroladores y conjuntos de sensores, pantallas, dispositivos IoT, EEPROM, etc.

Las funciones más importantes de I2C incluyen:

Solo se requieren dos buses

No existen requisitos estrictos de velocidad de baudios, como el uso de RS232, el maestro; El dispositivo genera el reloj del bus;

Existe una relación simple maestro/esclavo entre todos los componentes, y cada dispositivo conectado al bus es direccionable por software con una dirección única;

I2C es verdaderamente Bus de dispositivo multimaestro, que proporciona arbitraje y detección de conflictos;

Velocidad de transmisión;

Modo estándar: StandardMode=100 Kbps

Modo rápido: FastMode=400 Kbps p>

Modo de alta velocidad: Highspeedmode=3.4Mbps

Modo ultrarrápido: Ultrafastmode=5Mbps

Número máximo de dispositivos maestros: ilimitado;

Máximo esclavos Número de máquinas: Teóricamente 127;

Las anteriores son algunas características importantes de I2C que se presentarán más adelante.

Capa de hardware

El protocolo I2C requiere solo un pin SDA y SCL. SDA es la abreviatura de Serial Data Line y SCL es la abreviatura de Serial Clock Line. Estas dos líneas de datos deben conectarse a resistencias pull-up.

La conexión entre dispositivos es la siguiente:

Usando I2C, se pueden conectar múltiples esclavos (Slave) a un solo dispositivo maestro (Master), y también puede haber múltiples maestros. El dispositivo (Master) controla uno o más esclavos (Slave).

Esta función es útil si desea que varios microcontroladores (MCU) registren datos en una sola tarjeta de memoria o muestren texto en una sola pantalla LCD.

Todos los autobuses I2C (SDA, SCL) usan controladores de drenaje abierto (controladores de drenaje abierto) internamente, por lo que SDA y SCL se pueden llevar a un nivel bajo a bajo, pero no a un nivel alto, por lo que Use una resistencia pull-up en cada línea para mantenerla alta de forma predeterminada.