ข้ามไปที่เนื้อหา
สารบัญ

การอัปเดตเฟิร์มแวร์แบบ FOTA ในระดับขนาดใหญ่: วิธีการดูแลอุปกรณ์มากกว่า 1,000 เครื่องให้ใช้เฟิร์มแวร์เดียวกันโดยไม่ต้องไปที่สถานที่ติดตั้ง

การอัปเดตเฟิร์มแวร์แบบ FOTA ในระดับขนาดใหญ่: วิธีการดูแลอุปกรณ์มากกว่า 1,000 เครื่องให้ใช้เฟิร์มแวร์เดียวกันโดยไม่ต้องไปที่สถานที่ติดตั้ง

สารบัญ
การอัปเดตเฟิร์มแวร์แบบ FOTA ในระดับขนาดใหญ่: วิธีการดูแลอุปกรณ์มากกว่า 1,000 เครื่องให้ใช้เฟิร์มแวร์เดียวกันโดยไม่ต้องไปที่สถานที่ติดตั้ง
การอัปเดตเฟิร์มแวร์แบบ FOTA ในระดับขนาดใหญ่: วิธีการดูแลอุปกรณ์มากกว่า 1,000 เครื่องให้ใช้เฟิร์มแวร์เดียวกันโดยไม่ต้องไปที่สถานที่ติดตั้ง

การดูแลให้กลุ่มอุปกรณ์ทำงานได้อย่างราบรื่นนั้นดูเหมือนจะง่าย จนกระทั่งคุณมาเจอกับอุปกรณ์หมายเลข #317 แบตเตอรี่ของใครบางคนเหลือน้อย ใครบางคนอยู่ในพื้นที่อับสัญญาณ ใครบางคน "อัปเดต" แล้วแต่ก็ยังรีบูตอยู่เรื่อยๆ และทันใดนั้น ตารางข้อมูลเฟิร์มแวร์ที่เป็นระเบียบเรียบร้อยของคุณก็กลายเป็นที่เกิดเหตุอาชญากรรมไปเสียแล้ว.

เราเคยเห็นเรื่องนี้ในการใช้งานจริงมาแล้ว: ไฟล์อัปเดตนั้นแทบจะไม่ใช่ส่วนที่ยากที่สุด แต่ปัญหาอยู่ที่วิธีการส่งไฟล์ให้เร็วต่างหาก การเปลี่ยนแปลงของเฟิร์มแวร์ไม่ได้เกิดขึ้นเพราะวิศวกรของคุณลืมวิธีการสร้างไบนารี่ แต่เกิดขึ้นเพราะการปล่อยใช้งานเป็นปัญหาด้านการปฏิบัติงาน เมื่อคุณมีผู้ใช้งานมากกว่า 1000 รายขึ้นไป ปัญหาก็จะยิ่งยากขึ้นไปอีก เกตเวย์, ตัวติดตาม, ป้าย, เซ็นเซอร์, หรือในกรณีของกองเรือผสม ส่วนที่ยากที่สุดก็จะกลายเป็นเรื่องที่สม่ำเสมออย่างน่าเจ็บปวด:

  • จะดำเนินการอัปเดตเว็บไซต์อย่างปลอดภัยโดยไม่ทำให้เว็บไซต์ใช้งานไม่ได้ได้อย่างไร?
  • จะหยุดการสร้างที่ไม่ดีได้อย่างไร เร็ว?
  • คุณจะพิสูจน์ได้อย่างไรว่าใครได้รับการอัปเดตข้อมูลบ้าง (และใครไม่ได้รับการอัปเดต)?
  • คุณจะอัปเดตอุปกรณ์ที่ใช้งานแบบออฟไลน์ได้โดยไม่ต้องส่งคนไปได้อย่างไร?

คู่มือนี้เหมาะสำหรับเวอร์ชันที่ไม่หวือหวาและใช้งานได้จริงของการอัปเดตเฟิร์มแวร์แบบไร้สาย (FOTA): การกระจายการอัปเดต กลยุทธ์การย้อนกลับ และการรายงานที่ชัดเจนว่า "ใครได้รับการอัปเดตบ้าง" นอกจากนี้ ยังอธิบายว่าทำไม FOTA ที่ใช้ Bluetooth จึงเป็นหนึ่งในเครื่องมือที่ดีที่สุดที่คุณมี เกตเวย์ และ ตัวติดตาม.

