SpaceWire-RMAPのCRCを計算するサンプル

もう最近ではぜんぜんSpaceWireを使っていませんが、コンピュータの中なら出てきたので、C++11に書き直してgistにあげておきました。C++11だと、{}を使ったUniversal Initiaizationが使えるので、パケットのバイト列を入れたstd::vectorを初期化するのも楽ですね。(昔はpush_backをずらずら書いていた、、、) 参考: C++11 Universal Initialization は、いつでも使うべきなのか – Qiita Macで以下のgistのC++ファイルとMakefileをダウンロードして、同じフォルダに入れてmakeするとコンパイルされて、以下のように実行できます。Macじゃない人はMacを買ってください。 crc_example.cc – gist.github.com…

GROWTH FPGA/高速ADCボード – 1 – 概要など

昨年アカデミストを通じてクラウドファンディングにも挑戦した「雷雲ガンマ線実験(雷雲中の高電場での粒子加速に迫るための実験 = GROWTH実験)」の、2016-17年の冬シーズンの観測実験にむけて、ガンマ線検出器の小型化と多点観測にむけた量産を進めています。(ちなみに実験の初期の頃の信号処理システムは、大型のデスクトップマシンと「VME」や「NIM」という規格のこれまたデスクトップPCくらいのサイズのADC/アンプボードでした。これらを格納するために人が入って数日暮らせるくらいの大きさのアルミフレーム製の小屋を(榎戸さんが)作って観測場所に持って行きました。信号処理回路やPC、データ記録装置(SDカード)まで含めて10cm角サイズに収まるようになったことは感動的なエレクトロニクス技術の進歩です) 雷雲ガンマ線実験(GROWTH実験) – 京都大学の榎戸さん、原研の土屋さん、東京大学の中澤さん、和田さん、奥田さん、理研の中野さんなどと進めている楽しい基礎科学の観測実験プロジェクト。2015年度の観測結果のまとめは「冬季雷雲のガンマ線測定を狙う多地点観測システムの新規開発」(榎戸、湯浅、和田ほか 2016年5月)を参照してください。 先日、榎戸さんの研究費でシマフジ電機とともに開発したFPGA/高速ADCボードが届いたので、週末や夜の時間をつかってFPGAのコーディングを進めました。2015年度の観測装置のSpartan-6 FPGAボードで動いていたパルス計測用のVHDLコードが、今回のボードのArtix-7 FPGAとAD9231という50Mサンプル/秒のADCチップでも動作するようになりました(8月最終週)。また、9月3-4日の週末を使って、このFPGA/ADCボードに載せてあるSPIのSlow ADC/DACとLED、GPIOピンをRaspberry…

【小型衛星】ASNAROの初期観測結果が公開されています (2014/12/26)

経済産業省宇宙産業局のページで、2014年11月6日にロシアから打ち上げられた小型地球観測衛星ASNAROの、初期観測結果が年の瀬の12月26日にプレスリリースされています。公開されているデータは、2014年11月14~15日に撮像された、京都・東京・西之島(2014年に火山噴火で拡大したことが話題になった小笠原諸島の島)の写真です。 画像1(京都) 画像2(京都) 画像3(西之島) 画像4(東京) 詳細な分解能や撮像モードの記述がなく、画像そのものもかなりcropされているように見えるので、軌道上で実際にどの程度の性能が出ているのか詳細はわかりませんが、ともかく軌道上での観測が成功したようで、関係者のみなさまおめでとうございます。 ASNAROはJAXAの小型科学衛星シリーズ(SPRINT-A/Hisaki, ERG等)で使われているNEC社の小型衛星用バス(NEXTAR)に工学望遠鏡を取り付けた衛星です。NEXTARバスでは、データ通信インタフェースとして宇宙機内データ通信インタフェースのデファクトスタンダードの一つである「SpaceWireインタフェース」が全面的に採用されています。開発の初期の頃からウォッチしてきた衛星なので、観測が成功してうれしいです。(ASNAROは打ち上げ重量450kgなので、小型衛星の中でも重量級ですが) 参考資料: 技術実証衛星…

Homebrewのtapを公開しました brew tap yuasatakayuki/hxisgd

ぼくが作成した(一部かかわった)ライブラリなどをMac/Linuxで簡単にインストールできるように、パッケージマネージャ「Homebrew」で使えるtap(プライグインレポジトリのようなもの)をgithubで公開しました。これで、コマンドライン一行で次のようなライブラリを簡単にインストールできます。(tap名はいま参加しているプロジェクトの名称です) 1. tapを取り込む 以下を一度だけ実行してください。 2. インストールしたいライブラリをbrew installする tapを取り込んだ後は、通常のbrewでのインストールと同じように、 とするだけで、取り込んだtapに入っているパッケージがインストールできます。 2013年12月2日時点では、yuasatakayuki/hxisgdから以下のライブラリがインストール可能です。…

RubySpaceWire – RMAP Packet creation

The open-source SpaceWire projectのNewsのページに、RubySpaceWire (SpaceWireRMAPLibraryのRubyバインディング)を用いてRMAP Packetを生成する方法を紹介しています。ソースコードはSpaceWireRMAPLibrary/swig/testrun/test_rmappacket.rbにあります(見当たらない場合は、git pullしてください)。 Example of Ruby…

RubySpaceWire – receive and save

以下の例は、SpaceWire RMAP LibraryのRuby-bindingを用いて、SpaceWire-to-GigabitEther経由でSpaceWireパケットを受信し、バイナリファイルとして保存するサンプルです。 あるSpaceWireベースのミッション機器のデバッグのために作成したものをサンプルとして公開しておきます。 SpaceWire RMAP LibraryおよびそのRuby-bindingは、SpaceWire RMAP Libraryのgithubのページからダウンロードできます。また、SpaceWire RMAP…

SpaceWire RMAP LibraryがRubyで使えるようになりました

SWIGを使うことにより、SpaceWire RMAP LibraryがRubyから利用できるようになりました(SpaceWire RMAP Libraryのニュース記事)! コンパイルなしにSpaceWireパケットの送受信やRMAP Read/Writeアクセスが実行できます。 たとえば、以下のように。 ダウンロードは、SpaceWire RMAP…