Publicado el 25 de Marzo del 2019
622 visualizaciones desde el 25 de Marzo del 2019
594,8 KB
114 paginas
Creado hace 19a (25/05/2005)
UNIVERSIDAD DE OVIEDO
ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA
INFORMÁTICA Y TELEMÁTICA DE GIJÓN
DOCUMENTO Nº 2
MANUALES DEL PROGRAMADOR
CONJUNTO DE DRIVERS PARA TARJETAS DE
ADQUISICIÓN DE SEÑALES BAJO LINUX
Adolfo Antonio Fernández Trabanco
JUNIO 2005
Manuales del programador
Índice
- i -
1 .- Introducción ................................................................................... 1
1.1 .- Identificación del proyecto ...................................................... 1
1.2 .- Visión general del documento .................................................. 1
1.3 .- El puerto serie en Linux .......................................................... 2
1.3.1 .- Conceptos de entrada para dispositivos serie ................... 5
1.3.1.1 .- Proceso de entrada canónico................................ 5
1.3.1.2 .- Proceso de entrada no canónico ........................... 5
1.3.1.3 .- Entrada asíncrona .............................................. 5
1.3.1.4 .- Espera de entradas de origen múltiple................... 6
1.3.2 .- Configuración del puerto serie en Linux ........................... 6
1.3.2.1 .- Opciones de control ...........................................10
1.3.2.2 .- Opciones locales ...............................................12
1.3.2.3 .- Opciones de entrada..........................................13
1.3.2.4 .- Opciones de salida ............................................14
1.3.2.5 .- Caracteres de control.........................................15
1.3.3 .- Implementación realizada ............................................16
1.3.3.1 .- Abrir_Puerto_Serie ............................................18
1.3.3.2 .- Cerrar_Puerto_Serie ..........................................19
1.3.3.3 .- Baudios ...........................................................19
1.3.3.4 .- Enviar_Datos....................................................20
1.3.3.5 .- Leer_Datos ......................................................20
1.3.3.6 .- Leer_Datos_Plazo..............................................21
1.3.3.7 .- Get_fd .............................................................21
1.3.3.8 .- Get_Velocidad ..................................................22
1.3.3.9 .- Get_Puerto.......................................................22
2 .- FieldPoint, manual del programador ..................................................23
2.1 .- Protocolo de comunicación .....................................................23
2.1.1 .- Formato de las tramas FieldPoint...................................23
2.1.2 .- Respuestas de los módulos FieldPoint ............................25
2.1.2.1 .- Respuestas de éxito ..........................................25
2.1.2.2 .- Respuestas de error ..........................................25
Conjunto de drivers para tarjetas de adquisición de señales bajo Linux
Manuales del programador
- ii -
2.2 .- Implementación del driver .....................................................26
2.2.1 .- Conceptos previos: el bus local .....................................27
2.2.2 .- Código C....................................................................28
2.2.2.1 .- Estructuras y variables utilizadas.........................28
2.2.2.2 .- Funciones locales ..............................................33
2.2.2.3 .- Funciones globales ............................................35
2.2.3 .- Código Ada ................................................................37
2.2.4 .- Descripción de las funciones .........................................38
NI_Inicializar ..................................................................38
NI_Liberar......................................................................39
NI_EscribeLinea_DO ........................................................39
NI_EscribeModulo_DO......................................................40
NI_LeeLinea_DI ..............................................................40
NI_LeeModulo_DI............................................................41
ObtenerError ..................................................................42
ObtenerErrorString ..........................................................42
Num_Lineas ...................................................................43
Num_Modulos.................................................................43
Get_Tipo........................................................................44
Get_Nombre...................................................................44
Get_Id...........................................................................45
Get_Direccion .................................................................45
2.3 .- Anexo A: FieldPoint Commands ..............................................46
Comandos utilizados ...............................................................49
2.4 .- Anexo B: FieldPoint Responses ...............................................56
3 .- NuDAM, manual del programador .....................................................59
3.1 .- Protocolo de comunicación .....................................................59
3.1.1 .- Formato de las tramas.................................................59
3.1.2 .- Respuestas de los módulos NuDAM................................60
3.2 .- Implementación del driver .....................................................61
3.2.1 .- Conceptos previos: el bus local .....................................62
3.2.2 .- Código C....................................................................63
3.2.2.1 .- Estructuras y variables utilizadas.........................63
3.2.2.2 .- Funciones locales ..............................................67
Conjunto de drivers para tarjetas de adquisición de señales bajo Linux
Manuales del programador
- iii -
3.2.2.3 .- Funciones globales ............................................69
3.2.3 .- Código Ada ................................................................71
3.2.4 .- Descripción de las funciones .........................................72
ND_Inicializar .................................................................72
ND_Liberar.....................................................................73
ND_EscribeLinea_DO .......................................................73
ND_EscribePuerto_DO......................................................74
ND_EscribeModulo_DO.....................................................75
ND_LeeLinea_DI .............................................................76
ND_LeeModulo_DI...........................................................77
ObtenerError ..................................................................78
ObtenerErrorString ..........................................................78
Num_Lineas ...................................................................79
Num_Modulos.................................................................79
Get_Tipo........................................................................80
Get_Nombre...................................................................81
Get_Id...........................................................................81
Get_Direccion .................................................................82
3.3 .- Anexo A: Command Set (digital I/O modules)...........................83
Comandos utilizados ...............................................................85
4 .- LabJack U12, manual del programador ..............................................92
4.1 .- Implementación del driver .....................................................92
4.1.1 .- Conceptos previos.......................................................92
4.1.2 .- Código C....................................................................92
4.1.2.1 .- Estructuras y variables utilizadas.........................92
4.1.2.2 .- Funciones locales ..............................................94
4.1.2.3 .- Funciones globales ............................................94
4.1.3 .- Código Ada ................................................................96
4.1.4 .- Descripción de las funciones .........................................97
LJ_Inicializar ..................................................................97
LJ_EscribeLinea_DO.........................................................98
LJ_EscribeModulo_DO ......................................................98
LJ_LeeLinea_DI...............................................................99
LJ_LeeModulo_DI ..........................................................100
Conjunto de drivers para tarjetas de adquisición de señales bajo Linux
Manuales del programador
- iv -
LJ_EscribeLinea_AO.......................................................101
ObtenerError ................................................................101
ObtenerErrorString ........................................................102
4.2 .- Anexo A: Descripción de las funciones propias del fabricante ....103
4.3 .- Anexo B: Description of errorcodes .......................................106
Conjunto de drivers para tarjetas de adquisición de señales bajo Linux
Manuales del programador
- v -
Listado de Tablas
Tabla 1.1 Asociación de puertos serie a ficheros de dispositivo .................... 2
Tabla 1.2 Miembros de la estructura termios ............................................ 6
Tabla 1.3 Constantes para el miembro c_cflag .........................................11
Tabla 1.4 Constantes para el miembro c_lflag..........................................12
Tabla 1.5 Constantes para el miembro c_iflag..........................................13
Tabla 1.6
Comentarios de: Conjunto de drivers para tarjetas de adquisición de señales bajo Linux (0)
No hay comentarios