¿El diseñador de hardware considera el software (firmware o controladores) al diseñar hardware? [cerrado]

0

Me gusta saber cuál es el procedimiento para construir un nuevo dispositivo. Por ejemplo, un diseñador de hardware decide hacer una nueva computadora portátil que pueda ejecutar Windows o Linux, o alguien quiere construir un nuevo dispositivo Android, elige una CPU adecuada y otras partes como RAM, tarjeta gráfica, tarjeta de sonido, Wi-Fi, Bluetooth , Almacenamiento, LCD, etc.

Pero ¿qué pasa con el firmware y los controladores?

Totalmente me gusta saber qué consideración de software debe tener un diseñador de hardware para construir un nuevo dispositivo.

Simplemente, en la computadora de escritorio, compramos las partes por separado (placa madre, tarjeta gráfica, tarjeta de sonido, LCD, CD / DVD ROM, etc.) y no tenemos una gran preocupación y una consideración especial para elegir (tal vez solo pensando en ellas protocolo de comunicación SATA, IDE, puertos PCI, etc.).

Pero, ¿qué ocurre cuando nos gusta hacer una computadora portátil o una tableta Android? ¿Deberíamos escribir algún código de bajo nivel para estos o solo colocamos las partes una junto a la otra y construimos un nuevo dispositivo?

Por ejemplo, cuando la compañía DELL quiere construir una nueva computadora portátil, elige el procesador Intel HQ6700 y Geforce m960 para la parte gráfica y etc., ¿por lo tanto, DELL debe escribir cualquier código de bajo nivel cuando hace su computadora portátil?

¿O cuando Samsung quiere construir una nueva tableta o teléfono inteligente, y quiere usar el chipset Qualcomm snapdragon y otras partes como bluetooth y wi-fi, debería Samsung escribir algún código de bajo nivel para construir su nuevo dispositivo? En caso afirmativo, ¿en qué parte y por qué?

Veo a muchas compañías chinas que construyen tabletas y teléfonos inteligentes y escuché que son pequeños grupos en su casa. ¿Es verdad o mentira? Si es verdad, ¿cómo pueden hacer esto? y que es exactamente lo que hacen? ¿Se escriben códigos de bajo nivel? ¿O incluso diseñar hardware?

    
pregunta user145959

2 respuestas

1

Absolutamente. Si no se tiene en cuenta el funcionamiento del firmware, se limitará gravemente la funcionalidad del producto final.

Tenga en cuenta ciertas características de los microcontroladores y los dispositivos con módulo de sistema en placa. Cosas como UARTS, ADCs, GPIO y Ethernet a menudo tienen pines físicos dedicados permanentemente a esas funciones. Sin embargo, a veces esos mismos pines también tienen funciones secundarias configurables que, en su aplicación, se delegarían mejor a otros pines GPIO no específicos.

Los requisitos del producto podrían exigir que los tres puertos UARTS y dos puertos Ethernet deban estar completamente controlados por interrupciones de hardware y no deben interferir con el "bucle principal" en el firmware. Esto significa que el diseñador del circuito (a nivel esquemático) puede asignar esos pines dedicados al inicio del proyecto para evitar que se usen para (accidentalmente) cualquier otra cosa. Los accidentes pueden ocurrir, especialmente cuando hay muchos departamentos involucrados.

Luego, el ingeniero de diseño (a veces la misma persona) generará una placa que simplemente podrá usar la configuración predeterminada para los puertos dedicados y aplicará la información de cualquier nota de aplicación aplicable con confianza.

Planee con cuidado y teniendo en cuenta las funciones disponibles para el firmware, podemos crear sistemas que a veces no necesitan ningún controlador nuevo.

He estado involucrado en el diseño de algunos sistemas embebidos que usaban UART, Ethernet, PCIe, GPIO, I2C, SPI, RS485 y CAN bus al mismo tiempo y no tuvimos que escribir ningún nuevo controlador de nivel de SO Debido a que nos limitamos a los métodos de diseño sensatos, "mantenlo simple", los controladores OS preexistentes ni siquiera notaron nada que no pudieran manejar. Gran parte de esto se hace posible al pasar MUCHO tiempo al inicio del proyecto, simplemente seleccionando los componentes del sistema con mucho cuidado y asegurando que todas las señales puedan ser atendidas en todos los niveles del sistema.

Puede hacer mucho sin tener que escribir ningún controlador y esto es un ENORME beneficio en términos de reducir el tiempo y los seres humanos necesarios para realizar el trabajo. Pero tienes que estar preparado para planificar con anticipación.

    
respondido por el Wossname
2

¡Sí lo hacemos! Además, un buen diseñador de HW también considera la mecánica, el entorno, las especificaciones del cliente y todo lo que de alguna manera puede afectar el dispositivo. FW / SW es la parte simple, ya que con poca experiencia usted sabe lo que será más fácil de implementar para ellos.

    
respondido por el Gregory Kornblum

Lea otras preguntas en las etiquetas