เหตุใดการใช้งาน FOTA ในวงกว้างจึงต้องมีกลยุทธ์ในการติดตั้งใช้งาน

เมื่อมีอุปกรณ์มากกว่า 1,000 เครื่อง คุณจะไม่ทำการอัปเดตเฟิร์มแวร์อีกต่อไปแล้ว คุณกำลังใช้งานระบบการจัดการการเปลี่ยนแปลงในระบบการผลิตอยู่.

รูปแบบความล้มเหลวสามประการปรากฏขึ้นซ้ำแล้วซ้ำเล่า:

  • การรับเลี้ยงบุตรบุญธรรมบางส่วนการอัปเดตเริ่มต้นได้ดี แต่หยุดชะงักที่เวอร์ชัน 73% เนื่องจากอุปกรณ์ที่เหลือเป็นอุปกรณ์ที่ยากที่สุด.
  • ความแตกต่างที่เงียบงันอุปกรณ์บางเครื่องรายงานเวอร์ชัน แต่บางเครื่องอาจใช้เวอร์ชันการสร้างที่แตกต่างออกไป หรืออิมเมจที่ติดตั้งไม่สมบูรณ์.
  • ความวุ่นวายในการย้อนกลับเมื่อเวอร์ชันที่ผิดพลาดถูกปล่อยออกไป คุณก็มารู้ตัวสายเกินไปว่าการย้อนกลับไม่ใช่แค่ปุ่มกด... แต่มันเป็นการตัดสินใจทางวิศวกรรมที่คุณต้องทำมาตั้งแต่หลายเดือนก่อนแล้ว.

ปัญหาไม่ได้เกิดจากแง่มุมของการส่งสัญญาณผ่านทางอากาศ แต่เกิดจากแง่มุมของการใช้งานในระดับใหญ่.

ระบบอัปเดตกลุ่มอุปกรณ์ที่ดีจะจัดการเฟิร์มแวร์เหมือนกับกระบวนการปล่อยเวอร์ชัน: ไฟล์ที่ลงนามแล้ว การทยอยปล่อยเวอร์ชัน ผลลัพธ์ที่วัดได้ และสถานะฝั่งอุปกรณ์ที่ตรวจสอบได้ สถาปัตยกรรม IETF SUIT ทำให้แนวคิดนี้เป็นรูปธรรมโดยการแยกสิ่งที่ควรติดตั้ง (ไฟล์กำหนดค่าที่ได้รับการป้องกัน) ออกจากวิธีการส่งมอบ (ไม่ขึ้นกับวิธีการขนส่ง) ซึ่งเป็นสิ่งที่คุณต้องการอย่างแท้จริงเมื่อกลุ่มอุปกรณ์ของคุณใช้เฟิร์มแวร์ที่หลากหลาย โลราวัน, การขนส่งผ่านเครือข่ายโทรศัพท์มือถือและบลูทูธ. (1)

4 องค์ประกอบหลักของระบบ FOTA ที่เชื่อถือได้ในระดับขนาดใหญ่

ชั้นมันตอบคำถามอะไร“ความดี” มีลักษณะอย่างไร
1) บรรจุภัณฑ์เรากำลังติดตั้งอะไรกันแน่?เอกสารที่ลงนามแล้ว การกำหนดเวอร์ชันที่ชัดเจน เกณฑ์ความเข้ากันได้ของฮาร์ดแวร์
2) การเรียบเรียงดนตรีใครควรเป็นผู้ทำการอัปเดต และเมื่อใด?กลุ่มผู้ใช้งาน การควบคุมอัตราการเปิดตัว ช่วงเวลาการบำรุงรักษา กฎการยกเลิก
3) การติดตั้งและการย้อนกลับแล้วถ้ามันบูตขึ้นมาได้แต่ทำงานผิดปกติล่ะ?การทดสอบแบบ A/B หรือการทดสอบแล้วยืนยันผล การตรวจสอบสุขภาพก่อน "ตัดสินใจ"“
4) ระบบวัดระยะทางและการรายงานใครได้รับการอัปเดตบ้าง? ใครไม่ได้รับการอัปเดต? เพราะอะไร?สถานะต่ออุปกรณ์, เวลา, เหตุผล, บันทึกการตรวจสอบที่สามารถส่งออกได้

