Taka ciekawostka mi się ostatnio pojawiła: grupa urządzeń będzie sie komunikowała przez kilkudziesięciometrową linię za pomocą M-LVDS lub B-LVDS (jako następca dla RS-485 half duplex, niech spoczywa w pokoju) z prędkością 100-200Mbps. Taka prędkość oznacza FPGA, żaden procesor sobie nie poradzi. To nawet fajnie, projekt będzie ciekawszy. Tylko trzeba to FPGA czymś skonfigurować. Wymagania trwałościowe jak to zwykle u mnie, flash nie jest nawet rozważany, więc zostaje FRAM, MRAM lub starodawny układ FPGA antifuse. Potrzeba nieco mniej niż megabit, więc patrzę na ceny:
formatting link
38.80 za 100 szt. OK, ale pojawiły się też pamięci memrystorowe o całkiem apetycznym retention time rzędu miliona lat w temperaturze 65 stopni:
formatting link
po 26.73 dla 100 szt. Tylko są takie ciekawe procesory TI z pamięcią FRAM zamiast flash; dla kostki 128kB:
formatting link
cena wychodzi 16.28zł i niewiele więcej dla wersji 256kB (2Mbit). Oszczędzając więc 10 złotych dostaję jeszcze całkiem przyjemny procesor m.in. z ADC, którego FPGA nie ma. To żaden problem zmieścić wszystko w FPGA, ale skoro mogę w procesor wrzucić obsługę większości "bzdur", to warto -- w C pisze się znacznie szybciej niż w VHDL. Obudowy VQFN48 i SO8 są wymiarowo podobne, a skoro i tak muszę mieć na płytce takiego czy innego scalaka, to co mi za różnica, co w nim siedzi... Ciekawe czasy. Tyle się pisze o rewolucji SoC, a w praktyce ciagle lepiej wychodzi ulepić to sobie z osobnych elementów.
Pozdrawiam, Piotr
Didn't find your answer? Ask the community — no account required.
J
Janusz
W dniu 2021-04-25 o 21:53, Piotr Wyderski pisze:
No ale procesor Ci tej transmisji nie obsłuży, tyle że może on wgrać program do jakiego fpga i już osobnego procka nie musisz dawać. ale nadal musisz na tą trasmisję w vhdl-u program napisać :)
Obudowy VQFN48 i
Może to wynika z tego że trudno zrobić wszystkie 'ukłądanki' zkilku klocków, zawsze czegoś brakuje, a na procku zrobisz prawie wszystko dokładając jeden czy dwa klocki. Na tej samej zasadzie nie przyjeły za bardzo się procki z rozbudowanymi* układami analogowymi typu wzmacniacze czy inne, trochę lepiej jest z prockami z cpld ale też szału nie ma.
nie liczę z pojedynczymi wzmacniaczami czy komparatorami.
P
Piotr Wyderski
I tak bym musiał to zrobić. Co jest swoją drogą ciekawe, bo np. MachXO2 wspierają coś, co się nazywa gearbox. W wariancie maksymalnym powstają 4 zegary przesunięte o 45 stopni i logika dwuzboczowa na każdym z nich. Przy odczycie pinu dostajesz nie bit, lecz 8 bitów wartości wejściowych, każdy dla odpowiedniego slotu czasowego. Przy zapisie -- symetrycznie. FPGA sobie działa na lichych 50MHz, a oversampling masz jakby chodziła na 400MHz. Fantastyczna sprawa.
W większości robię już na FPGA, procki mnie drażnią. *Zawsze* coś jest skopane albo nie pasuje do reszty. Jak się pojawi potrzeba reagowania w rozsądnym czasie na zdarzenia równoległe, to się w ogóle robi bida.
Zdziwiło mnie trochę, że procesor z pamięcią, będący zasadniczo dawcą tej pamięci, jest znacznie tańszy od samej pamięci. A jak już jest, to i inne proste rzeczy opędzi i wyśle FPGA wysokoprzetworzony raport po tym samym SPI, którym ją zaprogramował.
Pozdrawiam, Piotr
H
heby
Hmmm a jaka jest przewaga takiej magistrali skoro:
1) LAN 100Mbit to raczej rzecz spotykana w wielu ARMach i raczej sobie radzą.
2) Po co komu czytać z predkoscią 100Mbit czujnik temperatury z lagiem
20sek, jak to zwykle jest w modbudbusowym dziadostwie. Serio jest jakies zastosowanie dla takich prędkości w miejscu starego modbusa ;)? Już widzę jak w pocie czoła firmy dorabiają na kolanie dodatkową płytkę z iface 100Mbit do jakiegoś projektu z przed 30 lat na 8051 "bo okres przejściowy a klient chce".
J
J.F.
Użytkownik "Piotr Wyderski" napisał w wiadomości grup dyskusyjnych:s64hb0$2nali$ snipped-for-privacy@portraits.wsisiz.edu.pl...
Chyba, ze ma wbudowane interfejsy.
Nie ma jakis gotowych? To ciekawe co klienci powiedza na jakis "proprietary protocol".
W praktyce nie jest chyba taki zly, przynajmniej na 10 lat :-)
A procesora tam nie masz? Bo gdzies program trzeba trzymac.
[...]
Ale szybka komunikacje Ci to rozwiaze, czy jeszcze jakies FPGA tez bedzie trzeba ?
Ale czy to nie jest ciagle to samo co dawniej - mieszanie technologii (krzemowej) niemile widziane jest ?
J.
P
Piotr Wyderski
W ARM masz zazwyczaj tylko MAC, musisz dodać PHY. LVDS wystaje wprost z FPGA i wystarczy dodać 3 oporniki dopasowujące impedancję.
Chodzi o sieć multidrop do przesyłania danych w czasie rzeczywistym. Ethernet nie ma takich gwarancji. Na wspólnym drucie węzły będą próbowały wysyłać swoje dane w losowych odstępach i przy większej ich liczbie pasmo zostanie zjedzone przez rozwiązywanie kolizji. Multimaster to błąd w matriksie, USB czy modbus mają to rozwiązane znacznie sensowniej.
ARM z ethernetem odpowie masterowi jak mu sie zachce, FPGA od razu. Albo dostanę po kilku mikrosekundach reakcję węzła, albo nie i zatrzymujemy system awaryjnie.
Mam strumień ok. 3Mbps real-time z każdego węzła.
Pozdrawiam, Piotr
P
Piotr Wyderski
Tylko dwie firmy na świecie produkują procesory z trwałą pamięcią programu. Jedna z nich robi 8051, więc nawet nie czytam dalej, a druga nie ma interfejsów szybszych niż 5Mbps.
Nic mi o tym nie wiadomo. W MCU nawet megabitowy CAN to ciągle pewien luksus. To jeden z głownych powodów, dla których sobie dałem spokój z procesorami, szkoda życia. Mam np. ADC taktowany ~50MHz, mały procesor by nawet nie potrafił tego zassać, a co dopiero przetworzyć. A dla FPGA za 20 złotych to drobiazg. Zobacz sobie choćby iCE40UP05 -- tanie niskoenergetyczne maleństwo, a ma 8 jednostek MAC, 30 małych RAMów i 4 duże. Chodzi mi po głowie zrobienie na tym w ramach zabawy demodulatora koherentnego do DCF77 -- przecież to będzie liczyło Fourierem korelacje wzajemne jak szatan! A mówimy o kostce 7x7mm, a nie o płycie z DSP.
Nic, bo nie sa przewidziani na tym etapie. Będą rozmawiali z busmasterem.
Nie chciałem mieć, tj. nie było takiej potrzeby. FPGA potrafi sama zassać konfigurację po SPI. Ale skoro długowieczny ROM na SPI jest znacznie droższy od procesora z takim ROMem, a dodatkowy układ na płytce dalej jest jeden, sztuka jest sztuka, to będę procesor miał.
Małe FPGA kosztuje tyle, co procesor, więc zamiast procesora wolę na płytkę dać FPGA i się nie zastanawiać, czy da radę i czy errata bloku komunikacyjnego obejmuje mój przypadek użycia. Więc to FPGA jest obywatelem pierwszej kategorii. Procesor ma ją zaprogramować i nie przeszkadzać. No, skoro już jest, to coś tam ostatecznie dostanie do roboty z listy zadań FPGA, ale generalnie jest zbędny. Wygrał ceną.
Jakoś TI daje radę. I gdyby chip MRAM/FRAM kosztował taniej od tego procka, to wątku by w ogóle nie było. Mnie naprawdę jest wszystko jedno, czy FPGA się skonfiguruje jako SPI master czy SPI slave, umie i tak i tak.
Pozdrawiam, Piotr
J
J.F.
Ale tego wymagania nie pisales.
Tylko ... skoro nie robia, to widac nikomu niepotrzebne :-P
CAN to teraz w samochodach - nie powinno brakowac.
IMO - i tak bedziesz jakiegos procka potrzebowal ... bo nawet jak zdekodujesz w FPGA, to po co Ci ten sygnal? No chyba, ze zegarek robisz ... a to ASIC :-)
Tzn zebysmy sie zrozumieli - nie namawiam do wciskania do procka wszystkiego, szczegolnie jesli zadanie pasuje do FPGA, a w procku bedzie za wolno.
A, taki rachunek.
Moze nie tylko u Ciebie - masowa produkcja, to i niska cena :-)
Tylko czy bys procka nie potrzebowal i tak ? Bo IMO - czesc zadan lepiej pasuje do FPGA, czesc do procka. Najlepiej miec oba :-)
J.
J
J.F.
ale ryzyko, ze przepiecie spali wszystko.
Ale przeciez switcha bedziesz mial, nie bedzie zadnych kolizji.
Cos w tym moze i jest, ale przeciez i ARM moze szybko reagowac na pakiety ...
A coz to za cudo ? No ale skoro tak, to pewnie potrzebujesz FPGA.
J.
M
Marek
Hyhy, ale wiesz nie użyje flash "bo to nie trwałe"....
M
Marek
To ile tysięcy razy na sekundę ten "boot-flash" będzie nadpisywany?
H
heby
No i? Ten scalak kosztuje jakieś ułamki $.
A jak z odpornością na przepięcia? Albo zasilanie z różnych faz? Elektrycznośc statyczną? Przypadkowe zwarcia?
No ale to już nie jest "zamiennik modbusa" ani żadne nastepca. To coś zupełnie innego.
Nie ma, ale one są zbędne w 99.9% zastosowań.
Praktyka kilkudziesięciu lat LANów pokazuje że to nie jest prawda. Kolizje są, ale nie "zjadają całego pasma".
Potrzebne w 0.1% przypadków automatyki odziedziczonej po MODBUSie?
Do tego chyba bym, jednak stosował *specializowane* łącze.
Podobne gwarancje ma CAN, ale przeciez elektrony nie sa z gumy i w CANie równiez nalezy poczekać na koniec poprzedniej ramki, nawet jeśli masz wyższy prorytet. Ogólnie magistrale tego typu *NIE* nadają się do deterministycznych zastosowań tego typu jak natychmiastowa reakcja, chyba że podepniesz wszystko w topologii gwiazdy.
Pfff, a miało być 200Mbit a tu tylko reinvented token-ring z prioryteteami :D Lata 80te ;)
P
Piotr Wyderski
Kilka razy w cyklu życia urządzenia. Problemem nie jest wear-out, tylko samoistne rozprogramowanie po długim czasie nieużywania.
Pozdrawiam, Piotr
M
Marek
Ile razy spotkałeś się z czymś takim?
P
Piotr Wyderski
No nie, potem jeszcze są elementy antyprzepięciowe: GDT, TBU, transil i oporniki (te same, co dopasowują impedancję). Nie potrzeba PHY, zegara dla PHY, transformatorka i podobnego zestawu anty-ESD. I jest real-time.
No to nie będzie multi-drop, nie powiesisz sobie 10 węzłów na jednym drucie.
Telemetria.
Pozdrawiam, Piotr
P
Piotr Wyderski
Do tego są osobne elementy, które w ethernecie też musisz mieć w stopniu spełniającym przyjęte założenia. Może nawet takie same.
To wisi na jednej skrętce SELV, jakich różnych faz?
Zabezpieczenia ESD są pancerne. Zwarcia nie są szkodliwe, nadajniki LVDS mają źródła prądowe. Co najwyżej transmisja się zatrzyma, co się wykryje i zgłosi awarię.
Prawdopodobieństwo kolizji gwałtownie rośnie z liczbą urządzeń na kablu.
Przecież real-time nie oznacza "natychmiast". Master odpytuje cyklicznie slave i demultipleksuje strumienie. Dzięki szybkości sieci nie muszę przerywać transmitowanego pakietu. Pakiety są krótkie, a maksymalny czas rozpoczęcia udzielania odpowiedzi znany, więc od razu widać, czy coś zdechło. Nie ma aktywności na drucie, znaczy trup.
Nawet nie token ring w jego pełnym rozumieniu, nie ma dynamicznie wybieranego mastera. Jest jeden wyznaczony węzeł i odpytuje swoje slaves, dokłanie jak w USB. Plus szczątkowy broadcasting. Token jest tylko po to, by chwilowo zezwolić na dostęp do medium. Mam wrażenie, że to jest znacznie starszy pomysł niż lata 80. Tylko strumienie są większe niż wtedy bywały i się kilkadziesiąt Mbps uskłada. Dodaj zapas na narzuty warstwy transportowej (CRC, nagłówki synchronizujące zegary itp.), bufor na retransmisję błędnych pakietów, detekcję bezczynności łącza i masz te 100-200Mbps. I to jest mała prędkość jak na LVDS.
Pozdrawiam, Piotr
J
J.F.
Czekaj czekaj - bo jak urzadzenia mocno osobne, to transformatorek lub optoizolacja by sie przydaly.
No nie. Ale czy to naprawde wada?
Tylko moment - chcesz na na jednej parze, to albo bedziesz mial kolizje, albo masz jakis protokol, chocby pytanie-odpowiedz. To on i w ethernecie wyeliminuje kolizje ... no ale ethernetu i tak bez switcha nie zrobisz, chyba, ze stary koncentryk. Ewentulanie - na 2 parach: jedna master nadaje, druga odbiera slave'y.
I taka szybka potrzebna ?
J.
J
J.F.
Taa ... bootowac z karty SD, i liczyc, ze ma w srodku jakis algorytm odnawiania starych danych ?
J.
P
Piotr Wyderski
Kilkukrotnie w przypadku pendrive i kart pamięci, z MCU nie przypominam sobie. Ale to nie ma znacznia. Producent pisze np. 10 lat, to przyjmuję
10 lat, a nie trzymam kciuki za 100 lat. MSP430 mają 100 lat, FRAM Cypressa 150 lat, a MRAM milion lat (czyli się prędzej obudowa chipu rozpadnie niż on straci dane). Jest z czego wybierać.
Pozdrawiam, Piotr
M
Marek
Ale co to za ekonomia biznesu? Za maks dwa lata Twój klient powinien zamówić nowy sprzęt u Ciebie, chcesz iść na wcześniejszą emeryturę??
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.