แอปพลิเคชัน Bluetooth IoT ที่เป็นต้นแบบอย่างรวดเร็วด้วยชุดพัฒนาและบอร์ดเสริมแบบออฟไลน์
Contributed By DigiKey's North American Editors
2021-07-14
ความต้องการผลิตภัณฑ์ที่เชื่อมต่ออย่างชาญฉลาดเปิดโอกาสให้นักพัฒนาที่สามารถเปลี่ยนแนวคิดให้เป็นแอปพลิเคชัน 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)
รูปที่ 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)
รูปที่ 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).
รูปที่ 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)
|
ตารางที่ 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)
รูปที่ 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)
รูปที่ 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)
รูปที่ 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 นักพัฒนาสามารถสร้างต้นแบบได้อย่างรวดเร็ว โดยเพิ่มและนำฮาร์ดแวร์ออกตามความจำเป็นเพื่อให้เป็นไปตามข้อกำหนดเฉพาะของแอปพลิเคชัน

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.