ตัวเข้ารหัสแบบเพิ่มทีละขั้น

ตัวเข้ารหัสแบบเพิ่มค่า (Incremental Encoder)เป็นอุปกรณ์อิเล็กโทรเมคานิกส์เชิงเส้นหรือแบบหมุนที่มีสัญญาณ เอาต์พุตสองสัญญาณ คือAและBซึ่งจะส่งพัลส์เมื่ออุปกรณ์เคลื่อนที่[ 1 ] สัญญาณ AและBร่วมกันบ่งชี้ทั้งการเกิดขึ้นและทิศทางการเคลื่อนที่ ตัวเข้ารหัสแบบเพิ่มค่าจำนวนมากมีสัญญาณเอาต์พุตเพิ่มเติม ซึ่งโดยทั่วไปเรียกว่าดัชนี[ 2 ]หรือZ [ 3 ]ซึ่งบ่งชี้ว่าตัวเข้ารหัสอยู่ที่ตำแหน่งอ้างอิงเฉพาะ นอกจากนี้ ตัวเข้ารหัสบางตัวยังให้เอาต์พุตสถานะ (โดยทั่วไปเรียกว่าสัญญาณเตือน ) [ 4 ]ซึ่งบ่งชี้สภาวะความผิดพลาดภายใน เช่น ความล้มเหลว ของแบริ่งหรือการทำงานผิดปกติของเซ็นเซอร์
ต่างจากตัวเข้ารหัสแบบสัมบูรณ์ตัวเข้ารหัสแบบเพิ่มค่าไม่ได้ระบุตำแหน่งสัมบูรณ์[หมายเหตุ 1 ]มันรายงานเฉพาะการเปลี่ยนแปลงตำแหน่งและทิศทางการเคลื่อนที่ที่สอดคล้องกันสำหรับการเปลี่ยนแปลงแต่ละครั้งเท่านั้น ดังนั้น เพื่อกำหนดตำแหน่งสัมบูรณ์ ณ ช่วงเวลาใดเวลาหนึ่ง จำเป็นต้องส่งสัญญาณตัวเข้ารหัสไปยังอินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าซึ่งจะ "ติดตาม" และรายงานตำแหน่งสัมบูรณ์ของตัวเข้ารหัส
ตัวเข้ารหัสแบบเพิ่มค่า (Incremental encoders) รายงานค่าตำแหน่งที่เพิ่มขึ้นเกือบจะในทันที ซึ่งช่วยให้สามารถตรวจสอบการเคลื่อนไหวของกลไกความเร็วสูงได้ในเวลาเกือบเรียลไทม์ ด้วยเหตุนี้ ตัวเข้ารหัสแบบเพิ่มค่าจึงนิยมใช้ในแอปพลิเค ชันที่ต้องการการวัดและการควบคุมตำแหน่งและความเร็ว ที่แม่นยำ
เอาต์พุตควอดราเจอร์

ตัวเข้ารหัสแบบเพิ่มค่าจะสร้าง สัญญาณเอาต์พุต AและBโดยใช้เทคนิคการเข้ารหัสแบบควอดราเจอร์ เมื่อตัวเข้ารหัสเคลื่อนที่ด้วยความเร็วคงที่สัญญาณAและB จะเป็น คลื่นสี่เหลี่ยม ที่ มีเฟสต่าง กัน 90° ทำให้สามารถตรวจจับทั้งการเคลื่อนที่และทิศทางได้[ 2 ]
ในแต่ละช่วงเวลา ความแตกต่างของเฟสระหว่าง สัญญาณ AและBจะเป็นค่าบวกหรือลบ ขึ้นอยู่กับทิศทางการเคลื่อนที่ของตัวเข้ารหัส ในกรณีของตัวเข้ารหัสแบบหมุน ความแตกต่างของเฟสจะเป็น +90° สำหรับการหมุนตามเข็มนาฬิกา และ −90° สำหรับการหมุนทวนเข็มนาฬิกา หรือในทางกลับกัน ขึ้นอยู่กับการออกแบบของอุปกรณ์

ความถี่ของพัลส์บน เอาต์พุต AหรือBเป็นสัดส่วนโดยตรงกับความเร็วของตัวเข้ารหัส (อัตราการเปลี่ยนแปลงตำแหน่ง) ความถี่สูงบ่งชี้ถึงการเคลื่อนที่อย่างรวดเร็ว ในขณะที่ความถี่ต่ำบ่งชี้ถึงความเร็วที่ช้าลง[ 1 ]สัญญาณคงที่ที่ไม่เปลี่ยนแปลงจะถูกส่งออกทางAและBเมื่อตัวเข้ารหัสหยุดนิ่ง ในกรณีของตัวเข้ารหัสแบบหมุนความถี่จะบ่งชี้ถึงความเร็วในการหมุนของเพลาตัวเข้ารหัส และในตัวเข้ารหัสเชิงเส้น ความถี่จะบ่งชี้ถึงความเร็วในการเคลื่อนที่เชิงเส้น
- ภาพร่างเชิงแนวคิดของกลไกการตรวจจับของตัวเข้ารหัสแบบควอดราเจอร์
สัญญาณเอาต์พุตของตัวเข้ารหัสแบบควอดราเจอร์สามารถสร้างขึ้นได้จากรูปแบบควอดราเจอร์ออฟเซ็ตที่อ่านโดยเซ็นเซอร์ที่จัดเรียง (แผนภาพด้านซ้าย) หรือจากรูปแบบง่ายๆ ที่อ่านโดยเซ็นเซอร์ออฟเซ็ต (แผนภาพด้านขวา)
- ตัวเข้ารหัสแบบหมุน (Rotary encoder) พร้อม สถานะสัญญาณ A / B ที่สอดคล้องกัน แสดงอยู่ทางด้านขวาเมื่อเพลาหมุนกลับทิศทาง
- ตัวเข้ารหัสเชิงเส้น: เซ็นเซอร์ AและBมีการชดเชยเฟส 90° จากรูปแบบอย่างง่าย สัญญาณดัชนี Rบ่งชี้ว่าตัวเข้ารหัสอยู่ที่ตำแหน่งอ้างอิง
ปณิธาน
ความละเอียดของตัวเข้ารหัสแบบเพิ่มค่าคือการวัดความแม่นยำของข้อมูลตำแหน่งที่สร้างขึ้น โดยทั่วไปความละเอียดของตัวเข้ารหัสจะระบุเป็นจำนวน พัลส์ A (หรือB ) ต่อหน่วยการเคลื่อนที่ หรือเทียบเท่ากับจำนวนรอบ คลื่นสี่เหลี่ยม A (หรือB ) ต่อหน่วยการเคลื่อนที่ ในกรณีของตัวเข้ารหัสแบบหมุน ความละเอียดจะระบุเป็นจำนวนพัลส์ต่อรอบ (PPR) หรือรอบต่อรอบ (CPR) [ 3 ]ในขณะที่ความละเอียดของตัวเข้ารหัสเชิงเส้นโดยทั่วไปจะระบุเป็นจำนวนพัลส์ที่ส่งออกสำหรับระยะการเคลื่อนที่เชิงเส้นที่กำหนด (เช่น 1000 พัลส์ต่อมิลลิเมตร )
สิ่งนี้แตกต่างจากความละเอียดในการวัด ซึ่งหมายถึงการเปลี่ยนแปลงตำแหน่งที่เล็กที่สุดที่ตัวเข้ารหัสสามารถตรวจจับได้ขอบสัญญาณแต่ละขอบบนเอาต์พุตAหรือBสอดคล้องกับการเปลี่ยนแปลงตำแหน่งแบบไม่ต่อเนื่อง เนื่องจากหนึ่งรอบคลื่นสี่เหลี่ยมเต็มรอบบนA (หรือB ) ประกอบด้วยขอบสี่ขอบ ได้แก่A ขึ้น , B ขึ้น , A ลง และB ลง ดังนั้นความละเอียดในการวัดจึงเป็นหนึ่งในสี่ของระยะทางที่แสดงโดยรอบเต็มรอบ ตัวอย่างเช่น ตัวเข้ารหัสเชิงเส้นที่มีความละเอียด 1000 พัลส์ต่อมิลลิเมตร มีความละเอียดต่อรอบ 1 μm (1 มม. / 1000 รอบ) ทำให้ได้ความละเอียดในการวัด 250 นาโนเมตร (1 μm / 4)
สมมาตรและเฟส

