profibus turbo code - pablo briff

121
Codificaci´ on Turbo para Protocolos de Comunicaciones Industriales por Pablo Ariel Briff Director de Tesis: Ing. Alberto Dams Facultad de Ingenier´ ıa Universidad de Buenos Aires 14 de junio de 2006 Buenos Aires, Argentina

Upload: pbgoat

Post on 30-Jun-2015

170 views

Category:

Documents


4 download

DESCRIPTION

Turbo code applied to Industrial Communications Protocols (Profibus as an example)

TRANSCRIPT

Page 1: Profibus Turbo Code - Pablo Briff

Codificacion Turbo para Protocolos deComunicaciones Industriales

por

Pablo Ariel Briff

Director de Tesis: Ing. Alberto Dams

Facultad de IngenierıaUniversidad de Buenos Aires

14 de junio de 2006Buenos Aires, Argentina

Page 2: Profibus Turbo Code - Pablo Briff

i

Page 3: Profibus Turbo Code - Pablo Briff

Agradecimientos

Al Ing. Alberto Dams, por haber tomado el desafıo de ayudarme con esteproyecto de investigacion desde su posicion de tutor.

Al Ing. Gabriel Venturino, por haberme comentado “...ultimamente estanmuy de moda los codigos turbo...”.

A todos aquellos profesores del area de Comunicaciones a los cuales con-sulte para progresar en este trabajo y que pacientemente contestaron mispreguntas y corrigieron mis errores.

Al Dr. Ing. Jorge Castineira, de la Universidad Nacional de Mar del Pla-ta, por su invaluable ayuda via e-mail y sus excelentes apuntes relacionadoscon el tema de codificacion turbo.

A Sergio, por entender que la facultad es una prioridad.

A mis amigos Cristian y Martın, por ser mis amigos.

A ese excelente grupo de amigos de la facultad con los cuales compartı tan-tos momentos agradables al tiempo que me forme como profesional.

A mi familia, mi mama Zulma, mi hermana Romina, mi tıo Hector y misabuelas Zulema y Marıa, por su apoyo incondicional y constante respaldo.

A Jesica, por su colaboracion con algunas traducciones pero fundamen-talmente por tanta paciencia a lo largo de todos estos anos.

Gracias.

ii

Page 4: Profibus Turbo Code - Pablo Briff

Indice general

II

1. Introduccion 8

2. Codigos turbo 112.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2. Esquema de transmision . . . . . . . . . . . . . . . . . . . . . 12

2.2.1. Codificador RSC . . . . . . . . . . . . . . . . . . . . . 122.2.2. Concatenacion en paralelo . . . . . . . . . . . . . . . . 132.2.3. Interleaver . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.4. Seleccion de redundancia . . . . . . . . . . . . . . . . . 17

2.3. Esquema de recepcion . . . . . . . . . . . . . . . . . . . . . . 182.3.1. Deteccion por sımbolo . . . . . . . . . . . . . . . . . . 202.3.2. LLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3.3. LLR del canal . . . . . . . . . . . . . . . . . . . . . . . 20

2.4. Algoritmos de decodificacion . . . . . . . . . . . . . . . . . . . 212.4.1. Algoritmos MAP . . . . . . . . . . . . . . . . . . . . . 222.4.2. LLR del bit dk . . . . . . . . . . . . . . . . . . . . . . 232.4.3. El coeficiente γk . . . . . . . . . . . . . . . . . . . . . . 232.4.4. El coeficiente αk . . . . . . . . . . . . . . . . . . . . . 242.4.5. El coeficiente βk . . . . . . . . . . . . . . . . . . . . . . 252.4.6. Λk: su relacion con αk, βk y γk . . . . . . . . . . . . . . 252.4.7. Informacion extrınseca . . . . . . . . . . . . . . . . . . 262.4.8. Decodificacion iterativa . . . . . . . . . . . . . . . . . . 282.4.9. Log-MAP y Max-Log-MAP . . . . . . . . . . . . . . . 292.4.10. Inicializacion de αk y βk . . . . . . . . . . . . . . . . . 32

2.5. Curvas BER vs. Eb/N0 . . . . . . . . . . . . . . . . . . . . . . 32

3. Protocolo Profibus 343.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.2. El sistema bus de campo Profibus . . . . . . . . . . . . . . . . 34

1

Page 5: Profibus Turbo Code - Pablo Briff

INDICE GENERAL 2

3.2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . 343.2.2. Capa fısica . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.3. Formatos de tramas . . . . . . . . . . . . . . . . . . . . 38

3.3. Ejemplo de red Profibus . . . . . . . . . . . . . . . . . . . . . 39

4. Canal de comunicaciones 414.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2. Modelo del canal . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2.1. Canal AWGN . . . . . . . . . . . . . . . . . . . . . . . 444.2.2. Ruido termico . . . . . . . . . . . . . . . . . . . . . . . 47

4.3. Canal fısico en Profibus DP . . . . . . . . . . . . . . . . . . . 484.3.1. Especificaciones tecnicas . . . . . . . . . . . . . . . . . 484.3.2. Tasa de transmision de datos vs. distancia de cable . . 514.3.3. Niveles de ruido . . . . . . . . . . . . . . . . . . . . . . 51

5. Profibus Turbo 535.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.2. Esquema propuesto . . . . . . . . . . . . . . . . . . . . . . . . 54

5.2.1. Posible implementacion y retardo asociado . . . . . . . 555.2.2. Factibilidad economica . . . . . . . . . . . . . . . . . . 56

5.3. Propiedades del canal propuesto . . . . . . . . . . . . . . . . . 565.3.1. BER y Eb/N0 . . . . . . . . . . . . . . . . . . . . . . . 565.3.2. Niveles de ruido para la Eb/N0 propuesta . . . . . . . . 585.3.3. Atenuaciones para distintas tasas de datos . . . . . . . 58

5.4. Mejoras obtenidas . . . . . . . . . . . . . . . . . . . . . . . . . 595.4.1. Tasa de transmision constante . . . . . . . . . . . . . . 595.4.2. Distancia de cable constante . . . . . . . . . . . . . . . 61

6. Simulaciones 686.1. Modelo en Simulink . . . . . . . . . . . . . . . . . . . . . . . . 686.2. Grados de libertad . . . . . . . . . . . . . . . . . . . . . . . . 726.3. Resultados de las simulaciones . . . . . . . . . . . . . . . . . . 74

6.3.1. Algoritmo Log-MAP . . . . . . . . . . . . . . . . . . . 746.3.2. Algoritmo Max-Log-MAP . . . . . . . . . . . . . . . . 76

7. Conclusiones 77

A. Fundamentos matematicos 79A.1. Lımite de Shannon . . . . . . . . . . . . . . . . . . . . . . . . 79A.2. Expresion de la LLR del canal . . . . . . . . . . . . . . . . . . 80A.3. Probabilidad a priori de dk . . . . . . . . . . . . . . . . . . . . 80

Page 6: Profibus Turbo Code - Pablo Briff

INDICE GENERAL 3

A.4. Expresion extendida de P (Y |X) . . . . . . . . . . . . . . . . . 81A.5. Expresion de γk . . . . . . . . . . . . . . . . . . . . . . . . . . 81A.6. Expresion de αk . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.7. Expresion de βk . . . . . . . . . . . . . . . . . . . . . . . . . . 82A.8. Transformada de Fourier de un pulso rectangular . . . . . . . 83

B. Interfaz RS485 86

C. Descripcion del protocolo Profibus 89C.1. Servicios de capa de enlace . . . . . . . . . . . . . . . . . . . . 89C.2. Protocolo de MAC y de enlace de datos . . . . . . . . . . . . . 95

D. Codigo fuente de Matlab 102D.1. Principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102D.2. Esquema de Transmision/Recepcion Turbo . . . . . . . . . . . 104D.3. Algoritmo Log-MAP . . . . . . . . . . . . . . . . . . . . . . . 109D.4. Algoritmos accesorios . . . . . . . . . . . . . . . . . . . . . . . 113

D.4.1. Construccion de las matrices del trellis . . . . . . . . . 113D.4.2. Conversor de binario a polar . . . . . . . . . . . . . . . 114D.4.3. Conversor de polar a binario . . . . . . . . . . . . . . . 114D.4.4. Deteccion de errores . . . . . . . . . . . . . . . . . . . 114D.4.5. Curva de BER vs. Eb/N0 sin codificacion . . . . . . . . 114D.4.6. Resolucion ecuacion para distancia constante . . . . . . 115

Page 7: Profibus Turbo Code - Pablo Briff

Indice de figuras

2.1. Codificador RSC de tasa k = 1/2 [5] . . . . . . . . . . . . . . 122.2. Concatenacion en paralelo de codificadores RSC [5] . . . . . . 132.3. Esquema de terminacion de trellis para un codificador RSC [10] 142.4. BER con terminacion de trellis, tamano del bloque=100 [9] . . 152.5. BER con terminacion de trellis, tamano del bloque=1000 [9] . 152.6. Comparacion entre interleavers de bloque, convolucionales y

pseudoaleatorios [12] . . . . . . . . . . . . . . . . . . . . . . . 172.7. Esquema de decodificacion turbo [6] . . . . . . . . . . . . . . . 192.8. Doble calculo del algoritmo de Viterbi del algoritmo MAP . . 222.9. Proceso de decodificacion iterativa [7]. . . . . . . . . . . . . . 302.10. BER vs Eb/N0 para un codigo de tasa 1/2 y un tamano de

interleaver de 256x256 [5] . . . . . . . . . . . . . . . . . . . . . 33

3.1. Pila del protocolo Profibus[14] . . . . . . . . . . . . . . . . . . 363.2. Formatos de tramas Profibus [14] . . . . . . . . . . . . . . . . 393.3. Ejemplo practico de una red Profibus [21] . . . . . . . . . . . 40

4.1. Esquema de un sistema de comunicaciones con un canal deruido aditivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.2. Ejemplo de evento de ruido aditivo . . . . . . . . . . . . . . . 454.3. Correlacion del ruido y su transformada de Fourier . . . . . . 464.4. Cable utilizado en Profibus DP . . . . . . . . . . . . . . . . . 484.5. Atenuacion del cable de Profibus DP en funcion de la frecuencia 514.6. Maximas distancias del cable de Profibus DP vs. tasa de trans-

mision de datos [18]. . . . . . . . . . . . . . . . . . . . . . . . 52

5.1. Esquema propuesto para Profibus Turbo . . . . . . . . . . . . 545.2. BER vs Eb/N0 para transmision sin codificacion . . . . . . . . 575.3. Detalle de la figura 4.5 para el rango de frecuencias de 250KHz

a 1MHz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.4. R2 para distancia de cable igual a 400 metros . . . . . . . . . 64

4

Page 8: Profibus Turbo Code - Pablo Briff

INDICE DE FIGURAS 5

5.5. R2 para distancia de cable igual a 200 metros . . . . . . . . . 655.6. R2 para distancia de cable igual a 100 metros . . . . . . . . . 66

6.1. Esquema de transmision/recepcion con codificacion turbo . . . 706.2. Componentes del bloque Turbo Decoder . . . . . . . . . . . . 716.3. Resultados de las simulaciones realizadas por [8] . . . . . . . . 736.4. K=3, G=7, F=5, 100 tramas transmitidas . . . . . . . . . . . 746.5. K=5, G=21, F=37, 100 tramas transmitidas . . . . . . . . . . 756.6. K=5, G=21, F=37, 100 tramas transmitidas . . . . . . . . . . 76

A.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84A.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

B.1. Esquema de bus RS485 de dos hilos [19] . . . . . . . . . . . . 87B.2. Esquema de bus RS485 de cuatro hilos [19] . . . . . . . . . . . 87

C.1. Interacciones del servicio SDA [14] . . . . . . . . . . . . . . . 92C.2. Interacciones del servicio SDN [14] . . . . . . . . . . . . . . . 93C.3. Interacciones del servicio SRD [14] . . . . . . . . . . . . . . . 93

Page 9: Profibus Turbo Code - Pablo Briff

Indice de cuadros

3.1. Relacion entre el bit-rate y la distancia del cable para RS-485PHY y cable tipo A [20] . . . . . . . . . . . . . . . . . . . . . 37

4.1. Especificaciones tecnicas del canal fısico para Profibus DP [17] 494.2. Niveles de ruido para Profibus PA . . . . . . . . . . . . . . . 52

5.1. Atenuacion en funcion de la tasa de datos . . . . . . . . . . . 58

C.1. Servicios FDL [20] . . . . . . . . . . . . . . . . . . . . . . . . 90

6

Page 10: Profibus Turbo Code - Pablo Briff

Objetivo

El objetivo de la tesis es mejorar los protocolos estandar de comunicacio-nes industriales, tomando como ejemplo el protocolo abierto Profibus, me-diante la introduccion de la tecnica de codicacion Turbo, obteniendo resulta-dos que justifiquen el esfuerzo tecnologico agregado. Dichas mejoras puedensignificar una mayor velocidad de transmision para la misma distancia decable especificada, o bien una mayor distancia de cable respecto de la esta-blecida por la norma para cada velocidad en particular.Asimismo, la inversion economica en los equipos existentes debe ser pequenafrente al valor actual de los mismos de manera de lograr aceptacion en elmercado.

7

Page 11: Profibus Turbo Code - Pablo Briff

Capıtulo 1

Introduccion

El transporte de la informacion siempre ha sido objeto de estudio en elarea de la ingenierıa. Las aplicaciones que requieren transporte y manejo deinformacion varıan ampliamente, por lo que para cada caso en particular de-ben conocerse las condiciones a las cuales se someteran las senales electricas,y en consecuencia encontrar un posible esquema que solucione el problema encuestion; en terminos generales, la solucion dista de ser trivial en la mayorıade los casos.

Aunque lo antedicho es valido, el area de ingenierıa de control ha sido du-rante largos anos reacia a implementar soluciones que impliquen complejosesquemas de transmision y recepcion de datos, siendo suficiente para cumpli-mentar los requerimientos de los procesos los lazos de corriente de 4 a 20 mA.Con el advenimiento de las redes de datos y la integracion de la informacionmediante el concepto de IT (Information Technology), los sistemas de controlde procesos industriales han migrado bajo la mocion de que todo aquello queno se integra a una red de datos IP ha de ser arcaico y obsoleto. Este nuevoparadigma de transmision de la informacion se ha traducido en una reestruc-turacion de los esquemas de medicion de las magnitudes fısicas en cuestion(temperatura, presion, caudal, nivel, entre otros), adoptando topologıas dered similares a aquellas caracterısticas de las redes IP, incluso introduciendoel uso de routers, switches, hubs, firewalls, siguiendo las anteriores el modelode redes cliente/servidor, definiendo ası el concepto de red de control. Enotras palabras, se ha migrado completamente hacia una estructura que has-ta mediados de los ’90 era representativa de un sistema de comunicacionesclasico. Esto permite que una red de control se comporte como un sistema decomunicaciones, donde interactuan controladores, transductores, actuadores,servidores y estaciones de operacion, mediante el uso de protocolos abiertosy propietarios.

8

Page 12: Profibus Turbo Code - Pablo Briff

Introduccion 9

Los protocolos que comunican los equipos antedichos en general basansu funcionamiento en el modelo en capas OSI (Open Systems Interconnect)definido por ISO (International Standards Organization), ya que con el trans-curso del tiempo los protocolos que se imponen en el mercado son los quecumplen con algun estandar internacional. Sera objeto de estudio de esta te-sis uno de los protocolos mundialmente mas utilizados en las redes de control,el protocolo estandar Profibus.

Sin perdida de generalidad, la informacion es transportada por un me-dio inmerso en un entorno que inevitablemente genera alteraciones en lasenal representativa de los datos, debido a interferencias con senales elec-tromagneticas espurias y otras degradaciones debidas a la atenuacion de lasondas al producirse el fenomeno de propagacion. Debido a esto, es desea-ble introducir una tecnica que mejore dicha condicion, con la finalidad deobtener mayores distancias de propagacion y tasas de transmision, sin degra-dacion de la calidad de la comunicacion. Esto ultimo no esta contempladoen la mayorıa de los protocolos de comunicaciones industriales, los cualesretransmiten en caso de error sin incursionar en mejoras de la integridad delos datos. Aunque la retransmision no altera significativamente la ingenerıade control de procesos, conforme evolucionan las tecnologıas se acrecienta lafuncionalidad montada sobre las redes existentes, por lo que no sera deseableen los proximos anos retransmitir los datos en una red de control ya que estodevendra en una perdida de sincronismo y deterioro de los recursos del siste-ma. Adicionalmente, existe un compromiso actual entre la maxima distanciade cable admitida para una determinada tasa de transmision, el cual en lamayorıa de los casos practicos se soluciona introduciendo equipos repetidoreso bien reduciendo la tasa de datos, desaprovechando nuevamente los recursosdel sistema.

Esto ultimo sera uno de los principales objetivos de esta tesis, buscandoentonces la maximizacion del producto de la distancia de cable y la tasa detransmision, mediante la introduccion de la tecnica de codificacion turbo,actualmente en uso en las tecnologıas de redes de telefonıa celular de tercerageneracion (3G).

La viabilidad de la aplicacion de la tecnica propuesta en esta tesis se po-tencia con la reciente introduccion en el mercado de las versiones inalambri-cas de los protocolos industriales. Un ejemplo de estos es Wireless Profibus,el cual ha sido lanzado al mercado en el ano 2002 y actualmente se encuentra

Page 13: Profibus Turbo Code - Pablo Briff

Introduccion 10

en expansion en la industria.

Uno podrıa cuestionarse si la aplicacion de esta tecnica deberıa proponer-se unicamente para los protocolos industriales inalambricos, por ser estos losque sufren las mayores alteraciones en la senal transmitida debido a propagar-se las ondas por un medio no guiado; sin embargo, existen ciertas aplicacionesindustriales en las cuales es imprescindible transmitir las senales electricaspor un medio guiado, debido a que pueden existir areas con peligro de ex-plosion, denominadas areas Ex-Haz (Explosion Hazardous), en las cualesla alimentacion de los equipos allı situados debe ser transportada por el parde cobre, sin admitirse fuentes de alimentacion instaladas localmente1.

De esta manera, en esta tesis se estudiara la aplicacion de la tecnica decodificacion turbo a protocolos industriales sobre medios guiados2, es decir,no inalambricos.

1Por dicha razon, la version Profibus PA (Process Automation) transporta la alimen-tacion de los equipos en el mismo cable por el cual viajan los datos.

2Especialmente guiados por cobre.

Page 14: Profibus Turbo Code - Pablo Briff

Capıtulo 2

Codigos turbo

2.1. Introduccion

Los codigos turbo fueron introducidos por primera vez por Berrou, Gla-vieux y Thitimajshima en el ano 1993. Dichos codigos ofrecen las gananciasde codificacion mas elevadas de los codigos existentes hasta el momento,trabajando de esta manera en las cercanıas del lımite de Shannon, es de-cir Pe = 0 para una Eb/N0 = 0dB1, ofreciendo una excelente mejora en elfuncionamiento del sistema2. Las simulaciones presentadas originalmente seencontraban a tan solo 0, 7dB del lımite teorico de Shannon, medido a unaBER = 10−5, con 18 iteraciones en el proceso de decodificacion.

Los fundamentos de esta tecnica de codificacion/decodificacion se basanen aumentar el umbral de decision dura mediante un proceso de decodifi-cacion iterativa; para esto se utilizan tecnicas de decision suave entre losdiferentes decodificadores, decidiendo en ultima instancia mediante una de-cision dura con una confiabilidad mucho mayor que la que se tendrıa sinla implementacion del lazo iterativo. Esta mejora trae aparejada una mayorcomplejidad en el receptor y un mayor retardo introducido por el proceso dedecodificacion.

A continuacion se estableceran las bases teoricas de esta tecnica, tantopara el esquema de transmision como para el de recepcion. El modelo delcanal que vincula el transmisor y el receptor sera discutido en el capıtulo 4.

1Ver Apendice A seccion A.1.2Los resultados obtenidos en el paper inicial fueron tan excepcionales que el mismo fue

rechazado por los estudiosos de la teorıa de informacion y codificacion; cuatro anos mastarde, en una nueva presentacion, fue condecorado con el premio 1997 Information TheorySociety Paper Award otorgado por la IEEE Information Theory Society.

11

Page 15: Profibus Turbo Code - Pablo Briff

Codigos turbo 12

2.2. Esquema de transmision

2.2.1. Codificador RSC

Los codigos turbo proponen un esquema de codificacion RSC (RecursiveSystematic Convolutional) por tener este una mejor respuesta de BER (BitError Rate) que los codigos NSC (Non Systematic Convolutional) para bajosvalores de Eb/No. El esquema de transmision es como se muestra en la figura2.1:

Figura 2.1: Codificador RSC de tasa k = 1/2 [5]

Se puede observar que el dato dk entrante al codificador genera dos sa-lidas: Xk, denominada salida sistematica, e Yk, llamada salida codificada.Dicho esquema transforma un dato de informacion en dos datos codificados,duplicando ası el ancho de banda de transmision, debido a que en el interva-lo de tiempo en el cual se transmitirıa un solo bit sin codificacion, deberanalojarse dos bits correspondientes al proceso de codificacion. Estos dos bitsconllevan informacion redundante del antedicho bit de informacion, aunquedicha redundancia de datos implica una duplicacion del ancho de banda ne-cesario, obteniendose tempranamente la primera relacion de compromiso enel sistema propuesto; es decir, la duplicacion de la informacion, que garantizauna mayor integridad de los datos en el receptor, trae aparejada un sacrificiodel ancho de banda del sistema.

Debido a que por cada bit de informacion se transmiten dos bits de codigo,la energıa del bit de informacion Eb y la del bit de sımbolo3 Ec se relacionansegun:

Eb = 2Ec (2.1)

3Algunos autores como por ej. [1] prefieren llamarlo bit de codigo.

Page 16: Profibus Turbo Code - Pablo Briff

Codigos turbo 13

Esta ecuacion sera de mucha utilidad al estudiar el esquema de recepcionen la seccion 2.3.1.

2.2.2. Concatenacion en paralelo

El esquema de codificacion turbo propone la concatenacion de dos codi-ficadores RSC en paralelo, introduciendo el uso de un permutador de datoso interleaver, y la tecnica de seleccion de datos o puncturing.

El diagrama en bloques del transmisor puede observarse en la figura 2.2.

Figura 2.2: Concatenacion en paralelo de codificadores RSC [5]

Debido a la naturaleza recursiva de los codificadores RSC, no es posibleterminar el trellis en el estado “todos ceros” simplemente transmitiendo unacantidad de ceros igual a K − 1, siendo K la longitud restringida, como seharıa con un codificador NSC. Debido a esto, para llevar al trellis al estadode todos ceros es necesario introducir una modificacion en el esquema detransmision.

La figura 2.3 muestra un esquema donde se conmuta la llave a la posicionB cuando se desea terminar el trellis.

