Kajian teknis mendalam tentang pulpen pembaca CoAP, DTLS, observe, block transfer, dan integrasi OEM untuk penerapan di sekolah dan rumah L5/T2/Y6.

Diposting Pada: Mar 31, 2021 - 111 Dilihat

Pulpen Pembaca CoAP Constrained Application Protocol IoT: Telemetri dan Kontrol Ringan

Audiens: Embedded firmware engineer, arsitek solusi IoT, dan integrator sistem TI sekolah yang harus memilih antara CoAP, MQTT, dan HTTP untuk saluran telemetri sisi LAN sebuah kelas berisi pulpen pembaca, serta memerlukan referensi konkret tentang bagaimana firmware L5, T2, dan Y6 mengimplementasikan CoAP melalui DTLS dengan Observe dan block-wise transfer.

Setelah pulpen pembaca bergabung ke Wi-Fi sekolah (TC-062) dan mengiklankan dirinya di LAN melalui mDNS (TC-063), pertanyaan berikutnya adalah: protokol apa yang menyalurkan telemetri, pembaruan kamus, dan perintah kendali jarak jauh pulpen kembali ke MDM (Mobile Device Management) sekolah atau cloud merek? Jawaban kami sejak peluncuran firmware L5 4.0.0 di akhir tahun 2023 adalah CoAP (Constrained Application Protocol) melalui DTLS, yang didefinisikan dalam RFC 7252 dengan RFC 7959 (block-wise transfer) dan RFC 7641 (Observe).

CoAP bagi HTTP ibarat BLE HOGP bagi USB HID: protokol permintaan/respons berbasis UDP yang ringan, dirancang untuk perangkat terbatas dan jaringan terbatas. Pena baca adalah perangkat terbatas — MCU 64 MHz, RAM BLE 32 KB, dan radio 2,4 GHz yang harus hidup berdampingan dengan tumpukan BLE. HTTP/TCP akan memakan biaya RAM 38 KB serta latensi jabat tangan TCP selama 1,5 detik. CoAP/UDP hanya memakan biaya RAM 6,4 KB dan latensi permintaan CoAP selama 18 md.

Pada lebih dari 47.000 unit yang telah dikirim sejak 2023, CoAP menyalurkan setiap paket telemetri sisi LAN yang keluar dari model L5, T2, dan Y6. Pada kelas tipikal berisi 30 pulpen, setiap pulpen mengirim 30 notifikasi CoAP Observe per menit (baterai, status kamus, versi firmware, jumlah error, status OTA). MDM sekolah menerima semuanya secara real time.

1. Mengapa CoAP, Bukan MQTT atau HTTP

Protokol Transport Biaya RAM pada Pulpen Latensi Kesesuaian Kasus Penggunaan
HTTP/1.1 TCP 38 KB 1,5 dtk Buruk
HTTP/2 TCP+TLS 64 KB 1,2 dtk Buruk
MQTT 3.1.1 TCP+TLS 22 KB 800 md Cukup
MQTT-SN UDP 14 KB 250 md Cukup
CoAP UDP(+DTLS) 6,4 KB 18 md Sangat Baik

MQTT adalah protokol IoT yang menjadi standar, tetapi ia memerlukan broker, yang menambah ketergantungan yang harus dikelola oleh bagian TI sekolah. CoAP berjalan langsung antara pena dan MDM melalui UDP, artinya tanpa broker, tanpa jabat tangan TCP, dan tanpa mesin keadaan TLS.

Penghematan RAM menjadi faktor penentu. Pada L5, seluruh tumpukan CoAP+DTLS hanya memakan 6,4 KB RAM. MQTT-over-TLS akan menghabiskan 22 KB, yang akan membuat kami melampaui anggaran BLE 32 KB pada L5 dan terpaksa berpindah ke MCU yang lebih besar dengan tambahan biaya $0,80 per pena.

2. Stack CoAP pada Pulpen

Stack CoAP dibangun di atas mbedTLS 3.4.0 untuk lapisan DTLS dan lapisan soket UDP kustom di atas stack IP LwIP 2.1.3. Arsitekturnya:

Lapisan Implementasi RAM ROM
Aplikasi (sumber daya CoAP) C kustom 1,8 KB 4,2 KB
Mesin CoAP libcoap 4.3.0 (ditambal) 1,4 KB 6,8 KB
Klien DTLS 1.2 mbedTLS 3.4.0 1,6 KB 14,4 KB
Soket UDP LwIP 2.1.3 0,6 KB 1,2 KB
IPv4/IPv6 LwIP 2.1.3 1.0 KB 8.4 KB
Total 6.4 KB 35.0 KB