วิธีการอัปเดตเฟิร์มแวร์อย่างปลอดภัยสำหรับอุปกรณ์ IoT จำนวนมาก

ขั้นตอนที่ 1: วิธีการจัดกลุ่มอุปกรณ์ IoT สำหรับการอัปเดตเฟิร์มแวร์

ก่อนที่จะสร้างกลุ่มอุปกรณ์ ให้กำหนดความหมายของ “อุปกรณ์ที่คล้ายกัน” ก่อน หน่วยการเปิดตัวอุปกรณ์ที่ดีมักจะประกอบด้วยคีย์กลุ่มอุปกรณ์ (เลือก 3-6 รายการ):

  • การแก้ไขฮาร์ดแวร์ (หรือตัวแปร BOM)
  • ภูมิภาค/แผนคลื่นความถี่ (EU868 เทียบกับ US915, คลื่นความถี่ LTE เป็นต้น)
  • รูปแบบการใช้พลังงาน (แบตเตอรี่เทียบกับไฟบ้าน)
  • บทบาท (เกตเวย์เทียบกับตัวติดตาม)
  • สถานที่ตั้งของลูกค้าหรือผู้เช่า
  • เฟิร์มแวร์ปัจจุบัน เวอร์ชันหลัก/รอง

เรื่องนี้สำคัญเพราะพฤติกรรมการย้อนกลับ การใช้พลังงานแบตเตอรี่ และการตั้งค่า RF มักแตกต่างกันไปตามกลุ่มผู้ใช้งาน.

ขั้นตอนที่ 2: อธิบายขั้นตอนการทยอยปล่อยเฟิร์มแวร์ (Canary → Production)

อย่าใช้ 10%, 50% หรือ 100% โดยไม่คิดให้รอบคอบ ควรใช้ขอบเขตการปฏิบัติงาน:

  • นกคานารีอุปกรณ์ภายในจำนวนหนึ่ง + สถานที่ให้บริการลูกค้าที่เป็นมิตร 1-2 แห่ง
  • ภูมิภาค/ประเภทพื้นที่นำร่อง: หนึ่งภูมิศาสตร์ หนึ่งประเภทเครือข่าย หนึ่งเวอร์ชันฮาร์ดแวร์
  • คลื่นการผลิตจัดกลุ่มตามเขตเวลา ประเภทการเชื่อมต่อ หรือระดับลูกค้า
  • การทำความสะอาดหางยาวอุปกรณ์ที่ไม่ได้เชื่อมต่ออินเทอร์เน็ต อุปกรณ์ที่ไม่ได้รีสตาร์ทเครื่องบ่อย หรืออุปกรณ์ที่อยู่หลังไฟร์วอลล์

ขั้นตอนที่ 3: วิธีควบคุมความเร็วในการติดตั้งเฟิร์มแวร์ในกลุ่มอุปกรณ์ขนาดใหญ่

ระบบจัดการการทำงานที่ดีจะช่วยให้คุณควบคุมความเร็วในการแจ้งเตือนอุปกรณ์ และควรสนับสนุนการเปิดใช้งานทีละขั้นตอนและความสามารถในการยกเลิกเมื่อความล้มเหลวเกินเกณฑ์ที่กำหนด ตัวอย่างเช่น AWS IoT Jobs รองรับอัตราการเปิดใช้งานแบบคงที่และแบบทวีคูณ รวมถึงการกำหนดค่าการยกเลิกที่เชื่อมโยงกับเกณฑ์ความล้มเหลว. (2)