La tecnica de terminacion de trellis es valida para el primer codificador,ya que el mismo opera sobre los datos de la fuente inalterados; sin embargo,

Page 17: Profibus Turbo Code - Pablo Briff

Codigos turbo 14

Figura 2.3: Esquema de terminacion de trellis para un codificador RSC [10]

debido a que la presencia del interleaver la entrada que llevara al primer codi-ficador al estado de todos ceros no hara lo propio con el segundo. El hecho deno terminar el trellis del segundo codificador deriva en una sutil desmejorade la respuesta de la curva de BER vs. Eb/N0 cuando el tamano del bloquees superior a 100.

En la figura 2.4 se observa que el beneficio de terminar ambos trellises esde 0,2dB cuando el tamano del bloque es 100, lo cual se puede consideraruna ganancia apreciable, mientras que en el caso de un tamano de bloque de1000, representado en la figura 2.5, la ganancia al terminar ambos trellisesasciende a tan solo 0,02dB respecto del caso en que solamente se terminarael trellis del codificador superior (es decir, el que no se encuentra afectadopor la presencia del interleaver).

Page 18: Profibus Turbo Code - Pablo Briff

Codigos turbo 15

Figura 2.4: BER con terminacion de trellis, tamano del bloque=100 [9]

Figura 2.5: BER con terminacion de trellis, tamano del bloque=1000 [9]

Por lo tanto, en el caso de trabajar con tamanos de bloques cercanosa 1000, es despreciable la ventaja introducida por terminar ambos trellises,comparada con la complejidad necesaria para lograr lo antedicho.

2.2.3. Interleaver

El interleaver mostrado en el transmisor de la figura 2.2 se ha introducidocon el fin de aumentar la distancia libre [1] del diagrama de trellis resultan-

Page 19: Profibus Turbo Code - Pablo Briff

Codigos turbo 16

te al tiempo que se esparcen los posibles errores en rafaga en la fuente dedatos. De esta manera, el interleaver cumple la funcion de evitar que se ge-neren palabras codigo de bajo peso (medido como la distancia de Hamming)simultaneamente en todas las salidas codificadas. Esto ultimo facilita la de-teccion y correccion de errores, ya que ningun camino del trellis de cadacodificador tendra un peso menor a la distancia libre, y cuanto mayor seaesta, mayor sera la confiabilidad de la decision.

En el receptor, su funcion es diferente: es el encargado de poner en faselos bits sistematicos recibidos, no afectados por el interleaver del transmi-sor, y la redundancia del segundo codificador, afectada por el interleaver deltransmisor. Adicionalmente, debido a que es necesario poner en fase las in-formaciones extrınsecas intercambiadas por los decodificadores de manera deser interpretada correctamente, es el interleaver el encargado de cumplir estafuncion.

Gracias a la presencia del interleaver en el receptor, es posible que ambosdecodificadores ejecuten el mismo codigo de deteccion independientementede la secuencia transmitida, sin necesidad de contemplar en la programacionde los mismos la existencia y naturaleza de los interleavers.

La naturaleza del interleaver puede ser muy variada; debido a que su fun-cion es reordenar los datos, esta operacion puede ser realizada de diferentesmaneras:

• Formando una matriz con el bloque de datos, leyendola fila a fila yescribiendola columna a columna, efectuando una simple permutacion,denominado interleaver de bloque.

• Reordenando los datos de acuerdo a un algoritmo convolucional, utili-zando registros de desplazamiento y multiplexores, denominado inter-leaver convolucional o mutiplexado.

• En forma pseudoaleatoria, denominado interleaver pseudoaleato-rio4.

Los diversos tipos de interleavers son utilizados bajo distintas condicio-nes y relaciones de compromiso. En general, un interleaver de bloque tiene

4Algunos autores hablan de interleavers aleatorios; como ya se vera en la seccion 2.3,si realmente fueran aleatorios el receptor serıa incapaz de reordenar los datos permutados,lo cual es necesario para el correcto funcionamiento de la tecnica de decodificacion.

Page 20: Profibus Turbo Code - Pablo Briff

Codigos turbo 17

mejor performance que uno aleatorio para pequenos tamanos de bloques, esdecir menor a 100 bits, invirtiendose lo antedicho para bloques de grandestamanos; adicionalmente, el interleaver aleatorio siempre tiene mejor factorde dispersion de errores, denominado factor de spreading, que el interleaverde bloques. En la figura 2.6 se muestra una comparacion entre los diferentestipos de interleavers antes mencionados.

Figura 2.6: Comparacion entre interleavers de bloque, convolucionales y pseu-doaleatorios [12]

En general, la performance de los interleavers pseudoaleatorios mejora alaumentar el tamano del mismo, en perjuicio del retardo introducido por elalmacenamiento y procesamiento de los datos.

2.2.4. Seleccion de redundancia

En la figura 2.2 se muestra una llave selectora de datos de redundancia,cuya funcion es evitar que el codigo transmitido sea de tasa k = 1/3, lo cualimplicarıa una triplicacion del ancho de banda necesario para transmitir losdatos que origina la fuente, convirtiendolo en uno de tasa k = 1/2; dicha

Page 21: Profibus Turbo Code - Pablo Briff

Codigos turbo 18

tecnica, denominada puncturing, trae aparejada la perdida de uno de los da-tos codificados por cada bit de fuente dk; en esencia, uno de los dos bits deredundancia es descartado en cada instante de tiempo.

El criterio de seleccion de datos de redundancia es tal que los bits de pari-dad en las posiciones impares corresponden a las salidas del primer codifica-dor, mientras que las posiciones pares corresponden a las salidas del segundocodificador.

Supongamos que la fuente dk genera los datos:

d1 d2 d3 d4 ... dn dn+1

La secuencia codificada transmitida luego del proceso de puncturing es:

X1, Y11 X2, Y22 X3, Y13 X4, Y24 ... Xn, Y2n Xn+1, Y1(n+1)

donde Xk = dk corresponde al dato sistematico, Y1k e Y2k son las salidasdel primer y segundo codificador, respectivamente, k indica el instante detiempo del bit transmitido y n es un instante de tiempo par arbitrario.

Los datos transmitidos ingresan al canal industrial y son afectados porruido y otras perturbaciones, para finalmente llegar al receptor. El canal in-dustrial sera tratado en el capıtulo 4 cuando se describa una modelizacionadecuada del mismo, mientras que el esquema de recepcion y decodificacionturbo sera tratado en la seccion 2.3, presentandose la tecnica de decodifica-cion iterativa.

2.3. Esquema de recepcion

Hasta este momento se ha visto el esquema de transmision de datos, con laintroduccion de dos codificadores RSC, un interleaver y un selector de datos.A continuacion se hara foco en el estudio del esquema receptor, cuya funciones recuperar en ultima instancia los datos originales producidos por la fuentedk, en formato binario. El receptor opera sobre valores polares obtenidosluego de la afeccion del canal ruidoso a los datos transmitidos descriptos enla seccion 2.2.

Page 22: Profibus Turbo Code - Pablo Briff

Codigos turbo 19

En la figura 2.7 se presenta el esquema de recepcion de un decodificadorturbo5.

Figura 2.7: Esquema de decodificacion turbo [6]

donde y0 representa el dato sistematico recibido, y1 e y2 son las salidasdel primer y segundo codificador, respectivamente, todos afectados por ruidodel canal, Λe

(1) es la informacion extrınseca6 comunicada por el primerdecodificador al segundo, Λe

(2) es la informacion extrınseca comunicada porel segundo decodificador al primero, y ur es la estimacion de los bits de fuenteluego de aplicar decision dura en la ultima iteracion.

Habiendo presentado el esquema, a continuacion se explicara cada uno delos componentes del decodificador turbo y los algoritmos que fundamentandicha tecnica.

Fundamentalmente, la propiedad mas significativa del proceso de decodi-ficacion turbo es su caracter iterativo7 el cual lo diferencia del resto de lastecnicas de decodificacion conocidas.

5En el paper original de Berrou, Glavieux y Thitimajshima [5] no esta especificada laentrada al segundo decodificador correspondiente a los datos sistematicos recibidos pasadospor el interleaver.

6En la seccion 2.4.7 se explicara detalladamente el significado de esta magnitud.7El termino Codigos Turbo hace alusion al mecanismo de realimentacion cıclica del

motor turbo.

Page 23: Profibus Turbo Code - Pablo Briff

Codigos turbo 20

2.3.1. Deteccion por sımbolo

2.3.2. LLR

Una magnitud que sera de utilidad es la denominada Relacion de Proba-bilidad Logarıtmica o LLR8 para el bit bi, cuya definicion es como sigue:

L(bi) = ln

(P (bi = +1)

P (bi = −1)

)(2.2)

La relacion tambien puede ser definida para probabilidades condicionales.Se define la relacion LLR para el bit bi dado que se ha recibido la secuenciaY :

L(bi|Y ) = ln

(P (bi = +1|Y )

P (bi = −1|Y )

)(2.3)

La ecuacion 2.3 es fundamental ya que es la que se evalua a la entraday a la salida de los decodificadores de decision suave que implementan ladecodificacion turbo.

2.3.3. LLR del canal

Siguiendo una metodologıa analoga a la establecida en la seccion 2.3.2,se puede expresar la relacion LLR para la entrada del receptor yi habiendosetransmitido el bit sistematico xi, tambien llamada relacion LLR del canal9:

L(yi|xi) = ln

(P (yi|xi = +1)

P (yi|xi = −1)

)(2.4)

Operando se obtiene una relacion que sera de utilidad10:

L(yi|xi) = Lcyi (2.5)

donde Lc es denominada confiabilidad del canal y se relaciona con Eb/N0

utilizando la ecuacion 2.1 segun:

Lc = 2Ec

σ2= 4

Ec

N0

= 2Eb

N0

(2.6)

8Del ingles, Log-Likelihood Ratio.9En el caso de haber un esquema de modulacion/demodulacion, este valor representarıa

la salida del detector optimo, el cual produce valores positivos o negativos en funcion delsımbolo analogico recibido [1].

10Ver Apendice A seccion A.2

Page 24: Profibus Turbo Code - Pablo Briff

Codigos turbo 21

Esta magnitud sera importante cuando la relacion Eb/N0 sea elevada; deno ser ası, cobrara mayor importancia la denominada informacion extrınseca.

2.4. Algoritmos de decodificacion

Hasta aquı solo se ha incursionado en definiciones que por sı solas noimplementan ni explicitan ninguna tecnica de decodificacion. A continuacionse presentaran los algoritmos utilizados en la decodificacion turbo.

Existen una diversidad de algoritmos utilizados para decodificar una se-cuencia recibida, entre los cuales se destacan el algoritmo de Viterbi (VA),Viterbi con decision suave (SOVA), y los algoritmos de maxima probabilidada posteriori (MAP). Si bien uno podrıa pensar que todos son aptos paracualquier proceso de decodificacion, se hara una breve comparacion entre lostres para justificar el por que de la eleccion del ultimo.

• El algoritmo de Viterbi (VA) minimiza el error de trama encontrandola el camino con menor metrica en el trellis [1]. Sin embargo, este noes apto para la decodificacion turbo por producir decisiones duras,lo cual, como se vera mas adelante, es indeseable durante el procesoiterativo.

• El algoritmo SOVA produce salidas suaves a partir de entradas suaves,con la desventaja de una mayor complejidad de procesamiento que VA.Esto no serıa un inconveniente salvo por la existencia de un sesgo enla decision, indeseable a la hora de decodificar [12]. Se ha desarrolladouna version mejorada de dicho algoritmo denominada Improved SOVAque corrige dicho sesgo [15].

• El algoritmo MAP fue introducido en el ano 1974 como una tecnicaoptima para estimar probabilidades a posteriori (APP) para un pro-ceso de Markov de estado finito sobre un canal discreto sin memoria(DMC). Este deriva de algoritmos propuestos por Chang y Hancockpara remover la interferencia intersimbolica (ISI). Tambien se lo cono-ce como algoritmo BCJR debido a sus cuatro creadores: Bahl-Cocke-Jelinek-Raviv. Opera sobre entradas suaves, produciendo tambien sa-lidas suaves. Es el algoritmo utilizado por excelencia en el proceso dedecodificacion turbo, aunque se han introducido diferentes variacionesdel mismo, por razones que seran vistas a continuacion.

Page 25: Profibus Turbo Code - Pablo Briff

Codigos turbo 22

2.4.1. Algoritmos MAP

El algoritmo de MAP es un algoritmo de recursion hacia adelante y atrasque minimiza la probabilidad de error de bit. Lamentablemente el algoritmotiene serios problemas de convergencia11 en su version original, por loque se han desarrollado las versiones Log-MAP y Max-Log-MAP12, loscuales posibilitan su implementacion practica.El algoritmo de MAP calcula la APP para cada sımbolo de codigo produci-do por un proceso de Markov, afectado por un canal ruidoso, a partir de laobservacion Y a la entrada del receptor.

Sintetizando, un decodificador MAP ejecuta un doble algoritmo de Viterbi[22], tanto hacia adelante como hacia atras, para los diferentes caminos deltrellis , como puede verse en la figura 2.8.

Figura 2.8: Doble calculo del algoritmo de Viterbi del algoritmo MAP

Los diferentes coeficientes utilizados como metricas para la decision serandetallados en las secciones subsiguientes.

11Durante el desarrollo de las simulaciones para esta tesis me he enfrentado con dichosproblemas de convergencia. Estos se presentan inclusos para relaciones Eb/N0 muy bajas(0,3dB) y al comenzar el proceso iterativo (en la tercera iteracion).

12Esta version es la mas utilizada en la practica aunque teoricamente es consideradasuboptima por utilizar una aproximacion cuya validez es relativa, como se vera mas ade-lante.

Page 26: Profibus Turbo Code - Pablo Briff

Codigos turbo 23

2.4.2. LLR del bit dk

Sean P (dk = +1|Y ) y P (dk = −1|Y ) la probabilidad de que la fuentehaya producir un bit de informacion ’1’ y ’0’ dada la observacion Y , respec-tivamente, se puede definir la LLR para el k-esimo bit como:

Λk = lnP (dk = +1|Y )

P (dk = −1|Y )(2.7)

Es simple ver que si Λk es mayor que cero, finalmente se decidira que seha enviado un ’1’, mientras que si es menor que cero se decidira por cero. Esdecir:

dk =

1 si Λk > 00 si Λk < 0

(2.8)

Consideremos una fuente de Markov con U estados, u = 0, 1, 2, ..., U −1, y supongamos que el estado sk pertenece al conjunto de estados u. Elalgoritmo de MAP calcula las APPs encontrando primero la probabilidadde transicion de estado de la fuente de Markov P (sk → sk+1|Y ) habiendorecibido la secuencia Y . El termino sk representa el estado de la fuente deMarkov en el tiempo k mientras que sk → sk+1 simboliza la transicion de lafuente del estado sk al sk+1 en el tiempo k + 1, siendo la probabilidad de latransicion cero si esta no es posible 13.Usando el teorema de Bayes, y siguiendo la notacion utilizada en [12], dichaprobabilidad se puede expresar como:

P (sk−1 → sk|Y ) =P (sk−1 → sk, Y )

P (Y )(2.9)

Se define, segun [5], P (sk−1 → sk, Y ) como producto de tres factores:

P (sk−1 → sk, Y ) = αk−1(sk−1)γk(sk−1 → sk)βk(sk) (2.10)

A continuacion se explicaran estos tres coeficientes fundamentales en estateorıa de deteccion.

2.4.3. El coeficiente γk

El termino γk+1(sk → sk+1) simboliza la metrica de la rama del trellisasociada con la transicion del estado sk al sk+1; el coeficiente γk puede sercalculado segun [5]:

13Recordemos que en una fuente de Markov no todas las transiciones son posibles desdeun estado arbitrario sm a otro sn; basta con trazar el diagrama de trellis para darse cuentacuales estan permitidas en funcion de las entradas al codificador.

Page 27: Profibus Turbo Code - Pablo Briff

Codigos turbo 24

γk(sk−1 → sk) = P (yk|xk)P (xk|sk, sk−1)P (sk, sk−1) (2.11)

El primero de estos tres terminos, P (yk|xk) puede ser calculado a partirde la observacion yk y conocimiento del trellis de la fuente de Markov. Estesimboliza la probabilidad de recibir la medicion yk dado que entro al canal,es decir se transmitio, el sımbolo xk.

El segundo termino, P (xk|sk, sk−1) es necesariamente 1 o 0, debido a quedado que si la fuente de Markov se encontraba en el estado sk−1 en el tiempok − 1 y evoluciono al estado sk en el tiempo k, el bit xk queda determinadopor dicha transicion, debido a que el codificador RSC es una maquina deestados determinıstica. Debido a esto, se puede omitir el mismo teniendo encuenta la salida xk que la transicion de estados genera14.

El tercer termino P (sk, sk−1) es equivalente a calcular la probabilidad apriori15 de un bit de fuente dk, es decir:

P (sk, sk−1) = P (dk) = C1edkL(dk)/2 (2.12)

Entonces, reescribiendo la ecuacion 2.11 usando la ecuacion 2.12 se ob-tiene:

γk(sk−1 → sk) = P (dk)P (yk|xk) (2.13)

Finalmente operando se obtiene16:

γk(sk−1 → sk) = CedkL(dk)/2eLc2

y1kdkγk extr(sk−1 → sk) (2.14)

con:

γk extr(sk−1 → sk) = eEb2σ2

∑m

i=2(yikxik) (2.15)

2.4.4. El coeficiente αk

El coeficiente αk simboliza la probabilidad conjunta de recibir la secuenciaY y que la fuente de Markov se encuentre en el estado sk:

14Para ser estrictos, la transicion de estados no genera la salida sistematica xk sino quela entrada dk = xk es la que se encarga de producir la transicion de estados; sin embargoes valido el analisis de transiciones de estados desde el punto de vista de la salida.

15Ver Apendice A seccion A.316Ver Apendice A seccion A.5

Page 28: Profibus Turbo Code - Pablo Briff

Codigos turbo 25

αk(sk) = P (Y, sk) (2.16)

Desarrollando la expresion en la ecuacion 2.16 se obtiene17:

αk(sk) =U−1∑

sk−1=0

αk−1(sk−1)γk(sk−1 → sk) (2.17)

Como puede observarse, este coeficiente se calcula utilizando una recur-sion hacia adelante, a diferencia del coeficiente βk, cuya expresion sera intro-ducida a continuacion.

2.4.5. El coeficiente βk

Este coeficiente simboliza la probabilidad de recibir la secuencia Y dadoque la fuente de Markov se encuentra en el estado sk:

βk(sk) = P (Y |sk) (2.18)

Trabajando de manera similar a lo hecho para el coeficiente αk, se obtienela siguiente expresion18:

βk(sk) =U−1∑

sk+1=0

βk+1(sk+1)γk+1(sk → sk+1) (2.19)

Comparando con la expresion de αk en la ecuacion 2.17, se ve que laecuacion 2.19 es una recursion hacia atras.

Habiendose encontrado los coeficientes αk y βk para todos los estados deltrellis quedan determinadas las APPs de cada bit; las mismas se relacionancon las probabilidades de transicion de estados segun:

P (dk = i|Y ) =∑Si

P (sk−1 → sk|Y ) (2.20)

donde i = 0, 1 y Si es el conjunto de todas las transiciones del estadosk−1 al estado sk asociadas al bit dk = i.

2.4.6. Λk: su relacion con αk, βk y γk

Volviendo a la definicion introducida en la ecuacion 2.7, se procede acalcular la LLR del k-esimo bit, Λk, como:

17Ver Apendice A seccion A.6.18Ver Apendice A seccion A.7.

Page 29: Profibus Turbo Code - Pablo Briff

Codigos turbo 26

Λk = L(dk|Y ) (2.21)

Λk = ln

∑S1

αk−1(sk−1)γk(sk−1 → sk)βk(sk)∑S0

αk−1(sk−1)γk(sk−1 → sk)βk(sk)(2.22)

La ecuacion 2.22 es fundamental debido a que es la base del procesode decodificacion iterativa, y es la que se debera implementar, aunque no talcomo se la expone en esta ecuacion por presentar problemas de convergencia,en el receptor. Finalmente, al terminar el proceso iterativo, la decision delbit dk se realiza tal como se ha expuesto en la ecuacion 2.8, notandose que elsigno de Λk determina la estimacion del bit dk transmitido, mientras que sumodulo establece la confiabilidad de esta decision. Entonces, es objetivo de latecnica de decodificacion turbo incrementar el modulo de dicha magnitudcon el fin de mejorar la confiabilidad de la decision, obteniendose una relacionde compromiso entre el retardo de procesamiento y la confiabilidad.

2.4.7. Informacion extrınseca

En esta seccion se introducira el concepto mas importante y abstracto deesta teorıa: la informacion extrınseca. Cuando uno se adentra en el tema decodificacion turbo, este es tal vez el concepto que mas demora en entender,fundamentalmente por su origen e impacto en el proceso de decodificacion.

Consideremos la ecuacion 2.22, reescribiendola en funcion de sus compo-nentes, y reemplazando dk por +1 en el numerador y por −1 en el denomi-nador:

Λk = ln

∑S1

αk−1(sk−1)γk(sk−1 → sk)βk(sk)∑S0

αk−1(sk−1)γk(sk−1 → sk)βk(sk)(2.23)

= ln

∑S1

αk−1(sk−1)eL(dk)/2e

Lc2

y1kγk extr(sk−1 → sk)βk(sk)∑S0

αk−1(sk−1)e−L(dk)/2e−Lc

2y1kγk extr(sk−1 → sk)βk(sk)

(2.24)

= L(dk) + Lcy1k + Le(dk) (2.25)

con:

Le(dk) = ln

∑S1

αk−1(sk−1)γk extr(sk−1 → sk)βk(sk)∑S0

αk−1(sk−1)γk extr(sk−1 → sk)βk(sk)(2.26)

Le(dk) es la denominada informacion extrınseca, la cual cada decodifica-dor le proporciona al otro sobre cada bit de informacion dk; Le(dk) es distinto

Page 30: Profibus Turbo Code - Pablo Briff

Codigos turbo 27

para cada decodificador debido a que el conjunto de bits a partir del cual seformaron los bits de codigo es diferente para cada codificador, por la exis-tencia del interleaver. Es importante notar que la informacion extrınseca esinformacion ganada a partir del proceso de decodificacion, y no a partir delas mediciones del canal yik.

Es interesante recalcar una propiedad observable en la ecuacion : cuandola relacion Eb/N0 sea grande, predominara el termino Lcy1k, por lo que Λk

sera calculada a partir de la observacion del canal del bit sistematico y1k;sin embargo, cuando la relacion Eb/N0 sea pequena, como suele serlo en losambientes industriales, Λk sera determinada a partir del calculo de la in-formacion extrınseca Le(dk). Este es un dato no menor, ya que nos indicaque para ambientes hostiles con un alto nivel de ruido electromagnetico, laconfiabilidad de la decision sera dada por la informacion extrınseca, la cualincrementa al avanzar el proceso iterativo de decodificacion.

