Implementando / usando un controlador SATA

2

Empiezo diciendo que no soy un ingeniero eléctrico, tengo una comprensión básica de las cosas de la escuela y del trabajo (soy un programador informático desde hace mucho tiempo), pero este no es mi campo de competencia. .

Estoy en el proceso de evaluar la viabilidad de un dispositivo que me gustaría intentar diseñar y producir. Pero, incluso antes de pagarle a un especialista por un estudio de factibilidad, me gustaría entender cuánto estoy lejos de la realidad.

El foco del dispositivo (90% de su funcionalidad) será escribir datos en discos SSD conectados a través de un puerto SATA, por lo que necesitaré algún tipo de chip capaz de hacer eso (o, en una proporción extrema, para obtener uno diseñado para ello). ¿Es esto algo realista? ¿Puede un controlador SATA simplemente comprarse y usarse fácilmente en una placa, o incluso diseñarse desde cero? (para tener un solo chip que haga todo)?

    
pregunta motoDrizzt

4 respuestas

3

Varios chips ARM SOC cuentan con una interfaz SATA, por lo que no creo que ese requisito sea una barrera particularmente grande. Por ejemplo, los SOC basados en ARM de Allwinner y Texas Instruments , SATA e incluso SATA II están disponibles.

Simplemente asegúrese de estar usando un chip que admita SATA y alimente grandes cantidades de memoria, un sistema operativo real como Linux y muchos ciclos para que esto suceda. Si el requisito está escrito desde el principio, no creo que sea tu mayor problema. Impulsa el nivel requerido de sofisticación de hardware alrededor del nivel Raspberry Pi (CPU de clase GHz con mucha memoria).

    
respondido por el Spehro Pefhany
3

Soy un firme defensor del uso de la tecnología existente siempre que sea posible. El apalancamiento ahorra mucho dinero en el desarrollo de productos.

Dicho esto, creo que estarías mucho mejor pensando en usar un SSD que se adjunta detrás de una interfaz USB. Hay disponibles varios chips de interfaz directa a través de USB a SATA que se usan comúnmente en gabinetes de unidades externas. En estos días hay incluso tipos de USB3 que pueden mantener la velocidad similar a SATA. USB3 limita las opciones disponibles para los hosts, ya que hay más SOC y MCU con USB2.

    
respondido por el Michael Karas
3

He diseñado varios productos con interfaces SATA a diferentes niveles de velocidad. Encontrará controladores SATA (al menos discretos) en dos interfaces principales:

  • USB
  • PCI Express

PCI Express básicamente exige el uso de un FPGA o un SoC de gama alta en su diseño, que viene junto con la complejidad del diseño del equipaje esperado de ese tipo de diseño.

Con USB, es probable que todavía te quedes con un dispositivo con paquete BGA (a menos que estés de acuerdo con SATA-I) pero a costa de requerir un dispositivo maestro USB, reducirás enormemente la complejidad de tu diseño.

A velocidades SATA-3 (6Gbps), la inversión en equipos será alta para depurar adecuadamente el diseño. Los requisitos de diseño de la traza no son el fin del mundo si trabaja con su casa de fabricación para obtener las geometrías adecuadas y utilizar un paquete EDA decente.

Por último, vale la pena señalar que podría omitir SATA por completo con la mayor disponibilidad de SSD PCI Express nativos.

Si estuviera haciendo esto, elegiría lo siguiente (adivinando su intención de diseño):

  • adquisición de datos de alta velocidad / baja latencia: FPGA - > SSD PCIe. La mayoría de los modelos de gama media tienen núcleos de IP duro PCIe integrados que pueden funcionar como un complejo raíz. Si usa un Zynq o similar, también puede ejecutar una distribución completa de Linux a bordo.
  • Periférico de almacenamiento personalizado: ARC SoC de gama alta (i.MX6, etc.) - > SATA I / F - > SSD. Vale la pena señalar que muchos de estos diseños de SoC ni siquiera se acercan a ofrecer el rendimiento teórico de interfaces como SATA, pero ciertamente "funcionarán".
respondido por el Krunal Desai
2

Easilly es subjetivo, espera pagarle a una persona experimentada de alta velocidad, dinero significativo para diseñar y crear un prototipo de una placa con una interfaz SATA. Para un trabajo de bajo volumen, esperaría que los tableros existentes en los que alguien ya haya resuelto los problemas de hardware sean más económicos.

Las preguntas reales que debe hacerse para guiarlo hacia la mejor solución son:

  1. ¿Cuántos datos necesita colocar en estos SSD?
  2. ¿De dónde viene?
  3. ¿Qué tan rápido necesitas moverlo?
  4. ¿En qué volumen pretende producir este dispositivo?

Los chips USB a SATA están disponibles, al igual que los PCI y PCI express a los chips SATA y los "procesadores de aplicaciones" con interfaces SATA. Es poco probable que encuentre SATA en los microcontroladores. Muchos FPGA tienen transceptores seriales que se pueden usar para SATA, pero probablemente solo consideraría esa opción si el FPGA fuera la principal fuente de datos por otras razones.

    
respondido por el Peter Green

Lea otras preguntas en las etiquetas