SMBus : การทำงาน ความแตกต่าง & การใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





SMBus เปิดตัวในปี 1995 โดย Intel และใช้โปรโตคอลบัสอนุกรม I²C ของ Philips บัสนี้มีข้อมูล CLK และคำแนะนำที่ความถี่สัญญาณนาฬิกาอยู่ในช่วงตั้งแต่ 10 kHz ถึง 100 kHz จุดประสงค์หลักของ SMBus คือการยอมให้มีวิธีการที่ไม่แพงและทรงพลังในการควบคุมและรับข้อมูลจากอุปกรณ์บนเมนบอร์ด โดยปกติแล้ว SMBus จะใช้ในพีซีสำหรับการควบคุมอุณหภูมิ แบตเตอรี่อัจฉริยะ และการสื่อสารการจัดการระบบแบนด์วิธต่ำอื่นๆ


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



โปรโตคอล SMBus คืออะไร?

SMBus (System Management Bus) เป็นอินเทอร์เฟซ 2 สาย ซึ่งมักใช้ระหว่างอุปกรณ์ต่างๆ บนเมนบอร์ดสำหรับการสื่อสารการจัดการระบบความเร็วต่ำ รถบัสประเภทนี้ได้รับการออกแบบโดย โปรโตคอล I2C ฐานราก ดังนั้นทั้ง I2C และ SMBus จึงอาจมีความคล้ายคลึงกัน และพวกเขายังสามารถทำงานร่วมกันบนรถบัสที่คล้ายกันได้

บัสนี้ทำงานบนหลักการทำงานของ I2C ซึ่งมีบัสควบคุม โดยเฉพาะอย่างยิ่งสำหรับระบบที่จะอนุญาตให้มีข้อความเข้าหรือออกจากอุปกรณ์ แทนที่จะใช้สายควบคุมที่แยกจากกันเพื่อลดจำนวนสายของระบบและจำนวนพิน



อุปกรณ์ที่มี SMBus สามารถให้ข้อมูลการผลิต แจ้งระบบหมายเลขชิ้นส่วนหรือรุ่น รายงานข้อผิดพลาดประเภทต่างๆ อนุญาตพารามิเตอร์การควบคุม และทบทวนตำแหน่ง

ข้อมูลจำเพาะ SMBus

ข้อกำหนดของ SMBus นั้นหมายถึงอุปกรณ์ 3 โฮสต์หลักและทาส

  • โฮสต์เป็นต้นแบบเฉพาะและมีอินเทอร์เฟซหลักกับ CPU ของระบบ
  • อุปกรณ์หลักที่ออกคำสั่ง สร้างนาฬิกา และยุติการถ่ายโอน
  • อุปกรณ์สเลฟได้รับการตอบสนองต่อคำสั่งเป็นอย่างอื่น

SMBus ทำงานอย่างไร?

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

อุปกรณ์หลักเริ่มการสื่อสาร ขับเคลื่อน CLK และหยุดการถ่ายโอน อุปกรณ์อาจได้รับเลือกให้เป็นเพียงแค่เครื่องหลักหรือเครื่องรองหลัก ซึ่งอุปกรณ์นั้นสามารถทำงานเป็นอุปกรณ์หลักหรืออุปกรณ์รองก็ได้

  แผนภาพ SMBus
แผนภาพ SMBus

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

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

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

อุปกรณ์จำเป็นต้องจดจำที่อยู่ของตนเอง ดังนั้นเมื่ออุปกรณ์ระบุที่อยู่แล้ว อุปกรณ์จะตอบสนองต่อคำสั่ง

เมื่อที่อยู่รองของบัสนี้ขัดแย้งกัน จะสนับสนุน ARP หรือ Address Resolution Protocol เมื่อโฮสต์สังเกตเห็นอุปกรณ์สองเครื่องที่มีที่อยู่รองที่คล้ายกัน ขั้นตอนโปรโตคอลการแก้ปัญหาที่อยู่จะกำหนดที่อยู่ใหม่ที่ไม่ซ้ำแบบไดนามิกให้กับทาส โปรโตคอลการแก้ปัญหาที่อยู่จะช่วยให้อุปกรณ์สามารถใช้งานได้ทันทีโดยไม่ต้องเริ่มต้นระบบใหม่อีกครั้ง

