LoRA, LoRaWAN คืออะไร มารู้จักกันดีกว่า

Kritsada Arjchariyaphat
Deaware
Published in
6 min readFeb 27, 2018

LPWAN ( Low-Power Wide-Area Network ) หรือเครือข่ายสื่อสารแบบกว้างที่เน้นใช้พลังงานต่ำ เป็นเทคโนโลยีที่ถือว่าเป็นหัวใจสำคัญสำหรับงานทางด้าน Internet of Things

จุดเด่นของ LPWAN เทคโนโลยีได้แก่

  • Secure — Bidirectional Communication
  • Simple Star Network Topology ( ไม่จำเป็นต้องมี network ที่ซับซ้อนเช่น Mesh หรือ Repeater )
  • Low data rate
  • Low cost
  • Long battery life

เทคโนโลยีทางด้าน LPWAN มีหลากหลายมากเช่น NB-IoT, SigFox และ LoRA แต่ในบล๊อกนี้เราจะมาพูดถึง LoRa กัน

LoRa, LoRaWAN คืออะไร ?

ก่อนจะพูดถึง LoRa ต้องแนะนำกลุ่มพันธมิตรสำคัญที่เรียกได้ว่าเป็นผู้กำหนด มาตรฐาน LoRaWAN Protocol ซึ่งก็คือ LoRa Alliance นั่นเอง หน้าที่หลักๆ ของ LoRA Alliance คือเป็นผู้ออกมาตรฐาน LoRaWAN โดยใช้ความสามารถของ LoRA นั่นเอง

แล้ว LoRa ละคืออะไร

LoRa เป็นเทคโนโลยีสัญญาณการสื่อสารอยู่โดยใช้เทคนิค Proprietary Spread Spectrum technology ซึ่งรูปแบบถูกพัฒนาโดย Semtech Corporation เอง

Modulation Setting for Europe

ตัวอย่างค่า Data Rate ( DR ) สังเกตจากรูป จะเห็นว่า DR เป็น 0 อุปกรณ์จะสามารถส่งข้อมูลได้ไกลที่สุด โดยสามารถส่งด้วย Bitrate ที่ต่ำที่สุดโดยการกำหนด Data Rate จะถูกกำหนดจาก Spreading Factor ( SF ) ตั้งแต่ 7– 12

โดยที่แบนวิดท์ ช่องสัญญาณ และค่า SF ที่ปรับได้อาจจะเปลี่ยนแปลงตาม Frequency plan ของแต่ละโซน

Modulation Setting

ถ้าดูจากรูปด้านบนเพิ่มเติมจะเห็นว่าเมื่ออุปกรณ์เข้าใกล้ gateway มากก็จะสามารถที่จะส่งข้อมูลด้วย BITRATE ที่สูงขึ้นได้ และการส่งข้อมูลจะเร็วขึ้นอีกด้วย รวมถึงพลังงานที่ใช้ในการส่งถ้าเทียบต่อขนาดของแพกเกตก็จะน้อยกว่าอุปกรณ์ที่อยู่ไกล Gateway อีกด้วย

ซึ่งในระดับ LoRaWAN จะมีโหมด ADR ( Adaptive Data Rate ) ที่เซตในแพกเกตการส่งข้อมูลเพื่อให้การเชื่อมต่อระหว่าง Gateway และ Device สามารถปรับ Spreading Factor แบบอัตโนมัติเพื่อประสิทธิภาพในการส่งโดยดูจากระยะการเชื่อมต่อระหว่าง Gateway และ Device โดยสามารถเลือกได้ว่าต้องที่จะ ปรับเพื่อส่งข้อมูลได้เร็วที่สุด หรือ ปรับเพื่ออายุการใช้งานแบตเตอรี่ที่ยาวนานที่สุดเป็นต้น

คือพูดง่ายๆ เทคโนโลยี LoRa เป็นส่วนของ RF PHYSICAL Layer ในการสื่อสารที่เป็นลิขสิทธิของบริษัท Semtech นั่นเอง

แล้ว LoRaWAN ละคืออะไร

LoRaWAN เป็นส่วนที่ถูกกำหนดขึ้นมาโดยใช้ประโยชน์จาก LoRa physical layer ที่กล่าวไว้ข้างต้น

เริ่มต้นถ้าพูดถึงง LoRaWAN ขอให้แบ่งส่วนประกอบในการเชื่อมต่อออกเป็น 4 ส่วนได้แก่

  1. End-Devices
  2. Concentrator/Gateway
  3. Network Server
  4. Application Server

LoRaWan Physical Network Topology

Physical Network Topology
LoraWan Network Topology

ส่วนที่ 1 End-Device

End-Device เชื่อมต่อกับ Gateway

การเชื่อมต่อระหว่าง End-Device จะเชื่อมต่อเข้าไปที่ Gateway ได้เท่านั้น โดยที่ End-Device หนึ่งตัวสามารถส่งข้อมูลเข้าไปที่ Gateway ได้มากกว่า 1

การเชื่อมต่อระหว่าง End-Device กับ Gateway จะทำผ่าน LoRa แต่หลังจาก Gateway เป็นต้นไปจะเป็นระบบการเชื่อมต่อแบบ IP Base

