Está en la página 1de 50

Interfaz del corazn del monitor del ritmo

Manual del usuario

danjuliodesigns Revision 1.1

Tabla de contenidos
Heart Rate Monitor Interface 0 Descripcin 2 Caractersticas 2 Aplicaciones 2 Informacin de la versin 3 Disclaimer 3 Pngase en contacto con 3 Especificaciones elctricas 3 Especificaciones mecnicas 5 Introduccin 5 Diagrama de bloques 5 Conexiones 6

Comunicacin / Alimentacin 6 Puentes de configuracin 8 Indicadores de estado 9 Conexiones Prototipos 9 Orientacin con el transmisor Polar 10 Prueba rpida 11 Prueba rpida con Host Computer 11 Prueba rpida usando HyperTerminal (Microsoft Windows) 11 Prueba rpida usando QuickTerm (Apple Mac OS X) 15 Operacin 17 Host Funcionamiento de la interfaz 17 Interfaz en serie (USB o interfaz fsica de nivel lgico) 18 I 2 C Interface 18 Pulsmetro Algoritmos 19 Lista de comandos 20 Leer entrada analgica 21 Establecer servicios pblicos Direcciones de puertos 21 Obtenga corazn Velocidad de datos 22 Obtenga Utilidad de puerto 23 Obtenga Modo 24 Establecer Utilidad de puerto 24 Modo 25 Set Comprar 25

Apndice A: Resolucin de problemas 26 Apndice B: Ejemplos de cdigo 28 Unix / Mac OS X utilizando la interfaz serie 28 Procesamiento utilizando la interfaz serie 32 Arduino con I 2 C 34 Apndice C: Esquema 37

Interfaz del corazn del monitor del ritmo


Descripcin
El monitor de ritmo cardaco Interface (HRMI) es un dispositivo perifrico inteligente que convierte la seal de ECG del monitor del ritmo del corazn transmisores Polar Electro (HRM) en fcil de usar datos de frecuencia cardiaca. Se implementa un sofisticado algoritmo para calcular una frecuencia cardaca media, incluso con datos ruidosos o intermitente del transmisor. Los recitados de viva ides entradas analgicas y un puerto HRMI utilidad entrada / salida digital para facilitar la integracin en aplicaciones personalizadas.

Caractersticas

Mltiples interfaces: USB, serial Lgica nivel y I 2 C TM Algoritmos de procesamiento de la frecuencia cardaca duales: promedio y

prima

Utiliza el receptor OEM Polar RMCM01 Compatible con los transmisores Polar codificados y sin codificar como T31, T31C, T61C y Wearlink 32 entrada de la frecuencia cardaca bfer de historial de datos

Cuatro entradas ADC de 8 bits Hasta un puerto utilidad 5 canales digitales de entrada / salida

Interfaz de comando / respuesta simple Operacin de encendido predeterminada Programable

Aplicaciones

Equipo de ejercicio personalizado Dispositivos de control de la frecuencia cardaca porttiles Dispositivos de Bio-retroalimentacin Heart beat conscientes electrnica llevan en el cuerpo

Informacin de la versin
Hoja de HRMI Comentarios datos Firmware Revisin Versin Versin inicial 1.0 0x01 1.1 0x01 La imagen del producto para que coincida con Sparkfun v17 diseo esquemtico y actualizado Pequeas correcciones tipogrficas

Renuncia
Derecho de Autor danjuliodesigns, LLC, 2008-2010, Todos los derechos reservados. Ni la totalidad ni parte de la informacin contenida en, o el producto descrito en este manual, puede ser adaptada o reproducida en cualquier forma material o electrnico, sin el consentimiento previo por escrito del propietario del copyright. Este producto y su documentacin se suministran en una base como est y no hay garanta en cuanto a su idoneidad para cualquier particular, Este producto no es un grado mdico ECG o EKG monitor. Este producto o cualquier variante que no est destinada para su uso en cualquier aplicacin mdica, mecanismo o sistema en el que podra esperarse razonablemente que el fallo del producto que resulte en lesiones personales. propsito es o expresa ni implcita.

danjuliodesigns, LLC. No se aceptar ninguna reclamacin por daos y perjuicios causados como consecuencia del uso o el fracaso de este producto. Sus derechos legales no se ven afectados. Este documento y la funcionalidad del producto pueden estar sujetas a cambios sin previo aviso.

Contacto
Email: info@danjuliodesigns.com Sitio web: http://www.danjuliodesigns.com/sparkfun/hrmi.html

Especificaciones elctricas
Parmetro
Voltaje de alimentacin Voltaje de alimentacin Corriente

externa USB

Externa

mbito de

recepcin

recepcin Rango de voltaje analgico Utilidad de puerto de entrada de bajo nivel


Frecuencia de

Min Typ Max Unidad Condiciones 3.6 5.5 V Cuando un pin de la conexin de alimentacin externa 4.5 5 5.5 V Si est alimentado desde un host USB 30 45 mA No hay conexin a cualquier seal analgica o Conector de utilizacin 80 92 100 cm Tpica utilizando un transmisor T31 5.5 kHz VSS VCC V Nota 1 VSS 0,15 V 3.3V VCC 4.5V * VCC 0.8 V VCC V

VSS Utilidad de puerto de entrada de alto 0,25 nivel * VCC + 0.8 2 Utilidad de puerto de salida de bajo nivel

4.5V VCC 5.5V 3.3V VCC 4.5V

VCC V 0.6 V

4.5V VCC 5.5V I OL = 8,5 mA, VCC = 4.5V

Utilidad de puerto de salida de alto VCC nivel 0.7 Mximo: analgica Puerto de origen Impedancia Corriente de salida mxima hundido por cualquier seal Utilidad de puerto Corriente mxima de salida de origen por cualquier seal de Utilidad de puerto Capacitiva Cargando analgica y Puertos pblicos Configuracin EEPROM ciclos de
escritura

I OH = -3,0 mA, VCC = 4.5V

10k

Nota 2

25

mA

Nota 3

25

mA

Nota 3

55

pF

100K 1M

Escribir T A 85 C Ciclos Ao No dio ms especificaciones se violan C C

Configuracin EEPROM de retencin


caracterstico Rango de temperatura

40 0 -30 20 60 20 70

de

funcionamiento Temperatura de almacenamiento Notas

1.VSS quedado a bordo, VCC es la alimentacin de tensin de a bordo. 2.El Impedancia de fuente puerto analgico mxima es necesaria para que el tiempo de muestreo ADC que deben cumplir. 3.Total corriente suministrada o hundido por todas las seales del puerto de utilidad debe ser inferior a 80 mA.

Especificaciones mecnicas
USB 2000 1850 100

100 4 x 100 Todo Dimensiones en mil

Dimensiones de la placa

Introduccin
Diagrama de bloques

HRMI Diagrama de bloques

Conexiones
Comunicacin / Alimentacin
El HRMI recibe energa y datos a travs de una interfaz de comunicacin. Cuenta con dos conectores de interfaz: USB y una cabecera de nivel lgico. El uso de las dos interfaces fsicas se excluye mutuamente, slo uno puede estar en uso a la vez. TX RX LED LED puentes de configuracin
OP0 OP1 OP2 OP3

OP4 OP5 PO6 OP7 SJ1 AN0 AN1 AN2 AN3 P0 P1 3.3 V 5 V GND

USB conector Lgica-Nivel conector Prototipo Conexiones Prototipo rea

Estado LED
V 5 GND RX-I / SDA TX-O / SCL

Disposicin de la placa (Top View) El HRMI comunica utilizando un puerto serie o una interfaz I 2 C. El HRMI se configura en encendido restablecer usar una interfaz en particular con el OP0 - OP7 bloque de puentes, como se describe en el apartado Configuration Jumpers de este captulo. Se comunica mediante una interfaz de serie a travs de cualquiera de los dos el conector USB o el encabezado de nivel lgico. Se comunica mediante la interfaz I 2 C a travs de la cabecera de nivel lgico. USB Un conector USB mini-B permite una rpida conexin a un ordenador central. La interfaz USB se alimenta y una conexin de datos a la HRMI. La interfaz USB utiliza un FTDI FT232RL IC de interfaz que expone la HRMI como un dispositivo serial a la computadora host. FTDI proporciona imgenes de controladores libres para los sistemas operativos Linux, Microsoft Windows, Apple Macintosh y.