บัสนี้ใช้สาย 2 สายสำหรับการสื่อสาร เช่น สาย SMBDAT และสาย SMBCLK ที่สาย SMBDAT ใช้ในการถ่ายโอนข้อมูลแบบอนุกรม และสาย SMBCLK ทำงานเหมือนนาฬิกาอนุกรม ใน SMBus ด้านบน ต้นแบบเพียงแค่ขับ SMBCLK ที่มีช่วงตั้งแต่ 10 ถึง 100 kHz อย่างไรก็ตาม สายใดก็ได้สามารถขับเคลื่อน SMBDAT ได้

สายไฟสองเส้นนี้เป็นแบบสองทิศทาง ซึ่งมีตัวเลือกในการรวมสัญญาณเตือน เช่น SMBALERT ที่ช่วยให้อุปกรณ์สามารถเรียกร้องความสนใจจากโฮสต์ได้

แพ็กเก็ตข้อมูลของบัสนี้ประกอบด้วยบิตเริ่มต้น บิต ACK หรือ NACK ข้อมูล 8 บิต และบิตหยุด การถ่ายโอนข้อมูลของ SMBus ใช้ฟังก์ชันบางอย่างมิฉะนั้นโปรโตคอลของ SMBus ที่แตกต่างกันในขณะที่ส่งข้อความเช่น Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & บล็อกการเขียนบล็อก

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

ฟังก์ชั่น

ฟังก์ชัน SMBus เรียกอีกอย่างว่าโปรโตคอล ดังนั้นโปรโตคอลหลักของ SMBus คือ Quick Command, Send Byte, Receive Byte, Write Byte, Read Byte, Process Call, Block Write/Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, โปรโตคอล Write-32, Read-32 โปรโตคอล เขียนโปรโตคอล 64 และอ่านโปรโตคอล 64

รูปแบบข้อความ SMBUS

หลังจากเงื่อนไขของ START ต้นแบบจะค้นหาที่อยู่ 7 บิตของอุปกรณ์สเลฟ และจำเป็นต้องระบุตำแหน่งบนบัส ดังนั้น ความยาวของที่อยู่จะยาว 7 บิต ตามด้วย 8 บิตที่แสดงถึงทิศทางการถ่ายโอนข้อมูล (R/W) ONE ระบุคำขอสำหรับ READ (ข้อมูล) & ZERO ระบุ WRITE (การส่ง)

  รูปแบบข้อความ
รูปแบบข้อความ

การถ่ายโอนข้อมูลจะถูกยกเลิกโดยเงื่อนไข STOP ที่สร้างผ่านต้นแบบเสมอ

แต่ละไบต์ประกอบด้วย 8 บิต และแต่ละไบต์จะถูกโอนย้ายบน SMBus และควรติดตามผ่านบิตรับทราบ ไบต์จะถูกส่งผ่าน MSB (บิตที่สำคัญที่สุด) ก่อน

อุปกรณ์ SMBus ทั่วไปประกอบด้วยชุดคำสั่งที่ข้อมูลสามารถอ่านและเขียนได้ง่ายๆ ความยาวของคำสั่งทั้งหมดเหล่านี้คือ 1 ไบต์ในขณะที่อาร์กิวเมนต์รวมถึงค่าที่ส่งคืนสามารถเปลี่ยนแปลงได้ภายในความยาว

การอนุญาตคำสั่งไม่มีอยู่ มิฉะนั้นจะไม่ได้รับการสนับสนุน ดังนั้นจึงอาจทำให้เกิดข้อผิดพลาดได้ เพื่อให้เป็นไปตามข้อกำหนด SMBus MSB จะถูกโอนก่อน

ขั้นแรก คำสั่งทั้งหมดกำหนดเงื่อนไขการเริ่มต้นบนบัส หลังจากนั้นเริ่มการส่งข้อมูลผ่านการส่งข้อมูลหรือคำสั่ง รอการยอมรับจากอุปกรณ์สเลฟตลอดการส่งข้อมูลหรือคำสั่ง จากนั้นกำหนดเงื่อนไขการหยุดบนบัส

เงื่อนไขการเริ่มต้นและหยุดสำหรับโปรโตคอล SMBus

เงื่อนไข START & STOP ของข้อความจะถูกกำหนดโดยเงื่อนไขบัสที่ไม่ซ้ำกันสองเงื่อนไขจากสูงไปต่ำและต่ำไปสูง

  เงื่อนไขการเริ่มต้นและหยุด
เงื่อนไขการเริ่มต้นและหยุด