เมื่อเคลื่อนที่ด้วยความเร็วคงที่ ตัวเข้ารหัสแบบเพิ่มค่าในอุดมคติจะส่งสัญญาณคลื่นสี่เหลี่ยมที่สมบูรณ์แบบบนAและB (กล่าวคือ พัลส์จะมีขนาดความกว้าง 180° พอดี และรอบการทำงานจะเท่ากับ 50%) โดยมีเฟสต่างกัน 90° ระหว่าง สัญญาณ AและBอย่างไรก็ตาม ในตัวเข้ารหัสที่ใช้งานจริง เนื่องจากความไม่สมบูรณ์ของเซ็นเซอร์และความแปรผันของความเร็ว ความกว้างของพัลส์จึงไม่เท่ากับ 180° พอดี และเฟสต่างกันก็ไม่เท่ากับ 90° พอดี ยิ่งไปกว่านั้น ความกว้างของพัลส์ AและBจะแตกต่างกันไปในแต่ละรอบ (และแตกต่างกันเอง) และเฟสต่างกันจะแตกต่างกันไปในแต่ละ ขอบของสัญญาณ AและBดังนั้น ทั้งความกว้างของพัลส์และเฟสต่างกันจึงจะแปรผันไปในช่วงค่าต่างๆ
สำหรับตัวเข้ารหัสแต่ละตัว ช่วงความกว้างของพัลส์และความแตกต่างของเฟสจะถูกกำหนดโดยข้อกำหนด "สมมาตร" และ "เฟส" (หรือ "การจัดเฟส") ตามลำดับ ตัวอย่างเช่น ในกรณีของตัวเข้ารหัสที่มีการระบุสมมาตรไว้ที่ 180° ±25° ความกว้างของพัลส์เอาต์พุตแต่ละพัลส์จะรับประกันได้ว่าอย่างน้อย 155° และไม่เกิน 205° ในทำนองเดียวกัน หากระบุเฟสไว้ที่ 90° ±20° ความแตกต่างของเฟสที่ ขอบ AหรือB แต่ละ ขอบจะมีอย่างน้อย 70° และไม่เกิน 110°
ประเภทสัญญาณ
ตัวเข้ารหัสแบบเพิ่มค่า (Incremental encoder) ใช้วงจรไฟฟ้าหลายประเภทในการขับเคลื่อน (ส่ง) สัญญาณเอาต์พุต และผู้ผลิตมักสามารถสร้างตัวเข้ารหัสรุ่นใดรุ่นหนึ่งโดยใช้ตัวขับหลายประเภทได้ ประเภทตัวขับที่พบได้ทั่วไป ได้แก่ แบบ open collector, แบบกลไก, แบบ push-pull และแบบ differential RS-422
ตัวเก็บประจุแบบเปิด

วงจรขับ แบบ Open Collector (โดยใช้ทรานซิสเตอร์ NPNหรือวงจรขับแบบ Open Drain โดยใช้MOSFET ชนิด n ) ช่วยให้สามารถทำงานได้ในช่วงแรงดันสัญญาณที่กว้าง และมักจะสามารถรับกระแสเอาต์พุตได้มาก ทำให้มีประโยชน์สำหรับการขับ วงจรกระแสโดยตรงอุปกรณ์แยกสัญญาณด้วยแสงและตัวส่งสัญญาณใยแก้วนำแสง
เนื่องจากไม่สามารถจ่ายกระแสไฟฟ้าได้ เอาต์พุตของวงจรขับแบบโอเพ่นคอลเลคเตอร์จึงต้องเชื่อมต่อกับแรงดันไฟฟ้ากระแสตรงบวกผ่านตัวต้านทานแบบดึงขึ้น (pull-up resistor ) ตัวเข้ารหัสบางตัวมีตัวต้านทานภายในสำหรับจุดประสงค์นี้ ในขณะที่บางตัวไม่มี จึงต้องใช้ตัวต้านทานแบบดึงขึ้นภายนอก ในกรณีหลัง ตัวต้านทานมักจะอยู่ใกล้กับส่วนต่อประสานของตัวเข้ารหัสเพื่อเพิ่มความต้านทานต่อสัญญาณรบกวน
แรงดันสัญญาณลอจิกระดับสูงของตัวเข้ารหัสถูกกำหนดโดยแรงดันที่จ่ายให้กับตัวต้านทานดึงขึ้น ( V ในแผนผังวงจร) ในขณะที่กระแสเอาต์พุตระดับต่ำถูกกำหนดโดยทั้งแรงดันสัญญาณและความต้านทานโหลด (รวมถึงตัวต้านทานดึงขึ้น) เมื่อตัวขับเปลี่ยนจากระดับลอจิก ต่ำไปเป็นระดับสูง ความต้านทานโหลดและความจุของวงจรจะทำงานร่วมกันเพื่อสร้างตัวกรองความถี่ต่ำ ซึ่งจะยืด (เพิ่ม) เวลาเพิ่มขึ้นของสัญญาณและจำกัดความถี่การสลับสูงสุด
เครื่องกล
ตัวเข้ารหัสแบบเพิ่มค่า เชิงกล (หรือแบบสัมผัส ) [ 5 ]ใช้หน้าสัมผัสไฟฟ้า แบบเลื่อน เพื่อสร้างสัญญาณเอาต์พุตAและB โดยตรง [ 2 ] โดยทั่วไป หน้าสัมผัสจะเชื่อมต่อทางไฟฟ้ากับกราวด์สัญญาณเมื่อปิด เพื่อให้เอาต์พุต "ถูกขับ" ให้ต่ำ ซึ่งทำให้ตัวเข้ารหัสเหล่านี้เทียบเท่ากับตัวขับแบบ open collector เชิงกล และอยู่ภายใต้ข้อกำหนด การปรับสภาพสัญญาณเดียวกัน(เช่น ตัวต้านทาน pull-up ภายนอก)
ความถี่เอาต์พุตสูงสุดถูกจำกัดด้วยปัจจัยเดียวกันกับที่ส่งผลต่อเอาต์พุตแบบ open-collector และยังถูกจำกัดเพิ่มเติมด้วยการกระเด้งของหน้าสัมผัส (ซึ่งต้องกรองออก) และความเร็วในการทำงานของหน้าสัมผัสเชิงกล ทำให้ตัวเข้ารหัสเชิงกลไม่เหมาะสมสำหรับการใช้งานที่ความถี่สูง นอกจากนี้ หน้าสัมผัสยังสึกหรอทางกลภายใต้การทำงานปกติ ซึ่งจำกัดอายุการใช้งานของอุปกรณ์เหล่านี้ ในทางกลับกัน ตัวเข้ารหัสเชิงกลอาจมีราคาค่อนข้างถูกและไม่มีอุปกรณ์อิเล็กทรอนิกส์ภายใน คุณสมบัติเหล่านี้ทำให้ตัวเข้ารหัสเชิงกลเหมาะสำหรับการควบคุมด้วยมือ (เช่น การควบคุมระดับเสียงในอุปกรณ์เสียงและการควบคุมแรงดันไฟฟ้าในแหล่งจ่ายไฟ แบบตั้งโต๊ะ ) และการใช้งานอื่นๆ ที่มีภาระงานต่ำและความถี่ต่ำหลากหลายประเภท
ผลัก-ดึง
เอาต์พุตแบบพุชพูล (เช่นTTL ) โดยทั่วไปใช้สำหรับการเชื่อมต่อโดยตรงกับวงจรลอจิก เหมาะอย่างยิ่งสำหรับแอปพลิเคชันที่ตัวเข้ารหัสและอินเทอร์เฟซอยู่ใกล้กัน (เช่น เชื่อมต่อกันผ่านตัวนำวงจรพิมพ์หรือสายเคเบิลหุ้มฉนวนสั้นๆ) และใช้แหล่งจ่ายไฟร่วมกัน ซึ่งจะช่วยหลีกเลี่ยงการสัมผัสกับสนามไฟฟ้า วงจรลูปกราวด์ และผลกระทบจากสายส่งที่อาจทำให้สัญญาณผิดเพี้ยนและทำให้การติดตามตำแหน่งหยุดชะงัก หรือแย่กว่านั้นคือทำให้อินเทอร์เฟซของตัวเข้ารหัสเสียหาย
คู่ดิฟเฟอเรนเชียล