Cable USB con conector Mini-B Para utilizar la interfaz USB de un puente debe estar instalado en la posicin SJ1 (predeterminado de fbrica). El puente en la posicin SJ1 conecta la lnea TX del FTDI FT232RL IC de interfaz a la entrada RX microcontrolador HRMI (la salida del microcontrolador TX est permanentemente conectado a la entrada RX FT232RL). No jumper debe estar instalado en la posicin OP0. Esto configura el microcontrolador para usar una interfaz en serie en el encendido. La velocidad deseada se puede configurar en las posiciones OP1 y OP2 puente tal como se describe en el apartado Configuration Jumpers .

Un encabezado de 4-pin permite la conexin directa de acceso a serie lgica de nivel I o 2 interfaces de C. Tambin proporciona tierra y las conexiones de entrada de alimentacin 5 voltios. Etiqueta Funcin 5V Entrada de alimentacin 5 voltios GND Suelo RX-I / SDA HRMI serie de entrada RX TTL HRMI I 2 C SDA (datos) Serie salida TX TTL HRMI HRMI I 2 C SCL (reloj) Lgica-nivel de cabecera Descripcin pin El HRMI es un dispositivo serie que funciona a velocidades de transmisin 2400 a 38.400 cuando el jumper OP0 se desinstala. Los datos se transmiten a niveles de seal TTL con 8 bits de datos, 1 bit de parada y sin paridad (8N1). Posicin de los jumper OP1 - OP2 configurar la velocidad de transmisin. Un ejemplo de interfaz entre el HRMI a un microprocesador externo utilizando una interfaz serie se muestra a continuacin.
TX RX-me RX TX-O 5 GND VSS VDD VCC SJ1 OP0 OP1 OP2

TX-O / SCL

Desinstalado Baud

uP HRMI

La interconexin con un microprocesador a travs de un puerto serie TTL El HRMI est a 7 bits I 2 C Esclavo operativo en hasta una velocidad de datos de 100 kHz cuando se instala el puente OP0. Posicin de los jumper OP1 - OP7 configurar la direccin C I 2 (OP1 es LSB). El HRMI no proporciona resistencias pull-up en las 2 seales de E C. Puede ser necesario aadir estos externamente. Un ejemplo de la interfaz HRMI a un dispositivo de E 2 C se muestra a continuacin. Ms de un dispositivo de E 2 C se puede conectar en paralelo la lnea de los lmites de la observacin de la capacitancia de la seal. Cada dispositivo debe responder a una direccin diferente. Para obtener ms informacin acerca de I 2 C consulte http://www.standardics.nxp.com/support/documents/i2c .

SDA RX-I / SDA SCL TX-O / SCL 5 GND VSS VDD VCC SJ1 OP0 OP1 OP2

Desinstalado Direccin

uP HRMI
2 x 4,7 k Instalado OP3 OP4 OP5 PO6 OP7

La interconexin con un master I 2 C Jumper SJ1 debe retirarse cuando se utiliza la lgica a nivel de cabecera de 4 pines (para desconectar el puerto de salida en el FT232RL).

Puentes de configuracin
Puentes de configuracin se utilizan para configurar el HRMI para la operacin. Los puentes son dos almohadillas expuestos situados muy juntos. Para instalar un puente de usar un soldador para dab una pequea cantidad de soldadura que cubre ambas pastillas. Para eliminar un puente trmico y retire la soldadura lquida arrastrando la punta del soldador rpidamente de lado a travs de las almohadillas para que la tensin superficial de la soldadura para separarlo en dos gotas, una a cada pad. Alternativamente, puede utilizar el soldador para fundir la soldadura y eliminar el uso de un pequeo trozo de mecha de soldadura. Tenga cuidado de no aplicar a mucho calor o los puntos de soldadura pueden tirar de fuera de la placa. Configuracin jumper SJ1 se utiliza para conectar la lnea TX del FTDI FT232RL IC de interfaz a la entrada RX microcontrolador HRMI cuando se utiliza la interfaz USB.

Puentes de configuracin OP0 - OP7 configurar la interfaz de comunicacin microcontrolador en el encendido. Ellos son de slo lectura en el encendido. OP0 configura el tipo de interfaz. Sin un puente a travs de OP0 el micro-controlador se comunica utilizando una interfaz en serie a travs de ya sea el conector de nivel lgico o conector USB. Con un puente entre OP0 el microcontrolador se comunica utilizando el protocolo I2C. Con OP0 eliminado, OP1 y OP2 configurar la velocidad de transmisin. OP3 - OP7 no han sido utilizados. El protocolo de datos es de 8 bits de datos, 1 bit de parada y sin paridad (8N1). De forma predeterminada, sin puentes instalados, la velocidad de transmisin es de 9600 baudios. OP2 OP1 Velocidad en
baudios

instalado instalado desinstalado desinstalado

instalado 2400 baudios desinstalado 19200 baudios instalado 38400 baudios desinstalado 9600 Interfaz serie (OP0 desinstalado)

Nota: La velocidad de transmisin configurada con jumpers OP1 y OP2 debe coincidir con la velocidad seleccionada por el software que se ejecuta en el equipo host. Con OP0 instalado, OP1 - OP7 configurar la direccin del esclavo I 2 C 7 bits. OP1 es el bit menos significativo. La tasa de transferencia mxima de I 2 C es de 100 kHz. De forma predeterminada, sin jumpers (excepto OP0) instalados, la direccin es 127. OP7 PO6 OP5 OP4 OP3 OP2 OP1 Direccin instalado instalado instalado instalado instalado instalado instalado 0 instalado instalado instalado instalado instalado instalado desinstalado 1 instalado instalado instalado instalado instalado desinstalado instalado 2 instalado instalado instalado instalado instalado desinstalado desinstalado 3 ... ... desinstalado desinstalado desinstalado desinstalado desinstalado desinstalado desinstalado 127 I 2 C Interface (OP0 instalado)

Indicadores de estado
El HRMI contiene tres LEDs de estado. 1.USB TX: LED rojo que parpadea para los datos transmitidos desde el host al HRMI travs de la interfaz USB.

2.USB RX: LED verde que parpadea para los datos transmitidos desde el HRMI con el host a travs de la interfaz USB. 3.Estado: LED verde que indica el estado de la HRMI. Es cuando el HRMI es la bsqueda de datos de pulso cardiaco vlidos. Parpadea en el ritmo cardaco detectado cuando se adquiere una seal. Para cada corazn lata es durante 100 milisegundos.

Conexiones Prototype
El HRMI proporciona cuatro entradas analgicas y dos programables de entrada / salida digital, junto con una pequea rea de prototipos para incluir circuitos locales. Las entradas analgicas estn conectadas a las entradas de 8 bits ADC HRMI micro-controlador. Los puertos de entrada / salida digitales programables estn conectados al propsito general de E / S pines en el HRMI micro-controlador y puede ser configurado para ser una seales de nivel lgico de accionamiento de entrada digital o salida digital y. Tanto los 5 voltios y 3,3 voltios estn disponibles. Etiqueta Funcin AN0 - Entrada analgica AN3 P0 - P1 Programmable I / O digitales (Conector de utilizacin) 3.3V 3.3 ferrocarril voltios. Extraer energa de este pin debe limitarse a un mximo de 50 mA. 5V 5 voltios carril de la alimentacin. Conectado al conector de entrada de 5 V y que la barra de alimentacin USB. Se debe tener cuidado de no exceder los lmites de corriente USB. GND Planta Junta Seales Prototype

Orientacin con el transmisor Polar