ในการเปลี่ยนบรรทัด SMBDAT จาก HIGH เป็น LOW เมื่อ SMBCLK เป็น HIGH จะระบุเงื่อนไข START ของข้อความ

ในการเปลี่ยนบรรทัด LOW เป็น HIGH SMBDAT เมื่อ SMBCLK เป็น HIGH จะกำหนดเงื่อนไข STOP ของข้อความ ดังนั้นเงื่อนไขทั้งสองนี้จึงถูกสร้างขึ้นโดยเจ้าของบัสเสมอ รถโดยสารจะว่างหลังจากสภาพของการสตาร์ท รถบัสจะไม่ได้ใช้งานอีกครั้งหลังจากผ่านไประยะหนึ่งตามเงื่อนไข STOP

ข้อกำหนดฮาร์ดแวร์ SMBus

ข้อกำหนดด้านฮาร์ดแวร์ของ SMBus สำหรับการเปิดใช้งานอย่างมีประสิทธิภาพ ตลอดจนการสื่อสารที่ราบรื่นระหว่างพีซีและฮาร์ดแวร์ที่จำเป็นที่สุดบางส่วน คือสายไฟสองเส้น เช่น SMBDAT & SMBCLK, PSU (หน่วยจ่ายไฟ) ชุดไอซี ไดรเวอร์ และพัดลมระบายความร้อน . โดยพื้นฐานแล้ว SMBus Controller นี้ช่วยให้คอมพิวเตอร์สามารถจัดการและรันคำสั่งต่างๆ ได้สำเร็จ เช่น การเปิด PSU และการควบคุมพัดลมระบายความร้อน

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

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

SMBus กับ I2C

ดิ ความแตกต่างระหว่าง SMBus และ I2C รวมถึงสิ่งต่อไปนี้

SMBus

2C

คำว่า SMBus ย่อมาจาก 'System Management Bus' คำว่า I2C ย่อมาจาก 'Inter-Integrated Circuit'
SMBus เป็นบัสควบคุม 2 สายที่ใช้ในงานการจัดการพลังงานและระบบ I2C เป็นโปรโตคอลการสื่อสารแบบออนบอร์ดที่ใช้สำหรับแบนด์วิธต่ำและระยะทางสั้น
ระบบสามารถใช้บัสนี้เพื่อกำหนดเส้นทางข้อความจาก & ไปยังอุปกรณ์ แทนที่จะเปิดใช้งานสายควบคุมแต่ละสาย

โดยปกติแล้ว I2C ​​จะใช้สำหรับเชื่อมต่ออุปกรณ์ต่อพ่วงความเร็วต่ำ เช่น ไมโครคอนโทรลเลอร์และเซ็นเซอร์กับโปรเซสเซอร์ที่อยู่เหนือระยะทางสั้นๆ ใน IC
ความเร็วสูงสุด CLK คือ 100 kHz ความเร็วสูงสุด CLK คือ 400 kHz
ความเร็ว CLK ขั้นต่ำคือ 10 kHz ไม่มีความเร็ว CLK ขั้นต่ำ
หมดเวลา CLK ต่ำ 35ms ไม่มีการหมดเวลา
มีระดับตรรกะคงที่ ระดับตรรกะของมันขึ้นอยู่กับ VDD
มีที่อยู่ประเภทต่างๆ เช่น สงวนไว้ ไดนามิก ฯลฯ มีประเภทที่อยู่ที่แตกต่างกันเช่นที่อยู่ของทาสการโทรทั่วไป 7 บิตและ 10 บิต
มีโปรโตคอลบัสต่างๆ เช่น การเรียกกระบวนการ คำสั่งด่วน ฯลฯ ไม่มีโปรโตคอลบัส

SMBus Vs Pmbus

ความแตกต่างระหว่าง SMBus และ Pmbus มีดังต่อไปนี้

SMBus

Pmbus

