Deze website maakt gebruik van zogeheten cookies. Klik op [OK] om deze melding te verbergen. Klik hier om meer informatie te lezen over de gebruikte cookies.
P O L Y T E C H . N U
English

Racal Cougar PRM4515L technische beschrijving

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
image

image

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.
image is loading...
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


image

image

image


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


image


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.)

image




Racal Cougar EEPROM programmering
kanaalnummerfrequentie
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
image

image