日記・備考録 |
2005 |
2006 |
2007 |
2008 |
2009 |
2010 |
2011 |
2012 |
2013 |
2014 |
2015 |
2016 |
2017 |
2018 |
2019 |
2020 |
2021 |
2022 |
2023 | 2024/
1
2
3
4
5
6
7
8
9
10
11
12 |
2025 Search |
February | March 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
April | Home |
....................................................................................................................................
Digi-Keyから3度目の "Backorder Change Notice" が届いて、Pocket SDR 4CH版の某部品納期が 5-May → 12-May → 28-Jul → 11-Aug に変更になった (泣)。ただ、実は こないだ Chip-1-Stop (参照) で在庫見つけたので、既に注文済みなのであった。Digi-Key キャンセルしよう。Digi-Keyでも、Mouserでも、アリエクでも、在庫が見つからない場合、Chip-1-Stopで探したら見つかるかも。
....................................................................................................................................
ラズパイ5 が来たのでサクッとOSをインストールして計測。Raspberry Pi 5 (BCM2712, Arm Cortex-A76, 4C/4T, 2.4 GHz)、L1+L5、サンプリング 24 MHz x 32 CHで、CPU負荷 93 %。L6も4 CHがギリギリ。関数単体ではラズパイ4の3倍位の速度なのでもう少し伸びていいはずだが。メモリ帯域律速かな。アッチアッチなのでヒートシンク追加しないと。
-------------------------------------
Raspberry Pi 4 (BCM2711, Arm Cortex-A72, 4C/4T, 1.5 GHz)、L1+L5、サンプリング 24 MHz × 21 CHで、CPU負荷 89 %。相関器だけNEONで最適化。
-------------------------------------
https://www.github.com/gpu-fftw/gpu_fftw
ラズパイのGPUを使ったFFT。APIはFFTW3と互換だが、radix-2のSP complexのみサポート。
NEONを有効にしてFFTW 3.3.10 (参照) を作り直してみたが速くならない。今のままではラズパイ4でのL6復調が厳しいので (1 CHならなんとか動いているが)。
....................................................................................................................................
国土地理院, GNSS精密暦の提供を開始, 2024年3月28日
-------------------------------------
Switch Science, Raspberry Pi 5 / 4GB
技適認証済みラズパイ5が買えるようになっている。「Pi 4からCPU性能は 2~3倍」とあるので、サンプリング 24 MHzでも実用になるかもしれない。ということで1台ポチった。
-------------------------------------
W.Myrick, GPS Beamforming with Low-cost RTL-SDRs, GNU Radio Conference 2017
RTL-SDR × 4台 + GNSS-SDRによるビームフォーミング (YouTube)。
....................................................................................................................................
ラズパイ4でPocket SDRのリアルタイム動作を確認。まだ航法データがうまくデコードできないけど。サンプリング 6 MHz x 23 CH追尾でCPU負荷 61 %。x86とARMの動作の違いに起因する不具合を見つけるのに時間がかかってしまった。NEONによる相関器最適化はこれから。
補足: マイナス値doubleのuint32_tやuint8_tへのキャストとか、マイナス値のfmod() の結果が、x86とARMで異なる様だ。これらはC言語仕様上は処理系依存なのだと思う。(3/29追記)
-------------------------------------
Pocket SDRをラズパイ4に移植中。まずは基本関数の実行時間を計測。シングルスレッド。Core i7はAVX2で最適化。ラズパイ4は何もしていない。標準相関器でCore i7の5~6倍、FFT相関器で8~19倍遅い。FFT相関器N=48000で 3.5 msもかかっているので、L6の復調は厳しそう。NEONを有効にしてFFTW3を作り直してどれくらい速くなるか。とりあえずNEONの参考資料 (参照1, 参照2)。ちょっと見る限り、AVXよりずっと使いやすそうだが。
Core i7 1260P + AVX2 Raspberry Pi 4 (ARM Cortex-A72) N= mix_carr corr_std corr_fft N= mix_carr corr_std corr_fft 12000 0.0057 0.0166 0.0798 12000 0.0271 0.0942 0.7699 16000 0.0074 0.0224 0.1114 16000 0.0360 0.1239 0.8504 24000 0.0110 0.0340 0.1864 24000 0.0553 0.1869 1.4796 32000 0.0147 0.0457 0.1953 32000 0.0726 0.2470 2.1285 32768 0.0158 0.0462 0.2234 32768 0.0744 0.2528 2.1452 48000 0.0217 0.0689 0.1854 48000 0.1088 0.3699 3.4784 65536 0.0310 0.0949 0.6883 65536 0.1485 0.5039 6.3140 96000 0.0469 0.1424 1.1695 96000 0.2185 0.7415 12.0916
-------------------------------------
最適化もやれそうなことは大体やったので、せっかく組んだミニPC (参照) で限界CH数を探る。L1、24 MHz x 951 CH で、CPU負荷 84 % (Core i9 13900HX, 24C/32T, Ubuntu 20.04.6 LTS) 。CPU温度 75 度前後。ただ、3分位の連続動作でCPUクロックが下がって、負荷が100%に貼り付きバッファオーバーフローする。連続的には 800 CH位が限界か。水冷にすれば 1000 CHは行けそうだけど。まあ 800 CHあれば全GNSS信号を同時追尾できるはず。
補足: L1+L5、24 MHz x 135 CHでは、CPU負荷 12-14 %、CPU温度 50-54 度で安定している。これ位では電源ファンもほとんど回らないのでとても静かである。(11:20追記)
....................................................................................................................................
まだちまちまと最適化している訳だが。L1+L5、24 MHzサンプリング、644 CH中 135 CH追尾で、CPU負荷 46% (Core i7 1260P, 12C/16T)。そろそろ限界か。
....................................................................................................................................
これは凄い。STM32F4やESP32でGNSS-SDRが動いている。記事についているコメントも皆興味深い。((...) はグーグル翻訳による)
https://habr.com/ru/articles/789382/ (マイクロコントローラー上のSDR GPS受信機)
https://habr.com/ru/articles/765402/ (古いGPS受信機に新たな命が吹き込まれました)
Pocket SDRも、ラズパイ4への移植を試しているのだけど、まだちゃんと動いていない。ラズパイ4、シングルスレッドでCore i7の1/8位の性能なので、マルチスレッドで、Core i7 1260Pの1/32。6MHz × 20CH は行けるはずなのだけど。
....................................................................................................................................
0.11→0.12の主な最適化。
(1) IFデータバッファ: SP (単精度) 複素数
→ 8(4+4) bit 複素数
(2) 搬送波ミキシング: 搬送波LUT+SP複素数乗算
→ (搬送波+8bit複素数) LUT
(3) 相関器: SP FMA (乗算+加算) SIMD8並列
→ 8bit 乗算+8bit 加算 SIMD32並列
(4) 相関器中間メモリ: ヒープ → スタック
(5) CHスレッド実行サイクル: 10 ms → 50 ms
-------------------------------------
細かい最適化を追加して、24 MHz 138 CH追尾でCPU負荷 67 % (CPU下記)。ノートPCで 200 CHはギリギリ行けそうな感じ。
-------------------------------------
Pocket SDR 4CH版のケース (中、右)。ボディはタカチMX2-4-8 (参照) で、\1,758 @ 2pcs (税、送料込)。パネルは、JLC3DP (参照, SLA(Resin), Imagine Black, Black, Sanding-General sanding) で、$6.41 @ 2pcs (送料込)。中身は一部の部品が欠品で5月位まで実装できそうもない。
....................................................................................................................................
2/23 (参照) と同一条件 (12 MHz × 200秒、L1C/A 8衛星の捕捉・追尾時間、8スレッド) の結果。倍まで速くはなっていない。
$ ../bin/pocket_trk.exe L1.bin -f 12 -fi 3 -I -prn 1,4,6,9,11,12,17,19 -ti 1 TIME(s): 200.01 SRCH: 8 LOCK: 8/ 8 CH SAT SIG PRN LOCK(s) C/N0 (dB-Hz) COFF(ms) DOP(Hz) ADR(cyc) SYNC #NAV #ERR #LOL NER 1 G01 L1CA 1 200.00 38.6 ||||| 0.5803375 -3166.7 -631548.8 -BFR 31 0 0 0 2 G04 L1CA 4 200.00 44.0 ||||||||| 0.6603405 -1766.4 -340755.2 -BF- 32 0 0 0 3 G06 L1CA 6 200.00 47.4 ||||||||||| 0.1407255 444.3 93156.9 -BF- 32 0 0 0 4 G09 L1CA 9 200.00 46.7 ||||||||||| 0.3039275 752.5 163125.5 -BF- 32 0 0 0 5 G11 L1CA 11 200.00 44.9 ||||||||| 0.1660354 1823.0 366306.3 -BFR 32 0 0 0 6 G12 L1CA 12 200.00 37.9 ||||| 0.5054110 128.0 38410.2 -BF- 32 0 0 0 7 G17 L1CA 17 200.00 46.6 ||||||||||| 1.0762742 -2503.7 -491062.3 -BF- 32 0 0 0 8 G19 L1CA 19 200.00 47.7 ||||||||||| 1.0145418 -1135.0 -213399.5 -BF- 32 0 0 0 TIME(s) = 4.882
-------------------------------------
色々と頑張って最適化した。L1+L5、24 MHzサンプリング、644 CH中 137 CH追尾で、CPU負荷 74 % (Core i7 1260P, 12C/16T)。もう少し削り代があるので、ノートPCでも、200 CH位までは行けるか ?
....................................................................................................................................
Pocket SDR 4CH版の部品表まとまったので、部品代見積もってみたけど思ってたより安かった。DigikeyでFX3買って計\1.5万強 (アリエクで買って計\1.2万)。基板、ケース入れても余裕で\2万以内には収まりそう。
....................................................................................................................................
色々修正した。一晩おいて、最終チェックしてJLCPCBに発注予定。
補足: 一応デザインルールをメモ。最小クリアランス: 0.127mm, 最小配線幅: 0.1524mm, 最小接続幅: 0mm, 最小アニュラー幅:0.075mm, 最小ビア直径: 0.45mm, 導体からのクリアランス: 0.127mm, 導体からの基板幅クリアランス: 0.3mm, 最小スルーホール: 0.3mm, 穴から穴へのクリアランス: 0.254mm。JLCPCBのデザインルール (参照) から逸脱しているものもあるが、線が引けないので。(19:07追記)
再補足: TCXOのドライバ回路を修正、インピーダンス計算ミスを修正、その他色々修正して、やっと発注。10枚+ステンシル+送料で$30.41也。(3/13追記)
-------------------------------------
QZSS, みちびき初号機の開発から運用終了までを関係者に聞く (後編), 2024年03月11日
....................................................................................................................................
BI 0.5°/h, ARW 0.015 °/√h, 20 bit。
....................................................................................................................................
ケースも設計した。ボディはタカチMX2-4-8 (参照)。
....................................................................................................................................
大体できた。KiCadにもやっと慣れてきた。
補足: 致命的なミス発見。これじゃMAX2771実装できないじゃん。(11:07追記)
再補足: USB-Cだと、FX3とコネクタ間に表裏切り替え用のマルチプレクサ/デマルチプレクサが必要な様 (参照)。これ (参照) 追加。(3/8追記)
再々補足: USB 3.0 設計色々大変。インピーダンス+差動ペア遅延調整した。まあ5GbpsということはC帯だからな。(3/11追記)
再々再補足: BGAパッド上にビア置くのダメっぽいのでバッド間に移動。あと何か見落としがないか。(3/11追記)
....................................................................................................................................
QZSS, みちびき初号機の開発から運用終了までを関係者に聞く (前編), 2024年03月04日
....................................................................................................................................
Pocket SDR 4CH化のため、EZ-USB FX3の値段調べていたらDigikeyで@\5,000 近くする (CYUSB3014-BZXC)。これだと部品代\2万超える、と思ってアリエクで検索。@\1,118で売ってるところあるな (参照)。送料ちょっと高いけど。これならFX2とあまり変わらない。多分本物だと思うけど。
....................................................................................................................................
....................................................................................................................................
Home | by T.Takasu |