De esta manera, cada decodificador proporciona a su par la siguienteinformacion:

Le(dk) = Λk − L(dk)− Lcy1k (2.27)

Le(dk) es utilizado por el decodificador actuante (es decir, el que recibeeste parametro) como informacion a priori para cada bit dk, para la nuevaiteracion.

Como conclusion, la tecnica de decodificacion turbo basa su funciona-miento en el incremento de la informacion a priori de cada bit dk, medianteel uso de un proceso iterativo.

La informacion extrınseca es, en cierta forma, una medida de la confiabi-lidad de cada decodificador al estimar los bits de mensaje dk transmitidos,basado solamente en los bits de paridad recibidos, y el conocimiento de laestructura de trellis de cada codificador. Los decodificadores estan condicio-nados a intercambiar solamente informacion extrınseca debido a que de estamanera se suprime el sesgo introducido por la informacion sistematica reci-bida del canal por cada decodificador, afectada cada uno por un evento deruido diferente, tal como se vera en la seccion 2.4.8.

Page 31: Profibus Turbo Code - Pablo Briff

Codigos turbo 28

2.4.8. Decodificacion iterativa

El proceso iterativo tiene como finalidad incrementar la informacion extrınse-ca de cada bit dk aumentando ası la confiabilidad de la decision a tomar luegode la ultima iteracion, logicamente utilizando decisiones duras.

Como se menciono en la seccion 2.4.7, cada decodificador toma la infor-macion extrınseca Le(dk) proporcionada por su par como informacion a prioriL(dk) para la siguiente iteracion. Segun [7], se entiende por informacion apriori a aquella utilizada por el decodificador y que no proviene ni de losbits recibidos del canal, ni de las restricciones del proceso de codificacion, esdecir, conocimiento de la estructura de trellis. Es inmediato notar que el pri-mer decodificador no posee informacion a priori de los bits dk en la primeraiteracion, por lo que, inicialmente, el ‘0’ y el ‘1’ son equiprobables para los kbits de fuente. Es decir, para la primera iteracion del primer decodificador secumple: P (dk = +1) = 1− P (dk = −1) = 0,5 , por lo que, refiriendonos a laecuacion 2.2 y reemplazando dk = bi, resulta L1

1(dk) = 0, donde el subındiceindica el numero de decodificador, y el superındice el numero de iteracion.

Con la informacion a priori (por ahora nula) y la del canal (bit sistemati-co y de redundancia), el primer decodificador genera la APP del bit dk, Λ1

1k,la cual es usada en la ecuacion 2.27 para producir la informacion extrınsecaque utilizara el segundo decodificador como informacion a priori, L1

2(dk). Di-cha informacion extrınseca producida por el primer decodificador debera serprocesada por un interleaver de la misma naturaleza19 que el utilizado en eltransmisor. Esto debe realizarse para poner en fase la informacion entregadapor el primer decodificador al segundo, ya que el segundo opera sobre bitssistematicos y de redundancia permutados; de esta manera, el segundo deco-dificador realiza la siguiente asignacion: L1

2(dk) = I L1e1, donde I· simbo-

liza el proceso de interleaving. Como se explico en la seccion 2.2.4, los bitsde paridad son eliminados alternativamente, por lo que debera completarsecon ceros aquellas posiciones donde se ha descartado datos de redundacia;adicionalmente, es facil notar que la cantidad de bits sistematicos emitidos(y recibidos) duplica a la cantidad de bits de redundancia entregados porcada codificador, por lo que en el proceso inverso debera rellenarse con cerosen las posiciones donde no hayan habido datos transmitidos por alguno delos codificadores, ya que el algoritmo opera con vectores de bits de canal deigual dimension.

19Es por esta razon que el interleaver no puede ser aleatorio, sino que debe ser pseudo-aleatorio, ya que es necesario conocer exactamente la forma de reproducirlo en el receptor.

Page 32: Profibus Turbo Code - Pablo Briff

Codigos turbo 29

Siguiendo el mismo razonamiento, siempre para la primera iteracion, elsegundo decodificador considera como informacion a priori la entregada comoinformacion extrınseca por el primero, pasada por el interleaver, y junto conlas mediciones del canal (mismo bit sistematico que el primer decodificador,aunque pasado por el interleaver por la razon antedicha, y su correspondientebit de redundancia o cero, si este ha sido suprimido en el transmisor) calculauna nueva informacion extrınseca para cada bit dk, Λ1

2k, la cual debera serpasada por un deinterleaver encargado de reordenar los datos para que puedaser interpretada por el primer decodificador como informacion a priori en lasegunda iteracion. Este repite la operacion inicial, aunque ahora considera lainformacion a priori entregada por el segundo decodificador luego del dein-terleaver, es decir: L2

1(dk) = I L1e2−1, donde I·−1 simboliza el proceso de

deinterleaving.

De esta manera, se incrementa la confiabilidad de la decision debido a quela informacion a priori de cada bit dk crece, en modulo, y con signo en fun-cion de cada bit transmitido, positivo para dk = +1, negativo para dk = −1,conforme lo hace la cantidad de iteraciones realizadas.

Este proceso iterativo se encuentra resumido en la figura 2.9, donde Y pj

simboliza la informacion del canal del decodificador j, con j = 1, 2, parala iteracion numero p.

2.4.9. Log-MAP y Max-Log-MAP

Como se ha visto en la seccion 2.4.1, los algoritmos MAP presentan pro-blemas de convergencia, inestabilidad numerica y gran complejidad de imple-mentacion. Para solucionar este inconveniente, se han desarrollado versioneslogarıtmicas de estos algoritmos, ya que trabajar con logaritmos transformalos productos en sumas y se eliminan las exponenciales, quedando solo susexponentes como sumandos. Sin embargo, debido a que los algoritmos im-plementan sumas de exponenciales, a las cuales se aplicaran logaritmos, esnecesario encontrar una aproximacion adecuada a dicha operacion. Por dicharazon se utiliza la siguiente aproximacion:

ln (ex + ey) = max(x, y) + fc(|y − x|) (2.28)

donde fc(u) = ln(1 + e−u).

Page 33: Profibus Turbo Code - Pablo Briff

Codigos turbo 30

La suma se realiza entonces tomando el maximo de los sumandos, y corri-giendo con un factor en funcion de la diferencia de los mismos.

Figura 2.9: Proceso de decodificacion iterativa [7].

Page 34: Profibus Turbo Code - Pablo Briff

Codigos turbo 31

La version Max-Log-MAP es considerada suboptima debido a que apro-xima la operacion tomando solamente el maximo de los sumandos, lo cuales valido, especialmente cuando los sumandos son desiguales20. Sin embar-go, la version Log-MAP considera el factor de correccion fc, por lo que superformance es igual a la de la version MAP. Generalmente se tabulan unacierta cantidad de valores de |y − x| en una tabla de manera de no realizarel calculo del factor de correccion durante el proceso de decodificacion.

Con las aproximaciones antedichas, γk(sk−1 → sk), αk−1(sk−1) y βk(sk)se tranforman en:

γk(sk−1 → sk) = ln γk(sk−1 → sk) (2.29)

= ln P (dk) + ln P (yk|xk) (2.30)

αk(sk) = ln αk(sk) (2.31)

= lnU−1∑

sk−1=0

αk−1(sk−1)γk(sk−1 → sk) (2.32)

= maxsk−1∈A

∗[αk−1(sk−1) + γk(sk−1 → sk)] (2.33)

βk(sk) = ln βk(sk) (2.34)

= lnU−1∑

sk+1=0

βk+1(sk+1)γk(sk → sk+1) (2.35)

= maxsk+1∈B

∗[βk+1(sk+1) + γk(sk → sk+1)] (2.36)

donde la operacion max∗[.] simboliza max(x, y) para el algoritmo Max-Log-MAP y max(x, y) + fc(|y − x|) para la version Log-MAP. El conjuntoA contiene a todos los estados sk−1 conectados al estado sk, mientras que elconjunto B contiene a todos los estados sk+1 conectados al estado sk.

Habiendo calculado αk(sk) y βk(sk) para todos los estados del trellis, seobtiene la APP del bit dk como:

Λk = maxS1

∗[αk−1(sk−1) + γk(sk−1 → sk) + βk(sk)] +

−maxS0

∗[αk−1(sk−1) + γk(sk−1 → sk) + βk(sk)] (2.37)

donde i = 0, 1 y Si es el conjunto de todas las transiciones del estadosk−1 al estado sk asociadas al bit dk = i.

20Si |y − x| ≥ 2,5 , se puede considerar que e−|y−x| 1, pudiendo omitirse el factor decorreccion fc.

Page 35: Profibus Turbo Code - Pablo Briff

Codigos turbo 32

2.4.10. Inicializacion de αk y βk

Supongamos una trama de longitud N , y asumamos que cada codificadorconstituyente comienza en el estado “todos ceros”. Para el tiempo k = 0, seinicializa αk segun:

α0(sj,0) =

1 si j = 00 si j 6= 0

(2.38)

donde sjk simboliza el numero de estado j en el tiempo k.Analogamente, para el tiempo k = N , se inicializa βk segun:

β0(sj,N) =

1 si j = 00 si j 6= 0

(2.39)

Si no se termina el trellis, entonces todos los estados tienen la mismaprobabilidad de ser el estado final, por lo que se inicializa βk segun:

β0(sj,N) = 1 ∀j (2.40)

Observando las ecuaciones 2.31 y 2.34, es inmediato notar que al aplicarlogaritmo natural, las condiciones iniciales para αk y βk se transforman en:

α0(sj,0) =

0 si j = 0−∞ si j 6= 0

(2.41)

β0(sj,N) =

0 si j = 0−∞ si j 6= 0

(2.42)

Si no se termina el trellis en el estado de “todos ceros”, resulta:

β0(sj,N) = 0 ∀j (2.43)

2.5. Curvas BER vs. Eb/N0

En la figura 2.10 se presenta la curva de BER vs. Eb/N0 obtenida enel paper original de codificacion turbo [5]. Si bien dichas graficas varıan enfuncion del tamano y tipo de interleaver y la longitud de la trama, el mismopuede ser usado como referencia de las ganancias de codificacion aportadaspor la tecnica de codificacion turbo.

Refiriendonos a la curva BER vs. Eb/N0 sin codificacion expuesta en lafigura 5.2 (capıtulo 5), es importante notar en la figura 2.10 que para unaBER = 10−5 se obtiene una ganancia de codificacion de 8,85dB, para 18

Page 36: Profibus Turbo Code - Pablo Briff

Codigos turbo 33

iteraciones, empeorando la misma conforme disminuye la cantidad de itera-ciones.

Otra particularidad importante de destacar es que para muy baja rela-cion Eb/N0 (menor a 0,5dB) la transmision sin codificacion otorga una curvade BER vs. Eb/N0 mejor que la transmision con codificacion debido a quela redundancia introducida no permite obtener una mejora en la respuestapara tan bajas relaciones Eb/N0 [1].

Figura 2.10: BER vs Eb/N0 para un codigo de tasa 1/2 y un tamano deinterleaver de 256x256 [5]

Page 37: Profibus Turbo Code - Pablo Briff

Capıtulo 3

Protocolo Profibus

3.1. Introduccion

En este capıtulo se introduciran los aspectos relevantes de los sistemas debus de campo Profibus. Se brindara una breve descripcion de su arquitectura,las diferentes capas fısicas, los servicios de capa de enlace, los protocolos decapa MAC y de enlace, y las propiedades mas importantes con respecto alcomportamiento en tiempo real. Los servicios de capa de enlace (y su interfaz)son el comun denominador del cableado Profibus existente.

3.2. El sistema bus de campo Profibus

Profibus es un estandar aleman desde 1991, el cual tambien fue adoptadocomo estandar europeo en 1996. Profibus esta disenado para ofrecer serviciosde tiempo real en ambientes industriales hostiles. Ha ganado un uso genera-lizado, la organizacion internacional de usuarios de Profibus 1 establece quehay mas de 2 millones de dispositivos Profibus en mas de 200000 instalacio-nes hechas en fabricas y procesos de automatizacion, haciendo de Profibus elbus de campo mas popular de Europa [14].

En esta seccion se presentan las caracterısticas mas relevantes de Profibus.

3.2.1. Arquitectura

Profibus apunta a una amplia gama de aplicaciones en fabricacion y con-trol. Ofrece diferentes perfiles, por ej. diferentes grupos de protocolos y ser-vicios de capa de aplicacion. Los perfiles de comunicacion denotan diferentes

1Para mas informacion, visitar www.profibus.org .

34

Page 38: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 35

grupos de protocolos, mientras los perfiles de aplicacion distinguen entre losdiferentes grupos de servicios de capa de aplicacion, y los perfiles fısicos dis-tinguen entre diferentes tecnologıas de transmision.

El perfil de comunicaciones de Profibus-DP (Periferia descentralizada)esta disenado para conectar diferentes actuadores de sensores (o esclavos) aun solo controlador, usando un esquema de votacion cıclica (en ingles, cyclicpolling) con una sola estacion maestro. La estacion maestro es la unica esta-cion que controla el medio. En este perfil solo las capas uno (capa fısica) ydos (MAC y capa de enlace) del modelo de referencia OSI estan cubiertas.Las unidades de capa de aplicacion usan la interfaz de capa de enlace paraobtener servicios de esta ultima.

El perfil de comunicaciones de Profibus-FMS (Especificacion de mensajebus de campo) esta destinado a la distribucion de controles de aplicacion, conmuchos nodos inteligentes. El rol de ser la estacion maestro es alternado cadavez entre un grupo de estaciones. Profibus-FMS cubre la capa uno, dos y sietedel modelo de referencia OSI (figura 3.1). El PHY cubre la transmision fısica anivel de bit. La capa de enlace de informacion de bus de campo (FDL) proveefuncionalidad MAC y transmision de informacion semi-confiable (funcionali-dad de capa de enlace). La capa de aplicacion esta subdividida en serviciosde capa de aplicacion o Especificacion de mensaje de bus de campo (FMS),y la interfaz de la capa baja, esta ultima proveyendo por ejemplo, direccionde conexion. La parte de la pila del protocolo Profibus que trata con inter-cambio de informacion puede verse en la Figura 3.1.

Para ambos perfiles de comunicacion, Profibus es una tecnologıa LAN,donde un numero de estaciones comparten un mismo medio fısico. La falta defuncionalidad de ruteo y un esquema de direccionamiento apropiado impidela conexion de diferentes redes LAN Profibus para formar redes mas grandes.

Por su generalidad, se hara mayor foco en la descripcion de Profibus-FMSya que cubre el caso de multiples estaciones maestro. Las capas fısicas y deenlace coinciden en Profibus DP y FMS, por que el objeto de esta tesis no severa afectado por la descripcion del funcionamiento de las capas superiores.

3.2.2. Capa fısica

Profibus esta definido por diferentes capas fısicas: una version RS-485,una version en fibra optica y una version especial (IEC 1185-2) para ser usa-da en ambientes explosivos.

Page 39: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 36

Figura 3.1: Pila del protocolo Profibus[14]

La version RS-485 usa transmision serie sobre un par trenzado blindado(STP). Dos tipos de cables estan estandarizados, sin embargo, uno de ellosya no es usado.La informacion esta codificada sin retorno a cero (NRZ). La transmision esorientada a byte; para soportar la adecuada sincronizacion de bytes las ca-pas MAC se agregan un bit de inicio y parada a cada byte de informacion,imponiendo un mınimo de cambios de niveles de senal. La unidad basica dela topologıa fısica es conocida como segmento y tiene una estructura bus, esdecir, todas las estaciones adjuntas a un segmento ven las mismas senales.El maximo numero de estaciones en un mismo segmento es 32.

Los segmentos pueden ser unidos usando repetidores, un maximo de tres

Page 40: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 37

repetidores esta permitido entre cualquier par de estaciones.

El esquema de direccionamiento de Profibus restringe a 127 el numero deestaciones en una misma LAN Profibus con multiples segmentos.

El grupo de bit-rates disponibles versus la distancia maxima entre cual-quier par de estaciones puede verse en el cuadro 3.1.

Cuadro 3.1: Relacion entre el bit-rate y la distancia delcable para RS-485 PHY y cable tipo A [20]

Bitrate (kbps) 9.6 19.2 93.75 187.5 500 1500 12000max. distancia (m) 1200 1200 1200 1000 400 200 100

La version IEC 1185-2, Profibus PA (Process Automation), usa un bit-ratefijo de 31,25kbps y codificacion Manchester sobre cable STP, alcanzando unadistancia maxima de 1900 metros por segmento, lo que permite su utilizacionen plantas industriales de tamano considerable. Esta version le permite a losdispositivos pequenos obtener su alimentacion de energia desde los cables.Mas aun, sus propiedades electricas son tales que las fallas de hardware nocrean chispas. Es por esto que los dispositivos de campo cableados puedenser usados en ambientes explosivos. El cableado permite topologıas de bus yarbol, nuevamente la unidad basica es un mismo segmento. Los segmentospuede ser conectados por medio de repetidores. Los acopladores de segmen-tos especiales permiten la conexion de segmentos IEC 1185-2 con segmentosRS 485, mientras los dispositivos de enlace subsumen a un mismo segmentoIEC 1185-2 dentro de una sola estacion RS 485.

La version en fibra optica esta intencionada para uso en ambientes hosti-les, es decir, donde existen fuertes interferencias electromagneticas. Puedenemplearse diferentes tipos de fibra (monomodo, multimodo) en una topologıade anillo.

Como se ha mencionado anteriormente, Profibus ofrece servicios de capade enlace, sin embargo, el alcance de esta tesis se limita a la capa fısica, porlo que la descripcion de dichos servicios son incluidos en el apendice C demanera de poder referirnos a ellos sin perder el foco principal de este trabajo.

A continuacion, se realizara una descripcion de los formatos de tramasposibles en Profibus, debido a que es de interes conocer sus tamanos y dis-posicion de bytes.

Page 41: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 38

3.2.3. Formatos de tramas

Profibus soporta cinco tipos diferentes de tramas, como puede verse enla figura 3.2. Excepto la trama de acuse de recibo corto (SC) de un byte delargo, todas los otros tipos de trama comienzan con un delimitador de inicio(cada tipo de trama con uno diferente), y lleva consigo al menos un byte dedireccion de destino (DA) y un byte de direccion fuente. El byte de controlde trama (FC) tiene diferentes significados cuando es transmitido desde lainiciadora a la estacion que responde y viceversa. Cuando es enviado a lainiciadora, el byte FC lleva consigo informacion de control: FCB y FCV, unaetiqueta de tipo de servicio (SDA, SDN, SRD, manejo de trama), o el codigode respuesta en caso de tramas de acuse de recibo (acuses de recibo positivoso negativos, codigos de error para indicar tramas de pedidos malformados,falta de memoria etc.). El byte de secuencia de chequeo de trama (FCS) esuna simple suma de comprobacion, computada por la trama sin informacion,la trama con capacidad de informacion fija y la trama con capacidad de in-formacion variable. El byte FCS es la suma MODULO-256 de todos los byteslocalizados entre el campo DA (inclusive) y campo FCS de la trama. El acusede recibo corto y la trama de token no tienen ninguna suma de comprobacion.

La version RS485 de Profibus usa transmision serie con codificacion NRZ.Cada byte de informacion es transmitido con once bits: un bit de inicio, unbit de parada, ocho bits de informacion y un bit de paridad.

A continuacion en la figura 3.2 se observan los diferentes tipos de tramasdel protocolo Profibus, segun los diferentes tipos de mensajes enviados porlos dispositivos. En el apendice C se detallan dichos mensajes y su secuenciacronologica y orden de prelacion. Notese en dicho apendice que el proto-colo utiliza conceptos de intercambios de mensajes conocidos de anterioresprotocolos, como por ejemplo LAP-B y TCP.

Page 42: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 39

Figura 3.2: Formatos de tramas Profibus [14]

3.3. Ejemplo de red Profibus

En esta seccion se muestra un ejemplo practico de una red de controlintegrada a una red TCP/IP sobre Ethernet.

Se distinguen claramente dos redes: la red cliente/servidor de sobre Ether-net TCP/IP, desde la cual el usuario u operador puede acceder a medicionesen tiempo real, configuraciones y tomar acciones desde plataformas con di-versos sistemas operativos; en contraposicion, la red de control se encargade comunicar equipos de campo, controladores y otros dispositivos, siendoesta ultima red objeto de estudio de esta tesis. Los protocolos que corrensobre esta red pueden ser variados: Profibus, Modbus, Fieldbus Foundation,HART, entre los mas difundidos. El esquema de la figura 3.3 se limita a unared donde se comunican equipos Profibus DP y PA con un controlador queinteractua con ambas redes.

Page 43: Profibus Turbo Code - Pablo Briff

Protocolo Profibus 40

Figura 3.3: Ejemplo practico de una red Profibus [21]

Page 44: Profibus Turbo Code - Pablo Briff

Capıtulo 4

Canal de comunicaciones

4.1. Introduccion

Como definicion generica, el canal de comunicaciones es el medio fısicoutilizado para enviar una senal del transmisor al receptor. Se puede decir queel canal de comunicaciones provee de una conexion entre el transmisor y elreceptor.

Entre los diferentes medios fısicos se destacan:

• Guiados

Canales alambricos Las lıneas de par trenzado y de cable coaxil soncanales electromagneticos guiados que proveen de un ancho debanda relativamente modesto. Los primeros alcanzan un ancho debanda del orden del megahertz, mientras que los segundos tienenun ancho de banda utilizable de cientos de megahertz. Las senalestransmitidas por medios guiados sufren de distorsion de amplitudy fase, debido al fenomeno de dispersion, presente en medios en loscuales la velocidad de grupo no es igual a la velocidad de fase delas ondas1, a lo que se suma ruido aditivo. Adicionalmente, parael caso de par trenzado, ocurre el fenomeno de diafonıa (crosstalk)entre canales fısicamente adyacentes. Para compensar las distor-siones de amplitud y fase, suelen utilizarse filtros ecualizadores decanal entre el transmisor y el receptor.

1Esto se debe a que el modulo de la respuesta en frecuencia del canal no es constanteen amplitud, ni su fase lineal para todas las frecuencias. Se dice entonces que el medio esdispersivo.

41

Page 45: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 42

Canales de fibra optica La fibra optima ofrece un ancho de bandavarios ordenes de magnitud mayor que el cable coaxil. Son guıasde ondas que basan su funcionamiento en el fenomeno de reflexiontotal debido a la diferencia de permitividades relativas entre lafibra (de vidrio y plastico) y el aire. Dependiendo del material delcual esten fabricadas, variaran la atenuacion y dispersion que estaspresenten, obteniendose en los mejores casos cientos de kilometrosde distancia de propagacion de las ondas lumınicas. El transmisorgeneralmente es un laser o un diodo LED que modula la intensidadlumınica con la senal transmitida, para una determinada longitudde onda, siendo el receptor un fotodiodo que produce una salidaelectrica en funcion de la intensidad lumınica recibida. Las fuentesde ruido en los canales de fibra optica son los fotodiodos y losamplificadores electronicos.

