NOMBRE¶
dsp56k - interfaz con el dispositivo DSP56001
SINOPSIS¶
#include <asm/dsp56k.h>
ssize_t read(int fd, void *data, size_t length);
ssize_t write(int fd, void *data, size_t length);
int ioctl(int fd, DSP56K_UPLOAD, struct dsp56k_upload *program);
int ioctl(int fd, DSP56K_SET_TX_WSIZE, int wsize);
int ioctl(int fd, DSP56K_SET_RX_WSIZE, int wsize);
int ioctl(int fd, DSP56K_HOST_FLAGS, struct dsp56k_host_flags *flags);
int ioctl(int fd, DSP56K_HOST_CMD, int cmd);
CONFIGURACIÓN¶
El dispositivo dsp56k es un dispositivo de caracteres con número mayor 55 y
número menor 0.
DESCRIPCIÓN¶
El Motorola DSP56001 es un procesador de señales digitales de 24 bits
totalmente programable que se encuentra en computadores compatibles con Atari
Falcon030. El fichero especial
dsp56k se utiliza para controlar el
DSP56001, y para enviar y recibir datos usando el puerto de host bidireccional
mediante la técnica de handshaking.
Para enviar un flujo de datos al procesador de señales, utilice write() con
el dispositivo, y read() para recibir datos procesados. Los datos pueden ser
enviados o recibidos en cantidades de 8, 16, 24, o 32 bits por parte del host,
pero siempre serán interpretados como cantidades de 24 bits por el
DSP56001.
Las siguientes llamadas
ioctl(2) pueden utilizarse para controlar el
dispositivo
dsp56k:
- DSP56K_UPLOAD
- reinicia el DSP56001 y carga un programa. El tercer
argumento a ioctl() debe ser un puntero a una estructura
dsp56k_binary donde el miembro bin apuntará a un
programa binario DSP56001, y len contendrá la longitud del
programa en palabras de 24 bits.
- DSP56K_SET_TX_WSIZE
- establece el tamaño de la palabra de transmisión.
Los valores permitidos están en el intervalo de 1 a 4, y definen el
número de bytes que serán enviados al mismo tiempo al DSP56001.
Estas cantidades de datos serán o bien rellenadas con bytes cero, o
truncadas para que se ajusten al formato nativo de 24 bits del
DSP56001.
- DSP56K_SET_RX_WSIZE
- establece el tamaño de la palabra de recepción.
Los valores permitidos están en el intervalo de 1 a 4, y definen el
número de bytes que serán recibidos al mismo tiempo del
DSP56001. Estas cantidades de datos serán o bien rellenadas con bytes
cero, o truncadas para que se ajusten al formato nativo de 24 bits del
DSP56001.
- DSP56K_HOST_FLAGS
- lee y escribe las banderas (flags) del host. Las banderas
del host son cuatro bits de propósito general que pueden ser
leídos tanto por la máquina anfitriona como por el DSP56001. Los
bits 0 y 1 pueden ser escritos por el host, y los bits 2 y 3 pueden ser
escritos por el DSP56001.
Para acceder a estas banderas del host, el tercer argumento a ioctl() debe
ser un puntero a una estructura dsp56k_host_flags. Si el bit 0 o el
bit 1 están activos en el miembro dir, el bit correspondiente
en out será escrito en las banderas del host. El estado de
todas las banderas será devuelto en los cuatro bits de orden inferior
del miembro status.
- DSP56K_HOST_CMD
- envía una orden de anfitrión. Los valores
permitidos están en el intervalo de 0 a 31, y especifican una orden
definida por el usuario que es manejado por el programa que se ejecuta en
el DSP56001.
FICHEROS¶
/dev/dsp56k
AUTORES¶
Fredrik Noring <noring@nocrew.org>, lars brinkhoff
<lars@nocrew.org>, Tomas Berndtsson <tomas@nocrew.org>.
VÉASE TAMBIÉN¶
linux/include/asm-m68k/dsp56k.h, linux/drivers/char/dsp56k.c,
http://dsp56k.nocrew.org/, DSP56000/DSP56001 Digital Signal Processor User's
Manual