doomer#gp
Oct 9 2008, 04:27
Итак вопрос собственно заключается в связке какго-нибудь мощного интегрированного проца (ARM926, ARM920, PPC) у которокго есть полноценный контроллер шины ISA c ARM7 микроконтроллерами от NXP. У последних, контроллер памяти не имеет входов типа RDY, WAIT, отвечающих за задаваемый внешне цикл ожидания. И, соответственно, возникает вопрос куда цеплять сигнал BUSY от двупортовки на его сторону. Как вариант вешать на INT, и в обработчики реконфигурить линию на вход и ждать подъема уровня.
Ваши соображения ?
А зачем, простите, их связывать столь нетривиальным способом?
doomer#gp
Oct 9 2008, 05:09
А как связать тривиально со скоростью хотя-бы 5 Мбайт/сек, с буферизацией.
5Мбайт/с - это хорошо, но не для ARM7 с тактовой <100MHz, ибо не перелопатит.
Поэтому вопрос остается открытым: зачем все это нужно?
doomer#gp
Oct 9 2008, 05:29
ARM7 (LPC2468, 72МГц) используется как процессоры ввода вывода.В сего их 2. Они собирают дискретную, аналоговую, структурированную информацию почти с использованием всей своей перефирии.
Передавать они будут уже накопленные данные, поэтому основная операция память-память.
К центральному процу по шине ISA цепляются 5 устройств, включая эти самые двупортовки от ARM-ов.
У центрального проца больше каких-либо средств обмена нету. Центральный -PPC440EP ( 1xSPI, 1xI2C 4(2)xUART, 2xMAC, DDR, ISA, PCI. SPI, I2C -не серьезно, к тому же они занеты на LPC-шке. UARTы - тоже самое. на PCI уже 2 устройства, плюс туда без контроллера не подключишь.
Вот, собственно, и все.
Может, Ethernet использовать проще будет? Уж очень криво тут двухпортовка будет цепляться.
Цитата(doomer#gp @ Oct 9 2008, 11:29)

К центральному процу по шине ISA цепляются 5 устройств, включая эти самые двупортовки от ARM-ов.
Т.е. между ISA и ARM имеется некая двухпортовая память....
Вот отсюда и надо плясать, если двухпортовость честная, то никаких RDY, WAIT и т.д. в сторону ARM не должно быть.
Если псевдо-двухпортовость то в зависимости от того как она реализована возможно и можно решить проблему (те же вэйтстэйты правильно расчитать и т.д.).
Думаю на одной ПЛИС-ине и СРАМ-ине легко решить эту задачу (может и готовые решения есть).
P.S. Помнится ADSP-2181 очень легко вешалить на ISA шину (с отображением своей внутренней памяти)
doomer#gp
Oct 9 2008, 06:31
Арбитр в двупортовке (CY7C027) есть. Он тянет BUSY с одной из сторон к нулю при возникно коллизии в случае обращения по одному и тому же адресу. Можно, конечно, сделать внешнюю синхронизацию с ипользованием GPIO для исключения данной ситуации вообще, или MAILBOX-ов той же двупортовки, но тогда усложняется программа и падает скорость чтения-записи. А так BUSY тянет WAIT (RDY) и контроллер шины с одной из сторон задерживается.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.