Allgemeine Infos zum Telefon-Umbau

  1. News
  2. Warum weitere Anleitungen?
  3. Zielsetzung
  4. Beschreibung der Softwareprojekte
  5. Informationen zum C-Netz
  6. C3 Umbau
  7. C4 Umbau
  8. C5 Umbau
  9. Porty Umbau
  10. Download-Seite
  11. Bauteile (Flashrom) / Bausätze
  12. Links
  13. Frequenty Asked Questions (allgemein)
Siemens C5

Ein wichtiger Hinweis für alle, die keine "Zulassung zur Teilnahme am Amateurfunkdienst" bzw. "Genehmigung zum Errichten und Betreiben von Amateurfunkstellen" (umgangssprachlich: Amateurfunklizenz) haben: Die modifizierten Geräte dürfen nur von berechtigten Personen auf den dem Amateurfunkdienst zugewiesenen Frequenzen betrieben werden (siehe Amateurfunkgesetz)!

News


Warum weitere Umbauanleitungen?

Als unbedarfter Leser und Informatik-Interessierter fragte sich der Autor Anfang 2002, wiso man bei einem Gerät (hier das Siemens C5) dessen Digitalteil vollständig entfernt und eine andere Platine aufwendig einsetzt, obwohl doch auch der neue Controller auf der eingesetzten Platine programmiert werden musste. Jedoch merke der Autor schnell, das dies nicht ohne Grund geschah:
Zum original Digitalteil des C5 gehört ein ASIC-Baustein mit der Bezeichnung EP200. Zu diesem zentralen Baustein gibt es keine Entwicklungsunterlagen, jedoch die Aussage, das dieser Baustein fehlerhaft arbeitet und diese Fehlfunktionen per Software ausgeglichen werden müssen. Ebenfalls eine entscheidende Rolle spielt der Motorola DSP 56001 (in den letzten C5: 56002). Es ist keine simple Aufgabe Software für einen Signalprozessor zu entwickeln. Auch der Autor hat bisher nur ein paar Erfahrungen mit einem AD2181 (EZlite-Kit). Der Grund sich dennoch für die Entwicklung von solcher Software zu begeistern liegt zu einem in der Herausforderung dieses bewerkstelligen zu können, zum anderen in dem Gedanken, damit etwas für den Amateurfunk getan zu haben. Auch ist die Kombination Controller - DSP ein leistungsfähiges Gespann, dessen Potential hoffentlich bald nutzbar gemacht wird.

Ziele

Bei diesen Projekten geht es vorrangig darum, kostengünstig und mit minimalem Aufwand aus einem alten C-Netz-Telefon einen FM-Amateurfunktranceiver für das 70cm Band (430-440 MHz) zu bauen. Eine sehr detaillierte Anleitung zu einem C5-Umbau stellt DL6INT (Uwe Henning) unter
home.t-online.de/home/dl6int/c5/c5idx.htm
zur Verfügung. Leider erfordert der Umbau des C5 nach dieser Anleitung einigen Aufwand in der Realisierung. Da der Autor Informatik studiert hat, und sich hobbymäßig mit Amateurfunk beschäftigt, kam er auf die Idee ein kleines Betriebssystem für das C5 zu entwickeln. Dieses Vorhaben wurde durch die Veröffentlichung einiger Details des C5-Software-Innenlebens durch DB1OTM (Thomas Müller) unter
www.qsl.net/db1otm/c5.html
unterstützt. Es entstand eine Zusammenarbeit, die auf einen gegenseitigen Informationsaustausch beruhte. Basis der Entwicklung ist übrigens die von DB1OTM disassemblierte Originalsoftware, die einige Fragen beantwortet, jedoch 10mal so viele Neue aufwirft.
Inzwischen existiert neben C5Demo eine leistungsfähige Phonie-Software (C5 SUP), mit der auch PacketRadio-Betrieb über ein externes Modem möglich ist. Die einfache Demonstrationssoftware "C5Demo", die der Autor mit Quelltext zur Verfügung stellt, demonstiert wie dass C5 als Phonie-Gerät eingesetzt werden kann. Die erste Version von C5Demo war dabei das Ergebnis einens einzigen Wochenendes. Sie beschränkt sich auf die notwendigen Funktionen eines Funkgerätes und zeigt, das ein reines Assembler-Projekt nicht kompliziert sein muß.

Beschreibung der Softwareprojekte