Transmisores polares utilizan un campo magntico para transmitir los datos al receptor RMCM-01 OEM en el tablero HRMI. Las siguientes reglas ayudan a maximizar la transferencia de seal entre el transmisor polar y el HRMI. 1.El distancia mxima entre el transmisor y HRMI no debe superar los 80 cm. 2.El campo magntico se genera y se detect usando bobinas en el transmisor y el receptor. La bobina receptora debe estar en paralelo con el flujo magntico generado por el transmisor para la mxima transferencia de energa como se ilustra en el siguiente diagrama.

Transmisor USB
RMCM01

Correa HRMI

Transmisor y receptor de orientacin 3.Metal carcasa alrededor del receptor puede formar una jaula de Faraday alrededor del receptor atenuar la seal. Una jaula de metal tambin puede cambiar la orientacin del campo magntico procedente del transmisor. 4.Interference creado por otros dispositivos electrnicos (tales como motores, pantallas y fuentes de alimentacin) puede interferir con la transmisin de informacin desde el transmisor al receptor. De manera ptima el HRMI ser separado fsicamente de estas fuentes de energa electro-magntica.

Prueba rpida
La capacidad de la HRMI para detectar un ritmo cardaco puede ser probada con slo un transmisor Polar y voltios fuente de alimentacin regulada 5. Conecte el HRMI a la fuente de alimentacin de 5 voltios y encender la fuente de alimentacin. Alternativamente conectar el tablero HRMI a un puerto USB del ordenador. El LED de estado HRMI debe encenderse. Correa en el transmisor y orientarse cerca del tablero HRMI Polar. Dentro de los 15 segundos, el HRMI LED de estado debe empezar a parpadear indicando que ha detectado datos de frecuencia cardiaca del transmisor. El funcionamiento del transmisor Polar se puede verificar con un receptor de pulsera Polar.

Prueba rpida con Host Computer


Un ordenador con una interfaz USB y un programa emulador de terminal puede acceder a la HRMI. Un cable USB y el transmisor Polar se requieren, adems de la computadora. Los pasos bsicos son los siguientes. Algunas instrucciones especficas para plataformas particulares siguen en las secciones siguientes.

1.Instale un jumper en la posicin SJ1. Asegrese de que no hay puentes instalados en posiciones OP0 - OP7. 2.Antes fijar el HRMI al ordenador descargue e instale el controlador apropiado de la pgina web de FTDI: http:// www.ftdichip.com / FTDrivers.htm . El sitio web contiene el controlador ms reciente y las instrucciones para cada sistema operativo compatible. Asegrese de cargar el controlador de puerto COM virtual (VCP) para esta prueba en lugar del controlador D2xx. El controlador VCP hace que el HRMI aparece como un dispositivo serie estndar (puerto COM). 3.Una vez que el controlador se ha instalado luego coloque el HRMI al EquipoA s interfaz USB. El indicador de estado HRMI debe encenderse y parpadear cuando se detecta un latido del corazn de un transmisor Polar. 4.Inicie un programa emulador de terminal en serie en el equipo host (por ejemplo, HyperTerminal en Microsoft Windows). Asegrese de que est configurado para utilizar el puerto de comunicacin basado en USB asociado a la HRMI a 9600 baudios, 8 bits de datos, 1 bit de parada y sin paridad. Es til, pero no es necesario configurar el programa emulador de terminal para devolver un eco caracteres escritos localmente y para aadir un carcter de avance de lnea a finales de lnea recibidas. Esto permite la visualizacin de la orden enviada a la HRMI, as como el resultado devuelto por el HRMI. 5.Escriba el siguiente comando en el emulador de terminal: G1 <CR> . Es decir, los tres caracteres G seguido por 1 seguido por el retorno de carro ( Enter clave o carcter de control de retorno de carro, CTRL-M). Esto debe resultar en una cadena como la siguiente. 1 15 63 donde el primer nmero, 1 , indica el modo de algoritmo de frecuencia cardaca actual, el segundo nmero, 15 , indica el valor actual del temporizador y el tercer nmero, 63 , la frecuencia cardaca actual (el corazn real tasa puede variar). Vea la seccin de Lista de comandos para obtener una descripcin detallada de estos y otros comandos.

Prueba rpida usando HyperTerminal (Microsoft Windows)


Estos ejemplos se muestran utilizando Microsoft Windows XPA ". Utilice el Administrador de dispositivos para identificar el puerto COM asociado al HRMI antes de iniciar HyperTerminal. 1.Plug la HRMI a un puerto USB (despus de haber cargado el driver FTDI). Verifique que el LED de estado est encendido. Puede ser til si el HRMI es el nico perifrico USB que se adjunta como otros perifricos USB tambin se puede utilizar un FTDI USB Interface IC.

2.Left clic en el icono Mi PC en el escritorio o en el men Inicio y seleccione Properties . Con ello se abre el System Propiedades de referencia de ventana . 3.Seleccione Device Manager del System Propiedades de referencia de Ventana. El Device Manager aparecer ventana como se muestra en la siguiente imagen. Haga clic en el + smbolo junto a Ports (COM & LPT) para ver una lista de los puertos del sistema ha identificado. Un nuevo puerto COM aparecer como se muestra (asumiendo que el HRMI es el nico perifrico USB conectado utilizando un FTDI USB Interface IC).

Administrador de dispositivos muestra un puerto COM USB Iniciar y configurar HyperTerminal (HyperTerminal se encuentra en All Programas -> Accesorios -> Communications ). La configuracin consiste en los siguientes pasos ilustrados. 1.Create una nueva configuracin de la conexin, por ejemplo com7_9600 , en la OEConnection Description caja de dilogo. HyperTerminal puede guardar esta configuracin en el disco para su uso en un momento posterior.

Configuracin de HyperTerminal con un nuevo 2.Seleccione la configuracin del puerto COM asociado al HRMI en el Connect Toa cuadro de dilogo.

Configuracin de HyperTerminal para utilizar el puerto COM USB 3.Configure las caractersticas correctas del puerto serie en el Properties Caja de dilogo a. Asegrese de que el control de flujo se ajusta en None .

Configuracin de HyperTerminal para 9600 baudios, 8N1 4.Seleccione Properties para HyperTerminal (Archivo-> Propiedades) y haga clic en ASCII Setupa | para abrir el ASCII Setupa cuadro de dilogo. Haga

clic en el Echo caracteres escritos locally casilla para hacer que HyperTerminal hacerse eco de los caracteres transmitidos al HRMI en la pantalla. Haga clic en el Send lnea termina con la lnea feeds y line Append alimenta la ENDSA lnea entrante casillas de verificacin para hacer que HyperTerminal para poner a cada cadena de texto en una lnea separada para facilitar la visualizacin.

Configuracin de HyperTerminal para repetir caracteres Enviar comandos al HRMI seguido por el carcter de retorno de carro (CTRL-M) y observar los resultados. Vea la seccin de Lista de comandos para obtener una descripcin detallada de cada comando.

Comandos HRMI y respuestas

Prueba rpida usando QuickTerm (Apple Mac OS X)


QuickTerm es una aplicacin de terminal universal, sencillo compatible con Mac OS X 10.2 a 10.5. Se puede encontrar en el developer s sitio web http://www.gelhaus.net/cgi-bin/showpage.py?cocoa/+quickterm.html oa travs de la pgina web de seguimiento de versin ( http://www.versiontracker. com ). Actualmente QuickTerm (versin 1.01) se limita a un mximo de 19200 baudios. El HRMI debe estar configurado para trabajar a 19200 baudios o menos. En este ejemplo se utiliza la tasa de baudios por defecto de 9600 baudios. 1.Plug la HRMI a un puerto USB (despus de haber cargado el driver FTDI). Verifique que el LED de estado est encendido. Puede ser til si el HRMI es el nico perifrico USB que se adjunta como otros perifricos USB tambin se puede utilizar un FTDI USB Interface IC. 2.Inicie QuickTerm y configurar el puerto serie haciendo clic en el Port settings | . Seleccione el dispositivo apropiado en el men Port desplegable. La entrada tendr la forma / dev / cu.usbserial-XXXXXXXX donde la cadena XXXXXXXX es nico para cada FTDI FT232RL IC. Seleccione 9600. Asegrese de que no hay control de flujo activado y seleccione la casilla de verificacin Local Echoa .