เหตุใดการเติบโตแบบทวีคูณจึงมีความสำคัญ: คุณสามารถเริ่มต้นอย่างช้าๆ แล้วเร่งความเร็วได้ก็ต่อเมื่อมีสัญญาณแห่งความสำเร็จสะสมมากขึ้นเท่านั้น.

ขั้นตอนที่ 4: ช่วงเวลาที่เหมาะสมที่สุดสำหรับการอัปเดตเฟิร์มแวร์ IoT

ถ้า เกตเวย์ โปรดรีบูตเครื่องในช่วงเวลาทำการ จะมีคนโทรติดต่อคุณ.

ใช้ช่วงเวลาการบำรุงรักษาเพื่อให้การอัปเดตติดตั้ง/รีบูตภายในช่วงเวลาที่ได้รับอนุมัติเท่านั้น AWS IoT Jobs รองรับงานที่กำหนดเวลาไว้และช่วงเวลาการบำรุงรักษาที่เกิดขึ้นซ้ำๆ สำหรับการเปิดตัวใช้งาน. (2)

แม่แบบแผนคลื่นที่คุณสามารถใช้ได้:

คลื่นกลุ่มเป้าหมายอัตราการเปิดตัวติดตั้งหน้าต่าง“ประตู ”ผ่าน”ประตูยกเลิกอัตโนมัติ
นกคานารี20 อุปกรณ์5/นาทีเวลาใดก็ได้เสถียรตลอด 24 ชั่วโมง + ตัวชี้วัดประสิทธิภาพ (KPI) อยู่ในเกณฑ์ดีความล้มเหลวของ TP3T มากกว่า 51 รายการ
นักบิน1 ประเภทไซต์25/นาที02:00–05:00 ตามเวลาท้องถิ่นเสถียรนาน 48 ชั่วโมงความล้มเหลว >3%
โปรดักชั่น เอภูมิภาคที่ 1เลขชี้กำลัง01:00–04:00เสถียรนาน 72 ชั่วโมงความล้มเหลว >2%
โปรดักชั่น บีภูมิภาคที่ 2เลขชี้กำลัง01:00–04:00เสถียรนาน 72 ชั่วโมงความล้มเหลว >2%
การทำความสะอาดคนหลงทางต่ำคงที่สุดสัปดาห์ไม่มีข้อมูลไม่มีข้อมูล

สองกฎปฏิบัติที่เรายึดถือ:

  1. อย่าทำการโฆษณาโดยอาศัยเพียงแค่ "ระยะเวลาที่ผ่านไป" เท่านั้น ให้ทำการโฆษณาโดยพิจารณาจากสุขภาพที่สังเกตได้จริง.
  2. เงื่อนไขการหยุดรถต้องเป็นแบบอัตโนมัติ มนุษย์เราคิดช้าในเวลาตีสอง.

ตัวชี้วัดสำคัญในการวัดความสำเร็จของการอัปเดตเฟิร์มแวร์

ทำให้มันเรียบง่ายเข้าไว้ กำหนดสัญญาตอบรับสั้นๆ:

  • อัตราความสำเร็จในการติดตั้ง ≥ 98% (ต่อกลุ่ม)
  • การรีบูตวนซ้ำหลังการอัปเดต ≤ 0.2%
  • ผลกระทบของแบตเตอรี่อยู่ในขอบเขตที่คาดการณ์ไว้ (สำหรับแบตเตอรี่แต่ละก้อน)
  • การถดถอยของการเชื่อมต่อไม่ได้แย่ไปกว่าระดับพื้นฐานอย่างมีนัยสำคัญทางสถิติ

ถ้าคุณไม่กำหนดค่าพื้นฐานของตัวชี้วัดเหล่านั้นก่อนเริ่มใช้งาน คุณก็ไม่สามารถพิสูจน์อะไรได้หลังจากนั้น.

ขั้นตอนที่ 5: ยกเลิกอย่างรวดเร็ว: ออกแบบ "ปุ่มหยุด" ของคุณก่อนที่คุณจะต้องการใช้มัน