ก่อนที่ End-Device จะเชื่อมต่อกับ LoRaWan Network จำเป็นจะต้องผ่านกระบวนการ Activated จาก Network ได้โดยข้อมูลดังต่อไปนี้ End-Device จำเป็นจะต้องใช้ได้แก่

  • Device Address ( DevAddr )
  • Network Session Key ( NwkSKey )
  • Application Session Key ( AppSkey )

Device Address มีขนาด 32-bit ค่าของ Device Address จำเป็นจะต้อง Unique หรือไม่ซ้ำใครใน Network เลขของ Device Address จะไปปรากฎอยู่ในทุกๆ เฟรมข้อมูลโดยเป็นข้อมูลที่มองเห็นทั้ง End-Device, Network Server และ Application Server

Network Session Key ใช้สำหรับบอก Network Server ว่าต่อเข้าระบบ Network กลุ่มใดซึ่งต้องเป็นหมายเลขที่ใช้แชร์กับ Network Server ที่เราต้องการเชื่อมต่อ ลักษณะเป็น 128bit AES encrytion Key ข้อมูลส่วนนี้จะเห็นเฉพาะ End-device และ Network Server

Application Session Key ข้อมูลส่วนนี้ให้เห็นเฉพาะ End-device และ Application Server เท่านั้น ใช้สำหรับเข้ารหัสและถอดรหัสข้อมูลส่วนของ Application Data

End-Device Class

ฝั่ง Devices จะมีการแบ่ง Class ออกไปสามคลาสตามลักษณะความต้องการในการเชื่อมต่อได้แก่

Battery Powered — Class A ( ALL END-DEVICES )

เป็น Bidirectional communications

เป็นแบบ unicast messages

End-device จะหลับหลังจากส่งและตื่นขึ้นมารับภายในช่วงเวลาที่กำหนด และฝั่ง Application server ถ้าต้องการส่งค่าไปที่ End device จำเป็นต้องรอ End device ตื่นขึ้นมาเพื่อส่งข้อมูลก่อน

จุดเด่นของ Class A

  • ประหยัดพลังงานมากที่สุด

ข้อด้อยของ Class A

  • มี Latency ในการรับส่งที่นานที่สุด

Class A จึงเหมาะกับ Application ประเภท Sensor ที่วัดค่าโดยใช้ แบตเตอรี่เป็นพลังงานหลัก

Low Latency — Class B

สามารถใช้ได้ทั้ง Unicast และ Multicast Message
การส่งข้อมูลจะมีการกำหนดรอบในการส่งจาก Periodic beacon จาก gateway ข้อดีคือสามารถกำหนดความเร็วและรอบในการส่งข้อมูลจากฝั่ง Server ได้

จุดเด่นของ Class B

  • มี Latency ที่สามารถกำหนดได้

ข้อด้อยของ Class B

  • ใช้พลังงานสูงขึ้นถ้าเทียบกับ Class A

Class B จึงเหมาะกับ Application ประเภท Sensor ที่วัดค่า รวมถึง Actuator ที่ต้องการสั่งค่ากลับจาก Server

No Latency — Class C

เป็นแบบที่ End-device แทบจะไม่มีการ sleep โดยจะเปิด RX slot เพื่อรอรับข้อมูลจาก gateway ตลอดเวลาทำให้การรับส่งข้อมูลแทบจะทันเวลา และ Server สามารถส่งข้อมูลไปที่ End-device ได้ตลอดเวลา แต่แลกกับการใช้พลังงานของ End-device ที่ค่อนข้างมากเมื่อเทียบกับแบบอื่น

ข้อเด่นของ Class C

  • Latency ในการรับข้อมูลต่ำที่สุด
  • End-device เปิดรับข้อมูลตลอดเวลา

ข้อด้อยของ Class C

  • ใช้พลังงานสูงที่สุด จึงเหมาะกับอุปกรณ์ที่มีการเชื่อมต่อแหล่งจ่าย

วิธีการขอ join network ของ End-Device

กระบวนการเชื่อมต่อเข้าระบบเน็ตเวิคจะมีอยู่สองวิธีได้แก่

  1. Over-the-Air Activation ( OTAA ) เป็นกระบวนการที่ใช้ Globally Unique Identifier และมีการแชร์ key ผ่านกระบวนการ Hand shaking ในระหว่างการเชื่อมต่อ กระบวนการในขั้นตอนแรกจึงยุ่งยากกว่าแบบ ABP โดยมีขั้นตอนในการเชื่อมต่อดังต่อไปนี้
  • End-device จะส่ง Join Request ไปที่ Server โดยในข้อมูลประกอบไปด้วย Globally Unique End-Device Identifier ( DevEUI ), Application Identifier ( AppEUI ) และ Application key ( AppKey ) เพื่อขอ Session Key จาก Server
  • Server จะคำนวณ session keys เช่น NetworkSKey, AppSKey และส่ง Join Accept กลับไป
  • End-device จะได้รับ Join Accept
  • End-device ถอดข้อมูล Join Accept
  • End-device นำข้อมูล DevAddr ที่ได้รับมาเก็บไว้ในหน่วยความจำ
  • End-device ได้รับ Network Session Key และ Application Session Key

