SMBus : Paggawa, Mga Pagkakaiba, at Mga Aplikasyon Nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang SMBus ay inilunsad noong taong 1995 ng Intel at ito ay batay sa I²C serial bus protocol ng Philips. Ang bus na ito ay nagdadala ng data, CLK at mga tagubilin kung saan ang dalas ng orasan ay mula 10 kHz hanggang 100 kHz. Ang pangunahing layunin ng SMBus ay payagan ang isang mura at makapangyarihang paraan upang makontrol at makakuha ng data mula sa mga device sa isang motherboard. Karaniwang ginagamit ang SMBus sa mga PC para sa pagkontrol sa temperatura, mga matalinong baterya, at iba pang komunikasyon sa pamamahala ng sistema ng mababang bandwidth.


Tinutukoy ng bus na ito ang link ng komunikasyon sa pagitan ng isang charger, isang intelligent na baterya, at isang microcontroller na nakikipag-usap sa iba pang bahagi ng system. Ngunit, ginagamit din ang SMBus para ikonekta ang iba't ibang device tulad ng mga sensor ng system, mga device na nauugnay sa kapangyarihan, mga device sa komunikasyon, mga EEPROM ng imbentaryo, atbp. Tinatalakay ng artikulong ito ang isang pangkalahatang-ideya ng isang SMBus - nagtatrabaho sa mga application.



Ano ang SMBus Protocol?

Ang SMBus (System Management Bus) ay isang 2-wire na interface, na kadalasang ginagamit sa pagitan ng iba't ibang device sa motherboard para sa mababang bilis ng komunikasyon sa pamamahala ng system. Ang ganitong uri ng bus ay dinisenyo ng I2C protocol mga pundasyon. Kaya't ang parehong I2C at SMBus ay maaaring may ilang pagkakatulad at maaari din silang mag-inter-operate sa katulad na bus.

Gumagana ang bus na ito sa mga prinsipyo ng pagpapatakbo ng I2C na nagbibigay ng control bus, lalo na para sa system na payagan ang mga mensahe papunta o mula sa mga device sa halip na gumamit ng hiwalay na mga linya ng kontrol para sa pagbabawas ng mga wire ng system at bilang ng pin.



Ang isang device na may SMBus ay maaaring magbigay ng impormasyon ng paggawa, ipaalam sa system ang bahagi o numero ng modelo nito, mag-ulat ng iba't ibang uri ng mga error, payagan ang mga parameter ng kontrol, at muling bisitahin ang posisyon nito.

Pagtutukoy ng SMBus

Ang detalye ng SMBus ay tumutukoy lamang sa 3 uri ng mga device na host, master at alipin.

  • Ang isang host ay isang partikular na master at nagbibigay ito ng pangunahing interface sa CPU ng system.
  • Isang master device na nagbibigay ng mga tagubilin, bumubuo ng mga orasan at tinatapos ang paglilipat.
  • Ang isang alipin na aparato ay tumatanggap ng kung hindi man ay tumutugon sa isang utos.

Paano Gumagana ang SMBus?

Mayroong 3 uri ng mga device na ginagamit sa loob ng komunikasyon ng SMBus tulad ng isang host, master, at slave device na ipinapakita sa sumusunod na diagram. Sa bus na ito, ang host device ay isang partikular na master work-like interface sa CPU ng system; gayunpaman, hindi ito palaging kinakailangan. Ang ilang mga system tulad ng mga simpleng sistema ng pag-charge ng baterya ay maaaring walang host.

Ang isang master device ay nagsisimula sa komunikasyon, nagtutulak sa CLK at huminto sa paglilipat. Maaaring piliin ang isang device upang maging isang master o master-slave, kung saan maaari itong gumana bilang master device kung hindi man ay isang slave device.

  SMBus Diagram
SMBus Diagram

Sa SMBus, mayroon ding higit sa isang master, gayunpaman, isa lamang ang maaaring makabisado ang bus sa anumang oras. Halimbawa, kapag na-master ng dalawang device ang bus nang sabay-sabay, nagbibigay ang SMBus ng mekanismo ng arbitrasyon na nakadepende lang sa wired-AND na koneksyon ng lahat ng interface ng SMBus device sa SMBus.

