Saya mencoba mencari tahu apa jenis modulasi dan pengkodean yang digunakan oleh remote control penutup jendela saya, yang bertujuan untuk menerapkan hal yang sama pada Raspberry Pi untuk menambahkan sedikit otomatisasi rumah.
Seorang kolega membantu saya mencicipi sinyal dengan USRP dan memberi saya file data. Saya telah memeriksanya dengan Inspectrum .
Saya khawatir sampel telah direkam terpusat sangat dekat dengan frekuensi sinyal. Saya kemudian membaca bahwa ini mungkin bukan ide yang baik, dan saya pikir inilah yang menyebabkan kebisingan permanen yang dapat Anda lihat dalam gambar. Haruskah saya memusatkan sampling beberapa kHz di bawah di masa depan?
Tekan satu kali sinyal "jendela terbuka"
Tingkat simbol, atau lebih tepatnya apa yang saya duga adalah tingkat simbol, tampaknya konsisten pada tingkat ini (sekitar 42 baud).
Ini menunjukkan energi frekuensi. Sumbu X adalah waktu, sumbu Y adalah frekuensi (baseband). Warna telah disetel untuk menunjukkan hanya kekuatan yang menarik.
Detail dari salah satu "blok"
Di sini, gambar terakhir menunjukkan, frop to bottom: frekuensi, IQ (merah / biru), dan fase. Saya tidak tahu apa yang diwakili oleh grafik frekuensi di sini.
Zoom pada transisi antara jarang ke padat
"Tingkat simbol" tampaknya tidak konstan di sini.
Saya tidak tahu modulasi, encoding, bit rate, atau protokol seperti apa yang digunakan oleh remote ini, dan saat ini satu-satunya pilihan saya adalah dengan membabi buta mencoba semua blok demod di gnuradio.
Akan sangat membantu jika jawabannya dapat mencakup beberapa panduan tentang bagaimana mendemodulasi sinyal ini di gnuradio untuk mendapatkan bit keluar. Saya pikir saya bisa mengambilnya dari sana.
Pengontrolnya untuk penutup jendela Velux, tetapi saya belum menemukan informasi di web. Saya akhirnya perlu mencari tahu chip apa yang harus dibeli untuk Arduino / rPi.
Saya dapat mengatakan bahwa chip tersebut memiliki beberapa teks yang bertuliskan, tetapi saya tidak dapat membacanya, sepertinya sudah rusak, tetapi saya tidak memiliki kaca pembesar ...: /
Data mentah diunggah ke: https://www.dropbox.com/s/rh2k7ho68dvoxhd/data_mando3.dat?dl=0 . Kecepatan sampel adalah 3 MHz. Format data adalah standar GNU Radio Companion , yaitu IQ, setiap komponen dinyatakan sebagai float 32 bit.
Memperbarui
Setelah beberapa penyelidikan lebih lanjut, ini tampaknya protokol io-homecontrol . Tampaknya itu belum direkayasa balik, ini disandikan, dan tidak ada informasi yang tersedia. Ini adalah protokol dua arah jadi saya harus mengambil sampel dari percakapan penuh (sampel saat ini hanya diambil dengan remote yang tersedia).
Secara teori chip ini dapat bekerja dengan protokol ini: http://www.analog.com/media/en/technical-documentation/data-sheets/ADF7022_2page.pdf
Konsorsium tidak akan memberikan spesifikasi. Saya masih tertarik mengendus beberapa percakapan dengan GNURadio dan melihat apakah saya dapat bekerja dari mereka. Mengingat hal ini, saya hanya dapat merekomendasikan produk io-homecontrol dan Velux.
Terima kasih!
sumber
Jawaban:
Ok saya melakukan beberapa forensik sinyal pada penangkapan data dan percaya modulasi adalah bentuk FSK.
Modulasi FSK adalah +/- 20 KHz dengan kecepatan data 38 KHz.
MEMPERBARUI: Penemuan OP bahwa ini adalah "io-homecontrol" dan datasheet dari ADI yang dia temukan telah mengkonfirmasi bahwa ini memang FSK dengan penyimpangan 20KHz dan laju data 38,4 Kbps. Lebih lanjut, tautan ini memberikan detail lebih lanjut tentang format modulasi:
https://cansecwest.com/slides/2015/From_Baseband_to_bitstream_Andy_Davis.pdf
Sepertinya itu sebenarnya Gaussian-FSK, dengan pensinyalan respons penuh (BT = 1), yang berarti respons untuk setiap bit diselesaikan sebelum bit berikutnya dimulai. Ini dapat dengan mudah diimplementasikan dengan filter Gaussian (lihat filter Gaussian FIR tanpa pengganda?) diikuti oleh NCO. Dalam hal ini setiap bit data direpresentasikan sebagai impuls diikuti oleh nol untuk panjang penuh filter dan output filter mendorong kata kontrol frekuensi ke NCO (VCO digital). (Untuk pensinyalan respons parsial yang membutuhkan penerima yang lebih rumit dan bukan yang mereka lakukan di sini, nol lebih pendek dari panjang filter, tetapi itu juga akan berfungsi). Penyimpangan frekuensi dapat diatur dengan konstanta gain pengali antara output filter dan input NCO. Pilihan untuk menggunakan Gaussian FSK vs FSK sederhana adalah untuk penahanan spektral yang lebih baik dalam bentuk gelombang yang ditransmisikan (dan merupakan alasan untuk transisi bulat yang kita lihat).
Saya akan memasukkan plot jika ada yang memiliki wawasan lebih lanjut:
Pertama pandangan makro di sekitar letupan pertama, terjadi sekitar 0,93 detik. Untuk mendapatkan plot ini, saya telah menghapus offset frekuensi yang sesuai dengan 0,2688 radian / sampel setelah dihancurkan oleh 10 sampel, dengan asumsi laju sampling asli adalah 3 MHz, ini sesuai dengan offset 12,834KHz.
Plot ini menunjukkan fase vs waktu yang tidak dibungkus (sumbu vertikal adalah radian) dan besarnya yang sesuai dengan waktu. Saya berasumsi ketika besarnya rendah bahwa kita sedang melihat kebisingan, dan sinyal yang menarik hanya terjadi ketika besarnya lebih tinggi.
Memperbesar pada bagian pertama dari ledakan, pulsa mulai sekitar 0,9265 detik, dan pada awal ledakan, fase "datar" untuk sekitar 3 ms. Sesuai dengan operator yang tidak dimodifikasi, saya percaya, dari membandingkan dengan detail yang kita lihat nanti.
Setelah 3 ms dari bagian "fase datar", ada pola yang sangat panjang dari apa yang tampaknya 1 0 1 0 1 0 dengan kecepatan data 37,5 KS / s. Modulasi terjadi antara 0 dan 180 derajat, tetapi nanti kita akan melihat fase landai yang jelas membuat saya mencurigai FSK bukan BPSK. (Jika itu MSK, saya akan berharap untuk melihat bukti rotasi 90 derajat, tetapi rotasi minimum yang saya temukan adalah 180 derajat). Perhatikan di awal pola (dengan asumsi +180 = 1 dan -180 = 0), kita melihat 1 1 0 1 0 1 0 1 ... yang kemudian bertahan dengan pola 1 0 1 0 selama kira-kira 90 ms sebelumnya lagi menyisipkan "1 1" di dekat tanda 1,02 detik, dan kemudian melanjutkan lagi sebagai 0 1 0 1 0 1 ... hingga tanda 1,414 detik. (durasi sekitar 0,4 detik dengan pola 1 0 1 0). Perhatikan "punuk" dalam lintasan keseluruhan;
Pada 1,414 detik data nyata dimulai. (Yang pertama mungkin merupakan pola sinkronisasi / akuisisi). Melihat pertama pada tampilan makro, kita melihat pola yang pada tampilan ini muncul untuk diulang 3 kali sebelum burst berakhir.
Memperbesar area pertama, kami melihat fase positif dan negatif yang konsisten mengindikasikan FSK. Pada akhir data meledak ada durasi panjang 1 untuk 4 ms diikuti oleh pola 101010 lagi sekitar 14 ms.
Ledakan berikutnya dimulai sekitar 1,51 detik, tak lama setelah yang pertama lagi memiliki pola awal yang sama dari pembawa yang tidak dimodifikasi diikuti oleh pola modulasi panjang 101010. (Meskipun sedikit berbeda dalam hal permulaannya adalah 1 1 1 1 0 1 0 1 0 1 0 1 tetapi durasi pola 1010 sebelum modulasi data lagi 14 ms)
sumber