W poniższym artykule przyjrzymy się możliwości wydłużenia zasięgu interfejsu SPI z wykorzystaniem interfejsów różnicowych. Architektura taka może być niezwykle przydatna, jeśli projektujemy system, który wymaga podłączenia zdalnych sensorów, na przykład do pomiaru temperatury czy ciśnienia.
Przy wykorzystaniu interfejsu SPI zazwyczaj master i slave są relatwnie blisko siebie w układzie, więc sygnały elektryczne poruszać się muszą jedynie w obrębie płytki drukowanej (PCB). Sygnały SPI są sygnałami asymetrycznymi, typu TTL. Maksymalna prędkość tego interfejsu wynosi do 100 Mbps, zależnie od konkretnej aplikacji. Szyna SPI składa się z trzech linii: zegara systemowego (SCLK), sygnałów danych master out slave in (MOSI) oraz master in slave out (MISO) i sygnału selekcji układu (CS). Master w transmisji zapewnia sygnały SCLK, MOSI i CS, natomiast slave generuje sygnał MISO. Rysunek pierwszy pokazuje architekturę typowego interfejsu SPI.
Ale co jeżeli chcemy wysłać sygnał SPI z naszego mikrokontrolera lub procesora poza płytkę drukowaną, do zdalnej części układu, w której znajduje się, na przykład, przetwornik ADC lub DAC? Może to być sporym wyzwaniem z szeregu przyczyn. Integralność sygnału w takiej aplikacji staje się istotnym problemem z uwagi na brak terminatorów w liniach sygnałowych. Impedancja zmienia się drastycznie w torze sygnału, co powoduje niedopasowanie impedancji linii. Rezultatem tego jest powstawanie fali stojącej, która powodować może błędy w komunikacji. Zakłócenia elektromagnetyczne (EMI) to inny problem, który także będzie miał wpływ na transmisję, ponieważ wysokiej częstotliwości interferencje zakłócać mogą sygnał SPI, a linie SPI z kolei zakłócać mogą inne sygnały, gdyż przebiegi interfejsu wykazują wysoką częstotliwość.
Jest jednakże proste rozwiązanie tych wszystkich problemów: interfejs różnicowy. Transceivery różnicowe takie jak SN65LVDT41 oraz SN65LVDT14 pozwalają na konwersję sygnałów SPI do różnicowego, niskonapięciowego interfejsu LVDS. Interfejs ten doskonale sprawuje się do przenoszenia sygnałów SPI z uwagi na swoją odporność na zakłócenia i pasmo transmisji.
Architektura tych układów pozwala na translację kompletu sygnałów SPI na poziomy dopasowane do LVDS. W układach tych znajdują się po cztery konwertery umożliwiające nadawanie danych (dla sygnałów MOSI, SCLK i CS) i jeden umożliwiający odbiór danych (sygnał MISO). Dodatkowo ten zestaw układów posiada szereg zalet, takich jak wbudowane terminatory linii, co znacznie ułatwia ich aplikacje, szczególnie w projektach, gdzie powierzchnia zajmowana przez system na PCB jest istotna. Rysunek drugi pokazuje w uproszczony sposób jak wyglądać może tego rodzaju interfejs różnicowy, przedłużający SPI. Do transmisji różnicowej wykorzystać można ekranowany kabel ethernetowy (STP CAT5) - nie jest to żaden wymóg, a jedynie propozycja wynikająca z ułatwienia implementacji w systemie.
Rysunki 3, 4 i 5 pokazują działanie opisanych układów przy prędkości 100 Mbps, przy różnej długości odcinkach kabla CAT5, wykorzystanego do transmisji. Odbiorniki w tych układach posiadają tolerancję progu na poziomie 200 mV, co jest z łatwością spełnione przy tak niewielkiej odległości transmisji.
Rysunek 3. Przebieg na pini TX po 8 metrach kabla CAT5 100Mbps.
Rysunek 4. Przebieg na pini TX po 15 metrach kabla CAT5 100Mbps.
Rysunek 5. Przebieg na pini TX po 25 metrach kabla CAT5 100Mbps.
Źródło:
http://e2e.ti.com/blogs_/b/analogwire/archive...ng-spi-with-differential-signaling-technology
Fajne? Ranking DIY