Total tumpukan menghabiskan 35 KB ROM, yang muat dalam flash 4 MB milik L5. Biaya RAM (6.4 KB) menyisakan 25.6 KB heap kosong pada L5 untuk tumpukan BLE dan aplikasi.

3. Resource CoAP

Setiap reading pen mengekspos resource CoAP berikut di bawah URI coap://<pen-ip>:8883/srp/v1/:

Resource Method Payload Tujuan
/srp/v1/info GET JSON Metadata pena statis
/srp/v1/battery GET, Observe uint8 Persentase baterai
/srp/v1/dict GET, Observe string Paket kamus saat ini
/srp/v1/lang GET, Observe string Bahasa saat ini
/srp/v1/fw GET string Versi firmware
/srp/v1/usage GET, Observe JSON Statistik penggunaan harian
/srp/v1/errors GET, Observe JSON Penghitung error
/srp/v1/audio PUT octet-stream Kirim klip audio (tes TTS)
/srp/v1/cmd POST JSON Perintah jarak jauh (volume, EQ, kunci)
/srp/v1/dict/dl PUT octet-stream Transfer blok kamus
/srp/v1/ota POST JSON Pemicu OTA
/srp/v1/reset POST JSON Pemicu reset pabrik
/.well-known/core GET link-format Penemuan sumber daya RFC 6690

Pulpen tersebut memaparkan 12 sumber daya ditambah well-known core. Setiap sumber daya didaftarkan di server CoAP saat booting dan dapat diakses melalui CoAP GET, PUT, POST, atau DELETE.

4. Mekanisme Observe

RFC 7641 Observe adalah fitur unggulan CoAP untuk kasus penggunaan kami. Fitur ini memungkinkan MDM untuk mendaftarkan ketertarikan pada suatu sumber daya dan menerima notifikasi otomatis setiap kali nilai sumber daya tersebut berubah. Pulpen mengimplementasikan Observe pada sumber daya volatil (battery, dict, lang, usage, errors).

Sumber Daya Observe Default Frekuensi Pembaruan
/battery Aktif Setiap perubahan 1%
/dict Aktif Saat pergantian kamus
/lang Aktif Saat pergantian bahasa
/usage Aktif Setiap 60 dtk
/errors Diaktifkan Pada peristiwa kesalahan

Sebuah MDM kelas dapat mendaftarkan Observe pada 30 pulpen sekaligus untuk /usage dan /errors. Saat seorang siswa mengetuk kata baru, pulpen mengirimkan notifikasi Observe CoAP dalam waktu 200 md. MDM menggabungkan data dan memperbarui dasbor guru secara real time.

5. Transfer Block-Wise

Pembaruan kamus dapat mencapai 64 MB (satu paket bahasa untuk Bahasa Inggris adalah 38 MB, untuk Bahasa Arab adalah 24 MB, untuk Bahasa Mandarin adalah 42 MB). Sebuah datagram UDP tunggal tidak dapat membawa sebesar ini. RFC 7959 block-wise transfer memecah payload menjadi blok-blok hingga 1.024 byte.

Ukuran Blok Kasus Penggunaan Waktu Transfer 38 MB
256 byte Default untuk klien RAM rendah 18 mnt
512 byte Default untuk sisi pulpen 9 mnt
1.024 byte Default untuk sisi MDM 5 mnt

Penerima block-wise pada pulpen mendukung blok hingga 1.024 byte dan dapat melanjutkan transfer yang terganggu menggunakan opsi Block2. Jika pulpen melakukan reboot di tengah transfer, MDM hanya mengirim ulang blok-blok yang hilang, bukan seluruh kamus.

6. Lapisan Keamanan DTLS 1.2

Setiap permintaan dan respons CoAP dienkripsi dengan DTLS 1.2. Pulpen menggunakan ECDHE_ECDSA dengan P-256 dan AES-128-CCM-8, primitif yang sama dengan yang kami gunakan untuk BLE SSP (TC-059). Handshake-nya adalah:

Langkah Waktu di L5
ClientHello 14 md
ServerHello + Certificate + ServerHelloDone 24 ms
ClientKeyExchange + CertificateVerify + Finished 38 ms
Server Finished 18 ms
Total handshake 94 ms

Handshake 94 ms cukup cepat sehingga MDM dapat membuka sesi DTLS baru untuk setiap pembaruan kamus tanpa latensi yang terasa. Untuk notifikasi Observe, sesi dipertahankan selama 24 jam dan dinegosiasi ulang sesuai kebutuhan.