Ang mga slave device ay tumutugon sa address nito pati na rin sa mga command at maaari silang magpadala at tumanggap ng data mula at papunta sa isang master device. Ang isang aparato ay maaaring ganap na mapili bilang isang alipin kung hindi man ito ay makakamit para sa alipin na magtrabaho tulad ng isang master sa ilang mga halimbawa.

Katulad ng I2C protocol, ang bawat alipin sa bus na ito ay inilalaan lamang ng isang seven-bit na slave address kung saan ang read o write bit ay idinagdag sa address na ito upang ilarawan kung binabasa o isinusulat ng device ang mensaheng ipinapadala sa bus.

Kinakailangang makilala ng mga device ang sarili nilang address, kaya kapag natukoy ng device ang address nito, tutugon ito sa command.

Kapag nagsalungat ang slave address ng bus na ito, sinusuportahan nito ang ARP o Address Resolution Protocol. Sa sandaling mapansin ng host ang dalawang device na may katulad na slave address, pagkatapos ay ang address resolution protocol procedure ay magtatalaga ng bagong natatanging address sa dynamic na paraan sa mga alipin. Ang address resolution protocol ay magbibigay-daan sa mga device na magamit kaagad nang hindi kinakailangang simulan muli ang system.

Gumagamit ang bus na ito ng 2-wire para sa komunikasyon tulad ng SMBDAT wire at SMBCLK wire kung saan ginagamit ang SMBDAT wire para maglipat ng serial data at ang SMBCLK wire ay gumagana tulad ng serial clock. Sa SMBus sa itaas, pinapatakbo lang ng master ang SMBCLK na umaabot sa 10 hanggang 100 kHz, gayunpaman, ang anumang linya ay maaaring magmaneho ng SMBDAT.

Ang dalawang wire na ito ay bidirectional na nagbibigay ng opsyon na magsama ng alertong signal tulad ng SMBALERT na nagpapahintulot sa mga device na humiling ng atensyon mula sa host.

Ang data packet ng bus na ito ay naglalaman ng Start bit, isang ACK o NACK bit, 8 bits ng data at isang Stop bit. Ang paglipat ng data ng SMBus ay gumagamit ng ilan sa mga function kung hindi man ay mga protocol ng iba't ibang SMBus habang nagpapadala ng mga mensahe tulad ng Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Block Write-Block.

Sinusuportahan din ng bus na ito ang PEC (packet error checking) upang mapabuti ang pagiging maaasahan ng komunikasyon. Kaya ito ay maisasagawa sa pamamagitan ng pagsasama ng isang packet error code sa dulo ng bawat mensahe.

Mga pag-andar

Mga function ng SMBus ay tinatawag ding mga protocol. Kaya ang mga pangunahing protocol ng SMBus ay 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 Protocol, Read-32 Protocol, Sumulat ng 64-Protocol at Read 64 Protocol.

Format ng Mensahe ng SMBUS

Pagkatapos ng kundisyon ng START, hahanapin ng master ang 7-bit na address ng slave device at kailangan nitong i-address sa bus. Kaya, ang haba ng address ay 7 bits ang haba na sinusundan ng isang 8-bit na nagpapahiwatig ng direksyon ng paglipat ng data (R/W); ang isang ONE ay tumutukoy sa isang kahilingan para sa READ (data) at isang ZERO ay tumutukoy sa isang WRITE (pagpapadala).

  Format ng Mensahe
Format ng Mensahe

Ang paglilipat ng data ay palaging tinatapos ng isang STOP na kundisyon na nabuo sa pamamagitan ng master.

Ang bawat byte ay may kasamang 8 bits at ang bawat byte ay inililipat sa SMBus at dapat na sundan sa pamamagitan ng isang acknowledge bit. Ang mga byte ay ipinadala muna sa pamamagitan ng MSB (pinaka makabuluhang bit).

Ang isang tipikal na SMBus device ay may kasamang isang hanay ng mga command kung saan ang data ay maaaring basahin at isulat lamang. Ang haba ng lahat ng mga command na ito ay 1 byte ang haba samantalang ang kanilang mga argumento, pati na rin ang mga return value, ay maaaring magbago sa loob ng haba.

Ang pagpayag sa isang utos ay hindi umiiral kung hindi man ay hindi ito suportado, kaya maaari itong magdulot ng kundisyon ng error. Bilang pagsunod sa detalye ng SMBus, ang MSB ay unang inilipat.