Ejemplo de configuracin del puerto QuickTerm

3.Haga clic en el botn Connect y enviar comandos al HRMI seguido por el carcter de retorno de carro (CTRL-M) y observar los resultados. Vea la seccin de Lista de comandos para obtener una descripcin detallada de cada comando.

Comandos HRMI y respuestas

Nota: No desconecte el HRMI desde el puerto USB del Macintosh, mientras que ninguna aplicacin est utilizando el puerto serie (puerto serie est abierta). Esto puede hacer que el sistema se congele o se caiga.

Operacin
Funcionamiento de la interfaz de host
El HRMI es un dispositivo esclavo. Responde a los comandos emitidos a la misma desde un controlador host. Interpreta comandos, bien a un serial o I 2 C de interfaz. Ambas interfaces utilizan los mismos puertos fsicos de E / S en el HRMI micro-controlador. El tipo de interfaz se selecciona por muestreo OP0 jumper en el encendido. El tipo de interfaz persiste hasta el siguiente reinicio de encendido. El HRMI es capaz de recibir rdenes de 250 milisegundos despus de ser activado. Se ignoran los comandos desconocidos o ilegal. Algunos comandos hacen que el HRMI para generar una respuesta que transmite al controlador de host despus de procesar el comando. Los comandos son de 1 byte (8 bits de longitud). Tienen representaciones ASCII que son una abreviatura de su funcin. Algunos comandos son seguidos por un argumento que representa una nica cantidad numrica 8 bits. Las respuestas consisten en uno o ms valores numricos. Los comandos y las respuestas se codifican ligeramente diferente para la comunicacin serie y I 2 C.

Interfaz en serie (USB o interfaz fsica de nivel lgico)


Comandos y los argumentos enviados a travs de la interfaz serial se codifican como valores ASCII. Los comandos son un solo carcter ASCII con valores entre ~ A y

~ za. Los argumentos son dos y cincuenta y nueve nmeros ASCII 0 por 255 lo que representa un Valor de 8 bits. Los comandos se emiten en Secuencias de comandos. Una secuencia de comandos consiste en el valor del comando seguido por cualquier argumento necesario termin con el carcter de retorno de carro (0x0D). Los caracteres de espacio pueden ser incluidos entre el comando y el argumento o entre el argumento y el retorno de carro (<CR>). Los otros personajes o argumentos adicionales hacen que el HRMI de ignorar la secuencia de comandos hasta el siguiente retorno de carro. Las respuestas consisten en nmeros ASCII ( 0 por 255 ) separados por espacios terminados con el carcter de retorno de carro. Por ejemplo, el carcter ASCII ~ G se utiliza para el comando Get ritmo cardaco. Siempre es seguido por una discusin con un valor de, 0 - 32 al mando de la HRMI para volver 0 - 32 valores de frecuencia cardiaca de su memoria intermedia de historia de la frecuencia cardaca. El HRMI tambin incluye dos bytes de estado antes de los datos de frecuencia cardiaca requerido. Enviando el comando G3 <CR> o G 3 <CR> genera una respuesta con la forma 1 25 63 64 67 <CR> donde los valores 1 y 25 son los b ytes de estado (se explica ms adelante en este captulo) y los valores de 63 , 64 y 67 son los valores de frecuencia cardiaca solicitados (en latidos por minuto) de la memoria histrica del ritmo cardaco. El HRMI puede proteger mltiples comandos serie y argumentos en una FIFO de 16 bytes interna. Se procesa un comando a la vez (incluyendo la transmisin de una respuesta deseada). El HRMI continuar impulsando nuevos comandos en el FIFO mientras procesa un comando. Se caer comandos cuando el FIFO est lleno. Se debe tener cuidado al enviar comandos inmediatamente despus de un comando Get frecuencia cardaca y antes de recibir la respuesta del comando Get ritmo cardaco para que no se desborde el FIFO.

I 2 C Interface
El HRMI implementa una simple esclava de 7 bits que el dispositivo 2 C. Est configurado con cualquier direccin de C 2 7 bits que en los puentes de configuracin OP1-7 en el

encendido. El HRMI slo implementa la funcionalidad de esclavo obligatoria I 2 C se describe en el documento de semiconductores NXP UM10204 I 2 especificacin Cbus y el usuario manuala . Estas funciones incluyen la condicin de marcha, paro condiciones, Reconocer y direccin del esclavo 7 bits. No admite Direccin Call, direccin de esclavo 10-bit, reset de software o ID de dispositivo. La tasa de bits mxima es de 100 kHz. Comandos y los argumentos se codifican como valores binarios de 8 bits. Las secuencias de comandos constan de 1 - o 2 secuencias de escritura C I 2-byte (el byte de comando seguido por cualquier byte de argumento necesario), seguido de la condicin de STOP. El controlador de host debe emitir una lectura del nmero esperado de bytes de datos para los comandos que generan una respuesta. La lectura debe ser emitida tras la escritura y antes de los comandos siguientes. El HRMI extiende el reloj en la lnea SCL durante la lectura mientras se recupera bytes de datos interna para satisfacer la lectura. El HRMI devolver el valor 0x00 para el host controlador I 2 C dice que la solicitud ms datos de la figura en la respuesta o para lecturas sin una orden previa. El ejemplo mostrado en la seccin de interfaz de serie anterior consistira en los siguientes bytes transmitidos en la interfaz I 2 C para el comando. <0x47> <0x03> Los datos de las respuestas siguientes se pueden leer (el controlador de host debe leer 5 bytes en este ejemplo). <0x01> <0x19> <0x3F> <0x40> <0x43> El HRMI puede proteger mltiples I 2 C comandos y argumentos en una FIFO de 16 bytes interna. Sin embargo, slo puede procesar un comando a la vez que requiere una respuesta. Esto es debido a que restablece la memoria intermedia interna que utiliza para mantener las respuestas cada vez que se recibe un comando de la interfaz de E 2 C. El controlador de host debe ejecutar una lectura y obtener los datos de la respuesta para cualquier comando que genera una respuesta antes de emitir otro comando.

Algoritmos de Monitor de Ritmo Cardaco


El HRMI calcula la frecuencia cardaca midiendo el tiempo de un latido del corazn a la siguiente como se recibi desde el transmisor Polar. El transmisor enva un pulso durante cada latido del corazn se detecta. Durante el funcionamiento normal de los datos desde el transmisor Polar pueden contener una cantidad significativa de informacin falsa. Por ejemplo, una banda del transmisor ligeramente suelto puede generar informacin pulso

