Kích thước gói tối đa của LoraWan bao gồm các tiêu đề phy là bao nhiêu


7

Tôi đã tạo một LoRa sang USB thông qua Arduino để sử dụng nó như một cổng tạm thời cho các mục đích phát triển. Vì vậy, bằng cách nào đó tôi cần biết gói LoRa lớn bao gồm các tiêu đề PHY lớn đến mức nào , để xác định phần mềm của tôi sẽ mất bao lâu để đọc và gửi dữ liệu trên đầu USB.

Theo thứ tự kiến ​​trúc của tôi sẽ như sau:

Kiến trúc cho LoraWan

Vì vậy, PC / Laptop sẽ cần phải "biết" gói LoRa sẽ lớn đến mức nào để không nhận qua USB vô số byte.


1
Bên cạnh đó: mặc định LMiC chỉ hỗ trợ tải trọng lên tới 51 hoặc 52 byte, xem github.com/matthijskooijman/arduino-lmic/issues/100 Và một số nhà cung cấp, như KPN của Hà Lan, dù sao cũng chỉ cho phép 51 byte: zakelijkforum.kpn .com / lora-forum-16 / ... Nói cách khác, đó là okay: nếu một nhu cầu nút để hỗ trợ SF12, nó không nên gửi thêm trong điều kiện tốt hơn trong hai.
Arjan

Câu trả lời:


7

Gói LoRa lớn bao gồm các tiêu đề PHY

Tôi giả sử bạn có nghĩa là tiêu đề MAC? Sau khi một số chip LoRa đã giải điều chế các tín hiệu vô tuyến LoRa cho bạn, nó sẽ cung cấp cho bạn tải trọng LoRa PHY. Đối với đường lên LoRaWAN, tải trọng PHY như vậy giữ tiêu đề MAC, tải trọng MAC và MIC.

Đối với 1.0.x, quy tắc ngón tay cái dường như là gói LoRaWAN lớn hơn ít nhất 13 byte so với tải trọng của ứng dụng:

Tôi nghĩ thường ít nhất 13 [MHDR (1) + DevAddr (4) + FCtrl (1) + FCnt (2) + Fport (1) + MIC (4)] trong một gói không có tùy chọn

Tải trọng ứng dụng tối đa phụ thuộc vào tốc độ dữ liệu được chọn. Nếu một nút có thể hoạt động trong điều kiện tồi tệ nhất, thì người ta sẽ giả sử tốc độ dữ liệu tồi tệ nhất, SF12, trong đó nút không được gửi nhiều hơn khoảng 51 byte. (Trong điều kiện tốt nhất, SF7, có thể là 222 byte.) Tất cả điều đó cũng phụ thuộc vào khu vực, tôi nghĩ vậy. (Và mọi thứ có thể tốt hơn khi nút LoRaWAN không sử dụng LoRa, nhưng FSK.)

Vì vậy, đối với trường hợp sử dụng của bạn, tôi sẽ cố gắng không phụ thuộc vào độ dài tối đa thông qua USB. Thay thế:

  • Bạn có thể dễ dàng chuyển đổi gói LoRaWAN nhị phân thành văn bản thuần bằng Base64 . Sau đó bạn có thể gửi văn bản như vậy thông qua USB và kết thúc nó với một dòng mới hoặc một NULL ký tự là để cho người nhận bí quyết của bạn khi được thông báo USB là hoàn tất. Bạn thậm chí có thể gửi dữ liệu meta bổ sung trong dòng văn bản đó nếu bạn chọn một dấu phân cách không có trong bộ ký tự Base64.

  • Ví dụ: giao thức SemDP UDP giữa các cổng và máy chủ sử dụng tin nhắn văn bản JSON, cũng cho phép bạn truyền dữ liệu meta bổ sung. Trong văn bản JSON, gói LoRaWAN nhị phân cũng được mã hóa bằng Base64. Nếu văn bản JSON có định dạng đẹp để bao gồm các dòng mới, thì bạn vẫn có thể chấm dứt tin nhắn văn bản đó bằng NULL -character và người nhận của bạn sẽ không bị nhầm lẫn.


theo thông số kỹ thuật LoRaWAN v1.0.X Fport là tùy chọn, do đó độ dài tối thiểu thực sự là 12 byte
RoKK

Đúng, @RoKK, nếu không có tải trọng ứng dụng. Nhưng nếu có một tải trọng ứng dụng thì FPort là bắt buộc, vì vậy mọi tải trọng ứng dụng luôn được thêm ít nhất 13 byte vào nó. (Và cũng có thể là một số lệnh MAC trong FOpts. Ngoài ra, 13 byte cũng không áp dụng cho các tham gia OTAA.)
Arjan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.