RS232 - transmisja proc z seri '51

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

Reply to
Mamba
Loading thread data ...
Reply to
Krzysztof Rudnik

na dobra sprawe jedna.

Po to one sa :-)

Protokol. XON/XOFF, ENQ/ACK, albo ambitniejszy..

J.

Reply to
J.F.

[...]

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).

Reply to
Adam Dybkowski

nie ma.

Nie starczy :-(

Pamietaj ze teraz na byle plycie glownej masz uart z 16B fifo. A tu jeszcze mamy obsluge programowa..

J.

Reply to
J.F.

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.

Reply to
Adam Dybkowski

Trudno miec im za zle - wsadzili dostepnego w tamtych czasach uarta.

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.

Reply to
J.F.

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 ;-)

W 16550A możesz sam ustalić moment żądania wstrzymania transmisji.

Reply to
RoMan Mandziejewicz

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.

Reply to
Adam Dybkowski

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 :-)

Nie bardzo bylo jak ..

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 ..

Chyba musze doczytac ... a moze juz nie warto ?

J.

Reply to
J.F.
[...]

Nie wiem, czy warto - to zależy od Ciebie.

Reply to
RoMan Mandziejewicz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.