Red de conocimiento informático - Material del sitio web - Diseño de circuito de hardware del sistema de adquisición de temperatura basado en host USB

Diseño de circuito de hardware del sistema de adquisición de temperatura basado en host USB

Diseño de un sistema de adquisición de datos de gran capacidad basado en un host USB

Autor: Wan Tianjun de la Universidad Yangtze, Xu Aijun, Li Jiaxu Hora: 2007-01-26 Fuente: " Aplicación de sistemas integrados y microcomputadoras de un solo chip》Comentarios de exploración

Introducción

Con la creciente expansión del campo del almacenamiento de datos móviles, las funciones de host USB se implementan en sistemas integrados para satisfacer la necesidad El uso de dispositivos de almacenamiento USB para el almacenamiento de datos es cada vez más urgente. Como nuevo tipo de dispositivo de almacenamiento móvil, el disco U es muy popular por su pequeño tamaño, alta velocidad, antivibración y gran versatilidad. Por lo tanto, el desarrollo de un disco U de control de host USB incorporado como almacenamiento de datos en el sistema de adquisición de datos. buen valor práctico y perspectivas de aplicación.

1 Análisis del protocolo del dispositivo de almacenamiento USB de gran capacidad

El diseño de un sistema de adquisición de datos de gran capacidad basado en USB consiste principalmente en implementar un host USB integrado. Si desea diseñar un host USB integrado que pueda leer y escribir directamente en unidades flash USB, debe comprender el protocolo del dispositivo de almacenamiento masivo USB. La estructura de software actual de los dispositivos de almacenamiento masivo USB se muestra en la Figura 1.

Figura 1 Diagrama esquemático de la estructura del software de un dispositivo de almacenamiento masivo USB En la Figura 1, la parte izquierda de la línea de puntos es la estructura del controlador del host, que también es lo que constituye el host USB integrado. quiere implementar. La capa superior a la izquierda es la API de la capa del sistema de archivos grueso, que se utiliza para proporcionar a los usuarios métodos para acceder a los dispositivos de almacenamiento.

Los datos del disco USB se almacenan en formato de archivo FAT16 y se utiliza ampliamente en dispositivos de almacenamiento móviles debido a su alta compatibilidad. A continuación se ofrece un breve análisis de la estructura del sistema de archivos fat16 y los principios de organización del espacio de almacenamiento.

(1) Estructura del sistema de archivos Fat16

Un disco de formato fat se puede dividir aproximadamente en 5 partes: área mbr, área dbr, área fat, área fdt y área de datos.

área mbr: también llamada registro de arranque maestro, seguido de un dpt de 64 bytes (tabla de particiones de disco, tabla de particiones de disco). Dado que no es necesario iniciar desde la unidad flash USB y la unidad flash USB tiene solo una partición, no existe dicha área de datos en la unidad flash USB.

área dbr: el área de registro de inicio del sistema operativo, que generalmente ocupa el oésimo sector de la partición, tiene una longitud máxima de 512 bytes y está compuesta por instrucciones de salto, bpb y banderas de finalización.

Área grasa: almacena la tabla de asignación de archivos. La tabla de asignación de archivos es una lista correspondiente al número de grupo del área de datos uno a uno, lo que refleja el uso de todos los grupos. El tamaño de cada unidad de entrada determina el tipo de FAT. Por ejemplo, la unidad de entrada de FAT16 es de 16 bits. Las mesas gordas generalmente tienen una copia de seguridad.

área fdt: almacena la tabla del directorio de archivos, ubicada después de la tabla fat de respaldo. fdt se compone linealmente de entradas de directorio de 32 bits y registra la unidad inicial y los atributos de cada archivo (subdirectorio) en el directorio raíz. El tamaño del fdt es de 32 sectores y puede guardar hasta 512 entradas de directorio.

Área de datos: es el lugar donde se almacenan los datos en el verdadero sentido. Se encuentra después de fdt y ocupa la mayor parte del espacio de datos en el disco duro.

(2) Principio de organización del espacio de almacenamiento de FAT16

