C-Control

El módulo de microcontrolador C-Control es producido y comercializado por la empresa de electrónica Conrad Electronic . La serie de microcontroladores, que ha estado en producción desde 1994, ahora se vende en diferentes versiones. Además de una versión estándar y compacta (Unidad M) basada en un controlador MC68HC05B6 de Motorola (desde 2004 Freescale ) , la próxima generación de la Unidad M C-Control I en forma de Unidad M 2.0 C-Control tiene También ha estado disponible desde mediados de 2004 68HC908GT16 y C-Control I Micro 68HC908QT4CP vendido. El C-Control II, que ha estado disponible desde finales de 2000, es un nuevo desarrollo, que se complementó con una tercera versión de C-Control, el C-Control Pro, a mediados de 2005.

El C-Control se utilizó en países de habla alemana principalmente debido a su facilidad de uso, los numerosos accesorios y la amplia gama de literatura en idioma alemán. A partir de 2021, el sistema ya no se comercializará activamente, la última actualización de software del C-Control-Pro-IDE fue en 2013. Una plataforma comparable en la actualidad es Arduino .

El C-Control M Unit 2.0 (derecha) en comparación de tamaño con el C-Control Micro
El C-Control I Station 2 en uso con una caja de relés de carril de perfil de sombrero
C-Control Pro con extensión de relé de conmutación. Junto a él, la placa de desarrollador.

Versiones del controlador

C-Control I

Versión 1.x

Antes de 1996 había una versión 1.0 de C-Control I, que, sin embargo, no es compatible con las versiones de C-Control I V1.1 lanzadas después de 1996. En 1996 salió al mercado el C-Control I versión 1.1, que ahora se podía programar no solo en el lenguaje de programación gráfica CCPLUS, sino también en el dialecto BÁSICO CCBasic.

La versión 1.1 de C-Control I está disponible como una unidad principal C-Control I "grande", como una unidad M-C-Control I y una estación C-Control I. Las abreviaturas comunes para C-Control I V1.1 son "CC1", "CC1 V1.1".

El C-Control IM-Unit 1.1 ya no está disponible. El C-Control IM-Unit 1.2 está disponible como reemplazo. Sin embargo, se basa en el hardware de C-Control I Versión 2 y no es 100% compatible.

Controlador alternativo

Mientras tanto, también se han desarrollado controladores alternativos que son compatibles con el intérprete de tokens de C-Control I versión 1.1, de modo que estos también se puede programar con CCBasic. A principios de 2004 se suspendió el proyecto CC1-OS. El objetivo del proyecto era ampliar y optimizar el C-Control I. Otras alternativas son Open-Micro, Open-Mini, Open-Midi, Open-Macro y Open-Maxi altamente compatibles con CCBasic de Dietmar Harlos, así como el B-Control (basado en Atmel Atmega32 / 128) de Martin Kaup a Seleccione.

Versión 2.x / 1.2

Diseño estándar

La próxima generación del C-Control I versión 1.1, el C-Control I versión 2.0, también está disponible desde mediados de 2004. El objetivo del nuevo controlador es mantener la mayor compatibilidad posible con la antigua versión 1.1 de C-Control I. Además del C-Control I M-Unit 2.0, también se lanzó el C-Control I Micro. El Micro es un chip único que puede funcionar sin cableado externo. Después de que inicialmente no existía la posibilidad de que el usuario creara sus propias rutinas de ensamblador , ahora esto también es posible para estos controladores con restricciones con un ensamblador CCASM especial . Estas restricciones consisten en bloquear ciertos códigos OP y reemplazar códigos OP con macros, que están destinadas a evitar que se acceda y lea el sistema operativo a través del código ensamblador. Las rutinas del ensamblador también están "firmadas" y encriptadas para evitar que se utilice cualquier otra persona que no sea CCASM.

El C-Control I Versión 2 está disponible en las versiones C-Control I M-Unit V2.0, C-Control I M-Unit V1.2, C-Control I Station V2.0 y C-Control Micro.

