I2C는 원래 IIC(Inter IC Bus)인데 흔히 I2C로 많이 부르고 있습니다.
Philips(현재는 NXP로 이름이 바뀜)에서 만든 규격인데 2개의 라인으로 여러개의 칩들과 Data를 읽고 쓸수 있는 규격입니다.
SMBus는 I2C에다 Intel 이 규격을 조금 변경하여 packet 형식으로 변경한 것입니다.
예전 휴대폰 개발하신분들은 아시겠지만 DS(Data Stream) 통신과 DM(Diagnostic Monitor) 통신이라는게 있습니다.
DS라는것은 Raw data 즉 Serial로 ASCII 코드를 송수신 하는것을 말합니다.
우리가 보는 Serial Terminal에서 Log를 보는 형식이죠 보내는 Data가 모두 값인경우죠
그러나 DM은 DS상에서 Data를 Packet 형태로 송수신하는것을 말합니다. 이것은 HDLC 규격으로 정해져 있습니다.
Packet Header + Command + data + CRC
같은 형식으로 구성되어 있습니다.
실제 data를 전송하기 위해서 header 와 command 그리고 오류가 있는지 검사하기 위해 CRC를 붙여서 전송하는 방식입니다.
I2C는 DS와 같이 Data를 주고 받기 위한 Protocol이며 외부상황에 의해 오류가 발생하는것에 대해서는 보증을 할 수 없습니다.
그에 반해 SMBus의 경우는 DM통신처럼 command와 PEC(Packet Error Checking) 기능이 포함되어 있습니다.
SMBus 는 HW 적으로도 timeout, Voltage Level, Current 등이 I2C 와 약간의 차이는 있습니다.
I2C Spec : http://www.nxp.com/documents/user_manual/UM10204.pdf
SMBUS Spec : http://www.smbus.org/specs/smbus20.pdf
차이점
http://www.ti.com/lit/an/sloa132/sloa132.pdf
http://www.maximintegrated.com/app-notes/index.mvp/id/476
'SW개발자를 위한 HW' 카테고리의 다른 글
SDCard datasheet (0) | 2023.05.24 |
---|---|
낸드플래쉬(Nand Flash) (0) | 2023.05.24 |
keypad & display Matrix (0) | 2023.05.24 |
오픈콜렉트(Open Collector) 란? (0) | 2023.05.24 |
트랜스포머(Transfomer) (0) | 2023.05.24 |