Una, ang lahat ng mga utos ay nagtatakda ng isang kondisyon ng pagsisimula sa bus, pagkatapos na simulan ang paghahatid sa pamamagitan ng pagpapadala ng data o utos, maghintay para sa isang pagtanggap mula sa aparato ng alipin sa buong paghahatid ng data o command, pagkatapos ay magtakda ng isang kondisyon ng paghinto sa bus.

Mga Kundisyon ng Start at Stop para sa SMBus Protocol

Ang START at STOP na kondisyon ng isang mensahe ay tutukuyin ng dalawang natatanging kundisyon ng bus na mataas hanggang mababa at mababa hanggang mataas.

  Kundisyon ng Simula at Itigil
Kundisyon ng Simula at Itigil

Sa isang HIGH hanggang LOW SMBDAT line transition, kapag ang SMBCLK ay HIGH, ito ay nagpapahiwatig ng START na kondisyon ng isang mensahe.

Sa isang LOW hanggang HIGH SMBDAT line transition, kapag ang SMBCLK ay HIGH pagkatapos ay tutukuyin nito ang isang STOP na kondisyon ng isang mensahe. Kaya't ang dalawang kundisyong ito ay palaging binubuo ng master ng bus. Nagiging abala ang bus pagkatapos ng kondisyon ng isang START. Magiging idle muli ang bus pagkatapos ng isang tiyak na oras kasunod ng kundisyon ng STOP.

Mga Kinakailangan sa Hardware ng SMBus

Ang mga kinakailangan sa hardware ng SMBus para sa pagpapagana ng mahusay, pati na rin ang tuluy-tuloy na komunikasyon sa pagitan ng isang PC at ilan sa pinakamahalagang hardware nito, ay dalawang wire tulad ng SMBDAT at SMBCLK, PSU (Power Supply Unit), hanay ng mga IC, driver at mga cooling fan nito . Karaniwan, ang SMBus Controller na ito ay nagbibigay-daan sa isang computer na pangasiwaan at matagumpay na maisagawa ang mga command gaya ng pag-ON sa PSU nito at pagkontrol sa mga cooling fan nito.

Gumagamit ang SMBus data transfer ng iba't ibang protocol o function habang naglilipat ng mga mensahe tulad ng Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, atbp. Sinusuportahan din nito ang PEC o packet error checking para sa pagpapahusay ng pagiging maaasahan ng komunikasyon sa pamamagitan lamang ng pagsasama ng isang packet error code sa bawat dulo ng mensahe.

Ang SMBus hardware ay nagbibigay lang ng timing at shifting control na ginagamit para sa mga serial transfer. Kaya ang hardware ng SMBus ay gumaganap ng iba't ibang independiyenteng mga gawain sa application tulad ng kontrol sa tiyempo, mga serial data transfer, at pagkilala sa mga address ng alipin.

SMBus vs I2C

Ang pagkakaiba sa pagitan ng SMBus at I2C kasama ang mga sumusunod.

SMBus

2C

Ang terminong SMBus ay nangangahulugang 'System Management Bus'. Ang terminong I2C ay nangangahulugang 'Inter-Integrated Circuit'.
Ang SMBus ay isang 2-wire control bus na ginagamit sa mga gawain sa pamamahala ng enerhiya at sistema. Ang I2C ay isang on-board na protocol ng komunikasyon na ginagamit para sa mababang bandwidth at maikling distansya.
Maaaring gamitin ng isang system ang bus na ito upang iruta ang mga mensahe mula sa & papunta sa mga device kaysa sa pag-activate ng mga indibidwal na linya ng kontrol.

Karaniwang ginagamit ang I2C para sa pagkonekta ng mga peripheral na nakabatay sa mababang bilis tulad ng mga microcontroller at sensor sa mga processor na nasa maigsing distansya sa isang IC.
Ang maximum na bilis ng CLK ay 100 kHz. Ang maximum na bilis ng CLK ay 400 kHz.
Ang pinakamababang bilis ng CLK ay 10 kHz. Walang minimum na bilis ng CLK.
35ms low CLK timeout. Walang timeout.
Mayroon itong mga nakapirming antas ng lohika. Ang mga antas ng lohika nito ay nakasalalay sa VDD.
Mayroon itong iba't ibang uri ng address tulad ng nakalaan, dynamic, atbp. Mayroon itong iba't ibang uri ng address tulad ng pangkalahatang call slave address, 7-bit, at 10-bit.
Mayroon itong iba't ibang mga protocol ng bus tulad ng mga tawag sa proseso, mabilis na utos, atbp. Wala itong mga protocol ng bus.

