แอปพลิเคชัน Bluetooth IoT ที่เป็นต้นแบบอย่างรวดเร็วด้วยชุดพัฒนาและบอร์ดเสริมแบบออฟไลน์

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

ความต้องการผลิตภัณฑ์ที่เชื่อมต่ออย่างชาญฉลาดเปิดโอกาสให้นักพัฒนาที่สามารถเปลี่ยนแนวคิดให้เป็นแอปพลิเคชัน Internet of Things (IoT) ที่ใช้งานได้อย่างรวดเร็ว ความพร้อมใช้งานของโปรเซสเซอร์ที่ประหยัดพลังงาน ตัวเลือกการเชื่อมต่อไร้สาย และอุปกรณ์ต่อพ่วงฮาร์ดแวร์ที่หลากหลายเป็นรากฐานที่แข็งแกร่งสำหรับการนำการออกแบบที่ใช้พลังงานต่ำและพร้อมสำหรับการผลิตมาใช้อย่างเหมาะสม

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

บทความนี้แสดงวิธีที่นักพัฒนาสามารถใช้ฮาร์ดแวร์และซอฟต์แวร์จาก Silicon Labs เพื่อสร้างต้นแบบอุปกรณ์ IoT ที่เชื่อมต่ออย่างมีประสิทธิภาพด้านพลังงานเฉพาะอย่างรวดเร็วโดยใช้บอร์ดเสริมที่มีจำหน่ายทั่วไป

เปิดใช้งานการสร้างต้นแบบอย่างรวดเร็ว

เมื่อสำรวจความเป็นไปได้ใหม่ ๆ สำหรับอุปกรณ์ IoT ไร้สายที่ใช้พลังงานจากแบตเตอรี่ นักพัฒนาอาจพบว่าตนเองจมอยู่กับรายละเอียดมากมายที่เกี่ยวข้องกับการสร้างแพลตฟอร์มการพัฒนาที่ใช้งานได้ ด้วยระบบย่อยแบบบูรณาการ อุปกรณ์ system-on-chip (SoC) ขั้นสูงสามารถให้แกนหลักของแพลตฟอร์มดังกล่าวได้ แต่นักพัฒนายังต้องสร้างระบบที่สมบูรณ์รอบตัวพวกเขา

ในการสร้างแพลตฟอร์มการพัฒนาที่เหมาะสมสำหรับอุปกรณ์เหล่านี้ นักพัฒนาไม่เพียงต้องตอบสนองความต้องการขั้นพื้นฐานเพื่อประสิทธิภาพการทำงานที่แข็งแกร่งและอายุการใช้งานแบตเตอรี่ที่ยาวนานขึ้นเท่านั้น แต่ยังต้องสร้างความยืดหยุ่นเพื่อรองรับความต้องการเฉพาะของแต่ละแอพพลิเคชั่นด้วย BGM220-EK4314A Explorer Kit จาก Silicon Labs ตอบสนองความต้องการที่ผสมผสานกัน ทำให้นักพัฒนาสามารถมุ่งเน้นไปที่การสร้างต้นแบบอย่างรวดเร็วของแนวคิดการออกแบบใหม่ แทนที่จะจัดการกับรายละเอียดที่เกี่ยวข้องกับการสร้างแพลตฟอร์มการพัฒนาของตนเอง

แพลตฟอร์มการพัฒนาที่รวดเร็วที่ยืดหยุ่น

BGM220-EK4314A Explorer Kit นำเสนอแพลตฟอร์มต้นทุนต่ำสำหรับการพัฒนาแอปพลิเคชันที่ใช้บลูทูธ โดยผสมผสานโมดูล Gecko ไร้สาย BGM220P ของ SiLabs (BGM220PC22HNA), ดีบักเกอร์ SEGGER J-Link ออนบอร์ด, ปุ่มกด, ไดโอดเปล่งแสง (LED) และตัวเลือกการขยายหลายตัว (รูปที่ 1)

