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