• No guiados

Canales de electromagneticos inalambricos En un sistema de comu-nicaciones inalambrico, la energıa es acoplada al medio de propa-gacion mediante el uso de una antena, la cual adapta las senaleselectricas del medio guiado al no guiado, y viceversa, cuyas dimen-siones dependen de la frecuencia de trabajo. Los problemas quepresentan las senales transmitidas por este canal varıan segun lafrecuencia de operacion; si se transmiten senales de muy baja fre-cuencia (VLF), el globo terrestre actua como guıa de ondas paraestas senales, siendo las tormentas electricas una fuente de ruido;si se trabaja en frecuencias medias (MF), las ondas se propaganpor la superficie terrestre, como es el caso de las ondas de AM2,siendo las fuentes de ruido el ruido atmosferico, el inducido porel hombre y el ruido termico de los componentes en el receptor;las ondas de alta frecuencia (HF) se propagan por el espacio libre,sufriendo el fenomeno de desvanecimiento por caminos multiples(multipath), tambien llamado desvanecimiento de Rayleigh, debi-do a la recepcion de la misma senal por diferentes caminos condiferentes fases y amplitud atenuada. En HF, las fuentes de ruidoson el ruido termico y atmosferico; Para senales de muy alta fre-cuencia (VHF), el modo de propagacion es lınea de vista (LOS), locual indica literalmente que el transmisor y el receptor deben ver-

2Las ondas de AM tambien se propagan por rebote en la capa ionosferica, alcanzandomayor distancia de propagacion durante la noche.

Page 46: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 43

se en lınea recta para establecer el enlace3. Tanto en VHF comoen UHF (ultra alta frecuencia), las principales fuentes de ruidoson el ruido termico del receptor y el ruido cosmico captado porla antena, mientras que las condiciones climaticas, como ser la llu-via, tienen un papel preponderante en la atenuacion de las ondaselectromagneticas.

Aunque este tipo de canal es uno de los mas utilizados en lossistemas de comunicaciones, el objetivo de esta tesis es estudiarlos canales guiados, especialmente los canales alambricos, enel ambiente industrial, por lo que no se realizara una descripciondetallada de los canales no guiados, o inalambricos.

Cualquiera sea el medio fısico utilizado, la principal caracterıstica es quela senal transmitida es afectada en forma aleatoria debido a una gran varie-dad de mecanismos, como ser ruido termico aditivo generado por dispositi-vos electronicos, ruido inducido por el hombre, como por ejemplo la igniciondel motor de un automovil, o bien generados por la atmosfera, tıpicamenterelampagos durante tormentas electricas.

4.2. Modelo del canal

En la gran mayorıa de las aplicaciones sobre canales guiados, la senalaleatoria que se suma a la senal transmitida puede modelarse como un pro-ceso aleatorio Gaussiano, por lo que en la seccion 4.2.1 se estudiara el ruidoblanco Gaussiano aditivo, o AWGN.

La figura 4.1 muestra el transmisor que genera los sımbolos s(i)(t) a partirde los datos de fuente m(i), el canal de ruido aditivo n(t) y el receptor al cualllega la senal perturbada r(t).

Sin embargo, si el canal estuviera limitado en ancho de banda, como es elcanal de telefonıa fija (limitado a 4KHz), serıa necesario introducir un analisisde canal de filtro lineal [2], el cual considera la transferencia del filtro paraestimar la senal recibida. Si en cambio el canal fuera inalambrico, se puedenutilizar varios modelos, yendo desde el mas simple, AWGN, pasando por elmodelo de canal de filtro linear variante en el tiempo[2], o planteando un

3Esto es condicion necesaria pero suficiente, debido a la existencia del margen denomi-nado Elipsoide de Fresnel; igualmente aunque el transmisor y el receptor no se vieran, elenlace podrıa funcionar debido a la difraccion de las ondas alrededor de un obstaculo dedimensiones comparables a la longitud de onda de operacion.

Page 47: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 44

Figura 4.1: Esquema de un sistema de comunicaciones con un canal de ruidoaditivo

modelo de canal con memoria para considerar errores en rafaga, como lo sonel modelo de Gilbert-Elliot [16] y el modelo bipartito[13], los cuales modelanal canal como una fuente de Markov con probabilidades de transicion haciaestados “buenos” y “malos”. De esta manera, el canal tiene memoria de loseventos de ruido ocurrido, por lo que la probabilidad de error de bit deja deser independiente para cada bit en el caso de ocurrir una rafaga, ya que estaafecta a un conjunto de bits consecutivos en el tiempo.

4.2.1. Canal AWGN

Como se ha mencionado en la seccion 4.1, la forma de onda aleatoria n(t)que se suma a la senal transmitida s(t) en el canal, como se observa en laecuacion 4.1 , puede ser modelado como un proceso aleatorio Gaussiano enla mayorıa de los casos de importancia.

r(t) = s(t) + n(t) (4.1)

Aproximemos n(t) como una secuencia de pulsos aleatorios w(t) de du-racion Ts:

n(t) =+∞∑

i=−∞niw(t− iTs − δ) (4.2)

donde los pesos ni son variables aleatorias Gaussianas, Ts es un incre-mento de tiempo arbitrario y δ es un retardo cualquiera uniformemente dis-tribuido entre [0, Ts], necesario para que n(t) sea estacionario. La figura 4.2muestra un posible evento de ruido aditivo, segun la ecuacion 4.2.

Un proceso Gaussiano estacionario queda completamente determinadopor su media y su funcion de correlacion. Si se asume que la media delproceso es nula,

E[n(t)] = 0 (4.3)

Page 48: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 45

Figura 4.2: Ejemplo de evento de ruido aditivo

se calcula la correlacion segun:

R(τ) = E

+∞∑i=−∞

+∞∑j=−∞

ninjw(t− iTs − δ)w(t + τ − jTs − δ)

(4.4)

= σ2Eδ

+∞∑i=−∞

w(t− iTs − δ)w(t + τ − jTs − δ)

(4.5)

= σ2∆Ts(τ) (4.6)

donde σ2 = E[ni2] es la varianza de las muestras de ruido ni. Notese que

en la ecuacion 4.5 la esperanza se calcula sobre el retardo variable δ.

Consideremos ahora la densidad espectral de potencia de ruido N(f) delproceso aleatorio n(t); debido a que n(t) no es una funcion determinıstica, nopuede obtenerse su transformada de Fourier. Sin embargo, se calcula N(f)como la transformada de Fourier de la correlacion del ruido R(τ).

N(f) =∫ +∞

−∞R(τ)e−j2πτfdτ (4.7)

donde f es la frecuencia.La figura 4.3 muestra la correlacion del ruido y su correspondiente trans-

formada de Fourier. Notese que la secuencia de ruido de la ecuacion 4.2 seconforma de sumas de infinitos rectangulos. Al correlacionar, es decir convo-lucionar, rectangulos de igual duracion, Ts, se obtiene una funcion triangularcomo la de la figura 4.3, cuya transformada de Fourier es una sinc cuadrado.

Se obtienen resultados de interes cuando la duracion de los pulsos alea-torios Ts tiende a cero:

Page 49: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 46

Figura 4.3: Correlacion del ruido y su transformada de Fourier

lımTs→0

N(f) = σ2 (4.8)

lımTs→0

R(τ) = σ2δ(τ) (4.9)

Es decir, a medida que la duracion de los pulsos de ruido tiende a cero, lacorrelacion entre ellos se aproxima a una delta de Dirac, y la transformadade Fourier de la correlacion tiende a ser constante para todas las frecuencias,con una potencia de σ2 W/Hz, por lo que se obtiene el denominado ruidoblanco4, el cual debe ser filtrado utilizando un filtro pasabajos que atenuefrecuencias mayores a las que utilice el sistema en cuestion.Se define la densidad espectral de potencia de ruido de a ambos lados delespectro como5:

σ2 =N0

2(4.10)

En general, en las comunicaciones digitales es de importancia encontrarla relacion entre la energıa del bit de fuente, Eb, y la densidad espectral depotencia de ruido, N0:

Eb

N0

=Eb

2σ2(4.11)

Si se reescribe la expresion de Eb/N0 en funcion de la relacion S/N y latasa de datos R se tiene:

Eb

N0

=S

NWTs =

S

N

W

R(4.12)

4Recibe este nombre por analogıa con la luz blanca, la cual contiene componentes detodas las frecuencias con la misma intensidad lumınica.

5Si se define la densidad espectral monolateral igual a N0, resulta σ2 = N0, ver [5].

Page 50: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 47

con lo cual se observa que, si la relacion S/N se mantiene constante de-bido a que no ha cambiado el ancho de banda del receptor W ni la potenciarecibida S, cuya variacion solo se debe a la atenuacion del medio fısico6, en-tonces la relacion Eb/N0 es inversamente proporcional a la tasa de datos R.De esta manera, una duplicacion de la tasa de datos significara una dismi-nucion a la mitad de la relacion Eb/N0 medida en veces.

Es importante aclarar que W , el ancho de banda del canal de comuni-caciones, es a priori independiente de la senal transmitida, aunque es logicopensar que para transmitir informacion a R bps se limite W mediante unfiltro a un valor cercano a R/2 (ver Apendice A seccion A.8), de manera quesi se hace W = R/2 la ecuacion 4.12 puede reescribirse segun:

Eb

N0

=S

N

W

R=

1

2

S

N(4.13)

En decibeles, la expresion se reduce a:

Eb

N0

⌋dB

= 10 log(1

2

S

N) =

S

N

⌋dB− 3dB (4.14)

Potencia de ruido AWGN

Consideremos un sistema receptor limitado en banda a B Hz. Si el ruidotiene una densidad espectral de potencia a ambos lados del espectro igual aN0/2 W/Hz , la potencia de ruido AWGN que se desarrollara en ese anchode banda sera:

N =N0

22B = N0B (4.15)

4.2.2. Ruido termico

Una de las fuentes mas importantes de ruido AWGN es el ruido termico.Este se debe a la agitacion aleatoria de los electrones debido a la energıatermica. Dicho movimiento aleatorio produce una senal independiente de lasenal recibida y es detectada en adicion a la senal de informacion. Debidoa que este ruido es generado por muchos dispositivos, se lo puede modelarcomo un proceso Gaussiano.

6En este caso habra que tener en cuenta la variacion de la atenuacion del medio fısi-co con la frecuencia de transmision, encontrando aquellos rangos de frecuencia para loscuales la atenuacion permanece constante. Este efecto serıa mucho mas crıtico en canalesinalambricos en los cuales la atenuacion depende fuertemente de la frecuencia debido alfenomeno de propagacion.

Page 51: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 48

Potencia y tension de ruido termico

Para ver el efecto del ruido en la senal recibida, se debera tener en cuentala potencia de la senal de ruido relativa a la senal deseada, surgiendo ası larelacion SNR en comunicaciones analogicas, y Eb/N0 en comunicaciones di-gitales.Para encontrar la potencia de ruido termico N , primero se debe conocer latemperatura en grados Kelvin en el receptor y el ancho de banda del receptor,segun indica la ecuacion 4.16:

N = kTB (4.16)

donde k = 1,38 · 10−23W/(HzK) es la constante de Boltzmann, T es latemperatura del receptor en grados Kelvin, y B es el ancho de banda de ruidoefectivo en el receptor en Hz.

Asimismo, la tension de ruido termico Vn sobre un resistencia de valor Rse calcula como:

Vn =√

kTBR (4.17)

4.3. Canal fısico en Profibus DP

Hasta aquı se ha visto el modelo matematico del canal de comunicaciones.En esta seccion se mostraran las especificaciones del canal fısico del protocoloProfibus DP, en cuanto a atenuacion, maxima longitud del cable en funcionde la tasa de transferencia de datos, aplicaciones, etc.

El cable utilizado como canal fısico en Profibus DP es el que se muestraen la figura 4.4. Sus especificaciones tecnicas seran dadas en la seccion 4.3.1.

Figura 4.4: Cable utilizado en Profibus DP

4.3.1. Especificaciones tecnicas

A continuacion en el cuadro 4.1 se muestran las especificaciones tecnicasdel canal fısico de Profibus DP, incluyendo la version de seguridad intrınseca.

Page 52: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 49

Cuadro 4.1: Especificaciones tecnicas del canal fısico paraProfibus DP [17]

Modelo NDC110-NO (CDN110)NDC110-EX (CDE110-Ex)

Aplicacion Cable de bus de campo estandar para aplicacionescero halogeno para Profibus DP/FMS. Recomen-dado para instalaciones en interiores y exteriores,ubicaciones secas y humedas, en gabinetes, ban-dejas y conductos. No apto para enterrado direc-to. Especialmente aplicable a ubicaciones dondelas caracterısticas de bajo nivel de humo y cerohalogeno son importantes (por ej, edificios publi-cos, hospitales, estaciones de energıa)

Habilitado para In-dustrialIT

A nivel de informacion

Estandar EN 50170 Parte 2 y Parte 3Clasificacion Tipo AInterfaz RS 485 (-IS)Conductor cobre plano solido

AWG 22/1, ø = 0,64mmAislacion polietileno espumado con capa superficial

Codigo de colores cable nucleo-a: verde, cable nucleo-b: rojoPantalla cinta de aluminio con revestimiento plastico, por

fuera superficie metalica en contacto con un cablede drenaje de cobre enlatado y trenza de cable.

Revestimiento exte-rior

componente bajo nivel de humo y cero halogeno,color: violeta (NDC110-NO), azul [IS] (NDC110-EX)

Diametro total 8,1± 0, 3mmPeso aprox. 78 kg/kmMaxima tension de ti-rado

80N

Mınimo radio de tor-sion

5 x diametro total del cable

Rango de temperatura -40...+75 C durante la operacion, 5...+50 C parala instalacion

Resistente a UV UL 1581 artıculo 1200Resistente a aceite ICEA S-82-552

Page 53: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 50

Propagacion de llama UL 13 prueba de bandeja vertical, IEC 60332-3Densidad de humo baja, IEC 61034Libre de halogeno Sı, IEC 60754-1, 0 %Grado de acidez de ga-ses

IEC 60754 part 2, (pH > 4,3, c > 10µS/mm)

Indice de oxıgeno delrevestimiento exterior

IEC 60332-3, min. 35 %

Proteccion a explosion (NDC110-EX only) para aplicaciones EEx i[IS],Clase I/II division 2 de acuerdo con NEC 501-4(b)y NEC 502-4(b) o Zona 1/2, grupo II, de acuedocon 60079-14.

Aprobacion FISCO FISCO no para componentes pasivosAprobacion CE, UL (listado como PLTC de acuerdo con UL

13)

Propiedades electricas a 20CResistencia del con-ductor (lazo)

max. 110Ω/km

Resistencia de la pan-talla

nom. 9Ω/km

Atenuacion a 0.25 /0.625 /1.25 / 3.125 /16 / 100 / 300 MHz

nom. 6 / 9 / 12 / 18 / 40 / 123 / 214 dB/km

Inductancia nom. 0.65 mH/kmCapacitancia mutua max. 30nF/kmCapacitancia de des-balance a tierra

max. 1500pF/km

Impedancia ≥ 3MHz 150± 15ΩTension de prue-ba (cable/cable ycable/pantalla)

1500 V

Tension de operacion max. 300 V

En la figura 4.5 se grafica la atenuacion del canal fısico de Profibus DPen funcion de la frecuencia.

Page 54: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 51

Figura 4.5: Atenuacion del cable de Profibus DP en funcion de la frecuencia

4.3.2. Tasa de transmision de datos vs. distancia decable

Existe una relacion de compromiso entre la maxima distancia del cable yla tasa de transmision de datos. Esto se debe a que al aumentar la tasa detransmision de datos, los bits poseen menos energıa por tener una duracionmenor, en consecuencia existe una disminucion en la relacion Eb/N0, la cuallimita la maxima distancia de cable; adicionalmente, el medio fısico generaatenuaciones en la senal electrica, siendo estas mayores conforme aumenta latasa de transmision de datos. De esta manera existe una maxima distanciade cable para una determinada velocidad de transmision. En la figura 4.6 segrafican estos lımites en funcion de la tasa de datos, diferenciando el caso enque el medio fısico utilice la interfaz RS485 o RS232C7.

4.3.3. Niveles de ruido

En esta seccion se veran los niveles de ruido considerados como lımitespara la calidad de la transmision de la informacion en Profibus. Si bien la

7Por razones que se ven claramente en la figura 4.6, no se utiliza esta interfaz.

Page 55: Profibus Turbo Code - Pablo Briff

Canal de comunicaciones 52

Figura 4.6: Maximas distancias del cable de Profibus DP vs. tasa de trans-mision de datos [18].

norma Profibus DP no establece dichos valores, y solo considera como criteriolimitante la atenuacion del medio fısico, estos niveles se tornan muy influ-yentes en la version Profibus PA debido a que esta utiliza la interfaz MBP(Manchester Bus Powered) la cual es desbalanceada y no cancela el ruidoAWGN.

El cuadro 4.2 muestra los niveles en milivolts pico a pico y la condicionde la lınea para cada caso.

Cuadro 4.2: Niveles de ruido para Profibus PA

Nivel de ruido Condicion de la lınea(Promedio, pico a pico)

≤ 25 mV Excelente20...25 mV Buena50...75 mV Marginal≥ 75 mV Mala

Estos valores serviran como referencia para el caso de Profibus DP, aun-que es necesario valerse de informacion adicional para considerar la validezde dichas magnitudes de ruido.

Debido a que en esta tesis se consideran enlaces propensos a errores8, loscuales incrementan la tasa de error BER, se propondra un nivel de ruidomaximo de 270 mV, muy superior a los niveles maximos adoptados en Pro-fibus PA, situandonos en la condicion mas desfavorable, para analizar ası larespuesta de la propuesta presentada en esta tesis bajo estas condiciones.

8En ingles suele denominarse a este tipo de enlaces prone links.

Page 56: Profibus Turbo Code - Pablo Briff

Capıtulo 5

Profibus Turbo

5.1. Introduccion

Durante anos se ha trabajado con diferentes versiones de Profibus paracada aplicacion en particular. Un claro ejemplo de esto es la version ProfibusPA, la cual transmite datos a una tasa fija de 31.25 Kbps alcanzando distan-cias maximas de 1900 metros. Claramente, en contraste con Profibus DP, elcual trabaja a velocidades de hasta 12 Mbps con una distancia maxima de100 metros para dicha tasa, se esta sacrificando velocidad de transmision dedatos por distancia de cable. Esto es logico y razonable, ya que un estableci-miento o planta industrial puede tener dimensiones del orden del kilometro yen consecuencia es necesario tender cables de hasta 2000 metros de longitudpara comunicar los equipos transmisores, actuadores y otros equipos de cam-po con los gabinetes en donde se encuentran los controladores o procesadoresde datos.

En este capıtulo se propone un esquema innovador de transmision dedatos para el protocolo Profibus DP, con la meta de alcanzar distancias delorden de las alcanzadas con Profibus PA, pero con tasas de transmision dedatos mucho mayores, con la finalidad de soportar servicios y funcionalidadesen los equipos de campo. Esto ademas implicara un mejor aprovechamientode los recursos del bus, ya que el mismo estara ocupado por un tiempo muchomenor que el actual para transferir el mismo volumen de datos.

Adicionalmente, la propuesta es innovadora desde el punto de vista dela codificacion turbo, debido a que la misma tradicionalmente ha sido usadaexclusivamente para enlaces inalambricos, debido a su baja relacion S/N yla necesidad de obtener ganancias de codificacion notables para mejorar la

53

Page 57: Profibus Turbo Code - Pablo Briff

Profibus Turbo 54

BER, mientras que en esta tesis se utiliza dicha tecnica en medios cableadospor cobre.

Por ultimo, este nuevo esquema introduce el uso de la codificacion tur-bo en el ambito de las comunicaciones industriales, algo nunca hechohasta el momento.

5.2. Esquema propuesto

La figura 5.1 muestra el esquema propuesto para la transmision y re-cepcion de Profibus DP con codificacion turbo. El esquema es totalmentegenerico y aplicable a cualquier otro protocolo de comunicaciones industria-les sobre medios guiados, salvo diferencias en la capa fısica, sobre la cualopera. El algoritmo de decodificacion turbo no toma acciones sobre capassuperiores ni debe hacerlo para garantizar la BER y Eb/N0 objetivo.

Figura 5.1: Esquema propuesto para Profibus Turbo

Page 58: Profibus Turbo Code - Pablo Briff

Profibus Turbo 55

5.2.1. Posible implementacion y retardo asociado

Si bien la implementacion del esquema propuesto se encuentra fuera delalcance y los objetivos de esta tesis, se propone a continuacion una posibleimplementacion de los algoritmos de codificacion y decodificacion turbo.

Los algoritmos MAP pueden ser implementados sobre DSP’s o FPGA’s,siendo estas ultimas las mas utilizadas por presentar menos retardo de proce-samiento que los primeros. Existen diversos circuitos integrados que realizanla codificacion y decodificacion turbo, a diferentes tasas de datos y con dis-tintos polonomios generadores. Para el caso particular de esta tesis, es conve-niente utilizar un codificador de 16 estados (longitud restringida K = 5) conun circuito integrado que trabaje hasta al menos 12 Mbps. La empresa Tre-llisWare Technologies ha desarrollado el circuito integrado TWT 100204D/Econ las caracterısticas anteriormente mencionadas [23]. Uno de los parame-tros mas importantes al proponer una implementacion es la latencia o retardointroducido por el procesamiento de los datos.

Para el circuito integrado TWT 100204D/E, el cual opera con un relojdel 46,6666 MHz, y utiliza un codificador con tasa k = 1/3, con 8192 bits dedatos, el retardo de decodificacion1 esta dado por la ecuacion 5.1:

Latency = 5041Tp (5.1)

donde p es el numero de iteraciones y T = 1/46,6666nseg = 21,42nseg.Para 8 iteraciones, el retardo es de 864,19µseg.

Para nuestro caso, la trama entrante es de 2816 bits (256 bytes, repartidosentre 246 bytes de datos y 10 bytes de overhead, cada byte acompanado porun bit de inicio, uno de parada y uno de paridad, con un total de 11 bitspor byte de informacion) y el codigo es de tasa k = 1/2, por lo que larelacion entre la cantidad de datos que procesa el decodificador de la hoja dedatos y los datos procesados por la solucion propuesta en esta tesis es (8192 ·3)/(2816 ·2) = 4,3636. De esta manera, es razonable pensar que el retardo deprocesamiento especificado en la hoja de datos del decodificador se divida pordicho numero, siendo entonces igual a 198µseg para 8 iteraciones. Con la tasade bits mas elevada, 12 Mbps, este retardo equivale a 12Mbps · 198µseg =2376bits. Es decir, el retardo de procesamiento es inferior al tamano de unatrama (2816 bits), por lo que bastara con agregar un buffer con capacidadpara almacenar una trama en el decodificador turbo.

