Friday 10 March 2017

protocol - Since SPI contains data and clock, this makes it "source synchronous" doesn't it?


I read in a Xilinx application note that as data rates became faster became developed source synchronous transfer technique and later came the self-synchronous methods that make use of 8b-10b or some other encoding and the data is extracted from the input data stream.


However, while SPI is very old and not really "high speed" unlike how we communicate with DDR RAMs using source synchronous transfers, it still sends out data with clock. Thus, is it correct to say that SPI is a simple low speed source synchronous data exhange protocol?


Besides this, usually protocol contains data along with information about data like start of packet, end of packet, CRC, source, destination bits e.t.c. However SPI does not contain any of this. Is it still correct to call it protocol?


While serial data transfer being asynchronous, has start bit and end bit thus in my understanding the simple serial transfer e.g used in RS-232 is a protcol but SPI does not posses such information. What am I misunderstanding here?



Answer



Source synchronous transmission means that the same device that generates the data also generates the clock.


During a write transaction, SPI uses source synchronous transfer.


But during a read transaction, the bus master generates the clock while the slave generates the data. This is not a source synchronous transfer.


In principle, SPI allows the slave and master to transmit data simultaneously, and the slave does in fact transmit meaningless data (usally all-0's or all-1's) when the master is transmitting, which would mean both source-synchronous and "receiver-synchronous" (not a real word, as far as I can tell) transmission is happening at all times in an SPI system.



No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...