การใช้งานที่ครบวงจรจะมีเกณฑ์การยกเลิกที่กำหนดไว้ล่วงหน้า:

  • อุปกรณ์จำนวนมากไม่สามารถดาวน์โหลด/ติดตั้งได้
  • อุปกรณ์จำนวนมากหมดเวลาการทำงานระหว่างดำเนินการ
  • อุปกรณ์จำนวนมากปฏิเสธการอัปเดต (ฮาร์ดแวร์ไม่รองรับ แบตเตอรี่เหลือน้อย ฯลฯ)

AWS IoT Jobs รองรับการยกเลิกงานอย่างชัดเจนเมื่อเปอร์เซ็นต์ของอุปกรณ์ถึงเกณฑ์ที่กำหนด เช่น FAILED, TIMED_OUT หรือ REJECTED และยังรองรับการตั้งค่าการลองใหม่และการหมดเวลาเพื่อควบคุมการทำงานที่ค้างอยู่ (2)

เคล็ดลับที่นำไปใช้ได้จริง: การยกเลิกเที่ยวบินนั้นมีความสำคัญทั้งด้านความปลอดภัยและค่าใช้จ่าย การลองบินซ้ำในฝูงบินทั้งหมดอาจส่งผลให้เสียค่าใช้จ่ายและเวลามากขึ้น.

ขั้นตอนที่ 6: วิธีการทำงานของการย้อนกลับเฟิร์มแวร์ในอุปกรณ์ IoT

ถ้าแผนการย้อนกลับของคุณคือ “ปล่อยเวอร์ชัน 1.2.4 ออกมาอย่างรวดเร็ว” แสดงว่าคุณไม่มีแผนการย้อนกลับที่แท้จริง.

รูปแบบที่ชัดเจนที่สุด: ทดสอบ → ตรวจสอบสุขภาพ → ยืนยัน

บูตโหลดเดอร์ที่รองรับการอัปเกรดแบบทดสอบจะอนุญาตให้คุณบูตอิมเมจใหม่ได้หนึ่งครั้ง จากนั้นจะกลับไปสู่เวอร์ชันเดิมโดยอัตโนมัติในการรีเซ็ตครั้งถัดไป เว้นแต่เฟิร์มแวร์จะยืนยันอย่างชัดเจนว่าใช้งานได้ดี.

MCUboot (ผ่าน API ควบคุมภาพของ Zephyr) รองรับแนวคิดนี้อย่างแม่นยำ: สามารถทำการทดสอบการอัปเกรดได้ และระบบจะกลับไปสู่สถานะเดิมเว้นแต่ว่าภาพใหม่จะพร้อมใช้งาน ยืนยันแล้ว โดยเฟิร์มแวร์ที่กำลังทำงานอยู่. (3)

เกตยืนยันแบบง่ายๆ (ซึ่งใช้งานได้ดีอย่างน่าประหลาดใจ) cยืนยันเฉพาะเมื่อเงื่อนไขทั้งหมดนี้เป็นจริงเท่านั้น:

  • อุปกรณ์จะเริ่มทำงานและเปิดใช้งานต่อเนื่องเป็นเวลา N นาที
  • รายงานข้อมูลโทรมาตรสำเร็จแล้ว (การส่งข้อมูลขึ้น MQTT/HTTP)
  • การเริ่มต้นอุปกรณ์ต่อพ่วงที่สำคัญ (วิทยุ, ที่เก็บข้อมูล, เซ็นเซอร์)
  • สุนัขเฝ้าบ้านยังคงสงบ
  • ตัวเลือกเสริม: โปรแกรมนี้จะทำการทดสอบตัวเองเล็กน้อย

จากนั้นแอปของคุณจะเรียกใช้รูทีนยืนยัน (เพื่อให้บูตโหลดเดอร์หยุดถือว่าอิมเมจนั้นเป็นเวอร์ชันทดลอง). (3)

ประเภทการย้อนกลับสองแบบที่คุณต้องการ:

  • การย้อนกลับอัตโนมัติ (กรณีบูตล้มเหลว / การทดลองไม่ได้รับการยืนยัน)
  • การย้อนกลับการดำเนินงาน (คุณตัดสินใจย้อนกลับเนื่องจากตัวชี้วัดประสิทธิภาพลดลง)

