Giới thiệu công nghệ truyền dữ liệu LoRa

Internet-of-Things-Protocols

Chắc hẳn các bạn cũng có nghe qua Lora và ứng dụng của nó trong cho smart city, nông nghiệp thông minh, v.v… Vậy LoRa là gì và ứng dụng công nghệ này như thế nào cho các ứng dụng IoT trên thực tế? Trong bài viết này, chúng ta sẽ tìm hiểu bản chất và đặc tính của LoRa để trả lời câu hỏi trên.

1-LoRa là gì?

Đây chắc sẽ là câu hỏi đầu tiên khi chúng ta nghe nói về LoRa.

Trước khi trả lời câu hỏi này, chúng ta sẽ giới thiệu qua các cộng nghệ truyền dữ liệu wireless trong các ứng dụng LPWAN (Low-Power Wide Area Network)

Các loại wireless network

Có thể nói hiện tại chúng ta có 3 mô hình wireless network như sau:

1- Cellular network (GSM hoặc LTE network) : là mô hình truyền dữ liệu sử dụng trên điện thoại mà chúng ta vẫn sử dụng hằng ngày. Các mạng cellular có tốc độ truyền dữ liệu cao nhưng cũng yêu cầu năng lượng tiêu thụ cao

2-LAN network (Wifi,Bluetooth, Zigbee hoặc Z-wave ): được sử dụng rộng rãi trong các mạng LAN (Local Area Network hoặc Personal Area Network). Điểm yếu của các thiết bị này là công suất tiêu thụ vẫn cao cho các thiết bị sử dụng pin.

3-LPWAN network (SigFox, LoRa, NB-Fi, RPMA): là mô hình được phát triển sau 2 mô hình network ở trên để cho phép các thiết bị dùng pin có thể truyền dữ liệu với khoảng cách xa mà không tốn nhiều năng lượng. Đây là mô hình sẽ được ứng dụng rộng rãi trong các ứng dụng IoT trong tương lai.

Trong LPWAN network, chúng ta cũng có các công nghệ truyền dữ liệu khác nhau như hình sau:

lpwan_graphic

Ở đây chúng ta có thể thấy toàn cảnh các cộng nghệ truyền dữ liệu cho LPWAN từ có bản quyền đến open như Sigfox, RMPA, NB-FI, v.v… Và LoRa chính là 1 trong các công nghệ trong các ứng dụng LPWAN.

LoRa là viết tắt của Long Range Radio được nghiên cứu và phát triển bởi Cycleo và sau này được mua lại bởi công ty Semtech năm 2012. Với công nghệ này, chúng ta có thể truyền dữ liệu với khoảng cách lên hàng km mà không cần các mạch khuếch đại công suất; từ đó giúp tiết kiệm năng lượng tiêu thụ khi truyền/nhận dữ liệu. Do đó, LoRa có thể được áp dụng rộng rãi trong các ứng dụng thu thập dữ liệu như sensor network trong đó các sensor node có thể gửi giá trị đo đạc về trung tâm cách xa hàng km và có thể hoạt động với battery trong thời gian dài trước khi cần thay pin.

Nguyên lý hoạt động của LoRa

LoRa sử dụng kỹ thuật điều chế gọi là Chirp Spread Spectrum. Có thể hiểu nôm na nguyên lý này là dữ liệu sẽ được băm bằng các xung cao tần để tạo ra tín hiệu có dãy tần số cao hơn tần số của dữ liệu gốc (cái này gọi là chipped); sau đó tín hiệu cao tần này tiếp tục được mã hoá theo các chuỗi chirp signal (là các tín hiệu hình sin có tần số thay đổi theo thời gian; có 2 loại chirp signal là up-chirp có tần số tăng theo thời gian và down-chirp có tần số giảm theo thời gian; và việc mã hoá theo nguyên tắc bit 1 sẽ sử dụng up-chirp, và bit 0 sẽ sử dụng down-chirp) trước khi truyền ra anten để gửi đi.

Theo Semtech công bố thì nguyên lý này giúp giảm độ phức tạp và độ chính xác cần thiết của mạch nhận để có thể giải mã và điều chế lại dữ liệu; hơn nữa LoRa không cần công suất phát lớn mà vẫn có thể truyền xa vì tín hiệu Lora có thể được nhận ở khoảng cách xa ngay cả độ mạnh tín hiệu thấp hơn cả nhiễu môi trường xung quanh.

