# DVB-CI

DVB-CI o Common Interface es la normativa creada dentro del estándar DVB, que define cómo tiene que ser la interconexión entre el receptor DVB o host y el módulo de acceso condicional o CAM. De esta manera cada compañía emisora de contenidos puede utilizar un módulo propio con aplicaciones de acceso condicional diferentes, así como su propio Common Scrambling Algorithm, siguiendo las directrices definidas en la especificación DVB-CSA, permitiendo así una gran independencia entre módulos y una mayor protección contra la piratería, además de la capacidad de ofrecer mejores servicios personalizados gracias a esta seguridad añadida.

## Características Generales

El estándar DVB-CI está definido en la especificación EN 50221 V1 y está estructurado en capas con el objetivo de proporcionar una gran flexibilidad a esta interfaz, ya sea para conectar diversos módulos CAM al mismo tiempo, como para conectar módulos no relacionados con el acceso condicional.
Una distribución básica del sistema de capas es la que se muestra en la figura:
Las capas altas (host y aplicación) se encargan de la interacción con los elementos que les dan nombre, indicando cómo se debe gestionar y cómo debe ser la comunicación. Por debajo se encuentra la capa que gestiona las sesiones. Esta gestión permite más de una conexión simultánea ya sea entre el host y un mismo módulo, o con múltiples módulos.
Las capas de nivel superior están creadas siguiendo un modelo de objetos, los cuales se codifican utilizando TLV y que se transportan entre el host y el módulo y viceversa siguiendo las directrices especificadas en capas inferiores. Además este modelo juntamente con el sistema de codificación TLV otorga a estas capas una gran extensibilidad.
La capa básica define como debe ser la interfaz física que conecta ambos elementos, y cómo debe ser la información que la atravesará. Inicialmente fue creada para utilizar PCMCIA, pero la especificación DVB-CI admite futuros cambios. Esta especificación sigue un modelo cliente-servidor, en la que el host realiza el rol de servidor, el cual provee de recursos al cliente, en este caso el o los módulos.
En Europa DVB-CI es obligatorio para todos los receptores de televisión digital, los cuales acostumbran a incorporar 1 o 2 slots PCMCIA, con el objetivo de permitir la conexión de módulos de acceso condicional.
Otros tipos de módulos pueden ser utilizados a través de la Common Interface no relacionados con el acceso condicional, como podrÍan ser módulos de televisión interactiva o de acceso a Internet. También es habitual que no exista módulo CAM y que el acceso condicional se gestione a través de la propia CPU del receptor.

## Estructura

Common Interface se divide en dos componentes:
Transport Stream Interface (TSI): Se encarga del transporte de paquetes MPEG-2 entre el host y el módulo CAM y a la inversa, es decir, tanto cuando el host envÍa los datos codificados al módulo de acceso condiciona, como cuando el CAM retorna paquetes codificados al host, listos para ser demultiplexados.
Si se utilizan más de un módulo de acceso condicional al mismo tiempo, la Transport Stream pasa por cada uno de ellos secuencialmente. Cada módulo descodifica los paquetes correspondientes a su servicio y deja el resto inteactos.
Command Interface: En esta parte se define como debe ser la comunicación entre la aplicación que está ejecutando el módulo de acceso condicional y el host. En estas comunicaciones se incluyen las que permiten utilizar más de un CAM simultáneamente, transacciones complejas entre ellos o la provisión de recursos del host a la aplicación en cuestión.
Los protocolos correspondientes al Command Interface están subdivididos en numerosas capas con el fin de permitir el funcionamiento de tareas complejas como las anteriormente comentadas. Algunas de estas capas son comunes para todas las interfaces físicas como pueden ser las capas correspondientes al control de sesiones, la gestión de recursos o la comunicación con las aplicaciones, pero otras son las correspondientes al uso de PCMCIA. Por lo tanto, en caso de que en un futuro se substituyese por otro sistema, estas capas tendrán que ser adaptadas.