El bus I2C usa solo dos líneas de señal, SCL y SDA, para realizar la interacción de datos entre dispositivos, simplificando enormemente la ocupación de los recursos de hardware y el espacio de diseño de la placa PCB. Por lo tanto, el bus I2C se usa ampliamente en interfaces entre dispositivos como EEPROM, relojes reales y pantallas LCD y CPU pequeñas.
Linux define la arquitectura del controlador I2C del sistema. En los sistemas Linux, el controlador I2C consta de tres partes: el núcleo I2C, el controlador del bus I2C y el controlador del dispositivo I2C. Estas tres partes trabajan juntas para formar un marco I2C muy versátil y adaptable.
La primera sección de este capítulo analizará la arquitectura I2C de Linux y explicará las funciones e interconexiones de los tres componentes.
El Capítulo 2 analizará el núcleo I2C de Linux y explicará las funciones del archivo i2c-core.c y la implementación de las funciones principales.
Las secciones 3 y 4 detallarán los métodos de escritura del controlador de bus I2C y del controlador de dispositivo I2C, respectivamente, y proporcionarán plantillas de diseño para referencia.
Las Secciones 5 y 6 se basarán en las plantillas de diseño proporcionadas en las Secciones 3 y 4, explicando el controlador de bus I2C S3C2410 ARM y el dispositivo de chip de video analógico /convertidor digital SAA7113H montado en él. Escribe un método.
15.1 Arquitectura I2C de Linux
La arquitectura I2C de Linux se divide en tres componentes:
? I2C Core
I2C Core proporciona el bus I2C Registro del controlador del dispositivo y del controlador, método de cierre de sesión, método de comunicación I2C (es decir, "algoritmo", creo que la traducción literal es "método de cálculo" no es apropiado, para evitar confusiones, lo siguiente utilizará directamente el "algoritmo" El código que no está relacionado con el adaptador específico y el dispositivo de detección, el código de la capa superior de la dirección del dispositivo de detección y similares.
? Controlador de bus I2C
El controlador de bus I2C es una implementación del lado del adaptador de la arquitectura de hardware I2C. El adaptador puede ser controlado por la CPU o incluso directamente integrado en la CPU.
El controlador de bus I2C incluye principalmente la estructura de datos del adaptador I2C i2c_adapter, la estructura de datos del algoritmo del adaptador I2C i2c_algorithm y una función que controla el adaptador I2C para generar señales de comunicación.
El código controlado por el bus I2C nos permite controlar el adaptador I2C para generar el bit de inicio, el bit de parada, el ciclo de lectura y escritura, y la lectura y escritura, generar ACK, etc. en el modo esclavo.
? Controlador de dispositivo I2C
El controlador de dispositivo I2C es la implementación del dispositivo en la arquitectura de hardware I2C. El dispositivo generalmente está conectado al adaptador I2C controlado por la CPU e intercambia datos con la CPU a través del adaptador I2C. .
El controlador de dispositivo I2C incluye principalmente las estructuras de datos i2c_driver y i2c_client. Necesitamos implementar las funciones miembro de acuerdo con el dispositivo específico.
Figura 15.1 Arquitectura I2C de Linux
En el núcleo de Linux 2.6, todos los dispositivos I2C se muestran en el sistema de archivos sysfs y existen en /sys /bus /El directorio I2c /aparece en la forma de la dirección del adaptador y la dirección del chip, tales como:
$ tree /sys /bus /i2c /
/sys /bus /i2c /
" Un programador real no necesita un IDE. Todos usan un editor de texto con un complemento
en el servidor RedHat Enterprise Linux 5.4 Entorno del sistema Sistema operativo: servidor RedHat
Falta el archivo de cabecera ‘ security /pam_modules.h ’ es parte de la versión de des
Hay algunos escenarios en los que el administrador del sistema quiere que solo unos pocos usuarios
Linux parte del resumen de uso del comando de administración del sistema
servicios de seguridad de Linux ssh contra la violencia descifrar el
Análisis del principio del mecanismo de la cola de espera del kernel de Linux
Linux chmod 755 y chmod 777 significado y diferencia
Técnicas de administración de seguridad para el sistema operativo avanzado de Linux
Se detalla el mecanismo de seguridad de Linux
Consideraciones para usar ssh para administrar VPS bajo Linux
Resumen de la experiencia de optimización del rendimiento de Solaris
compilación de GCC parte de la información incrustada
Modo PASV de Vsftp (transferencia en modo pasivo) y modo de puerto
Cómo disfrazar el sistema Linux Establecer la ilusión del sistema para piratas informáticos
Las habilidades de gestión del sistema Linux se acumulan en gran medida
¿Dónde está Win7 /8.1 versión gratuita de actualización oficial Win10 oficial?
Win7 la página web del sistema solución lenta abierta
Xp acaba de instalar el sistema. El controlador de la NIC tiene un signo de exclamación amarillo
El sistema Win7 optimiza el efecto de la reproducción de Power DVD
La última grieta de dos activación de Windows 7 Gadgets
Política de grupo fácil de jugar bajo el sistema de Windows 7
Win 10 Mobile Preview 10134 Cool Exposure