รูปภาพของ SiLabs BGM220-EK4314A Explorer Kitรูปที่ 1: SiLabs BGM220-EK4314A Explorer Kit มอบการผสมผสานระหว่างประสิทธิภาพการประมวลผล การจัดการพลังงาน และความยืดหยุ่นในการกำหนดค่าที่จำเป็นในการสร้างต้นแบบอย่างรวดเร็วและประเมินการกำหนดค่าฮาร์ดแวร์ต่อพ่วงต่าง ๆ (แหล่งรูปภาพ: Silicon Labs)

โมดูล BGM220P ทำหน้าที่เป็นโซลูชั่นที่สมบูรณ์สำหรับอุปกรณ์ IoT ที่ใช้พลังงานแบตเตอรี่ขนาดเล็ก แบบบูรณาการEFR32BG22 Blue Gecko SoC ใช้พลังงานต่ำเป็นพิเศษ ความสามารถมุมรับบลูทูธ (AoA) และมุมออก (AoD) และความแม่นยำของตำแหน่งต่ำกว่า 1 เมตร—ทั้งหมดนี้จำเป็นสำหรับแอปพลิเคชัน Bluetooth ยอดนิยมที่กำลังเติบโต รวมถึงแท็กติดตามทรัพย์สิน ล็อคประตูอัจฉริยะ ฟิตเนส และอื่น ๆ

ความสามารถในการทำงานเป็นระบบแบบสแตนด์อโลน โมดูล BGM220P รวม EFR32BG22 SoC กับแฟลช 512 Kbytes, หน่วยความจำเข้าถึงโดยสุ่ม (RAM 32 Kbytes), ความถี่สูง (HF) และคริสตัลความถี่ต่ำ (LF) (XTAL) และ 2.4 เครือข่ายที่จับคู่กิกะเฮิรตซ์ (GHz) และเสาอากาศเซรามิกสำหรับการเชื่อมต่อไร้สาย (รูปที่ 2)

ไดอะแกรมของโมดูล SiLabs BGM220Pรูปที่ 2: ความสามารถในการทำหน้าที่เป็นระบบแบบสแตนด์อโลน โมดูล SiLabs BGM220P ได้รวม EFR32BG22 Blue Gecko SoC เข้ากับส่วนประกอบเพิ่มเติมที่จำเป็นสำหรับการติดตั้งอุปกรณ์ที่ใช้ Bluetooth (แหล่งรูปภาพ: Silicon Labs)

นอกจากความสามารถในการทำหน้าที่เป็นโฮสต์แบบสแตนด์อโลนสำหรับการออกแบบ IoT ที่มีขนาดเล็กแล้ว โมดูลยังสามารถทำหน้าที่เป็นตัวประมวลผลร่วมเครือข่าย (NCP) สำหรับโฮสต์โปรเซสเซอร์ที่เชื่อมต่อผ่านอินเทอร์เฟซ UART ของโมดูล สแต็ค Bluetooth ที่ผสานรวมจะให้บริการไร้สายสำหรับแอปพลิเคชันที่ทำงานบนโมดูลในรูปแบบสแตนด์อโลน หรือประมวลผลคำสั่งที่ได้รับจากโฮสต์เมื่อทำงานในการออกแบบ NCP

SoC ไร้สายที่ประหยัดพลังงาน

SoC ไร้สาย Bluetooth EFR32BG22 ของโมดูล BGM220P ผสานรวม 32 บิตArm Cortex-M33 core, วิทยุ 2.4 GHz, ความปลอดภัย, ระบบย่อยการจัดการพลังงาน, ตัวจับเวลาและตัวเลือกอินเทอร์เฟซหลายตัว ออกแบบมาโดยเฉพาะสำหรับการออกแบบที่ใช้พลังงานจากแบตเตอรี่ต่ำเป็นพิเศษ EFR32BG22 SoC ใช้คุณสมบัติการจัดการพลังงานหลายอย่างที่สามารถเปิดใช้งานการทำงานของแบตเตอรี่เซลล์แบบเหรียญได้นานถึงสิบปี

