RS232 - transmisja proc z seri '51
Masz problem? Zapytaj na forum elektroda.pl
From: "Mamba" <zerolinux_at_nospam_poczta.onet.pl>
Subject: RS232 - transmisja proc z seri '51
Date: Thu, 13 Jan 2005 11:00:28 +0100
Witam.
Nurtuje mnie problem transmisji po RS232.
Otoz odbieram z portu z komputera dane, ale w pewnym momencie chce
poinformowac kompa, zeby przestal, a potem dalej kontynuowal transmisje.
Normalinie odbywa sie to poprzez linie RTS,CTS ale w procesorze nie ma
takich lini, czyli wypadalo by 2 linie jednego z portow przeznaczyc do
obslugi takich sygnalow?
Czy mozna do tego wykorzystac dodatkowe linie ukladu MAX232?
Czy moze jest inny sposob powstrzymania komputera od nadawania kolejnych
danych i po pewnym czasie wznowienia transmisji.
Rafal
From: "PC" <pch[WYTNIJ_TO]_at_nospam_poczta.onet.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Thu, 13 Jan 2005 11:22:12 +0100
Max ma 4 kanały 2 (dla rx i tx) oraz 2 do innych celów. Podejrzewam, że są
przewidziane właśnie do tego. Możesz też z chwilą przepełnienia bufora
wysyłać do komputera jakąś komendę, żeby wstrzymał transmisję oczywiście pod
warunkiem, że masz wpływ na program w pececie.
PC
From: "Krzysztof Rudnik" <rudnik_at_nospam_kki.net.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Thu, 13 Jan 2005 11:44:19 +0100
Użytkownik "PC" <pch[WYTNIJ_TO]_at_nospam_poczta.onet.pl> napisał w wiadomości
news:cs5i4i$teh$1_at_nospam_opal.futuro.pl...
Max ma 4 kanały 2 (dla rx i tx) oraz 2 do innych celów. Podejrzewam, że są
przewidziane właśnie do tego. Możesz też z chwilą przepełnienia bufora
wysyłać do komputera jakąś komendę, żeby wstrzymał transmisję oczywiście
pod
warunkiem, że masz wpływ na program w pececie.
Ta komenda zwykle sie XOFF nazywa :)))
^S
Krzysiek Rudnik
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Thu, 13 Jan 2005 12:24:50 +0100
On Thu, 13 Jan 2005 11:00:28 +0100, Mamba wrote:
Nurtuje mnie problem transmisji po RS232.
Otoz odbieram z portu z komputera dane, ale w pewnym momencie chce
poinformowac kompa, zeby przestal, a potem dalej kontynuowal transmisje.
Normalinie odbywa sie to poprzez linie RTS,CTS ale w procesorze nie ma
takich lini, czyli wypadalo by 2 linie jednego z portow przeznaczyc do
obslugi takich sygnalow?
na dobra sprawe jedna.
Czy mozna do tego wykorzystac dodatkowe linie ukladu MAX232?
Po to one sa :-)
Czy moze jest inny sposob powstrzymania komputera od nadawania kolejnych
danych i po pewnym czasie wznowienia transmisji.
Protokol. XON/XOFF, ENQ/ACK, albo ambitniejszy..
J.
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Fri, 14 Jan 2005 00:19:56 +0100
J.F. wrote:
Nurtuje mnie problem transmisji po RS232.
Otoz odbieram z portu z komputera dane, ale w pewnym momencie chce
poinformowac kompa, zeby przestal, a potem dalej kontynuowal transmisje.
Normalinie odbywa sie to poprzez linie RTS,CTS
[...]
Czy mozna do tego wykorzystac dodatkowe linie ukladu MAX232?
Po to one sa :-)
Uwaga: po wystawieniu niegotowości komputer może wysłać jeszcze kilka
znaków przed zatrzymaniem transmisji i trzeba być na to przygotowanym
(sprawdzone doświadczalnie).
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: "Andy" <anokWYTNIJ_at_nospam_ceti.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Fri, 14 Jan 2005 00:47:22 +0100
Użytkownik "Adam Dybkowski" <adybkows123_at_nospam_amwaw.edu.pl> napisał w wiadomości news:cs6vm4$94s$1_at_nospam_atlantis.news.tpi.pl...
...
Uwaga: po wystawieniu niegotowości komputer może wysłać jeszcze kilka
znaków przed zatrzymaniem transmisji i trzeba być na to przygotowanym
(sprawdzone doświadczalnie).
...
a czy jest jakas norma mowiaca ile to bedzie znakow ?
bo ostatnio walczylem z tym problemem i nie bardzo wiem
na co sie przygotowac
miejsca na zapas dalem 8 znakow
ale nie wiem czy to wystarczy
nie chce dawac za duzo bo mam malo RAM'u
--
Andrzej
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Fri, 14 Jan 2005 01:48:33 +0100
On Fri, 14 Jan 2005 00:47:22 +0100, Andy wrote:
Użytkownik "Adam Dybkowski" <adybkows123_at_nospam_amwaw.edu.pl> napisał w wiadomości news:cs6vm4$94s$1_at_nospam_atlantis.news.tpi.pl...
...
Uwaga: po wystawieniu niegotowości komputer może wysłać jeszcze kilka
znaków przed zatrzymaniem transmisji i trzeba być na to przygotowanym
(sprawdzone doświadczalnie).
...
a czy jest jakas norma mowiaca ile to bedzie znakow ?
nie ma.
miejsca na zapas dalem 8 znakow
ale nie wiem czy to wystarczy
Nie starczy :-(
Pamietaj ze teraz na byle plycie glownej masz uart z 16B fifo.
A tu jeszcze mamy obsluge programowa..
J.
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Fri, 14 Jan 2005 23:05:08 +0100
J.F. wrote:
miejsca na zapas dalem 8 znakow
ale nie wiem czy to wystarczy
Nie starczy :-(
Pamietaj ze teraz na byle plycie glownej masz uart z 16B fifo.
A tu jeszcze mamy obsluge programowa..
UART z 16 bajtami FIFO tu dużo nie zmienia. Miałem do czynienia z
prostym UARTem, który w FPGA wcisnął mój znajomy - przerywał transmisję
od razu po dokończeniu aktualnie wysyłanego znaku. Po prostu twórcom
sprzętu z peceta nie chciało się zbytnio nad tym popracować.
Myślisz, że gotowe UARTy mające 64 bajty FIFO (w każdą stronę),
przerywają transmisję po opróżnieniu całego bufora? Nie - ale na kilka
znaków "opóźnienia" trzeba być przygotowanym. Powiedzmy max 10.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Sat, 15 Jan 2005 00:01:11 +0100
On Fri, 14 Jan 2005 23:05:08 +0100, Adam Dybkowski wrote:
J.F. wrote:
Nie starczy :-(
Pamietaj ze teraz na byle plycie glownej masz uart z 16B fifo.
A tu jeszcze mamy obsluge programowa..
UART z 16 bajtami FIFO tu dużo nie zmienia. Miałem do czynienia z
prostym UARTem, który w FPGA wcisnął mój znajomy - przerywał transmisję
od razu po dokończeniu aktualnie wysyłanego znaku. Po prostu twórcom
sprzętu z peceta nie chciało się zbytnio nad tym popracować.
Trudno miec im za zle - wsadzili dostepnego w tamtych czasach uarta.
Myślisz, że gotowe UARTy mające 64 bajty FIFO (w każdą stronę),
przerywają transmisję po opróżnieniu całego bufora? Nie - ale na kilka
znaków "opóźnienia" trzeba być przygotowanym. Powiedzmy max 10.
Hm .. a jak one to robia ? Jesli sprzetowo - czemu az 10, i czy to nie
powoduje klopotow z kompatybilnoscia ? Programowo .. eee - nie bardzo
sobie wyobrazam ..
J.
Date: Sat, 15 Jan 2005 00:08:38 +0100
From: RoMan Mandziejewicz <roman_at_nospam_pik-net.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Hello J,
Saturday, January 15, 2005, 12:01:11 AM, you wrote:
Nie starczy :-(
Pamietaj ze teraz na byle plycie glownej masz uart z 16B fifo.
A tu jeszcze mamy obsluge programowa..
UART z 16 bajtami FIFO tu dużo nie zmienia. Miałem do czynienia z
prostym UARTem, który w FPGA wcisnął mój znajomy - przerywał transmisję
od razu po dokończeniu aktualnie wysyłanego znaku. Po prostu twórcom
sprzętu z peceta nie chciało się zbytnio nad tym popracować.
Trudno miec im za zle - wsadzili dostepnego w tamtych czasach uarta.
Wsadzili wyjątkowo nieudanego intelowskiego 8250 z wbudowanym błędem -
własnie nieprzerywania transmisji :-( Ten sam błąd powielono w 16450 i
- o zgrozo - w pierwszych wersjach 16550. Dopiero 16550A poprawnie
obsługuje zarówno FIFO jak i wstrzymywanie transmisji.
Jakby od samego początku nie można było wstawić Z80SIO... Ale to
byłoby wspomaganie konkurencji ;-)
Myślisz, że gotowe UARTy mające 64 bajty FIFO (w każdą stronę),
przerywają transmisję po opróżnieniu całego bufora? Nie - ale na kilka
znaków "opóźnienia" trzeba być przygotowanym. Powiedzmy max 10.
Hm .. a jak one to robia ? Jesli sprzetowo - czemu az 10, i czy to nie
powoduje klopotow z kompatybilnoscia ? Programowo .. eee - nie bardzo
sobie wyobrazam ..
W 16550A możesz sam ustalić moment żądania wstrzymania transmisji.
--
Best regards,
RoMan mailto:roman_at_nospam_pik-net.pl
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Sat, 15 Jan 2005 00:26:52 +0100
RoMan Mandziejewicz wrote:
UART z 16 bajtami FIFO tu dużo nie zmienia. Miałem do czynienia z
prostym UARTem, który w FPGA wcisnął mój znajomy - przerywał transmisję
od razu po dokończeniu aktualnie wysyłanego znaku. Po prostu twórcom
sprzętu z peceta nie chciało się zbytnio nad tym popracować.
Trudno miec im za zle - wsadzili dostepnego w tamtych czasach uarta.
Wsadzili wyjątkowo nieudanego intelowskiego 8250 z wbudowanym błędem -
własnie nieprzerywania transmisji :-( Ten sam błąd powielono w 16450 i
- o zgrozo - w pierwszych wersjach 16550. Dopiero 16550A poprawnie
obsługuje zarówno FIFO jak i wstrzymywanie transmisji.
A to bardzo dziwne, bo próby prowadziłem z całkiem nowym komputerem, w
którym UARTy są zintegrowane w chipsecie (płyta ASUSa + Athlon XP). I
wysyłanie było zatrzymywane nie od razu, ale po kilku znakach. Jako że
przy włączonym sprzętowym sterowaniu przepływem, UART samoczynnie
reaguje na zabronienie transmisji z zewnątrz, procesor nie ma tu nic do
gadania. A żeby się nic nie zgubiło, wynaleziono FIFO.
No ale COMy odchodzą w niepamięć i teraz w firmie męczymy się z USB.
--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/
Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Sat, 15 Jan 2005 01:18:21 +0100
On Sat, 15 Jan 2005 00:08:38 +0100, RoMan Mandziejewicz wrote:
Hello J,
Trudno miec im za zle - wsadzili dostepnego w tamtych czasach uarta.
Wsadzili wyjątkowo nieudanego intelowskiego 8250 z wbudowanym błędem -
własnie nieprzerywania transmisji :-(
Cale trzy bajty - to zaden blad :-)
Ma, chyba do tej pory, inny blad - nie wiadomo kiedy sie konczy
transmisja. I jak tu przelaczyc np RS485 na odbior ?
Ale to byla tylko karta rozszerzen - komu sie nie podoba mogl uzyc
innej :-)
Ten sam błąd powielono w 16450 i
- o zgrozo - w pierwszych wersjach 16550.
Nie bardzo bylo jak ..
Jakby od samego początku nie można było wstawić Z80SIO... Ale to
byłoby wspomaganie konkurencji ;-)
IBM to nie intel. Poza tym uzyli do dyskietek uPD765 NECa, mimo ze
oryginal nazywal sie Intel 8272 [o ile mnie skleroza ..]
A peryferia Z80 wstawic nie tak latwo - trzeba wygenerowac sporo
sygnalow kompatybilnych na magistrali ..
W 16550A możesz sam ustalić moment żądania wstrzymania transmisji.
Chyba musze doczytac ... a moze juz nie warto ?
J.
Date: Sat, 15 Jan 2005 09:40:41 +0100
From: RoMan Mandziejewicz <roman_at_nospam_pik-net.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Hello J,
Saturday, January 15, 2005, 1:18:21 AM, you wrote:
[...]
W 16550A możesz sam ustalić moment żądania wstrzymania transmisji.
Chyba musze doczytac ... a moze juz nie warto ?
Nie wiem, czy warto - to zależy od Ciebie.
--
Best regards,
RoMan mailto:roman_at_nospam_pik-net.pl
From: "Panoramix" <panoramix_x_at_nospam_o2.pl>
Subject: Re: RS232 - transmisja proc z seri '51
Date: Wed, 2 Feb 2005 21:50:08 +0100
Albo porównujesz każdą ramkę ze wzorcem który sobie ustalisz. Jeżeli sie
zgadza ze wzorcem, znaczy że bufor przepełniony i procek ma przestać
nadawać, jeżeli się nie zgadza to nadaje dalej. W odwrotną stronę tak samo
można zrobić.
To się nazywa "metoda komunikatów" :D - miałem ostatnio sprawdzian z tego
hehehe :)
--
/Panoramix