ขั้นตอนที่ 7: ใครได้รับการอัปเดตบ้าง? การรายงานที่ผ่านการตรวจสอบและแก้ไขความไม่พอใจของลูกค้า

เมื่อใช้งานในระดับใหญ่ คุณจำเป็นต้องมีข้อมูลที่ถูกต้องสองเวอร์ชัน:

  1. สถานะที่ต้องการ (สิ่งที่คุณต้องการให้ทำงาน)
  2. สถานะที่รายงาน (สถานะที่อุปกรณ์แจ้งว่ากำลังทำงานอยู่)

และคุณจำเป็นต้องมีข้อมูลเมตาเกี่ยวกับการดำเนินการ: มันพยายามเมื่อไหร่ เกิดอะไรขึ้น และทำไมมันถึงหยุดทำงาน.

ควรจัดเก็บข้อมูลอะไรบ้างในแต่ละอุปกรณ์ (ข้อมูลที่จำเป็นขั้นต่ำ)

สนามทำไมมันถึงสำคัญ
รหัสอุปกรณ์กุญแจสำคัญสำหรับทุกสิ่ง
ฮาร์ดแวร์เวอร์ชัน / รุ่นประตูความเข้ากันได้
เฟิร์มแวร์ที่ต้องการเจตนาในการรณรงค์
เฟิร์มแวร์ที่รายงานความเป็นจริง
อัปเดตรหัสงานการตรวจสอบย้อนกลับ
สถานะผลลัพธ์รูปแบบ IN_PROGRESS / SUCCEEDED / FAILED / TIMED_OUT / REJECTED
ความพยายามครั้งสุดท้าย_tsความใหม่
รหัสเหตุผลความล้มเหลวการคัดกรองที่นำไปปฏิบัติได้จริง
ครั้งล่าสุดที่เห็น_tsการตรวจจับแบบออฟไลน์

AWS IoT Jobs ติดตามความคืบหน้าของงานในเป้าหมายต่างๆ และแสดงแนวคิดสถานะการดำเนินการของงาน (การดำเนินการของงานคืออินสแตนซ์ต่ออุปกรณ์ที่คุณตรวจสอบ). (2)

หากคุณเลือกโฮสต์เองหรือต้องการแบ็กเอนด์ที่สร้างขึ้นโดยเฉพาะเพื่อรองรับการเปิดตัวผลิตภัณฑ์ใหม่, อีคลิปส์ ฮอว์คบิต เป็นเซิร์ฟเวอร์อัปเดตที่ไม่ขึ้นกับอุปกรณ์ใดๆ ออกแบบมาเพื่อปล่อยอัปเดตให้กับอุปกรณ์ปลายทางที่มีข้อจำกัด และ เกตเวย์, โดยใช้โมเดล API แบบ HTTP/JSON “การผสานรวมอุปกรณ์โดยตรง”. (4)

เหตุใด FOTA ที่ใช้บลูทูธจึงถูกมองข้าม โดยเฉพาะอย่างยิ่งสำหรับเกตเวย์และอุปกรณ์ติดตาม

การติดตั้งระบบติดตามจำนวนมากจะมีลักษณะดังนี้:

  • เกตเวย์ มีแหล่งจ่ายไฟ + ระบบเชื่อมต่อ (อีเธอร์เน็ต/ไวไฟ/LTE)
  • อุปกรณ์ติดตาม/เซ็นเซอร์มีงบประมาณด้านพลังงานที่จำกัดและต้นทุนการส่งสัญญาณขึ้นสู่ดาวเทียมที่ไม่คุ้มค่า
  • คุณยังคงต้องทำให้ทุกอย่างในเฟิร์มแวร์สอดคล้องกันเพื่อให้ระบบมีความน่าเชื่อถือ

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