ทำงานจากแหล่งจ่ายแรงดันไฟภายนอกเพียงแหล่งเดียว SoC ใช้หน่วยจัดการพลังงานภายในเพื่อสร้างแรงดันไฟฟ้าภายใน ระหว่างการทำงาน หน่วยจัดการพลังงานจะควบคุมการเปลี่ยนแปลงระหว่างโหมดพลังงานห้าโหมด (EMs) ของ SoC แต่ละโหมดช่วยลดการใช้พลังงานโดยการรักษาบล็อคการทำงานที่แอ็คทีฟให้น้อยลงเรื่อยๆ เมื่อ SoC เปลี่ยนจากโหมดแอ็คทีฟ (EM0) เป็นโหมดสลีป (EM1), โหมดดีปสลีป (EM2), โหมดหยุด (EM3) หรือโหมดปิด (EM4) ( รูปที่ 3).

แผนภาพของ Silicon Labs EFR32BG22 SoC (คลิกเพื่อดูภาพขยาย)รูปที่ 3: หน่วยจัดการพลังงานของ EFR32BG22 SoC ควบคุมการเปลี่ยนแปลงระหว่างโหมดพลังงาน EM0, EM1, EM2, EM3 และ EM4 (รหัสสีที่ด้านล่างของภาพ) (แหล่งรูปภาพ: Silicon Labs)

ในโหมดแอ็คทีฟ (EM0) ที่ 76.8 MHz และ 3 โวลต์ โดยใช้ตัวแปลง DC/DC ภายใน SoC จะดึง 27 ไมโครแอมป์ต่อเมกะเฮิรตซ์ (μA/MHz) EM0 เป็นโหมดการทำงานปกติและเป็นโหมดเดียวที่มีคอร์โปรเซสเซอร์ Cortex M33 และบล็อกต่อพ่วงทั้งหมด

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

  • 17 μA/MHz ในโหมดสลีป (EM1)
  • โหมดดีปสลีป 1.40 μA (EM2) พร้อมการเก็บรักษา RAM 32 Kbytes และนาฬิกาแบบเรียลไทม์ (RTC) ที่ทำงานจาก LFXO
  • โหมดหยุด 1.05 μA (EM3) พร้อมการเก็บรักษา RAM 8 Kbytes และ RTC ที่ทำงานจากออสซิลเลเตอร์ตัวต้านทานตัวเก็บประจุ (RC) ความถี่ต่ำพิเศษ 1 กิโลเฮิรตซ์ (kHz) ของ SoC (ULFRCO)
  • โหมดปิด 0.17 μA (EM4)

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

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

ด้วยการใช้โปรเซสเซอร์ที่มีเวลาปลุกและเริ่มทำงานเร็วขึ้น นักพัฒนาสามารถใช้ประโยชน์จากโหมดพลังงานต่ำของโปรเซสเซอร์ได้อย่างเต็มที่ ใน EM1 EFG32BG22 จะตื่นขึ้นในสามนาฬิกา/1.24 ไมโครวินาที (µs) และมีเวลาเข้าที่ 1.29 µs เพิ่มขึ้นเป็น 8.81 มิลลิวินาที (ms) และ 9.96 µs ตามลำดับใน EM4 (ตารางที่ 1)

โหมดพลังงาน Wakeup (เรียกใช้จาก RAM/Flash) รายการ (ดำเนินการจาก Flash)
EM1 3 นาฬิกา / 1.24 μs 1.29 μs
EM2 5.15 / 13.22 μs 5.23 μs
EM3 5.15 / 13.21 μs 5.23 μs
EM4 8.81 ms (แฟลชเท่านั้น) 9.96 ไมโครวินาที

ตารางที่ 1: เวลาเข้าสู่โหมด Wake up และ power สำหรับ EFG32BG22 SoC (ที่มาของตาราง: Silicon Labs)

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

เช่นเดียวกับการออกแบบที่ใช้เซ็นเซอร์จำนวนมากใช้ฟังก์ชัน Wake-on-Interrupt เพื่อหลีกเลี่ยงการปลุกโปรเซสเซอร์ซ้ำๆ เพื่อตรวจสอบกิจกรรม คุณลักษณะ Wake-on-RF ที่สร้างขึ้นในระบบย่อยวิทยุของ EFG32BG22 SoC ทำให้เกิดแนวทางขับเคลื่อนแบบขัดจังหวะที่คล้ายคลึงกัน ซึ่งช่วยให้นักพัฒนาสามารถรักษาโปรเซสเซอร์ในโหมดพลังงานต่ำจนกว่าจะมีกิจกรรมความถี่วิทยุ (RF)

