System Management Bus, SMBUS là gì

Bus  quản lý hệ thống  ( SMBus  hoặc  SMB ) là bus hai dây đơn giản một đầu dùng cho mục đích giao tiếp nhẹ. Thường thấy nhất là trong chipset của bo mạch chủ máy tính để giao tiếp với nguồn điện cho lệnh BẬT/TẮT. Chức năng chính xác và giao diện phần cứng khác nhau tùy theo nhà cung cấp.

Nó bắt nguồn từ I²C để giao tiếp với các thiết bị băng thông thấp trên bo mạch chủ, đặc biệt là các chip liên quan đến nguồn điện như hệ thống pin sạc của máy tính xách tay (xem Hệ thống pin thông minh và ACPI). Các thiết bị khác có thể bao gồm máy chủ chính bên ngoài, cảm biến nhiệt độ, cảm biến quạt hoặc điện áp, công tắc nắp, bộ tạo xung nhịp và đèn RGB. Các thẻ bổ sung Kết nối thành phần ngoại vi (PCI) có thể kết nối với phân đoạn SMBus.

Một thiết bị có thể cung cấp thông tin nhà sản xuất, chỉ ra số model/bộ phận của nó, lưu trạng thái của nó cho sự kiện tạm dừng, báo cáo các loại lỗi khác nhau, chấp nhận các tham số điều khiển, trả về trạng thái qua SMBus và thăm dò các thanh ghi chipset. SMBus thường không thể cấu hình hoặc truy cập được bởi người dùng. Mặc dù các thiết bị SMBus thường không thể xác định chức năng của chúng, một liên minh PMBus mới đã mở rộng SMBus để bao gồm các quy ước cho phép điều đó.

SMBus được Intel và Duracell định nghĩa vào năm 1994. Nó mang theo xung nhịp, dữ liệu và hướng dẫn và dựa trên giao thức bus nối tiếp I²C của Philips. Dải tần số xung nhịp của nó là 10 kHz đến 100 kHz. (PMBus mở rộng đến 400 kHz.) Mức điện áp và thời gian của nó được định nghĩa chặt chẽ hơn so với I²C, nhưng các thiết bị thuộc về hai hệ thống này thường được trộn thành công trên cùng một bus. 

SMBus được sử dụng làm kết nối trong một số tiêu chuẩn quản lý nền tảng bao gồm: Định dạng chuẩn cảnh báo (ASF), Kiến trúc máy tính để bàn và thiết bị di động cho phần cứng hệ thống (DASH), Giao diện quản lý nền tảng thông minh (IPMI).

SMBus được sử dụng để truy cập thông tin cấu hình DRAM như một phần của phát hiện sự hiện diện nối tiếp (SPD). SMBus đã phát triển thành nhiều trường hợp sử dụng liệt kê hệ thống khác ngoài quản lý nguồn điện.

Khả năng tương tác SMBus/I²C

Mặc dù SMBus có nguồn gốc từ I²C nhưng có một số khác biệt chính giữa thông số kỹ thuật của hai bus này về mặt điện, thời gian, giao thức và chế độ hoạt động.

Điện

Điện áp đầu vào ( IL  và  IH )

Khi trộn các thiết bị, thông số kỹ thuật I²C xác định mức đầu vào là 30% và 70% điện áp cung cấp  DD , có thể là 5 V, 3,3 V hoặc một số giá trị khác. Thay vì liên hệ mức đầu vào bus với  DD , SMBus xác định chúng được cố định ở 0,8 và 2,1 V. SMBus 2.0 hỗ trợ  DD  trong phạm vi từ 3 đến 5 V. SMBus 3.0 hỗ trợ  DD  trong phạm vi từ 1,8 đến 5 V và  IH  = 1,35 V.

Dòng điện chìm ( IOL )

SMBus 2.0 định nghĩa lớp ‘Công suất cao’ bao gồm dòng điện chìm 4 mA không thể được điều khiển bởi chip I²C trừ khi điện trở kéo lên được định cỡ theo mức bus I²C.