โดยใช้ เกตเวย์ เพื่อแจกจ่ายการอัปเดตเฟิร์มแวร์ผ่านบลูทูธ

  1. ระบบคลาวด์จะส่งไฟล์เฟิร์มแวร์ไปยังเกตเวย์ (เพียงครั้งเดียว).
  2. Gateway จะจัดเตรียมข้อมูลไว้ในเครื่องโลคัล.
  3. การอัปเดตเกตเวย์ในบริเวณใกล้เคียง ตัวติดตาม เกิน บลูทูธ ในช่วงเวลาที่กำหนดไว้.

นั่นจะเปลี่ยนจาก “อุปกรณ์ 1,000 เครื่องดาวน์โหลด 1,000 ครั้ง” เป็น “ดาวน์โหลดครั้งเดียวต่อเว็บไซต์ กระจายไปยังเครื่องในพื้นที่”

แต่ BLE ช้า! จริงๆ แล้วมันไม่ช้าหรอก ถ้าตั้งค่าอย่างถูกต้อง.

เทคโนโลยี BLE สมัยใหม่สามารถส่งข้อมูลจริงได้ เอกสารประกอบของ Silicon Labs เกี่ยวกับสแต็ก Bluetooth LE ระบุว่าสามารถส่งข้อมูลได้สูงสุดถึง ~700 kbps ผ่าน 1M PHY และ ~1300 kbps ผ่าน 2M PHY โดยมีขนาดแพ็กเก็ต Link Layer สูงสุด 251 B (และ ATT สูงสุด 250 B) ซึ่งเป็นค่าต่างๆ ที่ทำให้การถ่ายโอนเฟิร์มแวร์เป็นไปได้อย่างมีประสิทธิภาพ. (6)

แนวทางการอัปเดตซอฟต์แวร์แบบ OTA ของ Silicon Labs ระบุข้อเท็จจริงที่สำคัญสองประการดังนี้:

  • OTA มักเกี่ยวข้องกับ บันทึกภาพที่เข้ามาลงในหน่วยความจำแฟลช จากนั้นจึงรีบูตเครื่องเพื่อทำการติดตั้ง.
  • การลบข้อมูลในหน่วยความจำแฟลชอาจใช้เวลาเพียงไม่กี่วินาที—หากคุณกำลังดาวน์โหลดผ่านบลูทูธ หมดเวลาการกำกับดูแล ต้องจัดการเรื่องนั้น (หรือลบออกล่วงหน้า / ทีละหน้า).

นอกจากนี้ ยังมีการแยกแยะความแตกต่างระหว่างวิธีการที่เขียนทับทันทีกับวิธีการที่เตรียมอิมเมจไว้ก่อน และยังชี้ให้เห็นถึงข้อแลกเปลี่ยนด้านความปลอดภัย (ตัวอย่างเช่น OTA ที่ใช้แอปพลิเคชันช่วยให้มีความปลอดภัย/ปรับแต่งได้ดีกว่า และสามารถรองรับการเชื่อมต่อแบบเข้ารหัสได้). (5)

คำถามที่พบบ่อย