ในทางปฏิบัติ นักพัฒนาวาง SoC ไร้สาย EFG32BG22 ในโหมด EM2, EM3 หรือ EM4 ที่ใช้พลังงานต่ำเป็นพิเศษ และอาศัยความสามารถ Wake-on-RF เพื่อปลุก SoC เมื่อตรวจพบพลังงาน RF เมื่อตรวจพบพลังงานที่อยู่เหนือขีดจำกัด ความสามารถ RFSENSE จะกิน 131 นาโนแอมแปร์ (nA) โหมด RFSENSE ที่มีการเลือกมากขึ้นจะใช้กระแสไฟมากกว่าเล็กน้อยที่ 138 nA แต่ในโหมดนี้ RFSENSE จะกรองสัญญาณ RF ที่เข้ามาเพื่อหลีกเลี่ยงไม่ให้สัญญาณรบกวน RF ตื่น แทนที่จะเป็นสัญญาณ RF ที่ถูกต้อง

ในบางกรณี EFG32BG22 SoC อาจไม่จำเป็นต้องปลุกคอร์โปรเซสเซอร์เลยเพื่อตอบสนองต่อเหตุการณ์ภายนอก: Peripheral Reflex System (PRS) ของ SiLabs ช่วยให้อุปกรณ์ต่อพ่วงตอบสนองต่อเหตุการณ์และทำงานโดยไม่ต้องปลุกคอร์โปรเซสเซอร์ อุปกรณ์ต่อพ่วงสามารถสื่อสารกันได้โดยตรง และสามารถรวมฟังก์ชันต่าง ๆ เข้าด้วยกันเพื่อให้มีฟังก์ชันการทำงานที่ซับซ้อน ด้วยการใช้ความสามารถของ PRS ที่มีโหมดพลังงานต่ำ นักพัฒนาสามารถลดการใช้พลังงานได้อย่างมากโดยไม่กระทบต่อการทำงานที่สำคัญ เช่น การเก็บข้อมูลเซ็นเซอร์

ดีบักในตัวและขยายได้ง่าย

สร้างขึ้นในบอร์ด BGM220 Explorer Kit โมดูล BGM220P นำชุดความสามารถในการจัดการพลังงานและการประมวลผลของ EFR32BG22 SoC มาสู่การออกแบบ Bluetooth ที่ใช้พลังงานจากแบตเตอรี่ เมื่อมีความจำเป็นต้องสร้างต้นแบบอย่างรวดเร็วเพื่อสำรวจแนวคิดการออกแบบใหม่ คุณลักษณะอื่น ๆ ของบอร์ดจะช่วยให้การพัฒนาเร็วขึ้น

เข้าถึงได้ผ่านขั้วต่อ USB Micro-B ของบอร์ด ออนบอร์ด,SEGGERดีบักเกอร์ J-Link เปิดใช้งานการดาวน์โหลดโค้ดและการดีบัก รวมถึงพอร์ต COM เสมือนสำหรับการเข้าถึงคอนโซลโฮสต์ ดีบักเกอร์ยังสนับสนุนความสามารถของอินเทอร์เฟซการติดตามแพ็กเก็ต (PTI) ของ SiLabs สำหรับการวิเคราะห์แพ็กเก็ตที่ส่งหรือรับผ่านเครือข่ายไร้สาย

สำหรับการสร้างต้นแบบอย่างรวดเร็ว การรองรับของบอร์ดสำหรับตัวเลือกการขยายที่หลากหลายนั้นให้ความยืดหยุ่นในการสำรวจแนวคิดการออกแบบใหม่ๆ ที่ต้องการเซนเซอร์ แอคทูเอเตอร์ ตัวเลือกการเชื่อมต่อ และอุปกรณ์ต่อพ่วงอื่นๆ วาดจากความหลากหลายของที่มีอยู่mikroBUS บอร์ดเสริมและควิอิก เชื่อมต่อระบบฮาร์ดแวร์จากผู้ขายหลายราย นักพัฒนาสามารถกำหนดค่าแพลตฟอร์มการพัฒนาสำหรับแต่ละแอปพลิเคชันได้อย่างรวดเร็ว