SMBus vs Pmbus

Ang pagkakaiba sa pagitan ng SMBus at Pmbus ay kinabibilangan ng mga sumusunod.

SMBus

Pmbus

Ang SMBus ay isang 2-wire, single-ended bus na ginagamit para sa magaan na komunikasyon. Ang extension ng SMBus ay Pmbus at ito ay isang low-cost protocol na pangunahing ginagamit para sa komunikasyon sa pagitan ng mga power-management device.
Ang slave mode ng bus na ito ay nagbibigay-daan sa mga halaga ng mga rate ng data tulad ng 10kbps, 50 kbps, 100 kbps at 400 kbps. Ang slave mode ng bus na ito ay nagbibigay-daan lamang sa mga halaga ng rate ng data tulad ng 100 kbps at 400 kbps.
Gumagana ang ganitong uri ng bus sa I2C hardware gayunpaman kasama nito ang pangalawang antas ng software sa pamamagitan ng pagpapahintulot sa mga device na maging hot swapped nang hindi nire-restart ang system. Pinapalawak ng bus na ito ang SMBus sa pamamagitan lamang ng pagtukoy ng isang hanay ng mga command ng device at partikular itong idinisenyo para sa paghawak ng mga power converter, paglalantad ng mga katangian ng device tulad ng sinusukat na kasalukuyang, boltahe, temperatura, atbp.
Ang SMBus ay isang superset ng I2C Ang PMBus ay isang superset ng SMBus
Kasama sa bus na ito ang Network at Data Link Layers. Kasama sa bus na ito ang Transport layer at isang set ng mga command.

Timing Diagram

Ang SMBus timing diagram ay ipinapakita sa ibaba.

  Timing Diagram ng SMBus
Timing Diagram ng SMBus

Ang TLOW.SEXT ay ang slave device na nagpapahaba sa mga CLK cycle sa loob ng iisang mensahe mula sa START hanggang STOP. Kaya posible na, ang master o isa pang slave device ay magpapahaba din sa CLK cycle upang maging mas mataas ang mababang extended na oras ng pinagsamang CLK kaysa sa TLOW.SEXT. Kaya, ang parameter na ito ay sinusukat lamang sa pamamagitan ng slave device tulad ng solong target ng isang full-speed master.

Ang TLOW.MEXT ay ang master device na nagpapalawak ng mga CLK cycle sa bawat byte ng isang mensahe. Kaya posible na ang isa pang master o isang slave device ay magpapalawak din sa CLK upang maging mas mataas ang mababang oras ng pinagsamang CLK kumpara sa TLOW.MEXT sa isang tinukoy na byte. Kaya, ang mga parameter ay sinusukat lamang sa pamamagitan ng isang full-speed slave device tulad ng solong target ng master.

Mga aplikasyon

Ang mga aplikasyon ng SMBus isama ang mga sumusunod.

  • Ginagamit ang SMBus bilang isang chip component ng system na ginagamit upang makipag-usap sa loob ng isang system. Higit na partikular, pinapayagan nito ang mga baterya para sa pakikipag-ugnayan sa iba pang mga bahagi ng system tulad ng mga bahaging nauugnay sa kapangyarihan at ang CPU.
  • Ito ay ginagamit para sa magaan na komunikasyon.
  • Ginagamit ang bus na ito para sa pagsubaybay sa mga kritikal na parameter sa naka-embed na mga sistema at sa mga motherboard ng PC.
  • Ito ang pinakakaraniwang uri ng komunikasyon para sa mga advanced na fuel gauge ng Texas Instruments.
  • Ito ay ginagamit sa mas kaunting bandwidth-based na komunikasyon sa pamamahala ng system.

Kaya, ito ay tungkol sa lahat isang pangkalahatang-ideya ng isang SMBus – nagtatrabaho sa mga aplikasyon. Ito ay isang simple at single-ended two-wire bus na ginagamit para sa magaan na komunikasyon. Ginagamit ang bus na ito sa mga motherboard ng mga computer para sa komunikasyon sa pinagmumulan ng kuryente para sa ON o OFF na mga tagubilin. Narito ang isang tanong para sa iyo, ano ang I2C protocol?