Las designaciones utilizadas, como "Unidad M 2", "Unidad M 2.0", C-Control 2.0, a menudo conducen a confusión con el C-Control II, que entre otras cosas. también lleva la designación oficial "C-Control 2".

Como el microcontrolador utilizado ya ha sido descatalogado por el fabricante, es previsible el final de la disponibilidad de esta versión estándar.

Versión avanzada

C-Control I M-Unit Versión 2.0 y C-Control I Station V2.0 también están disponibles en una versión extendida desde 2008. Además de 22 kbytes de memoria de programa y 240 bytes de RAM de usuario, las llamadas versiones avanzadas admiten aritmética de coma flotante de 32 bits .

C-Control II

Además, hay (también llamado C-Control 2 o CC2) C-Control II desde el final de 2000 basado en el Infineon -16- bit - microcontrolador C164CI . Lo único que el C-Control 2 tiene en común con el C-Control I es el nombre. Debido a la multihilo, la posibilidad existente de procesamiento de cadenas, de 32 bits de largo entero , así como el 64-bit aritmética de punto flotante y la memoria muy grande para un microcontrolador (RAM 64 kB, 512 kB Flash), la C-Control II sigue siendo la variante más extensa. También se pueden integrar rutinas de ensamblador más grandes (hasta 192 kB de Flash).

El C-Control II está disponible en las versiones C-Control II Main-Unit (también llamada CC2-Unit) y C-Control II Station (también llamada CC2-Station).

C-Control Pro

En 2005, la serie C-Control se amplió para incluir la familia C-Control PRO. En comparación con la familia C-Control-I, estas unidades tienen significativamente más memoria y recursos de hardware. Sin extensiones externas, 2 kB (MEGA32) o aproximadamente 2,6 kB (MEGA128) RAM, aproximadamente 15 kB o aproximadamente 110 kB Flash para programas de usuario y memoria EEProm de 1 kB o 2 kB están disponibles. La familia C-Control-PRO se basa en los microcontroladores RISC del mismo nombre de la familia AVR de Atmel. El MEGA128 ofrece significativamente más recursos de E / S que cualquier otro C-Control que haya aparecido hasta ahora si no se utiliza una expansión de RAM externa. El C-Control Pro ofrece subprocesos múltiples, similar al C-Control II. La programación se puede realizar en Compact-C o Basic. Ambos lenguajes de programación se pueden mezclar, por lo que una parte puede consistir en Compact-C y la otra parte en el software de Basic. Dado que es un sistema de programación modular, incluso los proyectos más grandes se pueden gestionar con relativa facilidad. Al igual que con el C-Control II y el C-Control I en Basic ++, los módulos universales solo deben programarse una vez y, por lo tanto, pueden reutilizarse. Sin embargo, el C-Control-IDE no contiene un simulador, como con C-Control I y C-Control II, sino que tiene un depurador de hardware .

Aplicaciones

Con el C-Control, se pueden implementar procesos de automatización simples para áreas privadas y semiprofesionales. El C-Control IM-Unit 2.0 alcanza una velocidad de ejecución 38 veces superior a la versión anterior. También se ha simplificado el manejo del bus I²C , los componentes externos y las pantallas LC.

El C-Control II se utiliza incluso con mucha frecuencia en el sector profesional. Se puede integrar una amplia variedad de hardware de la manera más sencilla posible a través de amplios módulos de programa. También es muy popular en la domótica, ya que un controlador tiene suficientes recursos para controlar o regular todo aquí. Al elegir el controlador, la velocidad de ejecución a menudo juega un papel importante. Sin embargo, varias pruebas de puntos de referencia han demostrado que una comparación de la velocidad del controlador de corriente depende en gran medida de la aplicación y, por lo tanto, de los recursos disponibles por el controlador. En principio, las familias individuales de C-Control no pueden compararse directamente entre sí, ya que el alcance funcional de los sistemas operativos individuales difiere demasiado.

Por tanto, cada variante de C-Control tiene sus ventajas y desventajas.

programación

C-Control I