เสียบเข้ากับซ็อกเก็ต mikroBUS ของบอร์ด บอร์ด mikroBUS จะเชื่อมต่อกับโมดูล BGM220P ผ่านอินเตอร์เฟส I2C, SPI หรือ UART ตัวเชื่อมต่อ Qwiic ช่วยให้อินเตอร์เฟส I2C ของระบบ Qwiic สำหรับเชื่อมต่อบอร์ด Qwiic หนึ่งบอร์ดขึ้นไปในระยะทางสูงสุดประมาณสี่ฟุต (ฟุต) สำหรับการเชื่อมต่อในระยะทางไกล นักพัฒนาสามารถใช้ SparkFun บอร์ด QwiicBus EndPoint (COM-16988) ซึ่งใช้สัญญาณดิฟเฟอเรนเชียลเพื่อรักษาความสมบูรณ์ของสัญญาณ I2C ที่ระยะทางไม่เกิน 100 ฟุต

การพัฒนาแอพพลิเคชั่นอย่างรวดเร็ว

SiLabs ใช้แนวคิดของการขยายตัวอย่างรวดเร็วในการพัฒนาซอฟต์แวร์แอปพลิเคชัน นอกจากแพ็คเกจสนับสนุนบอร์ด ไดรเวอร์ ไลบรารี และส่วนหัวสำหรับการพัฒนาแบบกำหนดเองแล้ว บริษัทยังมีตัวอย่างแอปพลิเคชันหลายตัวที่รวมอยู่ใน ซิมพลิซิตี้สตูดิโอ สภาพแวดล้อมการพัฒนาตลอดจนโครงการเพิ่มเติม ได้จากที่เก็บ GitHub ของ SiLabs อันที่จริง นักพัฒนาสามารถเริ่มสำรวจการพัฒนาแอปพลิเคชันเซ็นเซอร์ด้วยแอปพลิเคชันอุณหภูมิตัวอย่างแบบรวมซึ่งใช้เซ็นเซอร์อุณหภูมิภายในของ EFR32BG22 SoC เป็นแหล่งข้อมูล

สร้างขึ้นจากบริการ Bluetooth Health Temperature มาตรฐาน แอปพลิเคชันอุณหภูมินำเสนอการสาธิตขั้นตอนการประมวลผลที่พร้อมใช้งานทันทีผ่านแอปพลิเคชัน Bluetooth IoT ทั่วไปที่สร้างขึ้นบนสถาปัตยกรรมซอฟต์แวร์ SiLabs แอปพลิเคชันเรียกชุดของรูทีนการเริ่มต้นสำหรับบริการระบบและบริการแอปพลิเคชันที่ตั้งค่าตัวจัดการขัดจังหวะและการเรียกกลับ หลังจากเสร็จสิ้นการเริ่มต้น แอปพลิเคชันจะเข้าสู่การวนซ้ำไม่รู้จบเพื่อรอเหตุการณ์ (รายการที่ 1)

คัดลอก
int main(void)
{
  // Initialize Silicon Labs device, system, service(s) and protocol stack(s).
  // Note that if the kernel is present, processing task(s) will be created by
  // this call.
  sl_system_init();



  // Initialize the application. For example, create periodic timer(s) or
  // task(s) if the kernel is present.
  app_init();



#if defined(SL_CATALOG_KERNEL_PRESENT)
  // Start the kernel. Task(s) created in app_init() will start running.
  sl_system_kernel_start();
#else // SL_CATALOG_KERNEL_PRESENT
  while (1) {
    // Do not remove this call: Silicon Labs components process action routine
    // must be called from the super loop.
    sl_system_process_action();



    // Application process.
    app_process_action();



#if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
    // Let the CPU go to sleep if the system allows it.
    sl_power_manager_sleep();
#endif
  }
#endif // SL_CATALOG_KERNEL_PRESENT
}
รายการ 1: แอปพลิเคชันตัวอย่าง Bluetooth ของ SiLabs ใช้เฟรมเวิร์กการดำเนินการทั่วไปโดยที่การวนซ้ำแบบไม่มีที่สิ้นสุดช่วยให้การเรียกกลับและตัวจัดการเหตุการณ์สามารถประมวลผลการทำงานของระบบและแอปพลิเคชันหลังจากเริ่มต้น (ที่มาของรหัส: Silicon Labs)