Băng tần làm việc của LoRa từ 430MHz đến 915MHz cho từng khu vực khác nhau trên thế giới:

  • 430MHz cho châu Á
  • 780MHz cho Trung Quốc
  • 433MHz hoặc 866MHz cho châu Âu
  • 915MHz cho USA

Nhờ sử dụng chirp signal mà các tín hiệu LoRa với các chirp rate khác nhau có thể hoạt động trong cùng 1 khu vực mà không gây nhiễu cho nhau. Điều này cho phép nhiều thiết bị LoRa có thể trao đổi dữ liệu trên nhiều kênh đồng thời (mỗi kênh cho 1 chirprate)

Radio packet của LoRa như hình sau:

Lora_packet

Các khái niệm SpreadingFactor, CodingRate sẽ được giới thiệu ở phần tiếp theo. Ở đây chúng ta chỉ tập trung vào các dữ liệu trong 1 radio packet của LoRa, bao gồm:

  • Preamble: Là chuỗi binary để bộ nhận detect được tín hiệu của LoRa packet trong không khí
  • Header: chứa thông tin về size của Payload cũng như có PayloadCRC  hay không. Giá trị của Header cũng được check CRC kèm theo
  • Payload: là dữ liệu ứng dụng truyền qua LoRa
  • Payload: giá trị CRC của Payload. Nếu có PayloadCRC, LoRa chip sẽ tự kiểm tra dữ liệu trong Payload và báo lên nếu CRC OK hay không

LoRa Alliance

LoRaAlliance là 1 tổ chức phi lợi nhuận, được thành lập để nghiên cứu và định nghĩa các chuẩn giao tiếp LPWAN network dựa trên nền tảng LoRa. Hiện tại LoRaAlliance đang phát triển chuẩn giao tiếp LoRaWAN để kết nối hàng triệu thiết bị IoT trong các ứng dụng smart city, smart meters, v.v…

Các bạn có thể tham khảo website của tổ chức này ở https://www.lora-alliance.org

Theo tổ chức này dự báo thì đến năm 2020, thế giới có thể có đến 50 tỉ thiết bị IoT cần kết nối và trao đổi dữ liệu. Do đó LoRaWAN rất cần thiết để đảm bảo sự kết nối liên tục khi hoạt động với số lượng  cực lớn các thiết bị cũng như khoảng cách truyền xa giữa các thiết bị

IoT_Dev

Có rất nhiều công ty công nghệ đã thấy được khả năng ứng dụng to lớn của LoRa và LoRaWAN đối với sự bùng nổ của các thiết bị IoT.  Dưới đây là cái nhìn toàn cảnh về các mảng sản phẩm/dịch vụ cho LoRa và các công ty cung cấp tương ứng:

LoRa_Providers

LoRaWan network

Chúng ta sẽ thảo luận ngằn gọn để có cái nhìn tổng quát về vị trí và chức năng của chuẩn LoRaWan nhưng không đi sâu vào chi tiết các thành phần cũng như quá trình hoạt động của network. Chủ đề này sẽ được thảo luận chi tiết trong bài viết tiếp theo.

LoRaWan là chuẩn giao tiếp dựa trên nền tảng công nghệ Lora và được định nghĩa và phát triển bởi tổ chức Lora Alliance

Một thiết bị hỗ trợ LoRaWan sẽ có cấu trúc software như sau:

LoraWan_model

Trong cấu trúc này thì LoRaWan bao gồm LoRa Mac (Class A, Class B, Class C) và hoạt động dựa trên lớp PHY là chip LoRa. Ở mỗi vùng khác nhau trên thế giới thì thiết bị LoRaWan phải cấu hình cho chip Lora hoạt động ở dãy băng tần cho phép như 433Mhz, 915MHz, v.v..

Các thiết bị LoRaWan kết nối với nhau theo mô hình Star trong đó các thiết bị node sẽ gửi dữ liệu đến các thiết bị Gateway để từ đó sẽ gửi lên server và thực hiện xử lý dữ liệu trên server

Lorawan_network

