คลังข้อมูลรูปแบบการกระเด้งของสวิตช์ได้จุดประกายการถกเถียงอย่างคึกคักในหมู่วิศวกรเกี่ยวกับวิธีการที่มีประสิทธิภาพมากที่สุดในการแก้ปัญหาการกระเด้งของสวิตช์เชิงกลในวงจรอิเล็กทรอนิกส์ ในขณะที่คอลเลกชันดั้งเดิมให้ข้อมูลอ้างอิงที่มีคุณค่าแสดงพฤติกรรมที่ไม่เป็นระเบียบของสวิตช์ต่างๆ ในระหว่างการเปลี่ยนสถานะ ความสนใจของชุมชนได้เปลี่ยนไปสู่การถกเถียงเกี่ยวกับกลยุทธ์การแก้ปัญหาการกระเด้งที่เหมาะสมที่สุดสำหรับการใช้งานในโลกแห่งความเป็นจริง
วิธีการแก้ปัญหาการกระเด้งแบบฮาร์ดแวร์เทียบกับซอฟต์แวร์
วิศวกรในการสนทนาได้เน้นย้ำถึงแนวคิดหลักสองประการสำหรับการจัดการกับการกระเด้งของสวิตช์: วิธีแก้ปัญหาที่ใช้ฮาร์ดแวร์โดยใช้ส่วนประกอบแบบพาสซีฟ และอัลกอริทึมที่ใช้ซอฟต์แวร์ ผู้ปฏิบัติงานบางคนสนับสนุนวิธีแก้ปัญหาฮาร์ดแวร์อย่างง่าย โดยวิศวกรคนหนึ่งได้อธิบายวิธีการของเขาว่า: สำหรับโปรเจกต์งานอดิเรกของผม ผมใช้ฮาร์ดแวร์แก้ปัญหาการกระเด้งด้วยตัวเก็บประจุขนาดเล็กเพียงตัวเดียว MCU มีอินพุตแบบ schmitt trigger อยู่แล้ว (จัดการกับฮิสเทอรีซิส) และยังมีตัวต้านทานพูลอัพค่าสูงด้วย ตัวเก็บประจุขนาดเล็กจากอินพุตไปยังกราวด์จะทำหน้าที่เป็นวงจรกรองความถี่ต่ำ วิธีนี้ใช้ประโยชน์จากคุณสมบัติของไมโครคอนโทรลเลอร์ที่มีอยู่แล้วเพื่อสร้างการเปลี่ยนแปลงที่สะอาดโดยไม่ต้องใช้โค้ดเพิ่มเติม อย่างไรก็ตาม คนอื่นๆ ชี้ให้เห็นว่าวิธีแก้ปัญหาด้วยฮาร์ดแวร์ล้วนๆ อาจทำให้เกิดความล่าช้าที่ไม่พึงประสงค์ในส่วนติดต่อผู้ใช้
วิธีการแก้ไขการกระเด้งของสวิตช์ที่พบบ่อย
- วิธีการทางฮาร์ดแวร์:
- ตัวเก็บประจุ + ตัวต้านทานแบบพูลอัพ + อินพุตแบบ Schmitt trigger
- การกรองความถี่ต่ำแบบอนาล็อกด้วยฮิสเตอรีซิสทางไฟฟ้า
- วิธีการทางซอฟต์แวร์:
- แนวทางค่าคงที่เวลาสองค่า (การสุ่มตัวอย่างสำหรับการเปลี่ยนสถานะ + ช่วงเวลาที่ไม่สนใจ)
- สเตทแมชชีนกับตัวแปรเสริม
- อัลกอริทึมการแก้ไขการกระเด้งของ Jack Ganssle (อ้างอิงโดยผู้แสดงความคิดเห็นหลายคน)
ข้อพิจารณาสำคัญสำหรับการแก้ไขการกระเด้ง
- การแลกเปลี่ยนระหว่างความล่าช้าในการตอบสนองกับความน่าเชื่อถือ
- ความสามารถในการป้องกันคลื่นแม่เหล็กไฟฟ้ารบกวน
- ปัจจัยด้านสภาพแวดล้อมนอกเหนือจากการกระเด้งทางกล
- ผลกระทบของความจุไฟฟ้าอินพุตต่อพฤติกรรมของสัญญาณ
การสร้างสมดุลระหว่างความล่าช้าและความน่าเชื่อถือ
ประเด็นสำคัญที่เกิดขึ้นจากการสนทนาคือการแลกเปลี่ยนระหว่างเวลาตอบสนองและความน่าเชื่อถือ วิศวกรหลายคนได้อธิบายถึงวิธีการทางซอฟต์แวร์ที่ซับซ้อนซึ่งรักษาทั้งความล่าช้าต่ำและความน่าเชื่อถือสูง วิธีการที่น่าสนใจเป็นพิเศษวิธีหนึ่งใช้ค่าคงที่เวลาสองค่า - ค่าหนึ่งเพื่อกำหนดว่าต้องใช้ตัวอย่างที่ต่อเนื่องกันกี่ครั้งเพื่อเปลี่ยนสถานะ และอีกค่าหนึ่งเพื่อละเว้นอินพุตถัดไปชั่วคราวหลังจากการเปลี่ยนสถานะ วิธีการนี้ช่วยให้ระบบสามารถลงทะเบียนการกดปุ่มได้อย่างรวดเร็วในขณะที่ยังคงกรองการกระเด้งออก สร้างอินเตอร์เฟซที่ตอบสนองได้ดีและมีเสถียรภาพ
ผมทำอะไรคล้ายๆ กัน แต่ใช้ค่าคงที่เวลาสองค่า ค่าหนึ่งเพื่อกำหนดว่าต้องใช้ตัวอย่างที่ต่อเนื่องกันกี่ครั้งเพื่อเปลี่ยนจากสถานะที่กำหนดไว้ และค่าที่สอง ตามที่แนะนำไว้ที่นี่ เพื่อละเว้นอินพุตถัดไปเป็นเวลาสักครู่หลังจากการเปลี่ยนสถานะที่ลงทะเบียนแล้ว เพื่อรองรับการกระเด้งก่อนที่จะกลับไปสู่สถานะที่พร้อมรับข้อมูล ด้วยค่าคงที่ที่เลือกมาอย่างดี ผมพบว่ามีพฤติกรรมคล้ายกับที่กล่าวมาข้างต้น; ความล่าช้าต่ำและประสิทธิภาพสูงในเวลาเดียวกัน
ข้อพิจารณาด้านสภาพแวดล้อมนอกเหนือจากการกระเด้งเชิงกล
ในขณะที่คลังข้อมูลมุ่งเน้นไปที่รูปแบบการกระเด้งเชิงกล วิศวกรได้เน้นย้ำว่าการใช้งานในโลกแห่งความเป็นจริงต้องพิจารณาปัจจัยด้านสภาพแวดล้อมเพิ่มเติม ผู้แสดงความคิดเห็นหลายคนสังเกตว่าการรบกวนทางแม่เหล็กไฟฟ้า (EMI) ก่อให้เกิดความท้าทายนอกเหนือจากการกระเด้งเชิงกล โดยเฉพาะอย่างยิ่งในระบบที่สวิตช์เชื่อมต่อกับสายไฟยาวที่ทำหน้าที่เป็นเสาอากาศ สิ่งนี้เน้นย้ำถึงความสำคัญของวิธีการที่ครอบคลุมซึ่งจัดการทั้งการกระเด้งเชิงกลและสัญญาณรบกวนทางไฟฟ้า วิศวกรคนหนึ่งได้แบ่งปันเรื่องเล่าเกี่ยวกับเพื่อนร่วมงานที่สร้างระบบที่รวมหลอดไฟอาร์คไฟฟ้าหลายกิโลวัตต์และอาร์เรย์ CCD กับอิเล็กทรอนิกส์ที่มีความไวสูงได้สำเร็จ ซึ่งแสดงให้เห็นว่าแม้แต่ความท้าทายด้าน EMI ที่รุนแรงก็สามารถแก้ไขได้ด้วยเทคนิคที่เหมาะสม
ความซับซ้อนของปัญหาที่ดูเหมือนง่าย
แม้ว่าวิศวกรบางคนจะอธิบายว่าการแก้ปัญหาการกระเด้งเป็นเรื่องง่าย แต่การสนทนาเผยให้เห็นว่ามันยังคงเป็นแหล่งที่มาทั่วไปของข้อบกพร่องในระบบฝังตัว ตามที่ผู้แสดงความคิดเห็นคนหนึ่งสังเกตว่า การแก้ปัญหาการกระเด้งที่ไม่ถูกต้องเป็นข้อบกพร่องที่พบบ่อยที่สุด (และมักจะเห็นได้ชัดเจนอย่างยิ่ง) ในระบบฝังตัว รูปแบบโดยละเอียดของคลังข้อมูลแสดงให้เห็นว่าเพราะเหตุใด - พฤติกรรมเปิด/ปิดที่ดูเหมือนจะง่ายของสวิตช์จริงๆ แล้วเกี่ยวข้องกับการเปลี่ยนผ่านที่ซับซ้อนและไม่เป็นระเบียบซึ่งแตกต่างกันอย่างมากระหว่างประเภทของสวิตช์และแม้แต่ระหว่างการกระตุ้นแต่ละครั้งของสวิตช์เดียวกัน ความซับซ้อนนี้เพิ่มขึ้นจากการสังเกตว่าอุปกรณ์วัดเอง (ด้วยความจุอินพุต 50-60 pF) อาจทำให้การเปลี่ยนผ่านบางส่วนราบรื่นขึ้น ซึ่งหมายความว่าอินพุตไมโครคอนโทรลเลอร์จริงอาจเห็นพฤติกรรมที่ไม่เป็นระเบียบมากขึ้น
การอภิปรายเกี่ยวกับคลังข้อมูลการกระเด้งของสวิตช์นี้แสดงให้เห็นว่าแม้แต่ส่วนประกอบอิเล็กทรอนิกส์พื้นฐานก็ต้องใช้วิธีการทางวิศวกรรมที่รอบคอบ ไม่ว่าจะเป็นการใช้ตัวกรองฮาร์ดแวร์ อัลกอริทึมซอฟต์แวร์ หรือการผสมผสานทั้งสองอย่าง การทำความเข้าใจพฤติกรรมทางกายภาพของสวิตช์ยังคงเป็นพื้นฐานในการสร้างอินเตอร์เฟซอิเล็กทรอนิกส์ที่เชื่อถือได้
อ้างอิง: Switch bouncing traces