ในแอปพลิเคชันนี้ เมื่อตัวจับเวลาที่ตั้งไว้ในระหว่างการเริ่มต้นนับถอยหลัง รูทีนการโทรกลับที่เกี่ยวข้องจะดำเนินการวัดอุณหภูมิ หลังจากที่นักพัฒนาสร้างแอปพลิเคชันและแฟลชบอร์ดแล้ว พวกเขาสามารถใช้ SiLabs . ได้EFR Connect แอป—แอปมือถือ Bluetooth ทั่วไปที่ทำงานร่วมกับชุดอุปกรณ์ Bluetooth และอุปกรณ์ Bluetooth ของ Silicon Labs ทั้งหมด นอกเหนือจากการให้กรอบงานสำหรับแอปที่กำหนดเองแล้ว แอปยังช่วยในการพัฒนาโดยให้มุมมองของคุณลักษณะที่รองรับที่เกี่ยวข้องกับบริการบลูทูธ เช่น บริการ Bluetooth Health Thermometer ที่ใช้ในแอปพลิเคชันตัวอย่างนี้ (รูปที่ 4)

รูปภาพของแอป SiLabs EFR Connect รูปที่ 4: แอป SiLabs EFR Connect แสดงคุณลักษณะของบริการบลูทูธที่ใช้ในแอปพลิเคชัน ไม่เพียงแต่เร่งการพัฒนาต้นแบบ แต่ยังให้กรอบงานสำหรับการพัฒนาแอปที่กำหนดเองด้วย (แหล่งรูปภาพ: Silicon Labs)

ใน Simplicity Studio นักพัฒนาสามารถนำเข้าตัวอย่างแอปพลิเคชัน Bluetooth ต่างๆ ได้จำนวนมาก ซึ่งแสดงให้เห็นสถานการณ์การใช้งานต่างๆ รวมถึงการออกแบบที่สร้างด้วยบอร์ด Qwiic หรือ mikroBUS แยกกันหรือรวมกัน ตัวอย่างเช่นตัวอย่างการสมัคร ที่สาธิตการใช้งานบริการ Bluetooth Heart Rate (HR) มาตรฐานและ Bluetooth Pulse Oximeter (SpO2) ร่วมกับของ MikroElektronikaMIKROE-4037 อัตราการเต้นของหัวใจ 2 คลิกบอร์ด mikroBUS ที่มีMaxim Integrated'sMAX86161 ไบโอเซนเซอร์ MAX86161 ให้ระบบย่อยที่ใช้พลังงานต่ำอย่างสมบูรณ์ซึ่งสามารถให้การวัด HR และ SpO2 ที่แม่นยำกับโปรเซสเซอร์โฮสต์ที่เชื่อมต่อผ่าน I2 อินเทอร์เฟซ C (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ MAX86161 โปรดดูที่สร้างฟิตเนสไร้สายที่แท้จริงที่ได้ยินได้—ส่วนที่ 1: การวัดอัตราการเต้นของหัวใจและ SpO2 ).

ด้วยความต้องการไดรเวอร์เพิ่มเติมและอัลกอริธึมการประมวลผลที่มีความต้องการมากกว่าในแอปพลิเคชันอุณหภูมิ แอปพลิเคชันนี้ให้การสาธิตที่ซับซ้อนมากขึ้นของสถาปัตยกรรมแอปพลิเคชันซอฟต์แวร์อุปกรณ์ IoT (รูปที่ 5)