SMBus เป็นบัสแบบปลายเดี่ยว 2 สายที่ใช้สำหรับการสื่อสารที่มีน้ำหนักเบา ส่วนขยายของ SMBus คือ Pmbus และเป็นโปรโตคอลต้นทุนต่ำที่ใช้เป็นหลักในการสื่อสารระหว่างอุปกรณ์จัดการพลังงาน
โหมดทาสของบัสนี้อนุญาตให้ใช้ค่าอัตราข้อมูลเช่น 10kbps, 50 kbps, 100 kbps & 400 kbps โหมดทาสของบัสนี้อนุญาตให้ใช้ค่าอัตราข้อมูลเช่น 100 kbps และ 400 kbps
บัสประเภทนี้ใช้งานได้กับฮาร์ดแวร์ I2C แต่มีซอฟต์แวร์ระดับที่สองโดยอนุญาตให้อุปกรณ์สลับร้อนโดยไม่ต้องรีสตาร์ทระบบ บัสนี้ขยาย SMBus โดยเพียงแค่กำหนดชุดคำสั่งของอุปกรณ์ และได้รับการออกแบบมาโดยเฉพาะสำหรับการจัดการตัวแปลงกำลังไฟฟ้า โดยเปิดเผยคุณลักษณะของอุปกรณ์ เช่น กระแสไฟฟ้าที่วัดได้ แรงดันไฟ อุณหภูมิ ฯลฯ
SMBus เป็น superset ของ I2C PMBus เป็น superset ของ SMBus
บัสนี้มีทั้ง Network & Data Link Layers บัสนี้มีเลเยอร์ Transport และชุดคำสั่ง

ไดอะแกรมกำหนดเวลา

ดิ แผนภาพเวลา SMBus แสดงอยู่ด้านล่าง

  ไดอะแกรมกำหนดเวลาของ SMBus
ไดอะแกรมกำหนดเวลาของ SMBus

TLOW.SEXT เป็นอุปกรณ์สเลฟที่ขยายรอบ CLK ภายในข้อความเดียวจาก START ถึง STOP ดังนั้นจึงเป็นไปได้ที่อุปกรณ์หลักหรืออุปกรณ์สเลฟอื่นจะขยายรอบ CLK ด้วยเพื่อทำให้เวลาที่ขยายต่ำของ CLK รวมสูงกว่า TLOW.SEXT ดังนั้น พารามิเตอร์นี้จึงถูกวัดอย่างง่ายๆ ผ่านอุปกรณ์สเลฟ เช่นเดียวกับเป้าหมายเดียวของมาสเตอร์แบบเต็มความเร็ว

TLOW.MEXT เป็นอุปกรณ์หลักที่ขยายรอบ CLK ในทุกไบต์ของข้อความ ดังนั้นจึงเป็นไปได้ที่อุปกรณ์หลักหรืออุปกรณ์สเลฟอื่นจะขยาย CLK ด้วยเพื่อทำให้เวลาต่ำของ CLK ที่รวมกันสูงขึ้นเมื่อเทียบกับ TLOW.MEXT บนไบต์ที่ระบุ ดังนั้น พารามิเตอร์จะถูกวัดอย่างง่าย ๆ ผ่านอุปกรณ์สเลฟความเร็วเต็มที่เหมือนกับเป้าหมายเดียวของมาสเตอร์

แอปพลิเคชั่น

ดิ แอพพลิเคชั่น SMBus รวมสิ่งต่อไปนี้

  • SMBus ถูกใช้เป็นชิปส่วนประกอบระบบที่ใช้ในการสื่อสารภายในระบบ โดยเฉพาะอย่างยิ่ง แบตเตอรี่สามารถสื่อสารกับส่วนประกอบอื่น ๆ ของระบบ เช่น ส่วนประกอบเกี่ยวกับพลังงานและ CPU
  • ใช้สำหรับการสื่อสารที่มีน้ำหนักเบา
  • บัสนี้ใช้สำหรับตรวจสอบพารามิเตอร์ที่สำคัญใน ระบบฝังตัว & บนเมนบอร์ดของพีซี
  • นี่คือรูปแบบการสื่อสารที่ใช้กันทั่วไปสำหรับมาตรวัดน้ำมันเชื้อเพลิงขั้นสูงของ Texas Instruments
  • สิ่งนี้ใช้ในการสื่อสารการจัดการระบบที่ใช้แบนด์วิดท์น้อยกว่า

ดังนั้น ทั้งหมดนี้เกี่ยวกับ ภาพรวมของ SMBus - การทำงานกับแอพพลิเคชั่น นี่คือบัสสองสายที่เรียบง่ายและปลายเดียวที่ใช้สำหรับการสื่อสารที่มีน้ำหนักเบา บัสนี้ใช้ในเมนบอร์ดของคอมพิวเตอร์เพื่อสื่อสารกับแหล่งพลังงานสำหรับคำสั่งเปิดหรือปิด นี่คือคำถามสำหรับคุณ โปรโตคอล I2C คืออะไร?