¿Qué tipo de conocimiento necesito para crear este dispositivo integrado?

Creo que depende de cuál sea tu nivel de comodidad con la electrónica y la programación, también, ¿es esto por diversión o por un producto comercial?

Si es solo por diversión / escuela, elija algo como RaspberryPi y un concentrador USB con alimentación. Usted tiene el poder de Linux, por lo que no tiene que preocuparse por la programación de bajo nivel en torno a controladores flash y USB. Hay muchas bibliotecas y tutoriales para conectar una pantalla LCD táctil y alimentar la placa con una batería.

Si está buscando construir un producto comercial, esa es una historia diferente. Compartiré algunas de mis experiencias con BrewBit, donde fuimos, principalmente, con diseño personalizado. Se basa en STM32 ARM Cortex MCU de 32 bits, con un diseño de placa personalizado e integración de varios componentes, como un chip WiFi Ti y una placa de control de potencia.

Fuimos con ChibiOS ya que queríamos soporte multihilo en tiempo real. No hay compatibilidad inmediata para los chips flash, por lo que tuvimos que implementar nuestro propio controlador flash.

Todo esto ha tomado alrededor de un año para dos personas, trabajando a tiempo parcial.

Lo anterior es para referencia, aunque creo que la experiencia sería similar.

Debe considerar lo siguiente:

  • Si tiene buenos antecedentes o acceso a las habilidades de Ingeniería Eléctrica, puede diseñar una solución personalizada para lo que mejor se adapte a sus necesidades. Si no, considere usar algún tipo de solución COTS que lo lleve a la mayor parte del camino.
  • ¿Cuál es su nivel de comodidad con C y ensamblaje? Si va a construir esto desde cero, mejor sepa cómo lidiar con cosas como compilación cruzada, ensamblaje en línea, cargadores de arranque, mapas de memoria, etc.
  • Considerar la disponibilidad de piezas. Tuvimos que cambiar algunos componentes debido al rediseño del diseño de la placa, la disponibilidad y los plazos de entrega.
  • Piense si necesitará certificaciones, por ejemplo, FCC, UL, etc.
  • ¿Será solo una tabla simple o necesitarás un estuche?

En términos de piezas, abundan los microcontroladores con múltiples puertos USB y suficientes pines para conectar cualquier LCD decente, algunos incluso incluyen administración de energía y soporte básico para chips flash.

Sugeriría obtener algunos kits de desarrollo USB, de SparkFun Electronics o algo similar y construir un prototipo realmente tonto. Olvídese de las pantallas LCD y las baterías, vea si puede simplemente iniciar la transferencia de datos. Eso le dará una buena idea de dónde debe ir y algunos de los próximos pasos a seguir.

Si desea ver lo que hicimos para el último prototipo de BrewBit, puede consultar nuestra publicación de blog: https://brewbit.com/blog/6091312…

¿Por qué incluso usar un sistema operativo? No necesitas uno. Probablemente tampoco necesite un microcontrolador robusto, dependiendo de cuánto le importe la capacidad de respuesta.

Entonces, esto es lo que necesitas:

  1. un microcontrolador con 2 interfaces USB (solo debería poder usar un PIC16 o PIC32 de Microchip)
  2. un dispositivo de pantalla táctil con una interfaz con la que el microcontrolador puede hablar (elija lo que quiera)
  3. ya sea una placa de demostración / desarrollo de Microchip para la parte que seleccione, o una placa de pruebas, una placa de prototipo o una PCB que haya diseñado (la placa de demostración / desarrollo sería más fácil / más rápida, si no le importa el costo / calidad)
  4. Los componentes básicos para hacer que el hardware funcione (resistencias, condensadores, etc.): si observa las especificaciones de los dispositivos anteriores, generalmente representarán un diagrama de una configuración de hardware típica

Después de eso, solo necesita código en el microcontrolador para hablar con los dispositivos USB y la pantalla táctil. Este código también debe tener una buena documentación de donde obtuvo las piezas. Eso es.

Si el tiempo es lo más importante para usted, entonces la forma más sencilla de seguir adelante es usar algún dispositivo que ejecute Linux, con un host USB, incluso si es único, siempre puede hacerlo como un chip hub USB. También se requiere soporte de LCD y gráficos para usted, así que elija algo que admita esto de inmediato. Dado que el control de host USB está integrado en la mayoría de los chips en estos días, no necesita o puede usar el chip vinculum.