โดยทั่วไปแล้ว การส่งสัญญาณ RS-422แบบดิฟเฟอเรนเชียลเป็นที่นิยมเมื่อตัวเข้ารหัสจะส่งสัญญาณความถี่สูงหรืออยู่ห่างจากอินเทอร์เฟซของตัวเข้ารหัส[ 5 ] [ 6 ]หรือเมื่อสัญญาณของตัวเข้ารหัสอาจได้รับผลกระทบจากสนามไฟฟ้าหรือแรงดันโหมดร่วม[ 5 ]หรือเมื่ออินเทอร์เฟซต้องสามารถตรวจจับปัญหาการเชื่อมต่อระหว่างตัวเข้ารหัสและอินเทอร์เฟซได้ ตัวอย่างเช่นเครื่องจักรCMMและCNC หุ่นยนต์อุตสาหกรรมระบบอัตโนมัติในโรงงาน และแพลตฟอร์มการเคลื่อนที่ที่ใช้ในเครื่องจำลองเครื่องบินและยานอวกาศ
เมื่อใช้เอาต์พุต RS-422 ตัวเข้ารหัสจะให้คู่ตัวนำแบบดิฟเฟอเรนเชียลสำหรับเอาต์พุตลอจิกทุกตัว ตัวอย่างเช่น "A" และ "/A" มักใช้เป็นสัญลักษณ์แทนคู่ดิฟเฟอเรนเชียลแบบแอคทีฟสูงและแอคทีฟต่ำที่ประกอบเป็น เอาต์พุตลอจิก A ของตัวเข้ารหัส ดังนั้น อินเทอร์เฟซของตัวเข้ารหัสจะต้องมีตัวรับสัญญาณสาย RS-422 เพื่อแปลงคู่ RS-422 ที่เข้ามาเป็นลอจิกแบบซิงเกิลเอนด์[ 5 ]
การสมัครหลัก
การติดตามตำแหน่ง
ตัวเข้ารหัสแบบเพิ่มค่า (Incremental encoder) นิยมใช้ในการตรวจสอบตำแหน่งทางกายภาพของอุปกรณ์เชิงกล ตัวเข้ารหัสแบบเพิ่มค่าจะถูกติดตั้งเข้ากับอุปกรณ์ที่ต้องการตรวจสอบทางกลไก เพื่อให้สัญญาณเอาต์พุตเปลี่ยนแปลงไปตามการเคลื่อนที่ของอุปกรณ์ ตัวอย่างของอุปกรณ์ ได้แก่ ลูกบอลในเมาส์คอมพิวเตอร์แบบกลไกและแทร็กบอล ปุ่มควบคุมในอุปกรณ์อิเล็กทรอนิกส์ และเพลาหมุนในเสาอากาศเรดาร์
- แทร็กบอลและเมาส์คอมพิวเตอร์แบบอิเล็กโทรแมคคานิกส์ใช้ตัวเข้ารหัสแบบหมุนเพิ่มค่าสองตัวเพื่อช่วยในการติดตามตำแหน่งบนสองแกน
- การควบคุมอุปกรณ์อิเล็กทรอนิกส์มักใช้ปุ่มหมุนที่เชื่อมต่อกับตัวเข้ารหัสเชิงกล (แสดงในภาพโดยแยกปุ่มหมุนออก)
- ใน เสา อากาศเรดาร์ทางทะเลเชิง พาณิชย์ โดยทั่วไปจะมีการติดตั้งตัวเข้ารหัสแบบหมุนเพิ่มค่า (rotary incremental encoder) ไว้กับแกนหมุนของเสาอากาศเพื่อตรวจสอบมุมของเสาอากาศ
- โดยทั่วไป ตำแหน่งของ รถแทรกเตอร์ ตรวจสอบท่อด้วยวิดีโอจะถูกตรวจสอบโดยตัวเข้ารหัสแบบหมุนเพิ่มค่า (rotary incremental encoder) ที่ติดตั้งอยู่กับม้วนสายเคเบิลของรถแทรกเตอร์
ตัวเข้ารหัสแบบเพิ่มค่าจะไม่ติดตามหรือระบุตำแหน่งปัจจุบันของตัวเข้ารหัส แต่จะรายงานเฉพาะการเปลี่ยนแปลงตำแหน่งที่เพิ่มขึ้นเท่านั้น[ 3 ]ดังนั้น เพื่อกำหนดตำแหน่งของตัวเข้ารหัสในแต่ละช่วงเวลา จำเป็นต้องมีอุปกรณ์อิเล็กทรอนิกส์ภายนอกที่จะ "ติดตาม" ตำแหน่ง วงจรภายนอกนี้ ซึ่งเรียกว่าอินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่า จะติดตามตำแหน่งโดยการนับการเปลี่ยนแปลงตำแหน่งที่เพิ่มขึ้น
เมื่อได้รับรายงานการเปลี่ยนแปลงตำแหน่งทีละน้อย (ซึ่งแสดงโดยการเปลี่ยน สัญญาณ AหรือB ) อินเทอร์เฟซของตัวเข้ารหัสจะพิจารณาความสัมพันธ์ของเฟสระหว่างAและBและขึ้นอยู่กับเครื่องหมายของความแตกต่างของเฟส จะนับขึ้นหรือลง ค่า "การนับ" สะสมจะแสดงระยะทางที่เดินทางตั้งแต่เริ่มการติดตาม กลไกนี้ช่วยให้มั่นใจได้ถึงการติดตามตำแหน่งที่แม่นยำในแอปพลิเคชันแบบสองทิศทาง และในแอปพลิเคชันแบบทิศทางเดียว จะป้องกันการนับผิดพลาดที่อาจเกิดขึ้นจากการสั่นสะเทือนหรือการสั่นไหวทางกลไกใกล้กับการเปลี่ยนรหัส AB
หน่วยการแทนที่
โดยทั่วไป ค่าที่วัดได้จากตัวเข้ารหัสจะต้องแสดงในหน่วย เช่น เมตร ไมล์ หรือรอบ ในกรณีเช่นนี้ ค่าที่วัดได้จะถูกแปลงเป็นหน่วยที่ต้องการโดยการคูณด้วยอัตราส่วนของการเคลื่อนที่ของตัวเข้ารหัสต่อจำนวน:
- .
โดยทั่วไป การคำนวณนี้จะดำเนินการโดยคอมพิวเตอร์ซึ่งอ่านค่าการนับจากอินเทอร์เฟซของตัวเข้ารหัสแบบเพิ่มค่า ตัวอย่างเช่น ในกรณีของตัวเข้ารหัสแบบเพิ่มค่าเชิงเส้นที่สร้างค่าการนับ 8000 ค่าต่อมิลลิเมตรของการเคลื่อนที่ ตำแหน่งในหน่วยมิลลิเมตรจะคำนวณได้ดังนี้:
- .
กลับบ้าน
เพื่อให้ส่วนต่อประสานตัวเข้ารหัสแบบเพิ่มค่าสามารถติดตามและรายงานตำแหน่งสัมบูรณ์ได้ ค่าที่นับได้จากตัวเข้ารหัสจะต้องมีความสัมพันธ์กับตำแหน่งอ้างอิงในระบบกลไกที่ตัวเข้ารหัสติดอยู่ โดยทั่วไปแล้วจะทำได้โดยการปรับตำแหน่งระบบให้กลับสู่ตำแหน่งเดิม ซึ่งประกอบด้วยการเคลื่อนย้ายระบบกลไก (และตัวเข้ารหัส) จนกระทั่งตรงกับตำแหน่งอ้างอิง จากนั้นจึงป้อนค่าที่นับได้จากตำแหน่งสัมบูรณ์ที่เกี่ยวข้องเข้าไปในตัวนับของส่วนต่อประสานตัวเข้ารหัส[หมายเหตุ 2 ]
เซ็นเซอร์ตรวจจับระยะใกล้ถูกติดตั้งอยู่ในระบบกลไกบางระบบเพื่อช่วยในการกำหนดตำแหน่งเริ่มต้น โดยจะส่งสัญญาณเมื่อระบบกลไกอยู่ในตำแหน่ง "เริ่มต้น" (ตำแหน่งอ้างอิง) ในกรณีเช่นนี้ ระบบกลไกจะถูกกำหนดตำแหน่งเริ่มต้นโดยการเคลื่อนที่จนกระทั่งอินเทอร์เฟซของตัวเข้ารหัสได้รับสัญญาณจากเซ็นเซอร์ จากนั้นค่าตำแหน่งที่สอดคล้องกันจะถูกบันทึกไว้ในตัวนับตำแหน่ง
ในระบบกลไกแบบหมุนบางระบบ (เช่น เสาอากาศเรดาร์แบบหมุน) "ตำแหน่ง" ที่น่าสนใจคือมุมการหมุนเทียบกับทิศทางอ้างอิง โดยทั่วไปแล้ว ระบบเหล่านี้จะใช้ตัวเข้ารหัสแบบเพิ่มค่าหมุน (rotary incremental encoder) ที่มีสัญญาณเอาต์พุตเป็นดัชนี (หรือZ ) สัญญาณ ดัชนีจะถูกส่งเมื่อเพลาอยู่ในตำแหน่งอ้างอิง ซึ่งจะทำให้ส่วนต่อประสานของตัวเข้ารหัสล็อกมุมอ้างอิงเข้ากับตัวนับตำแหน่ง
แอปพลิเคชันตัวเข้ารหัสแบบเพิ่มค่าบางประเภทขาดตัวตรวจจับตำแหน่งอ้างอิง ดังนั้นจึงต้องใช้การกำหนดตำแหน่งเริ่มต้นโดยวิธีอื่น ตัวอย่างเช่น คอมพิวเตอร์ เมื่อใช้เมาส์หรือแทร็กบอลเป็นอุปกรณ์ชี้ตำแหน่ง โดยทั่วไปจะกำหนดตำแหน่งเริ่มต้นของอุปกรณ์โดยถือตำแหน่งศูนย์กลางหน้าจอเริ่มต้นเมื่อบูตเครื่องและบันทึกค่าการนับที่สอดคล้องกันลงในตัวนับตำแหน่ง X และ Y ในกรณีของตัวเข้ารหัสบนแผงควบคุมที่ใช้เป็นตัวควบคุมแบบใช้มือ (เช่น ตัวควบคุมระดับเสียง) โดยทั่วไปตำแหน่งเริ่มต้นจะถูกดึงมาจากหน่วยความจำแฟลชหรือหน่วยความจำแบบไม่ลบเลือนอื่นๆ เมื่อเปิดเครื่องและบันทึกลงในตัวนับตำแหน่ง และเมื่อปิดเครื่อง ค่าการนับตำแหน่งปัจจุบันจะถูกบันทึกไว้ในหน่วยความจำแบบไม่ลบเลือนเพื่อใช้เป็นตำแหน่งเริ่มต้นสำหรับการเปิดเครื่องครั้งถัดไป
การวัดความเร็ว

