Úvod
Pro WSJT komunikaci potřebujeme, aby byl systémový čas našeho PC
synchronizován s nějakým časovým normálem. Používáme-li
Windows 10, Microsoft to za nás nevyřeší. Obvykle
instalujeme speciální program pro časovou synchronizaci z
NTP serverů Internetu. Já používám již řadu let program
Dimension 4. Už se mi též stalo, že jsem si domluvil EME
sked a Internet zrovna nešel. Aby mě to podruhé
nepřekvapilo, rozhodl jsem se pro synchronizaci času
signálem z GPS družic.
Zařízení (HW)
Pro daný účel jsem koupil asi za 400 Kč tzv. GNSS
Receiver. Na krabičce bylo označení TOPGNSS a bylo na ní
napsáno, že zařízení podporuje protokol NMEA0183. Vlastní
zařízení má průměr asi 52 mm, výšku asi 21 mm a jde z něho
kabel s rozhraním USB délky cca 1.5m. Zařízení by mělo být
watter resistant (IPX7).
V krabičce byl ještě CD
disk se SW. Disk obsahoval zajímavé pdf dokumenty o GPS,
ovladače a pdf a zajímavé dokumenty o GPS. Obsah CD jsem
nakopíroval sem:
http://188.120.195.174/projekty/GPS/U_center/
Software
Mnoho autorů si pro
potřebu synchronizace oblíbilo GPS přijímače označované
jako 1PPS. Systémy s rozhraním RS232 nebo USB/RS232 až tak
oblíbené nejsou. Jenže já jsem hledal řešení levné,
jednoduché a zajímalo mě, zda toto nejlevnější řešení bude
fungovat i v hamovně, aniž bych přijímač vystrčil ven za
okno. Pro synchronizaci jsem použil SW od VisualGPS,
LLC, zatím jen v 30 denní demo verzi: |
|
Zkouška
SW jsem bez problémů
nainstaloval. Po spuštění počítače se mi objevuje vpravo
dole ikona (satelit):
Kliknutím pravým tlačítkem lze zobrazit ovládací
panel. Panel má více záložek. Na základní záložce vidíme
čas, datum, pod ním stav, zda je synchronizace prováděna a
regulační smyčka je uzamčena. Drobnějším písmem je pak
uváděna předpokládaná přesnost synchronizace (v sekundách,
milisekundách):
Na další záložce vidíme, kolik GPS satelitů přijímáme.
Pokud mám přijímač na radiátoru topení pod oknem, obvykle
jich přijímám více než 20 a čas je synchronizován z 12
satelitů. Zřejmě je přijímač extrémně citlivý. Na
třetí záložce vidíme časovou diferenci našich hodin od GPS
normálu a průběh řízení regulační smyčky.
Poslední záložka je zajímavá. Jsou na
ní vidět znaky přenášených zpráv. Program používá pro
časovou synchronizaci tzv. RMC a GGA zprávy. Příklad jsem
označil na obrázku červeně. Tyto zprávy začínají záhlavím,
jehož prvním znakem je dolar ($), dále následuje GP nebo
GN (GPS nebo Glonass), označení zprávy RMC nebo GGA,
čárka a číslo, jehož hodnota reprezentuje čas, u mých
příkladů je to 060039.00, což znamená UTC čas, tj. 6
hodin, 00 minut, 39.00 sekund. Dále následují informace o
zeměpisné šířce, zeměpisné délce, nějaké kontrolní součty
a označení konce zpráv. Podrobnosti najdete na internetu.
Proč o tom píšu? Vidlák má obvykle málo času a pracuje
s minimální námahou a omezenou informací. Pokud se však
naučil např. v Basic dělat se sériovým portem a tzv.
řetězci, je schopen si za večer napsat vlastní program,
který mu bude zobrazovat GPS čas nebo synchronizovat
hodiny. A to pro Windows nebo pro Linux. Možná to dám do
lekcí o začátečnickém programování, až se k tomu v zimě
dostanu. Teď na to nemám čas.
Nápověda: Zprávy GGA a RMC jsou svým formátem pro
zpracování jednoduché. Pokud si píšem program, tak prostě
a jednoduše vyčítáme všechno, co ze sériového portu leze a
ukládáme do řetězce. Bezprostředně po příjmu se podíváme
na první znaky (od dolaru po první čárku) a pokud přijmeme
to, co vidíme v příkladech, tak skočíme do procedury
dalšího zpracování - jednoduchou instrukcí vybereme z
řetězce jen časový údaj, přepočteme si ho do potřebného
formátu a porovnáme se systémovým časem. Velké diference
zahodíme, malé si uložíme, abychom je použili pro
případnou korekci. U obou požitých zpráv (GGA a RMC) je
GPS čas hned za první čárkou, vždycky na stejném místě.
Snadno se s tím dělá. Všimněte si také jiných druhů zpráv.
Např. GLL, ty mají za hlavičkou a čárkou nejdřív informaci
o poloze a potom o času. Taky se s tím dá dělat, ale to
bych musel pracněji odpočítat, odkud kam je v řetězci údaj
o čas. Neměl jsem potřebu se s tím babrat.
Na co nezapomenout?
Po
zasunutí USB si Windows 10 samy našly USB - Serial. V mém
případě mu přiřadily port COM3 a nastavily baudovou
rychlost 9600 Bd. Když jsem totéž nastavil z menu NMEATime
Panel, položka Settings - GPS - Setup Communication,
program se připojil k GPS přijímači a začal
synchronizovat. Hodnoty po ustálení jste viděli na
obrazovkách. Vypadá to, že moje systémové hodiny byly
synchronizovány s přesnosti cca plus mínus 10 ms po
ustálení. To mi bohatě vyhovuje jak pro WSJT, tak pro
měřicí ústředny.
Poznámka: Windows synchronizaci
jsm vypnul přes ovládací panely takto:
|
Závěr
Je to jednoduché řešení, s levným HW, sice s placeným, ale levným
a dobrým SW, snadno se to uvede v život a funguje to. Možná se
vyplatí stáhnout si demoverzi a když vám zrovna nepůjde Internet,
tak ji během pár minut nainstalovat, spustit a synchronizovat si
čas.
Další náměty
Již jsem naznačil. Není nic
jednoduššího, než si napsat svůj program ve Visual Basic (pro
Windows) nebo v Gambas (pro Linux) pro zobrazování GPS času a
synchronizaci systémových hodin. Nepatrně složitější je napsat si
SW pro vlastní NTP server (začátečníci kouknou sem:
https://cs.wikipedia.org/wiki/Network_Time_Protocol) a ten si
pustit např. na domácí síti LAN. Když nepůjde internet, budou se
vám Linuxy a Windowsy s Dimension 4 synchronizovat podle tohoto
serveru. Běžet to může na HW, který používáte pro úložiště či http
server. Já na to mám jednodeskový SBC Asus Tinker Board S.
Poznámky:
1. Autoři Visual GPS, LLC použili v programu pro Windows ke
stabilizaci hodnoty fázový závěs. Fázový závěs používají rovněž
trvale běžící démoni NTP v Linuxech. Prý je to podle Wikipedie
dobré pro dosažení nejlepšího výkonu. 2. Program Dimension 4
jsem ve Windows vždy používal tak, že jsem mu nastavil server
Cesnet (nebo etch) a periodu synchronizace 15 minut. Vždy se mi
zdálo, že to je pro WSJT-X dostatečné. 3. Když jsem dělal
první pokus s GPS, tak jsem četl zprávy RMC a GGA, které přišly na
port, vždy jsem z nich vypočítal diferenci (několik největších
odchylek jsem zahodil) proti mým hodinám a každých 15 minut jsem
udělal korekci z průměrné hodnoty, spočítal správný systémový čas
a tuto hodnotu jsem jebnul do PC. Vím, že to je vidlácké, proto v
rámci kurzu pro starší neprogramátory si napíšeme také jednoduchou
smyčku fázového závěsu. 4. I když možná GPS přijímač nebudete
nikdy potřebovat, je to výborná hračka na to, jak se prakticky
naučit o trochu víc o protokolu NMEA0183 ...
5. V menu programu je několik důležitých nastavení. Např. se tam
dá nastavit formát zobrazování geodetických souřadnic, zobrazování
výšky v metrech, atd. Program rovněž umožňuje udělat korekci
systémových hodin. Dokonce má políčko, do kterého lze napsat
adresu oblíbeného ntp serveru. Napsal jsem tam adresu
ntp.cesnet.cz a zjistil jsem, že diference byla asi 30 ms, když
jsem to zkoušel. Nastavil jsem tedy korekci (do dalšího pole) a
vyzkoušel. Program si svou pomalou regulační smyčkou dotáhl čas na
tuto hodnotu, takže časové údaje ze serveru cesnet a z GPS byly
stejné. |
|
|