SMBus: Làm việc, Sự khác biệt & Ứng dụng của nó

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





SMBus được Intel tung ra vào năm 1995 và nó dựa trên giao thức bus nối tiếp I²C của Philips. Bus này mang dữ liệu, CLK & hướng dẫn trong đó tần số đồng hồ nằm trong khoảng từ 10 kHz đến 100 kHz. Mục đích chính của SMBus là cho phép một phương pháp rẻ tiền và mạnh mẽ để kiểm soát và lấy dữ liệu từ các thiết bị trên bo mạch chủ. SMBus thường được sử dụng trong PC để kiểm soát nhiệt độ, pin thông minh và giao tiếp quản lý hệ thống băng thông thấp khác.


Bus này xác định liên kết giao tiếp giữa bộ sạc, pin thông minh và bộ vi điều khiển để giao tiếp với phần còn lại của hệ thống. Tuy nhiên, SMBus cũng được sử dụng để kết nối các thiết bị khác nhau như cảm biến hệ thống, thiết bị liên quan đến nguồn điện, thiết bị truyền thông, EEPROMs tồn kho, v.v. Bài viết này thảo luận tổng quan về SMBus - làm việc với các ứng dụng.



Giao thức SMBus là gì?

SMBus (Bus quản lý hệ thống) là giao diện 2 dây, thường được sử dụng giữa các thiết bị khác nhau trên bo mạch chủ để giao tiếp quản lý hệ thống tốc độ thấp. Loại xe buýt này được thiết kế bởi Giao thức I2C nền móng. Vì vậy, cả I2C và SMBus có thể có một số điểm tương đồng và chúng cũng có thể hoạt động lẫn nhau trên cùng một xe buýt.

Bus này hoạt động dựa trên các nguyên tắc hoạt động của I2C cung cấp một bus điều khiển, đặc biệt là cho hệ thống để cho phép các thông báo đến hoặc đi từ các thiết bị thay vì sử dụng các đường điều khiển riêng biệt để giảm số lượng chân và dây hệ thống.



Một thiết bị có SMBus có thể cung cấp thông tin sản xuất, thông báo cho hệ thống về số bộ phận hoặc kiểu của nó, báo cáo các loại lỗi khác nhau, cho phép các thông số điều khiển và xem lại vị trí của nó.

Đặc điểm kỹ thuật SMBus

Đặc điểm kỹ thuật của SMBus chỉ đơn giản là đề cập đến 3 loại thiết bị chủ, chủ và phụ.

  • Máy chủ lưu trữ là một máy chủ cụ thể và nó cung cấp giao diện chính cho CPU của hệ thống.
  • Một thiết bị chính đưa ra hướng dẫn, tạo đồng hồ và kết thúc quá trình chuyển giao.
  • Một thiết bị tớ nhận được phản ứng khác với một lệnh.

SMBus hoạt động như thế nào?

Có 3 loại thiết bị được sử dụng trong giao tiếp SMBus như máy chủ, thiết bị chính và thiết bị phụ được thể hiện trong sơ đồ sau. Trong bus này, thiết bị chủ là một giao diện giống công việc chính cụ thể đối với CPU của hệ thống; tuy nhiên, nó không phải lúc nào cũng cần thiết. Một số hệ thống như hệ thống sạc pin đơn giản có thể không có máy chủ.

Một thiết bị chính bắt đầu giao tiếp, điều khiển CLK và dừng truyền. Một thiết bị có thể được chọn đơn giản là một thiết bị chính hoặc một thiết bị chủ, nơi nó có thể hoạt động như một thiết bị chính hoặc một thiết bị phụ.

  Sơ đồ SMBus
Sơ đồ SMBus

Trên SMBus, cũng có một master ở trên, tuy nhiên chỉ một master có thể master bus tại bất kỳ thời điểm nào. Ví dụ: khi hai thiết bị làm chủ bus cùng một lúc, thì SMBus cung cấp một cơ chế phân xử phụ thuộc đơn giản vào kết nối có dây AND của tất cả các giao diện của thiết bị SMBus với SMBus.

Các thiết bị nô lệ phản hồi địa chỉ của nó cũng như các lệnh và chúng có thể truyền và nhận dữ liệu từ và đến một thiết bị chính. Một thiết bị hoàn toàn có thể được chọn làm thiết bị phụ, nếu không thiết bị đó có thể làm việc như một thiết bị chủ trong một số ví dụ nhất định.