extra cada vez que los contactos de la correa se empujaban (como puede ocurrir con frecuencia cuando se ejecuta). Otros dispositivos tambin pueden generar pulsos electromagnticos que aparecen en el receptor como datos de frecuencia cardiaca. El HRMI permite el acceso a los datos recibidos en forma cruda o promedio (modo Raw o media). En el modo sin procesar se calcula la frecuencia cardiaca instantnea sobre la base de cada pulso y se almacena en una memoria intermedia de historia 32-de entrada. Datos en modo sin procesar es til para observar la respuesta dinmica del corazn en una base latido a latido a pesar de los datos pueden incluir valores de frecuencia cardiaca errneas debido a los pulsos espurios. Es responsabilidad del software que se ejecuta en el controlador de host o anlisis de usuarios para identificar los valores de frecuencia cardiaca posiblemente no esenciales en los datos en bruto. En el modo Normal los datos de frecuencia cardiaca instantnea se promedian y el ritmo cardaco promedio, calculado una vez por segundo, es empujado en la memoria histrica de 32 entradas. El algoritmo de promedio identifica y hace caso omiso de los datos de frecuencia cardiaca espurias cuando se genera la media mediante el uso de un discriminador de frecuencia del pulso y un doble conjunto de bferes (promedio de un tampn primaria y un tampn de adquisicin). El tampn de adquisicin se utiliza para determinar la media inicial. Una vez que un promedio se ha calculado la memoria intermedia principal se utiliza para mantener los clculos de la media. El tampn primaria es de tamao dinmico de 6 a 16 entradas con ms entradas para altas frecuencias cardacas medias para evitar valores ligeramente espurias de afectar a la media demasiado mientras permitiendo que el promedio sea sensible a los cambios de forma rpida las frecuencias cardacas. Una vez que un promedio se ha calculado el tampn de adquisicin se utiliza cuando se detectan valores espurios demasiado grandes para la memoria intermedia de promediacin primaria. El tampn de adquisicin requiere un cierto nmero de valores dentro de una gama antes de determinar que hay un nuevo promedio. El discriminador se utiliza para detectar los valores espurios tanto para el tampn primaria y adquisicin. El algoritmo se selecciona de un incorporado en la memoria EEPROM en el encendido. El algoritmo tambin se puede cambiar mientras el HRMI est ejecutando mediante la emisin de una orden. De la fbrica el valor de encendido se configura el HRMI utilizar el algoritmo promediado. El valor de encendido tambin se puede cambiar mediante la emisin de una orden al HRMI. En el modo sin procesar del valor de la frecuencia cardiaca instantnea actual se introduce en el ritmo cardaco memoria histrica cada vez que se recibe un pulso. En el modo de media el promedio actual se introduce en la memoria histrica del ritmo cardaco cada segundo mientras se reciben datos nonspurious. La memoria histrica no se ha cargado en el modo de promedio, mientras que se estn recibiendo datos falsos. La ltima entrada empujado en la memoria histrica representa la frecuencia cardaca media exacta ms reciente. El HRMI limpia el bfer de la historia del ritmo cardaco cuando se ha producido una prdida de seal desde el transmisor durante ms de quince segundos. Tambin borra la memoria histrica ritmo cardaco si se reciben ms de 64 valores de impulsos espurios. Cuando la memoria histrica del ritmo cardaco se ha borrado o antes han cargado los valores del HRMI generar respuestas con el valor de 0 para el ritmo cardaco.

El LED indicador de estado es pulsada durante 100 mseg cuando se recibe un pulso. Se establece en un slido con la condicin de que ningn impulso ha recibido en ms de 1.792 milisegundos fijar un lmite inferior a los valores de frecuencia cardaca detectable a 34 latidos perminute (ppm). El lmite superior de los valores de frecuencia cardaca detectable es 239 ppm.

Lista de comandos
El HRMI implementa los siguientes comandos, que se resumen en la siguiente tabla y se describe con ms detalle en las secciones siguientes. Comando ASCII Maleficio Comando Respuesta Descripcin Comando Comando Argumento Valor La Valor 0x41

Leer analgica Entrada Establecer


Utilidad de puerto

Canal 0-3

0x44

Direccin

5 bits

mscara Instrucciones Obtenga ritmo T


cardaco

0x47

Datos

Nmero de entradas del bfer de historial de la frecuencia cardaca 0-32 -

Obtenga Utilidad Yo
de puerto

0x49

Obtenga Mode M

0x4D

Establecer
Utilidad de puerto Modo

0x4F

Valor

de 5 bits

Juego

0x53

Modo

3 bits

Dispare la ADC para leer la entrada analgica especificada. Establezca la direccin, ya sea de entrada o salida, de cada pin Conector de utilizacin. 2-34 valores Obtener el nmero de 8 bits especificado de valores de frecuencia cardiaca e informacin de estado de la memoria intermedia de historia de la frecuencia cardaca. Valor de 5 Obtener el valor actual de bits cada pin Conector de utilizacin. 1 valor de 1 Obtener el actual algoritmo bit seguido de la frecuencia cardaca y de 1 valor la direccin del puerto de 5bit utilidades. Establecer el valor de cada pin Conector de utilizacin. Programe el algoritmo de la frecuencia cardaca y opcionalmente configurar la contrasea de encendido predeterminados de algoritmo de la frecuencia
Valor de

bits

cardaca y la direccin del puerto de utilidad y valor.


Comprar

0x56

2 valores de 8 Obtener informacin sobre bits el firmware que se ejecuta en el HRMI.

Lista de comandos HRMI

Leer entrada analgica


Descripci n Dispare la HRMI para leer el nivel de tensin analgica en una de las entradas analgicas y devolver el valor como un nmero de 8 bits. Comando Serie A <CR> <N> I2C comando <0x41> <N> Argument o <N> Especifica la entrada analgica de leer, 0-3. Otros valores hacen que el comando para ser ignorada. Respuesta de serie Devuelve 1 8-bit byte con el valor ADC codificada como una cadena ASCII 0 a 255 seguido <CR>. I2C respuesta Leer 1 8-bit byte con el valor de ADC.

Notas Retrasos HRMI 1.Los 5 USEC despus de configurar la entrada analgica especificado antes de activar el ADC para que el condensador de muestreo en el tiempo de ADC para cargar. La impedancia de entrada mxima visto por cualquier pin de entrada analgica debe ser inferior a 10 k para permitir que el condensador se cargue completamente en este momento. 2.El interna micro-controlador ADC se hace referencia a la voltios carril 5 de potencia que significa que las entradas analgicas se escalan en relacin con la barra de alimentacin.Es posible utilizar un voltaje de referencia de precisin mediante la unin de la referencia de tensin en una de las entradas analgicas. Los niveles de tensin unidos a otras entradas analgicas se pueden escalar por la referencia de tensin dividiendo el resultado de la lectura de la entrada analgica deseada por el resultado de la lectura de la entrada analgica de referencia.

Establecer servicios pblicos Direcciones de puertos


Descripci n Establezca la direccin de E / S de cada pin digital Conector de utilizacin. Clavijas pueden ser o bien una entrada o una salida. Comando serie D <N> <CR> I2C comando <0x44> <N> Argument o <N> 5 es una mscara de bits (bits 04:00) que especifica la direccin de cada pin del puerto de utilidad. Un valor de 0 en una posicin de bit que hace poco una salida, un valor de 1 en una posicin de bit hace que un bit de entrada. Los datos de las posiciones de bits 07:05 son ignorados. Los valores vlidos para el argumento son de 0 a 31.

Serie respuesta n/a I2C Respuesta n/a Notas 1.El HRMI firmware y soporte 5 pines del puerto de servicios micro-controlador, P0-P4. Esta aplicacin hace que P0 y P1 disponibles en el rea de prototipo. P2 - P4 estn disponibles en los pines de E / S del microcontrolador (pines 13 a 15). No hay rea de la almohadilla PCB adicional para el cuidado extremo debe ser tomado si se fija el conductor u otro dispositivo de plomo en esos pines. Nota: El dao a la HRMI causada por la soldadura de los pines de los puertos pblicos adicionales que no estn cubiertos por la garanta.

Pin Conector de utilizacin 2.El encendido direccin predeterminada se establece en la fbrica para ser todas las salidas con un valor de salida de 0. 3.Switching un pin Conector de utilizacin de la entrada a la salida har que se refleje el valor ms reciente muestra como una entrada.

Obtenga corazn Velocidad de datos


Descripci n Solicitud de 0 - 32 muestras de frecuencia cardiaca de la memoria histrica del ritmo cardaco. Comando serie T <N> <CR> I2C comando