1El retardo de codificacion puede ser considerado despreciable.

Page 59: Profibus Turbo Code - Pablo Briff

Profibus Turbo 56

5.2.2. Factibilidad economica

En esta seccion se analizara la factibilidad economica de la solucion pro-puesta y su impacto en el precio final del equipo Profibus.

El precio de un equipo comercial Profibus varıa de acuerdo a sus presta-ciones y servicios agregados; generalmente los equipos mas economicos sonlos transmisores (de caudal, presion, nivel, temperatura, entre los mas comu-nes), ya que se limitan a medir una magnitud fısica y comunicarla median-te una senal electrica al procesador de datos o controlador. Las valvulas yactuadores suelen ser mas costosos debido a la electronica de accionamientoinvolucrada, generalmente haciendo uso de la energıa neumatica o hidraulica.

De esta manera, se utilizara como patron de comparacion a un transmi-sor, de manera de situarse en la peor condicion, en este caso, el equipo maseconomico, donde tendra mayor impacto la introduccion de la FPGA queimplemente los algoritmos de decodificacion. El precio de un equipo transmi-sor Profibus de ABB oscila entre los U$S 800 y U$S 1000; aunque el preciopueda parecer elevado, la prestacion y confiabilidad ofrecida por el equipopaga la inversion realizada, por lo que quienes disenan una planta industrialque brindara elevadas ganancias diarias no suelen efectuar grandes ahorrosen los equipos involucrados en el proceso de produccion.

Por otra parte, una FPGA de la firma Altera utilizada para W-CDMAque implementa el calculo de CRC, decodificacion turbo, seleccion de re-dundancia, interleaving y modulacion en QAM para una tasa de 14,4Mbps,cuesta unos U$S 7 por unidad [24]. Recordemos que para este tipo de anali-sis economico el hardware representa un costo recurrente mientras que elfirmware no agrega costo por unidad por ser no recurrente.

De esta manera, luego de un breve analisis, se puede concluir que elimpacto sobre el precio final del equipo que implemente Profibus Turbo seve incrementado en menos del 1 por ciento del valor actual.

5.3. Propiedades del canal propuesto

5.3.1. BER y Eb/N0

Consideremos ahora que la senal transmitida se encuentra inmersa en unentorno en el cual las interferencias y el ruido electromagnetico descripto enel capıtulo 4 son tales que generan una BER que en el peor caso alcanza un

Page 60: Profibus Turbo Code - Pablo Briff

Profibus Turbo 57

valor de 10−4. Para transmision sin codificacion, esto representa un valor deEb/N0 igual a 8,37dB, segun puede observarse en la figura 5.2. De la figuramencionada puede destacarse que para una BER de 10−5, valor que muchosautores consideran como lımite de buen funcionamiento de un enlace, la re-lacion Eb/N0 asciende a 9,55dB.

Los enlaces mencionados en el parrafo anterior, denominados en inglesprone links, imparten alteraciones a la senal transmitida debido al elevadonivel de ruido electromagnetico proveniente de diversas fuentes. En un am-biente industrial, dichas fuentes son fundamentalmente los motores y bombasque se accionan en la planta durante el proceso, tubos flourescentes, fuentesconmutadas, entre otros equipos, los cuales contribuyen con ruido electro-magnetico durante su funcionamiento transitorio o permanente.

Figura 5.2: BER vs Eb/N0 para transmision sin codificacion

Page 61: Profibus Turbo Code - Pablo Briff

Profibus Turbo 58

5.3.2. Niveles de ruido para la Eb/N0 propuesta

Siguiendo el razonamiento establecido en la seccion 5.3.1, para obteneruna relacion Eb/N0 = 8,31dB, considerando una tension mınima de 1V en elreceptor, y utilizando la ecuacion 4.14, la tension de ruido debe ser de:

8,31dB = 20 log1V

V n− 3dB ⇒ V n = 272mV (5.2)

5.3.3. Atenuaciones para distintas tasas de datos

Segun lo establecido en el Apendice A seccion A.8, para una tasa de datosde R bps, el ancho de banda de la senal asociada puede ser aproximado a R/2Hz. De esta manera, y refiriendonos a la figura 4.5, se construye el cuadro5.1 para cada tasa de datos del protocolo Profibus.

Cuadro 5.1: Atenuacion en funcion de la tasa de datos

Tasa (kbps) Atenuacion (dB/100m)9.6 0.519.2 0.593.75 0.5187.5 0.5500 0.61000 0.81500 13000 1.2812000 2.324000 3.3

Es importante notar que el cuadro anterior surge de plantear el ancho debanda de una senal de R bps y evaluar la curva de atenuacion vs. frecuen-cia para una frecuencia igual a R/2 Hz. Indudablemente esto no fue lo querealizaron quienes establecieron la cota de distancia en el estandar Profibus,ya que los niveles impuestos en la norma son absolutamente conservadores yholgados.

Page 62: Profibus Turbo Code - Pablo Briff

Profibus Turbo 59

5.4. Mejoras obtenidas

5.4.1. Tasa de transmision constante

En esta seccion se estudiaran los casos en los cuales la tasa de transmisionpermanece constante, siendo la variable de estudio la maxima longitud decable.

Para el estudio de esta seccion se supondra una BER igual a 10−4, por loque se debe procurar que la relacion Eb/N0 caiga hasta 1dB trabajando conun esquema de decodificacion turbo de hasta 10 iteraciones si es necesario2

(ver figura 2.10). Sin embargo, son los bits de codigo los que ingresan al canalde comunicaciones y los que son atenuados por el mismo, de manera que unaEb/N0 = 1dB equivale a una Ec/N0 = 1dB − 3dB = −2dB por utilizarsecodigo de tasa k = 1/2, por lo que, partiendo de una senal de 2V , con unnivel de ruido Vn = 272mV la senal recibida Vr debe ser de:

Vr = Vn10−2+3

20 = 242,42mV (5.3)

Por lo tanto, se deben atenuar los bits de codigo:

LcdB = 20 log2V

Vr

= 18,33dB (5.4)

A continuacion se estudiara la maxima distancia del cable resultante deplantear la atenuacion de la ecuacion 5.4, refiriendonos al cuadro 5.1, paradiferentes tasas de trasmision de interes.

Es importante aclarar que para una tasa R bps de datos de fuente corres-ponde una tasa 2R de datos de codigo, por lo que la atenuacion del canalfısico sobre los bits de codigo ocurrira a una frecuencia R Hz.

Tasa 500Kbps

De acuerdo al cuadro 5.1, con una atenuacion de bits de codigo de 0,8dB/100m,para lograr una Eb/N0 = 1dB, la maxima longitud del cable es:

D =18,33dB

0,8dB/100m= 2291 m (5.5)

Es decir, la nueva maxima distancia para 500Kbps es 5,72 veces la dis-tancia impuesta por la norma para dicha tasa (400m).

2No es conveniente aumentar demasiado la cantidad de iteraciones debido al retardointroducido, ver seccion 5.2.1.

Page 63: Profibus Turbo Code - Pablo Briff

Profibus Turbo 60

Adicionalmente, la nueva distancia maxima para 500Kbps es aun su-perior a la maxima distancia establecida por la norma para Profibus PA(1900 m), el cual transmite a velocidad constante e igual a 31,25Kbps. Esdecir, si se transmite la alimentacion por el bus de datos del esquema pro-puesto en esta tesis, es posible obtener la misma prestacion que Profibus PApero con un incremento de velocidad de 16 veces. De esta manera, dichatecnica podrıa desplazar a Profibus PA por otorgar mejores prestaciones paramayores distancias de cables.

Tasa 1, 5Mbps

Siguiendo un razonamiento analogo al efectuado para la tasa de 500Kbps,y refiriendonos al cuadro 5.1, con una atenuacion de 1,28dB/100m para losbits de codigo emitidos a 3Mbps, para lograr una Eb/N0 = 1dB, la maximalongitud del cable es:

D =18,33dB

1,28dB/100m= 1432 m (5.6)

Es decir, la nueva maxima distancia para 1,5Mbps es 7,61 veces la dis-tancia impuesta por la norma para dicha tasa (200m).

Tasa 12Mbps

Se analizara el ultimo caso para tasa constante, siendo este el caso de lamayor tasa de datos establecido por Profibus. Siguiendo el mismo razona-miento que para las tasas de 500Kbps y 1,5Mbps , nuevamente refiriendonosal cuadro 5.1, con una atenuacion de 3,3dB/100m para los bits de codigoemitidos a 24Mbps, para lograr una Eb/N0 = 1dB, la maxima longitud delcable es:

D =18,33dB

3,3dB/100m= 555.45 m (5.7)

Es decir, la nueva maxima distancia para 12Mbps es 5,55 veces la dis-tancia impuesta por la norma para dicha tasa (100m).

A lo largo de esta seccion se ha supuesto la utilizacion de un filtro enel receptor con frecuencia de corte igual a R Hz, de manera de mantener larelacion W/(2R) = 1/2, donde 2R es la tasa de bits de codigo que ingresanal canal por utilizarse un codigo de tasa k = 1/2.

Page 64: Profibus Turbo Code - Pablo Briff

Profibus Turbo 61

5.4.2. Distancia de cable constante

En esta seccion se estudiaran los casos en los cuales la maxima distan-cia del cable permanece constante, siendo la variable de estudio la tasa detransmision de datos.

Consideremos la variacion de la relacion Eb/N0 con la tasa de datos R.Reescribiendo la ecuacion 4.12, y considerando que la densidad espectral deruido N0 permanece constante, se obtiene:

Eb

N0

=S

N

W

R=

S

N0

1

R(5.8)

De esta manera, se aprovechara la relacion de la ecuacion 5.8 para ob-tener una Eb/N0 = 1dB incrementando la tasa de datos R tanto como seanecesario.

El escenario estudiado en esta seccion es mas complejo que el estudiadoen la seccion 5.4.1, ya que en esta ultima el hecho de conocer a priori la tasade transmision permitıa conocer la frecuencia a la cual calcular la atenuacionen funcion de la distancia; en cambio, la situacion difiere en esta seccionpor el hecho de que, al tiempo que se desea determinar cuanto es posibleaumentar la tasa R para reducir la Eb/N0 a 1dB, es necesario conocerlapara calcular la atenuacion para una distancia conocida. De esta manera, esnecesario plantear una ecuacion que contemple la atenuacion en funcion de Rademas de la relacion existente entre Eb/N0 y R mencionada en la ecuacion5.8. Dicho de otra manera, se puede reescribir la ecuacion 5.8 explicitando ladependencia de la potencia recibida S en funcion de la tasa de datos R, esdecir:

Eb

N0

=S(R)

N0

1

R(5.9)

Al igual que en la seccion 5.3.1, se supondra una BER = 10−4, lo cual sig-nifica una Eb/N0 = 8,37dB sin codificacion, para cada distancia determinada.

Tomando 10 log(·) a ambos miembros de la ecuacion 5.8, resulta:

Eb

N0

⌋dB

=S

N(R)

⌋dB

+ 10 log(W )− 10 log(R) (5.10)

Sea R1 la tasa de datos determinada por la norma Profibus para unadeterminada distancia, y sea R2 la nueva tasa de datos propuesta para al-

Page 65: Profibus Turbo Code - Pablo Briff

Profibus Turbo 62

canzar una relacion Eb/N0 = 1dB, es posible plantear la siguiente variacionde manera de determinar R2:

(Eb

N0

⌋dB

)= 1dB − 8,37dB = −7,37dB = ∆

(S

N

⌋dB

)− 10 log

R2

R1

(5.11)

Ademas, es importante aclarar que:

(Eb

N0

⌋dB

)= ∆

(Ec

N0

⌋dB

)(5.12)

Si consideramos que ∆(

SN

⌋dB

)corresponde a la variacion de atenuacion

debido al incremento de la tasa de datos de R1 a R2, y es igual a − ∆LcdB,siendo LcdB la atenuacion definida por la figura 4.5, se puede reescribir laecuacion 5.11 como:

7,37dB = ∆ LcdB + 10 logR2

R1

(5.13)

Como puede observarse, en la ecuacion 5.13 no aparece el ancho de bandadel canal W ; esto se debe a que se lo ha considerado constante y al efectuarla diferencia, este se cancela. Sin embargo, a diferencia de la seccion 5.4.1,aquı se supone W > R1 de manera de poder incrementar R cumpliendo conel teorema de la capacidad de Nyquist; es mas, el mınimo valor que este pue-de tomar es W = R2, de manera de poder emitir datos de fuente a una tasaR2, teniendo los bits de codigo una tasa 2R2.

De esta manera, el objetivo de esta seccion sera resolver la ecuacion 5.13para encontrar la nueva tasa R2, con R2 > R1.

Notese que si la atenuacion en funcion de la frecuencia fuera plana (esdecir, constante), el termino ∆ LcdB de la ecuacion 5.13 serıa nulo, por loque para cualquier tasa de datos inicial R1 el incremento de tasa R2/R1 serıaigual a 100,737 = 5,46 veces. Sin embargo, debido al incremento de la atenua-cion conforme aumenta la tasa de datos, este valor se transforma en una cotasuperior.

Se analizaran tres diferentes distancias maximas de cable para diferentesaplicaciones, y para cada caso en particular se calculara el incremento de ta-sa de transmision de datos de manera de alcanzar una relacion Eb/N0 = 1dB.

Page 66: Profibus Turbo Code - Pablo Briff

Profibus Turbo 63

Figura 5.3: Detalle de la figura 4.5 para el rango de frecuencias de 250KHza 1MHz

Distancia 400m

Segun la norma Profibus, para una distancia de 400 metros correspondeuna tasa de transmision de datos de fuente R1 = 500Kbps, es decir unatasa de bits codigo de 2R1 = 1Mbps, lo cual corresponde a un ancho debanda de aproximadamente 500KHz, por lo que se debera encontrar unarelacion para la atenuacion en funcion de la frecuencia alrededor de dichovalor. Segun se observa en la figura 5.3, la pendiente de la recta que vincula laatenuacion con la frecuencia es de 0,8dB/100KHz hasta 626KHz, cayendoa 0,48dB/100KHz luego de dicho valor, y considerando que en este casoR1 = 500Kbps, se puede reescribir la ecuacion 5.13 como:

7,37 = 0,8626− 500

100+ 0,48

R2 − 626

100+ 10 log

R2

500(5.14)

con R2 medido en Kbps y ambos lados de la igualdad en dB. Notese queel primer termino a la derecha del igual representa la atenuacion del mediofısico obtenida entre 500 KHz y 626 KHz, mientras que el segundo planteala atenuacıon del mismo desde 626 KHz en adelante.

Page 67: Profibus Turbo Code - Pablo Briff

Profibus Turbo 64

Resolviendo graficamente en Matlab la ecuacion 5.14 escrita en formahomogenea, se obtiene R2 = 1177Kbps, es decir 2,35 veces la tasa de datosestablecida por la norma, tal como se observa en la figura 5.4. Entonces,mediante la introduccion de la codificacion turbo, es posible aumentar latasa de datos en un 135 por ciento para una distancia de cable de 400metros.

Figura 5.4: R2 para distancia de cable igual a 400 metros

Distancia 200m

Para una distancia de cable de 200 metros la tasa de datos establecida porProfibus es de 1,5Mbps, es decir una tasa de bits codigo de 3Mbps, lo cualcorresponde a un ancho de banda de aproximadamente 1,5MHz, por lo quela curva de la figura 5.3 sufre un cambio de pendiente. La nueva pendientees 0,48dB/100KHz, y considerando que en este caso R1 = 1500Kbps, esposible reescribir la ecuacion 5.13 como:

Page 68: Profibus Turbo Code - Pablo Briff

Profibus Turbo 65

7,37 = 0,48R2 − 1500

100+ 10 log

R2

1500(5.15)

Nuevamente, resolviendo graficamente en Matlab la ecuacion 5.15 escritaen forma homogenea, se obtiene R2 = 2,554MHz, es decir, 1,7 veces la tasade datos establecida por la norma, tal como se observa en la figura 5.5. Esdecir, se puede incrementar la tasa de transmision impuesta por la normaProfibus en un 70 por ciento.

Figura 5.5: R2 para distancia de cable igual a 200 metros

Distancia 100m

Se analizara por ultimo el caso de distancia de cable igual a 100 me-tros. La norma Profibus establece varias tasas de datos para dicha distancia,por lo que se elegira la mas alta, 12Mbps, es decir una tasa de bits codigode 24Mbps, lo cual corresponde a un ancho de banda de aproximadamente

Page 69: Profibus Turbo Code - Pablo Briff

Profibus Turbo 66

12MHz. Debido a que la curva de atenuacion en funcion de la frecuencia con-serva la pendiente de 0,48dB/100KHz hasta los 100 MHz, para encontrar lanueva tasa de datos R2 es necesario resolver la siguiente ecuacion:

7,37 = 0,48R2 − 12000

100+ 10 log

R2

12000(5.16)

Como en los casos anteriores, resolviendo graficamente en Matlab la ecua-cion 5.16 escrita en forma homogenea, se obtiene R2 = 13,43MHz, es decir,1,12 veces la tasa de datos establecida por la norma, tal como se observa enla figura 5.6. Es decir, se puede incrementar la tasa de transmision impuestapor la norma Profibus en un 12 por ciento.

Figura 5.6: R2 para distancia de cable igual a 100 metros

Es claro que para una distancia de cable de 100 m y tasa de datos de12 Mbps no se obtienen grandes beneficios practico al introducir latecnica de codificacion turbo. La imposibilidad de una mejora a tan elevadafrecuencia es producto de la gran atenuacion del medio fısico empleado

Page 70: Profibus Turbo Code - Pablo Briff

Profibus Turbo 67

y su gran sensibilidad para variaciones de frecuencia en el rango de los MHz.

Sin embargo, la tecnica introducida en esta tesis tiene como objetivo me-jorar tasas de datos para grandes distancias de cable, mucho mayores que100 metros, por lo que este ultimo no es un caso de interes.

Es importante contrastar los casos estudiados en esta seccion, donde seconsidera a la tasa de datos R una variable, por lo que la atenuacion parauna distancia constante sufre una gran variacion con R, mientras que en laseccion 5.4.1 la tasa de datos es constante, concluyendo que la atenuacion delmedio fısico de Profibus es mucho mas sensible a las variaciones de frecuenciaque a las variaciones de distancia, para distancias del orden de los 100 o 1000metros.

Page 71: Profibus Turbo Code - Pablo Briff

Capıtulo 6

Simulaciones

6.1. Modelo en Simulink

A continuacion se presenta el modelo implementado en Matlab 7.1 (R14)en el paquete de simulacion de modelos Simulink1.

En la figura 6.2 puede observarse una fuente de Bernoulli que arroja “1”o “0” en funcion de la probabilidad de cero p0; la misma es utilizada comofuente aleatoria de datos. Los datos generados por este bloque se utilizanpara:

• transmitirlos en forma sistematica hacia el canal de comunicaciones.

• ingresarlos a un codificador RSC para su posterior transmision luegode la seleccion de redundancia, realizada por el bloque Puncture.

• ingresarlos al interleaver para codificarlos con un codificador RSC identi-co al caso anterior para su posterior transmision luego de la seleccionde redundancia.

Los datos son entrelazados con un bloque Interlacer e ingresados en for-mato polar al canal AWGN, al cual se le pasa como parametro la relacionEs

N0= Eb

N0− 3dB por ser un codigo de tasa k = 1/2, ya que el canal opera

sobre los bits de codigo y no de fuente.

1A pesar que Simulink es una herramienta muy practica ya que se obtiene visualmentela informacion de la configuracion, sufre de problemas de retardos al invocar las funcionesS que corren en los bloques; inclusive, la implementacion de lazos de realimentacion escomplicada y puede haber errores en tiempo de ejecucion, por lo que la mayor parte de lassimulaciones se han realizado sobre codigo fuente que replica la configuracion mostrada enesta seccion. Dicho codigo fuente puede ser encontrado en el Apendice D.

68

Page 72: Profibus Turbo Code - Pablo Briff

Simulaciones 69

Al llegar al receptor, los datos son desentrelazados mediante el bloquePuncture y se rellena con ceros en las posiciones de redundancias donde serealizo puncturing en el transmisor. El conjunto de datos diferenciado pordatos sistematicos y las redundancias de ambos codificadores ingresan al blo-que Turbo Decoder donde corre la logica de iteraciones y los algoritmos MAP.

La figura 6.2 describe los componentes del decodificador turbo. Puedendistinguirse los decodificadores Dec1 y Dec2, sobre los cuales corren los algo-ritmos de decodificacion Log-MAP introducido en la seccion 2.4.9. El codigofuente de Matlab puede encontrarse en el Apendice D2. Las entradas de Dec1son los datos sistematicos X, la redundancia del codificador sin interleaverY 1 y la informacion extrınseca entregada por Dec2 pasada por un deinterlea-ver, conectada mediante el bloque DataStoreRead, cuyo valor inicial es cero.Las entradas de Dec2 son los datos sistematicos X pasados por el interleaver,la redundancia del codificador con interleaver Y 2 y la informacion extrınsecaentreagada por Dec1 pasada por un interleaver. El bloque ForIterator es elencargado de repetir la ejecucion del bloque Turbo Decoder tantas veces sehaya configurado en dicho bloque.

Finalmente, a la salida del bloque Turbo Decoder se realiza decision duracon un umbral de decision en cero, obteniendose los datos decodificados enbinario, para su posterior contraste con los datos originados en la fuente y eltrazado de la curva BER vs. Eb/N0.

2Sin duda los algoritmos MAP son los de mayor peso y relevancia en esta tesis, sinembargo se incluyen todos los codigos fuentes de los archivos que contribuyen a obtenerlos resultados de las simulaciones mostradas en este capıtulo.

Page 73: Profibus Turbo Code - Pablo Briff

Simulaciones 70

Esquema de transmision/recepcion

Figura 6.1: Esquema de transmision/recepcion con codificacion turbo

Page 74: Profibus Turbo Code - Pablo Briff

Simulaciones 71

Decodificacion turbo

Figura 6.2: Componentes del bloque Turbo Decoder

Page 75: Profibus Turbo Code - Pablo Briff

Simulaciones 72

6.2. Grados de libertad

La obtencion de resultados favorables en las simulaciones no es una tareasimple, aun cuando el modelo implementado sea correcto, ya que los mismosvarıan de acuerdo a las condiciones de simulacion. En el caso de la respuestade los codigos turbo, es decir, curvas de BER vs. Eb/N0, la performancees muy dependiente de diversas variables y grados de libertad, listados acontinuacion:

• Tamano de la trama

• Tipo de interleaver

• Longitud restringida y polinomio generador del codificador RSC

• Cantidad de iteraciones del lazo de decodificacion

De todos estos grados de libertad, el tamano de la trama queda fijo porel protocolo en cuestion, en este caso Profibus (2816 bits), por lo que no esposible variar dicha cantidad para obtener mejores resultados.

