| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Синхронизиране достъп до споделен ресурс http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=5302 |
Страница 1 от 1 |
| Автор: | darkyp [ Пет Яну 11, 2008 8:18 am ] |
| Заглавие: | Синхронизиране достъп до споделен ресурс |
Сметнах, че темата е по-скоро софтуерен въпрос и пиша тук. Имам >2 PIC-а. Какъв метод бих могъл (ако може въобще) да използвам, за да синхронизирам достъпа им до един дивайс говорещ по SPI? Благодаря! |
|
| Автор: | ToHu [ Пет Яну 11, 2008 10:46 am ] |
| Заглавие: | |
Ами ... ако ползваш SS линията може да следиш дали е заета, или да следиш клока, или пък да слушаш комуникацията, трябва да внимаваш с изходите на мастер устройствата в какво състояние ги държиш |
|
| Автор: | darkyp [ Пет Яну 11, 2008 11:11 am ] |
| Заглавие: | |
Примерно следя SS. Ако и двата PIC-а в даден момент проверят SS и тя е свободна, следва и двата да я заемат и не се разбира, че е настъпило произшествие. |
|
| Автор: | velio [ Пет Яну 11, 2008 11:25 am ] |
| Заглавие: | |
Може да проверяваш дали другия процесор е настъпил шината от неговия си изход (ще трябват малко допълнителни елементи). Пак са възможни колизии. Може да помислиш за приоритети... |
|
| Автор: | darkyp [ Пет Яну 11, 2008 11:35 am ] |
| Заглавие: | |
И на мен ми се завъртя в главата нещо като приоритети. Идеално си го представих така, но не знам дали има такива дивайси: Примерно има дивайс с два входа и два изхода. Действа по следния начин: вход - изход ----> натам лети времето 1 2 3 4 5 6 0 - 0 0 - 0 1 - 0 0 - 0 0 - 0 1 - 1 0 - 0 1 - 1 1 - 1 1 - 1 0 - 0 0 - 0 При време 3 първия MCU се опитва да заеме линията, дивайса обаче е в състояние което не му позволява - на първия изход има 0, MCU-то вижда това и се пробва по-късно при време 6 и е щастлив. Ама дали има такъв дивайс [edit]комбинация: 0-0 1-1 0-0 1-0 следва от приоритета[/edit] |
|
| Автор: | sthx [ Пет Яну 11, 2008 11:17 pm ] |
| Заглавие: | |
Нещо такова. Трябва да имаш арбитраж. Например слагаш още едно малко процесорче, което получава заявка и след това потвърждава или отказва достъп. |
|
| Автор: | Yanek [ Нед Яну 13, 2008 3:21 pm ] |
| Заглавие: | |
Малко непрофесионално ми звучи SPI с 2 мастъра. Това си е работа за I2C. Така или инак явно ти се е наложило, затова ти предлагам един може би не по-добър, но по-коректен вариант. Обявяваш единия процесор за мастър, а дивайса и другия проц за спомагателни (подчинени). Четеш с мастъра необходимите данни от едното подчинено и записваш в другото. Нещо като кеш, буфер, посредник. Никакви колизии, никакъв арбитраж, каквито и не са предвидени в този интерфейс. Не отхвърлям, че може да има ситуации, в които схемата е неприложима. |
|
| Автор: | darkyp [ Пон Яну 14, 2008 10:06 am ] |
| Заглавие: | |
Благодаря, на всички. Ще реша как да го направя. Иначе и аз си мислех за вариантите, които споделихте. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|