<0x47> <N> Argument o <N> Especifica el nmero de muestras de frecuencia cardaca para volver. El valor est limitado por el HRMI a un mximo de 32. Respuesta de serie Devoluciones <ESTADO> <count> <HR1> <HR2> | <HRN> codificados como cadenas ASCII 0 a 255 seguido <CR>. I2C respuesta Leer 2 + N bytes de 8 bits: <ESTADO> <count> <HR1> <HR2> ... <HRN> Notas Byte <ESTADO> 07:04: Reservado. Se lee como 0 3: Datos incorrectos. Cuando se establece en 1, indica que la memoria histrica de frecuencia cardaca fue absuelto porque ms de 64 pulsos espurios pulso cardiaco consecutivos se han recibido. Un pulso de latido del corazn espuria se define como uno que es ms de 25% mayor que o menor que el promedio actual o de la media en la memoria intermedia de adquisicin. Se establece en 0 cuando la memoria histrica del ritmo cardaco est recogiendo los valores de frecuencia cardaca. 2: readquisicin de la serie. Se establece en 1 cuando la mayora de la corriente del pulso latido del corazn era ms de 25% mayor que o menor que el promedio actual y est siendo incluido en el tampn de adquisicin. Se establece en 0 cuando se aadi el ms corriente del pulso latido del corazn con el valor medio actual. 1: No hay datos. Establece en 1 cuando no hay seal de latido del corazn se ha detectado en los ltimos 1.792 ms. Se establece en 0 cuando se han detectado al menos dos latidos consecutivos. 0: modo de algoritmo. Se establece en 1 para el modo normal, el valor 0 para el modo sin procesar.

<count> Byte indica la segunda corriente en el modo normal y el recuento de muestras de corriente en modo raw mdulo 256 de el ltimo valor de la frecuencia cardaca entrado en la tasa de memoria intermedia de historia corazn (<HR1>). Est diseado para ser utilizado cuando mltiples valores se leen peridicamente. Se permite que el software en el sistema anfitrin para identificar el inicio de los nuevos datos en cada grupo de valores ledos desde el HRMI. <HR1> Es el valor de ritmo cardaco ms reciente en la memoria histrica del ritmo cardaco. <HR2> Es el segundo valor de frecuencia cardiaca ms reciente en la memoria intermedia de historia de la frecuencia cardaca y as sucesivamente.

Obtenga Utilidad de puerto


Descripci n Lea el valor actual del puerto de utilidades. Comando de serie I <cr> I2C comando <0x49> Argu ment on/ a Respuesta de serie Devuelve 1 nmero de 5 bits con el valor del puerto Utilidad codificada como una cadena ASCII 0 a 31 seguida de <CR>. I2C respuesta Leer 1 8-bit byte con el valor del puerto de utilidad en trozos 04:00. Bits 07:05 son 0.

Notas 1.El valor devuelto es el valor de cada bit Conector de utilizacin, independientemente de su direccin. Pines del puerto de utilidad que se configuran como entradas devuelven el valor de la entrada. Pines del puerto de utilidad que se configuran como salidas devuelven el valor que est siendo conducido.

Obtenga Mode
Descripci n Solicitar el actual algoritmo de la frecuencia cardaca y la direccin del puerto de utilidades. Comando serie M <CR> I2C comando <0x4D> Argu ment on/ a Respuesta de serie Devoluciones <ALG> con el algoritmo de frecuencia cardaca codificada como una cadena ASCII 0 a 1 seguido <DIR> con la direccin de la corriente Conector de utilizacin codificada como una cadena ASCII 0 31 seguido <CR>. I2C respuesta Leer 2 bytes de 8 bits: <dir> <ALG>. Notas Byte <ALG> 07:01: Reservado. Se establece en 0. 0: Algoritmo. 1 = promediado, 0 = modo Raw. Byte <DIR> 07:05: Reservado. Se establece en 0.

4:00: Utilidad de Direccin de puerto: Un 1 en una posicin de bit significa que el bit es una entrada, un 0 en una posicin de bit significa que el bit es una salida.

Establecer Utilidad de puerto


Descripci n Establezca el valor de utilidad pines de salida del puerto. Comando de serie O <N> <CR> I2C comando <0x4F> <N> Argument o <N> Es una mscara de 5 bits (bits 04:00) que especifica el valor de cada pin de salida Conector de utilizacin. Los valores vlidos para el argumento son de 0 a 31. Serie respuesta n/a I2C Respuesta n/a Notas Pines del puerto 1.Utility definidos como entradas no se ven afectados por los datos de este comando. Pin Conector de utilizacin 2.El encendido valor de salida predeterminado se establece en fbrica para todos 0s.

Modo Juego

Descripci n Ajuste el modo de algoritmo de la frecuencia cardaca y, opcionalmente, almacenar y / o la direccin Conector de utilizacin actual y los valores de salida en la EEPROM interno que se utilizarn en la prxima reinicializacin. Comando serie S <N> <CR> I 2 C de comandos <0x53> <N> Argument o <N> Es una mscara de 3 bits (bits 2:0) que especifica el modo de algoritmo y si y / o la direccin Conector de utilizacin actual y los valores de salida debe ser almacenado en la EEPROM. Los datos de las posiciones de bits 07:03 son ignorados. Los valores vlidos para el argumento son de 0 a 7. 2: Se establece en 1 para activar la HRMI para almacenar la direccin Conector de utilizacin actual y los valores de salida de EEPROM 1: Se establece en 1 para activar la HRMI para almacenar el algoritmo de la frecuencia cardaca (especificado por el bit 0) en la memoria EEPROM. 0: Algoritmo. Se establece en 1 para el modo normal, el valor 0 para el modo sin procesar. Serie respuesta n/a I2C Respuesta n/a Notas Comando 1.This se utiliza para configurar el estado de encendido del HRMI.

2.Se tarda un mximo de 6 milisegundos para la HRMI para almacenar cada valor (direccin, los valores de utilidad Utilidad de puerto de puerto de salida y / o algoritmo del ritmo cardaco) en la memoria EEPROM interna. Durante este tiempo el HRMI no procesa otros comandos a pesar de que seguir con el procesamiento de datos del ritmo cardaco.

Comprar
Descripci n Solicite informacin sobre el firmware que se ejecuta en el HRMI. Comando serie V <CR> I2C comando <0x56> Argu ment on/ a Respuesta de serie Devoluciones <TIPO> <VERSIN> codificados como cadenas ASCII 0 a 255 seguido <CR>. I2C respuesta Leer 2 bytes de 8 bits: <TIPO> <version>. Notas <TIPO> Byte especifica el tipo de firmware. Para el HRMI este valor de byte es 0x01. Permite que el software que se ejecuta en un controlador de host para identificar el dispositivo que est comunicando.

Byte <VERSIN> especifica la versin del firmware actual HRMI. La versin del firmware se incrementa cuando se realizan cambios de firmware a la HRMI que son visibles desde el exterior con el software que se ejecuta en el controlador de host.

Apndice A: Resolucin de problemas


Sntoma Posibles Causas No LED de estado No Potencia Accin Poder a travs de USB: Asegrese de que el puerto USB est habilitado para suministrar energa. Un consumo de corriente corto o excesivo en un puerto USB puede hacer que el equipo host para cerrar el puerto USB. Alimentacin a travs del conector de lgica a nivel de: Asegrese de que el voltaje de entrada es entre 4,5 y 5,5 voltios, que la polaridad es correcta y que la fuente de alimentacin puede suministrar suficiente corriente para el HRMI y cualquier circuito de potencia adicional. Batera del transmisor Polar est muerto: Comprueba si la seal puede ser recibida con un reloj de pulsera Polar. Malo Posicionamiento: Si un reloj de pulsera Polar recibe la seal a continuacin, intentar cambiar la posicin del transmisor ms cerca de y en paralelo con el receptor RMCM-01 OEM en la PCB HRMI. Asegrese de que el software del host est abriendo el dispositivo asociado a la HRMI. El LED RX debe parpadear cuando los comandos se transmiten a la HRMI. Asegrese SJ1 jumper est instalado.

LED de estado no parpadea

No hay seal de
frecuencia cardaca

No hay comunicacin a travs de la interfaz USB.

Software en el equipo host ha abierto el dispositivo serie equivocado. Jumper SJ1 no se


instala

Incorrecta configuracin Asegrese OP0 puente no est instalado y asegrese de la interfaz serial de que los puentes OP1-2 estn configurados para la velocidad de transmisin correcta. Sntoma Posibles Causas Accin No hay comunicacin Jumper SJ1 instalado Asegrese SJ1 puente no est instalado. a travs de la interfaz Incorrecta configuracin de Asegrese OP0 puente no est instalado y serie lgica de nivel. la interfaz serial asegrese de que los puentes OP1-2 estn configurados para la velocidad de transmisin