แผนภาพการใช้งาน HR/SpO2รูปที่ 5: ตัวอย่างโปรเจ็กต์ เช่น แอปพลิเคชัน HR/SpO2 ช่วยเร่งความเร็วของการพัฒนาต้นแบบ ในขณะที่แสดงโฟลว์กระบวนการทั่วไปสำหรับแอปพลิเคชันเซ็นเซอร์บลูทูธที่ใช้พลังงานต่ำ (แหล่งรูปภาพ: Silicon Labs)

เช่นเดียวกับแอปพลิเคชันอุณหภูมิที่กล่าวถึงข้างต้น แอปพลิเคชันนี้อาศัยชุดของรูทีนการเริ่มต้นเพื่อตั้งค่าระบบและบริการแอปพลิเคชัน ในกรณีที่รูทีน app_process_action ว่างเปล่าในแอปพลิเคชันอุณหภูมิ แอปพลิเคชันนี้จะเพิ่มการเรียกไปยังรูทีน hrm_loop ใน app_process_action ส่งผลให้มีการเรียก hrm_loop ในแต่ละรอบผ่านลูปไม่สิ้นสุดระดับบนสุดที่แสดงก่อนหน้านี้ในรายการ 1 นอกจากนี้ ซอฟต์แวร์จับเวลายังใช้เพื่ออัปเดตข้อมูล HR และ SpO2 เป็นระยะ

ในทางกลับกัน รูทีน hrm_loop จะเรียก maxm86161_hrm_process ซึ่งดึงตัวอย่างจากคิวที่ดูแลโดยฟังก์ชันตัวช่วย และส่งต่อไปยังรูทีนของกระบวนการตัวอย่าง ในทางกลับกัน เรียกคู่ของรูทีน maxm86161_hrm_frame_process และ maxm86161_hrm_spo2_frame_process ซึ่งรันอัลกอริทึมเพื่อตรวจสอบและสร้างผลลัพธ์ HR และ SpO2 ตามลำดับ นักพัฒนาสามารถดูผลลัพธ์พร้อมกับลักษณะการบริการอื่น ๆ โดยใช้แอพ EFR Connect ที่กล่าวถึงก่อนหน้านี้

แอปพลิเคชันซอฟต์แวร์ตัวอย่างอื่นแสดงให้เห็นว่านักพัฒนาสามารถสร้างแอปพลิเคชันที่ซับซ้อนได้อย่างไร เช่น แอปพลิเคชัน HR/SpO2 เมื่อขยายแพลตฟอร์มฮาร์ดแวร์ของตน การใช้บอร์ด BGM220-EK4314A Explorer Kit และระบบนิเวศซอฟต์แวร์ SiLabs การสร้างฮาร์ดแวร์และซอฟต์แวร์ที่มีอยู่นั้นค่อนข้างตรงไปตรงมา SiLabs สาธิตวิธีการนี้ด้วย aตัวอย่างการสมัคร ที่เพิ่มจอแสดงผล OLED ให้กับแพลตฟอร์มฮาร์ดแวร์/ซอฟต์แวร์ที่ใช้สำหรับแอปพลิเคชัน HR/SpO2 ด้านบน ในตัวอย่างนี้ SparkFun OLED แสดงผล Qwiic add-on board (LCD-14532 ) ติดอยู่กับคอนเน็กเตอร์ Qwiic ของบอร์ด ขณะที่บอร์ดเสริม MikroElektronika Heart Rate 2 Click ยังคงอยู่กับที่จากแอปพลิเคชันตัวอย่าง HR/SpO2 ก่อนหน้า (รูปที่ 6)

รูปภาพของบอร์ด Silicon Labs BGM220-EK4314A Explorer Kit พร้อมจอแสดงผล OLED รูปที่ 6: นักพัฒนาสามารถเพิ่มฟังก์ชันการทำงานให้กับการออกแบบที่มีอยู่ซึ่งสร้างขึ้นบนบอร์ด BGM220-EK4314A Explorer Kit ได้อย่างรวดเร็ว โดยเพิ่มจอแสดงผล OLED ให้กับต้นแบบ HR/SpO2 ที่มีอยู่ (แหล่งรูปภาพ: Silicon Labs)

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

