Home
Baje el Comentario Técnico en PDF
Contents
1. n y recupera las secuencias de escape 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 O si pudo e extern int RX void devuelve el caracter recibido o 1 si no hay ninguno La funci n TX puede o no implementar un buffer pero RX debe hacerlo para permitir recuperar la cantidad de caracteres que puedan recibirse entre llamad
2. 56 18 B8 NI GOKU Parent Short Addr A6 87 Type END DEVICE Status 00 ProfileIlD C1 05 ManufID 10 1E CAN 089 5
3. adicional incluida en serial c s lo para Linux El ejemplo no implementa sincronismo por inactividad 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 e ndzb c ejemplo de utilizaci n env a un comando ATND y muestra en pantalla las respuestas que recibe 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 monlibzb c gcc c serial c gcc o monitorzb monitorzb c apiframe o monlibzb o serial o monitorzb 0 dev modem 9600 RX 92 00 13 A2 00 40 56 18 B8 B4 4C 01 01 08 1C 03 00 00 02 34 01 F7 I O Data Receive IEEE Addr 00 13 A2 00 40 56 18 B8 Short Addr B4 4C OPT ACKED 01 1 samples active digital channels 08 1c analog channels 03 I O 000 ANO 234 AN1 1F7 Ejemplo de utilizaci n ndzb c Vemos aqu otro ejemplo en este caso enviamos un comando de network discovery y mostramos las respuestas Luego de armado y enviado el comando 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 ci
4. datos printf Command Response frame ID 02X STS s 02X DATA resp gt fram eid prrst resp gt status resp gt status prdata resp gt data rxdata len 5 0 printf An ret 0 id APIznodelD resp gt data apunta a nodeid prznodeid id muestra break default ret 0 printer Mint ndzb 0 dev modem 9600 RX 88 12 4E 44 00 00 00 00 13 A2 00 40 4A 6A OC 4B 41 4D 49 2D 53 41 4D 41 00 FF FE 00 00 C1 05 10 1E Command Response frame ID 12 STS OK 00 DATA 00 00 00 13 A2 00 40 J 4A j 6A 0C K 4B A 41 M 4D 1 49 2D S 53 A 41 M 4D A 41 00 FF FE 00 00 C1 05 10 1E Short Addr 00 00 IEEE Addr 00 13 A2 00 40 4A 6A 0C NI KAMI SAMA Parent Short Addr FF FE Type COORDINATOR Status 00 ProfileID C1 05 ManufID 10 1E RX 88 12 4E 44 00 A6 87 00 13 A2 00 40 56 18 B7 4D 52 2E 20 50 4F 50 4F 00 FF FE 01 00 C1 05 10 TE Command Response frame ID 12 STS OK 00 DATA A6 87 00 13 A2 00 40 V 56 18 B7 M 4D R 52 2E 20 P 50 O 4F P 50 O 4F 00 FF FE 01 00 C1 05 10 1E Short Addr A6 87 IEEE Addr 00 13 A2 00 40 56 18 B7 NI MR POPO Parent Short Addr FF FE Type ROUTER Status 00 ProfileIlD C1 05 ManufID 10 1E RX 88 12 4E 44 00 BA OB 00 13 A2 00 40 56 18 B8 47 4F 4B 55 00 A6 87 02 00 C1 05 10 1E Command Response frame ID 12 STS OK 00 DATA BA 0B 00 13 A2 00 40 V 56 18 B8 G 47 O 4F K 4B U 55 00 A6 87 02 00 C1 05 10 1E Short Addr BA 0B IEEE Addr 00 13 A2 00 40
5. CAN 089 Utilizaci n del modo API en m dulos XBee ZB Cika Nota de Aplicaci n CAN 089 T tulo Utilizaci n del modo API en m dulos XBee ZB 7 o Electr nica autor Sergio R Caprile Senior Engineer Revisiones Fecha Comentarios O 24 11 08 port de CAN 088 En esta Nota de Aplicaci n veremos la forma de utilizar el modo API en m dulos XBee o XBee PRO ZB 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 ZB ya no funciona en modo transparente y no posee comandos AT La comunicaci n con el m dulo 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 as como tambi n configurar al m dulo conectado o uno remoto 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 Existen dos modos de trabajo uno normal AP 1 en el que la trama comienza con el caracter 0x7E y otro con escape AP 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 tr
6. ansmitir 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 0x90 si no est habilitado el modo expl cito el cual cubriremos en otros texto Los datos correspondientes a mediciones de un remoto I O data corresponden al tipo 0x92 lt 0x7E gt lt LEN 2 bytes gt lt INFO len bytes gt lt CHECKSUM gt INFO lt ID gt lt DATA gt Las tramas incorporan adem s informaci n adicional como por ejemplo si la trama fue un broadcast ID 0x90 lt IEEE ADDR 8 bytes gt lt short ADDR 2 by
7. as a API _getframe y o entre el retorno de sta y la subsiguiente llamada a API_initgettingframe 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 APIstruct incluye a la estructura APIframe la cual implementa el formato de la trama Posee un campo de tipo APlinfo 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 APIstructname frame info data Should accomodate 100 bytes data packet header overhead tdefine APIBUFFERSZ 128 tdefine API_MAXFRAMESZ APIBUFFERSZ account for start len and checksum tdefine API_OVERHEAD 4 account for id tdefine API_DATAOVH API_OVERHEAD 1 typedef struct unsigned char id unsigned char data API_MAXFRAMESZ API_DATAOVH APlIinfo typedef struct unsigned char start unsigned char len 2 APlinfo info APIframe typedef struct unsigned char ptr unsigned char cnt unsigned char len CAN 089 2 CAN 089 Utilizaci n del modo API en m dulos XBee ZB APIframe frame APIstruct 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 apizb h ta
8. la trama y llamar a la funci n que la env a static APIstruct api APIzsend zs api frame info id API_APIZSEND tx data zs APIzsend sapi frame info data apunta a data ID zs gt frameid id para reconocer la respuesta IEEE ADDR zs gt addr 8 short ADDR zs gt addr 2 OxFFFE si no se conoce RADIUS zs gt options OPT zs gt options DATA zs gt data datos a enviar datalen longitud de los datos en DATA el API_buildframe api sizeof APIzsend datalen 1 arma trama API_initsendingframe 8 api inicia env o CAN 089 3 CAN 089 Utilizaci n del modo API en m dulos XBee ZB while API_sendframe s api 0 API_AGAIN env a 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 apizb h definiciones de las estructuras para frames particulares del XBee ZB monlibzb h declaraciones de funciones adicionales para extracci n de informaci n de estas frames con la intenci n de presentarla de forma amigable monlibzb c c digo de dichas funciones el foco est puesto en la claridad y simpleza no en la performance monitorzb 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
9. lmente la informaci n del campo data y as seguir descendiendo en la estructura de la trama tinclude apiframe h tinclude apicommon h tinclude apizb h fdefine escape 1 main int ret 0 static APIstruct api apirx static APIdata rxdata APIinfo info APIstatus sts APIcommand cmd APIresponse resp APIznodelD id AS api frame info id API_APICOMMAND comando cmd APIcommand api frame info data cmd gt frameid 0x12 id para reconocer la respuesta CAN 089 4 CAN 089 Utilizaci n del modo API en m dulos XBee ZB cmd gt cmd 0 N ND node discover cmd gt cmd 1 D API_buildframe api sizeof APIcommand 1 1 arma trama API_initsendingframe api inicia env o while API_sendframe s api 0 API_AGAIN env a API_initgettingframe Sapirx inicia recepci n while ret while ret API_getframe 8apirx escape lt 0 espera trama rxdata len ret longitud memcpy rxdata info apirx frame info ret copia API_initgettingframe amp apirx sigue recibiendo info rxdata info apunta a payload Printet INARA Es prdata unsigned char info rxdata len 1 printf Mat switch info gt id tipo de trama Case API_APISTATUS sts APIstatus s info gt data apunta a datos printf Status frame s 502X 1n prsts sts gt status sts gt status break Case API_APTIRESPONSE resp APIresponse s info gt data apunta a
10. mbi n incluidas en el archivo adjunto 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 tinclude apiframe h tinclude apicommon h tinclude apizb h fdefine escape 1 main int ret static APIstruct apirx static APIdata rxdata APIinfo info APIzrecv zr API_initgettingframe amp apirx comienza recepci n while 1 while ret API_getframe amp apirx escape lt 0 recibe trama rxdata len ret obtiene longitud de datos memcpy amp rxdata info amp apirx frame info ret copia libera buffer API_initgettingframe amp apirx recibe trama siguiente luego info amp rxdata info apunta a INFO switch info gt id tipo de trama case API_APIZRECV DATA direcci n de 64 bits zr APIzrecv info gt data apunta a DATA IEEE ADDR zr gt addr64 8 short ADDR zr gt addrl16 2 OPT zr gt options DATA zr gt data E break Para enviar informaci n debemos armar
11. tes gt lt OPTIONS gt lt DATA gt Breve 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 CAN 089 1 CAN 089 Utilizaci n del modo API en m dulos XBee ZB 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 void API_buildframe APlIstruct 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
Download Pdf Manuals
Related Search
Related Contents
MANUAL DO UTILIZADOR DO TECHCONNECT SELECT KH2231 Appareil de cuisson pour le pain 2015 AAM Summit - PSTECH Conference Dako Autostainer/Autostainer Plus model HV-956 VACUUMER : バキューマー取扱説明書 SH7239 CPU board R0K572390 User`s Manual Motorola 545101-011-00 Network Card User Manual Manual del Propietario CE132/10 Philips Car audio system Copyright © All rights reserved.
Failed to retrieve file