2. Activation By Rationalization ( ABP ) กระบวนการนี้จำเป็นจะต้อง share key ลง ไปที่อุปกรณ์ ในตอนผลิตหรือตอนดาวน์โหลดโปรแกรม วิธีการนี้เป็นวิธีที่สะดวกในการเชื่อมต่อเข้าระบบเน็ตเวิค เพราะ End-Device สามารถเชื่อมต่อเข้าระบบได้เลยโดยไม่ต้อง hand shaking เพื่อเชื่อมต่อ แต่ข้อเสียจะเป็นการ Locked ระบบ Network ให้ใช้ได้เฉพาะ Key นี้เท่านั้น

Gateway เชื่อมต่อกับ Network Server

การเชื่อมต่อระหว่าง Gateway กับ Network Server จะกระทำผ่าน โพรโตคอล UDP ผ่าน network packet forwarder Protocol ของ Semtech

Network Server

  • มีหน้าที่จัดการเรื่อง Authenticates data ของ End-Devices ที่ถูกส่งมา
  • ถ้าข้อมูลที่ถูกส่งมามี addressed มาที่ Network server ข้อมูลนั้นจะถูกประมวลผล
  • Network Server จะเชื่อมต่อกับ Application Server ผ่าน Standard IP โดยที่ Network Server สามารถลงบนเครื่องเซอเวอร์เครื่องเดียวกับ Application Server ได้

Network Server จึงเป็นตัวกำหนด Deployment model ในการออกแบบระบบ Lora ได้แก่ แบบ

Private Network

  • ใช้ Network server ที่ติดตั้งเองเพื่อใช้โครงข่ายแบบส่วนตัว
  • เหมาะกับเครือข่ายขนาดเล็กถึงกลาง

Centralized Public Network

  • ผู้ให้บริการเป็นผู้จัดการระบบเน็ตเวิค
  • เหมาะกับเครือข่ายขนาดใหญ่

Distributed/Cooperative Public network

  • ไม่มีใครเป็นเจ้าของ Network Server
  • ใช้ Internet Model เช่น THE THINGS NETWORK

Application Server

  • เป็นหลายทางที่รับข้อมูลมาจาก End-device
  • Application จะถอดข้อมูลที่ได้รับมาจาก End-device และประมวลผล
  • สามารถมี Application Server ได้หลายชนิด ใน LoRaWan Network เดียวกัน

การส่งข้อมูลจาก End-Device ถึง Application Server

การส่งข้อมูลจาก End-device ขึ้นไปที่ Network server จะสามารถผ่าน Gateway หนึ่ง หรือ หลายตัวได้ โดยที่ Network Server จะเป็นคนเลือกและจัดการข้อมูลก่อนส่งต่อไปที่ Application Server

การส่งข้อมูลจาก Network Server จะผ่าน Gateway เพียงแค่ตัวเดียว โดยที่ Network Server เป็นคนเลือก Gateway ที่จะส่งข้อมูลกลับไปที่ End-Device

การส่งข้อมูลจาก End-device ไปที่ Application Server จะแบ่งออกเป็น Unconfirmed-Data Message และ Confirmed-Data Message โดยจะต่างกันที่ Unconfirmed-Data Message จะไม่มีการส่ง Acknowledge กลับจาก Application Server มาที่ End-Device

ตัวอย่างการรับส่งข้อมูลแบบ Confirmed-Data Message

  1. อุปกรณ์ End-device ส้งข้อมูลโดยมี Gateways สองตัวที่ได้รับ

2. gateway ทั้งสองตัวได้รับข้อมูลและ forward ข้อมูลผ่าน UDP Protocol IP base ไปที่ Network Server

3. Network Server จัดการเรื่องการ duplicate ข้อมูลและส่งต่อไปที่ Application Server ถ้าเป็นแบบ Unconfirmed-Data Message จะจบที่ขั้นตอนนี้

4. Application Server ส่ง Acknowledgement กลับไปที่ Network Server

5. Network Server จะเลือก Gateway เพียงหนึ่งตัวเพื่อส่งข้อมูล Acknowledgement กลับไปที่ End-Device

6. Gateway จะส่ง Acknowledgement กลับไปที่ End-Device

ในกรณีที่ Application Server ต้องการส่งข้อมูลไปหา End-Device ตัวอย่าง Class-A

  1. Application Server ต้องการจะส่งข้อมูลบางอย่างไปที่ End-Device

2. จำเป็นจะต้องรอจนกว่า End-Device จะตื่นขึ้นมาและเริ่มต้น Transmits ข้อมูลจึงจะ สามารถส่งข้อมูลกลับไปได้

ขอขอบคุณข้อมูลจาก

LoRaWan Network 101 OverView Lora alliance
LoRaWan Microchip Training

ติดตามข่าวสารการอบรม โครงการ IoT ภาคปฏิบัติของเราได้ที่
www.facebook.com/deaware

--

--