Compatibility between I2C and SMBus
You need to read two specifications:
The NXP I2C spec.
The SMBUS 2.0 spec is the one you need to study (see below).  

There is a new SMBUS 3.0 spec, but I'd suggest you will not need this at all.

I assume you are using something like the MLX90615 which is SMBUS 2.0 compliant and the simple Read/Write commands will work without problems on an I2C bus. . You will need to support SMBusRequest to mode shift the chip. The SMBus timeout/reset works for both clock low and high, so again should be no problem to generate for you. 

The maximum I2C clock for the MLX90615 is 100 kHz. 

You might find it's easier to debug your solution using an Arduino Mega 2560 and the Wire library.