C167
Der C167 ist ein 16-Bit-Mikrocontroller von Infineon. Er ist eine Weiterentwicklung des C166, den Siemens 1993 als Controller für Mess-, Steuer- und Regelungsaufgaben auf den Markt brachte. Er ist von der Rechnerarchitektur, wie auch der C166, eher der RISC-Familie zuzuordnen.
Der C167 besitzt einen 16-Bit-Rechnerkern, Daten- und Programmspeicher, daneben eine Pipeline-Architektur mit vier Stufen (Fetch, Decode, Execute und Writeback). Da immer vier Befehle in Arbeit sind, wird bei jedem Takt ein Befehl abgeschlossen. Um dabei die durch Datenabhängigkeiten entstehenden Leerzyklen optimal ausnutzen zu können, wurde ein Jump Cache realisiert, damit Sprungbefehle früher erkannt werden. Damit die Leistungsaufnahme so gering wie nur möglich gehalten wird (z. B. Batteriebetrieb), verfügt der C167 noch über einen Idle und Power Down Mode.
Als C161 und C164 gibt es noch zwei Varianten des C167, die den gleichen Befehlssatz, aber teilweise andere Peripherievarianten sowie Gehäuseformen aufweisen. Der C161 ist dabei eher für Prozessor-Applikationen mit wenigen Peripheriemodulen ausgelegt, während der C164 weniger Adressleitungen und Portpins hat und in einem kleineren Gehäuse geliefert wird.
Unterschiede zum Vorgänger
Die gravierendsten Unterschiede zum C166 betreffen den Befehlssatz. Da der C166 zunächst als Alternative zu 8-Bit-Controllern mit 8051-Kern gedacht war, wurde im Maschinencode nur eine relativ umständliche Art der Adressierung von Speicher über 64 KiByte Größe verwendet (mittels sogenannter „Data Page Pointers“, einer Art Segmentregister), während die Sprungadressierung von Anfang an mehr als 16 Bit für absolute Adressen unterstützte. Der C167 erweiterte die Adressierungsarten für den Speicher um einen sogenannten Segmentpräfix, das heißt, die Adressierung erfolgt, wie bei 16-Bit-Mikroprozessoren typisch, über Segment+Offset. Der Segmentpräfix ist ein eigener Opcode und gilt für bis zu 4 nachfolgende Assemblerbefehle.
Daneben wurden mit dem C167 auch einige neue Peripherie-Module eingefügt. Dies sind:
- SSC-Schnittstelle für die serielle, taktgesteuerte Kommunikation mit z. B. ADCs und DACs.
- CAN-Buscontroller mit zwei Kanälen
Ebenfalls wurden der interne Programm- und Datenspeicher vergrößert. Die Zykluszeit der meisten Befehle wurde gegenüber dem C166 halbiert, so dass ein C167 mit gleichem Takt doppelt so schnell arbeitet wie der Vorgänger. Den C167 gibt es auch in einer PROM-Version, die für kleine Stückzahlen die Verwendung eines externen Programmspeichers vermeidet.
Spezifikation
- Insgesamt bis zu 111 I/O-Kanäle
- 16-Kanal / 10-Bit Analog-Digital-Umsetzer (Verfahren beim C167: Sukzessive Approximation)
- 9 Timer
- Capture/Compare-Einheit für Zeitmessung und PWM-Erzeugung
- 4-fach PWM-Modul, z. B. für Wechselrichter
- 2 ASC-Module für asynchrone oder synchrone serielle Kommunikation (2 Leitungen je Modul)
- SSC-Modul für synchrone serielle Kommunikation (3 Leitungen)
- CAN-Controller
Der C167 ist wegen seines relativ geringen Preises und seiner großen Funktionalität beliebt und verbreitet.
Der Nachfolger ist der XC167.