Use webkit, que es un motor de renderizado para páginas, para dibujar su interfaz en la pantalla LCD. Esa interfaz se realizará mediante secuencias de comandos en algún idioma, tal vez incluso bash, en un servidor web liviano, por ejemplo, boa o uhttpd. Ese script puede ejecutar cosas como montar sus dispositivos de almacenamiento masivo en Linux, copiar archivos a / desde ellos, expulsarlos, de acuerdo con la entrada desde la pantalla, que será un dispositivo de entrada con pantalla táctil.

De esta manera, no tiene que escribir código para manejar la pila USB, luego sus sistemas de archivos. Probablemente no podrá utilizar sistemas de archivos más avanzados que fat32 sin un esfuerzo significativo de todos modos. Su interfaz ahora está en HTML o me gusta. Esto es lo que haría, ya que esto requiere menos esfuerzo, es flexible a los cambios de requisitos, toma menos tiempo.

Cómo abordaría el problema sería encontrar una solución que funcione en un sistema no integrado y luego migrar esa solución a la menor cantidad de hardware que admita su solución no integrada. Parece que hay una serie de ingredientes que implicarían la reinvención de algunas ruedas de software: compatibilidad con dispositivos USB, GUI (o tal vez solo una interfaz de usuario basada en texto) y, potencialmente, compatibilidad con sistemas de archivos. Dado que todos estos caen generalmente bajo el dominio de lo que hacen los sistemas operativos, comenzaría usando uno. Para mí, eso probablemente sería Linux, por una razón mejor de lo que sé. Si conoce algún otro sistema operativo que potencialmente se puede incrustar, hágalo. El quid de sus requisitos establecidos se puede satisfacer con un comando de shell de una línea en la mayoría de las implementaciones de Linux, por lo que desarrollar esa parte de la solución no debería ser demasiado difícil.
Crear la interfaz de usuario y un paquete para su dispositivo parece una tarea mucho más grande que resolver el problema raíz. Dado que tuvo que hacer esta pregunta, supondré que carece de la experiencia o los recursos para diseñar y producir su propio hardware, por lo que deberá ubicar una plataforma de hardware lista para usar con los recursos capaces de soportar el IO y el software que comprende tu solución. La buena noticia es que el mercado es actualmente abundante con tales productos. La mala noticia es que terminará pagando mucho más de lo que un consumidor estaría dispuesto a gastar para comprar su producto terminado, en caso de que esto sea una empresa comercial.

Totalmente de acuerdo con el usuario de Quora.

No es necesario un sistema operativo o un procesador ARM.
Elija un microcontrolador de Microchip o Freescale o TI, preferiblemente la serie PIC18 de Microchip, con dos interfaces USB y un dispositivo de pantalla táctil que puede interactuar con el microcontrolador.

Para conectar el dispositivo de pantalla táctil con un microcontrolador, debe encontrar bastantes proyectos en línea para ayudarlo, TI MSP430 tiene muchos proyectos, PIC también tiene muchos.
Freescale Codewarrior, Microchip Mplab IDEs, etc., deberían ser útiles como software para escribir los códigos en cuestión, ya que tienen algunos códigos de demostración ya presentes para darle un poco de inicio. Proteus VSM será el mejor software para simular visualmente el código generado en un entorno simulado. Elija la versión adecuada según la familia de microcontroladores elegida.

El problema principal para usted sería averiguar el código para la comunicación entre los dos puertos USB. Los puertos USB en los microcontroladores deben ser del tipo OTG y preferiblemente HS (usb2.0) para velocidades de datos eficientes.

En lo que respecta a la lógica del pegamento y los discretos, eso debería ser fácil de encontrar.

Estos enlaces de proyectos deberían ayudarlo a comenzar:
Página sobre proyectos 8051
Página sobre Irjes
Página en Google

Por favor, háganos saber, si tiene algún éxito, será emocionante para mí saber al menos eso.

Si está familiarizado con el lenguaje C y C ++. El código de ejemplo puede ayudarlo a hacer un producto rápidamente.
También tengo un panel de evaluación de brazo amigable (2440), puede encontrar muchos ejemplos en su sitio web o CD.
utilizando sus habilidades lingüísticas para modificar el código de ejemplo, puede obtenerlo.