correcta. Datos de basura a Incorrecta velocidad de travs de la interfaz transmisin USB o serie lgica de nivel. No hay comunicacin Incorrecta I 2 configuracin a travs de la lgica de la interfaz C de nivel I 2 C de interfaz. Faltan resistencias pull-up Asegrese de que los puentes OP1-2 estn configurados para la misma velocidad que el equipo host. Asegrese de que el puente SJ1 no est instalado, puente OP0 est instalado y jumpers OP1-7 se configura con la direccin que utiliza el I 2 C maestro. Asegrese de que los I 2 C tienen las seales
adecuadas pull-ups. Algunos controladores son 2 dominadas en su I interfaz de C, de lo contrario pullup 2 las I seales C con 4,7 ki resistencias.

No admitidos I 2 comandos Asegrese de que las cuestiones de controlador C de host sencillo I 2 C de lectura y escritura con 7-bits.
Asegrese de que las escrituras son para el comando y slo cualquier argumento necesario. Asegrese de que las lecturas son exactamente el nmero esperado de bytes de datos de respuesta.

Recibir 0x00 Controlador de host est Asegrese de que el I 2 C de lectura slo lee el nmero de bytes correcto. inesperado al leer el I realizando una I 2 C de
2

C interfaz.

lectura que es ms grande que los datos devueltos por el comando anterior.

No hay respuesta para Caracteres extraos en el los comandos mando (por ejemplo, un enviados a travs de <LF> carcter antes del carcter <CR>). la interfaz serial.

Asegrese de que los nicos personajes que se envan a la HRMI incluyen el comando ASCII, caracteres de espacios opcionales, caracteres numricos y el carcter de terminacin <CR>.

Apndice B: Ejemplos de cdigo


El proceso bsico para la comunicacin con el HRMI de un controlador de host consta de los siguientes pasos. 1.Abra el / serie I 2 2.Configure puerto serie C del I / 2 del puerto C 3.Send una orden 4.Lea una respuesta

Unix / Mac OS X utilizando la interfaz en serie


Muchos sistemas Unix / Linux basadas en PC tienen un puerto serial incorporado que se puede conectar a la HRMI travs de la interfaz lgica nivel con un chip convertidor serieTTL apropiado como el Maxim MAX3222E o ST Microelectronics ST202E. Los sistemas con un puerto USB se pueden comunicar directamente con el HRMI despus de descargar e instalar un controlador de FTDI . La raz de C-programa ilustra una simple comando / respuesta. Usted tendr que cambiar la cadena de dispositivo para su entrada especfica dispositivo de puerto serial.
/ * * Programa de demostracin para la comunicacin con el HRMI travs de una interfaz serial * / # Include <stdio.h> # Include <string.h> # Include <unistd.h> # Include <fcntl.h> # Include <sys/ioctl.h> # Include <errno.h> # Include <paths.h> # Include <termios.h> # Include <sysexits.h> # Include <sys/param.h> # Include <sys/select.h>

/ / Definir una constante que especifica la cadena de respuesta ms grande que tenemos acerca de la HRMI # Define MAX_RSP_CHARS 140

/ / Global para mantener el puerto de serie original atributos estticos struct termios gOriginalTTYAttrs; / / / / OpenSerialPort: Rutina de abrir y configurar el prot serial / / static int OpenSerialPort (const char * deviceFilePath) { / / Variables int fd = -1; descriptor / / archivo para el puerto serie struct termios opciones, las opciones de configuracin del puerto / / serie / / Abrir el puerto serie if ((fd = open (deviceFilePath, O_RDWR | O_NOCTTY)) == -1) {printf ("abrir% s puerto serial Error -% s (% d) \ n", deviceFilePath, strerror (Error), errno); return (1);} / / Impedir que otros procesos de abrir el puerto serie if (ioctl (fd, TIOCEXCL) == -1) { printf ("ajuste TIOCEXCL Error de% s -% s (% d) \ n", deviceFilePath, strerror (Error), errno); return (1);} / / Obtiene las opciones actuales del puerto serie y guardarlos para restaurar la salida if (tcgetattr (fd, & gOriginalTTYAttrs) == -1) {printf ("Error al obtener el tty atributos% s -% s (% d) \ n", deviceFilePath , strerror (Error), errno); return (1);} / / Configurar las opciones de puerto de serie = gOriginalTTYAttrs; / / Establecer la entrada bruta (no cannica) el modo, con lecturas de bloqueo hasta que un / / Solo carcter se ha recibido o un tiempo de espera un segundo expira cfmakeraw (y opciones); options.c_cc [VMIN] = 1; options.c_cc [VTIME] = 10;

/ / Establecer la velocidad de transmisin y longitud de palabra cfsetspeed (y opciones, B9600); options.c_cflag | = (CS8); / / Porque las nuevas opciones tengan efecto inmediatamente si (tcsetattr (fd, TCSANOW, y opciones) == -1) {printf ("establecer los atributos tty Error \ n"); return (1);} return (fd);}

/ / / / CloseSerialPort: Cierre nuestra conexin y restaurar la configuracin original / / void CloseSerialPort (int fd) { / / Bloquear hasta que toda la produccin escrita ha sido enviado desde el dispositivo si (tcdrain (fd) == -1) { printf ("Error esperando desage -% s (% d) \ n", strerror (Error), errno);} / / Inicializar el puerto serie al estado en el que nos encontramos if (tcsetattr (fd, TCSANOW, y gOriginalTTYAttrs) == -1) { printf ("Error al restaurar atributos tty -% s (% d) \ n", strerror (Error), errno);} / / Cerrar el puerto close (fd); } / / / / SendGetHeartRate: Funcin para enviar un comando para obtener el nmero de valores de la frecuencia cardaca

/ / Especificado en NumEntries / / / / Devuelve 1 para el xito, 0 para el fracaso / / SendGetHeartRate int (int fd, int NumEntries) { caracteres sendCommand [8]; / / matriz de tamao para mantener la mayor cadena de comando CmdLength int / / Nmero de caracteres en la cadena de comando

/ / Validar NumEntries si NumEntries (<0) NumEntries = 0; else if (NumEntries> 32) NumEntries = 32;

/ / Construye la cadena de comandos / / Nota: "\ 015" es el carcter de retorno de carro CmdLength = sprintf (sendCommand, "G% 0d \ 015", NumEntries); / / Enviar la cadena de comandos return (write (fd, sendCommand, CmdLength) == CmdLength);}

/ / / / GetResponseString: Funcin para leer una cadena de respuesta de vuelta de la HRMI / / GetResponseString int (int fd, char * ResponseString)

{Char b [2], int i = 0; do { int n = read (fd, b, 1) / / leer un char a la vez if (n == -1) return (1); no / / leer if (n == 0) { usleep (10 * 1000) / / espera 10 milisegundos antes de volver a intentarlo continuar; }

ResponseString [i] = b [0]; / / almacenar el carcter i + +; / / Repeticin hasta que veamos el carcter <CR> o superamos el buffer } While ((b [0] = 0x0D) && (i <MAX_RSP_CHARS)!); ResponseString [i-1] = 0; / / null terminar la cadena (sustituir el <CR>) Return (0);}

int main () { int sfd; descriptor int i = 0 fichero port / / serie / / bucle contador de caracteres RspBytes [MAX_RSP_CHARS], string / / Respuesta numBytes int; / / Abrir el dispositivo de puerto serie asociado a la HRMI if ((SFD = OpenSerialPort ("/ dev/cu.usbserial-A9003PDh")) == -1) {return (1);} / / Enviar una serie de comandos de frecuencia cardaca se obtiene, cada vez solicitando ms memoria histrica

/ / Entradas while (i + + <33) { if (SendGetHeartRate (SFD, i) == 0) {printf ("Error: SendGetHeartRate no \ n"); break;} if (GetResponseString (SFD, RspBytes) == -1) {printf ("Error: GetResponseString no \ n"); break;} else { printf ("Request% 2d =>% s \ n", i, RspBytes);} sleep (1);} CloseSerialPort (SFD); }