El CD de software C-Control I de CONRAD para programar el C-Control I contiene los lenguajes de programación CCBASIC y BASIC ++ (como componente principal del entorno de desarrollo WorkBench ++). Alternativamente, mBasic, el lenguaje estilo C CCCCC o el OCBASIC compatible con versiones anteriores desarrollado para el proyecto Open Control también se puede utilizar para C-Control I versión 1.1 .

El C-Control I versión 1.1 también se puede programar en ensamblador . Sin embargo, para C-Control IM-Unit 2.0 y C-Control Micro, se requiere un ensamblador especial llamado CCASM, ya que solo los programas firmados con CCASM pueden iniciarse en los nuevos C-Controls.

 Main() ' Das ist ein Kommentar

 FUNCTION Main()
  DEFINE i AS BYTE
  DEFINE MeinString AS STRING * 10

  LCD.INIT
  LCD.CLEAR
  FOR i = 1 TO 10
   MeinString = "Wert von i = " & STR(i)
   LCD.PRINT MeinString
  NEXT i
  LCD.OFF
 END FUNCTION

Ejemplo de C-Control-I-Version-2.0 en BASIC ++ con cadenas dinámicas y salida de pantalla LC

C-Control II

El C-Control II más potente, por otro lado, está programado con el lenguaje de programación C2. Sin embargo, las rutinas de ensamblador también se pueden integrar fácilmente aquí. La programación directa del C-Control II sin un sistema operativo también es posible fácilmente. El sistema operativo se puede recargar en cualquier momento.

 thread main
 {byte second;
  stports.init();
  stports.LCDlight(1);
  lcdext.init();
  lcdext.print("Hello World");
  second=system.second();

  loop
  {
   lcdext.line(2);
   lcdext.time(0);
   stports.togLED(1);
   sleep 490;
   stports.togLED(1);
   wait system.second()!=second; //Auf Sekundenwechsel warten
   second=system.second();
  }

 }

Ejemplo de C2 con salida de pantalla LC en una estación C-Control II (reloj con LED parpadeando cada segundo)

 thread main
 {byte second;
  lcdext.init();
  lcdext.print("Hello World");
  second=system.second();

  loop
  {
   lcdext.line(2);
   lcdext.time(0); //Aktuelle Zeit ausgeben Format: 2=hh:mm:ss
   sleep 500;
   lcdext.goto(2,2);
   lcdext.put(' '); //Doppelpunkt mit Leerzeichen überschreiben
   lcdext.goto(2,5);
   lcdext.put(' ');
   wait system.second()!=second; //Auf Sekundenwechsel warten
   second=system.second();
  }

 }

Ejemplo de C2 con salida de pantalla LC para una unidad C-Control-II con LCD externo (reloj con dos puntos parpadeando cada segundo)

C-Control Pro

Al igual que el C-Control I y II, el C-Control Pro contiene un intérprete de tokens preinstalado, que se actualiza automáticamente cuando se descarga un programa. A diferencia del C-Control I, los tokens pueden compilarse no solo desde un BASIC sino también desde un código fuente C, e incluso mezclarse. Sin embargo, a diferencia del B-Control, que también se basa en microcontroladores ATmega, el C-Control Pro no es compatible con el C-Control I.

 Dim Text(9) As Char                     'Char Array
 Dim X As Word                           'Zählvariable
 LCD_Init()                              'LCD high-level initialisierung
 LCD_ClearLCD()                          'LCD löschen
 LCD_CursorOff()                         'Cursor ausschalten
 Text = "X:"                             'String übergeben
 Do While True                           'Endlosschleife
   LCD_Locate(1,1) : LCD_WriteText(Text) 'Schreibe an Position 1,1 des LCDs das Char Array
   LCD_Locate(1,3) : LCD_WriteWord(X,4)  'X wird vierstellig an Position 1,3 am LCD ausgegeben
   X = X+1                               'Zählervariable um eins erhöhen
   AbsDelay(100)                         'kurze Pause
 End While                               'Schleifenende