Tương tự như giao thức I2C, mọi slave trên bus này chỉ đơn giản được cấp phát một địa chỉ slave bảy bit, nơi bit đọc hoặc ghi được nối vào địa chỉ này để mô tả thiết bị đang đọc hay ghi thông điệp đang được truyền trên bus.

Các thiết bị cần phải nhận ra địa chỉ của chính chúng, do đó khi một thiết bị xác định được địa chỉ của nó, thì nó sẽ phản ứng với lệnh.

Khi địa chỉ phụ của bus này xung đột, thì nó hỗ trợ ARP hoặc Giao thức phân giải địa chỉ. Khi máy chủ nhận thấy hai thiết bị có địa chỉ tớ giống nhau, thì thủ tục giao thức phân giải địa chỉ sẽ tự động gán một địa chỉ duy nhất mới cho tớ. Giao thức phân giải địa chỉ sẽ cho phép các thiết bị được sử dụng ngay lập tức mà không cần phải khởi động lại hệ thống.

Bus này sử dụng 2 dây để giao tiếp như dây SMBDAT & dây SMBCLK trong đó dây SMBDAT được sử dụng để truyền dữ liệu nối tiếp & dây SMBCLK hoạt động giống như đồng hồ nối tiếp. Trong SMBus ở trên, tổng thể chỉ cần lái SMBCLK nằm trong khoảng từ 10 đến 100 kHz, tuy nhiên, bất kỳ dòng nào cũng có thể điều khiển SMBDAT.

Hai dây này là hai chiều cung cấp một tùy chọn để bao gồm một tín hiệu cảnh báo như SMBALERT cho phép các thiết bị yêu cầu sự chú ý từ máy chủ.

Gói dữ liệu của bus này chứa một bit Start, một ACK hoặc bit NACK, 8 bit dữ liệu và một bit Stop. Việc truyền dữ liệu của SMBus sử dụng một số chức năng khác với các giao thức của các SMBus khác nhau trong khi gửi tin nhắn như Gửi Byte, Lệnh nhanh, Đọc Word, Viết Byte, Đọc Byte, Viết Word, Xử lý Cuộc gọi, Chặn Ghi, Chặn Đọc, Đọc Quy trình Cuộc gọi & Block Write-Block.

Bus này cũng hỗ trợ PEC (kiểm tra lỗi gói tin) để cải thiện độ tin cậy của giao tiếp. Vì vậy, điều này có thể được thực hiện bằng cách bao gồm một mã lỗi gói ở cuối mỗi tin nhắn.

Chức năng

Chức năng SMBus cũng được gọi là giao thức. Vì vậy, các giao thức chính của SMBus là Quick Command, Send Byte, Nhận Byte, Viết Byte, Read Byte, Process Call, Block Write / Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, Write-32 Protocol, Read-32 Giao thức, Ghi 64-Giao thức & Đọc Giao thức 64.

Định dạng tin nhắn SMBUS

Sau điều kiện BẮT ĐẦU, thiết bị chính sẽ định vị địa chỉ 7-bit của thiết bị phụ và nó cần phải định địa chỉ trên xe buýt. Vì vậy, độ dài của địa chỉ dài 7 bit theo sau là 8 bit biểu thị hướng truyền dữ liệu (R / W); một ONE chỉ định yêu cầu ĐỌC (dữ liệu) và một ZERO chỉ định một WRITE (truyền).

  Định dạng tin nhắn
Định dạng tin nhắn

Việc truyền dữ liệu luôn được kết thúc bởi một điều kiện STOP được tạo ra thông qua cái chính.

Mỗi byte bao gồm 8 bit và mỗi byte được chuyển trên SMBus và phải được theo sau thông qua một bit xác nhận. Các byte được truyền qua MSB (bit quan trọng nhất) trước tiên.

Một thiết bị SMBus điển hình bao gồm một tập hợp các lệnh mà qua đó dữ liệu có thể được đọc và ghi một cách đơn giản. Độ dài của tất cả các lệnh này là 1 byte trong khi các đối số của chúng, cũng như các giá trị trả về, có thể thay đổi trong độ dài.

Cho phép một lệnh không tồn tại nếu không nó không được hỗ trợ, vì vậy nó có thể gây ra tình trạng lỗi. Tuân theo đặc điểm kỹ thuật của SMBus, MSB được chuyển lần đầu tiên.