En cuanto al tipo de interleaver, generalmente se suele utilizar interlea-vers en bloque para tamanos de tramas menores a 1000 bits, dejandose eluso de interleavers aleatorios cuando la trama supere dicho valor, por lo quese propone en esta tesis el uso de interleavers aleatorios3 con capacidadde almacenamiento igual al tamano de la trama.

En cuanto al polinomio generador y la longitud restringida, existen infini-dad de combinaciones posibles, ya sea para generar la salida o la realimenta-cion, aumentando o disminuyendo la memoria del codificador, aunque luegode repetidos intentos y simulaciones, y en congruencia con lo explicitado por[5], el codificador que exhibe mejor respuesta es aquel con longitud restringi-da K = 5 y polinomio generador G = 21, F = 37 expresado en octal, dondeG representa las conexiones de salida y F las conexiones de realimentacion;el esquema de dicho codificador fue introducido en el capıtulo 2. Adicional-mente, se ha tomado como referencia los resulados obtenidos en [11] paradistintos tipos de generadores, longitudes restringidas y tamanos de tramas,concluyendo que los codigos de tasa k = 1/3 presentan mejor respuesta quelos propuestos en esta tesis (k = 1/2), a expensas de un mayor ancho debanda y retardo de procesamiento, por lo que no se considera viable dicha

3Recordar que en realidad los interleavers son pseudoaleatorios, de manera de poderrealizar el proceso inverso de deinterleaving.

Page 76: Profibus Turbo Code - Pablo Briff

Simulaciones 73

opcion. Asimismo, los resultados obtenidos por [8], observados en la figura6.3, fueron igualmente satisfactorios a expensas de un tamano de trama de123x123 = 15129 bits, por lo que no es posible implementar dicha solucionen el esquema propuesto en esta tesis.

Figura 6.3: Resultados de las simulaciones realizadas por [8]

Entonces, la cantidad de iteraciones sera la variable de ajuste porexcelencia para obtener los resultados propuestos en el capıtulo 5.

Page 77: Profibus Turbo Code - Pablo Briff

Simulaciones 74

6.3. Resultados de las simulaciones

6.3.1. Algoritmo Log-MAP

En esta seccion se presentan los resultados de las simulaciones realizadasen Matlab, habiendo implementado el algoritmo de decodificacion Log-MAP.

El objetivo es obtener una BER = 10−4 con una una Eb/N0 = 1dB, conuna cantidad de iteraciones menor o igual a 10. En todos los casos la longitudde la trama se mantiene constante e igual a 2816 bits.

Codificador con K = 3

Figura 6.4: K=3, G=7, F=5, 100 tramas transmitidas

La figura 6.4 muestra la curva de BER vs. Eb/N0 para un codificadorcon un polinomio generador igual a [7,5] con longitud restringida K = 3.Puede observarse que los resultados obtenidos distan ampliamente de losdeseados luego de 5 iteraciones, ya que se obtiene una BER = 10−4 para unaEb/N0 = 5,5dB. Por dicha razon, y vislumbrando la necesidad de realizarmuchas mas iteraciones para abordar al objetivo, se ha decidido cambiar elcodificador de K = 3 por uno de K = 5, en busca de mejores resultados.

Page 78: Profibus Turbo Code - Pablo Briff

Simulaciones 75

Codificador con K = 5

En la figura 6.5 se observa que a Eb/N0 = 1dB se obtiene una BER de2 · 10−4 para 8 iteraciones y de 2 · 10−5 para 10 iteraciones. De esta manera,se puede dar por alcanzado el objetivo de BER = 10−4 a los fines practicosluego de 8 iteraciones. Realizando 2 iteraciones mas se supera ampliamenteel objetivo planteado, aunque a costa de un incremento en el retardo deprocesamiento.

Figura 6.5: K=5, G=21, F=37, 100 tramas transmitidas

El hecho de que con el codificador de K = 5 se consiga una mejor per-formance que con el codificador de K = 3 se debe a que el primero es unafuente de Markov de 16 estados mientras que el segundo solo posee 4 estados,por lo que las estimaciones hacia adelante y hacia atras vistas en el capıtulo2 son mas exactas para el codificador de K = 5 que para el de K = 3. Sinembargo el retardo de procesamiento es mayor en el caso del codificador de16 estados que para el de 4 estados, ya que el algoritmo MAP rastrea haciaadelante y hacia atras el trellis, por lo que el codificador con mayor memorianecesitara rastrear mayor cantidad de ramas.

Page 79: Profibus Turbo Code - Pablo Briff

Simulaciones 76

6.3.2. Algoritmo Max-Log-MAP

En esta seccion se muestran los resultados obtenidos a partir de imple-mentar los algoritmos Max-Log-MAP en Matlab. Debido a que es conocido surendimiento suboptimo repecto de las versiones MAP y Log-MAP, no tendrıasentido simular para un codificador de K = 3 ya que es esperable obtenerpeores resultados que los vistos en la figura 6.4, por lo que solo se han reali-zado simulaciones para un codificador con K = 5, para 1,7,8 y 10 iteraciones,de manera de poder contrastar los resultados con aquellos presentados en lafigura 6.5.

Codificador con K = 5

En la figura 6.6 se observa que a Eb/N0 = 1dB la BER todavıa se en-cuentra cercana 10−1 incluso luego de 10 iteraciones. Para 10 iteraciones, seobtiene una BER = 10−4 para una Eb/N0

∼= 1,4dB, por lo que la solucionen este caso tiene un rendimiento bastante inferior al observado para el casode Log-MAP y 8 iteraciones. De esta manera, se concluye que el algoritmoLog-MAP tiene mejor performance que la version Max-Log-MAP, a expensasde mayor retardo de procesamiento.

Figura 6.6: K=5, G=21, F=37, 100 tramas transmitidas

Page 80: Profibus Turbo Code - Pablo Briff

Capıtulo 7

Conclusiones

En esta tesis se ha introducido un esquema innovador donde se proponela utilizacion de la codificacion y decodificacion turbo para redes de pro-tocolos industriales, tomando como ejemplo el protocolo estandar Profibus.Este nuevo concepto de codificacion turbo para redes de datos industrialesno es privativo del protocolo, ya que la tecnica opera sobre la capa fısica delmismo, pudiendo implementarse en otros protocolos ademas del estudiado enesta tesis.

Se han planteado dos escenarios bien discriminados: en el primero, se in-tencionaba incrementar la maxima distancia del cable para una determinadatasa de datos; en el segundo, se mantuvo constante la distancia del cable,incrementando la tasa de transferencia de datos, hasta alcanzar en todos loscasos una BER = 10−4 para una relacion Eb/N0 = 1dB.

Los resultados alcanzados mediante planteos teoricos y simulaciones de-muestran que es posible incrementar hasta 7,61 veces la maxima distan-cia del cable explicitada en la norma del protocolo para 1,5 Mbps, mientrasque es factible aumentar hasta un 135 por ciento la tasa de transferenciade datos impuesta por la norma Profibus para una distancia de cable de 400metros.

Sin embargo, tal vez el resultado obtenido mas destacable es aquel quedenota la posibilidad de extender la maxima distancia de cable a 2291 me-tros para una tasa de 500 Kbps, superando ası la maxima distancia impuestapor Profibus PA (1900 metros, a una tasa de 31,25 Kbps), transmitiendo en-tonces a una mayor distancia con una tasa de datos 16 veces superior.

77

Page 81: Profibus Turbo Code - Pablo Briff

Conclusiones 78

Tambien se ha comprobado que es mucho mas beneficioso aumentar ladistancia del cable a tasa constante que el proceso inverso, ya que la curvade atenuacion en funcion de la frecuencia del medio fısico es muy sensiblea variaciones de frecuencia en el orden de los MHz. De hecho, aumentar latasa de datos para una longitud de cable constante no retribuye una granmejora, al menos en comparacion con el incremento de la maxima distanciade cable para tasa de datos constante. Afortunadamente, el campo industriales un escenario muy beneficioso para este tipo de relaciones de compromiso,ya que al manejarse distancias del orden de los 1000 metros es generalmentemas provechoso incrementar la distancia de transmision que la tasa de datos.

Las simulaciones arrojaron resultados satisfactorios para el esquema pro-puesto, obteniendose una BER = 2 · 10−4 luego de 8 iteraciones para unalongitud de trama de 2816 bits, utilizando codificadores de longitud restrin-gida K = 5, implementandose el algoritmo Log-MAP. Se ha analizado laposibilidad de implementar la version Max-Log-MAP con un esquema dehasta 10 iteraciones, habiendo encontrado un rendimiento bastante inferioral algoritmo Log-MAP, por lo que se propone la implementacion de este ulti-mo, en perjuicio del retardo de procesamiento.

Adicionalmente, el impacto sobre el precio final de cada equipo que im-plemente Profibus Turbo es menor al 1 por ciento de su valor actual, lo cualposibilita la implementacion desde el punto de vista economico.

Resumiendo, es posible mejorar notablemente la performance del proto-colo Profibus mediante la introduccion de la tecnica de codificacion y deco-dificacion turbo, y un adecuado analisis espectral de la senal transmitida enel canal de comunicaciones.

Esta tesis deja abierta una puerta hacia la introduccion de la codificacionturbo en el campo de las comunicaciones industriales. Si bien este trabajo seha enfocado en los protocolos cableados, con el advenimiento de las versionesinalambricas de los protocolos industriales, este nuevo concepto sera proba-blemente recibido con gran aceptacion en futuras aplicaciones.

Page 82: Profibus Turbo Code - Pablo Briff

Apendice A

Fundamentos matematicos

A.1. Lımite de Shannon

Segun el teorema de Nyquist, la capacidad del canal C y el ancho debanda utilizado W se relacionan mediante la siguiente ecuacion [6]:

C = 2W log2 M (A.1)

C = 2Wk (A.2)

C

W= 2k (A.3)

donde k es la tasa del codigo y M es la cantidad de sımbolos del alfabetocodigo.En un canal AWGN (Aditive White Gaussian Noise), se define la capacidadde Shannon como:

C = W log2

(1 +

CEb

WN0

)(A.4)

Utilizando la ecuacion A.3 y reemplanzando en A.4 se obtiene:

Eb

N0

≥ 22k − 1

2k(A.5)

Por lo tanto, para un codigo con tasa k=1/2, se obtiene la siguienteinecuacion, con la Eb/N0 medida en veces:

Eb

N0

≥ 1 (A.6)

79

Page 83: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 80

De la ecuacion anterior se desprende que para un codigo con tasa k = 1/2el lımite teorico de la relacion Eb/N0 es 0dB para transmision libre de errores.

Es importante no confundir este resultado con el conocido lımite de Shan-non, el cual surge de suponer que la senal transmitida puede ocupar un anchode banda infinito reduciendo la eficiencia espectral C/W a cero, lo cual esequivalente a decir que la tasa de codigo k tiende a cero. Este lımite estableceque la energıa del bit de fuente, Eb, debe cumplir lo siguiente:

lımk→0

Eb

N0

= lımk→0

22k − 1

2k= −1,59dB (A.7)

El lımite expresado por la ecuacion A.7 establece una cota inferior parala energıa de bit Eb frente a una densidad espectral de potencia de ruido N0,para establecer una comunicacion confiable libre de errores.

A.2. Expresion de la LLR del canal

Segun [7], considerando un canal AWGN y teniendo en cuenta transmisionpolar xi = ±1, las probabilidades descriptas en 2.4 son iguales a:

P (yi|xi = +1) =1√2πσ

e−Eb2σ2 (yi−1)2

P (yi|xi = −1) =1√2πσ

e−Eb2σ2 (yi+1)2

L(yi|xi) = lne−

Eb2σ2 (yi−1)2

e−Eb2σ2 (yi+1)2

= − Eb

2σ2(yi − 1)2 +− Eb

2σ2(yi + 1)2

= 2Eb

σ2yi

A.3. Probabilidad a priori de dk

Refiriendonos a la ecuacion 2.2, reemplazando bi por dk, se tiene:

L(dk) = ln

(P (dk = +1)

P (dk = −1)

)(A.8)

Ademas siempre debe cumplirse:

Page 84: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 81

P (dk = +1) = 1− P (dk = −1) (A.9)

Despejando resulta [7]:

eL(dk) =P (dk = +1)

1− P (dk = −1)(A.10)

Finalmente se llega a una expresion general de la probabilidad a prioriP (dk) del bit dk:

P (dk = ±1) =e−L(dk)/2

1 + e−L(dk)edkL(dk)/2 = C1e

dkL(dk)/2 (A.11)

con dk = ±1 y C1 una constante cualquiera no nula que no interesa parael proceso de decodificacion.

A.4. Expresion extendida de P (Y |X)

Sea una fuente de Markov que genera m salidas codificadas (incluyendolas posibles salidas sistematicas). Consideremos la probabilidad condicionalde recibir la secuencia Y dado que se ha transmitido la secuencia X:

P (Y |X) =m∏

i=1

P (yik|xik) (A.12)

=m∏

i=1

1√2πσ

eEb2σ2

∑m

i=1(yik−xik)2 (A.13)

=1

(√

2πσ)me

Eb2σ2

∑m

i=1(yik

2+xik2)e

Eb2σ2

∑m

i=1(yikxik) (A.14)

= C2eEb2σ2

∑m

i=1(yikxik) (A.15)

donde i representa al ındice de la salida codificada mientras que k re-presenta el tiempo. En el caso de un codificador como el de la figura 2.2,k = 1, 2, 3 representando k = 1 a la salida sistematica, k = 2 la salida delprimer codificador y k = 3 la del segundo codificador (el que hace uso delinterleaver).

A.5. Expresion de γk

Refiriendonos a la expresion de γk en la ecuacion 2.13, y combinandolacon las ecuaciones A.11 y A.15 se tiene:

Page 85: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 82

γk(sk−1 → sk) = P (dk)P (yk|xk) (A.16)

= CedkL(dk)/2eLc2

∑m

i=1(yikxik) (A.17)

= CedkL(dk)/2eLc2

(y1kx1k)eLc2

∑m

i=2(yikxik) (A.18)

= CedkL(dk)/2eLc2

(y1kdk)eLc2

∑m

i=2(yikxik) (A.19)

de donde se observa que x1k = dk por ser este el dato sistematico.

Renombrando el ultimo termino de la ecuacion A.19 se obtiene:

γk(sk−1 → sk) = CedkL(dk)/2eLc2

(y1kdk)γk extr(sk−1 → sk) (A.20)

A.6. Expresion de αk

Refiriendonos a [7], quien utiliza la notacion Y n1 para describir la secuencia

y1, ..., yn, se desarrolla:

αk(sk) = P (Y, sk) (A.21)

= P (Y k−11 , yk, sk) (A.22)

=U−1∑

sk−1=0

P (sk−1, sk, Yk−11 , yk) (A.23)

=U−1∑

sk−1=0

P (sk−1, Yk−11 )P (sk, yk|sk−1Y

k−11 ) (A.24)

=U−1∑

sk−1=0

αk−1γk(sk−1 → sk) (A.25)

A.7. Expresion de βk

βk(sk) =U−1∑

sk+1=0

P (sk+1, Ynk+1|sk) (A.26)

=U−1∑

sk+1=0

P (sk+1, Yk+1|sk)P (Y nk+2|sk+1) (A.27)

=U−1∑

sk+1=0

βk+1(sk+1)γk(sk+1 → sk) (A.28)

Page 86: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 83

A.8. Transformada de Fourier de un pulso

rectangular

Consideremos un pulso g(t) de duracion T y amplitud unitaria:

g(t) =

1 si |t| < T/20 si |t| > T/2

(A.29)

Su correspondiente transformada de Fourier es [4]:

G(ω) = T sinc(ωT

2π) (A.30)

Es decir, el primer cero de la transformada se encuentra en ω = 2πT

, porlo que f = ω

2π= 1

T= R para dicha situacion, donde R es la tasa de datos.

Tomando como ejemplo una tasa de R = 1,5Mbps se grafica la transfor-mada de Fourier del pulso asociado, como puede verse en la figura A.1. Puedeobservarse que el primer cero de la sinc ocurre para f = R = 1,5MHz1.

Consideremos ahora una secuencia arbitraria de bits, a una tasa R bps.El peor caso sucede cuando dicha secuencia es alternada, ya que el ancho debanda para dicha tasa de datos es maximo. Una secuencia de “1” y “0” a unatasa R bps alternados puede formarse a partir de convolucionar la senal en eltiempo con un tren de deltas de Dirac espaciadas un tiempo 2/R entre sı, demanera que cada semiperıodo representa un bit. Convolucionar dos senalesen el dominio del tiempo equivale a multiplicar sus transformadas de Fourieren el dominio de la frecuencia, por lo que se estara multiplicando el espectrodel pulso original por el correspondiente al tren de deltas. Debido a que untren de deltas de Dirac en el tiempo se transforma en otro tren de deltasen el espectro, se estara muestreando la senal original en el espectro, y si lasenal en el tiempo es suficientemente larga como para considerarla periodi-ca, dichas muestras representaran los coeficientes del desarrollo en series deFourier de la senal periodica en cuestion.

Sea c(t) la secuencia alternada periodica y p(t) el tren de deltas de Diracespaciados en 2/R en el tiempo, se obtiene:

c(t) = g(t) ∗ p(t) =+∞∑

k=−∞r(t) ∗ δ(t− 2k

R) (A.31)

1R se mide en bits/seg, mientras que f se mide en Hz, aunque por simplicidad denotacion se igualan las magnitudes numericamente.

Page 87: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 84

Figura A.1:

Sea P (ω) la transformada de Fourier de p(t), su expresion es:

P (ω) =4π

R

+∞∑k=−∞

δ(ω − kπR) (A.32)

De esta manera, la tranformada de c(t), C(ω) es:

C(ω) = πRG(ω = πR) (A.33)

Debio a que ω = 2πf , muestrear en ω = kπR es equivalente a hacer-lo en f = kR/2. El espectro normalizado resultante de la senal periodicase muestra en la figura A.2. Notese que solo aparecen los armonicos imparesdel tipo (2k+1)R/2, con k = 0, 1, 2, ..., n por tratarse de una senal cuadrada.

Para determinar el ancho de banda de la senal, se utilizara el criterio delos 3dB de caida de potencia, analogo a plantear la caida de la amplitud a1/√

2 ∼= 0,707 del valor pico del modulo de la transformada. Siguiendo con elejemplo de la secuencia de 1,5Mbps, puede verse en la figura A.2 que para elprimer armonico en f = R/2 = 750KHz la amplitud vale aproximadamente0,65, siendo el valor pico 1 debido a que se ha normalizado el grafico. De

Page 88: Profibus Turbo Code - Pablo Briff

Fundamentos matematicos 85

esta manera, el ancho de banda de la senal se puede aproximar al primerarmonico, es decir 750KHz en banda base.

Figura A.2:

Generalizando, para una senal en banda base de R bps es posible aproxi-mar su ancho de banda de 3dB a R/2 Hz.

Razonando en forma distinta a la habitual, si se piensa en un canal li-mitado a R/2 Hz, segun el teorema de la capacidad de Nyquist descripto enla ecuacion A.1, es posible transmitir una cantidad de informacion igual a Rbps (sin codificacion), por lo que es coherente pensar que una senal de R bpspuede ser limitada a un ancho de banda de R/2 Hz, tal como se ha planteadoen esta seccion.

Page 89: Profibus Turbo Code - Pablo Briff

Apendice B

Interfaz RS485

Introduccion

La interfaz RS485, al igual que la interfaz RS422, ha sido desarrolladapara la transmision en serie de datos de alta velocidad a grandes distancias yencuentra creciente aplicacion en el sector industrial. Mientras que la RS422solo permite la conexion unidireccional de hasta 10 receptores en un trans-misor, la RS485 esta concebida como sistema Bus bidireccional con hasta 32hosts. Fısicamente las dos interfaces solo se diferencian mınimamente. El BusRS485 puede instalarse tanto como sistema de 2 hilos o de 4 hilos. Dado quevarios transmisores trabajan en una lınea comun, tiene que garantizarse conun protocolo que en todo momento este activo como maximo un transmisorde datos.La norma RS485 define solamente las especificaciones electricas para recep-tores y transmisores diferenciales en sistemas de bus digitales. La norma ISO8482 estandariza ademas la topologıa de cableado con una longitud maximade 500 metros.

Bus de 2 hilos RS485

El Bus de 2 hilos RS485 se compone segun la figura B.1 del cable propiode Bus con una longitud maxima de 500 metros. Los hosts se conectan aeste cable a traves de una lınea adaptadora, denominada stub, de maximo 5metros de largo. La ventaja de la tecnica de 2 hilos reside esencialmente enla capacidad multimaster, en donde cualquier participante puede intercam-biar datos en principio con cualquier otro. El bus de 2 hilos es basicamenteapto solo half-duplex; es decir, puesto que solo hay a disposicion una vıa detransmision, siempre puede enviar datos un solo participante. Solo despuesde finalizar el envıo, pueden por ejemplo responder otros hosts. La aplica-

86

Page 90: Profibus Turbo Code - Pablo Briff

Interfaz RS485 87

cion mas conocida basada en la tecnica de 2 hilos es el protocolo industrialPROFIBUS.

Figura B.1: Esquema de bus RS485 de dos hilos [19]

Bus de 4 hilos RS485

La tecnica de 4 hilos usada, por ejemplo, por el bus de medicion DIN(DIN 66 348) solo puede ser usada por aplicaciones Master/Slave. Conformea la figura B.2 se cablea aquı la salida de datos del maestro a las entradasde datos de todos los esclavos. Las salidas de datos de los esclavos estanconcebidas conjuntamente en la entrada de datos del maestro.

Figura B.2: Esquema de bus RS485 de cuatro hilos [19]

Medio fısico de transmision

Los datos en serie se transmiten sin referencia de masa como diferencia detension entre dos lıneas correspondientes. Para cada senal a transmitir existe

Page 91: Profibus Turbo Code - Pablo Briff

Interfaz RS485 88

un par de conductores que se compone de una lınea de senales invertida y otrano invertida. La lınea invertida se caracteriza por regla general por el ındice“A” o “-”, mientras que la lınea no invertida lleva “B” o “+”. El receptorevalua solamente la diferencia existente entre ambas lıneas, de modo que lasperturbaciones de modo comun en la lınea de transmision no falsifican lasenal util. Los transmisores RS485 ponen a disposicion bajo carga un nivelde salida de ±2V entre las dos salidas; los modulos de recepcion reconocenel nivel de ±200mV como senal valida. La asignacion tension de diferenciaal estado logico se define del modo siguiente:

A−B < −0,3V = MARK = OFF = Nivel Logico 1 (B.1)

A−B > +0,3V = SPACE = ON = Nivel Logico 0 (B.2)

Longitud de lıneas

