在網路上找到一篇文章介紹I2C 與SMBus的不同,覺得寫的還不錯,硬體部份我沒有去查證是否屬實,但是這篇文章己經指出很多不同點了。傳統的i2c Bus slave device並無法主動通知master有事件發生,SMbus另外支援SMBus Alert signal。Host收到Alert可另外發出ARA Protocol詢問是那一個slave device發出Alert,進一步加以處理。另外SMBus deivce都支援Bus Timeout mechanism的功能。
SMBus Specificaion 可以從 http://smbus.org/ 找到。
I2C Bus Specification Philips (NXP) 公司找到。
另外就是Protocol的部份。I2C bus 只有定義Transport Layer,也就是定義了data 要怎麼傳送的部份。基本上個人覺得I2C就是沒有更高階的Protocol。但是Smbus有定義更上層的Protocol,同時也有標準的Standard Host Interface,讓支援的作業系統直接就能操作Host Controller。
SMBus Transport Layer也是一樣,要分二次,但是它的Protocol 支援自動幫你送出Write direction transport layer,如Send Byte, Receive Byte, Read Byte, Write Byte等,但是如果你下的是Read Byte, 它會自動幫你送出register offset, 也就是先寫出register offset, 然後再讀回來。
詳情請對照一下Smbus的Spec裡的圖示。
詳情請對照一下Smbus的Spec裡的圖示。
沒有留言:
張貼留言