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