Thiết bị NXP có bộ đặc tính điện công suất cao hơn SMBus 1.0. Sự khác biệt chính là khả năng tản dòng điện với  OL  = 0,4 V.

  • SMBus công suất thấp = 350 μA
  • Công suất cao của SMBus = 4 mA
  • Bus I²C = 3 mA

Các thiết bị ‘công suất cao’ SMBus và các thiết bị I²C-bus sẽ hoạt động cùng nhau nếu điện trở kéo lên có kích thước là 3 mA.

Tần số ( MAX  và  MIN )

Đồng hồ SMBus được xác định từ 10 đến 100 kHz trong khi I²C có thể là 0–100 kHz, 0–400 kHz, 0–1 MHz và 0–3,4 MHz, tùy thuộc vào chế độ. Điều này có nghĩa là bus I²C chạy ở tần số dưới 10 kHz sẽ không tuân thủ SMBus vì các thiết bị SMBus có thể hết thời gian chờ. Tuy nhiên, nhiều thiết bị SMBus sẽ hỗ trợ tần số thấp hơn.

SMBus 3.0 bổ sung tốc độ bus 400 kHz và 1 MHz.

Thời gian

  • SMBus định nghĩa thời gian chờ xung nhịp thấp, TIMEOUT là 35 ms. I²C không chỉ định bất kỳ giới hạn thời gian chờ nào.
  • SMBus chỉ định T LOW:SEXT  là thời gian mở rộng xung nhịp thấp tích lũy cho thiết bị phụ. I²C không có thông số kỹ thuật tương tự.
  • SMBus chỉ định T LOW:MEXT  là thời gian mở rộng xung nhịp thấp tích lũy cho thiết bị chính. Một lần nữa, I²C không có thông số kỹ thuật tương tự.
  • SMBus xác định cả thời gian tăng và giảm của tín hiệu bus. I²C thì không.
  • Thông số kỹ thuật thời gian chờ SMBus không ngăn cản các thiết bị I²C hợp tác đáng tin cậy trên SMBus. Nhà thiết kế có trách nhiệm đảm bảo rằng các thiết bị I²C sẽ không vi phạm các thông số thời gian bus này.

Giao thức

Sử dụng ACK và NACK

Có những điểm khác biệt sau đây trong việc sử dụng tín hiệu bus NACK: Trong I²C, bộ thu slave được phép không xác nhận địa chỉ slave, ví dụ nếu nó không thể nhận vì đang thực hiện một số tác vụ thời gian thực. SMBus yêu cầu các thiết bị phải luôn xác nhận địa chỉ của chính chúng, như một cơ chế để phát hiện sự hiện diện của thiết bị có thể tháo rời trên bus (pin, đế cắm, v.v.)

I²C chỉ rõ rằng một thiết bị phụ, mặc dù có thể xác nhận địa chỉ của chính nó, có thể quyết định, sau một thời gian trong quá trình truyền, rằng nó không thể nhận thêm bất kỳ byte dữ liệu nào nữa. I²C chỉ rõ rằng thiết bị có thể chỉ ra điều này bằng cách tạo ra not acknowledge trên byte đầu tiên theo sau.

Ngoài việc chỉ ra tình trạng thiết bị bận của slave, SMBus còn sử dụng cơ chế NACK để chỉ ra việc tiếp nhận lệnh hoặc dữ liệu không hợp lệ. Vì tình trạng như vậy có thể xảy ra ở byte cuối cùng của quá trình truyền, nên các thiết bị SMBus phải có khả năng tạo ra thông báo không xác nhận sau khi truyền từng byte và trước khi hoàn tất giao dịch. Điều này rất quan trọng vì SMBus không cung cấp bất kỳ tín hiệu gửi lại nào khác. Sự khác biệt trong việc sử dụng tín hiệu NACK này có ý nghĩa đối với việc triển khai cụ thể của cổng SMBus, đặc biệt là trong các thiết bị xử lý dữ liệu hệ thống quan trọng như máy chủ SMBus và các thành phần SBS.