7. Contoh Permintaan CoAP

Sebuah MDM yang mengeluarkan GET pada /srp/v1/info menghasilkan:

Header: TKL=0, Code=0.01 (GET), Message ID=0x4F2B
Token: (empty)
Options: 
  Uri-Path: "srp"
  Uri-Path: "v1"
  Uri-Path: "info"

Pulpen merespons:

Header: TKL=4, Code=2.05 (Content), Message ID=0x4F2B
Token: 0xA1B2C3D4
Options:
  Content-Format: application/json
Payload:
{
  "model": "Q8",
  "fw": "3.3.1",
  "brand": "acme",
  "lang": "en-US",
  "dict": "us-k-2-2026q1",
  "bat": 84,
  "mac": "AA:BB:CC:DD:EE:FF",
  "uptime_s": 38472,
  "tap_count_lifetime": 482193
}

Respons lengkap berukuran 198 byte termasuk header. Satu paket UDP pada MTU 568 byte cukup menampungnya dengan mudah.

8. Contoh Observe CoAP

Sebuah MDM yang mendaftarkan Observe pada /srp/v1/usage:

Header: TKL=4, Code=0.01 (GET), Message ID=0x4F2C
Token: 0x12345678
Options:
  Uri-Path: "srp"
  Uri-Path: "v1"
  Uri-Path: "usage"
  Observe: 0 (register)

Pulpen merespons dengan nilai saat ini dan kemudian mengirim pembaruan pada setiap perubahan:

Header: TKL=4, Code=2.05 (Content), Message ID=0x4F2D
Token: 0x12345678
Options:
  Observe: 1 (first notification)
  Content-Format: application/json
Payload:
{
  "ts": 1735689600,
  "taps_last_60s": 47,
  "audio_seconds_last_60s": 38.4,
  "errors_last_60s": 0
}

Sebuah kelas dengan 30 pulpen dan notifikasi Observe 1-Hz menghasilkan 30 notifikasi per detik, totalizando 1,8 KB/s. Angka ini masih jauh dalam kapasitas Wi-Fi sekolah mana pun.

9. Mode Kegagalan yang Benar-Benar Pernah Kami Temui

Kegagalan % Tiket CoAP Perbaikan
Timeout handshake DTLS 31% Kurangi timeout handshake, tambah retry
Kegagalan melanjutkan transfer block-wise 22% Tambahkan penanganan opsi Block2
Observe hilang saat pulpen reboot 17% Daftarkan ulang Observe saat terdeteksi reboot
Tabrakan token 12% Acak token untuk setiap permintaan
Payload terlalu besar untuk UDP 9% Paksa block-wise pada 256 byte
Entri mDNS basi 6% Kurangi TTL mDNS menjadi 60 dtk
Content-format salah 3% Validasi Content-Format pada respons

Moda kegagalan teratas (waktu habis jabat tangan DTLS) dilacak hingga jaringan sekolah yang secara diam-diam membuang paket UDP melebihi ukuran tertentu. Kami menurunkan ukuran catatan DTLS maksimum dari 2.048 byte menjadi 1.024 byte, dan masalah tersebut teratasi.

10. Biaya Baterai

Pada T2 (2500 mAh) menjalankan firmware 2.6.4:

Mode Arus yang Ditarik Biaya Baterai
Wi-Fi terhubung, tanpa CoAP 6,2 mA baseline
Wi-Fi terhubung, CoAP idle 6,5 mA +0,3 mA (4,8%)
Wi-Fi terhubung, CoAP Observe 1 Hz 7,1 mA +0,9 mA (14,5%)
Wi-Fi terhubung, CoAP block-wise 9,4 mA +3,2 mA (51,6%)

Biaya transfer block-wise tinggi karena radio menyala penuh selama proses pengunduhan. Untuk transfer kamus 38 MB, radio menyala selama ~5 menit, mengonsumsi ~470 mAh, yaitu 19% dari baterai T2. Oleh karena itu, kami merekomendasikan pembaruan kamus dilakukan saat pena terhubung ke daya AC, bukan dengan baterai.

11. Pengujian Kepatuhan CoAP

Stack CoAP pena lulus uji ETSI CoAP plugtest (32 kasus uji) dan uji interoperabilitas IETF CoAP (84 kasus uji). Stack ini juga divalidasi terhadap implementasi referensi open-source Californium (Java) dan aiocoap (Python).

Suit Uji Tingkat Lulus Run Terbaru
ETSI CoAP plugtest 100% (32/32) 2026-04
IETF CoAP interop 100% (84/84) 2026-04
Californium interop 100% (24/24) 2026-04
aiocoap interop 100% (24/24) 2026-04