Cuando el espacio en disco se formatea como una partición FAT, el sistema de archivos FAT planificará la partición como un área completa asignable para datos. almacenamiento. FAT divide el espacio en disco en unidades de un cierto número de sectores, y dichas unidades se denominan clústeres. En circunstancias normales, el principio de 512 bytes por sector permanece sin cambios. El tamaño del clúster es generalmente de 2n (n es un número entero) de sector (el espacio de almacenamiento máximo de cada clúster es 32 kb). Generalmente, se utiliza el modo de direccionamiento de bloque lógico lba (direccionamiento de bloque lógico).

La capa del controlador ufi/ata en el medio del lado izquierdo de la línea de puntos en la Figura 1 convierte el acceso del programa de aplicación al formato de comando/datos ufi o ata, y realiza comandos/datos con el dispositivo de almacenamiento externo según la definición de ufi o ata de calidad inferior. Estado/intercambio de datos; la capa inferior es el controlador de transmisión USB, que es responsable de enviar los datos UFI/ATA de la capa superior al bus USB y recibir el estado/. datos devueltos desde el dispositivo de almacenamiento.

cbi/bulk-only/ata/ufi es la abreviatura de cuatro especificaciones de subclase independientes en la especificación de clase de almacenamiento masivo USB. Las dos primeras subeespecificaciones definen el método de transmisión de datos/comandos/estado en USB. La especificación de transmisión solo masiva solo usa puntos finales masivos para transmitir datos/comandos/estado, mientras que la especificación de transmisión cbi usa tres tipos de puntos finales: control/masivo/interrupción para transmitir datos/comandos/estado. Las dos últimas subeespecificaciones definen comandos de operación para medios de almacenamiento. La especificación del comando ata se utiliza para discos duros y la especificación del comando ufi se desarrolla para el almacenamiento móvil USB.

2 Diseño de host USB integrado

2.1 Diseño de hardware

El sistema utiliza el microcontrolador de núcleo 8051 mejorado stc89c516rd+ como chip de procesamiento central y selecciona Nanjing Qin Heng. El ch375s de Electronics se utiliza como chip de control de host USB.

stc89c516rd+ tiene 64 kb de memoria flash para programas, 1280 bytes de ram (256 bytes de ram interna y 1 kb de ram externa) y admite programabilidad en el sistema/en la aplicación (isp, iap); Es un chip de interfaz universal para bus USB que cumple con la especificación del protocolo USB1.1 y admite el modo host USB y el modo dispositivo USB/dispositivo esclavo. ch375s tiene un bus de datos de 8 bits, lectura, escritura, líneas de control de selección de chip y salida de interrupción. Por lo tanto, cuando ch375s se utiliza como una interfaz de host USB de alta velocidad, los componentes periféricos solo requieren un oscilador de cristal y un condensador, y Se puede conectar fácilmente al microcontrolador/dsp/en el bus del sistema de controladores como mcu/mpu. Teniendo en cuenta que la lectura/escritura de un disco USB o un disco duro móvil generalmente se realiza en modo sector, es necesario agregar un búfer de datos de disco y un búfer de datos de archivo (ambos son múltiplos enteros de 512 bytes), y cuanto mayor sea el búfer, La eficiencia de ejecución es mayor, por lo que se amplían 32 kb de RAM.

El circuito host USB se muestra en la Figura 2.

Con base en el análisis anterior, se pueden diseñar las siguientes operaciones de archivos:

① Crear archivos. Solicite nuevas entradas de directorio en fdt.

②Escribir archivos. Al escribir un archivo nuevo, es necesario encontrar un grupo no utilizado en la tabla FAT y escribir el número del grupo en la posición inicial del número del grupo en la estructura de datos del directorio correspondiente al archivo. Cuando la longitud del archivo es mayor que un grupo, el número de grupo del siguiente grupo disponible debe completarse en la posición del número de grupo inicial correspondiente en la tabla gruesa hasta el último grupo del archivo (la posición correspondiente en la tabla gruesa la tabla está completa en ffff). Si el disco tiene FAT de respaldo, se debe completar el contenido correcto en la ubicación correspondiente de la tabla FAT de respaldo.