ตัวเข้ารหัสแบบเพิ่มค่ามักใช้ในการวัดความเร็วของระบบกลไก ซึ่งอาจทำเพื่อวัตถุประสงค์ในการตรวจสอบหรือเพื่อให้ข้อมูลป้อนกลับสำหรับการควบคุมการเคลื่อนที่หรือทั้งสองอย่าง[ 5 ]การใช้งานที่แพร่หลาย ได้แก่ การควบคุมความเร็วใน การหมุนเสาอากาศ เรดาร์และสายพานลำเลียงวัสดุและการควบคุมการเคลื่อนที่ในหุ่นยนต์เครื่องจักร CMM และเครื่องจักรCNC
อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่า (Incremental encoder) นั้นเน้นการติดตามการเคลื่อนที่เชิงกลเป็นหลัก และโดยปกติจะไม่วัดความเร็วโดยตรง ดังนั้น ความเร็วจึงต้องวัดโดยอ้อมโดยการหาอนุพันธ์ของตำแหน่งเทียบกับเวลา สัญญาณตำแหน่งนั้นถูกทำให้เป็นค่าค วอนไทซ์โดยธรรมชาติ ซึ่งก่อให้เกิดความท้าทายในการหาอนุพันธ์เนื่องจากข้อผิดพลาดจากการทำควอนไทซ์ โดยเฉพาะอย่างยิ่งที่ความเร็วต่ำ
ความเร็วของตัวเข้ารหัสสามารถกำหนดได้โดยการนับหรือโดยการจับเวลาพัลส์เอาต์พุต (หรือขอบ) ของตัวเข้ารหัส[ 7 ]ค่าที่ได้จะระบุความถี่หรือคาบตามลำดับ ซึ่งสามารถคำนวณความเร็วได้ ความเร็วเป็นสัดส่วนกับความถี่ และเป็นสัดส่วนผกผันกับคาบ
โดยความถี่
หากสัญญาณตำแหน่งถูกสุ่มตัวอย่าง (สัญญาณเวลาไม่ต่อเนื่อง) พัลส์ (หรือขอบพัลส์) จะถูกตรวจจับและนับโดยอินเทอร์เฟซ และโดยทั่วไปความเร็วจะถูกคำนวณโดยคอมพิวเตอร์ที่มีสิทธิ์อ่านข้อมูลจากอินเทอร์เฟซ ในการทำเช่นนี้ คอมพิวเตอร์จะอ่านค่าการนับตำแหน่งจากอินเทอร์เฟซ ณ เวลาแล้วในเวลาต่อมาอ่านจำนวนนับอีกครั้งเพื่อให้ได้ความเร็วเฉลี่ยในช่วงเวลาดังกล่าวถึงจากนั้นจึงคำนวณ: [ 2 ]
- .
ค่าความเร็วที่ได้จะแสดงเป็นจำนวนครั้งต่อหน่วยเวลา (เช่น จำนวนครั้งต่อวินาที) อย่างไรก็ตาม ในทางปฏิบัติ มักจำเป็นต้องแสดงความเร็วในหน่วยมาตรฐาน เช่น เมตรต่อวินาที รอบต่อนาที (RPM) หรือไมล์ต่อชั่วโมง (MPH) ในกรณีเช่นนี้ ซอฟต์แวร์จะคำนึงถึงความสัมพันธ์ระหว่างจำนวนครั้งและหน่วยระยะทางที่ต้องการ รวมถึงอัตราส่วนของช่วงเวลาการสุ่มตัวอย่างต่อหน่วยเวลาที่ต้องการ ตัวอย่างเช่น ในกรณีของตัวเข้ารหัสแบบหมุนเพิ่มค่าที่สร้างจำนวนครั้ง 4096 ครั้งต่อการหมุนหนึ่งรอบ ซึ่งอ่านค่าหนึ่งครั้งต่อวินาที ซอฟต์แวร์จะคำนวณ RPM ดังนี้:
- .
เมื่อวัดความเร็วด้วยวิธีนี้ ความละเอียดในการวัดจะเป็นสัดส่วนกับทั้งความละเอียดของตัวเข้ารหัสและช่วงเวลาการสุ่มตัวอย่าง (เวลาที่ผ่านไประหว่างตัวอย่างสองตัว) ความละเอียดในการวัดจะสูงขึ้นเมื่อช่วงเวลาการสุ่มตัวอย่างเพิ่มขึ้น[ 2 ]
ตามช่วงเวลา
อีกทางเลือกหนึ่งคือ สามารถรายงานค่าการวัดความเร็วได้ที่แต่ละพัลส์เอาต์พุตของตัวเข้ารหัส โดยการวัดความกว้างหรือคาบของพัลส์ เมื่อใช้วิธีนี้ การวัดจะถูกกระตุ้นที่ตำแหน่งเฉพาะแทนที่จะเป็นเวลาเฉพาะ การคำนวณความเร็วจะเหมือนกับที่แสดงไว้ข้างต้น (จำนวนนับ / เวลา) แม้ว่าในกรณีนี้ เวลาเริ่มต้นและสิ้นสุดการวัด (และ) จะได้รับจากข้อมูลอ้างอิงเวลา
เทคนิคนี้หลีกเลี่ยงข้อผิดพลาดในการกำหนดตำแหน่งเชิงปริมาณ แต่ทำให้เกิดข้อผิดพลาดที่เกี่ยวข้องกับการกำหนดเวลาอ้างอิงเชิงปริมาณ นอกจากนี้ยังมีความไวต่อความไม่สมบูรณ์ของเซ็นเซอร์มากขึ้น เช่น ข้อผิดพลาดของเฟส ข้อผิดพลาดของสมมาตร และความแปรผันในตำแหน่งการเปลี่ยนผ่านจากค่าที่กำหนดไว้[ 8 ]
อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มทีละขั้น

อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่า (Incremental Encoder Interface)คือวงจรอิเล็กทรอนิกส์ที่รับสัญญาณจากตัวเข้ารหัสแบบเพิ่มค่า ประมวลผลสัญญาณเพื่อสร้างตำแหน่งสัมบูรณ์และข้อมูลอื่นๆ และทำให้ข้อมูลที่ได้นั้นพร้อมใช้งานสำหรับวงจรภายนอก
อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่า (Incremental encoder) ถูกนำไปใช้งานในหลากหลายรูปแบบ รวมถึงในรูปแบบASIC , บล็อก IPภายในFPGA , อินเทอร์เฟซอุปกรณ์ต่อพ่วงเฉพาะในไมโครคอนโทรลเลอร์หรือในรูปแบบซอฟต์แวร์ (ผ่านการขัดจังหวะหรือการตรวจสอบGPIO )
ไม่ว่าจะใช้วิธีใดก็ตาม อินเทอร์เฟซจะต้องสุ่มตัวอย่างสัญญาณเอาต์พุต AและBของตัวเข้ารหัสบ่อยพอที่จะตรวจจับการเปลี่ยนแปลงสถานะ AB ทุกครั้งก่อนที่จะเกิดการเปลี่ยนแปลงสถานะครั้งถัดไป เมื่อตรวจพบการเปลี่ยนแปลงสถานะ ระบบจะเพิ่มหรือลดจำนวนตำแหน่งตามว่าAนำหน้าหรือตามหลังBโดยทั่วไปแล้วจะทำได้โดยการจัดเก็บสำเนาของสถานะ AB ก่อนหน้า และเมื่อมีการเปลี่ยนแปลงสถานะ จะใช้สถานะ AB ปัจจุบันและก่อนหน้าเพื่อกำหนดทิศทางการเคลื่อนที่
เครื่องรับสัญญาณสาย
อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าใช้วงจรอิเล็กทรอนิกส์หลายประเภทเพื่อรับสัญญาณที่สร้างจากตัวเข้ารหัส ตัวรับสัญญาณแบบสายเหล่านี้ทำหน้าที่เป็นบัฟเฟอร์เพื่อป้องกันวงจรอินเทอร์เฟซปลายทาง และในหลายกรณี ยังทำหน้าที่ปรับสภาพสัญญาณอีกด้วย
ปลายเดียว
โดยทั่วไป อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าจะใช้ สัญญาณอินพุต แบบ Schmitt triggerเพื่อรับสัญญาณจากตัวเข้ารหัสที่มี เอาต์พุต แบบ single-ended (เช่น push-pull, open collector) ตัวรับสัญญาณประเภทนี้สามารถกำจัดสัญญาณรบกวนระดับต่ำได้โดยธรรมชาติ (ด้วยกลไก hysteresis ของอินพุต) และปกป้องวงจรปลายทางจากระดับสัญญาณลอจิกที่ไม่ถูกต้อง (และอาจก่อให้เกิดความเสียหายได้)
ความแตกต่าง
ตัวรับสัญญาณ RS-422 มักใช้รับสัญญาณจากตัวเข้ารหัสที่มีเอาต์พุตแบบดิฟเฟอเรนเชียล ตัวรับสัญญาณประเภทนี้จะกำจัดสัญญาณรบกวนแบบคอมมอนโหมดและแปลงสัญญาณดิฟเฟอเรนเชียลที่เข้ามาให้เป็นรูปแบบซิงเกิลเอนด์ที่วงจรลอจิกปลายทางต้องการ
ในระบบที่มีความสำคัญต่อภารกิจ อาจจำเป็นต้องมีอินเทอร์เฟซตัวเข้ารหัสเพื่อตรวจจับการสูญเสียสัญญาณอินพุตเนื่องจากการสูญเสียพลังงานของตัวเข้ารหัส ความล้มเหลวของตัวขับสัญญาณ ความผิดพลาดของสายเคเบิล หรือการขาดการเชื่อมต่อของสายเคเบิล โดยปกติแล้วจะทำได้โดยใช้ตัวรับสัญญาณ RS-422 ที่ได้รับการปรับปรุง ซึ่งจะตรวจจับการไม่มีสัญญาณอินพุตที่ถูกต้องและรายงานสภาวะนี้ผ่านเอาต์พุตสถานะ "สัญญาณขาดหาย" ในการทำงานปกติ อาจมี สัญญาณรบกวน (พัลส์สั้นๆ) ปรากฏขึ้นบนเอาต์พุตสถานะในระหว่างการเปลี่ยนสถานะอินพุต โดยทั่วไปแล้ว อินเทอร์เฟซตัวเข้ารหัสจะกรองสัญญาณสถานะเพื่อป้องกันไม่ให้สัญญาณรบกวนเหล่านี้ถูกตีความผิดพลาดว่าเป็นสัญญาณขาดหาย ขึ้นอยู่กับอินเทอร์เฟซ การประมวลผลในภายหลังอาจรวมถึงการสร้างคำขอขัดจังหวะเมื่อตรวจพบการสูญเสียสัญญาณ และส่งการแจ้งเตือนไปยังแอปพลิเคชันสำหรับการบันทึกข้อผิดพลาดหรือการวิเคราะห์ความล้มเหลว
การซิงโครไนซ์นาฬิกา


อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าส่วนใหญ่ประกอบด้วยตรรกะลำดับซึ่งถูกควบคุมด้วยสัญญาณนาฬิกาอย่างไรก็ตาม สัญญาณตัวเข้ารหัสขาเข้าจะไม่ซิงโครไนซ์กับนาฬิกาอินเทอร์เฟซ เนื่องจากจังหวะเวลาของสัญญาณถูกกำหนดโดยการเคลื่อนที่ของตัวเข้ารหัสเท่านั้น ดังนั้น สัญญาณเอาต์พุตจาก ตัวรับสัญญาณสาย AและB (รวมถึงZและสัญญาณเตือนหากใช้) จะต้องซิงโครไนซ์กับนาฬิกาอินเทอร์เฟซ เพื่อหลีกเลี่ยงข้อผิดพลาดเนื่องจากความไม่เสถียรและเพื่อบังคับให้สัญญาณเข้าสู่โดเมนนาฬิกาของตัวถอดรหัสแบบควอดราเจอร์[ 9 ]
โดยทั่วไป การซิงโครไนซ์นี้จะดำเนินการโดยตัวซิงโครไนเซอร์แบบสัญญาณเดี่ยวอิสระ เช่น ตัวซิงโครไนเซอร์ แบบฟลิปฟลอป สองตัวที่เห็นในที่นี้ ที่ความถี่สัญญาณนาฬิกาสูงมาก หรือเมื่อต้องการอัตราข้อผิดพลาดต่ำมาก ตัวซิงโครไนเซอร์อาจมีฟลิป ฟลอปเพิ่มเติมเพื่อให้ได้อัตราข้อผิดพลาดบิต ที่ยอมรับได้ [ 10 ]
ตัวกรองอินพุต
ในหลายกรณี อินเทอร์เฟซตัวเข้ารหัสจะต้องกรองสัญญาณตัวเข้ารหัสที่ซิงโครไนซ์ก่อนที่จะประมวลผลต่อไป ซึ่งอาจจำเป็นเพื่อกำจัดสัญญาณรบกวนระดับต่ำและสัญญาณรบกวนแบบสั้นที่มีแอมพลิจูดสูงซึ่งมักพบในแอปพลิเคชันมอเตอร์[ 11 ]และในกรณีของตัวเข้ารหัสแบบกลไก เพื่อลดการสั่นของAและBเพื่อหลีกเลี่ยงข้อผิดพลาดในการนับเนื่องจากการสั่นของหน้าสัมผัสเชิงกล
อินเทอร์เฟซแบบฮาร์ดแวร์มักจะมีตัวกรองที่ตั้งโปรแกรมได้สำหรับสัญญาณตัวเข้ารหัส ซึ่งให้การตั้งค่าตัวกรองที่หลากหลาย จึงช่วยให้สามารถลดการกระเพื่อมของหน้าสัมผัสหรือระงับสัญญาณรบกวนหรือสัญญาณชั่วขณะที่เกิดจากสัญญาณรบกวนหรือสัญญาณที่เปลี่ยนแปลงช้าได้ตามต้องการ ในอินเทอร์เฟซแบบซอฟต์แวร์ โดยทั่วไปแล้วAและBจะเชื่อมต่อกับGPIOที่ถูกสุ่มตัวอย่าง (ผ่านการสำรวจหรือการขัดจังหวะขอบ) และลดสัญญาณกระเพื่อมโดยซอฟต์แวร์
ตัวถอดรหัสควอดราเจอร์