Código de ejemplo de C-Control PRO para generar un valor de contador en Basic

    word n;
    char num[8];
    LCD_Init();                     // Display initialisieren
    LCD_ClearLCD();                 // Display löschen
    LCD_CursorOff();                // Display Cursor ausschalten
    for (n=0; n<256; n=n+1)
    {
        Str_WriteWord(n,16,num,0,2);// Wort n in ASCII String konvertieren
        LCD_CursorPos(0);           // LCD Cursor positionieren
        LCD_WriteText(num);         // String num ausgeben
        AbsDelay(100);              // Verzögerung um 100ms
    }

Salida en una pantalla LCD en Compact-C

Resumen de los lenguajes de programación utilizados

lenguaje de programación Plataforma de destino Formato de salida Sintaxis / paradigma Tipos de datos Cadenas / matrices Procesamiento de pila restricciones
CCBASIC C-Control I versión 1.1 Bytecode / código de máquina BÁSICO ( imperativo ) Byte (8 bits), palabra (16 bits) No firmemente máx.6 kB (sin parche DLL)
CCPLUS C-Control I versión 1.1 Bytecode gráficamente Byte (8 bits), palabra (16 bits) No firmemente máx.6 kB (sin parche DLL)
ProzC C-Control I versión 1.1 Bytecode C ( modular ) Char (8 bits), Int (16 bits) No firmemente No
OCBASIC Open-Control, C-Control I versión 1.1 Bytecode / código de máquina BÁSICO ( modular ) Byte (8 bits), palabra (16 bits) No firmemente No
AS05 C-Control I versión 1.1 Codigo de maquina Ensamblador ( imperativo ) 8 bits No dinámica No
BÁSICO ++ C-Control I versión 1.1, C-Control I versión 2.0 Bytecode BÁSICO ( modular ) Byte (8 bits), palabra (16 bits), flotante (32 bits), cadena (64 bytes) Cadenas, ( EEPROM ) ChipRam, matrices fijo (dinámico opcional) No
CCASM C-Control I versión 2.0 Código de máquina (encriptado) Ensamblador ( imperativo ) 8 bits No dinámica El código está autorizado, no hay acceso libre a todos los recursos, solo es posible 2 páginas de 248 bytes cada una
C2 C-Control II Código de bytes / Wordcode C simplificado ( modular ) Byte (8 bits), int (16 bits), largo (32 bits), flotante (64 bits), cadena (32 bytes) Cadenas, matrices, tipos de datos propios dinámica No
CompactC C-Control Pro Bytecode C ( modular ) Char / Byte (8 bits), Word / Int (16 bits), Float (32 bits) Cadenas, matrices dinámica No
básico C-Control Pro Bytecode BÁSICO ( modular ) Char / Byte (8 bits), Word / Int (16 bits), Único (32 bits) Cadenas, matrices dinámica No

Los tipos de datos admitidos, la posibilidad de trabajar con cadenas y matrices y el procesamiento de la pila están determinados esencialmente por el sistema operativo implementado en el microcontrolador.

Resumen de datos técnicos

Controlador sistema operativo Tacto Programa de memoria Memoria ASM Almacenamiento de datos RAM de usuario E / S * ADC Voltaje de referencia PWM
C-Control I versión 1.1 Hilo único 2 MHz 8 kB 0,249 kB 8 kB (= memoria de programa) 24 bytes 35 8 bits 2,5 V - 5,0 V 2
C-Control I versión 1.2 Hilo único 2 MHz 9,5 kB 0,5 kB (= memoria de programa) 9,5 kB (= memoria de programa) 64 bytes 29 8 bits 5,0 V 2
C-Control I versión 2.0 Hilo único 8 MHz 9,5 kB 0,5 kB (= memoria de programa) 9,5 kB (= memoria de programa) 140 bytes 29 8 bits 5,0 V 2
C-Control I Versión 2.0 Avanzado Hilo único 8 MHz 22 kB 0,5 kB (= memoria de programa) 22 kB (= memoria de programa) 240 bytes 29 8 bits 5,0 V 2
C-Control I Micro Hilo único 3,2 MHz 2 kB 0,5 kB (= memoria de programa) - 24 bytes sesenta y cinco) 8 bits 5,0 V -
Abierto maxi Hilo único 20 MHz (1,25 MHz) 57,4 KB 57,4 kB (= memoria de programa) 32 kB (I²C-EEPROM) 1800 bytes (512 bytes) 52 10 bits 2,7-5,0 V 2 (8)
C-Control II Subprocesos múltiples (máx. 255 subprocesos) 20 MHz 128 kB + 128 kB const. 192 KB 128 kB (192 kB) 64 KB 34 10 bits 4.096 V 3
C-Control Pro Mega 32 Múltiples subprocesos (máx. 16 subprocesos) 14,7456 MHz 15 kB - 1 kB 2 kB 30 10 bits 2,5 V - 5,0 V 2
C-Control Pro Mega 128 Múltiples subprocesos (máx. 16 subprocesos) 14,7456 MHz 110 kB - 2 kB 2,6 kB 51 (32) 10 bits 2,5 V - 5,0 V 3