Usando un metodo de transmision simetrico en combinacion con cablesde pares de baja capacidad y amortiguacion (par trenzado o twisted pair,TP) pueden realizarse conexiones muy eficaces a traves de una distancia dehasta 500m con altas tasas de transmision. El uso de un cable TP de altacalidad evita por un lado la diafonıa entre las senales transmitidas y por elotro reduce adicionalmente el efecto del apantallamiento, la sensibilidad dela instalacion de transmision contra senales perturbadoras entremezcladas.En conexiones RS485 es necesario un terminador al final del bus para obligaral nivel de pausa en el sistema cuando no este activo ningun transmisor dedatos, y evitar adicionalmente posibles reflexiones debidas a desadaptacionesdel bus.

Page 92: Profibus Turbo Code - Pablo Briff

Apendice C

Descripcion del protocoloProfibus

C.1. Servicios de capa de enlace

La capa de enlace le ofrece cuatro tipos de servicios a las capas superiores:tres servicios de tipo asincronico y uno cıclico (o servicio de votacion). Todoslos servicios excepto el servicio cıclico le permiten al usuario distinguir entredos prioridades: informacion de alta prioridad (importante) e informacion debaja prioridad (menos importante). El tipo de alta prioridad esta dedicadoal intercambio de informacion esporadica sensible al tiempo y crıtica parala seguridad (por ejemplo, alarmas), mientras que el tipo de baja prioridades usado para todo lo demas. Los servicios cıclicos pertenecen a la prioridadbaja, sin embargo, las reglas de asignacion de ancho de banda son diferentesa aquellas destinadas a informacion ordinaria de baja prioridad.

Aunque no esta claramente especificado en el estandar, es razonable asu-mir para los tipos de servicios asincronicos que dentro de cada tipo de prio-ridad los pedidos del servicios son procesados en orden “el primero que entraes el primero que sale” (FIFO)[14], sin tener en cuenta el tipo de servicio.En otras palabras, conceptualmente hay dos filas de pedidos, una para pedi-dos de baja prioridad y otra para pedidos de alta prioridad. Cada pedido enprincipio, sin tener en cuenta su tipo de servicio, es colocado dentro de unode estas filas de acuerdo a su prioridad. Para los servicios de tipo cıclicos, semantiene una especie de tabla de votacion.

Para la discusion sobre servicios se usara la terminologıa del modelo dereferncia OSI: se accede a los servicios a traves de un punto de acceso de ser-

89

Page 93: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 90

vicio (SAP), y generalmente cuatro servicios primitivos estan involucradosen la comunicacion entre el proveedor del servicio y el usuario del mismo:pedido, indicacion, respuesta y confirmacion. Como convencion, al referirnosa un servicio primitivo perteneciente a un servicio A, se usara el terminoA.primitivo, por ejemplo, FDL DATA ACK.REQUEST. Para todos los ser-vicios hay una distincion entre los roles de la estacion iniciadora y la estacioncontestadora. El tratamiento del servicio es iniciado cuando una entidad dela capa de aplicacion (llamada usuario FDL) en una estacion iniciadora haceun pedido primitivo. Es mas, una unidad de datos de protocolo (PDU) es laforma de comunicacion entre dos entidades pares.

Cuadro C.1: Servicios FDL [20]

Servicio SDA SDN SRD CSRDACK inmediato sı no sı sı

Orientado a conexion no no no configuracionconexion local

Datos en ACK no - sı sıOcurrencia acıclica acıclica acıclica cıclica

Un atributo esencial de varios de los servicios primitivos son las infor-maciones de direccion. La informacion de direccion consiste en un byte dedireccion y un punto de acceso de servicio opcional (SAP). Profibus soportatres tipos de direcciones: una direccion unicast tiene un byte de direcion conun valor entre 0 y 126 (por ello, el numero de estaciones de una LAN Profibuses restringido), y opcionalmente un SAP puede ser usado. Para direccionesmulticast y direcciones de broadcast el byte de direcion tiene un valor de 127y la direccion de grupo/direccion multicast es seleccionada a traves del valorSAP.

Para cada pedido primitivo exactamente una confirmacion primitiva escreada, la cual contiene informacion sobre el exito del pedido. Por la presun-cion FIFO discutida anteriormente, dentro de una misma clase de prioridadlas primitivas de confirmacion ocurren en el mismo orden que las correspon-dientes primitivas de pedido. El estandar perscribe que una vez iniciado elpaquete de transmision, no puede ser interrumpido por otros pedidos. Dichode otra manera: Profibus no permite prerrogativas al manejar pedidos. Estapropiedad es llamada propiedad de atomicidad.

Profibus no utiliza respuestas primitivas. Todos los servicios estan di-senados de manera que la instancia de FDL de una estacion contestadora

Page 94: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 91

puede generar tramas de respuesta inmediatamente, sin interactuar con ins-tancias de capas superiores.

Los servicios de Profibus son explicados en las secciones siguientes, uncorto resumen de los servicios puede verse en el cuadro C.1.

SDA: Envıo de informacion con acuse de recibo

El servicio de envıo de informacion con acuse de recibo (SDA) es basica-mente un servicio de datagrama semi-confiable. Un bosquejo de sus interac-ciones puede verse en la figura C.1.

El usuario FDL en la estacion iniciadora es quien inicia este servicio. Esteprepara un bloque de datos de hasta 246 bytes de largo, elige una prioridad,provee el byte de direccion de destino y punto de acceso a servicio destino(DSAP) para que la estacion objetivo y su propio SAP como punto de ac-ceso de servicio fuente (SSAP). Toda esta informacion es transmitida con elpedido de servicio primitivo FDL DATA ACK a la instancia FDL a travesdel SAP local. La direccion de destino es solicitada a la direccion unicast.

Tiempo despues la instancia FDL local intenta enviar el bloque de datosdentro de una unica trama a la estacion contestadora. Quien responde tieneque acusar recibo de la trama usando un acuse de recibo de capa MAC inme-diato. El acuse de recibo no transporta informacion. Si el iniciador no reciberespuesta dentro de un tiempo pre-especificado (llamado slot time, TSL), esterepite la trama.

El numero total de pruebas esta acotado. Cuando el resultado de la trans-mision de prueba es conocido, es decir, un acuse de recibo es recibido o elmaximo numero de pruebas es agotado, el usuario FDL local es informadosobre este resultado con la primitiva FDL DATA ACK.CONFIRM. Adicio-nalmente, esta primitiva contiene la informacion de direccion y nivel de prio-ridad pasado con el correspondiente primitivo FDL DATA ACK.REQUEST .

Cuando la instancia FDL en el iniciador ha comenzado a procesar unaprimitiva FDL DATA ACK.REQUEST X, es necesario conseguir el resul-tado tan rapido como sea posible,es decir, no esta permitido procesar otrospedidos Y o pasar el token mientras se esta procesando X.

En la estacion contestadora, a la primera recepcion de una trama de da-tos se genera una primitiva FDL DATA ACK.INDICATION, la informaciones transmitida como un parametro. Si quien responde identifica la trama

Page 95: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 92

Figura C.1: Interacciones del servicio SDA [14]

como retransmitida (por el protocolo de bit alternado), es reconocida su re-cepcion y silenciosamente descartada. La capa FDL asegura que para cadapedido primitivo FDL DATA ACK se genera, como maximo, una indica-cion primitiva FDL DATA ACK y exactamente una confirmacion primitivaFDL DATA ACK.

SDN: Envıo de informacion sin acuse de recibo

El servicio de envıo de informacion sin acuse de recibo es basicamente unservicio de datagrama sin aviso de recepcion, aplicable a direcciones broad-cast, unicast y multicast. Un bosquejo de las interacciones puede ver en lafigura C.2.

El usuario en el iniciador transmite una primitiva FDL DATA.REQUESTa la instancia FDL. Esta primitiva carga los mismos parametros que unaprimitiva FDL DATA ACK.REQUEST descripta en la seccion anterior. Ladireccion de destino puede ser unicast, multicast o broadcast. Luego, la ins-tancia MAC transmite una trama con la informacion y luego produce unaprimitiva FDL DATA.CONFIRM para el usuario FDL local. Todas las es-taciones a las cuales se dirige y exitosamente reciben la trama, crean unaindicacion primitiva FDL DATA y entrega la informacion a su usuario FDL,como resultado, no confirmando ninguna recepcion adecuada. Ninguna esta-cion tiene permitido enviar acuse de recibo.

Page 96: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 93

Figura C.2: Interacciones del servicio SDN [14]

SRD: Envıo y respuesta con datos

El servicio de envıo y recepcion de datos (SRD) es basicamente el mis-mo que el servicio SDA, sin embargo, el acuse de recibo enviado por quienresponde puede llevar informacion consigo1. Un bosquejo de las interaccionespuede verse en la figura C.3.

Figura C.3: Interacciones del servicio SRD [14]

1Algunos autores, como por ejemplo [3], denominan a esta tecnica piggybacking.

Page 97: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 94

El usuario FDL en la estacion contestadora puede colocar una cantidadde informacion (hasta 246 bytes) junto con un SAP asociado y una prioridaddentro un buffer interno de la instancia FDL. Esto se hace usando la primitivaFDL REPLY UPDATE.REQUEST . Luego de llenar el buffer, la instanciaFDL genera la primitiva FDL REPLY UPDATE.CONFIRM correspondien-te. Un parametro adicional (reuse information) de la primitiva de pedidoindica, si la informacion es usada para responder uno solo o multiples pedi-dos. El usuario FDL en la estacion contestadora puede escribir este buffer encualquier momento.

El servicio restante procede de una manera similar al servicio SDA (usan-do las primitivas FDL DATA REPLY.REQUEST,FDL DATA REPLY.CONFIRM y FDL DATA REPLY.INDICATION). Sinembargo, si quien responde genera su acuse de recibo, chequea si existe unbuffer para el SAP pedido, y, de ser ası, escribe los contenidos de este bufferdentro de una trama ACK inmediata. Esta informacion pasa al usuario FDLen la estacion iniciadora con la primitiva FDL DATA REPLY.CONFIRM .Si los contenidos del buffer debieran ser transmitidos solo para un mismopedido, el buffer es vaciado. Necesariamente las repeticiones de tramas, porejemplo, debido a ACK corruptos, son manejadas almacenando en un bufferla trama de ACK por el tiempo que sea necesario.

Si la trama de acuse de recibo es erronea, la estacion iniciadora retrans-mite su trama de peticion. Quien responde luego retransmite la ultima tramasin reconstruirla. Si el usuario FDL en la estacion contestadora usa la primi-tiva FDL REPLY UPDATE.REQUEST entre la primera y segunda tramaACK, no tiene consecuencias en la retransmision.

CSRD: Envıo cıclico y respuesta con datos

El servicio de envıo y recepcion cıclico de datos (CSRD) es el servicioProfibus mas complicado, y no discutido en su totalidad. Las medidas deperformance en tiempo real definidas anteriormente se enfocan totalmente amensajes de alta prioridad, mientras que el servicio CSRD es, a priori, debaja prioridad.

Al comienzo de este servicio, el usuario FDL local, le provee a la instan-cia FDL local, una lista de direcciones de estaciones unicast (poll list, listade votacion). La instancia FDL local mantiene para cada estacion en estalista un marcador y un buffer opcional. El usuario FDL local puede poner unbloque de datos (hasta 246 bytes) dentro de este buffer, junto con el SAP,

Page 98: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 95

prioridad y reuso de informacion, es decir, los contenidos del buffer puedenser enviados solo una vez o en varias veces. En la estacion contestadora lainstancia FDL puede destinar buffers tambien, los cuales son manejados igualque el servicio SRD.

Las estaciones en la lista de votacion son consultadas en forma circular2.Para cada estacion en la lista de votacion se envıa una trama de peticion, lacual puede cargar informacion, si el buffer asociado existe y no esta vacıo.Si los contenidos del buffer debieran ser transmitidos solo una vez, el bufferes vaciado. A la estacion contestadora se le solicita que envıe un acuse derecibo inmediato, el cual puede tambien cargar los contenidos del correspon-diente buffer. Por cada peticion la estacion iniciadora lleva a cabo un numerode retransmisiones predeterminado. Si todos los intentos fallan, la estacioncontestadora es marcada como “muerta” modificando la variable del mar-cador. Tiempo despues, la estacion muerta es pingueada nuevamente por lainstancia FDL local, sin embargo, no se llevan a cabo retransmisiones. Si laestacion muerta responde, es marcada como “viva” y la instancia FDL localprocede con su normal operatoria.

C.2. Protocolo de MAC y de enlace de datos

En la capa MAC, Profibus combina dos principios: comunicacion maes-tro/esclavo para intercambio de informacion y pasaje de token para manejarel derecho a iniciar paquetes de transmisiones. Ademas, se distinguen dostipos de estaciones: las estaciones activas pueden participar en el procesode pasaje de token, mientras que las estaciones pasivas no pueden hacerlo.Una estacion activa que, en ese momento, posee el token, es llamada estacionmaster, todas las otras estaciones cumplen el rol de estaciones esclavas. So-lo a la estacion master se le permite iniciar la transferencia de informacion,una estacion esclava solo puede, tal vez, transmitir informacion si solo tieneque enviar un acuse de recibo inmediato a un marco dirigido a si mismo.Es por ello, que las primitivas de servicios FDL DATA ACK.REQUEST,FDL DATA.REQUEST y FDL DATA REPLY.REQUEST solo pueden serrealizados en estaciones activas.

Pasaje de token y mantenimiento del anillo

El protocolo del pasaje de token de Profibus es similar al protocolo To-ken Bus IEEE 802.4 y usa un medio de broadcast. Se forma un anillo logico

2En forma de round-robin.

Page 99: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 96

ascendiendo direcciones de estaciones. El espacio de direcciones es pequeno,una direccion de estacion esta en el rango de 0 a 126. Cada estacion (a laque se denominara TS: Esta Estacion) conoce a traves del mecanismo demantenimiento de anillo explicado debajo, la direccion de su sucesor logico(NS: Proxima Estacion) y su predecesor logico (PS: Previa Estacion). Si TSrecibe una trama token valida con TS como direccion de destino, chequeasi fue enviado a traves de su PS o no. De ser ası, el token es aceptado, deotra manera la trama es descartada. En el segundo caso, si la misma tramatoken es recibida nuevamente como la siguiente trama, el token es aceptadoy quien envıa el token es registrado como nuevo PS y la lista de estacionesactivas (LAS) es actualizada. De todas formas, luego de aceptar el token TSdetermina el tiempo de retencion del token THT (de acuerdo a una varian-te simplificada del protocolo de token temporizado con tiempo objetivo derotacion del token TTTRT ) y tiene permitido enviar informacion durante elTHT. Si ya no hay informacion o el THT expira, se le solicita al TS pasar eltoken a NS a traves de una trama token. Este debe hacerse si TS es el unicomiembro del anillo (NS=TS=PS), y TS debe aceptar el token de la mismamanera como si PS 6= TS. Luego de mandar una trama token, TS escuchaen el medio en busca de alguna actividad. Esto puede ser la recepcion de unencabezado valido de token (indicando que NS ha aceptado el token) o la re-cepcion de alguna transmision erronea. Sin embargo, TS escucha en el mediosolo durante el tiempo slot TSL el cual es tipicamente elegido muy corto, porejemplo, dentro del rango de 100µseg a 400µseg. Si transcurrido este tiem-po, no hay actividad en el medio, la trama token es repetida (claramente,es necesario que las estaciones activas reaccionen lo suficientemente rapidoa las tramas token, de otra manera ocurren colisiones). Si nuevamente nohay actividad, y una tercera prueba es tambien infructuosa, se asume al NSmuerto y TS determina la proxima estacion en el anillo (es decir, el sucesorde NS), hace de este el nuevo NS y trata de pasarle el token, siguiendo lasmismas reglas. La nueva estacion puede ser determinada desde el LAS, elcual es actualizado a traves del mecanismo de mantenimiento. Si el TS noencuentra otra estacion, se envıa una trama token a sı mismo.

Una regla especial de protocolo es la siguiente: TS debe leer nuevamentedel medio todas las tramas de token que transmite, bit por bit (denominadapropiedad de eco, o hearback), a fin de detectar un transceptor defectuosoy resolver colisiones. Si TS encuentra alguna diferencia con la primera vez,espera alguna respuesta (la cual bien puede ocurrir debido a errores sin de-tectar en la trama de token). Si no hay actividad en el medio, repite la tramade token. Si TS nuevamente encuentra una diferencia, descarta el token in-mediatamente y se remueve a sı mismo del anillo. La razon para esto es la

Page 100: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 97

presuncion de que el transceptor esta defectuoso y sus resultados no son con-fiables.

El mecanismo de mantenimiento del anillo funciona de dos maneras di-ferentes. Primero, si la estacion es nuevamente encendida, es necesario queescuche pasivamente en el medio, hasta que haya recibido dos ciclos sucesivosidenticos y ademas tenga una vista valida sobre todo el anillo logico (conocidocomo estado de escucha de token). Durante este tiempo no se permite enviaro responder a tramas de informacion o aceptar el token. Cada direccion deestacion encontrada en una trama de token perteneciente a estos dos cicloses incluida dentro de la LAS. Luego de construir una vista valida la estacionpuede entrar en el anillo si otra estacion le pasa el token. La segunda reglarequiere que cada estacion inspeccione cada trama de token correctamenterecibida e incluya la fuente y la direccion de destino en la LAS. Una reglaimportante aquı es la siguiente: si TS ya se siente incluıda en el anillo logico ylee una trama de token, donde TS es “salteada” (es decir, la direccion de TSesta realmente dentro del rango de direcciones abarcadas por quien envıa ypor quien recibe la trama de token) se remueve a sı misma del anillo y se com-porta como recien encendida. A fin de que otra estacion pueda pasar el tokena una estacion nuevamente encendida, cada estacion a mantiene una listade huecos (GAPL, gap list), que contiene todas las direcciones de estacionesposibles entre a y su NS b. Es necesario, que una estacion a, periodicamenteconsulte todas las direcciones en su GAPL a traves del envıo de una tramaFDL STATUS.REQUEST a una sola direccion c y a la espera de una ranurade tiempo TSL por una respuesta, lo cual indica el estado actual de c (lis-ta/no lista para el anillo). Una estacion que trata de detectar dos ciclos detoken identicos respondera con un estado de “no listo”. Durante cada ciclode token, a consulta al menos una direccion de estacion en su GAPL. Si laestacion en la GAPL responde como “lista”, a cambiara su NS, acortara suGAPL, actualizara su LAS, y luego enviara una trama de token a la nuevaestacion. El perıodo para buscar en la GAPL es creado por un timer especial(gap timer), el cual es configurado como un multiplo entero (factor de hueco,el estandar requiere valores entre 1 a 100) del tiempo objetivo de rotacion detoken TTTRT .

Para dejar el anillo es suficiente detener todas las transmisiones. En estecaso PS detectara la perdida de estacion cuando trate de pasar el token aTS, sin exito. Un mecanismo especial es usado para la inicializacion del anilloo para manejar la perdida de token debido a la caıda del sistema del pro-pietario actual del token: cada estacion escucha permanentemente el medio.Cada vez que el medio se vuelve inactivo, TS pone en funcionamiento un

Page 101: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 98

temporizador especial, el temporizador de expiracion (timeout timer), con elvalor de timeout TTO. El temporizador es reseteado cada vez que el mediose vuelve activo. Si el temporizador expira (sin transmision en el medio poralgun tiempo), TS “pide el token”, es decir, comienza a comportarse como elpropietario actual del token y lleva a cabo algunas transmisiones de tramas:envıa tramas de informacion o pasa el token a su actual NS. Si TS no estabaen estado de escucha de token al momento de expirar el temporizador, nohay cambio en su estado interno, especıficamente en su LAS, NS y PS. Enel otro caso, puesto que la estacion aun no tiene una vision valida del anillo,entiende que el anillo esta vacıo y asımismo como el unico miembro de LAS.

El valor de timeout depende linealmente de la direccion de la estacion n[14]:

TTO(n) = (6 + 2n)TSL (C.1)

Esto puede conducir a colisiones, y es necesaria la caracterıstica de (hear-back) para resolverlas. Una situacion donde las colisiones pueden ocurrir es lasiguiente: consideremos que en un anillo vacıo dos estaciones son nuevamen-te encendidas en momentos diferentes, de manera que sus temporizadoresexpiran simultaneamente. Cuando ambas estaciones comienzan a transmi-tir tramas de token, la colision resultante induce a errores hearback. Ambasestaciones se retiran del anillo y detienen las tranmisiones, mientras iniciansus temporizadores de expiracion simultaneamente. Debido a las diferentesdirecciones de estaciones los temporizadores expiran en momentos diferentes,y ahora un anillo puede ser construido sin mas colisiones.

Asignacion de ancho de banda

Luego de recibir el token, una estacion activa computa su tiempo de re-tencion del token (THT ) restando el tiempo de rotacion real de token TRR

(tiempo medido entre los arribos de dos token) del tiempo objetivo de rota-cion de token TTTRT :

TTH = TTTRT − TRR (C.2)

El tiempo de rotacion real de token es medido constantemente como eltiempo entre sucesivos arribos de token. Se inicia un temporizador (de fija-cion de token) con el TTH calculado.

Luego de recibir el token, se le permite a la estacion master manejaruna trama de alta prioridad incluyendo retransmisiones necesarias, a pesar

Page 102: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 99

del valor del THT (el manejo de una trama incluyendo las retransmisionesse conoce como “ciclo”). Es por ello, que esta caracterıstica solo puede serexplotada en los servicios SDA, SDN y SRD, puesto que los servicios CSRDson llevados a cabo con baja prioridad.

Si mas mensajes de alta prioridad estan disponibles y el THT no ha expi-rado, la estacion continua con ciclos de alta prioridad. Excepto por el primerciclo, es necesario que al comienzo de un nuevo ciclo de baja o alta priori-dad, no haya expirado el temporizador de fijacion de token. Si el este expiramientras tanto, se le permite terminar el ciclo a la estacion, incluyendo todaslas retransmisiones. Entonces la estacion debe pasar el token a su NS.

Primero, la estacion debe llevar a cabo todos los ciclos de alta priori-dad disponibles, hasta que el temporizador expire o la cola de alta prioridadse vacıe. En el segundo caso, la estacion pude proceder con tramas de ba-ja prioridad o tramas cıclicas, si el THT no ha expirado. Luego de habercomenzado, el servicio de baja prioridad es no-prerrogativos, es decir, lospedidos de alta prioridad recien llegados son manejados por sobre la llegadadel proximo token. Esto continua hasta que no haya tramas para transmitiro el temporizador de fijacion de token expire.

El servicio de baja prioridad comienza atravesando la lista de votaciondel servicio CSRD. Si todas las estaciones en la lista son consultadas y eltemporizador de fijacion de token no ha expirado, la estacion procede ma-nejando ciclos de baja prioridad asincronicos (servicios SDA, SDN y SRD)hasta que este expire. Si la lista de votacion puede ser atravesada con un ciclode token no hay tiempo restante para informacion de baja prioridad, la colade baja prioridad es manejada por sobre la llegada del proximo token don-de luego de procesar pedidos de baja prioridad hay aun tiempo para ciclosde baja prioridad. Luego de esto, la lista de consulta es recorrida nuevamente.