โดยทั่วไป อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าจะใช้ตัวถอดรหัสแบบควอดราเจอร์เพื่อแปลง สัญญาณ AและBให้เป็นสัญญาณทิศทางและ สัญญาณ เปิดใช้งานการนับ (สัญญาณเปิดใช้งานนาฬิกา) ที่จำเป็นสำหรับการ ควบคุมตัวนับแบบซิงโครนัสแบบสองทิศทาง (นับขึ้นและนับลง)
โดยทั่วไป ตัวถอดรหัสควอดราเจอร์จะถูกนำไปใช้เป็นเครื่องสถานะจำกัด (FSM) ซึ่งสุ่มตัวอย่าง สัญญาณ AและB พร้อมกัน และสร้างตัวอย่าง "AB" ที่เป็นส่วนผสม เมื่อได้รับตัวอย่าง AB ใหม่แต่ละตัว FSM จะจัดเก็บตัวอย่าง AB ก่อนหน้าไว้สำหรับการวิเคราะห์ในภายหลัง FSM จะประเมินความแตกต่างระหว่างสถานะ AB ใหม่และสถานะ AB ก่อนหน้า และสร้าง สัญญาณเปิดใช้งาน ทิศทางและจำนวนตามความเหมาะสมสำหรับลำดับสถานะ AB ที่ตรวจพบ[ 11 ]
| คำอธิบาย | รัฐ AB | เอาต์พุต | |||||
|---|---|---|---|---|---|---|---|
| ก่อนหน้า | ปัจจุบัน | ซีอี | ผู้กำกับ | ข้อผิดพลาด | |||
| x1 | x2 | x4 | |||||
| เคลื่อนที่ไปข้างหน้าหนึ่งตำแหน่ง( Aนำหน้าB ) | 00 | 10 | 1 | 1 | 1 | 1 | 0 |
| 10 | 11 | 0 | 0 | ||||
| 11 | 01 | 1 | |||||
| 01 | 00 | 0 | |||||
| เลื่อนไปหนึ่งขั้นในทิศทาง "ย้อนกลับ" ( Bนำหน้าA ) | 00 | 01 | 0 | 0 | |||
| 01 | 11 | 1 | |||||
| 11 | 10 | 0 | |||||
| 10 | 00 | 1 | 1 | ||||
| ไม่พบการเคลื่อนไหวใดๆ | 00 | 00 | 0 | X | |||
| 01 | 01 | ||||||
| 10 | 10 | ||||||
| 11 | 11 | ||||||
| เลื่อนไปเป็นจำนวนขั้นที่ไม่แน่นอน | 00 | 11 | 1 | ||||
| 01 | 10 | ||||||
| 10 | 01 | ||||||
| 11 | 00 | ||||||
การเปลี่ยนสถานะ
ในตัวอย่าง AB สองตัวอย่างที่ต่อเนื่องกัน ระดับตรรกะของAหรือBอาจเปลี่ยนแปลง หรือทั้งสองระดับอาจคงที่ แต่ในการทำงานปกติAและBจะไม่เปลี่ยนแปลงพร้อมกัน ในแง่นี้ ตัวอย่าง AB แต่ละตัวจึงเปรียบเสมือนรหัสเกรย์ สอง บิต
- เคลื่อนที่ไปข้างหน้า
- การเคลื่อนที่ในทิศทางตรงกันข้าม
- ไม่มีการเคลื่อนไหว
- ข้อผิดพลาด
การเปลี่ยนผ่านปกติ
เมื่อมีเพียงAหรือB เท่านั้น ที่เปลี่ยนสถานะ จะถือว่าตัวเข้ารหัสได้เคลื่อนที่ไปหนึ่งขั้นของความละเอียดในการวัด และด้วยเหตุนี้ ตัวถอดรหัสแบบควอดราเจอร์จะส่งสัญญาณ เอาต์พุต เปิดใช้งานการนับเพื่ออนุญาตให้ค่าการนับเปลี่ยนแปลง ขึ้นอยู่กับทิศทางการเคลื่อนที่ของตัวเข้ารหัส (ไปข้างหน้าหรือถอยหลัง) ตัวถอดรหัสจะส่ง สัญญาณเอาต์พุต ทิศทางเพื่อสั่งให้ค่าการนับเพิ่มขึ้นหรือลดลง (หรือในทางกลับกัน)
เมื่อทั้งAและBไม่เปลี่ยนแปลง จะถือว่าตัวเข้ารหัสไม่ได้เคลื่อนที่ ดังนั้นตัวถอดรหัสแบบควอดราเจอร์จึงกลับค่าเอาต์พุตการเปิดใช้งาน การ นับ ทำให้ค่าการนับยังคงไม่เปลี่ยนแปลง
ข้อผิดพลาด
หาก สถานะตรรกะ AและBเปลี่ยนแปลงในตัวอย่าง AB ที่ต่อเนื่องกัน ตัวถอดรหัสแบบควอดราเจอร์จะไม่สามารถระบุได้ว่าตัวเข้ารหัสเคลื่อนที่ไปกี่ขั้น หรือไปในทิศทางใด ซึ่งอาจเกิดขึ้นได้หากความเร็วของตัวเข้ารหัสเร็วเกินกว่าที่ตัวถอดรหัสจะประมวลผลได้ (เช่น อัตราการเปลี่ยนแปลงสถานะ AB เกินอัตราการสุ่มตัวอย่างของตัวถอดรหัสแบบควอดราเจอร์ ดูอัตรา Nyquist ) หรือหาก สัญญาณ AหรือBมีสัญญาณรบกวน
ในแอปพลิเคชันตัวเข้ารหัสหลายๆ แอปพลิเคชัน เหตุการณ์นี้ถือเป็นหายนะ เนื่องจากตัวนับจะไม่สามารถแสดงตำแหน่งของตัวเข้ารหัสได้อย่างแม่นยำอีกต่อไป ดังนั้น ตัวถอดรหัสแบบควอดราเจอร์มักจะส่ง สัญญาณ ผิดพลาด เพิ่มเติมออกมา ซึ่งจะเกิดขึ้นเมื่อ สถานะ AและBเปลี่ยนแปลงพร้อมกัน เนื่องจากความรุนแรงและลักษณะที่ต้องแก้ไขอย่างเร่งด่วนของสภาวะนี้ สัญญาณ ผิดพลาดจึงมักเชื่อมต่อกับคำขอขัดจังหวะ
ตัวคูณนาฬิกา
ตัวถอดรหัสแบบควอดราเจอร์ไม่จำเป็นต้องอนุญาตให้ค่าการนับเปลี่ยนแปลงทุกครั้งที่มีการเปลี่ยนแปลงตำแหน่งทีละน้อย เมื่อตัวถอดรหัสตรวจพบการเปลี่ยนแปลงตำแหน่งทีละน้อย (เนื่องจากการเปลี่ยนสถานะAหรือB แต่ไม่ใช่ทั้งสองอย่าง) มันอาจอนุญาตให้ค่าการนับเปลี่ยนแปลงหรืออาจระงับการนับ ขึ้นอยู่กับการเปลี่ยนสถานะ AB และ ตัวคูณสัญญาณนาฬิกาของตัวถอดรหัส
ตัวคูณความถี่สัญญาณนาฬิกาของตัวถอดรหัสแบบควอดราเจอร์นั้นได้ชื่อเช่นนั้นเพราะมันส่งผลให้ได้อัตราการนับที่เป็นผลคูณของ ความถี่พัลส์ AหรือBขึ้นอยู่กับการออกแบบของตัวถอดรหัส ตัวคูณความถี่สัญญาณนาฬิกาอาจถูกต่อสายไว้ในวงจรโดยตรง หรืออาจสามารถกำหนดค่าได้ในขณะทำงานผ่านสัญญาณอินพุต
ค่าตัวคูณนาฬิกาอาจเป็นหนึ่ง สอง หรือสี่ (โดยทั่วไปจะกำหนดเป็น "x1", "x2" และ "x4" หรือ "1x", "2x" และ "4x") [ 12 ]ในกรณีของตัวคูณ x4 จำนวนนับจะเปลี่ยนแปลงทุกครั้งที่มีการเปลี่ยนแปลงสถานะ AB ส่งผลให้อัตราการนับเท่ากับสี่เท่าของ ความถี่ AหรือBตัวคูณ x2 และ x1 อนุญาตให้จำนวนนับเปลี่ยนแปลงได้ในการเปลี่ยนแปลงสถานะ AB บางส่วน แต่ไม่ใช่ทั้งหมด ดังแสดงในตารางสถานะตัวถอดรหัสควอดราเจอร์ด้านบน (หมายเหตุ: ตารางนี้แสดงการใช้งานที่เป็นไปได้หนึ่งในหลายๆ แบบสำหรับตัวคูณ x2 และ x1 การใช้งานอื่นๆ อาจทำให้สามารถนับได้ในการเปลี่ยนสถานะ AB ที่แตกต่างกัน)
รายงานตำแหน่งงาน
จากมุมมองของแอปพลิเคชัน วัตถุประสงค์พื้นฐานของอินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่าคือการรายงานข้อมูลตำแหน่งตามความต้องการ ขึ้นอยู่กับแอปพลิเคชันนั้น อาจทำได้ง่ายๆ เพียงแค่ให้คอมพิวเตอร์อ่านค่าตัวนับตำแหน่งได้ตลอดเวลาภายใต้การควบคุมของโปรแกรม ในระบบที่ซับซ้อนกว่านั้น ตัวนับตำแหน่งอาจถูกสุ่มตัวอย่างและประมวลผลโดยเครื่องสถานะระดับกลาง ซึ่งจะทำให้ตัวอย่างเหล่านั้นพร้อมใช้งานสำหรับคอมพิวเตอร์
ตัวอย่างทะเบียน
โดยทั่วไปอินเทอร์เฟซตัวเข้ารหัสจะใช้รีจิสเตอร์ตัวอย่างเพื่ออำนวยความสะดวกในการรายงานตำแหน่ง ในกรณีง่ายๆ ที่คอมพิวเตอร์ต้องการข้อมูลตำแหน่งภายใต้การควบคุมโปรแกรม อินเทอร์เฟซจะสุ่มตัวอย่างตัวนับตำแหน่ง (เช่น คัดลอกจำนวนนับตำแหน่งปัจจุบันไปยังรีจิสเตอร์ตัวอย่าง) จากนั้นคอมพิวเตอร์จะอ่านจำนวนนับจากรีจิสเตอร์ตัวอย่าง กลไกนี้ส่งผลให้เกิดการทำงานแบบอะตอมิกจึงทำให้มั่นใจได้ถึงความสมบูรณ์ของข้อมูลตัวอย่าง ซึ่งอาจมีความเสี่ยงได้ (เช่น หากขนาดคำของตัวอย่างเกินขนาดคำของคอมพิวเตอร์) [ 1 ]
การสุ่มตัวอย่างแบบกระตุ้น
ในบางกรณี คอมพิวเตอร์อาจไม่สามารถรับข้อมูลตำแหน่งด้วยความแม่นยำของเวลาที่เพียงพอได้โดยใช้โปรแกรม (ผ่านอินพุต/เอาต์พุตที่ตั้งโปรแกรมไว้ ) ตัวอย่างเช่น คอมพิวเตอร์อาจไม่สามารถขอตัวอย่างตามกำหนดเวลาที่แน่นอน (เช่น สำหรับการวัดความเร็ว) เนื่องจากความแปรปรวนของเวลาในซอฟต์แวร์ นอกจากนี้ ในบางแอปพลิเคชัน จำเป็นต้องขอตัวอย่างเมื่อเกิดเหตุการณ์ภายนอก และคอมพิวเตอร์อาจไม่สามารถทำได้ทันท่วงที ที่ความเร็วและความละเอียดของตัวเข้ารหัสที่สูงขึ้น ข้อผิดพลาดในการวัดตำแหน่งอาจเกิดขึ้นได้แม้ว่าจะใช้การขัดจังหวะเพื่อขอตัวอย่าง เนื่องจากตัวเข้ารหัสอาจเคลื่อนที่ระหว่างเวลาที่ส่งสัญญาณ IRQ และเวลาที่ตัวจัดการการขัดจังหวะ ออกคำสั่งขอ ตัวอย่าง
เพื่อเอาชนะข้อจำกัดนี้ อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มค่ามักจะใช้การสุ่มตัวอย่างที่กระตุ้นด้วยฮาร์ดแวร์ ซึ่งช่วยให้สามารถสุ่มตัวอย่างตัวนับตำแหน่งได้ในเวลาที่กำหนดอย่างแม่นยำตามสัญญาณอินพุตทริกเกอร์[ 1 ]สิ่งนี้มีความสำคัญเมื่อต้องสุ่มตัวอย่างตำแหน่งในเวลาที่กำหนดหรือเพื่อตอบสนองต่อเหตุการณ์ทางกายภาพ และจำเป็นอย่างยิ่งในแอปพลิเคชันต่างๆ เช่น การควบคุมการเคลื่อนที่หลายแกนและ CMM ซึ่งตัวนับตำแหน่งของอินเทอร์เฟซตัวเข้ารหัสหลายตัว (หนึ่งตัวต่อแกน) จะต้องถูกสุ่มตัวอย่างพร้อมกัน
ในการใช้งานหลายๆ กรณี คอมพิวเตอร์ต้องทราบอย่างแม่นยำว่าแต่ละตัวอย่างถูกบันทึกเมื่อใด และหากอินเทอร์เฟซมีอินพุตทริกเกอร์หลายตัว ก็ต้องทราบว่าสัญญาณใดเป็นตัวกระตุ้นการบันทึกตัวอย่าง เพื่อให้เป็นไปตามข้อกำหนดเหล่านี้ อินเทอร์เฟซจึงมักจะรวมข้อมูลเวลาและข้อมูลทริกเกอร์ไว้ในทุกตัวอย่าง
การแจ้งเตือนกิจกรรม
โดยทั่วไปแล้ว การเรียกใช้งานตัวอย่างมักเกิดขึ้นแบบไม่พร้อมกันกับการทำงานของซอฟต์แวร์ ดังนั้น เมื่อมีการเรียกใช้งานตัวนับตำแหน่งเพื่อตอบสนองต่อสัญญาณเรียกใช้งาน คอมพิวเตอร์จะต้องได้รับการแจ้งเตือน (โดยปกติผ่านการขัดจังหวะ ) ว่ามีตัวอย่างพร้อมใช้งานแล้ว วิธีนี้ช่วยให้ซอฟต์แวร์ทำงานโดยอาศัยเหตุการณ์ (แทนที่จะเป็นการตรวจสอบเป็น ระยะ ) ซึ่งช่วยให้ระบบตอบสนองได้รวดเร็วและลดภาระการตรวจสอบเป็นระยะ
ตัวอย่าง FIFO
การเรียกใช้การสุ่มตัวอย่างต่อเนื่องอาจเกิดขึ้นเร็วกว่าที่คอมพิวเตอร์จะประมวลผลตัวอย่างที่ได้รับ เมื่อเกิดเหตุการณ์เช่นนี้ ข้อมูลในรีจิสเตอร์ตัวอย่างจะถูกเขียนทับก่อนที่คอมพิวเตอร์จะสามารถอ่านได้ ส่งผลให้ข้อมูลสูญหาย เพื่อหลีกเลี่ยงปัญหานี้ อินเทอร์เฟซตัวเข้ารหัสแบบเพิ่มทีละขั้นบางตัวจึงมีบัฟเฟอร์ FIFOสำหรับตัวอย่าง[ 1 ]เมื่อได้รับตัวอย่างแต่ละตัวแล้ว จะถูกเก็บไว้ใน FIFO เมื่อคอมพิวเตอร์ต้องการตัวอย่าง คอมพิวเตอร์จะสามารถอ่านตัวอย่างที่เก่าที่สุดใน FIFO ได้
หมายเหตุ
- ↑ สัญญาณเอาต์พุต Aและ Bของตัวเข้ารหัสไม่ได้บ่งบอกตำแหน่งสัมบูรณ์ ตำแหน่งสัมบูรณ์จะทราบได้ก็ต่อเมื่ออ้างอิงสัญญาณดัชนีหรือการกำหนดตำแหน่งเริ่มต้นเท่านั้น อย่างไรก็ตาม สัญญาณ ดัชนีเมื่อมีอยู่และถูกเรียกใช้ จะบ่งชี้ว่าตัวเข้ารหัสอยู่ที่ตำแหน่งอ้างอิง ซึ่งในบางแอปพลิเคชันอาจเป็นตำแหน่งสัมบูรณ์
- ↑ในบริบทของตัวนับดิจิทัลแบบซิงโครนัส "การรบกวน" หมายถึงการเปลี่ยนแปลงค่าที่จัดเก็บไว้ให้เป็นค่าเฉพาะ ค่าดังกล่าวจะถูกป้อนเข้าสู่ช่องป้อนข้อมูลแบบขนานของตัวนับ และช่องป้อนข้อมูล Load Enable (หรือเทียบเท่า) ของตัวนับจะถูกกระตุ้นเพื่อเรียกใช้การเปลี่ยนแปลงค่า ในระหว่างการดำเนินการนี้ การนับตามปกติจะถูกปิดใช้งานชั่วขณะ
