อ่าน 5 นาที
บัสการจัดการระบบ
ระบบ บัสจัดการ ( SMBus หรือ SMB ) เป็น บัส แบบสองสายแบบ ปลายเดียวที่เรียบ ง่าย สำหรับการสื่อสารที่มีน้ำหนักเบา โดยทั่วไปแล้วจะพบในชิปเซ็ตของเมนบอร์ดคอมพิวเตอร์...
บัสการจัดการระบบ
ระบบบัสจัดการ ( SMBusหรือSMB ) เป็นบัสแบบสองสายแบบปลายเดียวที่เรียบง่าย สำหรับการสื่อสารที่มีน้ำหนักเบา โดยทั่วไปแล้วจะพบในชิปเซ็ตของเมนบอร์ดคอมพิวเตอร์ เพื่อสื่อสารกับแหล่งจ่ายไฟสำหรับคำสั่งเปิด/ปิด ฟังก์ชันการทำงานและอินเทอร์เฟซฮาร์ดแวร์ที่แน่นอนจะแตกต่างกันไปตามผู้ผลิต
พัฒนามาจากI²Cสำหรับการสื่อสารกับอุปกรณ์แบนด์วิดท์ต่ำบนเมนบอร์ดโดยเฉพาะชิปที่เกี่ยวข้องกับพลังงาน เช่น ระบบย่อยแบตเตอรี่แบบชาร์จได้ของแล็ปท็อป (ดูSmart Battery SystemและACPI ) [ 1 ]อุปกรณ์อื่นๆ อาจรวมถึงมาสเตอร์โฮสต์ภายนอก เซ็นเซอร์อุณหภูมิ พัดลม หรือเซ็นเซอร์แรงดันไฟฟ้า สวิตช์ฝาปิด เครื่องกำเนิดสัญญาณนาฬิกา และไฟ RGB การ์ดเสริมPeripheral Component Interconnect (PCI) อาจเชื่อมต่อกับเซ็กเมนต์ SMBus
อุปกรณ์สามารถให้ข้อมูลผู้ผลิต ระบุรุ่น/หมายเลขชิ้นส่วน บันทึกสถานะสำหรับเหตุการณ์ระงับ รายงานข้อผิดพลาดประเภทต่างๆ รับพารามิเตอร์ควบคุม ส่งคืนสถานะผ่าน SMBus และสำรวจรีจิสเตอร์ชิปเซ็ต โดยทั่วไปแล้ว SMBus ไม่สามารถกำหนดค่าหรือเข้าถึงได้โดยผู้ใช้[ 1 ]แม้ว่าอุปกรณ์ SMBus มักจะไม่สามารถระบุฟังก์ชันการทำงานได้ แต่ กลุ่มพันธมิตร PMBus ใหม่ ได้ขยาย SMBus เพื่อรวมข้อกำหนดที่อนุญาตให้ทำเช่นนั้นได้
SMBus ได้รับการกำหนดโดยIntelและDuracellในปี 1994 [ 2 ]มันส่งสัญญาณนาฬิกา ข้อมูล และคำสั่ง และอิงตามโปรโตคอลบัสอนุกรมI²CของPhilips [ 1 ]ช่วงความถี่สัญญาณนาฬิกาคือ 10 kHz ถึง 100 kHz (PMBus ขยายไปถึง 400 kHz) ระดับแรงดันไฟฟ้าและเวลาของมันถูกกำหนดไว้อย่างเข้มงวดกว่าของ I²C แต่โดยทั่วไปแล้วอุปกรณ์ที่อยู่ในทั้งสองระบบมักจะถูกใช้งานร่วมกันบนบัสเดียวกันได้สำเร็จ
SMBus ถูกใช้เป็นตัวเชื่อมต่อในมาตรฐานการจัดการแพลตฟอร์มหลายอย่าง รวมถึง: Alert Standard Format (ASF), Desktop and mobile Architecture for System Hardware (DASH), Intelligent Platform Management Interface (IPMI)
SMBus ใช้สำหรับเข้าถึงข้อมูลการกำหนดค่า DRAM ซึ่งเป็นส่วนหนึ่งของการตรวจจับการมีอยู่ของพอร์ตอนุกรม (SPD) SMBus ได้ถูกนำไปใช้ในงานด้านการตรวจสอบระบบที่หลากหลาย นอกเหนือจากการจัดการพลังงานแล้ว
การทำงานร่วมกันระหว่าง SMBus/I²C
แม้ว่า SMBus จะพัฒนามาจาก I²C แต่ก็มีความแตกต่างที่สำคัญหลายประการระหว่างข้อกำหนดของบัสทั้งสองในด้านไฟฟ้า เวลา โปรโตคอล และโหมดการทำงาน[ 3 ] [ 4 ] [ 5 ] [ 6 ]
ไฟฟ้า
แรงดันไฟฟ้าขาเข้า ( V ILและV IH )
เมื่อผสมอุปกรณ์ ข้อกำหนด I²C กำหนดระดับอินพุตไว้ที่ 30% และ 70% ของแรงดันไฟเลี้ยงV DD [ 5 ] : 9 ซึ่งอาจเป็น 5 V, 3.3 V หรือค่าอื่นๆ แทนที่จะเชื่อมโยงระดับอินพุตของบัสกับV DDนั้น SMBus กำหนดให้ระดับอินพุตคงที่ SMBus 2.0 กำหนดV IL,max ไว้ที่ 0.8 V และV IH,min ไว้ที่ 2.1 V และรองรับV DDที่มีช่วงตั้งแต่ 3 ถึง 5 V ในขณะที่ SMBus 3.0 กำหนดระดับไว้ที่ 0.8 และ 1.35 V โดยมีV DDที่มีช่วงตั้งแต่ 1.8 ถึง 5 V [ 4 ]
กระแสจม ( I OL )
SMBus 2.0 กำหนดคลาส 'กำลังสูง' ซึ่งรวมถึงกระแสไฟซิงค์ 4 mA ที่ไม่สามารถขับเคลื่อนได้ด้วยชิป I²C เว้นแต่ตัวต้านทานพูลอัพจะมีขนาดที่เหมาะสมกับระดับบัส I²C
อุปกรณ์ NXP มีคุณลักษณะทางไฟฟ้าที่มีกำลังสูงกว่า SMBus 1.0 ความแตกต่างหลักอยู่ที่ความสามารถในการรับกระแส โดยมีV OL = 0.4 V
- พลังงานต่ำของ SMBus = 350 μA
- กำลังไฟสูงของ SMBus = 4 mA
- บัส I²C = 3 มิลลิแอมป์
อุปกรณ์ SMBus 'กำลังสูง' และอุปกรณ์ I²C-bus จะทำงานร่วมกันได้หากตัวต้านทานแบบดึงขึ้น (pull-up resistor) มีขนาดรองรับกระแส 3 mA
ความถี่ ( F MAXและF MIN )
ความถี่สัญญาณนาฬิกาของ SMBus กำหนดไว้ตั้งแต่ 10 ถึง 100 kHz ในขณะที่ I²C สามารถมีความถี่ได้ตั้งแต่ 0–100 kHz, 0–400 kHz, 0–1 MHz และ 0–3.4 MHz ขึ้นอยู่กับโหมดการทำงาน นั่นหมายความว่าบัส I²C ที่ทำงานที่ความถี่ต่ำกว่า 10 kHz จะไม่เป็นไปตามมาตรฐาน SMBus เนื่องจากอุปกรณ์ SMBus อาจหมดเวลาการทำงาน อย่างไรก็ตาม อุปกรณ์ SMBus หลายตัวจะรองรับความถี่ที่ต่ำกว่านั้นได้
SMBus 3.0 เพิ่มความเร็วบัส 400 kHz และ 1 MHz
จังหวะเวลา
- SMBus กำหนดค่าหมดเวลาเมื่อสัญญาณนาฬิกาเป็นระดับต่ำ (TIMEOUT) ไว้ที่ 35 มิลลิวินาที ส่วน I²C ไม่ได้ระบุค่าหมดเวลาใดๆ
- SMBus ระบุ T LOW:SEXTเป็นเวลาขยายสัญญาณนาฬิกาต่ำสะสมสำหรับอุปกรณ์สเลฟ ส่วน I²C ไม่มีข้อกำหนดที่คล้ายกันนี้
- SMBus ระบุ T LOW:MEXTเป็นเวลาขยายสัญญาณนาฬิกาต่ำสะสมสำหรับอุปกรณ์หลัก ในขณะที่ I²C ไม่มีข้อกำหนดที่คล้ายกันนี้
- SMBus กำหนดทั้งเวลาเพิ่มขึ้นและเวลาลดลงของสัญญาณบัส ในขณะที่ I²C ไม่ได้กำหนดเช่นนั้น
- ข้อกำหนดเรื่องเวลาหมดอายุของ SMBus ไม่ได้ห้ามไม่ให้อุปกรณ์ I²C ทำงานร่วมกันได้อย่างน่าเชื่อถือบน SMBus เป็นความรับผิดชอบของผู้ออกแบบที่จะต้องตรวจสอบให้แน่ใจว่าอุปกรณ์ I²C จะไม่ละเมิดพารามิเตอร์เวลาของบัสเหล่านี้
โปรโตคอล
การใช้งาน ACK และ NACK
มีข้อแตกต่างในการใช้งานสัญญาณ NACK บนบัส ดังนี้: ใน I²C ตัวรับสัญญาณแบบ Slave สามารถไม่ยืนยันการรับที่อยู่ของ Slave ได้ เช่น ในกรณีที่ไม่สามารถรับข้อมูลได้เนื่องจากกำลังดำเนินการประมวลผลแบบเรียลไทม์อยู่ ในขณะที่ SMBus กำหนดให้อุปกรณ์ต้องยืนยันการรับที่อยู่ของตนเองเสมอ เพื่อเป็นกลไกในการตรวจจับการมีอยู่ของอุปกรณ์ที่ถอดได้บนบัส (เช่น แบตเตอรี่ แท่นวาง ฯลฯ)
มาตรฐาน I²C กำหนดว่า อุปกรณ์สเลฟ แม้ว่าจะรับทราบที่อยู่ของตนเองแล้ว ก็อาจตัดสินใจในภายหลังว่าไม่สามารถรับข้อมูลเพิ่มเติมได้อีก มาตรฐาน I²C กำหนดว่า อุปกรณ์อาจแสดงสัญญาณนี้โดยการสร้างข้อความ "ไม่รับทราบ" ในไบต์แรกที่ตามมา
นอกเหนือจากการใช้เพื่อบ่งชี้สถานะอุปกรณ์ไม่ว่างของอุปกรณ์ลูกข่ายแล้ว SMBus ยังใช้กลไก NACK เพื่อบ่งชี้การรับคำสั่งหรือข้อมูลที่ไม่ถูกต้อง เนื่องจากสภาวะดังกล่าวอาจเกิดขึ้นในไบต์สุดท้ายของการถ่ายโอน จึงจำเป็นที่อุปกรณ์ SMBus ต้องสามารถสร้างสัญญาณไม่รับทราบ (NACK) หลังจากถ่ายโอนแต่ละไบต์และก่อนที่การทำธุรกรรมจะเสร็จสมบูรณ์ นี่เป็นสิ่งสำคัญเพราะ SMBus ไม่ได้ให้สัญญาณการส่งซ้ำอื่นใด ความแตกต่างในการใช้สัญญาณ NACK นี้มีผลกระทบต่อการใช้งานพอร์ต SMBus โดยเฉพาะในอุปกรณ์ที่จัดการข้อมูลระบบที่สำคัญ เช่น โฮสต์ SMBus และส่วนประกอบ SBS
โปรโตคอล SMBus
การส่งข้อความแต่ละครั้งบน SMBus จะใช้รูปแบบของโปรโตคอล SMBus ที่กำหนดไว้ โปรโตคอล SMBus เป็นส่วนย่อยของรูปแบบการถ่ายโอนข้อมูลที่กำหนดไว้ในข้อกำหนด I²C อุปกรณ์ I²C ที่สามารถเข้าถึงได้ผ่านโปรโตคอล SMBus ใดโปรโตคอลหนึ่งจะเข้ากันได้กับข้อกำหนด SMBus อุปกรณ์ I²C ที่ไม่เป็นไปตามโปรโตคอลเหล่านี้จะไม่สามารถเข้าถึงได้ด้วยวิธีการมาตรฐานตามที่กำหนดไว้ในข้อกำหนด SMBus และAdvanced Configuration and Power Interface (ACPI)
โปรโตคอลการแก้ไขที่อยู่
SMBus ใช้ฮาร์ดแวร์ I²C และการกำหนดแอดเดรสด้วยฮาร์ดแวร์ I²C แต่เพิ่มซอฟต์แวร์ระดับที่สองสำหรับการสร้างระบบพิเศษ โดยเฉพาะอย่างยิ่ง ข้อกำหนดของมันรวมถึงโปรโตคอลการแก้ไขแอดเดรสที่สามารถจัดสรรแอดเดรสแบบไดนามิกได้ การกำหนดค่าใหม่แบบไดนามิกของฮาร์ดแวร์และซอฟต์แวร์ช่วยให้สามารถเสียบอุปกรณ์บัสได้ทันทีโดยไม่ต้องรีสตาร์ทระบบ อุปกรณ์จะได้รับการจดจำโดยอัตโนมัติและกำหนดแอดเดรสที่ไม่ซ้ำกัน ข้อดีนี้ส่งผลให้มีอินเทอร์เฟซผู้ใช้แบบเสียบแล้วใช้งานได้ทันที ในทั้งสองโปรโตคอลนั้นมีการแบ่งแยกที่มีประโยชน์มากระหว่างโฮสต์ระบบและอุปกรณ์อื่นๆ ทั้งหมดในระบบซึ่งสามารถมีชื่อและฟังก์ชันเป็นมาสเตอร์หรือสเลฟได้
ในบริบทของ สล็อต PCI Express บนเมนบอร์ด ข้อกำหนดทางไฟฟ้าเชิงกลของ PCIe คาดหวังว่าจะมี ARP สำหรับพิน SMBus อย่างไรก็ตาม เนื่องจาก ARP ถูกทำเครื่องหมายว่า "เป็นตัวเลือก" ในข้อกำหนด SMBus จึงมักจะไม่ได้นำมาใช้งาน[ 7 ]
คุณสมบัติหมดเวลา
SMBus มีคุณสมบัติการหมดเวลาซึ่งจะรีเซ็ตอุปกรณ์หากการสื่อสารใช้เวลานานเกินไป นี่คือเหตุผลที่ความถี่สัญญาณนาฬิกาขั้นต่ำอยู่ที่ 10 kHz เพื่อป้องกันไม่ให้บัสหยุดทำงาน I²C สามารถเป็นบัสแบบ 'DC' ได้ หมายความว่าอุปกรณ์สเลฟจะยืดสัญญาณนาฬิกาของมาสเตอร์เมื่อทำการทำงานบางอย่างในขณะที่มาสเตอร์กำลังเข้าถึงอยู่ การทำเช่นนี้จะแจ้งให้มาสเตอร์ทราบว่าอุปกรณ์สเลฟกำลังทำงานอยู่แต่ไม่ต้องการตัดการสื่อสาร อุปกรณ์สเลฟจะอนุญาตให้ดำเนินการต่อหลังจากงานเสร็จสิ้นแล้ว ไม่มีข้อจำกัดในโปรโตคอลบัส I²C ว่าความล่าช้านี้จะนานแค่ไหน ในขณะที่ระบบ SMBus จะจำกัดไว้ที่ 35 มิลลิวินาที โปรโตคอล SMBus สันนิษฐานว่าหากบางสิ่งใช้เวลานานเกินไป แสดงว่ามีปัญหาบนบัสและอุปกรณ์ทั้งหมดต้องรีเซ็ตเพื่อล้างโหมดนี้ อุปกรณ์สเลฟจึงไม่ได้รับอนุญาตให้คงสัญญาณนาฬิกาไว้ที่ระดับต่ำนานเกินไป
การตรวจสอบข้อผิดพลาดของแพ็กเก็ต
SMBus 1.1 และเวอร์ชันที่ใหม่กว่ากำหนดการตรวจสอบข้อผิดพลาดของแพ็กเก็ต ( PEC ) ไว้เป็นตัวเลือก ในโหมดนี้ ไบต์ PEC (รหัสข้อผิดพลาดของแพ็กเก็ต) จะถูกเพิ่มต่อท้ายธุรกรรมแต่ละรายการ ไบต์นี้คำนวณจากผลรวมตรวจสอบCRC-8 ซึ่งคำนวณจากข้อความทั้งหมด รวมถึงที่อยู่และบิตการอ่าน/เขียน พหุนามที่ใช้คือ x 8 +x 2 +x+1 (อัลกอริทึม CRC-8- ATM HECซึ่งเริ่มต้นที่ศูนย์) [ 8 ] [ 9 ] [ 10 ]
SMBALERT#
SMBus มีสัญญาณ ขัดจังหวะร่วมเสริมที่เรียกว่า SMBALERT# ซึ่งอุปกรณ์ลูกข่ายสามารถใช้เพื่อบอกให้อุปกรณ์โฮสต์สอบถามอุปกรณ์ลูกข่ายอื่นๆ เกี่ยวกับเหตุการณ์ที่น่าสนใจได้ นอกจากนี้ SMBus ยังกำหนด "โปรโตคอลแจ้งเตือนโฮสต์" ที่พบได้ไม่บ่อยนัก ซึ่งให้การแจ้งเตือนที่คล้ายกัน แต่ส่งข้อมูลมากกว่าและสร้างขึ้นบนโหมดมัลติมาสเตอร์ของ I²C
สนับสนุน
อุปกรณ์ SMBus รองรับโดย ระบบปฏิบัติการ FreeBSD , OpenBSD , NetBSD , DragonFly BSD , Linux , Windows 98และเวอร์ชันที่ใหม่กว่า รวมถึงWindows CE
ทดแทน
DDR5นำเสนอI3Cสำหรับการสื่อสารตรวจจับการมีอยู่ แทนที่ SMBus [ 11 ]
อุปกรณ์ PCI Expressมักใช้ SMBus เป็น "พอร์ตการจัดการนอกแบนด์" อย่างไรก็ตาม ผู้ผลิตอุปกรณ์มักใช้มัลติเพล็กเซอร์ SMBus (Mux) เพื่อจัดการการชนกันของที่อยู่ (ซึ่งเกิดจากการที่พวกเขาไม่ได้ใช้งานโปรโตคอลการแก้ไขที่อยู่) ทำให้เกิดการขัดจังหวะลิงก์ที่ทำให้โปรโตคอลการขนส่งส่วนประกอบการจัดการและโปรโตคอลอื่นๆ เสียหายเมื่อ Mux เปลี่ยนเป้าหมาย เพื่อแก้ปัญหานี้มาตรฐานฟอร์มแฟคเตอร์สำหรับองค์กรและศูนย์ข้อมูลเวอร์ชัน 3.1 ของ SNIA (มกราคม 2023) ได้อธิบายวิธีการใช้ I3C basic ผ่านอินเทอร์เฟซสองสายของ PCIe [ 7 ] NVM Express 2.1 (สิงหาคม 2024) ยังได้รับการแก้ไขข้อความเพื่อให้สามารถใช้ I3C ได้ "เพื่อให้ตรงกับข้อกำหนดใหม่ที่ใช้โดย EDSFF ของ SNIA SFF TA และข้อกำหนด PCI-SIG สำหรับ I3C" [ 12 ]
ดูเพิ่มเติม
- รายชื่อบัสเครือข่าย
- ตัวควบคุมแบบฝังตัว (EC)
- ซูเปอร์ไอ/โอ
- จำนวนขาต่ำ (LPC)
- อินเทอร์เฟซอุปกรณ์ต่อพ่วงแบบอนุกรม (SPI)
- อินเทอร์เฟซควบคุมสภาพแวดล้อมแพลตฟอร์ม (PECI)
- อินเทอร์เฟซตัวควบคุมฝังตัวโฮสต์ (HECI)
- บัสจัดการพลังงาน (PMBus)
- ตัวควบคุมการจัดการระบบ (SMC)
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- ข้อกำหนดอย่างเป็นทางการของ SMBus (ฟรี)
- ฟอรัม SBS
- SMBus ที่ tech-faq.com
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ บัสการจัดการระบบ
ระบบ บัสจัดการ ( SMBus หรือ SMB ) เป็น บัส แบบสองสายแบบ ปลายเดียวที่เรียบ ง่าย สำหรับการสื่อสารที่มีน้ำหนักเบา โดยทั่วไปแล้วจะพบในชิปเซ็ตของเมนบอร์ดคอมพิวเตอร์...
การทำงานร่วมกันระหว่าง SMBus/I²C
แม้ว่า SMBus จะพัฒนามาจาก I²C แต่ก็มีความแตกต่างที่สำคัญหลายประการระหว่างข้อกำหนดของบัสทั้งสองในด้านไฟฟ้า เวลา โปรโตคอล และโหมดการทำงาน [ 3 ] [ 4 ] [ 5 ] [ 6 ]
ไฟฟ้า
เมื่อผสมอุปกรณ์ ข้อกำหนด I²C กำหนดระดับอินพุตไว้ที่ 30% และ 70% ของแรงดันไฟเลี้ยง V DD [ 5 ] : 9 ซึ่งอาจเป็น 5 V, 3.3 V หรือค่าอื่นๆ แทนที่จะเชื่อมโยงระดับอินพุตของบัสกับ V DD นั้น SMBus กำหนดให้ระดับอินพุตคงที่ SMBus 2.0 กำหนด V IL,max ไว้ ที่ 0.
โปรโตคอล
มีข้อแตกต่างในการใช้งานสัญญาณ NACK บนบัส ดังนี้: ใน I²C ตัวรับสัญญาณแบบ Slave สามารถไม่ยืนยันการรับที่อยู่ของ Slave ได้ เช่น ในกรณีที่ไม่สามารถรับข้อมูลได้เนื่องจากกำลังดำเนินการประมวลผลแบบเรียลไทม์อยู่ ในขณะที่ SMBus...