③Eliminar archivos. Además de configurar los indicadores correspondientes para las entradas de directorio correspondientes en el fdt, se debe modificar la tabla fat y realizar una copia de seguridad de la tabla fat. Borre la posición del número de clúster utilizada por este archivo a 0, lo que indica que este clúster no está en uso actualmente.

Dado que los subdirectorios se consideran archivos especiales en FAT16, sus operaciones son similares a las operaciones de archivos, por lo que no los describiremos nuevamente.

El sistema de archivos fat16 integrado proporciona a los usuarios funciones API a nivel de archivo, como ch375_creat_file(), ch375_write_file(), ch375_delete_file(), etc. Al ejecutar la función API a nivel de archivo, seck_empty_cluster() se llama para encontrar un clúster vacío, link_cluster_list() establece la cadena del clúster, seck_sector() localiza el puntero del archivo y otras funciones intermedias. Estas funciones intermedias llaman a los comandos ch375s correspondientes a la clase de dispositivo de almacenamiento masivo, como set_usb_mode, disk_read, disk_write, etc. Creemos adc. txt y escriba datos de muestreo a/d en él como ejemplo. El flujo de trabajo se muestra en la Figura 3.

Cuando se utiliza el sistema de archivos fat16 para almacenar archivos, la unidad más pequeña es un clúster. Incluso un archivo pequeño ocupará un grupo, por lo que para ahorrar espacio de almacenamiento, en la Figura 3, crear un archivo con el mismo nombre y escribir datos en él se convierte en agregar datos al archivo original.

3 Diseño de un sistema de adquisición de datos de gran capacidad

Utilice el host USB integrado diseñado para construir un sistema de adquisición de datos de gran capacidad. El diagrama de bloques del sistema se muestra en la Figura. 4.

El sensor de temperatura utiliza ds18b20. Es un sensor de temperatura digital de un solo bus con un rango de medición de -55~+125℃, precisión de conversión A/D programable de 9~12 bits y una resolución de medición de temperatura de hasta o. 0625 ℃. El cristal líquido utiliza tm320240eccw, que es un cristal líquido de matriz de puntos de 320 × 240. El chip de control de pantalla es sed1335. Puede mostrar los datos de temperatura medidos en modo texto o crear una coordenada plana autoconstruida para mostrar los datos de temperatura en modo curva. . Se utiliza un teclado externo de 4×5 para configurar el intervalo de tiempo y la duración de la recolección; las tolerancias de temperatura alta y baja permitidas por el sistema; configurar el tiempo durante la recolección e ingresar al área de almacenamiento donde desea ver los datos. El teclado es administrado por 8279 para reducir la carga sobre el microcontrolador. Debido a que el microcontrolador ya ha tomado algún tiempo para procesar la adquisición de temperatura y mostrar los datos de temperatura en la pantalla LCD, además de la lectura/escritura regular e irregular del disco USB, la carga ya es pesada, por lo que el escaneo y el procesamiento del teclado se dejan en manos de el 8279. El microcontrolador utiliza el modo de consulta para consultar la interrupción de 8279.

Los controladores incluyen el controlador LCD, el controlador ds18820 y el controlador 8279. El trabajo principal es la preparación del controlador LCD. El controlador LCD incluye inicializar la pantalla LCD, leer y escribir subrutinas de parámetros, escribir subrutinas de comandos, crear subrutinas de coordenadas, dibujar subrutinas de puntos, subrutinas de escritura de caracteres chinos, etc. La pantalla LCD muestra información rápida durante la inicialización del sistema y la inicialización y enumeración del disco USB. Durante el proceso de recopilación, los datos de temperatura se muestran en modo curva.

Conclusión

La estructura de hardware de la interfaz de host USB implementada en base a ch375s es fácil de expandir en otras plataformas de desarrollo. Su pila de protocolos de capa de archivos central está escrita en lenguaje C estándar y. Tiene buena portabilidad. Se han utilizado soluciones similares de recopilación de datos de gran capacidad basadas en USB en sistemas de almacenamiento de datos para trenes ligeros y grabadores sin papel. Con el advenimiento de la era USB OTG, la recopilación de datos de gran capacidad basada en USB tendrá perspectivas de aplicación muy amplias.