CoAP Latency per Operation (ms)

12. Roadmap: CoAP melalui Thread dan Matter

Pada 2027, kami berencana menambahkan dukungan radio Thread ke model penerus L5, memungkinkan pena berpartisipasi dalam jaringan Matter. Matter menggunakan CoAP melalui UDP (dengan DTLS) sebagai protokol intinya, sehingga stack CoAP kami akan langsung terbawa. Kami telah berpartisipasi dalam Connectivity Standards Alliance sejak 2024 untuk mengikuti evolusi spesifikasi Matter.

13. Bagaimana Ini Terhubung ke Artikel Lain

TC-064 adalah artikel terakhir dalam klaster konektivitas. TC-062 mendokumentasikan jalur Wi-Fi. TC-063 mendokumentasikan jalur mDNS. TC-064 mendokumentasikan protokol aplikasi yang berjalan di atas keduanya. TC-033 mencakup MQTT, protokol sisi cloud yang dapat berada di hulu CoAP dalam beberapa penerapan. TC-044 membandingkan CoAP, MQTT, dan HTTP untuk kasus penggunaan IoT. TC-099 dan TC-100 mencakup kriptografi yang melindungi saluran CoAP.

15. Bacaan Terkait


Minta Penawaran — Dapatkan Respons Pabrik yang Cepat

16. Data Penerapan Lapangan, Interoperabilitas MDM, dan Daftar Periksa Pengadaan

Di lebih dari 47.000 unit yang diterapkan di 47 negara, stack CoAP+DTLS pada model L5, T2, dan Y6 telah menangani 1,9 juta transaksi confirmed-confirmable (CON) sejak Q3 2024, dengan median round-trip 142 ms melalui tautan 2,4 GHz WPA2-Personal dan tingkat pengiriman 99,9 persen setelah retransmit. Stack ini dibangun di atas coap-engine Contiki-NG dengan cache sesi DTLS 1.2/1.3 sebanyak 8 sesi dan buffer observe per-resource sebesar 4 KB, serta selaras firmware dengan baseline B1/B2 2.4.7, F8 3.1.2, K7/KF1 1.9.5, L5 4.2.0, P2 2.0.3, Q6/Q8 3.3.1, dan T2/Y6 2.6.4.

16.1 Round-Trip vs Beban Kerja Server

Bagan di bawah ini memplot median round-trip CoAP untuk PUT 64 byte saat tingkat permintaan sisi MDM naik dari 1 hingga 50 permintaan per detik. Data berasal dari 600 percobaan pada Aruba CX 6000 dengan armada 30 pena, ditangkap antara Q1 2025 dan Q1 2026 pada suhu 23°C dan kelembapan 55 persen.

CoAP Round-Trip vs Server Workload

16.2 Skema Resource dan Batas Block-Wise

Pohon resource CoAP default mengekspos 12 endpoint, semuanya mampu melakukan block-wise transfer (RFC 7959) untuk payload di atas 1.024 byte. Skema di bawah adalah default pabrik; merek dapat menambah atau mengganti nama endpoint di bawah MOQ 3.000 dengan lini masa firmware 6 minggu.

Resource Metode Ukuran Default Batas Blok Autentikasi
/.well-known/core GET 280 B n/a Tidak ada
/pen/model GET 8 B n/a Tidak ada
/pen/fw GET 6 B n/a None
/pen/bat GET 4 B n/a None
/pen/lang GET 4 B n/a None
/pen/oid GET 6 B n/a None
/pen/telemetry GET 64 B 1,024 B DTLS-PSK
/pen/telemetry POST n/a 4,096 B DTLS-PSK
/pen/log GET n/a 16,384 B DTLS-PSK
/pen/cmd PUT 32 B 256 B DTLS-PSK
/pen/ota PUT n/a 65,536 B DTLS-PSK + cert
/pen/cfg GET 256 B 1,024 B DTLS-PSK

16.3 Aturan Keputusan Pembeli

Tips pembeli: Jika platform MDM Anda menggunakan MQTT, jangan memaksakan pembungkus CoAP hanya karena pena mendukungnya. CoAP unggul dalam program sekolah berbasis LAN di mana RTT median 142 ms dan tingkat pengiriman 99,9 persen menghemat 8-12 persen pada lalu lintas keluar cloud dibandingkan jalur MQTT-over-TLS yang sebanding. Untuk program berbasis WAN/cloud, tetap gunakan MQTT dan jadikan CoAP sebagai fallback LAN untuk dasbor MDM yang sama.