สำเนา
    /* Software Timer event */
    case sl_bt_evt_system_soft_timer_id:
      /* Check which software timer handle is in question */
      if (evt->data.evt_system_soft_timer.handle == HEART_RATE_TIMER) {
        heart_rate_send_new_data(connection_handle);
        break;
      }
 
      if (evt->data.evt_system_soft_timer.handle == PULSE_OXIMETER_TIMER) {
        pulse_oximeter_send_new_data(connection_handle);
        break;
      }
 
      if (evt->data.evt_system_soft_timer.handle == DISPLAY_TIMER) {
        hrm_update_display();
        break;
      }
      break;
รายการ 2: การใช้ชุดเครื่องมือและระบบนิเวศซอฟต์แวร์ นักพัฒนาสามารถเพิ่มฟังก์ชันการแสดงผลให้กับแอปพลิเคชัน HR/SpO2 ที่มีอยู่ได้โดยการเชื่อมต่อบอร์ดแสดงผลและทำการเปลี่ยนแปลงซอฟต์แวร์เพียงเล็กน้อยนอกเหนือจากการเพิ่มการเรียกใช้ฟังก์ชัน hrm_update_display ลงในตัวจัดการตัวจับเวลาซอฟต์แวร์ของแอปพลิเคชันที่มีอยู่ (ที่มาของรหัส: Silicon Labs)

แนวทางฮาร์ดแวร์และซอฟต์แวร์ที่ขยายได้นี้ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชัน IoT ที่ใช้งานได้อย่างรวดเร็ว เนื่องจากทั้งฮาร์ดแวร์และซอฟต์แวร์สามารถเพิ่มหรือลบออกได้อย่างง่ายดาย นักพัฒนาจึงสามารถสำรวจโซลูชันการออกแบบใหม่และประเมินการกำหนดค่าทางเลือกได้ง่ายขึ้น

สรุป

อุปกรณ์ IoT ที่ใช้ Bluetooth แบบใช้แบตเตอรี่เป็นหัวใจสำคัญของแอปพลิเคชันยอดนิยมและเป็นตัวเปิดที่สำคัญเพื่อตอบสนองความต้องการที่ต่อเนื่องสำหรับฟังก์ชันการทำงานที่มากขึ้นและอายุการใช้งานที่ยาวนานขึ้น สำหรับนักพัฒนา การตอบสนองความต้องการที่ขัดแย้งกันเหล่านี้จำเป็นต้องมีความสามารถในการสำรวจการออกแบบใหม่และประเมินแนวคิดการออกแบบทางเลือกอย่างรวดเร็ว การใช้ชุดพัฒนาและซอฟต์แวร์ที่เกี่ยวข้องจาก Silicon Labs นักพัฒนาสามารถสร้างต้นแบบได้อย่างรวดเร็ว โดยเพิ่มและนำฮาร์ดแวร์ออกตามความจำเป็นเพื่อให้เป็นไปตามข้อกำหนดเฉพาะของแอปพลิเคชัน

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk มีประสบการณ์มากกว่า 20 ปีในการเขียนรวมทั้งประสบการณ์เกี่ยวกับอุตสาหกรรมอิเล็กทรอนิกส์ในด้านต่าง ๆ มากมายซึ่งรวมถึงฮาร์ดแวร์ซอฟต์แวร์ระบบและแอพพลิเคชั่นรวมถึง IoT เขาสำเร็จการศึกษาระดับปริญญาเอกทางด้านระบบประสาทเกี่ยวกับเครือข่ายเซลล์ประสาทและทำงานในอุตสาหกรรมการบินและอวกาศเกี่ยวกับระบบความปลอดภัยแบบกระจายจำนวนมากและวิธีการเร่งอัลกอริทึม ปัจจุบัน หากว่าเขาไม่ยุ่งกับการเขียนบทความเกี่ยวกับเทคโนโลยีและวิศวกรรม ก็จะทำงานเกี่ยวกับการประยุกต์ใช้การเรียนรู้เชิงลึกกับระบบการจดจำและการแนะนำ

About this publisher

DigiKey's North American Editors