Racal Cougar PRM4515L technical description
|
hardware ontwerp
|
Het fijne van de PRM4515L is dat de chip coderingen leesbaar zijn. Hierdoor is de werking en opbouw deels te herleiden. Er zijn veel 4000 en 7400 serie CMOS chips gebruik waarvan de werking eenvoudig te vinden is in de databladen. De centrale microprocessor is een Motorola MC146805G2. Aannemelijk is dat het programma van de microprocessor specifiek voor dit apparaat gemaakt is en de inhoud van de chips niet (meer) te achterhalen is. Met de centrale microprocessor is er een audio versterker chip te vinden en een seriële EEROM (NMC9346 ofwel NMC 93C46).
rest volgt...
|
mainboard
|
TX board
|
frequentieopwekking Ten behoeve van het (direct in de EEPROM) kunnen programmeren van andere frequenties was het nodig om het ontwerp van de frequentie opwekking te ontrafelen. Hieronder staat een schets ontwerp de frequentieopwekking van de PRM4515L zendontvanger. Het is een theoretische benadering/vereenvoudiging, dus houd er rekening mee dat de realiteit in de praktijk anders is.
Theoretisch schema van frequentieopwekking.
De frequentie wordt door middel van een faseregellus (PLL; Phase Locked Loop) opgewekt en hieruit is vrij eenvoudig het bovenstaande universele blokschema ontwerp op te maken. Er is een 6,4 MHz kristal aanwezig dat de lokale referentie oscillator is. Deze oscillator is links boven afgebeeld. De minimale stapgrootte voor één frequentiestap is 12,5 kHz. Deze frequentie moet in de fasevergelijker worden ingevoerd. Om van 6,4 MHz naat 12,5 kHz te komen, moet de oscillator frequentie gedeeld worden door 512 want 6,4 Mhz / 12,5 kHz = 512. Dit gebeurd door een "eenvoudige" deler chip. De frequentie van 6,4 MHz is logisch omdat het goed deelbaar is door twee om 12,5 kHz te verkrijgen. Delen door twee is namelijk door middel van logische chips eenvoudig en het meest gebruikelijk. Na negen keer door twee delen wordt een gewenst deeltal van 512 verkregen. (2^9 = 512) Er is ook een spanningsgestuurde oscillator (VCO; Voltage Controlled Oscillator) aanwezig. Door er een gelijkspanning in te voeren wordt de oscillator op de gewenste frequentie gezet. Als de spanning bijvoorbeeld laag is is de opgewekte frequentie 68 MHz en als de ingevoerde spanning hoog is, is de opgewekte frequentie bijvoorbeeld 88 MHz. De gewenste zend- en ontvangstfrequentie kan dus door het variëren van een glijkspanning worden bepaald. Echter is het lastig om de gewenste (klijne) gelijkspanning stabiel te houden zodat de frequentie snel verloopt. De faseregellus vergrendelt de VCO frequentie met de freqentie van de (stabiele) lokale oscillator waardoor de gewenste VCO frequentie nauwkeurig is. De VCO frequentie is de gewenste zend-ontvangstfrequentie en moet vergeleken worden met de 12,5 kHz referentiefrequentie van één frequentiestap. Door de VCO frequentie te delen door een in te stellen deeltal, wordt 12,5 kHz verkregen. Als de frequentie na delen door de in te stellen deler 12,5 kHz is, is dit gelijk aan de andere ingang van de fasevergelijker van 12,5 kHz. Dat betekent dat de spanning aan de ingang van de VCO juist is. De spanning uit de fasevergelijker stuurt de VCO aan. Als het deeltal van de programmeerbare deler wordt verandert, dan zal er een hogere of lagere frequentie komen dan 12,5 kHz. Het gevolg is dat de twee ingekomen signalen in de fasevergelijker niet meer in fase zijn. Hierop wordt de uitgangsspanning van de fasevergelijker hoger of lager, hierdoor wordt de VCO door een andere spanning aangestuurd en verandert de uitgangsfrequentie van de VCO net zo lang totdat de twee signalen die in de fasevergelijker gaan weer in fase zijn. Dus door het variëren van het deeltal, wordt de uitgangsfrequentie van de VCO bepaalt. In de praktijk betekent dit dat de microprocessor de PLL chip voorziet van data waarna het juiste deeltal wordt ingesteld in de PLL chip. Als de gewenste frequentie bijvoorbeeld 70,250 MHz is, dan stelt de microprocessor de deler in op 5.620. Want 70,250 MHz / 5.620 = 12, kHz. In de realiteit is er een speciale PLL chip gemaakt waarin de fasevergelijker is geplaatst én de programmeerbare deler. Deze is, zo lijkt het, speciaal ontwikkeld voor deze zendontvangers. De VCO is op de zender print in een metalen behuizing geplaatst om storing van buitenaf tegen te gaan omdat een VCO gevoelig is voor storing. Omdat een frequentie van tientallen megahertz niet goed te delen is door een programmeerbare deler is er gebruik gemaakt van een prescaler. De SP8789 prescaler chip deelt de hoge VCO frequentie door een zeker getal (in dit geval 20 of 21, afhankelijk van de gewenste frequentie) waardoor er een (veel) lagere frequentie overblijft dat wel goed gedeeld kan worden door de programmeerbare deler. De waarde van de programmeerbare deler wordt wel gecorrigeerd met het vaste deeltal van de prescaler.
|
encryptie print met encryptie module
|
encryptie verboden voor zendamateurs Het volgende blokje tekst is voorzien van "droge juridische praat", maar voor de volledigheid wel vermeld om problemen en teleurstellingen te voorkomen.
De PRM4515L heeft de mogelijkheid om informatie uit te zenden en te ontvangen met een 16 kBit encryptie. Experimenteel radio onaderzoekers (zendamateurs) mogen echter géén gebruik maken van encryptie. Los van de praktische problemen om een programmer te kunnen vinden om een radio te voorzien van één of meer encryptie sleutels, is er ook geen noodzaak voor encryptie tenzij iemand dubieuze plannen heeft met de apparatuur... Hier komt de droge tekst: In de wet op de telecommunicatievoorzieningen (12 augustus 1996 Nr. HDTP/RDR/349169) is in de voorschriften en beperkingen opgenomen in artikel 6 (gebruik van het amateurstation) onder lid twee wat er onder andere niet toegestaan is om uit te zenden. Onder punt f staat "versleutelde informatie". Encryptie is versleutelde informatie en is dus niet toegestaan door zendamateurs. Wanneer de mode knop op [CLR] staat, is er geen encryptie toegepast. In het geval van mode [A] of [B] wel, mits de encryptie sleutels niet gewist zijn doordat de mode knop op [Z] geplaatst is geweest. Mode [Z] staat voor ZEROING, ofwel het nullen/wissen van alle encryptie sleutels. (Voor als de radio in handen van de vijand zou kunnen vallen bij oorspronkelijk toepassing voor speciale eenheden, politie, leger en dergelijke.) Wanneer de encryptie sleugels/codes met de [Z] mode gewist zijn (en niet opnieuw worden geprogrammeerd) is er geen kans meer dat er (per ongeluk) versleutelde informatie wordt uitgezonden.
encryptiesleutel De twee te programmeren encryptiesleutels bestaan uit 120 bits. De eerste 12 bits zijn allemaal enen ofwel: 1111 1111 1111. De overige 108 bits zijn vrij te kiezen als encryptiesleutel. In de praktijk zijn deze 108 bits opgebouwd uit 36 cijfers uit het octale stelsel. Dus feitelijk 36 karakters van 0...7. Dit komt neer op 68.719.476.736 mogelijkheden aan encryptie sleutels! Een voorbeeld van een encryptiesleutel is bijvoorbeeld:
0123 4567 0123 4567 0123 4567 0123 4567 0123
In bits ziet dit er zo uit:
000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011
Met de 12 vaste "1" bits is een complete sleutel:
111 111 111 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 000 001 010 011
|
EEPROM en inhoud (frequentie programmering) herleiden
|
NMC9346 EEPROM De frequenties van de kanalen zijn in de seriële EEROM (NMC9346 ofwel NMC 93C46) geprogrammeerd. De seriële EEPROM is een 1.024 bit geheugen chip dat elektrisch te wissen en te programmeren is. Via het programmeer apparaat (MA 4073) of fill gun (MA 4083) wordt er informatie naar de microprocessor gekopiëerd dat doorgegeven wordt naar het CMOS geheugen.
EEPROM inhoud herleiden Ik had een PRM4515L waarin de originele frequenties waren geprogrammeerd. Aangezien deze niet in de 70 MHz amateurband waren, kon ik de zendontvanger niet gebruiken. omdat ik geen programmeer apparaat (MA 4073) of fill gun (MA 4083) heb, ben ik gaan zoeken hoe andere frequenties te programmeren zijn. De frequenties en encryprie sleutels zijn te programmeren waarvan de encryptie sleutels in een aparte encryptie print geprogrammeerd worden. Hiermee is het aannemelijk dat de frequenties in de EEPROM geprogrammered zijn. Een verslag van de relatie tussen de frequenties en EEPROM inhoud is hieronder beschreven.
verslag van EEPROM inhoud herleiden 20160804 - Omdat er "maar" 64 registers met 16 bits zijn, is de grootte van het geheugen (gelukkig) erg beperkt. Hiermee onstaat er hoop dat het mogelijk is om de inhoud van de chip te "decoderen" om uit te vinden hoe een gewenste kanaalfrequentie kan worden geprogrammeerd. Tenminste, als er geen "rare" versleuteling wordt toegepast, wat ik niet aannemelijk acht. Ik schat in dat het mogelijk om de EEPROM uit te lezen en zo in een andere EEPROM te programmeren is. Eenvoudig kopiëren van de kanaalfrequenties moet zo mogelijk zijn. Als de inhoud te ontcijferen is, is het misschien ook mogelijk om relatief eenvoudig om gewenste kanaalfrequenties direct in het geheugen te programmeren! De EEPROM is tot ongeveer 40.000 keer te wissen en te beschrijven, dus dat is geen beperking (zoals dat bij een EPROM wel is omdat deze meestal minder dan tien keer te programmeren is). Helaas heb ik geen "in circuit" programmer, dus zal ik de chip moeten desolderen om deze uit te kunnen lezen. De geheugen informatie wordt door de centrale microprocessor verwerkt en met een data lijn naar de synthesizer chip gestuurd. De synthesizer regelt de zend en ontvangstfrequntie door de deeltallen te variëren. De microprocessor én de synthesizer is een "black box" omdat de inhoud niet te herleiden is. De keramische 16 pen DIP chip op het zender ontvanger bord is de betreffende synthesizer. (De naastgelegen 8 pen DIP chip is de prescaler, deze deelt door 20/21.) Omdat er twee "onbekende" chips in het circuit zitten, is niet bekend hoe het signaal opgebouwd is en daarmee is het moeilijk om het gedrag te voorspellen. Hopelijk zijn de enen en nullen van de data lijnen te herleiden naar een frequentie en kanaal. De kanalen en frequenties zijn bekend, als deze naast de chip inhoud worden geplaatst is het hopelijk mogelijk om de relatie te herleiden. Bij het schakelen naar een ander kanaal moet de synthesizer chip gevoed worden met nieuwe deeltal informatie, dus zijn de enen en nullen te "isoleren" uit de data stroom per kanaal/frequentie. Kortom, tijd voor uitlezen, meten en de data analyseren. Wordt vervolgd...
20160806 - Korte update: Het desolderen van de EEPROM is geslaagd en de chip is uitgelezen! Het "reverse engineeren" kan van start! Puzzelen maar! Voor de volledigheid staat hieronder de inhoud van de chip. De kolommen van links naar rechts: adres [hexadecimaal], adres [decimaal], geheugenwaarde [hexadecimaal], geheugenwaarde [binair] en geheugenwaarde [decimaal].
originele EEPROM inhoud | adres locatie | waarde | HEX | DEC | HEX | BIN | DEC | 0x00 | 00 | 0x9C16 | 1001 1100 0001 0110 | 39.958 | 0x01 | 01 | 0xA612 | 1010 0110 0001 0010 | 42.514 | 0x02 | 02 | 0xA63A | 1010 0110 0011 1010 | 42.554 | 0x03 | 03 | 0xA62E | 1010 0110 0010 1110 | 42.542 | 0x04 | 04 | 0x9C1A | 1001 1100 0001 1010 | 39.962 | 0x05 | 05 | 0xA610 | 1010 0110 0001 0000 | 42.512 | 0x06 | 06 | 0x9C3E | 1001 1100 00111 110 | 39.998 | 0x07 | 07 | 0xA646 | 1010 0110 0100 0110 | 42.566 | 0x08 | 08 | 0xA648 | 1010 0110 0100 1000 | 42.568 | 0x09 | 09 | 0xA620 | 1010 0110 0010 0000 | 42.528 | 0x0A | 10 | 0xC636 | 1100 0110 0011 0110 | 50.742 | 0x0B | 11 | 0xD032 | 1101 0000 0011 0010 | 53.298 | 0x0C | 12 | 0xD20A | 1101 0010 0000 1010 | 53.770 | 0x0D | 13 | 0xD04E | 1101 0000 0100 1110 | 53.326 | 0x0E | 14 | 0xC63A | 1100 0110 0011 1010 | 50.746 | 0x0F | 15 | 0xD030 | 1101 0000 0011 0000 | 53.296 | 0x10 | 16 | 0xC80E | 1100 1000 0000 1110 | 51.214 | 0x11 | 17 | 0xD216 | 1101 0010 0001 0110 | 53.782 | 0x12 | 18 | 0xD218 | 1101 0010 0001 1000 | 53.784 | |
0x13 | 19 | 0xB446 | 1011 0100 0100 0110 | 46.150 |
De eerste analyse stappen/aannames: - Tien kanalen en twintig adressen, aannemelijk is dat de zend en ontvangstfrequentie een apart adres hebben; - Gezien de grootte van de getallen (en de werking van een PLL) is het aannemelijk dat de volledige frequenties opgeslagen zijn en niet de shift; - Omdat de tweede helft van de geheugen waarden groter zijn, is het aannemelijk dat het twee blokken zijn. De eerste van het eerste blok hoort waarschijnlijk bij de eerste van het tweede blok; - Er lijkt een verschuiving van grofweg 10.000 in de register waarden te zitten, mogelijk is dit het verschil van het middenfrequent deel van 21,7 (?) MHz;
Voor de rest moet de data nog worden geanalyseerd...
20160812 - Woehoe! De frequentie programmering is ontrafeld! Verdere informatie volgt nog...
20160825 - Aanvullende/vervangende ruwe tekst: (tabellen volgen nog...)
De PRM4515L zendontvanger werkt van 68...88 MHz. Er kunnen met een aan te sluiten programmer of “fill gun” tien kanalen (en encryptie sleutel) worden geprogrammeerd. Helaas is deze programmer schaars/duur en graag zou ik de frequenties zelf kunnen programmeren. Hierop ben ik aan het “spitten” gegaan in de PRM4515L. (De portofoon wordt trouwens wel geprogrammeerd door Baco geleverd.) Het fijne van de PRM4515L is dat de chip coderingen leesbaar zijn. Hierdoor is de werking en opbouw deels te herleiden. Er zijn veel 4000 en 7400 serie CMOS chips gebruik waarvan de werking eenvoudig te vinden is. De centrale microprocessor is een Motorola MC146805G2. Aannemelijk is dat het programma van de microprocessor specifiek voor dit apparaat gemaakt is en de inhoud van de chips niet (meer) te achterhalen is. De PLL chip is helaas klant specifiek en hier is geen enkele informatie van te vinden. Naast de centrale microprocessor is er een audio versterker chip te vinden en een NMC9346 seriële EEROM. Aannemelijk is dat de frequenties van de kanalen in de EEPROM zijn geprogrammeerd. De seriële EEPROM is een 1024 bit geheugen chip dat elektrisch te wissen en te programmeren is. Via het programmeer apparaat of "fill gun" wordt er informatie naar de microprocessor gekopieerd dat doorgegeven wordt naar het CMOS geheugen. Omdat er "maar" 64 registers met 16 bits zijn, is de grootte van het geheugen erg beperkt. Hiermee ontstond de hoop dat het mogelijk is om de inhoud van de chip te "decoderen" om uit te vinden hoe een gewenste kanaalfrequentie kan worden geprogrammeerd. Als de inhoud te herleiden is naar de frequenties, kunnen de gewenste frequenties direct in de EEROM worden geprogrammeerd zonder programmer! Als eerste is de EEPROM gedesoldeerd en uitgelezen. De informatie van de oorspronkelijke EEPROM frequenties zijn gebruikt om de “code te kraken”. Dit was complexer omdat de originele instelling met simplex en duplex kanalen was geprogrammeerd. Voor het gemak zijn de gewenste frequenties met de corresponderende geheugen adressen en waarden in tabel 1 afgebeeld.
Na het uitlezen van de EEPROM heb ik uren zitten turen naar de informatie en na twee dagen is het decoderen gelukt! Ik probeer jullie nu mee te nemen in mijn gedachtegangen. Twintig adres posities zijn gevuld met “zinnige informatie”, de overige adressen zijn gevuld met “FFFF”. Een logische aanname is dan dat voor elk kanaal één TX en één RX frequentie danwel deeltal opgeslagen in een aparte adres locatie. Dit vermoeden wordt versterkt doordat de tweede helft van de posities duidelijk een andere serie is dan de eerste helft geheugenwaarden. Toen werd het moeilijk… Logisch is het dat deeltallen opgeslagen zijn in het geheugen en na heel veel rekenen kwam er niets logisch uit. Na lang turen viel op dat de eerste twee karakters een verband vertonen met de MHz waarde en de laatste twee karakters met de kHz waarde. Voor de zendfrequentie is gebleken dat het aantal kHz gedeeld door 12,5 (kHz), de twee laatste hexadecimale waarden van het geheugen vormen. 325 kHz / 12,5 = 26 decimaal = 1E hexadecimaal. Na veel rekenen is het verband voor het aantal MHz ook uitgevonden. Het aantal megahertz maal twee minus twee zijn hexadecimaal de eerste karakters van de geheugenwaarde. Het wordt waarschijnlijk duidelijker met een rekenvoorbeeld: (70 MHz × 2) – 2 = 138 decimaal = 8A hexadecimaal. En zo kan elke zendfrequentie tussen 68 en 88 MHz worden bepaald. (Buiten deze grenzen kan ook, maar dan blijkt de berekening anders te worden. Hier ben ik nog niet helemaal uit, maar is voor ons ook niet nodig om te weten.) Het bepalen van de ontvangstfrequentie is bijna gelijk aan het bepalen van de zendfrequentie. Het enige verschil is dat er een verschuiving van 21,450 verrekend moet worden. Ook dit zal (hopelijk) duidelijk worden aan de hand van een rekenvoorbeeld voor 70,300 MHz: ((70 MHz + 21) * 2) – 2) = 180 decimaal = B4 hexadecimaal. ((300 kHz + 450) / 12,5) = 60 decimaal = 3C hexadecimaal. De corresponderende geheugenpositie wordt dus gevuld met “B43C” voor 70,300 MHz als ontvangstfrequentie. Omdat de zend- en ontvangstfrequentie per kanaal afzonderlijk kan worden ingesteld, kan zo ook een repeater shift worden toegepast.
De PRM4515L wordt door Baco geprogrammeerd geleverd met de frequenties in tabel 1. Indien gewenst zou ik tegen een geringe vergoeding een nieuwe EEPROM met gewenste (amateur)frequenties kunnen programmeren en opsturen. De chip moet dan wel worden ge(de)soldeerd. (Voor het plaatsen van een ic-voetje is helaas te weinig ruimte.)
Racal Cougar EEPROM programmering | kanaalnummer | frequentie | TX | RX | geheugen locatie | geheugen waarde | geheugen locatie | geheugen waarde | 0 | 70,250 MHz | 0x00 | 8A14 | 0x0A | B434 | 1 | 70,275 MHz | 0x01 | 8A16 | 0x0B | B436 | 2 | 70,300 MHz | 0x02 | 8A18 | 0x0C | B438 | 3 | 70,325 MHz | 0x03 | 8A1A | 0x0D | B43A | 4 | 70,350 MHz | 0x04 | 8A1C | 0x0E | B43C | 5 | 70,375 MHz | 0x05 | 8A1E | 0x0F | B43E | 6 | 70,400 MHz | 0x06 | 8A20 | 0x10 | B440 | 7 | 70,425 MHz | 0x07 | 8A22 | 0x11 | B442 | 8 | 70,450 MHz | 0x08 | 8A24 | 0x12 | B444 | 9 | 70,475 MHz | 0x09 | 8A26 | 0x13 | B446 |
|
databus
|
|