Diseño de un Sistema de Intercambio de Información para ...

808
FACULTAD DE INGENIERÍA DE LA UNIVERSIDAD DE BUENOS AIRES Tesis de Grado en Ingeniería Informática Diseño de un Sistema de Intercambio de Información para Dispositivos Intercomunicados por Redes PLC de Automóviles Tesista: Sr. Fernando Ariel Beunza Director: Ing. Jorge Alberto SEPTIEMBRE 2011

Transcript of Diseño de un Sistema de Intercambio de Información para ...

  • FACULTAD DE INGENIERADE LA

    UNIVERSIDAD DE BUENOS AIRES

    Tesis de Gradoen

    Ingeniera Informtica

    Diseo de un Sistema de Intercambio de Informacinpara Dispositivos Intercomunicados por Redes PLC

    de Automviles

    Tesista: Sr. Fernando Ariel BeunzaDirector: Ing. Jorge Alberto

    SEPTIEMBRE 2011

  • Tesis de Grado en Ingeniera Informtica

    Facultad de IngenieraUniversidad de Buenos Aires

    Diseo de un Sistema de Intercambio de Informacinpara Dispositivos Intercomunicados por Redes PLC

    de Automviles

    Sr. Fernando Ariel BeunzaTesista

    Ing. Jorge AlbertoDirector

    SEPTIEMBRE 2011

  • Tesis de Grado en Ingeniera Informtica

    ResumenDesde hace aos para mejorar las prestaciones de dispositivos que cada vez presentan ms

    cantidad de componentes electrnicos las interconexiones dedicadas estn siendo reemplazadas por buses de datos. Un mbito en donde esto sucede es en la industria automotriz, en donde los vehculos actuales trabajan con redes como CAN [Bosch91], J1850 [SAE94], entre otras; en donde los dispositivos electrnicos comparten informacin por medio de un nico cableado para datos.

    En los ltimos aos ha surgido la idea de combinar en un nico cableado la energa de alimentacin y la informacin, lo que se conoce como PLC. Los avances, respecto a la tecnologa PLC, se encuentran destinados ms que nada a infraestructura edilicia, existiendo una variedad de estndares de los cuales muchos no implementan todas las capas del modelo OSI [ISO7498-1]. Respecto a los avances de sta tecnologa en el ambiente automotriz, se han desarrollado trabajos que slo tratan las capas fsica y enlace del modelo OSI.

    La idea del presente trabajo es tomar como punto de partida los antecedentes mencionados y construir un sistema que permita compartir informacin encapsulando toda la complejidad involucrada en el proceso de comunicacin y brindando una interfaz que sea simple de utilizar para los dispositivos clientes del sistema.

    FernandoArielBeunza79156 5

  • Tesis de Grado en Ingeniera Informtica

    6 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    ndice1. Introduccin....................................................................................................................................152. Antecedentes...................................................................................................................................17

    2.1. Tecnologa PLC.......................................................................................................................172.1.1. X10...................................................................................................................................18

    2.1.1.1. Mtodo de transmisin..............................................................................................182.1.1.2. Estructura de mensaje................................................................................................192.1.1.3. Esquema de direccionamiento...................................................................................192.1.2.4. Funciones...................................................................................................................20

    2.1.2. CEBus...............................................................................................................................212.1.2.1. Mtodo de transmisin..............................................................................................212.1.2.2. Estructura de paquete.................................................................................................222.1.2.3. Esquema de direccionamiento...................................................................................222.1.2.4. Lenguaje de aplicacin..............................................................................................23

    2.1.3. CENELEC 50065.............................................................................................................252.1.4. UPB..................................................................................................................................26

    2.1.4.1. Mtodo de transmisin..............................................................................................272.1.4.2. Estructura de paquete.................................................................................................282.1.4.3. Esquema de direccionamiento...................................................................................292.1.4.4. Comandos..................................................................................................................30

    2.1.5. LonWorks.........................................................................................................................312.1.5.1. Protocolo CNP...........................................................................................................312.1.5.2. Capa fsica.................................................................................................................322.1.5.3. Capa de enlace...........................................................................................................332.1.5.4. Capa de red................................................................................................................342.1.5.5. Capa de transporte.....................................................................................................352.1.5.6. Capa de sesin...........................................................................................................362.1.5.7. Capa de presentacin.................................................................................................372.1.5.8. Capa de aplicacin.....................................................................................................38

    2.1.6. HomePlug.........................................................................................................................392.1.6.1. HomePlug 1.0............................................................................................................392.1.6.2. HomePlug AV...........................................................................................................422.1.6.3. HomePlug Green PHY..............................................................................................44

    2.2. Redes en automviles..............................................................................................................462.2.1. CAN..................................................................................................................................46

    2.2.1.1. Modelo de capas........................................................................................................462.2.1.2. Capa fsica.................................................................................................................472.2.1.3. Capa de enlace...........................................................................................................49

    2.2.2. J1850.................................................................................................................................522.2.2.1. Modelo de capas........................................................................................................522.2.2.2. Capa fsica.................................................................................................................542.2.2.3. Capa de enlace...........................................................................................................552.2.2.4. Capa de aplicacin.....................................................................................................56

    2.2.3. OSEK/VDX......................................................................................................................572.2.3.1. Arquitectura...............................................................................................................572.2.3.2. Implementacin.........................................................................................................58

    2.2.4. LIN....................................................................................................................................58

    FernandoArielBeunza79156 7

  • Tesis de Grado en Ingeniera Informtica

    2.2.4.1. Capa fsica.................................................................................................................592.2.4.2. Capa de enlace...........................................................................................................60

    2.2.5. D2B...................................................................................................................................612.2.5.1. Medio fsico...............................................................................................................622.2.5.2. Control de acceso al medio........................................................................................632.2.5.3. Estructura de paquete.................................................................................................63

    2.2.6. MOST...............................................................................................................................642.2.6.1. Modelo de dispositivo...............................................................................................642.2.6.2. Capa fsica.................................................................................................................642.2.6.3. Capa de red................................................................................................................652.2.6.4. Capa de aplicacin.....................................................................................................67

    2.2.7. FlexRay.............................................................................................................................682.2.7.1. Capa fsica.................................................................................................................682.2.7.2. Capa lgica................................................................................................................71

    2.3. Redes PLC en automviles......................................................................................................732.3.1. DC-BUS............................................................................................................................73

    2.3.1.1. mbitos de aplicacin...............................................................................................732.3.1.2. Medio de comunicacin.............................................................................................742.3.1.3. Implementacin.........................................................................................................75

    2.3.2. Trabajos sobre PLC en la industria automotriz................................................................752.3.2.1. Canal de comunicaciones..........................................................................................762.3.2.2. Mtodo de acoplamiento...........................................................................................792.3.2.3. Tcnica de modulacin..............................................................................................802.3.2.4. Tcnicas modificadas................................................................................................83

    3. Descripcin del problema...............................................................................................................853.1. Alcance de las soluciones existentes.......................................................................................85

    3.1.1. Comunicaciones PLC.......................................................................................................853.1.2. Redes de automviles.......................................................................................................863.1.3. PLC en automviles..........................................................................................................87

    3.2. Requerimientos para la propuesta del presente trabajo...........................................................884. Solucin propuesta.........................................................................................................................91

    4.1. Capa fsica...............................................................................................................................914.1.1. Mtodo de acoplamiento..................................................................................................914.1.2. Tcnica de modulacin.....................................................................................................934.1.3. Modem PLC.....................................................................................................................944.1.4. Implementacin del sistema de comunicaciones..............................................................95

    4.1.4.1. Implementacin fsica................................................................................................954.1.4.2. Implementacin lgica...............................................................................................97

    4.1.5. Estructura de tramas.......................................................................................................1024.1.6. Funciones adicionales.....................................................................................................1024.1.7. Primitivas de manejo de la capa fsica............................................................................103

    4.2. Capa de enlace.......................................................................................................................1054.2.1. Subcapa de control de acceso al medio..........................................................................106

    4.2.1.1. Caractersticas del medio.........................................................................................1064.2.1.2. Mtodo de acceso al medio.....................................................................................1064.2.1.3. Fragmentacin.........................................................................................................1094.2.1.4. Esquema de direccionamiento.................................................................................1114.2.1.5. Estructura de tramas................................................................................................1114.2.1.6. Control de errores....................................................................................................112

    8 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    4.2.1.7. Filtrado de tramas....................................................................................................1134.2.1.8. Primitivas de manejo de la subcapa de control de acceso al medio........................114

    4.2.2. Subcapa de control de lgica de enlace..........................................................................1154.2.2.1. Multiplexado de protocolos.....................................................................................1154.2.2.2. Control de flujo de datos.........................................................................................1164.2.2.3. Estructura de paquetes.............................................................................................1174.2.2.4. Control de errores....................................................................................................1174.2.2.5. Primitivas de manejo de la subcapa de control de lgica de enlace........................117

    4.2.3. Protocolo de resolucin de direcciones..........................................................................1194.2.3.1. Principio de funcionamiento....................................................................................1194.2.3.2. Estructura de mensajes............................................................................................1204.2.3.3. Primitivas de manejo del protocolo de resolucin de direcciones...........................120

    4.2.4. Primitivas de manejo de la capa de enlace.....................................................................1214.3. Capa de red............................................................................................................................123

    4.3.1. Modelo de comunicaciones............................................................................................1234.3.2. Esquema de direccionamiento........................................................................................1244.3.3. Estructura de mensajes...................................................................................................1254.3.4. Primitivas de manejo de la capa de red..........................................................................126

    4.4. Capa de transporte.................................................................................................................1284.4.1. Comunicacin por grupos de difusin............................................................................1284.4.2. Esquema de identificacin..............................................................................................1304.4.3. Mensajes.........................................................................................................................1304.4.4. Primitivas de manejo de la capa de transporte................................................................131

    4.5. Capa de sesin.......................................................................................................................1324.5.1. Establecimiento de sesiones...........................................................................................1334.5.2. Control del dilogo.........................................................................................................1344.5.3. Grupos de difusin..........................................................................................................1344.5.4. Estructura de los mensajes..............................................................................................1364.5.5. Primitivas de manejo de la capa de sesin.....................................................................136

    4.6. Capa de presentacin.............................................................................................................1384.6.1. Implementacin de datos estructurados..........................................................................1384.6.2. Esquema multiplataforma...............................................................................................1404.6.3. Estructura de los mensajes..............................................................................................1414.6.4. Primitivas de manejo de la capa de presentacin...........................................................141

    4.7. Capa de aplicacin.................................................................................................................1434.7.1. Servicio de mensajera....................................................................................................1444.7.2. Esquema multiplataforma...............................................................................................1454.7.3. Primitivas de manejo de la capa de aplicacin...............................................................1454.7.4. Interfaz C++....................................................................................................................1484.7.5. Biblioteca de bloques Simulink......................................................................................150

    5. Evaluacin de la solucin propuesta............................................................................................1515.1. Comparacin con redes PLC para automviles.....................................................................151

    5.1.1. Evaluacin del mdulo analgico...................................................................................1515.1.2. Evaluacin del mdulo de procesamiento de seales.....................................................1645.1.3. Evaluacin del canal de comunicacin...........................................................................1685.1.4. Comparacin con DC-BUS............................................................................................1785.1.5. Comparacin con los trabajos sobre PLC en la industria automotriz.............................179

    5.2. Comparacin con redes existentes para automviles............................................................1805.2.1. Comparacin con CAN..................................................................................................180

    FernandoArielBeunza79156 9

  • Tesis de Grado en Ingeniera Informtica

    5.2.2. Comparacin con J1850.................................................................................................1815.2.3. Comparacin con OSEK/VDX.......................................................................................1825.2.4. Comparacin con LIN....................................................................................................1825.2.5. Comparacin con D2B...................................................................................................1835.2.6. Comparacin con MOST................................................................................................1845.2.7. Comparacin con FlexRay.............................................................................................184

    5.3. Caractersticas particulares de la solucin propuesta............................................................1855.4. Desempeo de la solucin propuesta.....................................................................................186

    6. Conclusiones.................................................................................................................................1896.1. Anlisis de resultados............................................................................................................1896.2. Trabajos futuros.....................................................................................................................191

    7. Referencias...................................................................................................................................193Apndice A: Implementacin del hardware del modem PLC..........................................................199

    A.1. Organizacin del hardware...................................................................................................199A.2. Implementacin del mdulo analgico.................................................................................201A.3. Implementacin del mdulo de procesamiento de seales...................................................207A.4. Implementacin del mdulo de procesamiento....................................................................214A.5. Implementacin del mdulo de adaptacin RS232..............................................................219

    Apndice B: Simulacin del hardware del modem PLC..................................................................221B.1. Organizacin del hardware...................................................................................................221B.2. Implementacin del mdulo analgico.................................................................................221B.3. Implementacin del mdulo de procesamiento de seales...................................................228

    Apndice C: Cdigo fuente..............................................................................................................239C.1. Organizacin del cdigo fuente............................................................................................239C.2. Especificacin del cdigo fuente de las bibliotecas de uso del modem PLC (plataforma AT89X5X)....................................................................................................................................241

    C.2.1. Archivo config.h............................................................................................................242C.2.2. Archivo modplcap.h.......................................................................................................243C.2.3. Archivo modplcap__init.c..............................................................................................247C.2.4. Archivo modplcap_release.c..........................................................................................248C.2.5. Archivo modplcap_publish.c.........................................................................................248C.2.6. Archivo modplcap_subscribe.c......................................................................................249C.2.7. Archivo modplcap_leave.c............................................................................................250C.2.8. Archivo modplcap_newmsg.c........................................................................................250C.2.9. Archivo modplcap_copymsg.c.......................................................................................251C.2.10. Archivo modplcap_putfield.c......................................................................................252C.2.11. Archivo modplcap_sendmsg.c.....................................................................................252C.2.12. Archivo modplcap_receivemsg.c.................................................................................253C.2.13. Archivo modplcap_getfield.c.......................................................................................254C.2.14. Archivo modplcap_getgrpid.c......................................................................................255C.2.15. Archivo modplcap_getmsgid.c....................................................................................255C.2.16. Archivo modplcap_destroymsg.c.................................................................................256C.2.17. Archivo modplcap_setbuffer.c.....................................................................................257C.2.18. Archivo modplcap_notify.c.........................................................................................257C.2.19. Archivo modplcap_poll.c.............................................................................................259C.2.20. Archivo modplcap_status.c..........................................................................................260C.2.21. Archivo modplcpp.h....................................................................................................260C.2.22. Archivo modplcpp__init.c...........................................................................................265C.2.23. Archivo modplcpp_release.c........................................................................................265

    10 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    C.2.24. Archivo modplcpp_publish.c.......................................................................................266C.2.25. Archivo modplcpp_subscribe.c....................................................................................267C.2.26. Archivo modplcpp_leave.c..........................................................................................267C.2.27. Archivo modplcpp_newmsg.c.....................................................................................268C.2.28. Archivo modplcpp_copymsg.c....................................................................................269C.2.29. Archivo modplcpp_putfield.c......................................................................................270C.2.30. Archivo modplcpp_sendmsg.c.....................................................................................272C.2.31. Archivo modplcpp_receivemsg.c.................................................................................272C.2.32. Archivo modplcpp_getfield.c......................................................................................273C.2.33. Archivo modplcpp_getgrpid.c.....................................................................................275C.2.34. Archivo modplcpp_destroymsg.c................................................................................276C.2.35. Archivo modplcpp_setbuffer.c....................................................................................276C.2.36. Archivo modplcpp_notify.c.........................................................................................277C.2.37. Archivo modplcpp_poll.c............................................................................................279C.2.38. Archivo modplcpp_status.c..........................................................................................279C.2.39. Archivo modplcsp.h.....................................................................................................280C.2.40. Archivo modplcsp__init.c............................................................................................283C.2.41. Archivo modplcsp_release.c........................................................................................285C.2.42. Archivo modplcsp_publish.c.......................................................................................286C.2.43. Archivo modplcsp_subscribe.c....................................................................................287C.2.44. Archivo modplcsp_leave.c...........................................................................................287C.2.45. Archivo modplcsp_send.c............................................................................................288C.2.46. Archivo modplcsp_receive.c........................................................................................290C.2.47. Archivo modplcsp_setbuffer.c.....................................................................................291C.2.48. Archivo modplcsp_notify.c..........................................................................................292C.2.49. Archivo modplcsp_poll.c.............................................................................................293C.2.50. Archivo modplcsp_status.c..........................................................................................294C.2.51. Archivo modplcsp_getpayloadsize.c...........................................................................295C.2.52. Archivo __modplcsp_getbyte__.c...............................................................................295C.2.53. Archivo __modplcsp_getresult__.c.............................................................................296C.2.54. Archivo __modplcsp_putbyte__.c...............................................................................297C.2.55. Archivo __modplcsp_putcmd__.c...............................................................................298C.2.56. Archivo __modplcsp_puthex__.c................................................................................299C.2.57. Archivo __modplcsp_putint__.c..................................................................................299C.2.58. Archivo __modplcsp_sendcmd0__.c...........................................................................300C.2.59. Archivo __modplcsp_sendcmd1__.c...........................................................................301C.2.60. Archivo __modplcsp_waitchar__.c.............................................................................302C.2.61. Archivo serial.h............................................................................................................302C.2.62. Archivo serial.c............................................................................................................303

    C.3. Especificacin del cdigo fuente de las bibliotecas de uso del modem PLC (plataforma Windows).....................................................................................................................................304

    C.3.1. Interfaz capa de aplicacin modplcap.dll.......................................................................305C.3.1.1. Archivo config.h.....................................................................................................305C.3.1.2. Archivo modplcsp.h................................................................................................306C.3.1.3. Archivo modplcsp.c................................................................................................307C.3.1.4. Archivo modplcpp.h...............................................................................................316C.3.1.5. Archivo modplcpp.c................................................................................................319C.3.1.6. Archivo modplcap.h................................................................................................327C.3.1.7. Archivo modplcap.c................................................................................................331

    FernandoArielBeunza79156 11

  • Tesis de Grado en Ingeniera Informtica

    C.3.2. Interfaz capa de enlace modplcdl.dll..............................................................................337C.3.2.1. Archivo config.h.....................................................................................................337C.3.2.2. Archivo modplcdl.h................................................................................................337C.3.2.3. Archivo modplcdl.c.................................................................................................341

    C.3.3. Interfaz capa fsica modplcphy.dll.................................................................................354C.3.3.1. Archivo config.h.....................................................................................................354C.3.3.2. Archivo modplcphy.h..............................................................................................355C.3.3.3. Archivo modplcphy.c..............................................................................................358

    C.3.4. Driver del Modem PLC modem_driver.exe..................................................................369C.3.4.1. Archivo config.h.....................................................................................................370C.3.4.2. Archivo serial.h.......................................................................................................372C.3.4.3. Archivo serial.c.......................................................................................................373C.3.4.4. Archivo modplc.h...................................................................................................378C.3.4.5. Archivo modplc.c....................................................................................................381C.3.4.6. Archivo modsp.h.....................................................................................................399C.3.4.7. Archivo modsp.c.....................................................................................................401C.3.4.8. Archivo moddl.h.....................................................................................................407C.3.4.9. Archivo moddl.c.....................................................................................................410C.3.4.10. Archivo modphy.h................................................................................................418C.3.4.11. Archivo modphy.c.................................................................................................420C.3.4.12. Archivo modrv.h...................................................................................................427C.3.4.13. Archivo moddrv.c.................................................................................................428C.3.4.14. Archivo modem_driver.c......................................................................................443

    C.4. Especificacin del cdigo fuente de las bibliotecas de uso del modem PLC (plataforma Linux)...........................................................................................................................................444

    C.4.1. Interfaz capa de aplicacin modplcap.so.......................................................................444C.4.1.1. Archivo config.h.....................................................................................................445C.4.1.2. Archivo modplcsp.h................................................................................................445C.4.1.3. Archivo modplcsp.c................................................................................................447C.4.1.4. Archivo modplcpp.h...............................................................................................456C.4.1.5. Archivo modplcpp.c................................................................................................459C.4.1.6. Archivo modplcap.h................................................................................................467C.4.1.7. Archivo modplcap.c................................................................................................470

    C.4.2. Interfaz capa de enlace modplcdl.so..............................................................................475C.4.2.1. Archivo config.h.....................................................................................................476C.4.2.2. Archivo modplcdl.h................................................................................................476C.4.2.3. Archivo modplcdl.c.................................................................................................478

    C.4.3. Interfaz capa fsica modplcphy.so..................................................................................492C.4.3.1. Archivo config.h.....................................................................................................492C.4.3.2. Archivo modplcphy.h..............................................................................................492C.4.3.3. Archivo modplcphy.c..............................................................................................494

    C.4.4. Driver del Modem PLC modem_driver.........................................................................506C.4.4.1. Archivo config.h.....................................................................................................507C.4.4.2. Archivo serial.h.......................................................................................................509C.4.4.3. Archivo serial.c.......................................................................................................510C.4.4.4. Archivo modplc.h...................................................................................................512C.4.4.5. Archivo modplc.c....................................................................................................516C.4.4.6. Archivo modsp.h.....................................................................................................534C.4.4.7. Archivo modsp.c.....................................................................................................536

    12 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    C.4.4.8. Archivo moddl.h.....................................................................................................542C.4.4.9. Archivo moddl.c.....................................................................................................544C.4.4.10. Archivo modphy.h................................................................................................553C.4.4.11. Archivo modphy.c.................................................................................................555C.4.4.12. Archivo modrv.h...................................................................................................562C.4.4.13. Archivo moddrv.c.................................................................................................563C.4.4.14. Archivo modem_driver.c......................................................................................580

    C.5. Especificacin del cdigo fuente del firmware del modem PLC..........................................582C.5.1. Archivo config.h............................................................................................................583C.5.2. Archivo common.h........................................................................................................587C.5.3. Archivo common.c.........................................................................................................587C.5.4. Archivo serial.h..............................................................................................................588C.5.5. Archivo serial.c..............................................................................................................588C.5.6. Archivo phy.h.................................................................................................................588C.5.7. Archivo phy.c.................................................................................................................590C.5.8. Archivo mac.h................................................................................................................599C.5.9. Archivo mac.c................................................................................................................601C.5.10. Archivo llc.h................................................................................................................611C.5.11. Archivo llc.c.................................................................................................................612C.5.12. Archivo arp.h...............................................................................................................616C.5.13. Archivo arp.c................................................................................................................617C.5.14. Archivo dl.h.................................................................................................................621C.5.15. Archivo dl.c..................................................................................................................623C.5.16. Archivo net.h................................................................................................................625C.5.17. Archivo net.c................................................................................................................626C.5.18. Archivo tp.h.................................................................................................................633C.5.19. Archivo tp.c..................................................................................................................635C.5.20. Archivo sp.h.................................................................................................................640C.5.21. Archivo sp.c.................................................................................................................642C.5.22. Archivo modem.c.........................................................................................................645

    C.6. Especificacin del cdigo fuente del firmware procesador de seales.................................655C.6.1. Archivo config.h............................................................................................................655C.6.2. Archivo phy.h.................................................................................................................656C.6.3. Archivo phy.c.................................................................................................................657C.6.4. Archivo main.c...............................................................................................................695

    C.7. Especificacin del cdigo fuente del firmware cargador......................................................695C.7.1. Archivo config.h............................................................................................................696C.7.2. Archivo common.h........................................................................................................697C.7.3. Archivo common.c.........................................................................................................697C.7.4. Archivo serial.h..............................................................................................................697C.7.5. Archivo serial.c..............................................................................................................697C.7.6. Archivo interrupts.h.......................................................................................................697C.7.7. Archivo interrupts.c.......................................................................................................698C.7.8. Archivo memory.h.........................................................................................................699C.7.9. Archivo memory.c.........................................................................................................700C.7.10. Archivo boot.c..............................................................................................................706

    C.8. Especificacin del cdigo fuente comn utilizado por el firmware del modem PLC y el firmware cargador.........................................................................................................................707

    C.8.1. Archivo common.h........................................................................................................708

    FernandoArielBeunza79156 13

  • Tesis de Grado en Ingeniera Informtica

    C.8.2. Archivo common.c.........................................................................................................710C.8.3. Archivo serial.h..............................................................................................................717C.8.4. Archivo serial.c..............................................................................................................718

    Apndice D: Interfaz C++................................................................................................................721D.1. Descripcin...........................................................................................................................721D.2. Cdigo fuente........................................................................................................................721

    D.2.1. Archivo modplcapcpp.h (plataforma Windows)...........................................................721D.2.2. Archivo modplcapcpp.h (plataforma Linux).................................................................727

    Apndice E: Interfaz Simulink.........................................................................................................733E.1. Descripcin...........................................................................................................................733E.2. Biblioteca de bloques Simulink............................................................................................733E.3. Cdigo fuente........................................................................................................................736

    E.3.1. Archivo modplc_simulink.c...........................................................................................737E.3.2. Archivo MODEM_PLC_INTERFACE.C.....................................................................749E.3.3. Archivo MODEM_PLC_CREATE_MESSAGE.C.......................................................751E.3.4. Archivo MODEM_PLC_PUT_FIELD.C.......................................................................754E.3.5. Archivo MODEM_PLC_SEND_MESSAGE.C............................................................756E.3.6. Archivo MODEM_PLC_RECEIVE.C...........................................................................759E.3.7. Archivo MODEM_PLC_GET_FIELD.C......................................................................761E.3.8. Archivo MODEM_PLC_REAL_TIME.C.....................................................................764

    Apndice F: Implementacin del dispositivo cliente........................................................................767F.1. Descripcin del dispositivo...................................................................................................767F.2. Implementacin del dispositivo.............................................................................................767F.3. Cdigo fuente........................................................................................................................771

    Apndice G: Implementacin de pruebas.........................................................................................775G.1. Descripcin...........................................................................................................................775G.2. Red de prueba implementada................................................................................................775G.3. Modelo Simulink de prueba..................................................................................................778G.4. Aplicaciones C/C++ de prueba.............................................................................................778

    G.4.1. Plataforma Windows.....................................................................................................779G.4.1.1. Archivo testphy.c....................................................................................................779G.4.1.2. Archivo testap.c......................................................................................................783G.4.1.3. Archivo testapcpp.cpp............................................................................................785

    G.4.2. Plataforma Linux...........................................................................................................788G.4.2.1. Archivo testphy.c....................................................................................................788G.4.2.2. Archivo testap.c......................................................................................................792G.4.2.3. Archivo testapcpp.cpp............................................................................................794

    Glosario............................................................................................................................................799

    14 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    1. IntroduccinDesde hace algunos aos se estn empleando buses de datos en aplicaciones integradas por

    diversos dispositivos que necesitan estar intercomunicados entre s para llevar a cabo las tareas para los cuales fueron diseados. Un ejemplo de esto son los automviles, que debido al aumento de la cantidad de componentes electrnicos utilizados, cada vez resulta ms dificultoso emplear interconexiones dedicadas debido al gran volumen de cables requeridos para interconectar todos los dispositivos entre s.

    En la actualidad se trabajan con redes como CAN, J1850, entre otras; por la cual, los dispositivos se intercomunican enviando mensajes entre s por medio de un bus de datos comn, eliminando la necesidad de que cada dispositivo tenga una conexin dedicada con cada uno de los dispositivos con los cuales necesita comunicarse. Esto ya reduce el volumen de conductores utilizados, pero puede reducirse an ms debido a que todava se encuentran presentes dos redes diferentes de cableado: una para datos y una para alimentacin.

    Esta razn es la que motiva la idea de utilizar comunicaciones PLC, en las cuales la alimentacin y la informacin comparte un mismo canal: la red de alimentacin; por el cual los dispositivos que necesariamente deben conectarse a la red de alimentacin para poder funcionar, pueden aprovechar la misma para intercambiar mensajes entre s.

    Existen diversos antecedentes que fundamentan esta idea de los cuales se pueden destacar: el DC-BUS [Maryanka00] desarrollado por la empresa Yamar Electronics Ltd. y trabajos realizados sobre comunicaciones PLC por la Facultad de Ingeniera Elctrica de la Universidad Tcnica Checa de Praga. Estos trabajos ponen su atencin en las capas fsica y de enlace, propuestas por el modelo OSI, dejando de lado la implementacin de las restantes capas.

    EL objetivo de ste trabajo es desarrollar un sistema prototipo que implemente las capas del modelo OSI no implementadas por los antecedentes mencionados anteriormente, y con esto, analizar la viabilidad de aplicar la ciencia de la informtica como complemento a la electrnica existente con la finalidad de aumentar funcionalidad y disminuir costos de implementacin. Para llevar a cabo dicho anlisis, el presente trabajo se encuentra organizado de la siguiente manera:

    En el captulo 2 se realiza un anlisis del estado del arte del tema tratado en ste trabajo. Se comienza con la descripcin de los orgenes y evolucin de la tecnologa PLC en general, luego se presentan los estndares de comunicacin utilizados en la actualidad en aplicaciones para automviles, y finalmente se trata en mayor profundidad la tecnologa PLC aplicada al ambiente automotriz.

    En el captulo 3 se detalla el problema que se pretende resolver. Los antecedentes estudiados en el captulo anterior dejan la posibilidad de continuar avanzando en la materia, planteando diversos problemas a resolver. ste captulo presenta el problema de las capas del modelo OSI no implementadas, y define los requerimientos que debe cumplir el sistema para resolver el problema planteado.

    En el captulo 4 se propone un sistema prototipo que cumpla con los requerimientos definidos en el captulo anterior. Se realiza una descripcin del diseo del sistema prototipo capa por capa, siguiendo el modelo planteado por OSI.

    En el captulo 5 se evala el cumplimiento de lo requerimientos planteados en el captulo 3. Se compara el sistema prototipo propuesto con otras alternativas existentes, realizando

    FernandoArielBeunza79156 15

  • Tesis de Grado en Ingeniera Informtica

    una evaluacin del diseo expuesto en el captulo 4 frente a las alternativas enumeradas en el captulo 2.

    En el captulo 6 se detallan las conclusiones extradas a partir de la evaluacin mencionada anteriormente. Se describen los xitos y dificultades del diseo propuesto en el presente trabajo, y se abren futuras lneas de investigacin.

    16 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    2. AntecedentesEn ste captulo se describe la evolucin de la tecnologa PLC desde sus orgenes hasta la

    actualidad. En la primer parte se presentan los estndares utilizados en infraestructura edilicia, que fueron los destinatarios iniciales de la sta tecnologa. En la segunda parte, se trata especficamente la adaptacin de la tecnologa PLC al ambiente del automvil. Para finalizar, se presentan los estndares que utilizan los automviles en la actualidad, que no utilizan la tecnologa PLC, pero plantean soluciones a problemas propios de ste entorno, que pueden tenerse en cuenta para adaptar la tecnologa PLC al ambiente automotriz.

    2.1. Tecnologa PLCLa idea de transmitir informacin sobre un medio ya existente destinado a brindar otro

    servicio, se remonta a la dcada del 30, cuando Alemania utiliz la red de telefona para brindar el servicio de radio por cable llamado HF-Drahtfunk [HF-Drahtfunk]. ste sistema le brindaba al usuario el servicio de telefona y radio, en forma simultnea, cosa que no ocurra en sistemas anteriores similares. Suiza contaba con un sistema similar, llamado Telefonrundspruch [Linjesender], debido a que su geografa montaosa no permita una cobertura nacional por medio de radio inalmbrica.

    La primera vez que se implement la tecnologa PLC fue para brindar el mismo servicio de radio que brindaban Alemania y Suiza. En ste caso, en vez de utilizar las lneas telefnicas disponibles, se decidi utilizar las lneas elctricas para la transmisin de voz. Gran Bretaa realiz experimentos con este sistema, pero la Unin Sovitica fue la que adopt ste medio para la difusin de programas de radio. Tambin lo hizo Noruega, el servicio en ste pas fue llamado Linjesender [Linjesender].

    Todos los sistemas anteriormente mencionados en la actualidad ya no existen, HF-Drahtfunk desapareci en 1967, Linjesender lo hizo en 1987 y Telefonrundspruch en 1997; pero demostraron que era posible la transmisin de informacin utilizando redes ya existentes. HF-Drahtfunk y Telefonrundspruch, fueron los precursores de los servicios de banda ancha que se brindan hoy en da; mientras que el sistema sovitico y Linjesender, son los precursores de la tecnologa PLC que hoy en da no tiene tanta difusin que la anterior, pero cada da est cobrando ms relevancia debido al alcance que tiene la red elctrica frente a otras.

    La tecnologa PLC fue adoptada por las compaas de electricidad para transmisin de datos a baja velocidad. En la dcada del 50 crearon un sistema que permita a las compaas controlar el consumo, el encendido del alumbrado pblico y el valor de las tarifas elctricas por medio de una seal de baja frecuencia. A fines de la dcada del 80, se logr realizar transmisiones de datos bidireccionales; y a fines de la dcada del 90, se pudo elevar la velocidad de transmisin. sto instal la idea de poder utilizar la red elctrica para brindar servicios de voz y datos. En la actualidad, compaas como DS2, disean chips capaces de alcanzar velocidades de transmisin que rondan los 200 Mbps sobre lneas de baja y media tensin, para aplicaciones dentro de un hogar o una oficina y de ltima milla [Alcar07].

    FernandoArielBeunza79156 17

  • Tesis de Grado en Ingeniera Informtica

    2.1.1. X10ste estndar fue desarrollado para controlar de forma remota dispositivo elctricos en un

    hogar u oficina. Para la transmisin de datos utiliza como medio fsico las lneas elctricas presentes en cualquier establecimiento.

    2.1.1.1. Mtodo de transmisin

    Las transmisiones son sincronizadas por el punto de cruce por cero de la seal que proporciona energa (senoidal de 50 o 60 Hz). La informacin se enva por medio de rfagas de pulsos de 120 KHz durante un semiciclo de la seal que proporciona energa, empleando la siguiente codificacin: la presencia de un pulso en un semiciclo y la ausencia del mismo en el siguiente, representa un uno lgico; en cambio, la ausencia de un pulso en un semiciclo seguido de la presencia del mismo en el siguiente semiciclo, representa un cero lgico. A continuacin, en la figura 2.1 se puede observar el esquema de codificacin anterior.

    Figura 2.1. Codificacin de bits utilizada por el protocolo X10 [X10SignalTheory].

    Para permitir el uso del protocolo en instalaciones de red trifsica, se transmiten tres pulsos que coinciden cada uno de ellos con el cruce por cero de las seales de potencia de cada una de las fases, como se puede observar en la figura 2.2.

    Figura 2.2. Transmisin sobre red trifsica [X10SignalTheory].

    18 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    El mecanismo de codificacin de los bits de informacin implementado por X10, permite una velocidad de transmisin equivalente a la frecuencia de la seal de potencia utilizada para sincronizacin, si la frecuencia es de 50 Hz la velocidad es de 50 bps, en cambio si la frecuencia es de 60 Hz la velocidad es de 60 bps.

    2.1.1.2. Estructura de mensaje

    La estructura de un mensaje se encuentra conformada por cuatro campos utilizados para marcar el comienzo de un mensaje, identificar el lugar (casa) donde se encuentra el dispositivo al cual se le quiere enviar el comando, identificar el dispositivo o la funcin, y por ltimo marcar el fin del mensaje (ver figura 2.3). El tamao de un mensaje es de 11 bits, que corresponden a 11 ciclos de la seal de potencia.

    Start code

    Cdigo de casa

    Cdigo de dispositivo/funcin

    Bit de fin

    2 bits 4 bits 4 bits 1 bitFigura 2.3. Estructura de un mensaje X10.

    Cada bit mencionado en la figura anterior corresponde a dos semiciclos de la seal de potencia. Un ejemplo de como se transmite un mensaje puede observarse en la figura 2.4, en donde se muestran los bits enviados (arriba de la seal) junto con su codificacin (abajo de la seal).

    Figura 2.4. Ejemplo de comando X10 [X10SignalTheory].

    Un comando X10 generalmente involucra dos mensajes: uno para la activacin del dispositivo destinatario, seguido de otro que le indica al dispositivo destinatario la accin que debe ejecutar. El comando de la figura anterior corresponde a la activacin del dispositivo 2 ubicado en la casa A. En el primer mensaje, se identifica la casa y el dispositivo al cual se le desea dar la orden; en cambio, en el segundo mensaje se indica la orden. El bit final de cada mensaje es utilizado para indicar que a continuacin se transmitir otro mensaje (bit cero) o para dar fin a la secuencia de mensajes (bit uno).

    2.1.1.3. Esquema de direccionamiento

    Para hacer referencia al lugar donde se encuentra el dispositivo destinatario se emplea el cdigo de casa. Cada casa se identifica por medio de una letra que se codifica por medio de una secuencia de bits, como se indica en la tabla 2.1.

    FernandoArielBeunza79156 19

  • Tesis de Grado en Ingeniera Informtica

    Letra Cdigo de casa Letra Cdigo de casaA 0110 I 0111

    B 1110 J 1111

    C 0010 K 0011

    D 1010 L 1011

    E 0001 M 0000

    F 1001 N 1000

    G 0101 O 0100

    H 1101 P 1100Tabla 2.1. Cdigos de casa [X10TechNote].

    De similar forma, el cdigo de dispositivo simplemente corresponde a un nmero entre 0 y 15. Este esquema permite trabajar con 256 dispositivos sobre una misma lnea de alimentacin, a razn de 16 dispositivos como mximo por casa, con un mximo de 16 casas.

    2.1.2.4. Funciones

    Las funciones que pueden proveer un dispositivo se codifican por medio de 4 bits. Su codificacin se encuentra detallada en la tabla 2.2, que se encuentra a continuacin:

    Cdigo Funcin Descripcin0000 All units Off Desconecta todos los dispositivos con el cdigo de casa indicado en el mensaje.

    0001 All lights On Conecta todos los dispositivo de iluminacin (con capacidad de control de brillo).

    0010 On Conecta un dispositivo.

    0011 Off Desconecta un dispositivo.

    0100 Dim Reduce la intensidad luminosa.

    0101 Bright Aumenta la intensidad luminosa.

    0111 Extended Code Cdigo de extensin.

    1000 Hail Request Solicita respuesta de los dispositivos con cdigo de casa indicado en el mensaje.

    1001 Hail Acknowledge Respuesta a un comando anterior.

    101x Pre-Set Dim Permite seleccionar dos niveles de intensidad luminosa predefinidos.

    1100 Extended Data Datos adicionales (seguido por 8 bytes).

    1101 Status is On Respuesta a un pedido de Status Request, indicando que el dispositivo est conectado.

    1110 Status is Off Respuesta a un pedido de Status Request, indicando que el dispositivo est desconectado.

    1111 Status Request Pedido solicitando el estado del dispositivo.Tabla 2.2. Lista de funciones definidas por X10 [X10SignalTheory].

    Las funciones ms utilizadas son las seis primeras de la tabla anterior. Las funciones Hail Request y Hail Acknowledge, se utilizan para comunicacin con casas vecinas. Las funciones Extended Code y

    20 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    Extended Data son empleadas para expandir la capacidad de comandos y de enviar datos adicionales, respectivamente.

    2.1.2. CEBusEl estndar CEBus implementa un modelo de comunicaciones punto a punto, en donde

    cualquier nodo puede comunicarse con otro en cualquier instante. La comunicacin se realiza a travs de un nico medio compartido, utilizando un protocolo de control de acceso al medio para resolver las colisiones cuando dos o ms dispositivos quieren acceder al medio fsico en forma simultnea.

    CEBus fue pensado para trabajar sobre diversos medios fsicos: lneas de potencia, par trenzado, coaxil, radio e infrarrojo. En el presente trabajo slo se trata el primer medio fsico, aunque muchos conceptos son aplicables tambin a los otros medios.

    ste estndar implementa cuatro de las siete capas definidas por el modelo OSI, que son: la capa fsica, la capa de enlace, la capa de red y la capa de aplicacin. Sobre la capa de aplicacin se encuentra CAL, que establece un lenguaje comn para permitir la interoperabilidad entre dispositivos.

    2.1.2.1. Mtodo de transmisin

    La capa fsica de CEBus se basa en una tecnologa de espectro ensanchado patentada por la empresa Intellon. La tcnica empleada es diferente a la tecnologa tradicional, ya que el smbolo utilizado es una seal conocida como Chirp. Una seal Chirp se genera a partir de un barrido en frecuencia, dentro de un rango determinado, de una seal senoidal, y se caracterizan por presentar un alto rechazo a interferencias. La seal Chirp empleada por CEBus (figura 2.5) comienza con una seal senoidal de 200 KHz y aumenta hasta los 400 KHz, para luego saltar a 100 KHz y avanzar hasta 200 KHz nuevamente. sta seal se genera por medio de un sintetizador a partir de una tabla compuesta por 360 muestras.

    Figura 2.5. Seal Chirp utilizada por CEBus [Montoya06].

    Un paquete de datos se transmite utilizando la seal Chirp anterior. La primer secuencia de seales Chirp constituye el prembulo del paquete y es utilizado por los transmisores para resolver

    FernandoArielBeunza79156 21

  • Tesis de Grado en Ingeniera Informtica

    quien tiene derecho a uso del canal de comunicacin. Luego del prembulo, el transmisor que gan el derecho de utilizar el canal de comunicacin, transmite un conjunto de seales Chirp para marcar el comienzo del paquete.

    Para recuperar los bits del paquete, los receptores se sincronizan aplicando la operacin de correlacin a la seal recibida. Cuando la seal recibida coincide con la seal Chirp esperada, la correlacin devuelve un pulso de sincronismo.

    CEBus con el mecanismo de transmisin expuesto, puede lograr velocidad de transmisin de 10 kbps.

    2.1.2.2. Estructura de paquete

    Un paquete CEBus se encuentra constituido fundamentalmente por las siguientes partes: un prembulo, una unidad de datos del protocolo de capa de enlace, llamado LPDU, y un cdigo CRC. La LPDU puede contener como mximo 41 bytes, y se conforma de un encabezado (9 bytes) y una unidad de datos del protocolo de red, llamado NPDU. La NPDU puede contener hasta 32 bytes, de los cuales uno pertenece al encabezado y el resto se destina a la unidad de datos del protocolo de aplicacin, llamado APDU. El APDU se compone de un encabezado de 1 byte de longitud y el resto se destina a instrucciones de la CAL.

    Figura 2.6. Estructura de un paquete CEBus [House].

    El encabezado de la LPDU contiene un campo de control (1 byte), con informacin de control, como el nmero de secuencia del paquete, la prioridad del mismo y el tipo. Tambin contiene la direccin de destino del paquete como la de origen del mismo (4 bytes cada una).

    El encabezado de la NPDU contiene informacin acerca del encaminado del paquete y fragmentacin del mismo.

    El encabezado de la APDU contiene informacin sobre como debe responder el receptor cuando recibe un paquete.

    2.1.2.3. Esquema de direccionamiento

    El esquema de direccionamiento propuesto por CEBus, utiliza 32 bits para representar las direcciones de los dispositivos, lo que se traduce en 232 direcciones posibles. Dichos 32 bits se dividen en dos grupos de 16 bits cada uno: el primer grupo se lo designa direccin de sistema (o cdigo de hogar), y el segundo grupo se lo designa direccin MAC (o cdigo de unidad).

    Cada una de las direcciones anteriores presenta un rango de direcciones utilizables comprendido entre 1 y 65535. El identificador de cdigo de unidad 0 se reserva para broadcast

    22 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    dentro de un grupo de dispositivos asociado a un cdigo de hogar. Si el identificador de cdigo de hogar tambin es 0, el broadcast incluye a todos los dispositivos de la red sin importar a que cdigo de hogar se encuentren asociados.

    2.1.2.4. Lenguaje de aplicacin

    CAL implementa un modelo jerrquico para describir a cada nodo de la red. Un nodo puede tener varios contextos, y a su vez, cada contexto puede estar compuesto por varios objetos. Los objetos pueden tener varias variables de instancia.

    Todo dispositivo presenta un contexto universal (que se identifica con el cdigo 00). La funcin de ste contexto es la de controlar la presencia de cada dispositivos dentro de la red. El contexto universal presenta dos objetos: el objeto de control de nodo (conocido como objeto 0) y el objeto de control de contexto (objeto 1). El objeto de control de nodo contiene una serie de variables de instancia con informacin acerca del dispositivo (direcciones, fabricante, etc.). El objeto de contexto presenta una nica variable de instancia que contiene una lista de identificadores de objeto del contexto. Adems del contexto universal, los dispositivos pueden presentar varios contextos adicionales, con mltiples objetos por contexto, dependiendo de las funcionalidades que provean los dispositivos. En la tabla 2.3 se pueden observar un conjunto de objetos definidos, cada uno de ellos con sus propias variables de instancia.

    Valor(Hex) Nombre

    Valor(Hex) Nombre

    01 Node Control 0E Gagned Analog Control

    02 Context Control 0F Meter

    03 Data Channel Receiver 10 Display

    04 Data Channel Transmitter 11 Medium Transport

    05 Binary Switch 13 Dialer

    06 Binary Sensor 14 Keypad

    07 Analog Control 15 List Memory

    08 Analog Sensor 16 Data Memory

    09 Multi-position Switch 17 Motor

    0A Multi-state Sensor 19 Synthesizer/Tuner

    0B Matrix Switch 1A Tone Generator

    0C Multiplane Switch 1C Counter

    0D Gagned Analog Control 1D ClockTabla 2.3. Objetos definidos por CEBus [House].

    Para acceder a las variables de instancia de cada objeto, CAL define un conjunto de mtodos enumerados en la tabla 2.4.

    FernandoArielBeunza79156 23

  • Tesis de Grado en Ingeniera Informtica

    Valor Nombre Parmetros Tipos de datos40 nop

    41 setOFF IV B

    42 setON IV B

    43 getValue IV BNC

    44 getArray IV [, [], ] D

    45 setValue IV BNC

    46 setArray IV [, [], ] D

    47 add IV1, IV2, [IV3] N

    48 increment IV [, ] N

    49 subtract IV1, IV2, [IV3] N

    4A decrement IV [, ] N

    4B compare IV1, IV2 BNCD

    4C comparei IV1, BNCD

    4D copyValue IV1, IV2 [, , ] BNCD

    4E swap IV1, IV2 BNCD

    52 exit []

    53 alias []

    54 inherit IV, D

    55 disinherit IV, D

    56 if BEGIN [else clause] END

    57 do BEGIN END

    58 while BEGIN END

    59 repeat BEGIN END

    5A build BEGIN ENDTabla 2.4. Mtodos definidos por CEBus [House].

    Los tipos de datos definidos por CAL son: cadenas de caracteres (strings), datos, nmeros y booleanos. En la tabla 2.4 se aclaran los tipos de datos que puede manipular cada mtodo.

    Por ltimo, CAL tambin define una lista de posibles errores que pueden ocurrir, que se detallan en la tabla 2.5.

    24 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    Valor Descripcin Valor Descripcin

    0 Unknown Context ID 10 Inherit Disabled

    1 Unknown Object ID 11 Value out of Range

    2 Unknown Method ID 12 Bad Argument Type

    3 Unknown IV Label 13 Power Off

    4 Malformed Expression 14 Invalid Argument

    5 Macro not defined 15 IV Read Only

    6 Alias not defined 16 No Default

    7 Syntax error 17 Cannot Inherit Resource

    8 Resource in use 18 Precondition Complete

    9 Command too Complex 19 Application BusyTabla 2.5. Cdigos de error definidos por CEBus [House].

    2.1.3. CENELEC 50065La norma que regula las comunicaciones PLC en Europa se la conoce como CENELEC

    50065-1. sta norma es la encargada de definir el rango de frecuencias que puede ser utilizado para este tipo de comunicaciones, las amplitudes mximas de las seales y los lmites de interferencia entre las bandas circundantes. Se definen cuatro bandas para distintas aplicaciones, como se puede observar en la tabla 2.6.

    Banda Rango de frecuencias Propsito3 KHz 9 KHz Para uso de las compaas de distribucin elctrica solamente.

    A 9 KHz 95 KHz Para uso de las compaas de distribucin elctrica y sus licencias.

    B 95 KHz 125 KHz Disponible para los consumidores sin restricciones.

    C 125 KHz 140 KHz Disponible para los consumidores con control de acceso al medio

    D 140 KHz 148.5 KHz Disponible para los consumidores sin restricciones.Tabla 2.6. Rango de frecuencias establecido por CENELEC 50065-1 [Kaspar].

    Cuando se trabaja dentro de la banda A, la norma no exige la utilizacin de protocolos de acceso al medio. Del mismo modo ocurre con la banda B, destinada a ser utilizada por dispositivos tales como intercomunicadores. En cambio, la banda C debe utilizar algn mtodo de control de acceso al medio; ya que fue pensada en escenarios en donde las transmisiones simultneas son altamente improbables, como por ejemplo comunicaciones internas entre computadoras. Por ltimo, la banda D presenta caractersticas similares a la A, por lo cual pueden existir colisiones si dos dispositivos transmiten en simultneo [PLCEc].

    FernandoArielBeunza79156 25

  • Tesis de Grado en Ingeniera Informtica

    Figura 2.7. Diferencias entre norma europea y norteamericana [Kaspar].

    Como se observa en la figura 2.7, a diferencia de Europa, Estados Unidos y Japn tienen un lmite superior para el rango de frecuencias destinado para comunicaciones PLC, debido a que stos ltimos no utilizan sistemas de radio de onda larga.

    La norma tambin define las amplitudes mximas que pueden presentar las seales utilizadas para transmitir la informacin. A continuacin en la figura 2.8, se pueden observar dichos niveles para cada una de las bandas establecidas.

    Figura 2.8. Lmites mximos de nivel de seal permitidos por CENELEC 50065-1 [PLCEc].

    Como se puede apreciar, para la banda A, el nivel mximo permitido alcanza los 134 dBuV en 9 KHz y desciende hasta los 120 dBuV en el lmite superior de la banda en 95 KHz. El resto de las bandas tiene un nivel mximo permitido de 122 dBuV.

    2.1.4. UPBEl estndar UPB es una evolucin de X10, que utiliza la misma tcnica de transmisin de

    informacin, agregando a la seal de potencia que alimenta a los dispositivos de la red elctrica, la

    26 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    seal de informacin. ste estndar introduce algunas mejoras respecto a X10, como el mtodo de modulacin que permite elevar la velocidad de transmisin, y tambin expande la capacidad de direccionamiento de los dispositivos.

    2.1.4.1. Mtodo de transmisin

    UPB utiliza como seal de sincronizacin la seal de potencia utilizada para alimentacin (seal senoidal de 50 o 60 Hz), tomando como referencia el cruce por cero de sta seal con flanco ascendente. A diferencia de X10, el pulso no se transmite luego del cruce por cero, sino que en ste caso se espera un tiempo determinado para iniciar la transmisin. Luego, el siguiente pulso, es transmitido cuando transcurre medio ciclo de seal de sincronizacin (seal de potencia). ste estndar tiene la capacidad de transmitir ms bits en un semiciclo de seal de sincronizacin que el estndar X10, ya que emplea la modulacin PPM, que permite codificar dos bits por semiciclo como se puede observar en la figura 2.9.

    Figura 2.9. Codificacin de bits utilizada por el protocolo UPB [UPB03].

    Para enviar los dos bits es emplean 800 microsegundos divididos en cuatro fragmentos de 200 microsegundos cada uno. El fragmento en el cual se emite el pulso depende del valor que tome el grupo de dos bits que se desean transmitir. Con este esquema de codificacin, un byte de informacin puede ser enviado en cuatro semiciclos de la seal de potencia. La velocidad de transferencia lograda de sta forma equivale a cuatro veces la frecuencia de la seal de potencia utilizada para sincronizacin: 200 bps (para 50 Hz) y 240 bps (para 60 Hz).

    FernandoArielBeunza79156 27

  • Tesis de Grado en Ingeniera Informtica

    2.1.4.2. Estructura de paquete

    La estructura de paquete propuesta por el UPB, presenta longitud variable, y se compone de los siguientes campos: un prembulo de longitud fija de 1 byte, un encabezado de 5 bytes, el mensaje cuya longitud puede variar entre 0 y 18 bytes, una suma de verificacin de 1 byte, y la confirmacin de recepcin de un bit de longitud.

    Figura 2.10. Estructura de un paquete UPB [UPB03].

    El prembulo del paquete es utilizado por los receptores para realizar ajustes que le permitan tener una buena recepcin del resto del paquete.

    El encabezado contiene cierta informacin de control, como el dispositivo que dio origen al paquete, su destinatario, el tamao del mismo, entre otros. La composicin del encabezado se detalla en la figura 2.11.

    Figura 2.11. Estructura del encabezado de un paquete UPB [UPB03].

    El campo CTL tiene una longitud de 2 bytes, y es utilizado para indicar el tamao del paquete, como debe ser recibido el mismo, como se debe responder al mismo y la cantidad de veces que fue enviado. El campo NID tiene una longitud de 1 byte, y permite identificar la red en la cual se encuentra el destinatario del paquete. El campo DID, de 1 byte de longitud, permite identificar al dispositivo destinatario del paquete. El campo SID, de 1 byte de longitud, indica el dispositivo que envi el paquete.

    Luego del encabezado se encuentra el mensaje cuya longitud puede ser de 0 hasta 18 bytes. El mensaje se compone (figura 2.12) de dos campos identificados como MDID y MDA.

    28 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    Figura 2.12. Estructura del mensaje de un paquete UPB [UPB03].

    El campo MDID, de 1 byte de longitud, es utilizado para identificar un comando o una respuesta a un comando. El campo MDA puede contener hasta 17 bytes y es el encargado de transportar los argumentos asociados a un comando o una respuesta a un comando.

    A continuacin del mensaje, se encuentra la suma de verificacin que es utilizada por el destinatario del paquete para determinar si el mismo fue recibido correctamente o presenta errores.

    Por ltimo, el bit de confirmacin de recepcin, es un bit que deja disponible en dispositivo que dio origen al paquete, para que el destinatario pueda indicar al origen si el paquete fue recibido correctamente o no.

    2.1.4.3. Esquema de direccionamiento

    El protocolo UPB permite crear redes virtuales sobre una misma red fsica. El estndar permite un mximo de 255 redes. sto permite agrupar los distintos dispositivos en distintas redes virtuales sobre una misma lnea de alimentacin. Cada una de las redes virtuales puede contener hasta 250 dispositivos. El concepto es similar al propuesto por X10, pero con una mayor capacidad, ya que el esquema propuesto por UPB puede soportar hasta 63750 dispositivos sobre una misma lnea, mientras que X10 solo soporta 256.

    Los identificadores de red vlidos se encuentran comprendidos en el rango de 1 a 255, reservando el identificador 0 para mensajes de broadcast. El identificador 0 le permite a cualquier dispositivo poder enviar mensajes a todos los dispositivos conectados en la lnea independientemente de la red a la cual pertenezcan, ya que cada dispositivo slo recibe los mensajes pertenecientes a su red.

    Los identificadores de dispositivo se encuentran comprendidos en el rango de 1 a 250, reservando el identificador 0 para mensajes de difusin dentro de la red virtual, y los identificadores comprendidos entre 251 y 255 para propsitos especiales.

    Una funcionalidad adicional que brinda UPB, es la posibilidad de crear grupos de dispositivos, que respondan a los comandos enviados que contengan como identificador de dispositivo destino, el identificador de grupo al pertenecen los dispositivos. El rango de identificadores de grupo vlidos es el mismo al utilizado para los identificadores de direcciones (1 a

    FernandoArielBeunza79156 29

  • Tesis de Grado en Ingeniera Informtica

    250), descartando el identificador 0 (identificador de broadcast) y el rango de 251 a 255 (propsitos especiales).

    2.1.4.4. Comandos

    La variedad de comandos que brinda UPB es mucho ms amplia que los proporcionados por X10. La mxima cantidad de comandos soportados es de 256 (frente a los 16 de X10), aunque no se utilizan todos los identificadores disponibles. En la tabla 2.7 se hace referencia a los comandos principales implementados por UPB:

    MDID(Hex) Comando

    MDID(Hex) Comando

    00 Null 0E - 0F Unused

    01 Write Enable 10 Get Register Value

    02 Write Protect 11 Set Register Value

    03 Start SETUP Mode 12 Copy Register Value

    04 Stop SETUP Mode 13 Swap Register Nibbles

    05 Get SETUP Time 14 Increment Register Value

    06 Auto-Address 15 Decrement Register Value

    07 Get Device Status 16 Left Shift Register

    08 Set Device Control 17 Right Shift Register

    09 Get Signal Strength 18 Set Register Bits

    0A Get Noise Level 19 Clear Register Bits

    0B Add Link 1A Toggle Register Bits

    0C Delete Link 1B - 1F Unused

    0D Transmit This MessageTabla 2.7. Comandos principales implementados por UPB [UPB03].

    Tambin existen una serie de comandos y respuestas especiales dedicados a funciones de control, como se puede ver en la tabla 2.8.

    MDID(Hex) Comando / Respuesta

    MDID(Hex) Comando / Respuesta

    20 Activate Link 25 Blink

    21 Deactivate Link 26 - 2F Unused

    22 Goto 30 Report State

    23 Start Fade 31 Store State

    24 Stop Fade 32 - 3F UnusedTabla 2.8. Comandos y respuestas especiales implementados por UPB [UPB03].

    Por ltimo, UPB define una serie de respuestas a comandos que se detallan en la tabla 2.9.

    30 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    MDID(Hex) Respuesta

    MDID(Hex) Respuesta

    80 -84 Unused 90 Register Values

    85 Setup Time 91 RAM Values

    86 Device State 92 Raw Data

    87 Device Status 93 Heartbeat

    89 Signal Strength 94 - AE Unused

    8A Noise Level AF Acknowledgement

    8B - 8F UnusedTabla 2.9. Respuestas implementados por UPB [UPB03].

    2.1.5. LonWorksste estndar se basa en el esquema propuesto por LON, que consisten en un conjunto de

    dispositivos que se conectan por medio de uno o varios medios fsicos, y emplean para comunicarse un protocolo comn. Cada dispositivo tiene la capacidad de generar acciones en respuesta a mensajes recibidos de otros dispositivos, y/o generar mensajes ante el cumplimiento de determinadas condiciones.

    2.1.5.1. Protocolo CNP

    Del mismo modo que las redes de datos e internet se basan en el protocolo TCP/IP [RFC793] [RFC791], LonWorks se basa en el protocolo CNP [ISO/IEC14908-1]. ste ltimo protocolo fue diseado para cubrir los requerimientos de las aplicaciones de control. ste protocolo implementa siete capas siguiendo las recomendaciones sugeridas por el modelo OSI. El propsito y servicios que provee cada una de las capas definidas se describe en la tabla 2.10.

    FernandoArielBeunza79156 31

  • Tesis de Grado en Ingeniera Informtica

    Capas OSI Propsito Servicios provistos

    Fsica Interconexin elctrica Medios fsicos.Esquemas de modulacin.

    Enlace Acceso al medio y armado de tramas

    Armado y desarmado de tramas.Verificacin de errores.Control de acceso al medio.Prioridad.

    Red Envo de mensajes Comunicaciones unicast y multicast.Encaminado de mensajes.

    Transporte Confiabilidad en el envo de mensajesEnvo de mensajes con o sin confirmacin de recepcin.Ordenamiento de mensajes.Deteccin de mensajes duplicados.

    Sesin Control Pedido y respuesta.Autenticacin.

    Presentacin Interpretacin de datos Variables de red.Mensajes de aplicacin.

    Aplicacin Compatibilidad

    Configuracin de red.Diagnstico de red.Transferencia de archivos.Configuracin de aplicaciones.Especificacin de aplicaciones.Alarmas.Registro de datos.Planificacin.

    Tabla 2.10. Capas CNP [Echelon99].

    La organizacin de los datos para el transporte de los mismos, en cada una de las capas presentadas anteriormente se detallan en la tabla 2.11.

    Capa Organizacin de datosFsica Bits en bruto

    Enlace Trama

    Red Datagrama

    Transporte Paquete de transporte

    Sesin Paquete de sesin

    Presentacin Paquete de presentacin

    Aplicacin MensajeTabla 2.11. Organizacin de datos utilizada por cada capa [Echelon99].

    2.1.5.2. Capa fsica

    La capa fsica se encarga de definir como se transmiten los bits de datos en bruto sobre un determinado medio fsico. El protocolo CNP fue diseado para ser independiente del medio fsico, lo que permite que LonWorks pueda ser implementado sobre diferentes tipos de redes.

    32 FernandoArielBeunza79156

  • Tesis de Grado en Ingeniera Informtica

    Los diferentes tipos de medio que pueden utilizarse permiten comunicaciones bidireccionales entre cualquiera de los dispositivos conectados a la red. En la tabla 2.12 se detallan cada uno de los medios fsicos con los cuales LonWorks puede trabajar.

    Nombre Medio Velocidad DefinicinIP-852 IP-852 Tunneling N/A ISO/IEC 14908-4

    PL-20A CENELEC A-band Power Line 2613bps ISO/IEC 14908-3

    PL-20C CENELEC C-bandPower Line w/access protocol 156.3k/3987bps ISO/IEC 14908-3

    PL-20N CENELEC C-bandPower Line w/o access protocol 156.3k/3987bps ISO/IEC 14908-3

    TP/FT-10 Free Topology Twisted Pair 78.13kbps ISO/IEC 14908-2

    TP/XF-1250 Transformer-Isolated Twisted Pair 1.25Mbps LONMARK InteroperabilityGuidelinesTabla 2.12. Organizacin de datos utilizada por cada capa [Echelon99].

    El objetivo del presente trabajo no es tratar todos los medios fsicos sobre los cuales puede implementarse LonWorks sino que analizar los medios relacionados con las lneas de potencia, cuyos nombres (segn tabla 2.12) son PL-20A, PL-20C y PL-20N.

    Las velocidad de transferencia que se pueden alcanzar depende del medio fsico sobre el cual se trabaje. Como se puede observar en la tabla 2.12, cuando se trabajan con lneas de potencia, se obtienen las velocidades de transferencia ms bajas comparadas con los otros medios fsicos existentes.

    LonWorks, sobre lneas de potencia, puede trabajar dentro del rango de frecuencias pertenecientes a la banda A y a la banda C definidas por CENELEC 50065-1. El sistema de modulacin utilizado es BPSK combinado con espectro ensanchado de banda estrecha [Montoya06], que para el caso de la banda A, el rango de frecuencias utilizado se extiende desde los 75 KHz hasta 86 KHz; mientras que para el caso de la banda C, el rango de frecuencias se extiende comprende desde los 115 KHz hasta los 132 KHz.

    2.1.5.3. Capa de enlace

    El protocolo CNP define establece varios mecanismos para controlar el acceso al medio fsico, de los cuales se analizar el CSMA, dado que es el utilizado cuando se trabaja sobre lneas de potencia. Dentro de todas las variantes de CSMA, ste protocolo implementa una variante propia llamada p-persistente CSMA predictivo. El mecanismo consiste en que previo al envi de una trama, se establece un tiempo de espera (dividido en ranuras), y transcurrido dicho tiempo, si el medio se encuentra disponible, se enva la trama. La cantidad de ranuras que se deben esperar se establece en forma aleatoria, a partir de un conjunto de valores posibles, para evitar colisiones. La cantidad de valores de dicho conjunto se ajusta dependiendo