ประเภทของการป้องกันการเขียนและการโปรแกรม · ทรานซีฟเวอร์และฟอร์มแฟกเตอร์ · ทรานซีฟเวอร์ออปติคัลและสายเคเบิล · เอกสารประกอบ · CodingBox
CodingBox เอกสารประกอบ

ประเภทของการป้องกันการเขียนและการโปรแกรม

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

ห้าชนิดของการป้องกัน

#ชนิดวิธีสังเกตวิธีโปรแกรม
1ไม่มีการป้องกันยอมรับการเขียนทันทีเขียนโดยตรง — แต่ต้องใช้สัญญาณนาฬิกาความเร็วต่ำ
2พินป้องกันการเขียนทางฮาร์ดแวร์อ่านได้อย่างเดียวไม่ว่าจะลองวิธีใด รหัสผ่านก็ช่วยไม่ได้ควบคุมสาย WP ระหว่างการเขียน
3รหัสผ่าน (คอนโทรลเลอร์เฟิร์มแวร์)WRITE FAIL จนกว่าจะป้อนรหัสผ่านป้อนรหัสผ่านที่ 0x7B ก่อน
4หน่วยเก็บชั่วคราว + คำสั่งบันทึกการเขียน “สำเร็จ” แต่ย้อนกลับหลังตัดต่อไฟใหม่ส่งลำดับคำสั่งบันทึกของผู้ผลิต
5แบบผสมต้องใช้ลำดับ I/O เฉพาะของผู้ผลิตเพื่อปลดล็อกอัลกอริทึมการโปรแกรมของผู้ผลิต (สคริปต์)

1. ไม่มีการป้องกัน

EEPROM ไม่มีข้อจำกัดในการเขียน ปัญหาในทางปฏิบัติคือจังหวะเวลา การโปรแกรมให้เชื่อถือได้โดยทั่วไปต้องใช้สัญญาณนาฬิกาสองสายที่ประมาณ 1 kHz ซึ่งช้ากว่าความเร็วอ่านปกติราวสิบเท่า ที่ความเร็วมาตรฐาน การเขียนจะล้มเหลวเป็นระยะและทิ้งเพจที่เขียนไม่ครบไว้ สัญญาณบ่งชี้ที่เกี่ยวข้องกัน คือในโมดูลง่าย ๆ บางตัวมีเพียง A0h เท่านั้นที่อ่านได้สะอาด ขณะที่ A2h คืนค่าข้อผิดพลาด

2. พินป้องกันการเขียนทางฮาร์ดแวร์

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

3. ป้องกันด้วยรหัสผ่าน (คอนโทรลเลอร์เฟิร์มแวร์)

ตาม SFF-8472 บล็อก A2h กันพื้นที่รหัสผ่าน 7 ไบต์ไว้เริ่มที่ออฟเซต 0x7B โมดูลส่วนใหญ่ใช้รหัสผ่านขนาด 4 ไบต์ คอนโทรลเลอร์ในโมดูลจะเทียบค่าที่เขียนไว้ตรงนั้นกับค่าที่เก็บไว้ และปลดล็อกการเขียน EEPROM ก็ต่อเมื่อค่าตรงกันเท่านั้น หากไม่มีรหัสผ่าน การเขียนทุกครั้งจะคืนค่า WRITE FAIL

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

4. หน่วยเก็บชั่วคราวพร้อมคำสั่งบันทึก

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

5. การป้องกันแบบผสม

โมดูลรุ่นใหม่ล่าสุดซ้อนกลไกหลายอย่างเข้าด้วยกัน ได้แก่ WP ทางฮาร์ดแวร์ และรหัสผ่าน และคำสั่งบันทึก และเงื่อนไขการทำงานล่วงหน้า เช่น โมดูลต้องถูกตั้งให้อยู่ในโหมดกำลังไฟต่ำก่อนจึงจะยอมรับการเขียน ลักษณะนี้พบทั่วไปในโมดูลตามฉบับปรับปรุงล่าสุดของ SFF-8472 ที่เปิดให้ใช้เพจมากกว่า 256 เพจเหนือออฟเซต 0x80 ของ A2h และในโมดูล CMIS การโปรแกรมต้องใช้อัลกอริทึมของผู้ผลิต ซึ่งมักเผยแพร่ให้เฉพาะลูกค้าที่สั่งซื้อจำนวนมาก

วิธีระบุชนิด

  1. ลองอ่านแบบธรรมดาก่อน: A2h อ่านได้สะอาดหรือไม่ (ชนิด 1 มักล้มเหลวตรงนี้)
  2. ลองเขียนหนึ่งไบต์ลงในฟิลด์ที่ไม่มีการป้องกัน สำเร็จทันที → ชนิด 1 WRITE FAIL → ชนิด 3 (หรือ 5) สำเร็จแบบเงียบ ๆ แต่ย้อนกลับหลังตัดต่อไฟใหม่ → ชนิด 4
  3. ป้อนรหัสผ่านที่ทราบ ยังคงอ่านได้อย่างเดียว → ชนิด 2 (ฮาร์ดแวร์) หรือชนิด 5 (แบบผสม)
  4. ตรวจสอบฟอร์มแฟกเตอร์และฉบับปรับปรุงของสเปก — โมดูล CMIS และ SFF-8472 ฉบับปรับปรุงหลัง ๆ มักเป็นชนิด 5

ใน CodingBox

  • การตั้งค่ารหัสผ่าน — แอดเดรสตาราง, แอดเดรสรหัสผ่าน (0x7B) และค่ารหัสผ่าน ถูกตั้งค่าไว้ในหน่วยความจำที่มีการป้องกันและรหัสผ่าน รหัสผ่านที่ทราบแล้วจะถูกใช้จากฐานข้อมูลโดยอัตโนมัติ
  • สคริปต์ — สคริปต์การโปรแกรมของ CodingBox บรรจุลำดับคำสั่งบันทึกของผู้ผลิตและอัลกอริทึมปลดล็อกสำหรับชนิด 4 และ 5
  • การเขียนทีละไบต์และสัญญาณนาฬิกาความเร็วต่ำ สำหรับโมดูลที่ล้มเหลวที่ความเร็วมาตรฐาน
  • WP ทางฮาร์ดแวร์ จัดการโดยบอร์ดโปรแกรม ไม่ใช่โดยซอฟต์แวร์
  • ทุกการอ่านจะถูกบันทึกลงcode databaseก่อนที่คุณจะเขียน ทำให้ความพยายามที่ล้มเหลวกู้คืนได้เสมอ

อาการที่พบบนโต๊ะทดสอบ — WRITE FAIL, การเขียนที่ย้อนกลับ, รหัสผ่านถูกปฏิเสธ — และวิธีรับมือแต่ละกรณี: ข้อผิดพลาดในการอ่านและเขียน EEPROM

เหตุผลที่ชนิดเหล่านี้มีอยู่ — EEPROM แยกชิ้นเทียบกับแผนผังที่จำลองโดย MCU, คำสั่งบันทึก, มิเรอร์ของเฟิร์มแวร์ และลายเซ็นตามที่เฟิร์มแวร์นำไปใช้งาน: คอนโทรลเลอร์และเฟิร์มแวร์


หากพบข้อมูลที่ไม่ถูกต้องหรือข้อผิดพลาดในบทความนี้ ให้เลือกข้อความส่วนนั้นแล้วกด Ctrl+Enter เพื่อ