* Notas sobre las E / S:
Se han tenido en cuenta todos los puertos de E / S, incluidos los puertos AD y las funciones especiales que se pueden operar desde el programa de usuario. Esto también incluye botones de inicio y host, LED de estado (utilizables) y bus I²C. No se contaron los puertos para RxD y TxD del (primer) RS-232 , al igual que los puertos para el bus CAN del C-Control II. Para el C-Control Pro 128, el valor de las E / S utilizables al usar una extensión de RAM externa escrita entre paréntesis.

literatura

El C-Control se caracteriza por una amplia gama de literatura en lengua alemana. Los numerosos libros y sitios web cubren temas tanto para principiantes como para usuarios avanzados.

Leyendo lista

Ordenado por fecha de publicación:

C-Control I versión 1.1

  • Burkhard Kainka: Mida, controle, regule con el C-Control / Basic-System. 2ª Edición. Franzis Verlag, Poing 1998, ISBN 3-7723-6734-8 .
  • Burkhard Kainka, Martin Förster: Aplicaciones C-Control. Franzis Verlag, Poing 1998, ISBN 3-7723-5514-5 .
  • B. Kluth, C. Kluth: Automatice con éxito con el sistema básico C-Control. Franzis Verlag, Poing 1999, ISBN 3-7723-4984-6 .
  • Burkhard Kainka: Mida, controle, regule con el C-Control / Basic-System. Franzis Verlag, Poing 2000, ISBN 3-7723-6735-6 .
  • Burkhard Kainka: extensiones de hardware C-Control. Franzis Verlag, Poing 2000, ISBN 3-7723-5705-9 .
  • B. Kluth, C. Kluth: C-Control-Station. Franzis Verlag, Poing 2000, ISBN 3-7723-8165-0 .

C-Control I versión 2.0

  • Stefan Tappertzhofen: Medición, control y regulación con C-Control M-Unit 2. 2., edición actualizada. Franzis Verlag, Poing 2007, ISBN 978-3-7723-5488-5 .

C-Control II

  • Burkhard Kainka, André Helbig: Medir, controlar, regular con C-Controll II . Franzis Verlag, Poing 2003, ISBN 3-7723-4054-7 .

C-Control Pro

  • Reiner Schirm, Peter Sprenger: Medir, controlar y regular con C-Control Pro . Franzis Verlag, Poing 2007, ISBN 978-3-7723-4097-0 .
  • Ulli Sommer: C-Control-Pro: prográmelo usted mismo y utilícelo en la práctica . Franzis Verlag, Poing 2007, ISBN 978-3-7723-5089-4 .

enlaces web

Generalmente

C-Control I

C-Control II

C-Control Pro

Evidencia individual

  1. Página de ayuda en c-control-pro.de: Historia
  2. C-Control I BASIC Unidad M 1.2 . Sitio del fabricante. Consultado el 21 de julio de 2011.
  3. Diferencia entre la nueva UNIDAD M1.2 y la antigua M1.1 . Sitio del fabricante. Consultado el 21 de julio de 2011.