Softwarovy UART pro x51 ?
jiri@bezstarosti.cz
jiri@bezstarosti.cz
Čtvrtek Leden 27 12:55:50 CET 2005
Soft UARTy jsou v zasade dvojiho typu ci chcete-li provedeni.
Prvni je takovy, ze se resi jen kdyz je potreba a muze byt napocitan i na
cas provadeni instrukci. Takove soft UARTy je mozno pouzit pro zarizeni,
ktera odpovidaji pouze na dotaz, tedy nehrozi, ze by neco zacalo samo od
sebe neco posilat a my to propasli, protoze zrovna na to necekame. Pokud
vime, ze se takovy UART prenasi jen treba 3cm daleko po desce treba v CMOS
urovnich a nehrozi nebezpeci chyby, staci cekat na pocatek startbitu (sestup
signalu do L), pak pockat dobu pro jedna a pul bitu (posuv na stred casu
prvniho prenaseneho bitu) a nabirat v dobach jednoho bitu datove bity a po
poslednim vyckat na linku ve vysoke urovni (stopbit), cimz je bajt nabran.
Vysilani je pak primitivni, tedy vytvorenim prubehu na vystupu a asi neni
potreba to popisovat. Da se to pouzit i pro linky, kde neni bezpecne zarucen
prenos bez chyb, ale pak nejaky protokol se zabezpecenim pomoci CRC atp. a
moznosti opakovani chybnych komunikaci je vhodny.
Druhy je pres preruseni na zaklade interniho timeru MCU ci nejakych hodin
(treba i externich, generujicich preruseni na minimalne trojnasobku
prenosove rychlosti), ktery funguje stale, ale je potreba zajistit, aby se
mohlo volat preruseni v dostatecne presnych casech, tedy nemuze se nekde na
dele zakazat a nebo se o moc zpozdit, diky provadeni jineho preruseni. Tady
ale uz netrefujete signal presne nikam, tedy musite vzdy brat majoritu
minimalne 3 sejmuti vstupu pro urceni urovne kazdeho bitu. No a pri vysilani
si podle soft citace, tedy ktere je to preruseni vysouvate co je potreba od
startbitu az po stopbit a nekam si pomoci nejakeho pomocneho bitu hlasite,
ze je vyslano ci se muze vzit dalsi bajt. Navic si muzete udelat i kruhove
buffery pro prijem i vysilani - je to na delsi povidani :).
Jinak cim vice tady vzorkujete (vicekrate za bit), tim je pochopitelne
nabrani spolehlivejsi ohledne chyb, protoze nejaky "kratky vroubek" na lince
to nevyvede z miry - vysledkem bitu je to, ceho je vice ve vzorcich pro
kazdy bit.
Cele je to pak vzdy jen o tom, rozlisit startbit, nabrat vsechny bity a
rozlisit stopbit, napriklad pro urceni chyby ramce.
Verim, ze pokud pisete soft do MCU, tohle zvladnete pohodlne a pokud si to
napisete sam, muzete to o to lepe zakomponovat do Vasi aplikace a mit
jistotu, ze to opravdu dobre chodi.
--
Jiri Bezstarosti
-----Original Message-----
From: Pavel Novotny [mailto:novotny.pp@atlas.cz]
Sent: Thursday, January 27, 2005 10:03 AM
To: 'HW-news'
Subject: Softwarovy UART pro x51 ?
Marne hledam vzorovew reseni sw UARTU pro x51 , poradite nekdo nejaky link,
potrebuji do hotove aplikace pridat komunikaci na druhem seriovem portu a
menit kvuli tomu MCU se mi nechce.
Dekuji
Další informace o konferenci Hw-list