Đầu tiên, tất cả các lệnh đặt điều kiện bắt đầu qua bus, sau đó bắt đầu truyền thông qua việc truyền dữ liệu hoặc lệnh, đợi sự chấp nhận từ thiết bị phụ trong suốt quá trình truyền dữ liệu hoặc lệnh, sau đó đặt điều kiện dừng trên bus.

Điều kiện bắt đầu và dừng cho giao thức SMBus

Điều kiện START & STOP của một thông báo sẽ được xác định bởi hai điều kiện bus duy nhất cao đến thấp và thấp đến cao.

  Điều kiện bắt đầu và dừng
Điều kiện bắt đầu và dừng

Trong quá trình chuyển đổi dòng SMBDAT CAO đến THẤP, khi SMBCLK CAO thì nó chỉ ra điều kiện BẮT ĐẦU của một thông báo.

Trong quá trình chuyển đổi dòng SMBDAT THẤP đến CAO, khi SMBCLK CAO thì nó xác định điều kiện DỪNG của một thông báo. Vì vậy, hai điều kiện này luôn được tạo ra bởi master của bus. Xe buýt sẽ bận sau điều kiện KHỞI ĐỘNG. Xe buýt sẽ trở lại trạng thái không hoạt động sau một thời gian nhất định theo điều kiện DỪNG.

Yêu cầu phần cứng SMBus

Yêu cầu phần cứng của SMBus để cho phép giao tiếp hiệu quả, cũng như liền mạch giữa PC và một số phần cứng thiết yếu nhất của nó, là hai dây như SMBDAT & SMBCLK, PSU (Bộ nguồn), bộ IC, trình điều khiển và quạt làm mát của nó . Về cơ bản, Bộ điều khiển SMBus này cho phép máy tính xử lý và thực hiện các lệnh thành công như BẬT PSU và điều khiển quạt làm mát của nó.

Truyền dữ liệu SMBus sử dụng các giao thức hoặc chức năng khác nhau trong khi chuyển các tin nhắn như Gửi Byte, Lệnh Nhanh, Viết Byte, Đọc Byte, Viết Word, Đọc Word, Chặn Đọc, Xử lý Cuộc gọi, Chặn Ghi, v.v. Nó cũng hỗ trợ PEC hoặc kiểm tra lỗi gói cho nâng cao độ tin cậy của thông tin liên lạc bằng cách chỉ cần bao gồm một mã lỗi gói ở mỗi đầu thư.

Phần cứng SMBus chỉ cung cấp điều khiển thời gian & dịch chuyển được sử dụng cho quá trình truyền nối tiếp. Vì vậy, phần cứng của SMBus thực hiện các tác vụ ứng dụng độc lập khác nhau như điều khiển thời gian, truyền dữ liệu nối tiếp và nhận dạng địa chỉ phụ.

SMBus Vs I2C

Các sự khác biệt giữa SMBus và I2C bao gồm những điều sau đây.

SMBus

2C

Thuật ngữ SMBus là viết tắt của 'System Management Bus'. Thuật ngữ I2C là viết tắt của “Inter-Integrated Circuit”.
SMBus là một bus điều khiển 2 dây được sử dụng trong các nhiệm vụ quản lý hệ thống và năng lượng. I2C là một giao thức truyền thông trên bo mạch được sử dụng cho băng thông thấp và khoảng cách ngắn.
Một hệ thống có thể sử dụng xe buýt này để định tuyến tin nhắn từ & đến các thiết bị thay vì kích hoạt các đường điều khiển riêng lẻ.

I2C thường được sử dụng để kết nối các thiết bị ngoại vi dựa trên tốc độ thấp như vi điều khiển và cảm biến với bộ xử lý ở khoảng cách ngắn trong IC.
Tốc độ CLK tối đa là 100 kHz. Tốc độ CLK tối đa là 400 kHz.
Tốc độ CLK tối thiểu là 10 kHz. Không có tốc độ CLK tối thiểu.
Thời gian chờ CLK thấp 35ms. Không có thời gian chờ.
Nó có các mức logic cố định. Các mức logic của nó phụ thuộc vào VDD.
Nó có nhiều loại địa chỉ khác nhau như dành riêng, động, v.v. Nó có các kiểu địa chỉ khác nhau như địa chỉ nô lệ cuộc gọi chung, 7-bit và 10-bit.
Nó có nhiều giao thức bus khác nhau như lệnh gọi quy trình, lệnh nhanh, v.v. Nó không có giao thức xe buýt.