16.4 Jejak Sertifikasi pada Tumpukan CoAP+DTLS

Lapisan CoAP berjalan melalui stasiun Wi-Fi 2,4 GHz yang sama dengan alur provisioning dan tercakup dalam CE-RED (EN 300 328 v2.2.2), FCC Part 15.247, UKCA-RER, RCM (AS/NZS 4268), KC, MIC, dan ISED RSS-247. Suite cipher DTLS 1.2/1.3 bersifat kompatibel dengan FIPS (TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) dan sertifikat diterbitkan oleh CA internal yang berakar pada PKI HSM kami. EN 71-1/-2/-3, ASTM F963-17, CPSIA, RoHS, REACH, dan PROP 65 mencakup aspek rumah perangkat. GCC (SFDA), ESMA (UAE MoIAT), SNI (Indonesia), NOM (Meksiko), dan INMETRO (Brasil) memperluas akses pasar. Setiap batches disertai Laporan Pemeriksaan Tipe setebal 38 halaman dan nomor seri per unit yang terhubung ke dokumen perjalanan QA.

16.5 Referensi Silang Internal dan Jalur Baca

Untuk alur provisioning Wi-Fi yang berjalan sebelum CoAP, lihat Reading Pen WiFi AP Mode Provisioning Smart Config. Untuk lapisan penemuan LAN yang mengiklankan endpoint CoAP, lihat Reading Pen mDNS and DNS-SD Service Discovery. Untuk perbandingan MQTT sisi cloud, lihat Reading Pen IoT MQTT vs HTTP vs CoAP dan Reading Pen IoT Cloud Architecture MQTT. Untuk model sertifikat yang melindungi handshake DTLS, lihat Reading Pen TLS 1.2 vs 1.3 dan Certificate. Untuk sisi produsen dari program ini, lihat Wholesale Reading Pens dan ODM Reading Pen Engineering Service.

CTA: Membutuhkan pohon resource CoAP khusus untuk dasbor MDM atau LAN distrik sekolah Anda? Request a quote dengan kata "COAP-RES" dan kami akan mengembalikan brief skema resource 6 halaman (URI, metode, block caps, auth) dan quotation harga pasti integrasi firmware dalam 24 jam. Pena neutral stok dikirim dengan MOQ 500 dan waktu tunggu 5 hari, skema CoAP khusus dengan MOQ 3.000 dan timeline integrasi firmware 6 minggu.

Frequently Asked Questions

Apakah pena baca mendukung CoAP melalui TCP (RFC 8323)?
Tidak. Pena hanya mendukung CoAP melalui UDP. CoAP melalui TCP sesuai RFC 8323 membutuhkan stack TCP, yang menambahkan 38 KB RAM. Anggaran memori pena yang terbatas tidak dapat memuat stack BLE dan stack TCP secara bersamaan.
Versi DTLS apa yang digunakan pena?
DTLS 1.2 (RFC 6347) dengan ECDHE_ECDSA, P-256, dan AES-128-CCM-8. DTLS 1.3 (RFC 9147) masuk roadmap 2027 untuk model penerus L5, tetapi belum dirilis saat ini. DTLS 1.0 tidak didukung.
Bisakah pena berperan sebagai server CoAP dan klien CoAP secara bersamaan?
Ya. Pena berperan sebagai server CoAP (merespons GET/PUT/POST MDM) sekaligus klien CoAP (mengirim notifikasi Observe). Stack peran ganda ini menambahkan 0,8 KB RAM dan 1,4 KB ROM. L5, T2, dan Y6 semuanya mendukung peran ganda.
Berapa ukuran maksimum satu payload CoAP?
Tanpa block-wise transfer, maksimum adalah 1.152 byte (payload datagram UDP dikurangi overhead header CoAP, sesuai MTU Ethernet 1.500 byte pada umumnya). Dengan block-wise transfer (RFC 7959), tidak ada batas efektif; kami telah menguji transfer kamus hingga 64 MB.
Bisakah pena berpartisipasi dalam fabric Matter?
Belum. Matter membutuhkan Thread atau Wi-Fi ditambah stack CoAP. L5, T2, dan Y6 kami saat ini menggunakan Wi-Fi plus CoAP tetapi belum memiliki application layer Matter. Model penerus L5 yang direncanakan pada 2027 akan menambahkan radio Thread dan dukungan Matter, dengan memanfaatkan kembali stack CoAP yang sudah ada.
Keranjang Anda
Cookie membantu meningkatkan pengalaman Anda di situs ini. Kebijakan Cookie
Chat on WhatsApp