Mengembangkan Perangkat IoT Menggunakan Bluetooth LE
Teknologi Bluetooth dengan penuh semangat mematahkan posisinya di Internet. Bagian dari teknologi ini, yang disebut Bluetooth LE ( Bluetooth Low Energy , alias Bluetooth Smart , alias BLE ) secara langsung memposisikan dirinya sebagai pilihan ideal untuk IoT ( Internet of things ). Sulit untuk tidak setuju. BLE sudah tahu cara merutekan lalu lintas Internet, menentukan koordinat dalam ruangan, menghubungkan pengontrol logika yang dapat diprogram industri, mendukung server WEB , menghubungkan timbangan, termometer, monitor detak jantung, oksimeter, monitor tekanan darah, dan banyak hal lainnya. C bleBanyak masalah yang melekat dalam solusi Wi-Fi secara otomatis diselesaikan . Tidak lama sebelum saat ketika perangkat dengan BLE dapat diatur dalam jaringan MESH , menggunakan teknologi yang mirip dengan ZigBee . Ini sudah tercermin dalam spesifikasi Bluetooth 5.0.Oleh karena itu, ketika mengembangkan modul IOT saya , saya tanpa syarat lebih memilih BLE daripada menggunakan Wi-Fi . Saya akan mempertimbangkan bagian periferal dari jaringan BLE menggunakan modul debug K66BLEZ sebagai contoh .Di sini saya ingin menggambarkan rute pengembangan saya dari kebodohan BLE yang hampir lengkap ke produksi serial.Keakraban dengan modul K66BLEZ1 dimulai pada artikel ini:.
. FatFs
.
Modul K66BLEZ menggunakan chip MKW40Z160 ( 48 MHz Cortex-M0 +, 160 KB Flash, 20 KB RAM ) yang diproduksi oleh NXP sebagai transceiver BLE . Chip ini menarik karena, bersama dengan BLE, ia juga dapat berfungsi sebagai transceiver sinyal dari standar 802.15.4 . Dan 802.15.4 standar , seperti yang Anda tahu, adalah pembawa dalam teknologi ZigBee . ZigBee stack sendiri untuk MKW40Z belum dirilis, tetapi firmware sudah ditawarkan di mana 802.15.4 bekerja secara bersamaan dengan BLE . Diagram bagian modul dengan chip BLE ditunjukkan di bawah ini.
(Klik untuk memperbesar)Di tempat chip MKW40 sudah memiliki chip yang MKW41 dengan volume 128 KB RAM, 512 kapasitas KB Flash dan dukungan untuk semua protokol populer: BLE 4.2, ble Mesh, ZigBee, Thread A, 6LoBLE IPv6 . Belum ada dokumentasi terbuka tentang chip baru ini, tetapi menjanjikan pin yang kompatibel dengan MKW40.Chip BLE MKW40 pada modul terhubung ke mikrokontroler utama MK66 dengan antarmuka SPI dan I2C. Antarmuka I2C juga menghubungkan chip ke chip charger. Saluran komunikasi utama diimplementasikan pada antarmuka SPI dengan bit rate 6 Mbit / s.Debugging program dalam chip MKW40 dapat dilakukan melalui antarmuka SWD menggunakan adaptor JTAG dan melalui antarmuka debugging UART0 juga menampilkan ke konektor debugger X4.NXP menyediakan lebih dari dua lusin contoh implementasi berbagai aplikasi pada chip MKW40, termasuk: tekanan, glukosa, suhu, sensor jarak, meter detak jantung, dll. Ada aplikasi untuk UART nirkabel dan bootloader nirkabel.Saya melakukan refactoring mendalam dari kerangka NXP untuk chip ini dan membuat profil baru dengan program demo pada PC Windows yang tidak memerlukan adaptor terpisah di sisi PC. Tetapi lebih lanjut tentang itu nanti.Bluetooth LE sulit dipelajari. Alasannya adalah spesifikasi tebal dan sejumlah besar parafrase singkat dalam dokumentasi produsen, segera dimulai dengan terminologi yang tidak biasa. Jadi mari kita mulai dengan itu.Decoding dan terjemahan istilah dan singkatan, gaul.
- Pairing — (). BLE . , PIN .
- Bonding — (). BLE .
- Device authentication — () , .
- Advertising — BLE (). , , , .
- Scanning — BLE . , .
- Profile — . , , .
- UUID — universally unique identifier. 128- .
- BLE Host — . BLE , . GAP, GATT, GATT, L2CA.
- BLE Controller — . BLE - Bluetooth.
- HCI — Host Controller Interface. API BLE BLE .
- GAP — Generic Access Profile, . layer (). . , BLE .
- GATT — Generic Attribute Profile, . . — (, , ...) , , .. , UUID.
- L2CA — Logical Link Control and Adaptation Layer. . , , , , . BLE .
- SMP — Security Manager Protocol. . L2CA.
- LTK — Long-Term Key. BLE .
- IRK — Identity Resolving Key. .
- CSRK — Connection Signature Resolving Key. .
- RAND — 64- , LTK
- EDIV — 16- , LTK
- MITM — man-in-the-middle. .
- Message integrity — .
- — , . BSP (board support package), HAL (hardware abstraction layer), OSA (OS abstraction layer), (middleware) : , , .
Ketika memilih chip untuk BLE, saya melakukan analisis kecil terhadap penawaran dari produsen paling terkenal. Kebanyakan dari semua saya tertarik pada komposisi perangkat lunak yang diusulkan, kerangka kerja dan alat kompilasi-perakitan-debugging untuk proyek-proyek di bawah inti ARM. Faktor penting adalah kesinambungan dengan lingkungan IAR dan kerangka kerja RTOS MQX yang digunakan ketika mengembangkan aplikasi pada prosesor utama modul.menyediakan SDK untuk chip nRF51822 dengan inti Cortex - M0 . Disusun dalam IAR, KEIL, GCC. Tumpukan BLE diwakili oleh pustaka monolitik tanpa kode sumber yang disebut SoftDevice di mana semua API diimplementasikan: GAP, GATT, L2CA, HCI. Di sekitar perpustakaan ini dibangun kerangka kerja dengan driver. Kerangka kerja ini dilengkapi dengan dua RTOS: Keil's RL-ARM RTX , dan FreeRTOS . Kerangka kerja ini menggunakan teknologi serialisasi protobuf dan debugger RTT Segger .Selain itu, nrf5 IoT SDK ditawarkan.. Ini termasuk kode sumber protokol MQTT, COAP, TLS (diambil dari proyek MBED), cJSON, lwip (stack protokol TCP / IPv4 / IPv6 gratis), antarmuka soket, adaptor IPv6. Ada juga 6LoWPAN , tetapi tanpa kode sumber.pada ARM hanya membuat chip BLE 2-core CC2640 ( Cortex-M3 dan Cortex-M0 ), tetapi spesifikasi yang sesuai adalah Bluetooth 4.2 . Untuk unduhan ini memberikan SDK SimpleLink Bluetooth Perangkat lunak berenergi rendah Stack 2.2.0 Ini dikompilasi oleh lingkungan pengembangan Code Composer Studio sendiri, juga di lingkungan IAR. Itu datang dengan RTOS TI-RTOS 2.16 sendiri dan kerangka kerja yang dikembangkan di sekitar perpustakaan tumpukan BLE. SDK sebagai salah satu skenario melibatkan penggunaan prosesor aplikasi eksternal - Simple Application Processor (SAP). Chip CC2640 itu sendiri disebut sebagai Simple Network Processor (SNP). Di antara mereka, komunikasi dibuat di bawah protokol yang disebut Unified Network Processor Interface(NPI). Di sisi CC2640, TI-RTOS harus digunakan, di sisi prosesor SAP, Anda dapat menggunakan RTOS sesuai kebijakan Anda. Kode sumber untuk protokol NPI disediakan dengan SDK untuk sisi SAP dan sisi SNP. Ini adalah teknologi SimpleLink .Tumpukan BLE itu sendiri dibagi menjadi 3 perpustakaan yang dikompilasi tanpa sumber: host, controller, HCI. Ketiga perpustakaan hanya bekerja pada prosesor Cortex-M3, yang merupakan bagian dari chip CC2640. Selain mempelajari TI-RTOS, pengguna perlu mempelajari mekanisme atau protokol perangkat lunak khusus untuk berinteraksi dengan tumpukan BLE yang disebut iCall.memproduksi ATBTLC1000 Bluetooth LE chips pada inti Cortex-M0 . Seluruh tumpukan chip ditulis ke ROM. Tidak ada alat terbuka untuk memprogram chip ini ditemukan di situs web Atmel. Sebaliknya, Atmel menyarankan menggunakan mikrokontroler eksternal untuk berinteraksi dengan ATBTLC1000. Perangkat lunak untuk mikrokontroler eksternal dan contohnya ada dalam Kerangka Kerja Perangkat Lunak Atmel. Kompilasi di Atmel Studio (shell untuk GCC) atau di IAR.menghasilkan keluarga chip BLE yang dapat diprogram pada inti Cortex-M0 - PSoC 4: PSoC 4XX8 dan PRoC CYBL1XX7X yang mendukung spesifikasi Bluetooth 4.2 . Proyek untuk chip dibuat dalam IDE PSoC Creator khusus. Chip dari Cypress berbeda karena tidak ada konfigurasi periferal yang siap pakai (UART, SPI, I2S, PWM, dll.), Ia harus dibuat dari elemen pustaka dalam editor sirkuit dengan penambahan pustaka perangkat lunak. Ini dirancang untuk memberikan fleksibilitas. Meskipun itu menambah banyak pekerjaan untuk pengembang. Proyek yang dikonfigurasikan dapat dikompilasi oleh salah satu rantai alat: GCC, IAR, Keil. BLE ada salah satu perpustakaan. Tumpukan BLE dikirimkan sebagai perpustakaan monolitik yang dikompilasi tanpa kode sumber yang menggabungkan host BLE, pengontrol BLE dan HCI. Namun, perusahaan memposting kode sumber untuk aplikasi Android dan iOS yang bekerja dengan BLE.memproduksi EFR32 Blue Gecko Bluetooth Smart SoCs berdasarkan pada inti ARM Cortex-M4 yang mendukung spesifikasi Bluetooth 4.2 EFR32BG1P332F256GMxx jenis chip dapat memberikan daya hingga 19,5 dBm dan menggabungkan saluran radio 868 MHz yang terpisah dengan daya hingga 20 dBm dan sensitivitas -121,4 dBm. Chip Silicon Labs adalah banyak pilihan fungsi pin alternatif dan sistem yang disebut Sistem Periferal Reflex(PRS). Meskipun periferal tidak dapat dibuat seperti chip Cypress, tetapi koneksi ke pin hampir sewenang-wenang, kehadiran PRS memungkinkan untuk berinteraksi satu sama lain tanpa melibatkan prosesor. Silicon Labs BLE Stack Mampu Menerima Hasil Pembuatan Profil oleh Bluetooth Developer Studioyang akan dibahas di bawah ini. Silicon Labs menawarkan dua tumpukan Bluetooth. Salah satunya dirancang untuk modul Bluegiga dan, selain BLE, juga mendukung Bluetooth biasa. Tumpukan kedua memenuhi spesifikasi 4.2 dan hanya LE. Tumpukan BLE dikirimkan sebagai pustaka terkompilasi monolitik tanpa sumber. Untuk opsi dengan mikrokontroler eksternal, ditawarkan protokol serial dan API. Baik GCC, IAR dan Keil dapat dikompilasi. Semuanya dilakukan dalam satu lingkungan pengembangan Simplicity Studio V4 . Kerangka kerja stack yang menyertainya tidak didukung oleh RTOS. Tetapi dalam kode sumber Simplicity Studio Anda dapat menemukan mutiara seperti Speex pada 8 kbps yang cocok untuk mentransmisikan suara melalui BLE dan jendela GUI yang kuat dari Segger.membuat chip pengontrol jaringan BlueNRG berbasis Cortex-M0 yang mengandung tumpukan BLE sesuai dengan spesifikasi Bluetooth 4.1 .Chip itu sendiri tidak dapat diprogram, tetapi memiliki antarmuka perintah aplikasi serial (ACI) di mana mikrokontroler eksternal harus berkomunikasi dengan mereka. Kerangka kerja telah dikembangkan untuk ACI, dan itu dapat dimasukkan sebagai bagian dari lingkungan pengembangan ST milik STM32Cube.tidak membuat chip BLE pada ARM Cortex, tetapi tertarik dengan penerapan jaringan MESH pada modul Bluetooth . Video ada di sini . Kode sumber berbagai aplikasi BLE untuk Android dan iOS disusun. Ada SDK.membuat chip BLE pada inti RL78 16- bitnya . Tumpukan BLE hanya dikeluarkan untuk pengguna premium. Semua sendiri - kompiler, RTOS, host mikrokontroler. Tetapi ada plug-in untuk Bluetooth Developer Studiomenawarkan, seperti yang mereka klaim, chip BLE terkecil . Namun, chip dengan memori Flash DA14583 (sisanya hanya dengan ROM) tidak dapat disebut terkecil - 5x5 mm. Inti dari Cortex-M0 . Daya maksimum 0 dBm . Dukungan untuk spesifikasi Bluetooth 4.1. Untuk mendapatkan SDK dari perusahaan Anda harus mendaftar dan lulus ujian. Tetapi dengan parameter chip seperti itu, saya bahkan tidak mencoba untuk mendapatkan SDK.Jadi, sumber MQTT, COAP, TLS, SPEEX, LwIP dan sebagainya. mereka yang berada di SDK yang berbeda tidak begitu menarik bagi kami, mereka dapat ditemukan secara bebas di Github tanpa terikat pada kerangka kerja tertentu. Dukungan untuk spesifikasi Bluetooth 4.2 tidak banyak, karena tidak mungkin menggunakannya pada PC.Niche RTOS seperti TI-RTOS atau penjadwal khusus akan mempersulit kita untuk menguasainya, kami mencoba menghindari keputusan seperti itu.Saya senang bahwa saya memilih solusi pada Kinetis.Apa yang menarik tentang NXP Bluetooth LE stack untuk keluarga Kinetis.
Tumpukan BLE untuk Kinetis, seperti yang lain, datang dalam bentuk perpustakaan yang telah dikompilasi. Di sekitar pustaka-pustaka ini, kerangka kerja multitasking dibangun yang mencakup driver dan lapisan abstraksi perangkat keras dalam kode sumber independen dari sistem operasi. Kerangka kerja dapat dikonfigurasi untuk bekerja tanpa sistem operasi, atau dapat digunakan. Segera dalam pengiriman, kerangka kerja ini diadaptasi untuk FreeRTOS. Tetapi ia berinteraksi dengan FreeRTOS melalui serangkaian fungsi bantu yang disebut lapisan abstraksi dari sistem operasi (OS abstraksi, OSA).Berkat OSA, alih-alih FreeRTOS, Anda dapat mengganti sistem operasi lain yang mendukung antrian pesan, preemption, flag, dan timer. Misalnya, RTOS MQX. Tumpukan kompilasi, anehnya, hanya di lingkungan IAR. Untungnya, dalam kasus saya, ini bukan masalah.Lebih menarik bahwa tumpukan dibagi menjadi dua perpustakaan - host BLE dan pengontrol BLE. Dan pustaka host BLE dapat bekerja pada chip lain.Perpustakaan berinteraksi satu sama lain dalam hal ini melalui protokol HCI. Yaitu di mana produsen lain datang dengan protokol komunikasi lain untuk interaksi aplikasi pada mikrokontroler eksternal dengan tumpukan BLE (ingat SimpleLink), NXP menawarkan solusi standar. Dan yang paling penting, dengan pendekatan ini, memindahkan host BLE ke mikrokontroler eksternal yang lebih kuat, kami secara signifikan meningkatkan kemampuan basis data dan layanan GATT kami.Secara singkat tentang BLE
Spesifikasi Bluetooth terbuka versi 4.2 tersedia di sini . Deskripsi level BLE yang lebih rendah (level Controller ) termasuk di dalamnya sebagai "Paket Sistem Core Vol.6 [Volume Pengendali Energi Rendah]" dari halaman 2544. Level atas (level Host ) dengan deskripsi protokol ATT dan profil GATT terletak di "vol.3 Paket Sistem Inti [Volume Host] ” dokumen dari halaman 1693.Rentang frekuensi digunakan
(Klik untuk memperbesar)Tiga frekuensi (pada gambar di atas ditunjukkan oleh nomor saluran 37.38.39) dialokasikan untuk paket broadcast addressless, dan sisanya untuk transmisi paket ketika membangun saluran komunikasi logis antar perangkat. Fitur Bluetooth yang terkenal adalah ketika mengirimkan paket, setiap paket selanjutnya ditransmisikan pada frekuensi yang berbeda, dipilih secara pseudo-acak dari daftar yang diizinkan.Semua data dalam paket BLE dapat dienkripsi dan diautentikasi. Pembuatan alamat perangkat dinamis acak dan identifikasi menggunakan hashing juga digunakan, yaitu Setelah mencegat alamat perangkat di udara, kami tidak akan dapat menggunakannya selama lebih dari 15 menit, karena alamat akan berubah sesuai dengan algoritma yang tidak diketahui oleh kami selama waktu ini.Modul BLE dapat beroperasi sebagai pemancar searah, mis. tanpa membangun koneksi dua arah, cukup menyiarkan beberapa data dalam bentuk paket iklan, misalnya suhu. Jenis data dalam paket Iklan yang ditunjuk sebagai Data Khusus Produsen dapat digunakan untuk ini . Komputer atau tablet dapat menerima data dari ratusan pemancar tersebut tanpa langkah awal yang tidak perlu untuk mencari, membuat koneksi, memasukkan kode PIN dan sebagainya.Kemungkinan lain untuk mentransfer data tanpa menginstal saluran komunikasi adalah transmisi dalam mode respons-permintaan (permintaannya adalah paket ScanRequest , respons modul adalah paket ScanResponce ). Ini BLE berbeda secara signifikan dari Wi-Fi, di mana bahkan untuk termometer paling sederhana perlu untuk membuat koneksi yang mengambil sumber daya dari router.Stack Protokol BLE
Gambar di bawah ini menunjukkan BLE ketika seorang programmer mikrokontroler melihatnya. Tumpukan BLE terdiri dari dua bagian perangkat lunak: Host dan Controller . Perangkat lunak host berkaitan dengan fungsi tingkat tinggi mengatur dan mengelola data, koneksi, dan Pengontrol mengelola periferal fisik transceiver, bekerja dengan kunci rahasia dan menangani fungsi tingkat rendah lainnya. Bagian-bagian yang disebutkan terhubung oleh antarmuka perangkat lunak HCI ( Host Controller Interface ). Dalam implementasi PC, bagian Host berjalan pada komputer, dan bagian Controller berjalan pada transceiver perangkat kerasBluetooth , dan protokol HCI paling sering ditransmisikan melalui USB . Dalam implementasi pada mikrokontroler, kedua bagian beroperasi pada chip yang sama, dan antarmuka HCI berubah menjadi transfer data langsung dari tugas host (modul perangkat lunak) ke tugas pengontrol (modul perangkat lunak) dan sebaliknya.Bahkan, programmer melihat beberapa set API yang bekerja di tingkat Host : disebut GATT , GAP, L2CA, SMP, HCI . Menggunakan GAP API , mode operasi perangkat diatur - Pusat, Periferal, Pengamat, Penyiar, dan koneksi dibuat bila perlu. Dan dengan API GATTTransmisi langsung dan penerimaan data yang berguna dan analisisnya dilakukan.
(Klik untuk memperbesar)Sebagian besar perangkat yang ada saat ini mendukung BLE 4.1, meskipun ada versi 4.2.Semua perbedaan versi 4.2 dari yang sebelumnya berhubungan secara khusus dengan peningkatan pada bagian BLE: peningkatan kecepatan, kemampuan untuk mengirimkan protokol IP dan lalu lintas HTTP, peningkatan perlindungan kriptografi dan ketidaktahuan bagi pengamat eksternal.Fitur penting BLE dibandingkan dengan Wi-Fi adalah spesifikasi tidak hanya saluran komunikasi, tetapi juga aplikasi itu sendiri yang menggunakannya. Ini disebut profil dan layanan. Profil dengan layanan menggambarkan peran perangkat, tujuan data, komposisi dan format data, perlindungan data, urutan, jenis dan peristiwa pertukaran, dan bukan hanya bagaimana data dikirimkan. Ini memungkinkan Anda untuk tidak menemukan kembali roda dari protokol saat mengembangkan, misalnya, sensor suhu tubuh atau pengukur denyut nadi. Spesifikasi telah diberikan, tetap di sisi perangkat hanya untuk mengisi kolom yang diperlukan untuk mengirim hasil pengukuran. Klien perangkat semacam itu dalam bentuk smartphone, tablet, PC, atau peralatan dapur akan mengenali data ini secara otomatis dan menampilkannya atau menggunakannya sesuai kebutuhan. Semua terima kasihbahwa semua pabrikan mengikuti spesifikasi BLE yang sama mengenai bagaimana data suhu atau detak jantung disajikan dan bagaimana cara bekerja dengannya. Tetapi masih ada ruang untuk imajinasi pengembang, karena profil memiliki mekanisme untuk memperluas fungsionalitas.Berikut ini adalah hierarki atribut kasar dalam perangkat BLE.
(Klik untuk memperbesar)Di bawah ini adalah pohon atribut khas yang sedikit lebih rinci. Ini bukan pohon yang lengkap, sebagian besar dihilangkan karena akan memakan banyak ruang. Warna menyoroti level pohon, setiap atribut memiliki nomor unik - UUID. Merekam angka standar dikurangi menjadi 16 bit. Dalam gambar ini, semua angka adalah standar. Profil GAP dan GATT juga disajikan sebagai layanan dengan fitur standar mereka. Setiap layanan dapat memiliki model keamanan dan otorisasi sendiri. Seluruh pohon di perangkat disimpan sebagai basis data yang disebut basis data GATT, biasanya dalam bentuk tabel sederhana dengan referensi silang.
(Klik untuk memperbesar)Karakteristik layanan memiliki banyak karakteristik, seperti yang ditunjukkan di bawah ini. Di sini Anda harus meminta maaf untuk tautologi, tetapi dalam BLE benar-benar ada semacam krisis terminologi. Dengan kata lain, karakteristik layanan yang dimiliki dapat menentukan baca, tulis, kebutuhan untuk pemberitahuan, konfirmasi, tanda tangan, dll.
(Klik untuk memperbesar)BLE adalah teknologi yang serius, banyak yang telah dilakukan untuk memastikan keamanan dan formalisasi maksimum, yang pada gilirannya akan memfasilitasi pencapaian kompatibilitas.Pertukaran data antara perangkat BLE dilakukan dengan menulis dan membaca nilai-nilai karakteristik. Saluran streaming seperti TCP atau UART tidak ada di sini. Dan jika perangkat memilikinya, maka mereka diatur oleh perangkat lunak tambahan dari tingkat yang lebih tinggi.Alat pengembangan
Alat pengembangan dengan situs web yang diusulkan Kelompok Minat Khusus Bluetooth (Bluetooth SIG) - https://www.bluetooth.com/develop-with-bluetooth/developer-resources-toolsAlat bermanfaat berikut ini ditawarkan di situs organisasi standardisasi utama - Bluetooth SIG :Studio Pengembang Bluetooth
Bluetooth Developer Studio adalah alat yang memungkinkan Anda untuk membentuk dan menyisipkan profil, layanan, karakteristik, dan deskriptor dengan benar ke dalam implementasi perangkat BLE , mis. buat database. Jika Anda membeli adaptor Bluetooth perangkat keras tambahan dengan harga $ 99, maka program ini memungkinkan Anda untuk mencegat , mendekripsi, dan menampilkan paket protokol Bluetooth. Program ini juga memiliki kemampuan untuk men-debug dan menguji layanan yang dibuat.Karena dalam BLEprofil yang disetujui dijelaskan dengan sangat rinci, bahkan kesalahan kecil mengenai format, penomoran, aksesibilitas, dll. dalam profil ini akan menyebabkan masalah kompatibilitas. Tetapi untuk profil non-standar, sangat sulit dilakukan tanpa alat yang secara akurat membangun pohon layanan, karakteristik, deskriptor sesuai dengan semua spesifikasi. Sangat mudah untuk bingung dalam nama-nama layanan, karakteristik, deskriptor dan nomor unik multi-byte mereka - UUID .Hasil dari alat ini khususnya adalah file XML yang dihasilkan yang menggambarkan profil, layanan, karakteristik, dan deskriptor dalam proyek pengguna. File-file XML ini secara langsung digunakan oleh Silicon Labs Simplicity IDE untuk diintegrasikan ke dalam proyek yang tertanam untuk chip mereka.
(Klik untuk memperbesar)Hasil lain dari alat ini mungkin adalah kode sumber untuk perangkat yang bekerja dengan basis data BLE . Tetapi untuk ini, pengguna perlu menulis plugin-nya dalam JavaScript . Program ini juga menyediakan plug-in akses pengguna ke database melalui khusus API untuk JavaScript .Ada sejumlah plug-in siap pakai yang menghasilkan berbagai file teks sumber yang cocok untuk dikompilasi di lingkungan pihak ketiga dan kerangka kerja perangkat lunak.Tidak ada plugin untuk solusi berdasarkan kerangka kerja Perangkat Lunak Konektivitas NXP Kinetis KW40Z .Aplikasi akselerator
Aplikasi akselerator 2.1 - satu set proyek demo dengan teks sumber untuk berbagai sistem operasi Android 6 . 0 , Blackberry , iOS 9 , Tizen 2 . 4 dan Windows 10 . Untuk Windows 10, proyek hanya untuk lingkungan pengembangan Visual Studio untuk arsitektur Universal Windows Platform (UWP). Yaitu proyek-proyek ini tidak dapat dikompilasi di bawah kerangka Windows Forms atau WPF c .NET . Dan jembatan untuk menerjemahkan aplikasi Windows biasa ke UWPbaru saja dibuat.Perlu dicatat bahwa UWP memungkinkan untuk menempatkan aplikasi di Windows Store , tetapi tidak membuat file .exe sederhana yang dapat dieksekusi , yang dapat Anda salin dan jalankan. Peluncuran pertama aplikasi UWP selalu disertai dengan instalasi. Semua ini menciptakan kesulitan bagi pengembang. Dan fungsi dari proyek demonstrasi menyisakan banyak yang diinginkan.
(Klik untuk memperbesar)Di atas adalah tangkapan layar dari satu-satunya aplikasi demo untuk Windows - BLEServiceBrowser .Gateway Smart Satarter Kit
Starter Kit Smart Gateway - Proyek Gateway BLE perangkat ke WEB Server dan sendiri WEB server yang mengimplementasikan satu pengguna antarmuka untuk jaringan BLE perangkat. Semuanya diimplementasikan di Node.js. Diusulkan untuk menggunakan komputer mikro model Raspberry Pi 2 B dengan sistem operasi Raspbian Jessie . Langsung menghubungkan Raspberry Pi ke perangkat BLE menggunakan antarmuka soket Bluetooth HCI ke tingkat L2CAP dan USB HCIadaptor. Untuk berjalan di bawah Windows, Anda perlu menginstal pengganti khusus untuk driver Bluetooth HCI standar . Solusinya bekerja pada sejumlah tipe adapter perangkat yang sangat terbatas karena driver HCI yang terbatas.
Peryton
Di antara alat-alat komersial, penganalisa lalu lintas BLE yang menarik dari Perytons adalah program penganalisa. Penganalisis ini berjalan pada PC Windows mulai dari versi 7. Ini adalah poin penting, karena driver BLE asli untuk Windows hanya berfungsi mulai dari versi 8. Alat analisis bekerja dengan daftar terbatas adapter BLE perangkat keras .Saat bekerja dengan adaptor, ada juga keterbatasan dalam analisis yang disebabkan oleh enkripsi lalu lintas di BLE.
(Klik untuk memperbesar)Namun, bahkan dari versi uji coba program Anda bisa mendapatkan banyak manfaat. Program ini disertai dengan rekaman demonstrasi intersepsi yang bertukar perangkat nyata. Catatan-catatan ini, setelah dimuat ke dalam program, memberikan gambaran rinci tentang operasi seluruh tumpukan protokol BLE. Melihat satu intersepsi seperti itu menggantikan menjelajahi seluruh spesifikasi Bluetooth.Bis anjing
Jika Anda hanya perlu memantau aktivitas antara komputer dan perangkat BLE dan Anda dapat melakukannya tanpa analisis rinci protokol, maka pencegat lalu lintas driver Windows terkenal yang disebut Bus Hound akan melakukannya .Pada tangkapan layar di bawah ini Anda dapat melihat aliran paket iklan yang diterima. Ketidakrataan interval waktu penerimaan paket terlihat jelas. Ini menunjukkan hilangnya paket yang signifikan. Interval waktu habis untuk perangkat BLE diatur ke 20 ms.
(Klik untuk memperbesar)Screenshot di bawah ini menunjukkan representasi perangkat BLE di jendela Bus Hound setelah dipasangkan dengan PC. Untuk setiap layanan perangkat, setelah mengintip, saluran komunikasi logis muncul. Di sini Anda dapat melihat UUID perangkat dan layanan.
Penganalisa lalu lintas BLE (sniffer) USB-KW40Z
Ini adalah alat dari kit dukungan pengembangan Kinetis. Karena itu, saya akan membahasnya lebih terinci. Halaman sniffer NXP.
Sniffer dikembangkan oleh NXP (atau lebih tepatnya, mantan Freescale) dan dapat dibeli secara murah di toko komponen radio on-line yang populer: Mouser, Digi-Key, Farnell ... Ini ditawarkan oleh NXP sebagai alat untuk memantau paket radio yang dikirim oleh perangkat BLE.Dengan menggunakan perangkat ini, Anda dapat mempelajari struktur paket, merekamnya dalam log, dan menganalisis kepadatan lalu lintas. Sirkuit sniffer terbuka untuk dipelajari, tetapi program mikrokontroler disediakan sebagai file biner. Sniffer memungkinkan Anda untuk memfilter paket berdasarkan nilai alamat.Anda dapat mengunduh perangkat lunak PC untuk sniffer dengan permintaan pencarian berikut di situs web www.nxp.com - Kinetis_Protocol_Analyzer_Adapter.exeKarena sniffer, selain fungsi utama, juga dapat menjadi platform debugging untuk aplikasi yang berbeda, file firmware biner dasar dilampirkan padanya, dengan mana Anda dapat mengembalikan fungsi sniffer setelah bereksperimen. File datang dengan paket Perangkat Lunak Konektivitas KW40Z , yang diunduh dari www.nxp.com untuk permintaan pencarian KW40Z_Connectivity_Software. File akan disebut Sniffer_processing_core_usbkw40z_k22f.bin (untuk mikrokontroler MK22FN512 pada papan sniffer) dan Sniffer_radio_core_usbkw40z_kw40z.bin(untuk mikrokontroler MKW40Z pada papan sniffer). File diprogram menggunakan debugger SWD: JLink, STLink, OpenSDA ...Dari sisi PC, perangkat dianggap sebagai perangkat USB komposit dengan satu port COM dan satu port debug sesuai dengan spesifikasi, OpenSDA dengan firmware CMSIS-DAP. Dengan demikian, di lingkungan IAR, Anda dapat dengan bebas memprogram dan men-debug chip sniffer MKW40Z menggunakan chip MK22FN512 lainnya sebagai pembawa untuk fungsionalitas adaptor debug. Tetapi kedua chip di papan memiliki konektor SWD standar untuk adaptor debug eksternal.Sniffer tidak menjamin penerimaan semua paket yang dikirimkan melalui udara. Sangat mudah membanjirinya, setelah itu berhenti menerima paket apa pun, sehingga disarankan untuk mengaktifkan pemfilteran berdasarkan alamat agar hanya menerima paket dari simpul yang diminati dengan lalu lintas yang cukup langka.Jendela berikut memperlihatkan program penganalisa paket. Jendela menyertakan intersepsi pada ketiga saluran:
(Klik untuk memperbesar)Saat menginstal perangkat lunak analyzer pada PC, itu menciptakan adaptor Ethernet virtual, yang mengubah paket yang ditembakkan melalui port COM sniffer virtual ke dalam paket Ethernet. Dalam kasus saya, adaptor virtual semacam itu secara otomatis menerima nama yang sederhana - Ethernet.Untuk melihat paket-paket, Anda juga perlu menginstal program sniffer paket Wireshark Ethernet.Lihat jendela utama program Wireshark sambil memantau lalu lintas. Wireshark menjelaskan secara rinci semua bidang bit dari paket protokol Link Layer (LE LL), namun, setelah membuat koneksi antara perangkat dan memulai protokol L2CAP, konten paket tidak dikenali karena ditransmisikan terenkripsi.
(Klik untuk memperbesar)Wireshark window view dengan decoding paket iklan Pindai Konten Paket Permintaan Isi paket Permintaan Koneksi dengan parameter yang menentukan kecepatan saluran komunikasi Komentar, penambahan, koreksi, dan keberatan terhadap informasi dalam artikel ini dipersilakan. Source: https://habr.com/ru/post/id394757/
All Articles