เกี่ยวกับ FOTA ในระดับขนาดใหญ่

  • ฉันควรเลือกขนาดลอนผมอย่างไรดี?

    เริ่มต้นด้วยนกคานารีที่คุณสามารถเข้าถึงได้จริงหากจำเป็น จากนั้นขยายผ่านการเปิดตัวแบบทวีคูณก็ต่อเมื่อตัวชี้วัดความสำเร็จเป็นไปตามที่คาดไว้ ระบบเช่น AWS IoT Jobs รองรับการควบคุมการเปิดตัวแบบเป็นขั้นตอนและกฎการยกเลิกที่สอดคล้องกับรูปแบบนี้เป็นอย่างดี (2)

  • รูปแบบการย้อนกลับที่ปลอดภัยที่สุดสำหรับอุปกรณ์ฝังตัวคืออะไร?

    ใช้การบูตทดลอง + ยืนยัน MCUboot รองรับ “การอัปเกรดทดสอบ” ที่จะย้อนกลับเว้นแต่เฟิร์มแวร์ของคุณจะยืนยันตัวเองอย่างชัดเจน (3)

  • การถ่ายโอนเฟิร์มแวร์ผ่าน BLE ใช้เวลานานเท่าไหร่?

    โดยประมาณ: เวลา ≈ ขนาดภาพ_บิต / อัตราการส่งข้อมูล ด้วยอัตราการส่งข้อมูลระดับ ~700 kbps (1M PHY) ถึง ~1300 kbps (2M PHY) แม้แต่ภาพขนาดหลาย MB ก็สามารถทำได้ในหน้าต่างที่ควบคุมได้ (6)

  • ทำไมไม่ทำทุกอย่างผ่านเครือข่ายมือถือ/Wi-Fi โดยตรงไปเลยล่ะ?

    ทำได้ แต่จะทำให้ต้นทุนและโอกาสเกิดความล้มเหลวเพิ่มขึ้น การกระจายสัญญาณ BLE มีประสิทธิภาพสูงสุดเมื่อมีอุปกรณ์จำนวนมากใช้ไซต์งานเดียวกัน และมีเพียงเกตเวย์เท่านั้นที่มีการเชื่อมต่อเครือข่ายที่เชื่อถือได้.

  • ฉันจะหลีกเลี่ยงการหลุดการเชื่อมต่อบลูทูธระหว่างการอัปเดต OTA ได้อย่างไร?

    คำนึงถึงช่วงเวลาหยุดชั่วคราวสำหรับการลบ/เขียนข้อมูลในหน่วยความจำแฟลชด้วย. โอทีเอ การใช้งานอาจต้องใช้ระยะเวลาหมดเวลาการกำกับดูแลที่นานขึ้นหรือกลยุทธ์การลบก่อนเพื่อป้องกันการตัดการเชื่อมต่อระหว่างการดำเนินการลบหลายวินาที (5)

  • ฉันจะหลีกเลี่ยงการหลุดการเชื่อมต่อบลูทูธระหว่างการอัปเดต OTA ได้อย่างไร?

    คำนึงถึงช่วงเวลาหยุดชั่วคราวสำหรับการลบ/เขียนข้อมูลในหน่วยความจำแฟลชด้วย. โอทีเอ การใช้งานอาจต้องใช้ระยะเวลาหมดเวลาการกำกับดูแลที่นานขึ้นหรือกลยุทธ์การลบก่อนเพื่อป้องกันการตัดการเชื่อมต่อระหว่างการดำเนินการลบหลายวินาที (5)

  • ถ้าไม่อยากผูกติดกับผู้ให้บริการคลาวด์รายใดรายหนึ่ง ฉันควรใช้เครื่องมืออะไรในการจัดการการใช้งานระบบคลาวด์?

    เซิร์ฟเวอร์อัปเดตอย่าง Eclipse hawkBit ถูกสร้างขึ้นเพื่อใช้ในการเผยแพร่การอัปเดตไปยังอุปกรณ์ที่มีข้อจำกัด และ เกตเวย์ และเปิดเผยโมเดล API การรวมอุปกรณ์ HTTP/JSON (4)

เอกสารอ้างอิงและแหล่งข้อมูลเพิ่มเติม:

  1. IETF, RFC 9019: สถาปัตยกรรมสำหรับการอัปเดตเฟิร์มแวร์สำหรับอุปกรณ์อินเทอร์เน็ตของสรรพสิ่ง (IoT)
  2. คู่มือสำหรับนักพัฒนา AWS IoT Core: วิธีการทำงานของการกำหนดค่างาน
  3. เอกสารประกอบโครงการ Zephyr: API ควบคุมอิมเมจ MCUboot 
  4. Eclipse hawkBit GitHub: เซิร์ฟเวอร์อัปเดตสำหรับการเผยแพร่ซอฟต์แวร์อัปเดตไปยังอุปกรณ์ปลายทาง/เกตเวย์; API การรวมอุปกรณ์ผ่าน HTTP/JSON
  5. เอกสารจาก Silicon Labs: การอัปเกรด Bluetooth OTA
  6. เอกสารจาก Silicon Labs: ภาพรวมของ Bluetooth Stack

แชร์โพสต์นี้:

ข่าวสาร IoT ล่าสุด:

เอกสารเผยแพร่: