RTV forum PL | NewsGroups PL

Mikrokontrolery peryferyjne z dual port RAM: Które modele obsługują magistralę procesora?

mikrokontrolery peryferyjne

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Mikrokontrolery peryferyjne z dual port RAM: Które modele obsługują magistralę procesora?

peters
Guest

Mon Dec 27, 2004 6:01 pm   



Spotkal sie ktos z Was z czyms takim?
Chodzi mi o uC przystosowany do podlaczenia z magistrala procesora
glownego.
Najwygodniej gdyby zawieral wbudowany dual port RAM.

peters

ARC
Guest

Mon Dec 27, 2004 6:33 pm   



Użytkownik "peters" <peters@poczta.onet.pl> napisał w wiadomości
news:cqpiur$bdo$1@nemesis.news.tpi.pl...
Quote:
Spotkal sie ktos z Was z czyms takim?
Chodzi mi o uC przystosowany do podlaczenia z magistrala procesora
glownego.
Najwygodniej gdyby zawieral wbudowany dual port RAM.

peters

Takim mikrokontrolerem jest np. PIC 16F877.
Można go dołączyć do magistrali dowolnego systemu ktory
potrafi gadać z 8-bitowymi peryferiami. Oczywiście nie należy
przesadzać z transferem, bo musi on miec czas na reakcje
po wykonaniu zapisu lub odczytu.
Ale on nie ma DP-RAM...

ARC

peters
Guest

Mon Dec 27, 2004 6:47 pm   



Quote:
Oczywiście nie należy
przesadzać z transferem, bo musi on miec czas na reakcje
po wykonaniu zapisu lub odczytu.
Ale on nie ma DP-RAM...

I to jest wlasnie podstawowy problem. Sa rozne proste sposoby na laczenie
procesorow,
ale maja jedna zasadnicza wade -transfer. Nawet nie chodzi o to, ze sie nie
wyrobie czasowo.
Chodzi o to, ze musze rzygac bajt po bajcie. Miedzy bajtami przerwy sa na
tyle dlugie, ze nie oplaca sie czekac w petli.
Sa jednak na tyle krotkie, ze wysylajac dane na przerwaniu bardzo wiele
trace. Operacje dodatkowe zwiazane z obsluga przerwania trwaja dlugo i
znaczaco obciazaja procesor. Gdyby przynajmniej fifo tam bylo ...
Procesory peryferyjne stosuje sie przeciez aby odciazyc procesor glowny, a
nie po to by zajac go czasochlonna obsluga transmisji.

peters

Adam Dybkowski
Guest

Mon Dec 27, 2004 8:45 pm   



peters wrote:

Quote:
Spotkal sie ktos z Was z czyms takim?
Chodzi mi o uC przystosowany do podlaczenia z magistrala procesora
glownego.

Bardzo wygodne w takim zastosowaniu jest użycie portu szeregowego,
najlepiej synchronicznego (z zegarem). Wtedy z jednego procesora
wysyłasz paczkę danych np. z użyciem DMA (nie tracąc czasu na wpychanie
kolejnych bajtów danych do USARTu), a drugim procesorem odbierasz.
Wolniejszy procesor powinien taktować transmisję. Kilka Mbps można
osiągnąć bez problemu (zależy jeszcze z czym gadasz, wiadomo że nie przy
'51 @ 1 MIPS), szczególnie łącząc dwa "organizmy" o podobnej wydajności,
np. ARMy czy DSPki.

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.

Sylwester Łazar
Guest

Mon Dec 27, 2004 8:54 pm   



Quote:
Oczywiście nie należy
przesadzać z transferem, bo ...
I to jest wlasnie podstawowy problem. Sa rozne proste sposoby na laczenie
procesorow,
ale maja jedna zasadnicza wade -transfer. Nawet nie chodzi o to, ze sie
nie
wyrobie czasowo.

Wydaje mi się, że należy zacząć od założeń.
a) Jaki transfer jest zadawalający ?
b) Ile bajtów należy przenieść ?
lub
c) ile czasu można poświęcić na przekazywanie danych ?

Inaczej pisząc, należy najpierw ustalić maksymalną prędkość, a potem dobrać
procesor, zapewniający ten transfer.
Jeśli PIC16F877 jest niewystarczający, należy wybrać inny - może z serii 18F
np. 18F4320
(512 bajtów RAM, PSP - Parallel Slave Port, max. Fclk= 40MHz/
100ns-instrukcja)
karta: www.alpro.pl/18F4320.pdf
7,5 MB
Rozdział 10.6 PSP.
Ja bym wybrał ten, ale to zależy od potrzeb.
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
info@alpro.pl
____________________________________________
///ALPRO///- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: +48 61 8267395
____________________________________________

peters
Guest

Tue Dec 28, 2004 10:36 am   



Quote:
Inaczej pisząc, należy najpierw ustalić maksymalną prędkość, a potem
dobrać
procesor, zapewniający ten transfer.
Jeśli PIC16F877 jest niewystarczający, należy wybrać inny - może z serii
18F
np. 18F4320
(512 bajtów RAM, PSP - Parallel Slave Port, max. Fclk= 40MHz/
100ns-instrukcja)
karta: www.alpro.pl/18F4320.pdf
7,5 MB
Rozdział 10.6 PSP.

Procesor moze i fajny, ale to niczego nie zmienia.
Zostawmy na razie transfer. Mymy taka sytuacje.
Procesor glowny musi przeslac do procesora slave powiedzmy 100 bajtow
danych.
Chce to zrobic natychmiast, bo za chwile zajmie sie innym waznym zadaniem.
Procesor slave wykonuje co jakis czas krytyczne czasowo operacje i wylacza w
tym czasie przerwanie.
Z tego co widze to w tych PICkach transmisja opiera sie na przerwaniach. Co
bajt to przerwanie.
W tym momencie klapa, PIC danych nie odbierze a procesor glowny bedzie
musial czekac.

peters

Sylwester Łazar
Guest

Tue Dec 28, 2004 6:38 pm   



Quote:
Chce to zrobic natychmiast, bo za chwile zajmie sie innym waznym zadaniem.
Procesor slave wykonuje co jakis czas krytyczne czasowo operacje i wylacza
w
tym czasie przerwanie.

No to teraz mamy jasną sytuację.
W związku z powyższym, widzę, że jest to system z kolejkowaniem zadań.
Czyli kolega chce mieć MASTERA i SLAVEA.
W ten sposób mamy dwa zasoby. Dodatkowo MASTER ma zarządzać zadaniami.
Typ zarządzania jest prosty:
MASTER decyduje, czy zadanie ma być wykonane przez SLAVEa.
Jeśli zadanie jest dla SLAVEa to przesyła do niego "zlecenie".
SLAVE natomiast ma na stałe przypisane swoje zadania.
Problem w tym, że nie może przyjąć "zlecenia",
w czasie, gdy wykonuje własne zadanie.
W związku z powyższym jest problem typu GONIEC.
Rozwiązania proponowałbym następujące:
a) dual port RAM - owszem dobry, ale nie rozwiązuje wszystkich problemów.
Trzeba zaimplementować metodę przekazywania informacji o nowym zleceniu i o
zakończeniu realizacji.
b) trzeci procesor jako goniec. Rozwiązanie ciekawe, ale komplikuje nieco
układ
c) programowalny układ logiczny zamiast dual RAM. To wydaje się również
ciekawe, a w miarę nieskomplikowane.
d) dać jeden szybki procesor, który obsłuży wszystkie zadania, kolejkując
je, lub przydzielając im jednakową porcję czasu.
e) Inna propozycja: Może jednak tylko MASTER i SLAVE, ale określić moment
czasowy transmisji.
Wydaje mi się, że ostatni pomysł jest ciekawym wyzwaniem, a może nie tak
trudnym, jak by się wydawało.
Proszę zauważyć, że MASTER nie musi wysyłać zlecenia w chwili, gdy SLAVE
jest zajęty, gdyż i tak SLAVE nie ma czasu, aby je wykonać.
Może można zaczekać z transferem, do czasu, kiedy SLAVE znajdzie trochę
czasu?
Warunkiem tutaj musi być istnienie takiego odcinka czasu, potrzebnego na
przesłanie danych, kiedy oba procesory mogą mieć wolny czas.
Wtedy tylko (bez dodatkowych rozwiązań sprzętowych lub bardziej
zaawansowanych, droższych procesorów) wydaje się możliwe zrealizowanie tego
pomysłu.
Chodzi o to, że nie można pominąć czasu transmisji.
Czas transmisji również należy traktować, jako ZADANIE i również trzeba je
kolejkować.
Przy czym mamy tu 2 czasy transmisji (nawet jak uda się znaleźć DPRAM) Tt
MASTERA oraz Tt SLAVEA.
Łączny czas wykonania transmisji będzie wynosił TtM+TtS i nie da się go
pominąć,
ale być może da się go skrócić.
Zależy to od faktu: czy czas zapisu do SLAVEa może być krótszy niż do DPRAM?
Jeśli tak, to może warto znaleźć czas na wspólną transmisję, wtedy
rozwiązanie sprzętowe będzie bardziej proste.
Mam nadzieję, że pomogłem Smile
pozdrawiam
Sylwester Łazar

http://www.alpro.pl
info@alpro.pl
____________________________________________
///ALPRO///- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: +48 61 8267395
____________________________________________

peters
Guest

Tue Dec 28, 2004 7:14 pm   



Quote:
No to teraz mamy jasną sytuację.
Mniej wiecej, tyle ze mam dwa SLAVEy.

Kolejkowania zadan tez nie mam, raczej jest wiele zadan roznych typow.

Quote:
Rozwiązania proponowałbym następujące:
a) dual port RAM - owszem dobry, ale nie rozwiązuje wszystkich problemów.
Niestety rozwiazanie dosc kosztowne. Potrzebne ok 32KB. Dlatego wlasnie

pytam o procesory z wbudowanym dual port RAM.

Quote:
b) trzeci procesor jako goniec. Rozwiązanie ciekawe, ale komplikuje nieco
układ
Masz na mysli takiego PICa z slave portem? jak go podlaczyc do mastera to

oczywiste, ale jak prosto do SLAVEa?

Quote:
c) programowalny układ logiczny zamiast dual RAM. To wydaje się również
ciekawe, a w miarę nieskomplikowane.

d) dać jeden szybki procesor,
z pewnych przyczyn nie wchodzi w gre.


Quote:
e) Inna propozycja: Może jednak tylko MASTER i SLAVE, ale określić moment
czasowy transmisji.
Moze. Ale komunikacja przez 8-bitowy port to jak zagladanie przez dziurke od

klucza. Przesylanie kazdorazowo wszystkich danych jest bezcelowe. Trzeba
podczas takich sesji posprawdzac co jest do przeslania w jedna i druga
strone a potem przeslac tylko istotne dane.
Wydaje mi sie, ze taka transmisja troche potrwa - odpowiedzi na porcie
SLAVEa nie pojawiaja sie natychmiast.

Quote:
Mam nadzieję, że pomogłem Smile
W tej chwili transmisja funkcjonuje w oparciu o dodatkowy RAM, widoczny na

zmiane w przestrzeniach adresowych kazdego z 3 procesorow.
Jesli mialbym je zmieniac, to na cos bardziej wygodnego, szybszego i
wymagajacego mniej US.

peters

peters
Guest

Tue Dec 28, 2004 7:21 pm   



Quote:
Bardzo wygodne w takim zastosowaniu jest użycie portu szeregowego,
najlepiej synchronicznego (z zegarem). Wtedy z jednego procesora wysyłasz
paczkę danych np. z użyciem DMA (nie tracąc czasu na wpychanie kolejnych
bajtów danych do USARTu), a drugim procesorem odbierasz.
Przyznam, ze nie do konca rozumiem.

Chodzi Ci o procesor, ktory potrafi nadac i odebrac sprzetowo caly blok
danych przez synchroniczny port szeregowy?
Rodzina 167 Infineona (moj procesor glowny) ma cos takiego jak PEC, ale i
tak synchroniczny port szeregowy mam juz zajety przez karty pamieci SD.
Moze wiec jakis dodatkowy uklad DMA? 167 mozna odciac na chwile od
magistrali. Ale transmisja musialaby byc bardzo szybka.

peters

Sylwester Łazar
Guest

Tue Dec 28, 2004 8:08 pm   



Quote:
No to teraz mamy jasną sytuację.
Mniej wiecej, tyle ze mam dwa SLAVEy.
Kolejkowania zadan tez nie mam, raczej jest wiele zadan roznych typow.

O czym jeszcze się dowiemy w następnych odcinkach Smile
Czyli pewnie kolejkowanie jest - określone poprzez przełączanie RAMu do
kolejnych przestrzeni adresowych.
Bez kolejkowania oznacza, że są 3 procesory i każdy wykonuje swoją robotę.

Quote:
Masz na mysli takiego PICa z slave portem? jak go podlaczyc do mastera to
oczywiste, ale jak prosto do SLAVEa?

Ten procesor ma więcej portów Smile
PSP działa na porcie D, a na E ma linie sygnałowe
programowy port równoległy można dać na C, a potrzebne linie sygnałowe na A.
Ja bym podłączył się z GOŃCEM sprzętowym PSP do MASTERA, a programowo
obsłużył komunikację ze SLAVEM.
Jeśli SLAVE byłby procesorem tego samego typu, to podłączyłbym go przez jego
PSP do GOŃCA.
Czyli:
SLAVE PSP <=>SOFT GONIEC PSP <=> MASTER
SLAVE niech tylko wystawia sygnał np. pGO=1 (gdy ma czas), że chce dane, a
GONIEC mu je sukcesywnie będzie wysyłał. Gdy SLAVE się rozmyśli to wystawia
pGO=0 i SLAVE się wstrzymuje.

No a jak trzeba by drugiego SLAVA podpiąć do gońca to też jest to możliwe,
ale już zaczyna brakować portów.

Wtedy powstanie inteligentna przełącznica GONIEC na 1 scalaku. Ale to już
jest dużo bardziej skomplikowane, choć możliwe.

Płytka drukowana jest wtedy bardzo rozbudowana. Widzę tutaj minimum 4
warstwy, choć pewnie i tak już jest, bo przecież przełączany RAM to jeszcze
większe wyzwanie projektowe dla PCB :-)

Jest jeszcze jedna opcja:
Poważna propozycja jest od Pana Adama. (BTW: świetny Debugger dla 51 -
używałem go parę lat temu. Gratuluję!)
Można to połączyć: MASTER || GONIEC --- SLAVE
Równolegle dane do GOŃCA, a szeregowo, synchronicznie z dużą prędkością do
SLAVEa lub SLAVEów.
Mogłaby być dużo ładniejsza płytka. Choć nieco więcej zachodu w programie,
ale to jak zwykle jest dyskusyjne:-)
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
info@alpro.pl
____________________________________________
///ALPRO///- Projektowanie Systemów Elektronicznych
tel: +48 604 873468
tel/fax: +48 61 8267395
____________________________________________

elektroda NewsGroups Forum Index - Elektronika Polska - Mikrokontrolery peryferyjne z dual port RAM: Które modele obsługują magistralę procesora?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map