Do đó trong 1 mạng LoRaWan sẽ có 2 loại thiết bị:

  • Device node: là các thiết bị cảm biến, hoặc các thiết bị giám sát được lắp đặt tại các vị trí làm việc ở xa để lấy và gửi dữ liệu về các thiết bị trung tâm. Có 3 loại device node là Class A, Class B và Class C
  • Gateway: là các thiết bị trung tâm sẽ thu thập dữ liệu từ các device node và gửi lên 1 server trung tâm để xử lý dữ liệu. Các thiết bị Gateway thường sẽ được đặt tại 1 vị trí có nguồn cung cấp và có các kết nối network như Wifi, LAN, GSM để có thể gửi dữ liệu lên server

2-Các thông số hoạt động của Lora

Sau khi đã tìm hiểu “LoRa là gì?”, khả năng ứng dụng trong lĩnh vực IoT, chúng ta sẽ thảo luận các thông số radio của  LoRa để hiểu rõ hơn ảnh hưởng của từng thông số trong quá trình truyền dữ liệu. Sau khi hiểu được ảnh hưởng của các thông số này, chúng ta có thể điều chỉnh cho phù hợp với ứng dụng thực tế của mình

Spreading Factor – SF

SF xác định số lượng chrip signal khi mã hóa tín hiệu đã được điều chế tần số (chipped signal) của dữ liệu. Ví dụ nếu SF=12 có nghĩa là 1 mức logic của chipped signal sẽ được mã hóa bởi 12 xung chirp signal.

Với chipset SX1276 của SemTech thì SF có giá trị từ 6 đến 12. Giá trị cho SF càng lớn thì thời gian truyền dữ liệu sẽ lâu hơn nhưng khoảng cách truyền sẽ xa hơn

Bandwidth – BW

BW xác định biên độ tần số mà chirp signal có thể thay đổi. Nếu bandwidth càng cao thì thời gian mã hóa chipped signal càng ngắn; từ đó thời gian truyền dữ liệu cũng giảm xuống nhưng đổi lại khoảng cách truyền cũng ngắn lại

Coding Rate – CR

CR là số lượng bit được tự thêm vào mỗi trong Payload trong LoRa radio packet bởi LoRa chipset để mạch nhận có thể sử dụng để phục hồi lại 1 số bit dữ liệu đã nhận sai và từ đó phục hồi được nguyên vẹn dữ liệu trong Payload. Do đó, sử dụng CR càng cao thì khả năng nhận dữ liệu đúng càng tăng; nhưng bù lại chip LoRa sẽ phải gửi nhiều dữ liệu hơn (có thể làm tăng thời gian truyền dữ liệu trong không khí)

Với chipset SX1276 thì chúng ta có 4 giá trị cho CR là 4/5, 4/6, 4/7 và 4/8. Tương ứng mỗi giá trị của CR thì số lượng dữ liệu tăng thêm như sau:

Lora_CodeRate

Nếu CR = 4/8 thì cứ mỗi 4 bits data nó sẽ được mã hóa bởi 8 bits , tức là chipset LoRa phải gửi gấp đôi dữ liệu cần truyền. Do đó chúng ta có thể sử dụng CR thấp để tăng throughput nhưng độ nhạy sẽ kém đi do khả năng tự phục hồi dữ liệu của chipset LoRa sẽ thấp hơn.

Có thể nói SF, BW và CR là 3 thông số cơ bản và quan trọng của chipset LoRa. Trong đó, SF và BW sẽ ảnh hưởng thời gian và khoảng cách truyền dữ liệu; CR thì chỉ ảnh hưởng thời gian truyền dữ liệu. Tùy yêu cầu của ứng dụng cụ thể về khoảng cách, tốc độ gửi dữ liệu, v.v… chúng ta có thể chọn giá trị hợp lý để tối ưu quá trình truyền nhận qua LoRa

LoraDataRate

Bài viết đến đây là hết rồi. Hy vọng các bạn đã hiểu được 1 cách khái quát công nghệ truyền dữ liệu của LoRa, tổ chức LoRaAlliance và chuẩn network  LoRaWAN. Ngoài ra bài viết cũng giới thiệu tác dụng của 3 thông số chính là Spreading Factor, Bandwidth và CodingRate khi truyền dữ liệu qua LoRa.