Home
CAN-095, Utilización del modo API en módulos XBee Wi
Contents
1. si escape es distinto de cero Devuelve la longitud de la trama valor mayor que cero al finalizar y API AGAIN mientras es necesario llamarla nuevamente Si se utiliza el modo con escape la sincronizaci n de inicio de trama se realiza mediante el caracter 0x7E Si no se lo utiliza debe sincronizarse de forma externa detectando no utilizaci n y llamando a API initgettingframe Esta funci n llama autom ticamente a API checkframe retornando API DONE s lo en el caso de recibir una trama v lida borra el buffer y comienza a colectar de nuevo si falla la detecci n Como seguramente pudimos inferir el par metro escape indica si se utiliza o no este modo de operaci n y debe coincidir con lo configurado en el m dulo del que recibamos y queramos mandar datos Por ejemplo si el par metro AP en el m dulo tiene el valor 1 no utilizamos el modo con escape y deberemos asignar el valor 0 al par metro escape al llamar a estas funciones Dos funciones adicionales son llamadas por las anteriores y son las que se ocupan de acceder al hardware para interactuar con la UART e extern int TX unsigned char devuelve 1 si no puede transmitir no hay lugar en el buffer 0 si pudo e extern int RX void devuelve el caracter recibido o 1 si no hay ninguno La funci n 7X puede o no implementar un buffer pero RX debe hacerlo para permitir recuperar la cantidad de caracteres que puedan recibirse entre llamadas a API getframe y o entre el retorn
2. descripci n de la implementaci n propuesta Si bien el framing es simple hemos desarrollado un sencillo esquema en C que nos permite utilizar el modo API para poder identificar remotos y enviarles mensajes en un sistema con muchos m dulos La implementaci n sugerida ha sido desarrollada y probada bajo Linux pero resulta f cil de portar a cualquier microcontrolador El esquema propuesto se maneja mediante dos juegos de tres funciones que permiten enviar y recibir los datos vali ndose de una estructura de tipo APlstruct la cual contiene internamente otras estructuras que a su vez contienen el buffer para los datos y dan el formato de la trama Las funciones son CAN 095 1 CAN 095 Utilizaci n del modo API en m dulos XBee Wi Fi void API _buildframe APlstruct api unsigned char datalen da formato a una trama int API_checkframe APlstruct api valida la trama recibida devuelve la longitud de los datos void API initsendingframe APlstruct api comienza el proceso de env o de una trama int API sendframe APlstruct api unsigned char escape realiza el proceso de env o y genera las secuencias de escape si escape es distinto de cero Devuelve API DONE al finalizar y API AGAIN mientras es necesario llamarla nuevamente void API initgettingframe APlstruct API comienza el proceso de recepci n de una trama e int API getframe APlstruct api unsigned char escape realiza el proceso de recepci n y recupera las secuencias de escape
3. CAN 095 Utilizaci n del modo API en m dulos XBee Wi Fi Nota de Aplicaci n CAN 095 Ci k 3 T tulo Utilizaci n del modo API en m dulos XBee Wi Fi TT Electr nica S R L Autor Sergio R Caprile Senior Engineer Revisiones Fecha Comentarios 0 14 09 11 port de CAN 088 En esta Nota de Aplicaci n veremos la forma de utilizar el modo API en m dulos XBee Wi Fi en particular incluimos una implementaci n open source en C El lector familiarizado con otros m dulos XBee notar que el formato API sigue siendo el mismo s lo se agregan algunos formatos de tramas Introducci n Comentamos en varios Comentarios T cnicos la existencia de un modo de comunicaci n denominado API En este modo de trabajo el m dulo XBee Wi Fi sigue respondiendo a la secuencia de escape y el env o de comandos AT pero la informaci n de y hacia otros m dulos respeta un framing particular el cual permite simplificar la operatoria con varios m dulos remotos dado que es posible identificar el origen y seleccionar el destino de la informaci n dentro del mismo paquete de datos Breve descripci n del framing API El framing y los distintos tipos de tramas se hallan descriptas en el manual del usuario de los m dulos por lo que nos centraremos aqu en los conceptos fundamentales El modo API se configura mediante el par metro AP Existen dos modos de trabajo uno normal 4P 1 en el que la trama comienza con el carac
4. PIwsndip4 ws api frame info id API_APIWSNDIP4 tx data ws APIwsndip4 api frame info data apunta a data ID ws gt frameid id para reconocer la respuesta ADDR ws gt addr 4 DPORT wr gt dport SPORT wr gt sport OPT ws gt options DATA ws gt data datos a enviar datalen longitud de los datos en DATA El API buildframe 8 api sizeof APIwsndip4 datalen 1 arma trama API initsendingframe api inicia env o while API_sendframe 8api 0 API_AGAIN env a CAN 095 3 CAN 095 Utilizaci n del modo API en m dulos XBee Wi Fi Contenido del archivo adjunto El archivo adjunto incluye los siguientes archivos apiframe h definiciones de las estructuras del framing y funciones involucradas apiframe c c digo de dichas funciones apicommon h definiciones de las estructuras para frames comunes apiwf h definiciones de las estructuras para frames particulares del XBee Wi Fi monlibwf h declaraciones de funciones adicionales para extracci n de informaci n de estos frames con la intenci n de presentarla de forma amigable monlibwf c c digo de dichas funciones el foco est puesto en la claridad y simpleza no en la performance monitorwf c ejemplo de utilizaci n decodifica y muestra en pantalla las tramas que recibe por el puerto serie La lectura propiamente dicha se realiza mediante una funci n adicional incluida en serial c s lo para Linux El ejemplo no implementa sincronismo por ina
5. ctividad en el modo normal sin escape de modo que si se interrumpe el flujo normal debe reiniciarse el programa sin informaci n por el puerto serie para resincronizar Dichos archivos compilan bajo gcc y no requieren m s que las dependencias entre ellos para linkear por ejemplo gcc c apiframe c gcc c monlib c gcc c monlibwf c gcc c serial c gcc o monitorwf monitorwf c apiframe o monlibwf o monlib o serial o monitorwf 0 dev modem 9600 RX 82 00 00 00 00 CO A8 01 10 P 50 00 01 OC 1C 83 00 18 01 D1 01 B8 I O Data Receive IPv4 Addr 192 168 1 16 OPT NONE 00 1 samples active digital channels 0C 1C analog channels 03 I O 018 ANO 1D1 AN1 1B8 CAN 095 4
6. o Ejemplo de utilizaci n Vemos aqu un simple ejemplo de como aplicar estas funciones a un caso de lectura de tramas de informaci n Inicializamos el proceso de recepci n llamamos a la funci n que recibe hasta tanto sta nos indique que dispone de una trama lista A continuaci n copiamos la trama a un buffer para permitir seguir recibiendo tramas y apuntamos a los datos El campo info de la estructura APlinfo nos permite determinar qu tipo de trama es y realizando un cast al tipo correspondiente podemos obtener f cilmente la informaci n del campo data tfinclude apiframe h tinclude apicommon h tinclude apiwf h define escape 1 main int ret static APIstruct apirx static APIdata rxdata APIinfo info APIwrcvip4 wr API_initgettingframe amp apirx comienza recepci n while 1 1 while ret API getframe 8tapirx escape lt 0 recibe trama rxdata len ret obtiene longitud de datos memcpy rxdata info s apirx frame info ret copia libera buffer API initgettingframe 8 apirx recibe trama siguiente luego info 8rxdata info apunta a INFO switch info gt id tipo de trama case API _APIWRCVIP4 wr APIwrcvip4 info gt data apunta a DATA JE ADDR wr gt addr 4 DPORT wr gt dport SPORT wr gt sport STS wr gt status DATA wr gt data E break Para enviar informaci n debemos armar la trama y llamar a la funci n que la env a static APIstruct api A
7. o de sta y la subsiguiente llamada a API nitgettingframe para obtener la trama siguiente Obviamente stas son las funciones que deberemos portar al hardware que deseemos utilizar En cuanto a lo que deseamos transmitir o recibir existe una estructura para cada tipo de trama API La estructura APlstruct incluye a la estructura APlIframe la cual implementa el formato de la trama Posee un campo de tipo 4Plinfo en el cual viaja la parte til de la trama y contiene el buffer que llenaremos con nuestros datos a transmitir y del que extraeremos los datos recibidos 4PIstructname frame info data Should accomodate 1500 bytes data packet header overhead define APIBUFFERSZ 1550 fdefine API_MAXFRAMESZ APIBUFFERSZ account for start len and checksum define API OVERHEAD 4 account for id define API_DATAOVH API_OVERHEAD 1 typedef struct unsigned char id unsigned char data API_MAXFRAMESZ API DATAOVH APlinfo typedef struct unsigned char start unsigned char len 2 APTinfo info APIframe typedef struct unsigned char ptr unsigned char cnt unsigned char len APIframe frame APIstruct CAN 095 2 CAN 095 Utilizaci n del modo API en m dulos XBee Wi Fi Estas estructuras se hallan descriptas en apiframe h que se incluye en el archivo adjunto Las dem s estructuras que soportan a los diversos tipos de frames se hallan descriptas en apicommon h y apiwfh tambi n incluidas en el archivo adjunt
8. ter 0x7E y otro con escape 4P 2 en el cual se garantiza que el caracter 0x7E s lo aparece en el stream de datos para indicar el inicio de una trama de igual modo que en SDLC HDLC En este modo si alguno de los datos a transmitir contiene el valor 0x7E ste resulta reemplazado por una secuencia de escape Lo mismo se aplica a caracteres de control de flujo XON XOFF 0x11 y 0x13 y el caracter utilizado para indicar la secuencia de escape 0x7D En resumen en el modo normal la presencia de un caracter 0x7E indica el inicio de una trama s lo si es el primer caracter que se recibe luego de un silencio mientras que en el modo con escape siempre indica el inicio de una trama y debemos detectar las secuencias de escape y reemplazarlas por los caracteres originales B sicamente una trama comienza con el caracter de inicio de trama 0x7E contiene dos bytes que indican la longitud LEN un byte adicional que indica el tipo de trama de que se trata ID una serie de bytes dependientes del tipo de trama en cuesti n DATA y un checksum que permite verificar que lo que se recibi es correcto El tipo de trama ID nos indica de qu se trata por ejemplo los datos enviados desde un remoto recibidos por su puerto serie corresponden al tipo OxB0 y los datos correspondientes a mediciones de un remoto I O data corresponden al tipo 0x8F lt 0x7E gt lt LEN 2 bytes gt lt INFO len bytes gt lt CHECKSUM gt INFO lt ID gt lt DATA gt Breve
Download Pdf Manuals
Related Search
Related Contents
Leica AutoStainer XL Electronics Analogue and Digital Interfacing Teacher/Lecturer Notes Scaricamento - Officeserv.it The Fast Guide for config the IPcam Stylitis-10_B User Manual - Symmetron Electronic Applications リアボックス E300NY 取扱説明書ダウンロード H.264--Client Software User`s Manual FUNAI CIWL3206 Flat Panel Television User Manual Bedienungsanleitung Makita G1700I User's Manual Copyright © All rights reserved.
Failed to retrieve file