Procesamiento mediante la interfaz serial


El procesamiento de lenguaje y entorno incluye una serie biblioteca que facilita la interfaz del programa de procesamiento de la HRMI. El programa de procesador de siguiente ilustra una simple comando / respuesta. Este programa se diferencia del programa de Unix en que procesamos un buffer recibido completa de caracteres ASCII manualmente despus de haberla recibido de la HRMI.
/ / / Programa / Demostracin de comunicacin con el HRMI travs de una interfaz serial / /

/ / Incluir la biblioteca serial importacin processing.serial *.; / Declaracin / Variable Puerto serie; / El puerto serie / byte [] = new byte rspCharArray [32]; / / Dnde vamos a poner los datos brutos ledos del HRMI int [] rspArgArray = new int [3]; / / Dnde vamos a poner los valores de respuesta convertidos int validData = 0; int CR = 13 / / <CR> constante void setup () { / / Abrir un dispositivo serie especfica (esto va a cambiar para cada dispositivo HRMI) port = nueva serie (this, "/ dev/tty.usbserialA9003PDh", 9600);

/ / Configurar el serialEvent que se llamar cuando recibimos respuesta completa / / Paquetes desde el dispositivo de port.bufferUntil HRMI (CR);

} Void draw () { / / Enviar el comando para obtener un nico valor de la frecuencia cardaca validData = 0; port.write ('G'); port.write ('1 '); port.write (CR);

/ / Esperar una respuesta del dispositivo HRMI while (validData == 0) { delay (1000); / / Delay 1 segundo entre los controles }

/ / Modo de visualizacin, el recuento y la frecuencia cardiaca if ((rspArgArray [0] y 0x01) == 0x01) print ("Modo promediada"), de otra print ("Modo Raw"); print (rspArgArray [1]); print (""); println (rspArgArray [2]) / / Conde, tasa / / Corazn} / / Captura el evento de la interfaz serie. Asegrese de que haya / / En realidad los datos para leer antes de intentar realizar cualquier proceso. void serialEvent (puerto serie) { if (port.readBytesUntil (CR, rspCharArray)! = 0) { / / Leer bytes hasta que lleguemos al final del paquete de conversin / / Cada dgito ASCII en un nmero. Hacemos uso del espacio / / carcter entre grupos de dgitos a nmeros delimitan. / / Argumento 0: Indicadores de estado

/ / Argumento 1: II Conteo / / Argumento 2: Heartrate / / ArgIndex int = 0; charIndex int = 0; for (int i = 0; i <3, i + +) rspArgArray [i] = 0; while (! rspCharArray [charIndex] = CR) {if (! rspCharArray [charIndex] = ((byte) '')) { rspArgArray [ArgIndex] = (rspArgArray [ArgIndex] * 10) + (rspCharArray [charIndex] ((Byte) '0 ')); } Else { ArgIndex + +; } CharIndex + +; } validData = 1; } }

Arduino con I 2 C
El Arduino y relacionados pequeos hardware controladores que ejecutan el idioma Cableado incluyen una biblioteca llamada alambre que hace que sea fcil de interactuar con una HRMI travs de la E 2 C puerto. (Tambin pueden comunicarse con el HRMI a travs de una serie de interfaz). El programa de procesador de siguiente ilustra una simple respuesta del comando / usar el I 2 C de interfaz. Se compone de dos archivos. El primer archivo, arduino_simple.pde, es el programa principal. El segundo archivo, hrmi_funcs.h, contiene los I 2 C rutinas de acceso. arduino_simple.pde
/ *

Sencillo programa basado en Arduino para leer los valores de la HRMI

utilizando la interfaz I2C *

Conexiones Arduino HRMI ----------------------5 +5 ( Poder para el HRMI) GND GND Analgica 5 TX (I2C SCL) (se recomienda 4.7 kOhm pullup) * Entrada

analgica 4 RX (I2C SDA) (se recomienda 4.7 kOhm pullup) * *

mximo

Nota: Por defecto la biblioteca cableado Arduino est limitada a un Lectura I2C de 32 bytes. El comando Get Heartrate se limita por este cdigo a un mximo de 30 valores (para un mximo de paquetes

I2C * de 32 bytes). * * / # Include "Wire.h" # Include "hrmi_funcs.h" / *

Configuracin Informacin

Cambiar estas constantes para que coincida con su configuracin Los valores son los valores de fbrica (no OP1-OP7 puentes

especfica. Estas instalados). Jumper * OP0 debe ser instalado y puente SJ1 eliminado. *

serial. *

HRMI_HOST_BAUDRATE debe ajustarse a la velocidad de transmisin del

anfitrin u se * para comunicarse con el Arduino a travs de la interfaz

HRMI_I2C_ADDR debe establecerse en la direccin I2C del HRMI est

configurado con *. * / # Define HRMI_HOST_BAUDRATE 9600 # Define HRMI_I2C_ADDR 127

/ *

* /

Programa constantes

# Define MAX_IN_BUFFSIZE 16

/ *

* /

Las variables globales

caracteres serInStr [MAX_IN_BUFFSIZE] / / matriz de cadenas de entrada de serie numEntries int = 0; / / Nmero de valores de FC para solicitar numRspBytes int / / Nmero de bytes de Respuesta a leer byte i2cRspArray [34]; / / array respuesta I2C, tamao de leer 32 HR valores byte hrmi_addr = HRMI_I2C_ADDR; direccin / / I2C utilizar

/ *

* / Void setup () {

Arduino inicializacin cdigo segmento

/ / Inicializar el hrmi_open comunicacin I2C (); / / Inicializar la interfaz en serie Serial.begin (HRMI_HOST_BAUDRATE); }

/ *

* / Void loop () {

Arduino principal cdigo bucle

/ / Solicitud de un conjunto de valores de la frecuencia cardaca hrmiCmdArg (hrmi_addr, 'G', (byte) numEntries);

/ / Obtener la respuesta del numRspBytes HRMI = numEntries + 2; if (hrmiGetData (hrmi_addr, numRspBytes, i2cRspArray)! = -1) {/ / enva los resultados de vuelta en la interfaz serial en formato ASCII Serial.print ("Solicitud"); Serial.print (numEntries); Serial.print ("=>"); for (int i = 0; i <numRspBytes, i + +) {Serial.print (i2cRspArray [i], DEC );

Serial.print (""); } Serial.println (); }

/ / Configuracin para hacerlo de nuevo si (+ + numEntries> 30) numEntries = 0; delay (1000); / / retraso de 1 segundo entre comandos}

hrmi_funcs.h
/ *

hrmi_funcs.h

Arduino biblioteca para comunicarse con un HRMI utilizando I2C

* / # Include <Wire.h> / *


* /

hrmi_open: Inicializar la biblioteca I2C Esta rutina debe ser llamada antes de intentar comunicarse con I2C

static void hrmi_open () {

Wire.begin (); }

/ *

* /

hrmiCmdArg: Enviar el comando seguido de un nico argumento

static void hrmiCmdArg (byte addr, byte cmd, byte arg) { Wire.beginTransmission (addr); Wire.send (cmd); Wire.send (arg); Wire.endTransmission (); }

/ *

* /

hrmiCmd: Enviar el comando sin argumentos

static void hrmiCmd (byte addr, byte cmd) { Wire.beginTransmission (addr); Wire.send (cmd); Wire.endTransmission (); }

/ *

hrmiGetData: Obtener el nmero especificado de bytes de datos desde

el HRMI * en una matriz.

* / static int hrmiGetData (byte addr, numBytes byte, byte * dataArray) { Wire.requestFrom (addr, numBytes); if (Wire.available ()) {for (int i = 0; i <numBytes, i + +) dataArray [i] = Wire.receive (); return (0); } Return (1); }

Apndice C: Esquema
Pulsmetro interfaz Manual del usuario