| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| UART/FIFO controllers http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=624 |
Страница 1 от 2 |
| Автор: | Nikola Kirov [ Пон Май 02, 2005 4:29 pm ] |
| Заглавие: | UART/FIFO controllers |
Някой ще ме светне ли какво ще рече това? Вече половин час се пуля и нямам еднозначен отговор на въпроса. UART естествено е ясно ама това FIFO ..... |
|
| Автор: | Lupus [ Пон Май 02, 2005 4:37 pm ] |
| Заглавие: | |
First In, First Out - FIFO http://www.filur.net/HOME/ftdi.htm |
|
| Автор: | Nikola Kirov [ Пон Май 02, 2005 5:15 pm ] |
| Заглавие: | |
Аз точно с това FT2232C се боря в момента да го проумея. Ама аз ли съм тъп или ми се губи нещо дето трябва да го знам пък съм го пропуснал,а може и даташита да не е добре написан ама не проумявам точно за какво става дума. Това FIFO някава буферна памет ли трябва да се явява в която се релизират опашки за изпращаните и приеманите данни? |
|
| Автор: | bateAz [ Пон Май 02, 2005 6:44 pm ] |
| Заглавие: | |
Да, FIFO е точно опашка. Например UART 16C550 има 16 байта буфер за предаване и 16 за приемане. Как работи напр. приемната част: При пристигане на байт обикновено CPU изпълнява прекъсване и обработва байта. Ако се забави с време, по-голямо от времето между два байта, следващият приет байт препокрива стария. При четене от регистъра за приет байт се чете новият байт, а старият е загубен. При наличие на FIFO дори забавянето на процесора с повече от няколко байта, информацията не се губи. При четене от адреса на регистъра FIFO подава първия приет байт, след това втория и т.н., докато се изпразни. След това се чете винаги само последния приет байт (докато дойдат нови). Това е в общи линии идеята за FIFO - да имаш по-редки прекъсвания и да допъскаш по-голяма латентност на ISR. Затова UART с FIFO обикновено се сетва да прекъсва при 10-14 байта запълване, а не при 1 или 16. При 1 ще те прекъсва много често, при 16 едно евентуално забавяне ще е фатално. Дано съм те "оправил" |
|
| Автор: | Nikola Kirov [ Пон Май 02, 2005 7:18 pm ] |
| Заглавие: | |
Мерси,изясни ми се картинката Като гледах нарисуваната блок схема на FT2232C съм забил в грешна посока,там буферите са външни за UART/FIFO контролера и аз се зачудих кво става,и обяснеието им малко мъгляво .... ама сега като знам за кво става дума всичко ми се вижда ОК. |
|
| Автор: | HCL [ Пон Май 02, 2005 7:40 pm ] |
| Заглавие: | |
Готино обяснение на FIFO е "ами обратното на LILO-last in last out" BateAz "опашка" в случая има същото значение като буфер, нали? И втори въпрос каво става когато въпросната опашка се препълни, всичките 16 байта заминават или те се запазват, а всеки нов байт се губи? |
|
| Автор: | Lupus [ Пон Май 02, 2005 8:02 pm ] | |||||||||
| Заглавие: | ||||||||||
Е то FIFO не е ли еднозначно на LILO? Може би имаш в предвид FILO - "First In, last out"? |
||||||||||
| Автор: | bateAz [ Пон Май 02, 2005 8:12 pm ] |
| Заглавие: | |
За хората с чувство за хумор обеснявам: FIFO - first in - first out. Нещата излизат в реда, в който са влезли. Напр. нормално функционираща храносмилателна система. LIFO - last in - first out. Нещата излизат в ред, обратен на този, под който са влезли. Напр. претъпкан автобус - първи слизат тези, които последно са се качили. Друг пример - храносмилателна система след МНОГО тежко препиване. |
|
| Автор: | HCL [ Пон Май 02, 2005 8:14 pm ] |
| Заглавие: | |
Мерси, моя грешка. Мислех си нещо за едни мрежови устройства, но твоята корекция ми повдига нов въпрос в добавка към първия: Има ли разлика м/у FIFO и LILO при приоритетите кой баитове да се изгубят при препълнена опашка. Да не би при един от методите да се запазват първопристигналите байтове, а всички нови да се губят, а при другия да е обратното? |
|
| Автор: | 0x00 [ Пон Май 02, 2005 11:49 pm ] |
| Заглавие: | |
LILO е bootmanager за x86 Няма значение каква е опашката, ще се изгубят тези байтове, които са "последни" и в двата случая. Разликата е, че при FIFO опашката ги "вземаш" от там в права, а при FILO - в обратна последователност. |
|
| Автор: | HCL [ Вто Май 03, 2005 12:31 am ] |
| Заглавие: | |
ставаше въпрос за разликата м/у FIFO и LILO, ако има такава. А иначе LILO-то е Linux Loader, но ако си "спортист" може и само бози да си бутваш с него |
|
| Автор: | ¶ [ Вто Май 03, 2005 12:52 am ] |
| Заглавие: | |
... |
|
| Автор: | HCL [ Вто Май 03, 2005 1:01 am ] |
| Заглавие: | |
не не имах в предвид друго. Понеже 0х00 писа, че е за х86, исках да наблегна, че е писан за Линукс, но няма никакъв проблем ако ти се спортува |
|
| Автор: | ¶ [ Вто Май 03, 2005 1:06 am ] |
| Заглавие: | |
... |
|
| Автор: | HCL [ Вто Май 03, 2005 1:17 am ] |
| Заглавие: | |
И аз не се изразих както трябва, но щом настояваш... няма да спорим за глупости сега Поздрави на всички и аз съвсем забравих Христос Воскресе, пожелавам ви всичко най-добро на всички във форума |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|