Si el recorrer la lista de consulta toma mas tiempo del que el THT per-mite, la lista restante es manejada en los ciclos de token subsiguientes, sininterrupcion de tramas de baja prioridad asincronicas. Estas ultimas son ma-nejadas si la lista de votacion es recorrida completamente.

Algunas tramas especiales para el mantenimiento del anillo(FDL STATUS.REQUEST) son tratadas como tramas de baja prioridadasincronicas.

Page 103: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 100

El protocolo descripto hasta ahora es una variante del famoso protocoloToken Temporizado el cual es tambien usado en los estandares FDDI y IEEE802.4. Se lo conoce por ser capaz de tranmitir informacion multimedia.

Protocolo de enlace de datos

La capa de enlace de datos de Profibus provee un servicio semi-confiablepara los servicios SDA Y SRD, con un numero obligatorio de retranmisio-nes, dado por el parametro global max retry. La realimentacion necesaria esprovista por acuses de recibo inmediatos de la capa MAC, los cuales puedeno no llevar datos tambien. Todas las pruebas por el protocolo son llevadas acabo subsecuentemente, no se permite ninguna otra transmision de trama opasaje de token mientras tanto. Si el resultado de la transmision de tramaes conocido (recepcion exitosa de un acuse de recibo o pruebas max retrysin recibir un acuse de recibo) las capas superiores son notificadas con unaprimitiva de confirmacion. A fin de permitir al receptor distinguir entre nue-vas tramas y retransmitidas, se utiliza una variante del famoso protocolo bitalternante.

La instancia FDL del iniciador mantiene para cada posible estacion ob-jetivo a una variable de estado (distinguiendo entre “muerta” y “viva”, y unbit de cuenta de trama (FCB). La variable de estado se cambia de acuerdo ala siguiente regla: si la estacion objetivo esta “viva” y no responde a ningunaprueba perteneciente a un ciclo (es decir, si no envia un ACK a la trama depedido y todas sus transmisiones max retry), es marcada como muerta. Si unciclo es direccionado a una estacion muerta, ninguna retransmision es lleva-da a cabo dentro del servicio CSRD. Si una estacion como muerta respondenuevamente, es marcada como viva. La instancia FDL de quien respondemantiene para cada posible direccion de estacion una FCB. Es mas, mantie-ne un buffer global para el ultimo acuse de recibo de trama (buffer de acusede recibo).

El FCB le permite a la estacion contestadora, distinguir entre nuevas tra-mas y tramas retransmitidas. Es transmitida como parte del encabezado detrama, junto con una bit cuenta de trama valida (FCV), la cual indica, si elFCB es valido o no.

Cuando la iniciadora envıa una trama a la contestadora por primera vez,o si la estacion contestadora despierta luego de estar muerta, ambas esta-ciones tienen que sincronizar en un valor FCB. Para ello, la iniciadora envıatramas con FCV = 0 y FCB = 1 a la estacion contestadora, sin embargo,

Page 104: Profibus Turbo Code - Pablo Briff

Descripcion del protocolo Profibus 101

tales tramas no son retransmitidas. Luego de que la estacion contestadoraha respondido, la iniciadora envıa todas las tramas siguientes con FCV = 1e invierte el FCB luego de cada ciclo terminado.

Si a la estacion receptora le llega una trama con FCV = 1 y FCB =X, chequea si este FCB era diferente del que fue guardado en su tabla ono, una nueva trama de acuse de recibo es generada, guardada en el bufferglobal y transmitida a la iniciadora, y una primitiva de indicacion es generadapor el usuario FDL de la estacion contestadora. Si la estacion contestadora,recibe una trama de la estacion “b” sin direccion luego de recibir una tramacon FCV = 1 de la estacion “a”, considera el ultimo ciclo de “a” comoterminado. Si la estacion contestadora, recibe dos tramas sucesivas desde lamisma estacion, ambas con FCV = 1 y el mismo FCB, concluye que laultima trama es una retransmision. En este caso solo el contenido del bufferde acuse de recibo es retransmitido, y ninguna otra accion es llevado a cabo.

Page 105: Profibus Turbo Code - Pablo Briff

Apendice D

Codigo fuente de Matlab

D.1. Principal

% funcion principal donde se setean los parametros de la simulacion

function bermaxrand

clear all

% parametros de poly2trellis

% K: Longitud restringida

% G: Codegenerator en octal

% F: Feedback connection en octal

% para el ejemplo de Casti, K=3, G=7, F=5

%K=3 ; G=7; F=5;

% Paper de Berrou

K=5; G=21; F=37; % este codificador tiene muy buena performance

% asigno el vector de realimentacion para terminar el trellis del primer

% codificador

assignin(’base’,’F’,F);

trellis = poly2trellis(K,G,F);

% asigno la estructura al workspace ’base’

assignin(’base’,’trellis’,trellis);

102

Page 106: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 103

% Genero la matriz de conexiones y salidas del trellis

trellismat;

EbNovector = 0:0.5:2;

iteracionesvector = [8 10];

% Trama de longitud N

N=53*53;

assignin(’base’,’N’,N);

CantTramas=100; % cantidad de tramas que se transmiten, por cada una se

% realiza el proceso de decodificacion

% distintos trazos para diferentes iteraciones en un mismo grafico

trazo = [’-’ ’:’ ’-.’ ’--’];

contador = 0;

% vector con el valor de BER para cada EbNo

bervector = zeros(length(EbNovector),1);

for j = 1:length(iteracionesvector)

iteraciones = iteracionesvector(j);

assignin(’base’,’iteraciones’,iteraciones);

for i = 1:length(EbNovector)

EbNo = EbNovector(i);

assignin(’base’,’EbNo’,EbNo);

totalerrors = 0;

for k=1:CantTramas

% funcion que simula el esquema Tx-canal-Rx

turbo;

Page 107: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 104

% errors es una funcion

totalerrors = totalerrors + errors;

contador = contador + 1;

progreso = 100*contador/(length(iteracionesvector)*...

length(EbNovector)*CantTramas)

end

bervector(i) = totalerrors/(N*CantTramas);

end

semilogy(EbNovector,bervector, trazo(j));

xlabel(’Eb/No [dB]’);

ylabel(’BER’);

hold on

end

D.2. Esquema de Transmision/Recepcion Tur-

bo

% funcion que replica el esquema de transmision / recepcion turbo

function turbo

% esta funcion crea el escenario de transmision/recepcion

N = evalin(’base’,’N’); % traigo las variables del workspace

EbNo = evalin(’base’,’EbNo’);

iteraciones = evalin(’base’,’iteraciones’);

trellis = evalin(’base’,’trellis’);

F = evalin(’base’,’F’); % realimentacion del codificador

% calculo la memoria del codificador (igual a K-1)

M = log2(trellis.numStates);

Sigma = 10^(-EbNo/20); % EbNo esta en dB, Eb = 1

Page 108: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 105

Lc = 2/(Sigma^2);

%transmito N-M bits de informacion, necesito M bits para terminar el

%trellis

source = polar2bin(sign(randn(N-M,1))); %source vale 0 o 1

%Genero la redundancia sin interleaver

[X1p_temp FinalState] = convenc(source,trellis, 0);

%Termino el trellis del primer codificador

%la realimentacion debe incluir a todos los estados (o hay q cambiar el

%codigo)

tailbits = zeros(M,1);

tailbitscoded = zeros(M,1);

% paso de octal a binario las conexiones de realimentacion del codificador

F_dec = oct2dec(F);

F_bin = dec2bin(F_dec, M);

for n=1:M

FinalStateBin = dec2bin(FinalState, M);

weight=0;

for m=1:M

% si F_bin(m+1) == ’1’, ese registro esta realimentado

% F_bin(1) es la conexion de la entrada al codificador (no

% pertenece a los estados del codificador

if FinalStateBin(m) == ’1’ & F_bin(m+1) == ’1’

weight = weight + 1;

end

end

tailbits(n) = mod(weight,2); % si el estado tiene cantidad de ’1’ par,

% entonces a la X-OR debe entrar un cero

% ahora ingreso al codificador con el tail bit

PreviousState = FinalState;

Page 109: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 106

[tailbitscoded(n) FinalState] = ...

convenc(tailbits(n),trellis, PreviousState);

end

% le agrego a los bits del primer codificador los tailbits codificados

X1p_bin = [X1p_temp; tailbitscoded];

% ahora renombro la fuente agregando los tailbits

source = [source; tailbits];

assignin(’base’,’source’,source);

%Genero el bit sistematico incluyendo tailbits

Xs_bin = source;

%Genero la redundancia pasando a ’source’ por un interleaver aleatorio

source_int = randintrlv(source,12345);

X2p_bin = convenc(source_int,trellis, 0);

%Ahora armo la secuencia de salida X

%Genero una matriz de salida, la primera columna es Xs

%La segunda tiene en las posiciones impares la paridad sin interleaver

% y en las pares la paridad con interleaver

X_bin = zeros(N,2);

X_bin(:,1) = Xs_bin;

for i=1:N/2

X_bin(2*i-1,2) = X1p_bin(2*i-1);

X_bin(2*i,2) = X2p_bin(2*i);

end

% paso las secuencias de salida a formato polar

Page 110: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 107

X = bin2polar(X_bin);

%Genero el ruido gaussiano del canal de comunicaciones

Ruido = Sigma*randn(N,2);

%En el receptor

Y = zeros(N,2);

Y = X + Ruido;

% La informacion extrınseca inicialmente es nula

Le1 = zeros(N,1);

Le2 = zeros(N,1);

% Relleno las redundancias en las posiciones impares para el primer

% decodificador y las pares para el segundo

Yp1 = zeros(N,1);

Yp2 = zeros(N,1);

for i=1:N/2

Yp1(2*i-1) = Y(2*i-1,2);

Yp2(2*i) = Y(2*i,2);

end

%Genero las secuencias que van a entrar a cada decodificador

Inputdec1 = zeros(3*N,1);

Inputdec2 = zeros(3*N,1);

% Lazo de iteraciones

for i=1:iteraciones

Page 111: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 108

Inputdec1 = [Le2 Y(:,1) Yp1];

%Ingreso al Dec1, y recibo como salida la Le1

%le aviso a decmax que es el decoder 1 para que ponga beta(N+1,1)=0;

decoder = 1;

assignin(’base’,’decoder’,decoder);

dec1output = decmax(Inputdec1);

% La segunda columna de la salida de Dec1 no tiene utilidad

Le1 = dec1output(:,1);

% Preparo la entrada para Dec2

% interleave de la informacion extrınseca Le1

Le1_int = randintrlv(Le1,12345);

% interleave de la informacion sistematica Y(:,1)

Y1_int = randintrlv(Y(:,1),12345);

Inputdec2 = [Le1_int Y1_int Yp2];

decoder = 2;

assignin(’base’,’decoder’,decoder);

dec2output = decmax(Inputdec2);

Le2 = randdeintrlv(dec2output(:,1),12345);

end

% decision dura de la salida decodificada de Dec2

dec2output_hard = sign(dec2output(:,2));

% paso la decision dura a binario

dec2output_hard_bin = polar2bin(dec2output_hard);

Page 112: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 109

% deinterleave de la secuencia decodificada

decout = randdeintrlv(dec2output_hard_bin,12345);

assignin(’base’,’decout’,decout);

D.3. Algoritmo Log-MAP

function Output = decmax(InputMux)

% algoritmo de decodificacion Log-Map

N = evalin(’base’,’N’); % traigo las variables del workspace

EbNo = evalin(’base’,’EbNo’);

trellis = evalin(’base’,’trellis’);

Mat = evalin(’base’,’Mat’);

decoder = evalin(’base’,’decoder’);

Lb = zeros(N,1);

X = zeros(N,1);

Y = zeros(N,1);

% demultiplexo las se~nales de entrada en Lb, X e Y1

for i = 1:N,

% La informacion a priori de cada bit del dec1 es la extrinseca del

% dec2, y viceversa

Lb(i,1) = InputMux(i);

% bit recibido sistematico afectado por ruido

X(i,1) = InputMux(i + N);

% bit de redundancia recibido afectado por ruido

Y(i,1) = InputMux(i + 2*N);

end

% EbNo esta en dB, Eb = 1

Sigma = 10^(-EbNo/20);

Lc = 2/(Sigma^2);

% en el archivo ’trellismat’ se define la matriz Mat

Page 113: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 110

% Calculo de los GAMAS

% Modificacion de Gama por PAB

Gama = zeros(N,trellis.numStates,trellis.numStates);

Gama(:,:,:) = - Inf;

for i = 1:N,

for k = 1:trellis.numStates,

for j = 1:trellis.numStates,

if Mat(j,k,1) ~= 0;

% Mat(j,k,1) = bi = x_sist

Gama(i,j,k) = Mat(j,k,1).*Lb(i)/2 + ...

Lc/2*(X(i).*Mat(j,k,1)+Y(i).*Mat(j,k,2));

end

end

end

end

% Calculo de los ALFAS Log MAP

Alfa=zeros(N,trellis.numStates);

Alfa(1,:)=-Inf;

Alfa(1,1)=0;

for i=2:N;

for k=1:trellis.numStates;

for j=1:trellis.numStates;

A(j)= Gama(i-1,j,k) + Alfa(i-1,j);

end

if A(1)==-Inf & A(2)==-Inf;

Pru=-Inf;

else

Pru= max(A(1),A(2)) + log(1+exp(-1*abs(A(1)-A(2))));

end

for j=3:trellis.numStates

if A(j)~=-Inf;

Pru= max(Pru,A(j)) + log(1+exp(-1*abs(Pru-A(j))));

end

end

Page 114: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 111

Alfa(i,k)= Pru;

end

end

% Calculo de los BETAS

Beta=zeros(N+1,trellis.numStates);

if decoder == 1

% Si es el Primer Decodificador, el ultimo Beta(1) debe ser 0

Beta(N+1,:)=-Inf;

Beta(N+1,1)=0;

else

% Si es el Segundo Decodificador, todos los ultimos Betas deben ser

% 0

Beta(N+1,:)=0;

end

for i=N:-1:2;

for j=1:trellis.numStates; % j es el estado actual

for k=1:trellis.numStates; % k es el estado proximo

B(k)= Beta(i+1,k) + Gama(i,j,k);

end

if B(1)==-Inf & B(2)==-Inf;

Pru=-Inf;

else

Pru=max(B(1),B(2)) + log(1+exp(-1*abs(B(1)-B(2))));

end

for k=3:trellis.numStates

if B(k)~=-Inf;

Pru= max(Pru,B(k)) + log(1+exp(-1*abs(Pru-B(k))));

end

end

Beta(i,j)= Pru;

end

end

Lb_y=zeros(N,1); % Calculo de los L(b/y)

Page 115: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 112

for i=1:N;

for k=1:trellis.numStates;

for j=1:trellis.numStates;

if Mat(j,k,1)==1;

Numer(k) = Alfa(i,j) + Gama(i,j,k) + Beta(i+1,k);

elseif Mat(j,k,1)==-1;

Denom(k) = Alfa(i,j) + Gama(i,j,k) + Beta(i+1,k);

end

end

end

% comienzo con los dos primeros elementos de Numer y Denom

if Numer(1)==-Inf & Numer(2)==-Inf

NumerAux=-Inf;

else

NumerAux=max(Numer(1),Numer(2)) + ...

log(1+exp(-1*abs(Numer(1)-Numer(2))));

end

if Denom(1)==-Inf & Denom(2)==-Inf

DenomAux=-Inf;

else

DenomAux=max(Denom(1),Denom(2)) + ...

log(1+exp(-1*abs(Denom(1)-Denom(2))));

end

% continuo con el resto de los elementos

for k=3:trellis.numStates

if Numer(k)~=-Inf % PAB - Lo agrego para evitar el NaN

NumerAux=max(NumerAux,Numer(k)) + ...

log(1+exp(-1*abs(NumerAux-Numer(k))));

end

if Denom(k)~=-Inf % PAB - Lo agrego para evitar el NaN

DenomAux=max(DenomAux,Denom(k)) + ...

log(1+exp(-1*abs(DenomAux-Denom(k))));

end

Page 116: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 113

end

Lb_y(i)=NumerAux - DenomAux;

end

% Ahora la Informacion Extrınseca es comunicada al otro Decodificador

% como parametro de salida

Le = Lb_y - Lc*X - Lb;

Output = [Le Lb_y];

D.4. Algoritmos accesorios

D.4.1. Construccion de las matrices del trellis

function trellismat

trellis = evalin(’base’,’trellis’);

% Hago una matriz cuya primera dimension sea el estado anterior,

% la segunda el estado actual y la tercera la es el vector de salida

%( 1: sistematico, 2: salida codif )

Mat = zeros(trellis.numStates,trellis.numStates,2);

% Mat(u’,u,bits)

polar = [-1 ; +1];

for col = 1:2,

for i = 1:trellis.numStates,

Mat(i,trellis.nextStates(i,col)+1,1) = polar(col);

% la primera columna esta asociada a las transiciones del 0 (-1

% en polar)

% la segunda columna esta asociada a las transiciones del 1 (+1 en

% polar)

end

end

Page 117: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 114

for k = 1:trellis.numStates,

for j = 1:trellis.numStates,

% esta condicion detecta si la transicion de j a k es posible

if Mat(j,k,1) ~= 0;

% guardo en la matriz la salida codificada a partir del estado

% actual y el bit entrante al codif; la paso a polar (0 -> -1 ,

% 1 -> +1)

Mat(j,k,2) = bin2polar(trellis.outputs(j, ...

polar2bin(Mat(j,k,1)) + 1));

end

end

end

assignin(’base’,’Mat’,Mat);

D.4.2. Conversor de binario a polar

function y = bin2polar(x)

y = 2*x-1;

D.4.3. Conversor de polar a binario

function y = polar2bin(x)

y = (x + 1)/2;

D.4.4. Deteccion de errores

function errores = errors

source = evalin(’base’,’source’);

decout = evalin(’base’,’decout’);

N = evalin(’base’,’N’);

errores = sum(abs(source - decout));

D.4.5. Curva de BER vs. Eb/N0 sin codificacion

clear;

%EbNovector = 0:8;

EbNovector = 0:0.2:2;

bervector = zeros(length(EbNovector),1);

Page 118: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 115

N=1000000;

%cantrep=10;

%for k=1:cantrep

source = sign(randn(N,1));

assignin(’base’,’source’,source);

for i = 1:length(EbNovector)

EbNo = EbNovector(i);

assignin(’base’,’EbNo’,EbNo);

Sigma = 1/sqrt(2)*10^(-EbNo/20); % EbNo esta en dB

n = Sigma*randn(N,1);

r=source+n;

%r=awgn(source,EbNo + 3);

decout = sign(r);

assignin(’base’,’decout’,decout);

bervector(i) = errors/N;

end

semilogy(EbNovector,bervector)

xlabel(’Eb/No [dB]’)

ylabel(’BER’)

title(’BER vs Eb/No sin codificacion’)

hold on

D.4.6. Resolucion ecuacion para distancia constante

x=626:1:2000;

f=0.8*(626-500)/100 + 0.48*(x-626)/100 + 10*log10(x/500)-7.37;

plot(x,f)

title(’R2 para distancia de cable 400 metros’)

xlabel(’R [Kbps]’)

ylabel(’Homogenea en funcion de R2’)

figure

x=1500:1:3500;

f=0.48*(x-1500)/100+10*log10(x/1500)-7.37;

plot(x,f)

title(’R2 para distancia de cable 200 metros’)

Page 119: Profibus Turbo Code - Pablo Briff

Codigo fuente de Matlab 116

xlabel(’R [Kbps]’)

ylabel(’Homogenea en funcion de R2’)

figure

x=12000:1:15000;

f=0.48*(x-12000)/100+10*log10(x/12000)-7.37;

plot(x,f)

title(’R2 para distancia de cable 100 metros’)

xlabel(’R [Kbps]’)

ylabel(’Homogenea en funcion de R2’)

Page 120: Profibus Turbo Code - Pablo Briff

Bibliografıa

[1] B. Sklar, “Digital Communications”, 2o Edicion, Prentice Hall, 2001.

[2] J. Proakis, “Digital Communications”, 4 Edicion, McGraw-Hill, 2001.

[3] W. Stallings, “Data and Computer Communications”, 6o Edicion, 1999.

[4] A. Oppenheim and A. Willsky, “Signals and Systems”, 2 Edicion, Pren-tice Hall, 1997.

[5] C. Berrou, A. Glavieux, and P. Thitimajshima, “Near Shannon limiterror-correcting coding and decoding: Turbo-codes” Proceedings, 1993IEEE International Conference on Communication, Geneva, Switzer-land, pp. 1064-1070, 1993.

[6] C. Schlegel, L. Perez, “Trellis and Turbo Coding”, IEEE Press EditorialBoard, 2004.

[7] J. Castineira, Apunte curso de posgrado de Teorıa de la Informacion yCodificacion dictado en el departamento de electronica de la Facultadde Ingenierıa de la UNMDP, 2004.

[8] J. Castineira, “Resultados de simulaciones con interleavers aleatorios yde bloque para distintas longitudes de trama”, 2004.

[9] P. Guinand, J. Lodge, “Trellis termination for turbo encoders”, 1994.

[10] Fu-hua Huang, “Trellis termination and concepts”, 1997.

[11] Fu-hua Huang, “Performance analysis of turbo codes”, 1997.

[12] B. Puckett, “Implementation and Performance of an Improved TurboDecoder on a Configurable Computing Machine”, 2000.

[13] A. Willig, “A New Class Of Packet- And Bit-Level Models For WirelessChannels”, 13th IEEE Intl. Symp. on Personal, Indoor and Mobile RadioCommunications, Septiembre 2002.

117

Page 121: Profibus Turbo Code - Pablo Briff

BIBLIOGRAFIA 118

[14] A.Willig, “Investigations on MAC and Link Layer for a wireless PRO-FIBUS over IEEE 802.11”, 2002.

[15] L. Papke, P. Robertson, and E. Villebrun, “Improved decoding with theSOVA in a parallel concatenated (turbo-code) scheme”, Proceedings,IEEE International Conference on Communications, pp. 102-106, 1996.

[16] E. Elliot. “Estimates of error rates for codes on burst-noise channels”.Bell Systems Technical Journal, Septiembre 1963.

[17] ABB Automation Products GmbH, Profibus Cable Datasheet, 2006.

[18] ABB Automation Products GmbH, Profibus Presentation, 2006.

[19] Wiesemann und Theis GmbH, RS485 Information, 2005.

[20] PNO Profibus Nutzerorganisation, “Profibus Specifications”, Edicion1.0, 1998.

[21] ABB Profibus Presentation, 2003.

[22] N. Chan, “Design and Prototyping of a Turbo Decoder Using the Ber-keley Emulation Engine (BEE)”, 2001.

[23] TrellisWare Technologies Inc., “TWT 100204D/E Turbo Deco-der/Encoder Datasheet”, 2003.

[24] Altera Corp., “HSDPA-Low-Cost-FPGA Co-Processor for ChannelCoding”, www.altera.com, 2006.