Trying to use a MLX90614 which is a noncontact sensor that digikey sells which uses an SMBus. I never heared of this peripheral before I read this data sheet and am confused with this issue. I have a PIC32 bit processor that uses an I2C bus. The SMBus seems to be very similar to I2C except for a slow throughput. Could one use an I2C instead of a Smbus. If not is there a way of using a PIC 32 with this sensor? I have heared the term bit bash before for adding a spi bus to processor that doesn't have one could some one bit bash a SMBus?
Indeed you can bit-bash SMBus just as you would I2C. the main things to watch are the longer setup times (4.0 or 4.7 us) compared with I2C.
Unless your PIC has an open drain port pin that you can use for the SDA signal then best way to bit-bash is to configure an i/o pin as an input (TRISx bit = 1) pulled high by external pullup and you configure the corresponding bit in the PORTx data register as 0. Then you either set or clear the TRISx bit to selct either input (high) or output (low) on SDA line. For the SCL signal you just set up a regular output since clock doesn't have to be open drain if the PIC is the only bus master.
The built in I2C function can probably be made to work with suitable adjustment to bit rate and that means the pins automatically are open drain.
You can start with a good appnote from Maxim comparing I2C and SMbus.
Then, look at the Familry Reference Manual Section 24 of PIC32 I2C if you search for SMbus in this pdf document there are several references to SMBus so it seems there is provision to use SMbus in the I2C unit of some PIC32 devices.
There is also an appnote for PIC32 & PMBus from Linear which may be helpful