Zanim przejdziemy do nakrętek i śrub sprzętu komputerowego w robocie, cofnijmy się o krok. Jakie są powody umieszczenia komputera w robocie? Nawet doświadczeni inżynierowie głowią się nad tą kwestią. W końcu wydaje się być naturalną decyzją. Jednak gdy patrzymy na jeden konkretny powód, zawsze kryje za nim jedne konkretny powód, zawsze kryje się podstawowa przyczyna. Na początku każdej fazy projektu robotycznego warto przeanalizować opcje . Często dostępne jest lepsze rozwiązanie. Spójrzmy na przykład nietechniczny. Ty i Twój przyjaciel stoicie na otwartym polu w obliczu groźnego lwa. Lew zaczyna szarżować i jasne jest ,że musicie uciekać. Jaki powinien być Twój bezpośredni cel? Niektórzy powiedzą "Uciekaj przed lwem". Inni mówią "Unikaj przyjaciela". Oczywiście trudno jest myśleć w stresujących sytuacjach. Jeśli mamy czas ,aby myśleć , możemy zaoszczędzić czas, wysiłek i ból. Nie daj się jednak uwięzić w niekończących się rundach myślenia i planowania .To dobry sposób aby zostać zjedzonym przez lwa. Taki scenariusz przetrwania jest dobrym przykładem tego, jak dużo pytań pozostaje powyżej bezpośredniego pytania. Czy druga odpowiedź sprawiła ,że się uśmiechnąłeś? Jeśli tak, dlaczego? Dlaczego więc w ogóle korzystać z komputera? Najważniejsze to :\n• Projekt będzie kosztował mniej do zakończenia\n• Robot będzie lepszy\n• Projekt może zostać ukończony wcześniej\nPrzyjrzyjmy się skąd pochodzą te oszczędności. Każdy projekt to koszt względem czasu i pieniędzy:\n• Jakiego typu koszty istnieją?\n• Bezpośrednie nakłady pieniężne na sprzęt , części i narzędzia\n• Powiązanie rzadkich zasobów. Czasami projekty zużywają zasoby, których nie można zastąpić, ale są zasadniczo bezpłatne. Przykładem może być czas kluczowego pracownika. Jeśli nadejdzie inny projekt , kluczowy pracownik nie będzie dostępny. • Czas projektowania. Czas potrzebny na opracowanie wymaga różnych kosztów dołączonych do niego. Jeśli harmonogram projektu robota komercyjnego ma poślizg, firmie może brakować dużej części potencjalnych zysków. Gdy tylko konkurenci wyjdą z podobnymi produktami, zyski szybko spadną. Pierwsze kilka miesięcy życia produktu są najcenniejsze. Jeśli robot nie jest gotowy na czas, traci się koszt alternatywny. Jeśli harmonogram projektu ma poślizg, generalnie pojawią się rzeczywiste koszty. Zasoby i personel mogą być również powiązane , co powoduje dłuższy czas rozwoju,\n• Ryzyko awarii. Menadżerowie projektów robotów często wydatkują zasoby na wczesnym etapie harmonogramu, aby rozładować ryzyko. Jako przykład rozważ robota, który musi przemierzyć trudny teren. Projektanci mogą zbudować kilka różnych układów napędowych i przetestować je przed przystąpieniem do reszty projektu. Jeśli projekt wiąże się z niewielkim ryzykiem, ostateczny koszt prawdopodobnie będzie niższy. Jeśli ryzyko projektu staje się prawdziwym problemem, harmonogramy często się pogarszają. a koszty rosną. Decyzja o użyciu sprzętu komputerowego w projekcie robota może w różny sposób zmniejszyć koszt projektu .\nWykorzystaj Istniejącą Technologię\nCywilizacja rozwija się dzięki swojej historii i wiedzy. Ludzie są wyjątkowi, ponieważ przechowują informacje poza swoimi mózgami, w bibliotekach i komputerach. Zgromadzone praca innych może zostać odkryta aby rozwiązać nasz problem. W przypadku komputerów inżynierowie udostępnili swoje prace w postaci zarchiwizowanego oprogramowania i sprzętu obwodów drukowanych. Każdy może być szybko i niedrogo odtworzony do naszego użytku. Sprzęt komputerowy jest dostępny w różnych formach. Możemy kupić gotowy komputer w sklepie, ale będzie zbyt duży aby zmieścić się w robicie. Możemy zakupić katy obwodów drukowanych od dystrybutorów i umieścić je w robocie. Możemy również zakupić chipy komputerowe od dystrybutorów i zbudować własne katy obwodów drukowanych, co jest trudnym rozwiązaniem dla zwykłego projektanta robotów. Możemy zakupić kompletne systemy komputerowe na karcie. która zaakceptuje nasze oprogramowanie i zapewni złącza dla liii sygnałowych potrzebnych do sterowania robotem. Jest to często najbardziej ekonomiczna metoda integracji komputerów z projektem, o ile nie zostaną wyprodukowane duże ilości robotów. Firmy sprzedające komputery zainwestowały miliny dolarów aby udostępnić swoją technologię do naszego użytku. Zdobywamy czas, pieniądz i niezawodność, dzieląc się i wykorzystując ich wysiłek .P\tonieważ technologia została tak łatwo udostępniona innym, wiele projektów osób/firm trzecich jest również dostępnych do użycia, jak następuje:\n• Sprzęt innych firm. Większość komputerów ma złącza, które umożliwiają na, korzystanie z "magistrali" . Później zdefiniujemy ten termin, ale wystarczy powiedzieć ,że magistrala pozwala firmom zewnętrznym projektować sprzęt , który będzie dołączony do naszego komputera. Dostępnych jest dziesiątku płytek drukowanych (PCB) i innych wygodnie upakowanych obwodów.\n• Oprogramowanie innych firm. Jest mało prawdopodobne , że inne firmy mają napisane oprogramowanie, z którego moglibyśmy skorzystać. Jeśli komputer ,który wybieramy jest "specjalnego przeznaczenia" , kilka firm prawdopodobnie napisało oprogramowanie, które wykorzystuje specjalne funkcje komputera. Możemy kupić oprogramowanie i używać go na różne sposoby.\n-\tFreeware : Często autor oprogramowania sprawia ,że będzie ono dostępne za darmo dla innych użytkowników.\n-\tShareware : Jest bardzo podobne do freeware, z wyjątkiem tego ,że autor żąda często zapłaty, jeśli shareware jest używane w robocie. Można wyszukiwać shareware i uważnie przeczytać ograniczenia. Zrobić kopie wymagań autora i zapisać je, jeśli później pojawiłyby się później pytania.\n-\tLicencjonowanie : Duże systemy operacyjne, narzędzia i oprogramowanie aplikacyjne zwykle mają wymagania licencyjne. Skontaktuj się z firmą ,która sprzedają oprogramowanie, bezpośrednio po informację\nUżywanie komputerów w robocie eliminuje potrzebę pełnego i szczegółowego planowania. Prawda jest taka, że niektóre projekty są zbyt trudne do szczegółowego zaplanowania. Ale jeśli możemy być pewni na początku, że nasz komputer zapewni nam elastyczność i moc, jakiej potrzebujemy w nieprzewidzianych okolicznościach, można kontynuować bez pełnego planowania. Umieszczenie komputera w systemie przynosi następujące korzyści do harmonogramu inżynieryjnego:\n• Całkowity nakład pracy inżynierskiej można podzielić. Jeśli mamy więcej niż jedną osobę pracującą nad robotem , praca może być podzielona i wykonywana równolegle. Jedna osoba może skoncentrować się na sprzęcie, podczas gdy inna zaczyna od oprogramowania. Sprzęt nie musi zostać ukończony przed uruchomieniem oprogramowania. Programista może pracować na płytce podobnej do tej z robocie\n• Zmiany w specyfikacji robota mogą być dokonywane po drodze z pewnością ,że nowe wymagania można uwzględnić tylko w oprogramowaniu. O wiele łatwiej jest zmienić oprogramowanie niż zmienić projekt sprzętu\n• Projekt może zostać zmieniony w razie potrzeby w celu późniejszej konserwacji, nawet po zakończeniu pracy robota\nKomputery zostały zaprojektowane do szybkiego wykonywania obliczeń arytmetycznych w sposób powtarzalny. Istnieje wiele różnych sposobów , w jakie można zbudować komputer a ta sekcja obejmuje wiele różnych istniejących architektur\nZałóżmy że w tej chwili zdecydowaliśmy się umieścić komputer w robocie. Chociaż dostępnych jest wiele komputerów ogólnego przeznaczenia warto najpierw przyjrzeć się komputerom specjalnego przeznaczenia. Prawdopodobnie wybierzemy komputer ogólnego przeznaczenia do robota, ale komputer specjalnego przeznaczenia mogą przynieść wiele korzyści projektowi. Poniżej omówimy podstawowe architektury niektórych komputerów specjalnego przeznaczenia.\nSłownik definiuje analogowy jako "coś podobnego do czegoś innego; mechanizm w którym dane są reprezentowane przez nieustannie zmienne wielkości fizyczne". Komputery analogowe są powszechnie postrzegane jako powrót do początków maszyn obliczeniowych. Nawet teraz wszystkie komputery elektroniczne wykorzystują analogowe sygnały elektroniczne do obsługi swoich obliczeń. Komputery cyfrowe ogólnego przeznaczenia ograniczają jednak sygnały analogowe elektroniczne do zaledwie dwóch poziomów napięcia reprezentujących binarną 1 i binarne 0, aby zwiększyć prędkość. Komputery analogowe nie mają takich ograniczeń napięcia dla sygnałów. Zamiast tego sygnały różnią się w zakresie napięć, które może obsłużyć analogowa elektronika komputerowa. Pojedynczy sygnał analogowy może bezpośrednio reprezentować , na przykład, prędkość wiatru o 0 do 255 km/h. Komputer ogólnego przeznaczenia potrzebuje ośmiu sygnałów (28 = 256) aby reprezentować ten sam zakres wartości dla wiatru. Komputery analogowe wykorzystują analogowe układy elektroniczne, takie jak wzmacniacze operacyjne do budowy obwodów w celu symulacji zachowania złożonych systemów. Są szczególnie dobre w systemach symulacyjnych które są zarządzane przez równania różniczkowe. System sterowania drugiego rzędu opisany w innym miejscu jest dokładnym przykładem. Za pomocą tylko jednego wzmacniacza operacyjnego , komputer analogowy może w pełni symulować te same krzywe i kontrole parametryczne które już obejrzeliśmy Przód komputera analogowego wygląda jak gigantyczna tablica rozdzielcza z wieloma miejscami do podłączenia przewodów. Aby zaprogramować komputer analogowy inżynier używa kabli połączeniowych do połączenia wymaganych bloków konstrukcyjnych. Pokrętła na komputerze analogowym można obracać aby wprowadzić wartości żądanej częstotliwości i tłumienia. Inżynier uruchamia komputer, a igła miernika pokazuje wynikową krzywą na przestrzeni kilu sekund symulowanego czasu. Na przykładzie systemu drugiego rzędu naszego robota, przeregulowanie jest oczywiste jeśli igła miernika chodzi zbyt szybko zanim się uspokoi. Dzwonienie może być postrzegane jako oscylacja igły w przód i w tył gdy się uspokaja. Komputery analogowe wypadły z gry z dwóch powodów:\n• Komputery ogólnego przeznaczanie można zaprogramować do symulacji komputera analogowego , eliminując potrzebę stosowania sprzętu analogowego\n• Komputery ogólnego przeznaczenia można zaprogramować na różne sposoby aby rozwiązać te same problemy. Zamiast symulować komputer analogowy (który symuluje rzeczywiste problem), komputer ogólnego przeznaczenia można zaprogramować do symulacji bezpośredni w rzeczywistym świecie.\nJednym z najlepszych znanych silkników obliczeniowych jest ludzki mózg. Może rozwiązywać najbardziej złożone rzeczywiste problemy znacznie szybciej niż komputer ogólnego przeznaczenia aczkolwiek z mniejszą precyzją. Komputery elektroniczne najlepiej nadają się do problemów wymagających zdolności arytmetycznych i oślepiającej prędkości wykonywania takich jak prognozowanie pogody. Ale nie są one dobre w rozwiązywaniu problemów wymagających osądu lub doświadczenia. Ludzi mózg ma doświadczenie i "okablowanie" aby zająć się problemami , których nigdy wcześniej nie widział i rozwiązywać je z szybkością i niezawodnością. Rodzice nastolatków mogą spierać się z tym ostatnim stwierdzeniem ale nigdy nie próbowali żyć z nastoletnim robotem, który zmaga się z programowaniem komputera ,aby mógł przetrwać miłość szczeniaka. Bądźcie pewni ,że rodzcie woleliby poradzić z ludzka nastolatką, która ,wierzcie lub nie, ma niesamowite zdolności w porównaniu do skomputeryzowanego robota. Czy więc jest sieć neuronowa? Odkąd ludzie po raz pierwszy zrozumieli strukturę cel ludzkiego mózgu marzyli o stworzeniu sztucznego mózgu. Zaproponowano wiele projektów takiego mózgu , w tym sieci neuronowe. Najpierw spójrzmy na ludzki mózg. Komórki mózgu zwane neuronami są połączone razem w szeroki wachlarz tkanki w mózgu. Komunikują się elektronicznie ze sobą przez połączenia neuronowe, zwane synapsami. To pozwala neuronom na wymianę informacji z bliskimi sąsiadami. Neurony zachowują informacje (zwane pamięcią) chemicznie i elektrycznie w ciele komórki\nNa przykład pamięć konkretnego dnia wiosennego może być rozłożona na szeroki wachlarz neuronów, które kierują zapachem, wzrokiem słyszeniem, ruchem i tak dalej. Wspomnienie dnia wiosennego jest rozproszone w całym mózgu. Wspomnienia mogą być niedoskonałe i mogą zanikać, gdy poszczególne neurony zaczynają tracić swoją indywidualną pamięć dnia. Wspomnienia są przechowywane niemal jak zdjęcia rozłożone na tkaninie mózgu. Neurony mogą przechowywać więcej niż jedną pamięć w tym samym czasie. Dlatego pamięć jednej rzeczy, naj wiosenny dzień, może przywoływać wspomnienie innego doświadczenia , takiego jak lodowata woda strumienia. Człowiek który przypomniał sobie wiosenny dzień z szumem strumyka, najprawdopodobniej pogłębił pamięć wchodzenia w hałaśliwy , lodowaty potok. Fakt, że hałas był w obu wspomnieniach , łączy wspomnienia. Człowiek nauczył się podejrzewać potoki w wiosenne dni; mogą być lodowate. Uczenie się jest czymś w czym komputery ogólnego przeznaczenia nie są dobre . Niektóre sieci neuronowe są zaprojektowane tak ,aby naśladowały zdolność uczenia się ludzkiego mózgu. Są narażone na szereg sytuacji i stopniowo uczą się radzić sobie z nimi Komputery sieci neuronowych są zwykle projektowane z pojedynczymi "neuronami", które mogą komunikować się ze sobą , szczególnie w ich bezpośrednim sąsiedztwie . Są ułożone w rzędy i brzegi neuronów\nWyniki każdej warstwy są podawane do serii jednostek komunikacyjnych które wykonują obliczenia i przekierowują informacje do innych neuronów. Seria wydarzeń w świecie rzeczywistym jest podawana jako dane wejściowe u góry, sieć neuronowa przetwarza dane wejściowe i generuje odpowiedzi z dołu. Wyniki są punktowane (przez doświadczoną osobę) a wyniki jest przekazywany z powrotem do sieci neuronowej u góry. Następnie sieć dostosowuje swoje jednostki komunikacyjne aby następnym razem lepiej się spisywać. Z pewnością sieć będzie działać lepiej gdy następnym razem zobaczy te same zdarzenia , które zostaną wprowadzone do jej źródeł. Ale co dziwne, często robi to lepiej na nowych wydarzeniach , których nigdy wcześniej nie widział. Jako taki, uczy się. Sieci neuronowe można budować na wiele sposobów. Jeden badacz wziął krzemowy substrat (płytkę używaną do budowy chipów komputerowych), wydrążone dziury w podłożu umieścił neurony w jamach i pozwolił neuronom komunikować się poprzez łączenie synaps. Układ komputerowy został wytrawiony w innych obszarach podłoża. Cały obwód działa na połączeniu glukozy i elektryczności. Sieci neuronowe mogą być zbudowane ze sprzętu komputerowego (przy użyciu chipów komputerowych) lub mogą być symulowane w oprogramowaniu. Odnotowano wiele udanych zastosowań oprogramowania. Odnotowano wiele udanych zastosowań oprogramowania sieci neuronowej w systemach które muszą rozwijać "ocenę sytuacji" . Jedną z aplikacji było przewidywanie oszustw związanych z kartami kredytowymi . Poprzez udostępnienie oprogramowania sieci neuronowej wielu aplikacjom obsługującym karty kredytowe, a następnie informowanie sieci, którzy klienci nie uiścili należności, sieć została przeszkolona do skanowania nowych aplikacji i odrzucania tych klientów, którzy mogą uiścić później.\nProcesory Specjalnego Przeznaczenia\nPodstawową zaletą komputera jest jego oślepiająca szybkość. Może wykonywać wiele milionów instrukcji na sekundę/ Ale niektóre zadania wymagają przetworzenia naprawdę ogromnej ilości informacji. Aplikacje te wymagają dodania jeszcze szybszego sprzętu do przetwarzania informacji. Taki szybki sprzęt jest specjalnie zaprojektowany do przetwarzania informacji pod ręką, ale nie może wykonywać żadnej innej funkcji, Szybki sprzęt jest zintegrowany bezpośrednio z chipem z resztą sprzętu komputerowego. Możemy znaleźć procesory specjalnego przeznaczenia wśród następujących grup dostawców:\n• Dostawcy układów scalonych specyficznych dla aplikacji (ASIC) . Jeśli nie możemy znaleźć komputer specjalnego przeznaczenia, którego pragniemy , możemy go wykonać! Potrzeba nam ogromnych sum pieniędzy na rozwój , więc nasza aplikacja robota musiałaby mieć naprawdę wysoką wielkość sprzedaży, aby to rozważyć. Rdzenie komputerów Advanced Risc Machine (ARM) można łączyć z obwodami specjalnego przeznaczenia i nakładać na pojedynczy ASIC\n• Firmy półprzewodnikowe na bazie prefabrykatów. Wiele bardzo małych firm komputerowych buduje komputery specjalnego przeznaczenia. Zwykle są wysyłane do dostawców ASIC aby tworzyć ich projekty na chipy, ale wykonali oni pracę i rozłożyli koszty na wielu klientów. Znajdź je w czasopismach poświęconych projektom elektronicznym i na konwencjach . Rozważ wyszukiwanie ich w internecie przy użyciu funkcji specjalnego przeznaczenia jako jednego ze słów kluczowych\nWiele funkcji specjalnego przeznaczenia zostało zintegrowanych w obwodach komputerowych i wprowadzonych na rynek. Następujące funkcje specjalne są dostępne od kilku dostawców:\n• Łączność bezprzewodowa. Istnieją układy scalone które mogą konwertować i przekazywać sygnały danych falami radiowymi (RF) bezpośrednio do obwodu komputera. Chipy te są używane w pagerach telefonach radiotelefonach , GPS znacznikach RM kartach inteligentnych itd. Jeśli aplikacja robota wymaga komputerów specjalnego przeznaczenie o podobnych, rozważ przyjrzenie się dostawcom na rynkach. Należy jednak pamiętać ,że kilka z tych układów jest dostępnych w małych ilościach. Są również trudne do zastosowania\n• Komunikacja internetowa . Wiele chipów komputerowych jest dostępnych w zintegrowanych interfejsach sieci lokalnej (LAN) używanych do łączenia się z Internetem Co więcej niektóre z tych komputerów mają zintegrowane stosy oprogramowania, które mogą przetwarzać przepływ danych internetowych w czasie rzeczywistym wewnątrz układu. Tego rodzaju przetwarzania może znacznie przyspieszyć działanie robota, jeśli jego konstrukcja wymaga dużej ilości informacji przepływających prze protokół internetowy (IP)\n• Digital Signal Processing (DSP). Obwód DSP jest używany do przetwarzania informacji w sposób w jaki większość procesów ogólnego przeznaczenia nie może tego robić.\n• Procesor OMAP DSP Texas Instruments\n• Kontrolery analogowe. Wiele procesorów specjalnego przeznaczenia ma układ analogowy bezpośrednio na chipie cyfrowym. Jednym z modnych słów dla tego rodzaju układów jest mieszany sygnał. Taka technologia a kilka zalet, ale wiodącym jest koszt. Jeśli mikroukład może spełnić wszystkie wymagania naszego robota bez dalszych analogicznych prac projektowych, możemy wyjść z wyprzedzeniem.\n• Systemy wyświetlania. Wiele robotów wymaga centrali lub wyświetlaczy informacyjnych. Nie jest trudno zintegrować wyświetlacza ciekłokrystaliczne (LCD), nawet duży ,z komputerem. Wiele układów komputerowych może obsługiwać ekrany LCD bezpośrednio.\n• Jednostki o niskim poborze mocy. Komputer kieszonkowy PDA wraz z telefonami i pagerami tworzy całą serię układów komputerowych , które mogą działać na bardzo niskim poziomie napięcia i mocy. Jeśli moc naszego systemu komputerowego robota stanowi znaczną część budżetu zasilania, rozważmy systemy komputerowe o niskiej mocy. Można również stosować wiele innych technik oszczędzania energii w systemach komputerowych\n• Jednostki gier. Jest to mało znany fakt ,ale wiele komputerów skończyło w grach. Zgadza się. Ogromna liczna komputerów w zabawkach przerasta inne praktyczne zastosowania. Są to na ogół bardzo małe komputery, które kosztują prawie nic.\nRównoległe przetwarzanie nie jest nowe. Metoda ta wynika z faktu ,że wiele problemów obliczeniowych nie musi być wykonywanych krok po kroku. Często problem obliczeniowy można podzielić na problemy, które mogą być wykonywane jednocześnie, bez obawy, że praca nad jednym pozwoli uniknąć pracy nad drugim problemem. Podczas II wojny światowej projekt bomby atomowej zatrudniał kilkadziesiąt osób, które pracowały przy kalkulatorach mechanicznych równolegle wykonując obliczenia. Większość współczesnych procesorów ogólnego przeznaczenia (takich jak Intel lub Motorola) zawiera już więcej niż jednego komputera w układzie. Dzieje się tak, ponieważ prawie każdy problem obliczeniowy może przynieść przynajmniej w pewnym stopniu korzyści z przetwarzania równoległego. Zastanówmy się przez chwilę nad wykonaniem następującej pseudo-instrukcji : Jeśli A , wtedy B , w innym przypadku C. Szeregowy sposób przetwarzania tej instrukcji polega na obliczeniu A , a następnie obliczaniu B lub C. Z trzema procesorami, którymi dysponujemy, możemy obliczyć A, B i C w tym samym czasie. Kiedy ta jedna faza obliczeń jest zakończona, komputer wybiera jedynie (w oparciu o A) albo B albo C jako odpowiedź. Może to uratować jeden cykl komputerowy. Prawdą jest to ,że jedna trzecia pracy jest marnowana, ale program działa dwa razy szybciej. Techniki z poprzedniego przykładu nie można ekstrapolować na znacznie bardziej złożony problem obliczeniowy. Wraz ze wzrostem liczby instrukcji w złożonych programach liczba "gałęzi" gwałtownie rośnie. W poprzedniej instrukcji If tylko jedna gałąź była użyta, więc potrzebowaliśmy tylko 21 procesorów ( w rzeczywistości 3). W bardziej złożonych programach z wieloma rozgałęzieniami, liczba procesorów rośnie bardzo szybko co sprawia ,że przetwarzanie równoległe jest niepraktyczne. Sposobem na uniknięcie tego problemu jest ograniczenie liczby aplikacji, które próbujemy rozwiązać za pomocą przetwarzania równoległego. Wiele klasycznych problemów obliczeniowych można w naturalny sposób podzielić na zadania równoległe. Rozważmy przetwarzania pogody lub systemy wizyjne (dla robota) . Pole widzenia może być podzielone na obszary a pojedynczy procesor ,może być przypisany do każdego obszaru w tablicy. Każdy przetwarza informacje przychodzące na jego obszar. Ogólnie procesory mogą komunikować się z sąsiadującymi procesorami .W aplikacji pogodowej każdy procesor aktualizuje pogodę na swoim małym obszarze (który może mieć tylko kilkaset metrów kwadratowych). Komunikuje się z sąsiednimi komputerami, aby poinformować je o istotnych zdarzeniach takich jak wilgotne powietrze poruszające się w ich okolicy. W ten sposób prognozy pogody stały się znacznie dokładniejsze i bardziej aktualne. Procesor macierzowy ma ogólną strukturę\nTaką macierz można zbudować przy użyciu procesorów ogólnego przeznaczenia, ale firmy stworzyły procesory specjalnie zaprojektowane do przetwarzania równoległego. Zawierają struktury komunikacyjne u specjalne instrukcje , dzięki którym przetwarzanie równoległe jest bardziej wydajne. Często firmy te obsługuje oprogramowanie systemu operacyjnego i kompilatory dzięki którym partycjonowanie i hostosowanie aplikacji jest znacznie prostsze\nChipy DSP są w zasadzie procesorami specjalnego przeznacznie zaprojektowanymi do obsługi określonej klasy problemów obliczeniowych. Główną cechą wspólnądla większości układów DSP jest MAC, co oznacza Multiply and Acumulate. Procesory DSP są specjalnie zaprojektowane ,aby szybko pomnożyć dwie liczby razem i dodać je do trzeciej (akumulować). Kilka typów problemów arytmetycznych jest dobrze obsługiwanych przez taki procesor:\n• Szereg Taylora. W 1712 oku matematyk, Brook Taylor napisał wzór, który można wykorzystać do przybliżania funkcji. Gdzie f(x) jest funkcją (z pewnymi ograniczeniami ciągłości) a fn(x) jest n-tą pochodną f(x) względem x , ti f(x) może być przybliżona w pobliżu x = a według wzoru\nplus reszta. Ten wzór zapewnia standardowy sposób przybliżania i obliczania funkcji takich jak sinus czy kosinus .W ten sposób kompilatory konfigurują obliczenia. Obejmuje to kilka kroków mnożenia i akumulacji. Każdy wyraz w tym równaniu to inny MAC. Ogólnie rzecz biorąc, pozostała część może być dowolnie mała przez wykonanie większej liczby warunków (co oznacza ,że jest większa)\n• Filtry Finite Impulse Response (FIR). Są one zwykle używane do filtrowania ciągłego strumienia informacji reprezentujących audio lub wideo. Rozważ odbieranie sygnału audio w obecności silnego zakłócającego źródła szumu 1 kHz. Chcielibyśmy usunąć szum 1 kHz z naszego sygnału (najlepiej jak potrafimy). Jeśli sygnał audio jest cyfrowy, można go wprowadzić do filtru FIR specjalnie zaprojektowanego do odfiltrowywania sygnałów 1 kHz. Metoda filtru FIR pozwala nam to zrobić w tak precyzyjny sposób, jaki jest wymagany, regulowany wyłącznie kosztami. Załóżmy ,że chcemy przefiltrować sygnał x(t) aby wytworzyć sygnał y(t). Uogólniona formuła dla n-etapowego filtra FIR jest dana przez\ngdzie h1… hn są współczynnikami filtra. Widzimy ,że ten wzór jest również serią MAC′ów • Transformaty Fouriera. Zostały opracowane ,jak można się domyślać przez Josepha Fouriera na początku XIX wieku. Transformacje są sposobem reprezentowania dowolnej funkcji w pewnych granicach jako szereg superpozycji czystych fal sinusoidalnych (pomnożone przez współczynnik). Transformata Fouriera ma wiele wariantów, w tym szybką transformatę Fouriera (FFT) i dyskretną transformację kosinusową (DCT). Transformacje te są powszechnie używane do usuwania szumu i niechcianych częstotliwości z obrazu lub sygnału w następujący sposób. Obraz jest przekształcany w serię dyskretnych częstotliwości .Następnie niechciane częstotliwości są kasowane (lub wybierane są pożądane częstotliwości). Tak czy inaczej , ziarna są oddzielane od plew. Następnie obliczana jest odwrotna transformata Fouriera aby zrekonstruować obraz, który jest bardziej przejrzysty i łatwiejszy do zrozumienia niż oryginał. Wystarczy powiedzieć, że FFT i inne podobne transformacje używają szeregu operacji MAC. W robotach, FFT mogą być używane do identyfikacji obiektów w polu widzenia. Jeśli FFT są wykonywane w cyfrowym polu widzenia, komputer DSP robota może szukać sygnatur FFT określonych obiektów odrzucając wszystkie obiekty które nie są zgodne.\nNotki O DSP\nProcesory DSP mają sprzęt specjalnego przeznaczenia, który przyspiesza obliczenia, które muszą wykonać. Te struktury sprzętowe zwiększają zarówno dokładność , jak i szybszą realizację.\nZauważyliśmy , że jedną z głównych cech procesora DSP jest MAC, struktura sprzętowa zdolna do wykonywania mnożenia, po którym następuje dodawania. Ta operacja matematyczna jest wykonywana na cyfrowej reprezentacji liczby. Liczby mogą być reprezentowane w komputerze w formacie stałoprzecinkowym lub formacie zmiennoprzecinkowym. Należy pamiętać ,że procesory DSP występują w tych dwóch wersjach a procesor zmiennoprzecinkowy.DSP jest znacznie droższy . Liczby stałoprzecinkowa są podobne do znanych nam liczb całkowitych. 16 bitowa liczba stałoprzecinkowa może reprezentować 216 = 65536 liczb. Ten zakres obejmuje około 5 dekad zasięgu (< 100 000) . Ale są pewne problemy z formatem stałoprzecinkowym .Gdybyśmy pomnożyli dwie liczby stałe, np. 60 000 x 50 000, odpowiedź nie mogłaby być reprezentowana w 16 bitowym formacie stałoprzecinkowym. Aby rozwiązać taki problem z przepełnieniem, możemy tymczasowo wymyślić format "16 bitowego zmiennoprzecinkowego". Taki format jest niepraktyczny, ale ilustrujący . Wielu ludzi zna notację naukową, gdzie liczba może być przedstawiona jako 2,71 x 1012, bardzo duża liczba. Załóżmy ,że przyjmujemy naszą 16 bitową liczbę i dzielimy bity inaczej ,używając 10 bitów jako "mantysy" do reprezentowania liczby 2,171 i 6 bitów jako "wykładnika" reprezentującego 12 liczb w naszym przykładzie. To daje naszym liczbom zmiennoprzecinkowym zakres około 210 x 106, dużo większy niż 65536. Jednak dokładność to tylko 210 = 1024, zamiast 65536. Nasz przykład mnożenia (60 000 x 50 000) może być teraz wykonany ponieważ nie przepełnia 6 x 104 x 5 x 104 = 30 x 108 = 3 x 109. Formaty zmiennoprzecinkowe używane w komputerach są nieco inne. Zmiennoprzeciwnkowość daje nam szerszy zakres liczb nad którymi może się odbywać arytmetyka.\nWiele arytmetycznych domen problemowych, na które patrzyliśmy, dotyczy wielu Mac'ów. Szereg Taylora, filtry FIR i FFT wymagają wielokrotnego mnożenia współczynników przez wartości danych aby utworzyć długie zsumowane równanie. Procesory DSP mają struktury adresujące pamięć i sprzęt sterujący, który znacznie przyspieszają takie powtarzalne operacje. W języku matematycznym doskonale nadają się do arytmetyki wektorowej i macierzowej. Najbardziej zaawansowani używają również przetwarzania równoległego ,aby przyspieszyć te obliczenia. Procesory DSP są często używane do przetwarzania równoległego, aby przyspieszyć te obliczenia. Procesory DSP są często używane do przetwarzania ciągłych strumieni informacji takich jak audio, wideo lub dane z odbiornika RF. Strumień danych nigdy się nie zatrzymuje i musi być przetwarzany przez cały czas. Odpowiednio procesory DSP mogą mieć buforowanie wbudowane w ich strumienie przetwarzania i unikać przerw w ruchu, które mogą zablokować jednostkę centralną ogólnego przeznaczenia (CPU). Pomyśl przez chwilę o komputerze stacjonarnym. Jak często blokuje się podczas wykonywania niektórych zadań porządkowych? Takie blokady nie są dozwolone w przetwarzaniu ciągłych danych strumieniowych, a procesory DSP mogą się upewnić ,że tak się nie stanie. Jeśli robot musi przetworzyć ciągłe strumienie danych typu medialnego, rozważ procesor DSP jako alternatywę.\nPodstawową zaletą procesorów ogólnego przeznaczenia jest ich szybkość. Mogą wykonywać proste operacje z oślepiającą prędkością, dzięki czemu wykonują ogromną ilość pracy. Jak mamy znaleźć odpowiedni dla naszego robota? Komputery powstały podczas II wojny światowej. Zostały wykonane przy użyciu lamp próżniowych i powstały w celu złamania kodów wroga. Nic dziwnego ,że najlepszym wyborem dla robota jest najtańszy komputer, który wykonuje swoją pracę. Istnieje wiele wariantów projektowania spośród setek dostępnych komputerów. Aby wybrać najlepszy komputer dla robota musimy być dobrze zaznajomieni z wnętrzem maszyn. To da nam lepszą perspektywę gdy przyjdzie czas wyboru. Komputery mają podstawowe cechy i architektury, które zostały opracowane przez lata. Przyjrzymy się każdemu po kolei.\nKomputery mają w sobie odpowiednik naturalnej wielkości słowa. Przechowują one i manipulują danymi cyfrowymi, które są reprezentowane przez n bitów, z których każdy reprezentuje 1 lub 0. 8- bitowy komputer ma 8-bitowe słowa , które przechowują liczby od 0 do 255. 16 bitowy komputer ma słowa które przechowują numery od 0 - 65536. Rozmiar słowa komputera informuje użytkownika o łatwości obsługi komputera w celu łatwego manipulowania liczbami. Im większy rozmiar słowa, tym szybciej komputer będzie w stanie obsłużyć obliczenia obejmujące duże liczby. Pierwsze nowoczesne chipy komputerowe to maszyny 4 bitowe. Cała wewnętrzna struktura 4 bitowych komputerów miały szerokość 4 bitów, wystarczającą do przechowywania liczb od 0 do 15 dziesiętnie. Świetnie się nadaje do zliczania księżyców Neptuna (8 księżyców) ale nie Jowisza (47 księżyców) . Aby policzyć księżyce Jowisza, 4 bitowy komputer musiałby użyć 2 swoich słów (8 bitów) co dałoby mu zdolność do zliczenia 256 księżyców Czterobitowy komputer nadal może pracować , ale będzie wolniejszy niż komputer 8 bitowy w tym samy zadaniu ponieważ musi wykonać co najmniej dwa razy więcej operacji. Nowoczesne mikroprocesory , które moglibyśmy wykorzystać w naszej ofercie robotów miedzy 8- i 64- bitowymi rozmiarów. Komputery 8 bitowe są zwykle dobrze przystosowane do najprostszych obliczeń robota i pętli sterowania, ale nie jest to zbyt kosztowna propozycja spojrzenia na 16- i 32-bitowe komputery. Komputery z 64 bitowymi słowami zaczynają być drogie. Trzeba spojrzeć na kilka głównych kwestii przy wyborze długości słowa komputera dla robota. Większość konstrukcji robotów ma 8- bitowe procesory, aby oszczędzać energię i pieniądze.\n• Długość danych. Jak dobrze długość słowa pasuje do danych strumienia, z którymi robot będzie miał do czynienia? Jeśli komputer zbiera dane wizyjne w 16- lub 24-bitowych słowach, rozważ użycie komputera 32 bitowego . Jest mało prawdopodobne ,że i tak będziemy musieli wykonać 32 bitową arytmetykę. Jeśli wszystkie dane gromadzone w robocie generują 8 bitowe dane, rozważ 8 bitową długość słowa. Ale przyjrzyj się dokładnie wymaganej arytmetyce. Pamiętaj ,że nawet proste dodanie danych może wymagać dodatkowych bitów długości słowa. Jeśli dodamy dwie 8 bitowe liczby, możemy potrzebować 9 bitowej liczby aby zapisać wynik. Przejście do kolejnego największej długości słowa , komputer jest często bezpieczny; może być potrzebny 16 bitowy komputer\n• Moc komputera. Nawet niewielki 4 bitowy komputer może wykonywać wszystkie obliczenia wymagane w systemie sterowania robotem. Prawdziwe pytania brzmi : czy taki 4 bitowy komputer może zrobić to wystarczająco szybko, aby nadążyć za wymaganiami robota? Jeśli zaprojektujemy robota bardzo ostrożnie możemy zminimalizować zapotrzebowanie na moc komputera. Chodzi o to ,że jeśli dopasujemy komputer do wykonywanego zadania, możemy dużo zyskać, minimalizując to zadanie. Następnie musimy wybrać komputer wystarczająca duży aby wykonać zadanie.\n• Rozmiar pamięci. Często szerokość słowa komputera decyduje o szerokości słowa bank pamięci. Komputer 32 bitowy działa najlepiej z 32 bitowym modułem pamięci . w związku z tym długość słowa może również wpływać na wielkość i koszt pamięci.\nWiele robotów zasilanych jest z baterii. Zajmiemy się później kwestiami związanymi z zasilaniem ale powinniśmy wspomnieć o ty. Aby oszczędzać energię , poszukaj w komputerze następujący funkcji\n• Elektronika niskiego napięcia\n• Praca z małą mocą\n• Obsługa oprogramowania operacyjnego dla stanów o niski poborze mocy\n• Operacje z niższą częstotliwością (jeśli możemy znieść wolniejszą pracę)\nObwód Wspomagania Pamięci\nKomputery wymagają pamięci do przechowywania swoich programów i danych. Pamięć może być dołączana do komputera na kilka różnych sposobów. Oto kilka opcji\n• Przechowywanie programu. Wiele pytań zadano samym oprogramowaniu programu. Gdzie będzie przechowywany? Pamięć flash i dysk to dwie popularne metody. Pamięć flash jest bardziej niezawodna fizycznie, co jest ważne , jeśli robot będzie mobilny. Przyjrzyjmy się krótko obu rodzajom pamięci. W jaki sposób program zostanie zmieniony? Zawsze dobrze jest zachować możliwość uaktualnienia oprogramowania w robocie. Oznacza to ,że potrzebujemy metody pobrania informacji o programie do robota. Można to zrobić na wiele sposobów , w tym za pośrednictwem kanału komunikacji. Jeśli robot ma kanał komunikacji ze światem zewnętrznym, możemy zakodować polecenia w kanale, które umożliwią przeprogramowanie oprogramowania robota. Jeśli robot znajduje się w odległej lokalizacji (np. Mars), musielibyśmy to zrobić bardzo ostrożnie. Akcentowana technika polega na uruchomieniu polecenia pobierania, wciągnięciu bloków danych programu z pełnym wykryciem i korektą błędów, przechowywanie programu w formie bloku aż wszystko dotrze , a następnie wysłaniu go do pamięci flash lub dysku. Jeśli to możliwe, umieść pamięć flash stronicowania w robocie, aby program rozruchowy zawsze istniał i nie ulega zmianie. Program startowy może pobrać i nagrać program flash. W ten sposób mamy minimalną szansę na uszkodzenie programu do tego stopnia, że nie mamy możliwości odzyskanie go. Kolejną rzeczą do zapamiętania na temat o pobieraniu na dużą odległość jest to ,że często występują znaczące opóźnienie w komunikacji. Protokół pobierania musi przetrwać wszystkie rodzaje błędów komunikacyjnych, w tym duże opóźnienie w czasie transmisji. W przypadku jednej z misji lądowania na Marsie, mobilny robot mógł być przeprogramowany tylko raz dziennie. Oprócz opóźnień w komunikacji zespół przeprogramowujący musiał uporać się ze zmniejszoną przepustowością komunikacji, rotacją planety, plamami słonecznymi i tak dalej. Ogólnie, przygotuj protokoły komunikacyjne dla kuloodpornego robota. Oczekuj nieoczekiwanego. Nawet Marsjanie mogą pojawić się i stanąć obok anteny. Sneaker Net jest innym sposobem na pozyskanie informacji o programie do robota. Gdy robot jest dostępny, inżynierowie mogą podejść do niego i stwozyć nowe zmiany w oprogramowaniu\n• Zakres adresowania pamięci. Komputery mają zestaw instrukcji, które kodują adrsy, instrukcje są przechowywane w pamięci jako seria bitów .Pozwala to na bezpośedni dostęp do lokalizacji w pamięci w celu odczytu ,zapisu lub modyfikacji. Aby zakodować adres pamięci w instrukcji, adres musi zająć kilka bitów w instrukcji. Często niektóre z bitów w instrukcji odwołują się do inne rejestru z wieloma bitami do wypełnienia adresu. Ostateczny adres jest nazywany adresem efektywnym. Liczba różnych adresów pamięci do których można uzyskać dostęp w dowolnym momencie ,zależy od liczby bitów w adresie efektywnym. Różne instrukcje komputera będą miały dostęp do różnych zakresów adresów. Ogólnie rzecz biorąc, długość słowa komputera określa największy zakres adresów. 32 bitowy procesor może ogólnie adresować 232 bajtów (około 4 miliardy bajtów). Procesroy z 8 lub 16 bitami generalnie używaj16 bitowego zakresu adresów dla 65 tysięcy bajtów. Zakres adresowania pamięci jest ważny ponieważ ograniczą liczbę bajtów pamięci, którą komputer może zobaczyć w dowolnym momencie Jeśli oprogramowanie naszego robota analizuje wiele tysięcy bajtów jednocześnie, zastanów się czy 16 bitowy zakres adresowania jest wystarczający . Korzystanie z 32 bitowego komputera nie kosztuje dużej ilości dodatkowych pieniędzy. Jeśli komputer ma jednostkę zarządzania pamięcią (MMU), możliwe jest uzyskanie bardzo dużego zakresu adresowania i obsługi dużej pamięci.\n• MMU. MMU to zestaw rejestrów w układzie komputerowym, który umożliwia komputerowi dostęp do ogromnej tablicy pamięci. Użyjmy wizualnego obrazu , aby opisać co MMU robi. Pomyśl o tablicy pamięci jak o ogromnym polu pszenicznym bajtów na zewnątrz. Pomyśl o tym ,że komputer znajduje się w domu z oknem wychodzącym na pole bajtów. Komputer może przetwarzać instrukcje ,aby manipulować wszystkimi bajtami widocznymi poza oknem ale nie tymi których nie widzi. Teraz stwórzmy magiczne MMU, które może przesuwać okno wokół ścian domu. MMU przechowuje lokalizacje okien i może zapamiętać kilka różnych lokalizacji dla okna (zwanych stronami) W rzeczywistości każdy użytkownik komputera może mieć swoje własne położenie okna , i jako takie, prywatną pamięć w polu bajtów. W ten sposób komputer może obsługiwać wielu użytkowników bez trudności w ich rozdzielaniu.\nO tak! Większość pamięci komputerowych zawiera układy pamięci. Są to układy scalone, które zawierają tysiące lub miliony pojedynczych, które komputery może odczytać i zapisać. Dostępnych jest kilka rożnych typów pamięci i wszystkie przynoszą różne korzyści projektowi robotów. Warto wiedzieć o najpopularniejszych typach pamięci i tym co mogą zrobić dla projektu robota\nKażdy komputer potrzebuje miejsca do przechowywania jego programu operacyjnego. Program nie może zniknąć po wyłączenia zasilania. Przy obecnej technologii prawie każdy komputer trochę pamięci flash, która zawiera początkowe oprogramowanie uruchamiane po uruchomieniu komputera. Ta sama pamięć flash może zawierać większość lub całość oprogramowania komputerowego. Podstawową zaletą pamięci flash jest to ,że zachowuje ona swoją zawartość przy braku zasilania, czyniąc ją pamięcią nieulotną. Nie zajmujmy się tu fizyką. Flash można zaprogramować po zbudowaniu robota i zachować program przez cały okres eksploatacji robota. Większość pamięci flash można przeprogramować w polu jeśli program musi zostać zmieniony. Poza przechowanie programu na komputerze, pamięć flash może być używana do trwałego przechowywania innych danych, które robot może zebrać, prawie jak system dyskowy. Jedynym zastrzeżeniem jest to ,że wiele pamięci flash można zapisać tylko określoną ilość razy zanim ulegną awarii. Specyfikacja układu pamięci flash będzie określać, ile razy można zapisać flash. Jeśli więc istnieje potrzeba nieulotnej pamięci w danym momencie, rozważ umieszczenie pamięci flash w robocie. Czasami ten rodzaj pamięci można dodać do komputera robota za pomocą kart PCMCIA (Personal Computer Memory Card International Association)\nJest to rodzaj pamięci ulotnej, która jest względnie prosta w użyciu z perspektywy elektrycznej. Nie wymaga skomplikowanego timingu. Jednak pamięć statyczna jest generalnie mniejsze i wypadły z łaski. zwykle używają od dwóch do czterech tranzystorów dla przechowania tylko jednego bitu pamięci , podczas gdy najtańsze pamięci (pamięć dynamicznego dostępu losowego DRAM) używają tylko jednego tranzystora dla przechowania bit.. Jedyna rzecz w której pamięć statyczna jest dobra to kopia zapasowa baterii. Pamięć statyczną można uczynić nieulotną z dodatkiem baterii. Często łączy się je z bateriami litowymi lub podobnym, które mają długi okres trwałości. Niektóre rodzaje pamięci statycznych zużywają bardzo mało energii, gdy są wyłączone i mogą przechowywać ważne dane przez długi czas\nWiększość komputerów korzysta z pamięci flash dla nieulotnego programu rozruchowego i pamięci dynamicznej dla większości niestabilnej przestrzeni pamięci. Często zdarza się że cały program komputerowy jest przechowywany w pamięci flash, przenoszony do pamięci dynamicznej i wykonywany z tego miejsca. Powodem jest to ,że szybkość wykonywania z pamięci dynamicznej jest często szybsza. Aby zrozumieć dlaczego ,musimy tym razem przejść do fizyki DRAM zachowuje się tak jak robi to z jednego podstawowego powodu używa tylko jednego tranzystora do przechowywania. Robi to , wykorzystując część pojemności pod tranzystorem. Kondensator to w zasadzie miejsce do przechowywania elektronów. Liczba elektronów w kondensatorze określa czy binarna jedynka lub zero istnieją w bicie. Bit danych w formie napięcia można przenieść do tranzystora. Następnie tranzystor może umieścić dane w kondensatorze, po prostu włączając go. Jeśli dane , reprezentowane przez napięcie to jeden wtedy elektrony wpadają do kondensatora . Jeśli dane to zero, kondensator jest pozbawiony elektronów. Gdy nadejdzie czas odczytu bitów danych, tranzystor włącza się , a liczba elektronów w kondensatorze jest kontrolowana. Jeśli jest ich wystarczająco dużo, komputer odczytuje jeden jeden. DRAM jest bardzo gęsty , ponieważ potrzebuje tylko jednego tranzystora na bit, co pozwala zaoszczędzić miejsce na samym obwodzie scalonym. Jednak z tą strukturą pamięci występują pewne problemy. Na początek sam odczyt bitu niszczy go. Nazywa się to odczytem destrukcyjnym. Natychmiast po odczytaniu bitu obwód podtrzymujący pamięć w komputerze musi przepisać bit danych z powrotem do kondensatora. Pojawia się także inny problem. Gdy tylko trochę zostanie zapisane w kondensatorze pod tranzystorem, zaczyna się pogarszać. Elektrony w kondensatorze zaczynają przeciekać jedne po drugim. Zajmuje to tylko kilka milisekund, zanim integralność bitu danych może zostać zakwestionowana. Odpowiednio, wiele układów pamięci ,ma wbudowane w nie obwody aby automatycznie odczytywać każdy bit i przepisywać co kilka milisekund. Ten proces nazywa się odświeżaniem . Niektóre komputery wykonują tę operację za pomocą odświeżania obwodów wewnątrz samego układu komputerowego. Zachowaj ostrożność podczas przemyślenia schematu odświeżania podczas wybierania pamięci dla robota. Przynajmniej jeden z chipów musi obsłużyć zadanie odświeżania. Jedyną z innych wad pamięci DRAM jest złożony czas wymagany dla sygnałów. Dowiemy się jak działa DRAM w ciągu minuty, ale złożony czas sygnałów wywołuje dwa problemy. Przede wszystkim nie ma prawie żadnej możliwości na spanie komputera, aby zaoszczędzić energię. Przy wszystkich sygnałach działających cały czas, pamięć DRAM generalnie nie może przejść do trybu niskiego poboru mocy. Jeśli tryb uśpienia o niskiej mocy jest ważny dla projektu robota, należy rozważać SRAMS. Po drugie, jeśli budujemy własny komputera od zera, bardzo ostrożnie analizuj czas sygnałów DRAM. Jeśli nawet trochę odbiegają od wymagań , mogą wystąpić błędy, które trudno będzie wyizolować. Aby poprawnie używać DRAM, musimy przyjrzeć się jego wewnętrznej konstrukcji. DRAM jest zwykle budowany jako tablica bitów. Jeżeli miliony bitów ( 1 024 x 1 024 = 1 milion) znajduje się wewnątrz pamięci DRAM, bity mogą być rozmieszczone jako 1 duża macierz z 1024 kolumnami, z których każda ma 1024 bity w wierszu. Linie adresowe wchodzące do DRAM są zazwyczaj podzielone. Aby zaadresować 1 milion bitów wewnątrz DRAM, wymaganych jest 20 bitów adresy (210 = 1 milion). Zamiast 20 pinów adresowych pamięci DRAM, ma ona prawdopodobnie tylko 10 i są używane dwa razy w następujący sposób. Pierwsze 10 bitów adresu jest przedstawianych pamięci DRAM. Te 10 bitów adresu może adresować cały rząd bitów w tablicy pamięci. Ten cykl nazywa się RAS ,Row Address Select. W tym czasie cały zaadresowany wiersz zawierający 1024 bity pamięci jest odczytywany do rejestru odczytu RAS wewnątrz pamięci DRAM. Następnie układ komputerowy dostarcza pozostałe 10 bitów adresu ma wejściowe piny DRAM podczas tzw. cyklu CAS , Column Address Select. Podczas cyklu CAS, tylko jeden z 1024 bitów pamięci z rejestru odczytu RAS jest wysyłany na pin wyjściowy DRAM. Jest to cykl RAS/CAS. Ten typ architektury oszczędza dużo przestrzeni i obwodów wewnątrz pamięci DRAM i stał się standardem w branży komputerowej. Czas wszystkich sygnałów DRAM musi być bardzo dokładny aby uniknąć błędów. Większość chipów komputerowych dostępnych na rynku będzie obsługiwać DRAM bezpośrednio z domyślnym taktowaniem znanym ze współpracy ze współczesną pamięcią DRAM. Większość chipów komputerowych ma również w sobie rejestry , które można wykorzystać do zmiany domyślnego taktowania pinów interfejsu DRAM komputera. Jedną z interesujących korzyści z cyklu RAS/CAS jest to ,że w naszym przykładzie 1024 bity są pobierane w tym samym czasie podczas cyklu RAS. To tylko preferencja, że chcemy tylko jeden bit podczas cyklu CAS. Prawda jest taka że jeśli uruchomimy wiele cykli CAS po pojedynczym cyklu RAS, możemy pobrać wiele bitów z rejestru odczytu RAS. Ta metoda korzystania z DRAM jest ogólnie nazywana trybem strony i nie obsługuje go cała pamięć DRAM. Następna sekcja poświęcona pamięci podręcznej zilustruje dobre wykorzystanie tej funkcji. DRAM występuje w wielu różnych stylach, każdy z innym akronimem. Każdy z nich ma inne wymagania dotyczące czasu i mocy.\nŚwietnie, właśnie wtedy gdy myśleliśmy ,że mamy tę pamięć policzoną, nadchodzi kolejna. Pamięć podręczna jest niewielka ilość pamięci wewnątrz chipu komputerowego, która znacznie przyspiesza wykonywanie programu. Główną ideą jest to ,że zewnętrzne mikroukłady pamięci DRAM na chipie komputerowym zabierają dużo czasu, aby dostarczyć je do wnętrza układu komputerowego, może nawet 60 ns. To może wydawać się długotrwałe, ale jeśli weźmiemy pod uwagę, że układ komputerowy może wykonywać polecenia co 10 ns, traci dużo czasu na oczekiwanie na instrukcje, aby wyjść z pamięci. To co robi pamięć podręczna, to doglądanie dostępu do pamięci zewnętrznej. Jeśli obwód sterujący pamięci podręcznej wewnątrz układu scalonego komputera jest przekonany ,że już wie, jaka jest zawartość adresu pamięci, powoduje to przerwania cyklu pamięci układu scalonego i po prostu pobiera dane z własnej pamięci podręcznej. W ten sposób instrukcja będzie wykonywana od dwóch do sześciu razy szybciej. Łatwo jest używać pamięci podręcznej, ponieważ jest ona przeźroczysta dla programisty. Pamięć podręczna jest po prostu włączona i automatycznie działa w celu przyspieszenia wykonywania programu. Wiele programów komputerowych będzie wykonywanych w ciasnych pętlach przez krótki czas. Wykonanie pętli FOR w C jest typowym przykładem. Pętle FOR wykonują te same instrukcje dla określonej liczby iteracji. Podczas wykonywania pętli FOR, program w C wykonuje te same instrukcje w kółko. Jeśli te instrukcje zostaną umieszczone w pamięci podręcznej, pętla FOR będzie działać znacznie szybciej. Z reguły większość programów będzie wykonywała w takich "lokalnych" pętlach znaczny procent czasu. Jest to prawdziwa moc wykorzystywana struktury pamięci podręcznej w procesorze. Nawet niewielka ilość pamięci podręcznej przechodzi długą drogę. Zasadniczo tylko szybsze układy komputerowe ,mają układ obwodów pamięci podręcznej, ponieważ tylko one mogą z niej naprawdę skorzystać. Jak działa pamięć podręczna? Najpierw opiszemy bardziej złożoną strukturę pamięci podręcznej, później przyjrzymy się uproszczeniu. Przede wszystkim pamięć podręczna zwykle ma zaledwie kilka tysięcy słów. Każde z tych słów może zawierać zarówno pełne słowo danych pamięci (duplikowanie zawartości adresu pamięci DRAM), jak i sam adres pamięci DRAM. Ponieważ komputer odczytuje dane adresu DRAM, za pierwszym razem, kontroler pamięci podręcznej umieszcza dane i adres w pamięci podręcznej w tym samym czasie. Później, jeśli program komputerowy odczyta ten adres DRAM pamięć podręczna rozpozna adres jako dopasowanie, zwróci uwagę komputera szybko zastąpi dane z pamięci podręcznej i zmniejszy dostęp do pamięci. Ponieważ program kontynuuje dostęp do adresów DRAM w małej "pętli lokalnej", wszystkie dane z tych adresów są również umieszczane w pamięci podręcznej. Ponieważ program kontynuuje przeglądanie tych adresów DRAM pamięć podręczna postępuj naprzód z danymi i działa w celu przyspieszenia pracy komputera. Gdy program przejdzie do innej części programu, nowe dane zostaną zapisane w pamięci podręcznej. Ale co się dzieje, gdy pamięć podręczna się zapełni? Ogólnie rzecz biorąc , kontroler pamięci podręcznej ma sprzęt który bada najmniej używane słowa w pamięci podręcznej. Kiedy nowa lokalizacja jest wymagana dla danych pamięci podręcznej, kontroler wybiera najmniej używaną lokalizację pamięci podręcznej, zrzuca stare , nieużywane dane i umieszcza w niej nowe dane pamięci podręcznej. Na marginesie, kiedy dane są zapisywane w pamięci, która jest również buforowana, dane są zapisywane w pamięci w tym samym czasie, w którym są zapisywane w prawdziwej pamięci DRAM. W ten sposób dane pamięci podręcznej pozostają takie same jak zawartość pamięci DRAM. Kontroler pamięci podręcznej musi rozpoznawać , kiedy musi działać gdy komputer uzyskuje dostęp do adresu DRAM. Najbardziej złożoną metodą jest przechowywanie adresu DRAM wewnątrz pamięci podręcznej. Kontroler pamięci podręcznej musi wówczas mieć sprzęt dopasowujący adres , który może porównać wygenerowany komputerowo adres DRAM ze wszystkimi adresami w banku pamięci podręcznej. ten rodzaj sprzętu jest drogi i jest ogólnie znany jaki Content Addressable Memory (CAM). Mniej kosztowną alternatywą jest po prostu buforowanie tylko w niewielkim zakresie adresów. Jeśli komputer może buforować wszystkie dane DRAM znajdujące się w określony zakresie adresów pamięci, rzeczy są upraszczane. Kontroler pamięci podręcznej musi jedynie porównywać górne bity adresu wygenerowanej przez komputer pamięci DRAM z adresem buforowanego zakresu pamięci. Pamięć podręczna może znajdować się w kilku różnych miejscach. Jeśli znajduje się w układzie procesora, zwykle jest to pamięć podręczna pierwszego poziomu (L1) Jest najszybszy i ponieważ jest w układzie komputerowym, jest na ogół najmniejszy i najdroższy. Projektanci płyt mogą również umieszczać układy pamięci podręcznej pomiędzy chipem komputera i DRAM. Ta pamięć podręczna ,poza układem procesora, jest ogólnie nazywana pamięcią podręczną Level 2 (L2). Czasami pamięć podręczna L2 znajduje się również wewnątrz układu komputerowego. Pamięć podręczna L2 jest wolniejsza niż L1, ale często jest większa. Kontroler pamięci podręcznej najpierw sprawdza pamięć podręczna L1. Jeśli pamięć podręczną L1 nie ma danych, kontroler pamięci podręcznej sprawdza pamięć podręczną L2. Jeśli pamięć podręczna L2 nie ma danych, kontroler pamięci podręcznej przechodzi do pamięci DRAM.\nJak widziałeś, pamięć podręczna jest najbardziej efektywna, gdy program komputerowy jest pętlą w małej pętli lokalnej część programu ogranicza się do niewielkiej liczby adresów pamięci DRAM, które mogą znajdować się w pamięci podręcznej w tym samym czasie. Możliwe jest niewłaściwe użycie pamięci podręcznej. Rozważmy program , który omija wszystkie miejsca w pamięci. Kontroler pamięci podręcznej nie może być efektywny, jeśli nie może przechowywać wszystkich instrukcji w pamięci podręcznej w tym samym czasie. Jest ciągle proszona o umieszczenie nowych lokalizacji w pamięci podręcznej i jest nieefektywna. Mówi się , że programista "wyrzuca pamięć podręczną" Powtórz to pięć razy szybko! Bądź ostrożny przy projektowaniu oprogramowania robota, którego wykonanie programu nie przeskakuje za szybko. W większych , bardziej złożonych procesorach komputerowych (takich jak StrongARM), możliwe jest ograniczenie wykorzystania pamięci podręcznej do określonych zakresów pamięci, a tym samym unikanie obszarów programu komputerowego, które zrzuca pamięć podręczną bez pozytywnych korzyści. Przy okazji pamięć podręczna może również przechowywać i naśladować zawartość pamięci flash.\nInterakcja Pamięci Podręcznej Z DRAM\nWspomnieliśmy wcześniej ,że DRAM może być używana w trybie stronicowania. Gdy procesor z nowoczesnym kontrolerem pamięci podręcznej (takim jak Xscale StrongARM) odczytuje adres DRAM, nie czyta tylko jednej instrukcji . Ponieważ Dam pobiera 1024 bitów jednocześnie podczas cyklu RAS, procesor może wykonać ,na przykład, 16 cykli CAS, aby wypełnić pamięć podręczną kolejnymi słowami z pamięci. Jest to bardzo czasochłonny sposób na wypełnienie pamięci podręcznej. Procesor ma inne zadania związane z pobraną instrukcją , podczas gdy kontrole pamięci podręcznej jest zajęty przeciąganiem słów z pamięci za pomocą cyklów CAS z trybu stronicowania. Wadą takiego działania jest to ,że trudno jest monitorować działania procesora na zewnątrz , po prostu obserwując aktywność na liniach adresu pamięci.\nRejestry Obliczeniowe I Przechowujące\nKażdy układ komputerowy jest w stanie wykonywać funkcje arytmetyczne i logiczne. Zawieraj układy obliczeniowe, które mogą dodawać i odejmować słowa o długości słowa przy prędkości instrukcji. Z pewnością ważne jest ,aby przeanalizować wymagania dotyczące robota i obliczenia arytmetyczne, które będą konieczne. Pomówimy o tym później, ale ważne jest aby zwrócić uwagę na jedną lub dwie rzeczy tu. Po pierwsze , komputery zawierają zapasowe rejestry długości słowa, które są używane do przechowywania wyników pośrednich, gdy nie są używane. Jeśli obliczenia obsługują wiele różnych liczb w tym samym czasie, komputer z wieloma zapasowymi rejestrami (zwanymi rejestrami ogólnego przeznaczenia [GP]) może często wykonywać obliczenia z większą szybkością. Aby skorzystać z tej możliwości, często musimy bardzo dokładnie przyjrzeć się oprogramowaniu i kompilatorowi (jeśli taki istnieje) Często kompilator automatycznie unika używania rejestrów GP, preferując zamiast tego wolniejsze lokalizacje pamięci. Dzieje się tak , aby kompilator był dostępny na wielu różnych komputerach , z których niektóre mają niewiele rejestrów GP. Jeśli mamy specyficzne procedury programowe (takie jak pętle w oprogramowaniu system sterowania robota), które chcemy przyspieszyć, możemy zwrócić szczególną uwagę na ten mały obszar kodu. Często z instrukcjami języka C takimi jak konstrukcja rejestru, możemy wymusić na kompilatorze generowania kodu, który będzie wykorzystywał szybsze rejestry GP podczas obliczeń. Nadal musimy sprawdzić kod pośredni, aby upewnić się ,że otrzymujemy pożądane rezultaty. Oczywiście jeśli kod robot jest zapisany w kodzie asemblera, można znacznie przyspieszyć ten proces. Weźmy pd uwagę strukturę wewnętrznego rejestru komputera podczas wybierania komputera lub projektowania oprogramowania. Pod drugie, należy pamiętać, że niektóre mają więcej sprzętu obliczeniowego niż inne .Wszystkie komputery mają stałe możliwości obliczeniowe a niektóre z nich mają również zmiennoprzecinkowe możliwości . Inne ,jak już wspominaliśmy, mają bardzo specjalne jednostki obliczeniowe z wbudowanym DSP lub sprzętem komunikacyjnym. Ponownie przyjrzyjmy się wymaganiom komputera.\nZbiór instrukcji jest językiem podstawowym komputera. Są to zazwyczaj długości słowa asemblerowego, na które komputer może spoglądać, aby zrozumieć co musi zrobić podczas wykonywania programu. Nie ma znaczenia, czy program jest w językach C, Forth, C++, fortran lub asemblerze. Kompilatory i asemblery zawsze muszą redukować program do szeregu zbioru poleceń , które komputer może wykonać. W języku asemblera wyglądają mniej więcej tak:\nPo przetłumaczeniu na wartości binarne, będą znajdować się w takich słowach instrukcji jak te :\nTe instrukcje są dekodowane z dużą prędkością wewnątrz komputera i są wykonywane natychmiast. Wiele lat temu, firmy komputerowe budowały komputery wielkości lodówek i starały się sprzedawać klientom bogactwo zestawów instrukcji. Prawda jest taka ,że prawie nikogo to nie obchodzi. Ludzie kupują komputery z zupełnie innych powodów niż ten. Dlaczego więc mamy się tym przejmować? Jeśli budujemy robota i obserwujemy nasz budżet, powinniśmy ostrożnie wybrać komputer. Niektóre chipy komputerowe będą lepiej odpowiadać naszym wymaganiom niż inne. Patrząc na to w inny sposób, mając mocniejszy układ komputerowy, często możemy zaoszczędzić dostosowując algorytmy robota do mocy komputera. Spójrzmy więc na niektóre rodzaje zbiorów instrukcji.\nRISC oznacza Reduced Instruction Set Computer. Wyimaginowany 8 bitowy zestaw instrukcji pokazany wcześniej jest podobny do zbioru instrukcji RISC. Instrukcje są elementarne i generalnie mogą wykonywać tylko małe obliczenia w danym czasie. Maszyny RISC miały czerpać moc z oślepiającej szybkości, nawet w porównaniu z bardziej złożonymi zestawami instrukcji. Komputery RISC były reklamowane dekady temu jako duży postęp w sprzęcie komputerowym, zaprojektowanym w celu znacznego przyspieszenia obliczeń. Technologia ta w żaden sposób nie podbiła świata komputerów. Wiele projektów komputerowych RISC wciąż istnieje, takich jak MIPS, ARM i inne. Generalnie mają one mniejsze, prostsze matryce półprzewodnikowe i mogą być łatwiej zintegrowane z ASICS niż większe komputery rdzeniowe. Ale nie znalazły swojej niszy z powodu swej szybkości. Przeciwnie, znalazły swoje miejsce w projektach o niskiej mocy i względnej możliwości przenoszenia projektów.\nComplex Instruction Set Computers (CISC) to normą od czasu komercyjnego wykorzystywania komputerów. Instrukcje są dużo bardziej złożone niż te w urządzeniach RISC (stąd nazwa). Chociaż maszyna CISC może nadal zawierać instrukcje ADD (dodawania) i SUB (odejmowania) może również zawierać instrukcje MPY (mnożenia), DVD (dzielenia), ECC (sprawdzanie i korygowanie błędów) i MAC (mnożenie i akumulacja), które wykonują skomplikowane obliczenia. Instrukcja MPY zwykle wymaga szeregu ADD i SHIFT. Instrukcja DVD wymaga serii SUB i SHIFT. MAC wymaga co najmniej MPY i ADD. Budowanie obwodów sterujących w komputerze może być bardzo kosztowne, ponieważ może zarządzać cyklami w tak złożonej instrukcji. Większość projektantów procesorów zbudowała procesor uCode (mikrokodu), w procesorze komputera. W efekcie ,mały, bardzo szybki procesor uCode RISC będzie w procesorze CISC. Program uCode byłby osadzony w szybkiej pamięci tylko do odczytu (ROM), i wykonałby bardzo krótką serię cykli maszynowych uCoded w celu wykonania zamierzonej instrukcji CISC. Kod dla instrukcji MPY x,y wyglądałby tak:\nProgram uCode wykona serię przesunięć i dodawań dla osiągnięcia MPY. Zaletą zestawu instrukcji uCoding jest to ,że sprzęt CISC może być uproszczony. Wiele instrukcji CISC może być kodowanych za pomocą zaledwie kilku wpisów w pamięci ROM z kodami uCode. Zestaw instrukcji CISC może wymagać więcej czasu aby wykonać program, ale skompilowane programy C (dostarczane przez użytkowników) miałyby mniejszą liczbę bajtów. Niektóre procesory uCoded umożliwiają użytkownikom końcowym dostarczenie kodu uCode, który może być wykonany z szybkiej pamięci RAM wewnątrz silnika uCode. Ta funkcja jest próbą projektantów CISC uchwycenia niektórych zalet architektury RISC. Użytkownicy końcowi mogą skutecznie tworzyć własne instrukcje. Jest to przydatne , jeśli robot ma jeden lub dwa proste algorytmy, które muszą działać szybciej. Jednak zapisywanie kodu uCode może być bardzo tudne. Dokumentacja często nie jest dobra, a wsparcie często jest gorsze . Główna zaletą urządzenia uCodec CISC jest bogactwo zestawu instrukcji. Wielu projektantów maszyn CISC dostarcza specjalistycznych instrukcji które mogą być przydatne w konkretnych okolicznościach. Niektóre komputery CISC będą miały określone instrukcje dotyczące przetwarzania ciągłych strumieni danych , które mogą pochodzić interfejsów komunikacyjnych. Staje się to prawie przeplatane z urządzeniami DSP. Jeśli robot potrebuje specjalizowanych instrukcji lub przetwarzania danych , poszukaj ich w zestawie instrukcji CISC rozważanych procesorów. Procesory Pentium mają zestaw instrukcji Multimedia Etenxsion (MMX) i pewne konstrukcje , które są dobre dla przetwarzania danych wektorowych. Niektóre maszyny CISC dostarczają instrukcje zmiennoprzecinkowe, które mogą znacznie przyspieszyć niektóre algorytmy . Inne zapewniają instrukcje komunikacyjne, takie jak obliczanie wielomianów ECC i kodów Viterbiego.\nChcąc zapewnić dodatkową moc procesorów, niektórzy projektanci tworzą parę procesorów razem. Procesory klasy Pentium mogą działać w tandemie. Dzięki temu te same programy działają nieco szybciej bez znaczących modyfikacji . Inni projektanci połączyli procesory o różnych możliwościach. PowerPC firmy Motorola jest w takiej samej klasie. Drugi procesor jest nazywany jest procesorem komunikacyjnym i jest zarezerwowany prawie wyłącznie na użytek projektantów procesorów .Motorola w celu zapewnienia przetwarzania komunikacji. Jest to prosta maszyna RISC, która nie jest udokumentowana dla użytkowników końcowych. Jest używany , na przykład, do zapewnienia przetwarzania niezbędnego do wdrożenia interfejsów LAN (sieci lokalnej) . Procesor komunikacyjny może obsłużyć jednocześnie kilka interfejsów komunikacyjnych, ograniczonych jedynie całkowitą przepustowością koprocesora. Inne protokoły komunikacyjne, takie jak ATM, Sonet i inne, są dostępne jako kompletny kod uCode, który można załadować do koprocesora i rozpocząć. Jeśli uda nam się znaleźć procesor o znacznej mocy przetwarzania można go wykorzystać go do przetwarzania równoległego. nowo wprowadzone procesory sieciowe mogą być używane w ten sposób. Jest to w zasadzie wiele procesorów RISC w jednym chipie. Są używane do przetwarzania pakietów w Internecie, zadania, które można podzielić na partycje i wymaga dużej mocy. Te układy są dostępne w Vitesse, IBM, Mototrola i wielu innych. Do tej pory były one używane tylko do przetwarzania sieciowego, które obsługuje pakiety IP w czasie rzeczywisty, ale są bardzo wydajnymi maszynami do przetwarzania równoległego i mogą działać dobrze w systemie sterowania robotem.\nBez względu na to jak dobry jest procesor, nie ma sensu , jeśli nie może komunikować się ze światem zewnętrznym. Komputer może przetwarzać informacje tak szybko jak najwolniejsze łącze w swoim łańcuchu komunikacyjnym. Poza tradycyjnym wejściem/wyjściem (I/O) , do którego dojdziemy za chwilę, inne ścieżko komunikacyjne w komputerze mogą go spowolnić Jeśli pamięć jest zbyt wolna dla procesora, wszystko zwalnia. Podczas projektowania systemu robota po raz pierwszy należy bardzo uważnie analizować wymagane przepustowości komunikacyjne w całym obwodzie komputera. Pomyśl o osobie niewidomej. Niewidomy może z pewnością myśleć szybko i wymyślać rzeczy, ale może zająć mu więcej czasu niż większości aby przyswoić wizualne lub drukowane materiały za pomocą Braille'a. Jako taka, osoba niewidoma może nie być najlepszym wyborem jako kontroler ruchu lotniczego. Świat jest dopasowany do ludzi widzących i dlatego często stawia osoby niewidome w gorszej sytuacji. Jednak niewidomi mogą mieć zalety w sytuacjach, w których ich specjalnie wyszkolone umiejętności słyszenia wychodzą na pierwszy plan. Tak więc niektóre procesory mają większą przepustowość we/wy niż inne. Jeśli architektura systemu robota wymaga aby procesor przetrawiał i przetwarzał wszystkie bajty przychodzące w interfejsie LAN 1000BT z pełną prędkością, to całkiem niezły zakład, że nie będzie żadnych 8 bitowych procesorów, które poradzą sobie z tym. Musimy ocenić wiele miejsc wewnątrz sprzętu komputerowego aby ustalić ,czy wystarczająca przepustowość będzie w stanie obsłużyć rozważany projekt.. Poniżej rozważmy następujące składniki komputera.\nMagistrala to ścieżka komunikacyjna wewnątrz komputera , który przenosi dane z jednego miejsca do innego. Ogólnie rzecz biorąc, magistrala jest zbiorem śladów drutu na płytce drukowane z protokołem, który definiuje znaczenie sygnałów na ścieżkach. Nie jest możliwe umieszczenie większej ilości danych w magistrali niż w protokole, który może obsłużyć. W rzeczywistości rzadko się zdarza ,że można uzyskać pełną, nieprzetworzoną przepustowość magistrali. Planując projekt systemu, rozsądnie jest zmniejszyć prędkość magistrali od 50 do 80 procent reklamowanej przepustowości. Jest to najprawdopodobniej najszybsza szybkość z jaką będziemy mogli przesyłać bajty przez magistralę. Magistrale są zwykle projektowane przez komitety branżowe w celu rozwiązania konkretnych problemów transferu danych. Często magistrala zostanie zaprojekowana aby umożliwić wiele producentom zbudowanie kompatybilnego sprzętu. Magistrale mają charakterystyki takie jak szerokość (analogiczna do długości słowa), szerokość pasma w bajtach na sekundę, napięcie i obciążenie. Obciążenie określa liczbę oddzielnych urządzeń , które mogą być podłączone do magistrali w tym samym czasie. W większości systemów komputerowych stosuje się wiele magistral. Aby upewnić się ,że porównujemy przepustowość każdej magistrali z wymaganiami określonym przez architekturę systemu, ważne jest aby wymienić każdą magistralę w komputerze. Niektóre magistrale są ukryte przed większością użytkowników, i nie mają nawet popularnych nazw.\nWszystkie komputery mają interfejs między pamięcią a procesorem. Procesor może tylko odczytywać i zapisywać w pamięci z określoną prędkością. Jeśli architektura systemu wymaga od procesora odczytania danych, manipulowania nimi i przepisywania ich, musimy bardzo uważać przy prędkości magistrali pamięci. Jeśli architektura systemu wymaga manipulacji danymi w ścisłym budżecie czasowym, musimy dodać czas wykonania procesora do dwukrotności czasu transferu danych (jeden transfer do odczyttu i jeden transfer do zapisu). Czas transferu może okazać się znaczącym procentem ogólnego czasu. Jeśli jest to problem, możemy poszukać większej szyny pamięci do pacy. Czasami procesor jest zbyt wolny w transferach. W takim przypadku możemy szukać sprzętu Direct Memory Access (DMA). Obwody DMA mogą przesyłać impulsy danych szybciej niż większość procesorów. Czasami sprzęt DMA jest zawarty w procesorze a czasami możemy go dodać z zewnętrznymi układami. Mniejszej procesory zazwyczaj nie mają możliwości DMA. Oto dobra zasada . Jeśli analiza architektury robota pokazuje ,że magistrala pamięci jest obciążona aż o 30 procent od danych poruszających się po niej, rozważ komputer szybszy, z szerszą magistralę pamięci lub transfery DMA.\nWiele systemów komputerowych jest używanych do przetwarzania ogromnych ilości danych wideo i graficznych .Systemy gier z pewnością są takie, a konkretne komputerowe magistrale graficzne są bardzo szybkie i elastyczne. Karą za wybór złej magistrali graficznej może być słaba grafika, opóźnione obrazy lub awaria systemu. Jeśli projekt robota będzie wykorzystywał wiele wyświetlaczy graficznych i manipulacji, wejdź na początek na stronę www.agpforum.org/ . Porozmawiajmy teraz o niektórych standardowych magistralach. Standardowe magistrale są następujące:\n• Architektura ISA (Industry Standard Architecture) nie oznacza już tego co widać. Ta magistrala wywodzi się z oryginalnych PC, i była podstawą przemysłową od wielu lat, ale jest teraz przestarzała. Magistrala miała ograniczoną przepustowość na poziomie 8 MBps. Nie używaj jej!\n• Peripheral Component Interface (PCI). Magistrala PCI przejęła standardową magistralę w przemyśle PC. To magistrala z wyspecjalizowanym rodzajem sygnału, który jest ograniczony na dwa sposoby. Sygnały mogą poruszać się tylko w ograniczonej odległości (mniej więcej w rozmiarze płyty głównej komputera). Ponadto na magistrali można umieścić tylko około 4 ładunków (np. złącza lub szpilki układu scalonego) zanim zacznie się ładować i ulegać awarii. Istnieją układy mostkowe, które mogą rozszerzyć magistralę PCI na więcej obciążeń i gniazd. Istnieje kilka wersji magistrali zróżnicowanych pod względem napięcia, szerokości słowa i częstotliwości. Najbardziej rozpowszechniona wersja ma następujące cechy : 5 woltów i 32 bity przy 33 MHz. Daje to przepustowość (32/8_ x 33 miliony = 132 MBps na sekundę (prędkość nieprzetworzona) . Z praktycznego punktu widzenia, nikt nigdy nie osiągnie wartości wyższej niż 100 Mb/s z magistrali z powodu zadań porządkowych, które mają miejsce na magistrali. Maksymalny rozmiar technologii magistrali PCI to obecnie 64 bity przy 133 MHz dla przepustowości 1 Gb/s (prędkość nieprzetworzona). PCI stało się standardem branżowym. Wielu producentów płyt i wielu producentów układów przyjęło go. Jeśli komputer robota obsługuje magistralę PCI, dostępnych będzie wiele zewnętrznych platform do dostosowania projektu i zaoszczędzania czasu. Magistrala PCI byłaby doskonałym wyborem dla robota , o ile można rozwiązać problemy związane z drganiami. Magistrala ma około sto pinów na każdym złączu. Wystarczy jeden pin aby uniknąć wibracji ,aby osłabić system.\n• Karty PCMCIA. Standard ten opisuje nie tyle magistralę, , co gniazdo interfejsu. Wiele urządzeń peryferyjnych jest dostępnych jako kieszonkowe karty PCMCIA, więc jest to dobra opcja dla dodawania pamięci i urządzeń peryferyjnych do robota. Większość przenośnych komputerów ,a gniazda PCMCI, aby pomieści te karty. Szybkość przesyłu to 20 MB/s\n• Universal Serial Bus (USB). USB jest standardem szeregowym (za pomocą cienkiego kabla), który można przesyłać z prędkością około 1,5 MB/s. Jest to dobrze znany w branży PC i umożliwia szybkie podłączenie urządzeń peryferyjnych do komputera , nawet przy wyłączonym zasilaniu. W przypadku robotów USB może być łatwym sposobem na podłączenie do innego komputera w celu komunikacji lub pobierania. Wiele komputerów przenośnych obsługuje ten standard i można go dostarczyć do obora w celu jego obsługi.\n• Firewire, IEEE1394. Standard FireWire jest zwykle stosowany w systemach wymagających dużej ilości danych multimedialnych (audio lub wideo). Kamery i inne urządzania multimedialne łączą się ze sobą za pomocą cienkich kabli szeregowych o gorących łatkach. Dźwięk i obra można przesyłać w czasie rzeczywistym, bez przerw, między urządzaniami. Specyfika strumieni mediów polega na tym ,że nie można ich przerywać bez zauważalnej degradacji transmisji. Jeśli na przykład w strumieniu cyfrowego sygnału wideo wystąpi przerwa, na ekranie mogą być widoczne bloki. Protokół FireWire został zaprojektowany w celu zagwarantowania dostarczania danych medialnych na całym skrośnym przewodzie. Jeśli robot musi przesyłać dane wideo i audio. Firewire może być dobrym kandydatem do tych transmisj. Transmisja wideo wymaga przepustowości transmisji od około 15 do 34 MB /s. FireWire może obsłużyć około 50 MB/s (aby obsłużyć wiele strumieni transmisji) i planowane są szybsze wersje\n• Controoler Area Network (CAN). Magistrala CAN jest standardem magistrali szeregowej przeznaczonym do użytku w hałaśliwym otoczeniu, takim jak samochody i zakłady przemysłowe. Może przesyłać dane z szybkością dl 125 KBps w przypadku kabli o długości od 40 do 1000 metrów (w zależności od szybkości transmisji danych). Jego inną główną zaletą jest to ,że oszczędza koszty okablowania, co jest ważnym czynnikiem przy wykonywaniu tysięcy samochodów. Jeśli gen robota emituje dużo szumu elektrycznego z silników, CAN może być dobrym wyborem dla magistrali eklektycznej wewnątrz robota\n• Inter-IC (I2C). I2C jest standardem magistrali szeregowej używanym głównie do sygnalizacji w pojedynczej płytce drukowanej, chociaż co najmniej jedna wersja protokołu używa kabla. Jego główną wartości jest zapisanie liczby pinów na małych układach, które wymaga powolnych, złożonych transmisji danych. Jeśli robot ma problemy z płytą PCB, to układy I2C mogą zaoszczędzić sporo miejsca. Maksymalna przepustowość to około 400 KB/s\nŻadna dyskusja na temat I/O nie byłaby kompletna bez dyskusji na temat LAN I/O. Prawie każdy system komputerowy ma interfejs sieciowy, niezależenie od tego czy jest podłączony czy nie. W codziennym życiu biznesowym każdy komputer jest podłączony do sieci w biurze. Sieć ,tak jak ma to zastosowanie do komputera, wygląda jak pojedynczy kabel, który łączy się z komputerem. Oprogramowanie komputerowe wie jak rozmawiać z innymi komputerami w sieci i może korzystać z tego przewodu. Powszechnie używane łącza komunikacyjne (między komputerami) używane w komunikacji sieciowej są następujące:\n• 10/100 BaseT. Pojedynczy kabel podłącza się z tyłu komputera, aby zapewnić łączność 10/100BT. Kabel może wyglądać jak kabel telefoniczny lub może być współosiowy, podobnie jak kabel telewizji kablowej. Może wykorzystywać napięciowe sygnały Ethernet i protokoły, i prawdopodobnie jest bezpośrednio podłączony do skrzynki rozdzielczej w tylnym pomieszczeniu pełnym komputerów serwerowych. Jest to najbardziej popularny sposób łączenia komputerów i byłby dobrym wyborem dla robota. Większość płyt komputerowych zakupionych od ręki ma złącza sieciowe, ale uwaga : ten typ systemu komunikacji wymaga znacznej ilości oprogramowania do jego obsługi. Jeśli robot potrzebuje takiego łącza komunikacyjnego (i złącza), upewnij się ,że komputer robota będzie zawierał odpowiednie oprgramowanie do obsługi stosu. Interfejs 10BT na nieprzetworzoną przepustowość 1,25 MB/s ale genralnie nie obsługuje więcej niż 75 procent tego. 100 BT jest 10 razy szybszy. Wiele komputerów obsługuje oba interfejsy. Interfejs 1000BT jest 10 razy szybszy , obsługując przepustowość 125 MBps. Nie zapomnij zmniejszyć tej liczby dla celów praktycznych . Jednak przy takich prędkościach wiele komputerów nie może nawet nadążyć za interfejsem 1000BT. Potrzebne są szybkie, 32 bitowe systemy . Pamiętaj ,że system komputerowy robota będzie tak szybki jak jego najsłabsze ogniwo.\n• Bezprzewodowy (RF). Jest mało prawdopodobne ,że robot będzie wymagał mobilności. Zakładając , że tak jest, posiadanie przewodu sieci lokalnej (LAN) podłączonego do ściany , jest niepraktyczne (nie jest cool). Projektanci dawno temu uwolniki właścicieli komputerów od takich wiązek przewodów , wprowadzając kilka protokołów bezprzewodowych. Najpopularniejszy to 802.11, który występuje w różnych wersjach, z których najczęstszy to 802.11b. Zapewnia prędkość do 1,3 MB/s,m porównywalną z przewodowym standardem 10BT. Jeśli uda nam się ograniczyć potrzeby komunikacyjnej robota do ułamka tej przepustowości, to 802.11b może stanowić doskonały wybór dla komunikacji zewnętrznej. Należy pamiętać ,że łącze komunikacyjne RF jest znacznie bardziej podatne na błędy niż połączenie przewodowe. Silniki, komputery, światła, stacje radiowe, a nawet gwiazdy emitują zakłócenia, które mogą szybko uszkodzić dobrze zaprojektowane , standardowe połączenie komunikacyjne RF .Zachowaj ostrożność podczas korzystania z łącza RF Upewnij się ,że odległości transmisji są dobrze znane, ponieważ sygnały RF ulegają szybkiemu spadkowi na odległość. System sterowania robotem musi przetrwać przerwanie lub uszkodzenie strumieni danych przesyłanych przez łącze komunikacyjne\n• Bezprzewodowe światło podczerwone (IR) jest kolejną możliwą metodą komunikacji z miejsca na miejsce. IR istnieje w świetle słonecznym i wszędzie w naszym codziennym życiu. To może nam dać poparzenia słoneczne i tylko czeka aby zepsuć pierwsze automatyczny łącze komunikacyjne IR jakie może znaleźć. Błądzące promieniowanie podczerwone jest mniej rozpowszechnione w pomieszczeniach zamkniętych dla szybkich łączy danych na krótkich dystansach. TV może być jedynym urządzeniem , które wciąż używa IR w większości domów\nNa zakończenie omawiania I/O, porozmawiajmy o urządzeniach peryferyjnych. Chociaż korzystanie z urządzeń peryferyjnych obejmuje transmisję danych przez magistrale komunikacyjne i łącza, różni się pod pewnymi względami . Urządzenia peryferyjne są często uważane za źródła lub miejsca przeznaczenia danych. Są to urządzenia podłączone do komputera w celu umożliwienia wprowadzania , przechowywania lub wyświetlania danych. Urządzenia peryferyjne są nieco nudne i powszechnie opisywane w tysiącach artykułów. Dlaczego więc mówimy o tym tutaj? Przede wszystkim roboty są powszechnie uważane za urządzenia przenośne. Urządzenia peryferyjne muszą być starannie dobrane , jeśli mają spełniać wymagania dla robota. Jeśli robot porusza się lub wibruje, należy uwzględnić wiele nowych wymagań, w tym wibracje, wstrząsy, temperaturę, wilgotność, niezawodność mocy i promieniowanie elektryczne. Przyjrzyjmy się wszystkim tym czynnikom później, biorąc pod uwagę kwestie środowiskowe, ale przyjrzymy się niektórym urządzeniom peryferyjnym I/O tu.\nDysku twarde (HD) są znane większości ludzi. Są w większości komputerów osobistych i okazjonalnie są źródłem frustracji, jeśli źle się zachowują. Po przerwaniu mogą powodować znaczne bóle głowy i utratę drogich danych. Środowisko w którym działają jest ważne do rozważenia. Środowisko biurowe jest pod wieloma względami stabilne. Jeśli HD jest wprowadzane do robota, musi być traktowane prawidłowo. HD to w zasadzie wirujący dysk z materiału magnetycznego, który może zawierać bity na jego powierzchni. Głowica do odczytu / zapisu przesuwa się po powierzchni i zapewnia dostęp do tych bitów dla komputera. Projektując HD w robocie, weź pod uwagę następujące cechy HDL\n• Wibracje. Podczas pracy HD utrzymuje głowicę odczyt/zapis nad powierzchnią dysku. Odległość między nimi jest bardzo mała, rzędu milionowych części milimetra. Wibracje powodowane przez silnik, koła, siłowniki i inne ruchy lub robot poruszający głowicą dysku zrujnują dane. W najgorszych przypadkach głowica dysku może dotykać powierzchni dysku i zeskrobać powłokę magnetyczną całkowicie niszcząc HD. Dokładnie przeczytaj specyfikację wibracji HD. zanim go użyjesz w projekcie robota. Zastanów się nad zastąpieniem HD droższą alternatywą, taką jak karty pamięci flash. które nie mają ruchowych części. Przy projektowaniu robota, mądrze jest ograniczyć ilość danych, które będą musiały być przechowywane. Jeśli HD musi wejść do robota, rozważ użycie HD specjalnie stworzonego dla laptopów. Napędy HD w laptopach jest bardziej wytrzymała. • Szok. Jeśli robot trafi na dziurę, przewróci się lub po prostu odbije się, może wystąpić nagły szok dla HD. Nie jest niczym niezwykłym , że siły uderzenia uderzają 50 do 100 siły grawitacji przez bardzo krótki okres czasu. Mogą istniej różne specyfikacje wstrząsów dla operacji i przechowywania. Próbując dopasować specyfikacje HD do specyfikacji robota, nie zapomnij uwzględnić okresu w którym robot jest wysyłany ale nie działa . Jeśli HD nie może podjąć określonego szoku w wymaganiach robota, rozważmy inną technologię taką jak karty flash. Inną opcją byłoby rozważenie obniżenia specyfikacji robota aby był on traktowany łagodniej w działaniu.\n• Temperatura. Jak każdy komponent robota, HD będzie posiadał ocenę temperatury .Jedyną dodatkową rzeczą, którą należy wziąć pod uwagę jest to ,że temperatura może powodować czasowe kurczenie się lub rozszerzanie HD, a przez to powodować błędy przez pewien czas.\n• Żyroskopowy moment obrotowy HD zawiera wirujące masy. Jako takie będą zachowywać się jak żyroskop. Pamiętasz te wirujące zabawki, które mogą balansować na twoim palcu? Żyroskopowe działanie w dowolnym HD wywiera te same siły Każdy HD będzie się opierać odwróceniu. Jeśli robot będzie wirował lub poruszał się w taki sposób ,ze HD jest rzucany wokół, lepiej wykonać kilka najgorszych możliwych obliczeń prędkości obrotowej HD. Specyfikacja HD może być zbyt jasna co do momentu obrotowego, który może wytrzymać napęd bez powodowania błędów. Jeśli to możliwe, zorganizuj ruchy robota mające wpływ na HD , które będą współpłaszczyznowe z obracającą się masą HD. Obraz HD umieszczony na płaskiej powierzchni. Większość HD ma kształt cegiełki, a powierzchnia dysku wirusje jak zapis obracający się wokół pionowej osi. Działający HD może przesuwać się w bok bez wysiłku, nie wywołując sił żyroskopowych. Ale jeśli HD jest skręcony w bok, będzie odporny na siły żyroskopowe. Siły te mogą zepsuć dane lub wypalić łożyska silnika w miarę upływu czasu.\n• Czas rozpędzenia HD trwa kilka sekund, aby zakręcić się do prędkości roboczych. Jeśli informacje na temat HD muszą być natychmiast dostępne, nie pozwalaj HD na automatyczne obracanie się przy użyciu. Niektóre systemy komputerowe umożliwią obrót HD w celu oszczędzania energii. Jeśli jest to problem, upewnij się, że komputer nie może wyłączyć silnika dysku.\n• Długowieczność. HD ma skończone życie. Powinna istnieć informacja Mean Time Beetwen Failure (MTBF) dla HD, która uwzględnia pewne mechanizmy awarii. Jeżeli wystąpi awaria elektryczna, łożysko wrzeciona ulegnie zużyciu lub powierzchnia magnetyczna HD ulegnie zużyciu. Ponadto mogą pojawić się pewne problemy dotyczące degeneracji danych w dłuższym okresie i stają się problematyczne. Płyty CD mają ten problem, HD , prawdopodobnie też.\n• Wskaźnik błędów. HD popełniają błędy. Ogólnie, rejestrowane sygnały są więcej niż wystarczające aby umożliwić prawidłowy odczyt danych\n• Zła powierzchnia dyskowa. HD posiada również mechanizm zapobiegające powstawaniu złych miejsc na powierzchni dysku. Oddzielne miejsce znajduje się na powierzchni HD, aby rejestrować lokalizację złych sektorów na powierzchni, aby można je było wysyłać z fabryki bez posiadania idealnych nośników. HD może wtedy całkowicie uniknąć tych złych miejsc. Jednak powierzchnia dysku może również rozwijać nowe złe miejsca. Jeśli system operacyjny wykryje takie zdarzenie, może to zrekompensować.\n• Złe zapisywanie lub odczyt. Czasami dysk się pomyli. Błędy mogą wystąpić z powodu problemów z nośnikami, wibracji i prawdopodobnie faz księżyca! Zwykle oprogramowanie systemu operacyjnego jest zaprogramowane aby wykryć problem i zrekompensować go. Jeśli projekt robota jest taki ,że dane nie mogą zostać utracone, wówczas należy zapisać wiele obrazów dysków. Możliwe jest również umieszczenie w tym celu wiele dysków. Poczytaj na temat systemów nadmiarowej macierzy dyskowej (RAID) ,jeśli jest to wymagane dla zaprojektowania robota.\n• Nośniki wymienne. Projekt robota może wymagać dodania wymiennego nośnika Dyskietki , dyski CD-ROM lub karty pamięci mogą być używane do dodawania lub usuwania danych z robota. Ten rodzaj łącza komunikacyjnego działa, jeśli dane nie muszą być natychmiast przekazywane .Nazywa się Sneaker Net, ponieważ operator przechadza się i przenosi dane. Jedyne uwagi o jakich musisz pamiętać to:\n-\tNośniki wymienne mogą być mniej niezawodne niż nośniki trwałe\n-\tNośniki wymienne można skraść lub zgubić\n-\tNośniki wymienne mogą się zepsuć z powodu wstrząsu\n-\tNapędy nośników wymiennych pozostawiają dodatkową dziurę w boku robota, która może przyjmować zabrudzenia u zakłócenia RF\n• Połączenia i integralność kabli. HD mają wiele połączeń. W dowolnej aplikacji przenośnego robota połączenia mogą być elementem niewiarygodnym. Jeśli HD łączy się bezpośrednio z PCB robota, wtedy liczba połączeń jest minimalizowana. Jeśli HD jest podłączony do robota za pomocą elastycznego kabla, liczba połączeń jest podwojona (zmniejsza niezawodności), a inny komponent zostaje wprowadzony do systemu. Elastyczny kabel naprawdę spełnia swoją rolę, wygina się. Jeśli robot porusza się trochę, wszystkie elementy będą poddane działaniu sił przyspieszenia. Większość elastycznych kabli nie jest w stanie wytrzymać ciągłego zginania. Są one elastyczne tylko dlatego ,że kabel może się wygiąć i uzyskać odpowiednie połączenie. Specjalnie wykonane elastyczne kable mogą być zaprojektowane do wielokrotnego zginania w aplikacjach mobilnych, ale muszą być określone do takiego zastosowania, a większość z nich nie. Elastyczne kable mogą ostatecznie pęknąć.\nWydaje się oczywiste ,że wszystkie rozważania , o których dyskutowaliśmy na temat HD, dotyczą również napędów taśmowych. Aby powtórzyć te rozważania, wymieńmy tematy z poprzedniej sekcji:\n• Żyroskopowy moment obrotowy\n• Czas rozpędzenia\n• Wskaźnik błędów\n• Nośniki wymienne\n• Połączenia i integralność kabla\nNastępujące kwestie są nieco inne\n• Większość napędów taśmowych obsługujących nośniki wymienne ma duże otwory. Otwory te mogą przyjmować zanieczyszczenia i dopuszczać emisje RF zarówno do robota jak i z niego\n• Sprawdź orientacje, w których może działać napęd taśm. Niektóre dyski taśmowe mogą mięc więcej ograniczeń niż inne\nWiele z tych samych problemów związanych z HD ma również znaczenie dla drukarzy. Te same problemy są tutaj wymienione jako przypomnienie. Niektóre z nich zostały zmodyfikowane . Jeśli robot musi mieć drukarkę na pokładzie, rozważ te same problemy\n• Drukarki wibracyjne nie tylko mogą działać nieprawidłowo w obecności wibracji i wstrząsów, ale także generować wibracje i wstrząsy oraz rozprowadzać je w całym robocie Te dodatkowe ruchy muszą zostać dodane do specyfikacji środowiska , które robot musi wytrzymać. Mówiąc inaczej, ruch drukarki powoduje ,że ogólne wymagania dotyczące wibracji i wstrząsów są bardziej rygorystyczne.\n• Temperatura. Kiedy oceniamy wydajność robota w skrajnych temperaturach, nie zapominaj o właściwościach atramentu i papieru. Te komponenty musza również przechodzić przegląd. Nie zapominaj ,że papier jest głównym źródłem kurzu.\n• Żyroskopowy moment obrotowy.\n• Czas rozpędzenia. Wielu drukarkom zajmuje sporo czasu aby się rozgrzać; dłużej niż dyskom.\n• Długowieczność. Drukarki są mniej niezawodne niż HD. Również szybciej się zużywają\n• Nośniki wymienne. Drukarki prawdopodobnie pozostawiają ogromne otwory po bokach robota. Generują one emisję RF i dopuszczają brud i kurz.\nKiedy rozważmy duże wyświetlacze, takie jak LCD dla projektowanego robota, musimy rozważyć wiele problemów\n• Wyświetlacz Shock Glass pękną, gdy siły G staną się zbyt wysokie. Bardzo łatwo jest przełamać LVD. Ludzie łamią ekrany swoich przenośnych PC nieustannie.\n• Temperatura. LCD mają bardzo ograniczony zakres temperatur i staną się nieczytelne poza tym zakresem temperatur. Poszukaj innych typów wyświetlaczy, jeśli robot musi działać w szerokim zakresie temperatur.\n• Długowieczność. Podświetlenie wyświetlacza LCD może z czasem ulec zużyciu, powodują ,że będzie przyciemniony i niejednolity. Może się to zdarzyć , jeśli wyświetlacz LCD zawiera żarówki, które będą cierpieć z powodu migracji metalu w czasie. Poszukaj ekranów LCD z podświetleniem za pomocą innych technologii i sprawdź specyfikacje MTBF.\n• Moc. Podświetlenie LCD może pochłaniać sporo energii. Co więcej, oprogramowanie kontrolujące wydatek energetyczny może być skomplikowany do napisania\n• Zakłócenia elektromagnetyczne (EMI). Kiedy rozważamy pod względem integralności ekranów elektromagnetycznych, ekrany LCD są po prostu ogromnymi dziurami w pakiecie robota. Sprawia to ze bardzo trudno jest utrzymać promieniowanie przed opuszczeniem lub wejściem do robota.\nProces wyboru sprzętu komputerowego r obota\nW pewnym momencie staniemy przed zadaniem wybrania rzeczywistego komputera, który znajdziemy w środku robota. Jest to zadanie wymagające doświadczenia i należy podejść do niego systematycznie. Można powiedzieć ,że prawie każdy robi to w inny sposób, więc wymagana jest duża cierpliwość. Staraj się pamiętać ,że zróżnicowana pula genów do dobry pomysł! Pierwszą rzeczą do rozważenia jest uzyskanie pomocy. Podobnie jak doradcy mogą w znacznym stopniu pomów w fazie planowania projektu, tak samo mogą być oni cenni we wczesnej fazie projektu wysokiego poziomu. Najlepszymi doradcami są doświadczeni inżynierowi którzy zrobili to już wcześniej. Często widzą jasne rozwiązania wśród wielu opcji dostępnych dla projektu. Jeśli nie znajdziemy natychmiastowego rozwiązania dla potrzeb projektu warto wymienić listę kandydatów ,którzy będą brani pod uwagę. Bez względu na to ,czy ma sens budowanie lub kupowanie komputera dla robota, wynik końcowy pozostanie taki sam. Robot będzie miał w sobie płytę komputerową (lub płyty), a płyty będą zawierały układ procesora. na liście kandydatów warto wymienić ich wszystkich jako procesorów. Czasopisma opisują chipy procesorowe w artykułach aktualizowanych co najmniej raz w roku. Oto kilka stron internetowych z listą procesorów wbudowanych, które możesz rozważyć. Nie jest to lista wyczerpując ani całkiem poprawna, ale od czegoś trzeba zacząć:\nPodczas procesu selekcji powinniśmy przestrzegać pewnych reguł:\n• Upewnij się że żadne z wymagań projektu nie są zbyt restrykcyjne. Jeśli wymagania projektu są tak ścisłe, że eliminują wszystkich oprócz jednego kandydata, wtedy zmień projekt. Jeśli projekt lub komponenty . Jeśli projekt lub komponenty nie mają miejsca do poruszania się, projekt częściej napotka problemy\n• Upewnij się, że każdy kandydat na procesor przekracza większość wymagań\n• Nie poświęcaj dużej ilości czasu na proces selekcji. Wśród ostatecznych kandydatów powinien być dostępny więcej niż jeden doskonały wybór.\n• Ustal priorytety wymagań. Żaden procesor nie będzie pasował idealnie do wymagań. Jeśli zidentyfikowane zostaną najważniejsze wymagania, może pomoc w zrozumieniu wyboru.\nW przypadku każdego wyszukiwania można zastosować kilka możliwych strategii. Oto kilka wskazówek, które można wykorzystać podczas procesu: Jeśli doradcy projektu sugerują określonego kandydata, rozważ go w ostatecznej selekcji i zażądaj od pozostałych kandydatów wybicia go z pierwszej pozycji, wykazując wyraźnie lepsze cechy\n• Inną alternatywą jest po prostu odrzucanie kandydatów dopóki nie pozostanie ich kilku. Sam proces wyszukiwania obejmuje jedoczesne rozwiązywanie wielu problemów. Specyfikacja robota i algorytmów sterowania nakładają wiele ograniczeń procesowi wyboru procesora. Każde ograniczenie może być użyte do wyeliminowania wielu kandydatów\n• Rozważ rozpoczęcie od ograniczenia najtrudniejszego do przezwyciężenia. Często najtrudniejsze ograniczenie wyeliminuje większość kandydatów na procesory. Im szybciej możemy zawęzić pole do bardzo niewielu kandydatów, tym mniej pracy zajmie selekcja.\nJakie rodzaju ograniczenie są zwykle brane pod uwagę przy wyborze procesora? Poniżej podana jest lista kontrolna rzeczy , którym trzeba się przyjrzeć przy wyborze komputera\nBardzo trudno jest zorientować się, ile pracy musi wykonać procesor w czasie rzeczywistym. Procesor będzie wykonywał instrukcje z pełną prędkością, chyba ,że zostanie poproszony o odpoczynek w ramach oszczędzania energii. W trakcie wykonywania instrukcji może wykonywać tylko dyskretną liczbę obliczeń na sekundę . Ilość pracy, którą może wykonać procesor, jest zatem ograniczona. Sztuką jest móc oszacować ile pracy może wykonać każdy procesor. Podczas tego proces należy uwzględnić następujące kwestie\nWykonaj analizę algorytmów sterowania i określi ile instrukcji na sekundę musi zostać wykonanych aby wykonać określoną pracę. Jeśli na przykład wiemy ,że algorytm wymaga od procesora 5000 instrukcji co 20 milisekund, mamy miarę tego jak bardzo będzie on zajęty. Będzie wykonywał co najmniej 250 000 instrukcji na sekundę (5000 / 0.20). Jeśli procesor jest w stanie wykonać 1 milion instrukcji na sekundę, wówczas około 25 procent tego czasu zostanie poświęcony rozpatrywanemu algorytmowi. Następnie możemy przyjrzeć się wszystkim innym algorytmom, które musi wykonać procesor i określić ile czasu procesora zużyją. Po prostu dodaj wartości procentowe , aby uzyskać wskaźnik zajętości procesora. Jako ogólną zasadę nie licz na to ,że można załadować procesor w dół o więcej niż 50 procent. Wszystkie procesory będą wykonywać zadania porządkowe, których nie da się łatwo rozliczać. Ponadto, im częściej wykonywany jest jeden algorytm tym więcej kosztów będzie koniecznych. Upraszczając nieco, można stwierdzić, że do wykonania dowolnego algorytmu wystarczy ustalona ilość czasu procesora. Jeśli sprawimy, że algorytm będzie krótszy, ale będziemy musieli go wykonywać częściej, procesor straci wydajność. Spójrzmy na skrajny przykład. Załóżmy na przykład, że procesor musi wykonać 100 000 instrukcji dodawania raz na sekundę. Załóżmy, że wymaga 10 instrukcji, aby uruchomić algorytm. Algorytm A wykonuje 100 000 dodawań w tym samym czasie . Aby osiągnąć wymagane 100 000 dodawań na sekundę przy użyciu algorytmu A, procesor musi wykonać 100,010 instrukcji na sekundę (1 x (100 000 + 10)). Algorytm B wykonuje 100 dodawać co milisekundę. Aby osiągnąć wymagane 100 000 dodawań na sekundę przy użyciu algorytmu B, procesor musi wykonać 110 000 instrukcji (1000 x (100 + 10)). Algorytm A będzie znacznie wydajniejszy w czasie procesora, o około 10 procent skuteczniejszy od algorytmu B.\nOperacje Na Sekundę\nWiększość komputerów może wykonywać wiele instrukcji na sekundę. Często ta liczba jest podawana w milionach instrukcji na sekundę (MIPS). Podczas oceny procesora może być trudne określenie, ile instrukcji naprawdę może wykonać na sekundę. Można to osiągnąć na kilka różnych sposobów\n• Obliczanie prędkości. Procesory mają ustaloną prędkość zegara, którą można określić przez kontrolę obwodu PCB. Zwykle w metalowej puszcze znajduje się "zegar kryształowy" bezpośrednio przylegający do procesora. Częstotliwość zaznaczona na tym krysztale jest punktem wyjścia; często jest to około 50 MHz ( 50 000 000). Reprezentuje on zewnętrzną częstotliwość taktowania procesora. Często procesor zwielokrotnia tę zewnętrzną częstotliwość zegara o współczynnik, aby określić wewnętrzną częstotliwość zegara. Gdy znamy wewnętrzną częstotliwość zegara, musimy jedynie określić liczbę wewnętrznych cykli zegara, które zużywa przeciętna instrukcja. Większość procesorów określa tę liczbę między 1 a 8 . Przy tych liczbach , obliczymy liczbę MIPS dla procesorów na tej PCB\n• Benchmarki. Wiele osób interesuje się szybkością i możliwościami różnych procesorów i są chętni do porównań. Jedną z trudności związanych z dokonywaniem takich porównań jest to ,że każdy procesor ma swoje mocje i słabe strony. Nawet słaby 8 bitowy komputer z odpowiednim zestawem instrukcji może przeskoczyć 32 bitową maszynę w niektórych zadaniach. Zależy to od tego , na jakie projekty procesorów zostały zoptymalizowane. Różne organizacje zaproponowały wystadaryzowane programy (zwane benchmarkami), które można wykonać na każdym komputerze. Ogólnie rzecz biorąc , testy porównawcze są prostymi programami do sortowania, przenoszenia lub przekształcania danych. Niezmiennie, wskaźnik porównuje wydajność procesora z pewnym indeksem. który może być porównywany z innymi procesorami. Ponieważ wszystkie programy testów porównawczych są różne, nie jest niczym niezwykłym, że procesory są oceniane na początku testu porównawczego, ale niższe w przypadku innych. Jeśli chcemy określić na podstawie danych porównawczych, w jaki sposób procesory wykonują projekt naszego robota, musimy znaleźć punkt odniesienia, który wykona zadanie podobne do algorytmów w naszym projekcie robota. Jeśli wybierzemy benchmark, który wykonuje zadania dostateczne różne od naszego robota, możemy się zawieść. Zasadniczo dostępne są testy porównawcze do pobierania i wykonywania ,ale wdrożenie ich może zająć sporo czasu\nCo więc zrobimy z tymi liczbami? Widzieliśmy ,jak możemy uzyskać parametryczne oceny procesora. Jeśli poprawnie wykonaliśmy nasze obliczenia ( w przypadku obliczania MIPS) lub jeśli wszystkie nasze założenia są poprawne (co do stosowalności danych wzorcowych), wówczas możemy porównać procesory bezpośrednio w kategoriach załamania obliczeniowego. Można wybrać procesor o najlepszej wydajności (wszystkie inne rzeczy są równe)\nWiększość procesorów ma instrukcje o stałym punkcie. Niektóre procesory mają wbudowane instrukcje arytmetyczne zmiennoprzecinkowe. PowerPC jest w tej klasie. Jeśli robot musi przetwarzać ilości licz zmiennoprzecinkowych, ta zdolność będzie ważna. Procesory z instrukcjami o stałym punkcie nadal mogą wykonywać instrukcje zmiennoprzecinkowe, ale wykonanie będzie znacznie wolniejsze niż procesora z wewnętrznymi instrukcjami zmiennoprzecinkowymi\nOmówiliśmy długość słowa wcześniej, ale warto ją ponownie wymienić. Jest to z pewnością ważna cecha procesora. Procesory o dłuższych długościach słowa zwykle mają dodatkowe możliwości, które sprawiają ,że są szybsze niż można się spodziewać. 32 bitowy procesor jest zwykle o wiele razy szybszy niż 4 do procesora 8 bitowego>\nWiele małych procesorów ma pamięć RAM i pamięć ROM wbudowaną w chip procesora. Łatwo jest uzyskać 8 bitowe procesory z taką wewnętrzną pamięcią a nawet pewne 32 bitowy procesory. Jeśli program sterowania robotem jest bardzo mały, a liczba robotów do zbudowania jest duża ,rozważ ten rodzaj chipów. Dobrze jest podwoić wszystkie szacunki wielkości pamięci, uzyskać o wiele więcej niż potrzeba. Im większy rozmiar pamięci , tym lepiej. Rozmiar i rodzaj pamięci podręcznej jest również ważną cechą procesora. Jeśli oprogramowanie robota ma wiele ciasnych pętli wykonawczych, wtedy pamięć podręczna może być ważną funkcją w wybranym procesorze.\nOmówiliśmy już przepustowość i należy do listy kontrolnej. Pamiętaj aby sprawdzić wszystkie ograniczenia przepustowości procesora\nW wielu aplikacjach działających w czasie rzeczywistym, takich jak roboty, różne zasoby procesora są szeroko wykorzystywane. Bardzo często , gdy wykonuje się wiele algorytmów sterowania, musza one współdzielić zasoby wewnętrzne procesora. Jeśli jeden z zasobów jest bardzo potrzebny, może stać się wąskim gardłem w systemie, który ogranicza ogólną wydajność. Zdolność DMA procesora jest typowy przykładem. Niektóre mniejsze procesory mają kontroler pamięci specjalnego przeznaczenia (DMA), który może przesuwać bloki pamięci. Działa równolegle z procesorem, gdy jest uruchamiany. Jeśli nie będzie w stanie wykonać swoje pracy całkowicie, następnym razem będzie nadużywany. Jeśli inspekcja architektury wskazuje na taki problem z wyprzedzeniem, wtedy poszukaj procesora z większymi możliwościami\nOmówiliśmy wcześniej kilka typów procesorów specjalnego przeznaczenia i warto wspomnieć o nich ponownie na tej liście kontrolnej .Wiele procesorów, nawet procesorów ogólnego przeznaczenia ma jedną lub dwie cechy szczególne, o których warto pamiętać.\nWzględy zasilania są jedną z najważniejszych funkcji robota i procesora. Później kiedy omówimy o kontroli mocy, zajmiemy się szczegółami. Jeśli robot jest zasilany bateryjnie, poświęć wiele uwagi sprawom energetycznym. Sukces działań związanych z oszczędzaniem energii bardzo często zależy od możliwości oszczędzania energii procesora i oprogramowania dostępnego w celu wykorzystania jego funkcji oszczędzania energii.\nNawet jeśli robot może dostarczyć dużo mocy procesorowi, musimy wziąć pod uwagę metodę chłodzenia procesora i obwodów. Niektóre procesory wymagają radiatorów ,a nawet wentylatorów , które mogą powodować problemy z niezawodnością i zajmować miejsce.\nDostępne są procesory , które działają przy różnych napięciach. Niektóre procesory mogą pracować na bardzo niskim napięciu, tak niskim jak 1 wolt (choć jest to rzadkie). Przejście do operacji niskiego napięcia może zostać wykonane z dwóch powodów. Pierwszym z nich jest oszczędność energii. Drugim powodem jest dopasowanie napięcia akumulatora (jeśli w systemie jest używana bateria). Znaczna część obwodów zasilających może zostać usunięta z projektu, jeśli zespół obwodów elektrycznych może bezpośrednio zaakceptować napięcie akumulatora.\nCzasami przestrzeń w robocie jest na wagę złota. Jeśli tak, weź pod uwagę przestrzeń zajmowaną przez układ procesora oraz wszelkie radiatory lub wentylatory, które mogą być wymagane.\nNiektóre roboty są wysyłane w kosmos lub w inne stosunkowo niedostępnych miejsc. Mogą być narażone na ekstremalne obciążenia środowiska, w tym temperaturę, próżnię, wibracje i promieniowanie. Może nie istnieć możliwość nawet obsługi robota. Jeśli niezawodność jest kluczowa, rozważ ostrożnie wybór procesorów. Na przykład projektanci statków kosmicznych często wybierają starsze, sprawdzone procesory, które były testowane od lat.\nNiektóre komputery mają wbudowaną pamięć. Upewnij się, czy można ją przeprogramować, czy nie. Nawet jeśli można ją przeprogramować, sprawdź i zobacz, jakie funkcje może to ułatwić procesorowi. W jaki sposób procesor będzie dostępny, pobierany i uruchamiany ponownie\nOmówiliśmy benchmarki i sposób określania "mocy" procesora. Sensowne jest wymienienie benchmarków na tej liście kontrolnej\nMożliwe jest uzyskanie procesora za przysłowiową złotówkę bądź tysiące złotych. Robiąc zakup, nie zapominaj że, kwota nic nie znaczy jeśli dostawa nie nadchodzi. Niektóre firmy nie będą nawet rozmawiać z kimś kto potrzebuje tylko kilku procesorów\nDobry procesor, który nie jest obsługiwany jest bezużyteczny. Oto kilka czynników do rozważenia:\n• "\tWsparcie. Jak dobrze jest obsługiwać procesor za pomocą narzędzi programistycznych? Wiele procesorów specjalnego przeznaczenia ma niestandardowe narzędzia, które muszą być używane. Większość procesorów ogólnego przeznaczenia przyciąga wystarczającą uwagę, dzięki czemu dostępnych jest wiele narzędzi programistycznych\n• Drugie źródło. Co się stanie, jeśli firma od procesora upadnie? Możliwe jest określenie procesorów dla robota, które można zakupić od wielu dostawców. Procesory mogą nie być identyczne we wszystkich przypadkach, ale konwersja będzie prosta. Nie zapominaj ,że nie ma sensu zabezpieczenia dwóch dystrybutorów dla procesora, jeśli procesor jest wykonywany w jednym miejscu!\n• Dostępność inżynierów SW. Nie zapomnij wziąć pod uwagę inżynierów oprogramowania przy wyborze procesora dla robota. Jeśli inżynier SW nie poradzi sobie z wybranym procesorem, rozważ zastąpienie procesora. Drugą łatwiejszą opcją jest zastąpienie programisty.\n• Cena oprogramowania. Nie zapomnij wziąć pod uwagę ceny narzędzi programowych. Wiele jest dostępnych w Internecie, ale inne mogą być bardzo drogie.\n• Osprzęt programistyczny. Niektóre narzędzia programowe mogą wymagać bardzo szybkiego rozwoju programowania i może to nie być komputer. Jeśli system programistyczny wymaga systemu Unix lub innego systemu operacyjnego, komputer może nie być właściwym wyborem dla platformy sprzętowej.\n• Konieczne licencje. Zastanów się ilu programistów musi korzystać z rozwoju narzędzia programistycznych. Niektóre narzędzia pochodzą z licencją "seat" co oznacza ,że projekt będzie wymagał jednej licencji dla każdego inżyniera korzystającego z narzędzi programistycznych\nCzas I Nakład Na Rozwój\nPoza kwestią narzędzi programistycznych wiele innych problemów może mieć wpływ na czas i koszt rozwoju robota:\n• COTS. Akronim dla Commercial of the Shelf. Zasadniczo możemy kupić płyty komputerowe z procesorami już zainstalowanymi.\n• Oprogramowanie od osób/firm trzecich. Czy ktoś napisał specjalistyczne oprogramowanie dla tego procesora, które mogą być przydatne w projekcie robota?\n• Ryzyko techniczne. Czy wszystkie funkcje procesora pomagają rozbroić techniczne ryzyko projektu?\nWybór procesora i sprzętu komputerowego dla robota jest znacznie bardziej skomplikowany niż może się to wydawać na pierwszy rzut oka. Ale z należytą uwagą zwróconą na wszystkie pytania opisane powyżej , proces powinien przebiegać sprawnie