Alle Telefone verfügen über einen x86-kompatiblen Microcontroller (µC) (NEC V25 bzw. V40). Die NEC Vxx sind softwarekompatibel zu einem i80186 und besitzen zusätzlich noch erweiterte Befehle. Ansonsten sind beide klassische Controller (keine CPU) mit UART, Ports, DMA etc.). Software kann deshalb mit "alten" PC-Assemblern und Compilern erstellt werden. Das C3, C4 und das C5 haben neben dem µC noch einen DSP 56001 von Motorola onboard. Dieser ist über das Host-Interface und der "glue logic" (EP200 im C5) mit dem µC verbunden.

Der Autor hat die hier vorgestellte Software mit dem A86-Assembler und dem jloc-Linker erstellt. Der A86-Assembler kennt ein paar der zusätzlichen NEC-Befehle (leider nicht alle) und verfügt über eine simples Segmentierungs-System. Der jloc-Linker wertet die von A86 erstellte OBJ-Datei aus und erzeugt mit Hilfe einer Kontrolldatei ein binäres Image des Programmes. Als "Entwicklungsumgebung" diente der Ultraedit (http://www.ultraedit.com/), der Syntaxhighlighting und das Einbinden von Programmen (hier z.B. make) beherrscht. Leider ist dieses Programm Shareware, dessen Registrierung mit $35 noch human ausfällt.

SC3, SC4, SC5BOS und PP5BOS

Das Projekt "SC5BOS" beschäftigt sich mit der Betriebssystementwicklung für das alte C-Netztelefon Siemens C5. Für die anderen Mobiltelefone heißt das Betriebssystem entsprechend SC3BOS, SC4BOS order PP5BOS (für die Telefone Siemens C3, C4 und Philips Porty). Diese sind "softwarekompatibel" mitentwickelt.

Neben der Softwareentwicklung konnte sich der Autor auch nicht um Hardwareentwicklung drücken. Um das Telefon mit dem PC zu Verbinden, wurde ein serieller Pegelwandler (TTL <-> RS232) benötigt. Neben dem seriellen Anschluss ist leider auch ein Programmiergerät erforderlich gewesen, um einen leeren Flash-Baustein mit der Software zu beschreiben. Erst mit dem programmierten Flash konnte erstmalig "eigene" Software ins Telefon gelangen. Als Flash verwendet der Autor den PLCC32-Typ 29F040 der Firmen AMD, TI und Hyundai. Alternativ einsetzbar sind auch die Typen 29F002TC / BC und 29F010. In jedem Fall muss das Original-ROM aus dem Telefon entfernt und ein mit dem BOS-Betriebssystem programmierter Baustein eingesetzt werden. .

Simple User Program - SUP

Das SUP ist ein inzwischen gut ausgestattetes Bedienprogramm, das für die 3 Telefone C3, C4, C5 eine gemeinsame Source-Basis benutzt. Nur das Philips Porty hat ein extra SUP.Das "Simple User Program" wurde ursprünglich aus C5Demo V1.1 entwickelt. Die Funkgerätesoftware hat inzwischen folgende allgemeine Eigenschaften:

Windows-Software, die wärend der Enwicklung entstand

Der (alte) C5MemoryLoader


Der gute alte C5 Memory Loader:
Er wird sicher bald durch das komfortablere Tool "C5Loader" ersetzt werden. Die Aufgabe dieses Programmes war es schnell und einfach Software ins C5 zu bekommen...


...aber auch einen "Rumpf" für Testzwecke (hier die Steuerung von "C5Test") zur Verfügung zu haben.

PCP-Server


Dieses "winzige" Tool ist die Schnittstelle von den Windows-Programmen zum C5. Es stellt einen OLE-Server dar, der 2 Sendeprozeduren und ein OnReceive-Event besitzt. Es ist somit sehr wichtig.

PCP-Memory-Viewer


Mit dem PCP MemoryViewer hat der Autor sich ein kompfortables Werkzeug geschaffen, um in das Innenleben des C5 zu schauen. Da ein Debugging-Modul immer noch nicht fertiggestellt ist, diente dieses Programm neben einem digitalem Speicherozsilloskop in erster Linie der Überprüfung von Daten. Ein paar Stichpunkte zur Funktionalität:

PCP-Message-Viewer


Diese simple Software stellt legentlich Textmeldungen, die das C5 sendet, dar. Jedoch war auch diese Software sehr Hilfrich bei der Entwicklung.

Übrigens:
Alle Windows-Programme wurden mit Delphi5 geschrieben.

Softwareentwicklung

Die Software SC5BOS ist nicht das einige was im Laufe der Entwicklungsarbeit entstand. Neben SC5BOS sind eine Reihe von Testprogrammen, die im C5 ausführbar sind entstanden. Dazu zählen u.a. FlashWRT, DSPTest, C5Demo, I2Ctest und C5Test. Letzteres wird weiterentwickelt, da die anderen Programme ihre (Test-) Aufgabe erfüllt haben. Neben C5Demo, das Programmierern als "Auschauungsobjekt" für eigene Projekte dienen soll, entstand vor kurzem C5 Simple User Program (C5-SUP). Diese Software wird ständig weiterentwickelt und stellt eine Bediensoftware dar, die kommerziellen Funkgeräten in nichts nachsteht. Einige Features in Kurzform: Unweigerlich entstand auch PC (Windows-) Software: Diese unter Delphi5 geschriebenen Tools sind für die Kommunikation mit dem C5 (oder "kompatiblen" Geräten) gedacht. Kern der Kommunikation ist ein als PCP (Packet Communication Protocol) bezeichnetes Übertragungsprotokoll. Es spezifiziert eine auf Paketen aufgebaute Kommunikation zwischen 2 Geräten (hier C5 und PC). Die Fähigkeiten der Windows-Software in Kurzform: (Diese Software wird in einem extra Dokument behandelt.)

Der eigentlicher Kern der Entwicklung - SC5BOS - wird neben der kompletten Umbaubeschreibung in SC5BOSDevelop (PDF) beschrieben. Ebenso sind auch alle relevanten Entwickungsergebnisse zusammengefasst.


Alle Funktionen des SC5BOS werden analog dem guten alten DOS per Soft-Interrupt aufgerufen. Der Autor ist sich jedoch bewußt, das der intern mit 4,032MHz getacktete NEC-Controller kein "Rennpferd" ist und im Gegensatz zu einer modernen Atmel-CPU (wie im Umbau von Uwe Henning) recht gemächlich macht (mit unter 20Takte pro Befehl). Dennoch lohnt sich unserer Meinung nach der Umbau "durch Software". Folgende Gründe sprechen dafür:
Mittlerweile wurde die Version 0.9e fertiggestellt.

Einige Features in Kurzform:


Auszüge aus der Dokumentation (SC5BOS)

Lastenheft SC5BOS

Konzeptdokumentation SC5BOS

Das SC5BOS ist in dem Flash in einem kleinen Block am oberen Aderessende untergebracht. Die für den Einsatz im C5 in Frage kommenden Flashtypen (z. B. 29F002TC, 29F040) besitzen einen 16Kbyte-Sektor (29F002TC) oder einen 64Kbyte-Sektor (29F040) am oberen Aderessende. Da Sektoren in einem externen Programmiergerät komplett gegen Überschreiben geschützt werden können, kann ein solch geschütztes SC5BOS-Flash auf fest ins C5 eingelötet werden. Da jedoch wichtige Aufgaben wie die komplette serielle Kommunikation vom SC5-API gekapselt werden (müssen), ist jedoch erst einmal ein gesockelter Flash mit ungeschützten SC5BOS vorzusehen. Bei Bedarf kann hier das gesamte Inhalt neugeschrieben werden, was jedoch kritische Momente erfordert (Bootloaderprogramm nur noch im SRAM)!

...

Betriebssystemerfordernisse:

...

technische Beschreibung des SC5BOS

Funktionen und Fähigkeiten des SC5BOS-Bootloaders
Nach dem Drücken des Einschaltknopfes am C5 springt der Prozessor den Reset-Vektor (0FFFF0h) an. An ihm befindet sich ein far-jump, der auf eine Reset-Routine zeigt. In dieser Routine werden alle wichtigen Speicherbereiche und benötigte Peripherie initialisiert und eine Startmeldung (Licht, 3xBeep) zum Hörer geschickt. Danach sucht das Programm an den 64k-Segmentanfängen im Flash nach der Kennung "SC5PRG". Die Flash-Größe wird über eine Datenspiegelung detektiert (Daten spiegeln sich beim 256K-Modell). Findet der Bootloader eine Kennung, so führt er das Programm, das dort abgelegt ist aus. Ansonsten wird eine einfaches Not-Programm gestartet, das dem Benutzer ein Update der Software erleichtern soll.
Kommunikationsprotokoll
Für eine geordnete Kommunikation über die externe serielle Schnittstelle ist das SC5BOS verantwortlich. Es ist ein rudimentäres Kommunikationsprotokoll implementiert, das auf PingPong-Paket-Transfer basiert. Das Protokoll stellt 10 Ports (eigene Kanäle auf der seriellen Leitung) zu Verfügung, von denen 2 vom SC5BOS benutzt werden. 5 Ports sind so genannte well-known-ports, deren Funktion bekannt und hier dokumentiert ist.

...