SMBus Vs Pmbus

Sự khác biệt giữa SMBus và Pmbus bao gồm những điều sau đây.

SMBus

Pmbus

SMBus là một bus 2 dây, một đầu được sử dụng cho giao tiếp nhẹ. Phần mở rộng của SMBus là Pmbus và nó là một giao thức chi phí thấp chủ yếu được sử dụng để giao tiếp giữa các thiết bị quản lý năng lượng.
Chế độ phụ của bus này cho phép các giá trị tốc độ dữ liệu như 10kbps, 50 kbps, 100 kbps & 400 kbps. Chế độ nô lệ của bus này chỉ đơn giản là cho phép các giá trị tốc độ dữ liệu như 100 kbps & 400 kbps.
Loại bus này hoạt động với phần cứng I2C tuy nhiên nó bao gồm phần mềm cấp hai bằng cách cho phép các thiết bị được hoán đổi nóng mà không cần khởi động lại hệ thống. Bus này mở rộng SMBus bằng cách đơn giản xác định một tập hợp các lệnh của thiết bị và nó được thiết kế đặc biệt để xử lý các bộ chuyển đổi nguồn, hiển thị các thuộc tính của thiết bị như dòng điện đo được, điện áp, nhiệt độ, v.v.
SMBus là một tập hợp siêu của I2C PMBus là một tập hợp siêu nhỏ của SMBus
Xe buýt này bao gồm cả Lớp liên kết mạng và dữ liệu. Bus này bao gồm lớp Giao thông & một tập hợp các lệnh.

Sơ đồ thời gian

Các Sơ đồ thời gian SMBus được hiển thị bên dưới.

  Sơ đồ thời gian của SMBus
Sơ đồ thời gian của SMBus

TLOW.SEXT là thiết bị phụ mở rộng các chu kỳ CLK trong một thông báo duy nhất từ ​​START đến STOP. Vì vậy, có thể khả thi rằng, thiết bị chủ hoặc thiết bị phụ khác cũng sẽ kéo dài chu kỳ CLK để làm cho thời gian kéo dài thấp của CLK kết hợp cao hơn TLOW.SEXT. Do đó, thông số này được đo đơn giản thông qua thiết bị phụ giống như một mục tiêu duy nhất của một tốc độ chính đầy đủ.

TLOW.MEXT là thiết bị chính mở rộng chu kỳ CLK trong mỗi byte của một tin nhắn. Vì vậy, khả thi là một thiết bị chủ hoặc một thiết bị phụ khác cũng sẽ mở rộng CLK để làm cho thời gian thấp của CLK kết hợp cao hơn so với TLOW.MEXT trên một byte được chỉ định. Do đó, các tham số được đo đơn giản thông qua một thiết bị phụ tốc độ đầy đủ giống như mục tiêu duy nhất của chính.

Các ứng dụng

Các ứng dụng của SMBus bao gồm những điều sau đây.

  • SMBus được sử dụng như một chip thành phần hệ thống được sử dụng để giao tiếp trong một hệ thống. Đặc biệt hơn, nó cho phép pin giao tiếp với các thành phần khác của hệ thống như các thành phần liên quan đến nguồn điện & CPU.
  • Điều này được sử dụng cho giao tiếp nhẹ.
  • Bus này được sử dụng để giám sát các thông số quan trọng trong những hệ thống nhúng & trên bo mạch chủ của PC.
  • Đây là kiểu giao tiếp phổ biến nhất cho các đồng hồ đo nhiên liệu tiên tiến của Texas Instruments.
  • Điều này được sử dụng trong giao tiếp quản lý hệ thống dựa trên băng thông ít hơn.

Vì vậy, đây là tất cả về tổng quan về một SMBus - làm việc với các ứng dụng. Đây là một bus hai dây đơn giản và một đầu được sử dụng cho giao tiếp nhẹ. Bus này được sử dụng trong bo mạch chủ của máy tính để giao tiếp với nguồn điện cho các lệnh BẬT hoặc TẮT. Đây là một câu hỏi dành cho bạn, giao thức I2C là gì?