Giao thức SMBus

Mỗi giao dịch tin nhắn trên SMBus tuân theo định dạng của một trong các giao thức SMBus đã xác định. Các giao thức SMBus là một tập hợp con của các định dạng truyền dữ liệu được xác định trong các thông số kỹ thuật I²C. Các thiết bị I²C có thể được truy cập thông qua một trong các giao thức SMBus tương thích với các thông số kỹ thuật SMBus. Các thiết bị I²C không tuân thủ các giao thức này không thể được truy cập bằng các phương pháp tiêu chuẩn như được xác định trong các thông số kỹ thuật SMBus và Advanced Configuration and Power Interface (ACPI).

Giao thức giải quyết địa chỉ

SMBus sử dụng phần cứng I²C và địa chỉ phần cứng I²C, nhưng bổ sung phần mềm cấp hai để xây dựng các hệ thống đặc biệt. Đặc biệt, thông số kỹ thuật của nó bao gồm Giao thức giải quyết địa chỉ có thể thực hiện phân bổ địa chỉ động. Cấu hình lại động phần cứng và phần mềm cho phép các thiết bị bus được ‘cắm nóng’ và sử dụng ngay lập tức mà không cần khởi động lại hệ thống. Các thiết bị được tự động nhận dạng và được gán địa chỉ duy nhất. Ưu điểm này tạo ra giao diện người dùng cắm và chạy. Trong cả hai giao thức đó, có một sự phân biệt rất hữu ích giữa Máy chủ hệ thống và tất cả các thiết bị khác trong hệ thống có thể có tên và chức năng của máy chủ hoặc máy tớ.

Tính năng tạm dừng

SMBus có tính năng time-out giúp thiết lập lại thiết bị nếu quá trình giao tiếp mất quá nhiều thời gian. Điều này giải thích tần số xung nhịp tối thiểu là 10 kHz để tránh khóa bus. I²C có thể là bus ‘DC’, nghĩa là thiết bị phụ kéo dài xung nhịp chính khi thực hiện một số thói quen trong khi thiết bị chính đang truy cập vào nó. Điều này sẽ thông báo cho thiết bị chính rằng thiết bị phụ đang bận nhưng không muốn mất liên lạc. Thiết bị phụ sẽ cho phép tiếp tục sau khi nhiệm vụ của nó hoàn tất. Không có giới hạn nào trong giao thức bus I²C về thời gian trễ này, trong khi đối với hệ thống SMBus, nó sẽ bị giới hạn ở mức 35 ms. Giao thức SMBus chỉ cho rằng nếu một việc gì đó mất quá nhiều thời gian, thì điều đó có nghĩa là có sự cố trên bus và tất cả các thiết bị phải đặt lại để xóa chế độ này. Khi đó, các thiết bị phụ không được phép giữ xung nhịp THẤP quá lâu.

Kiểm tra lỗi gói tin

SMBus 1.1 và các phiên bản sau đó định nghĩa  Kiểm tra lỗi gói  ( PEC ) tùy chọn. Trong chế độ đó, một byte PEC (mã lỗi gói) được thêm vào cuối mỗi giao dịch. Byte được tính là tổng kiểm tra CRC-8, được tính trên toàn bộ tin nhắn bao gồm địa chỉ và bit đọc/ghi. Đa thức được sử dụng là x 8 +x 2 +x+1 (thuật toán CRC-8-ATM HEC, được khởi tạo bằng không).

NHÂN VIÊN NHỎ

SMBus có một tín hiệu ngắt chia sẻ tùy chọn bổ sung được gọi là SMBALERT#, có thể được các slave sử dụng để yêu cầu host hỏi các slave của nó về các sự kiện quan tâm. SMBus cũng định nghĩa một “Host Notify Protocol” ít phổ biến hơn, cung cấp các thông báo tương tự nhưng truyền nhiều dữ liệu hơn và xây dựng trên chế độ đa master I²C.

Leave a Reply