А может быть можно выделить регистр аппаратных триггеров? Чтобы туда что-то записалось (или прочиталось) самой ПЛИСкой, без процессора? И сразу же ответить СИПом, тоже ПЛИСкой. А потом прочитать или записать этот регистр Кортексом. Нужно два таких регистра, один - 8 или (лучше) 16 бит, по адресу 176562, второй - несколько бит (3-5), с раздельным управлением, по адресу 176560 - один бит (Д7) устанавливаем процессором, а сбрасываем аппаратно, при чтении со стороны УКНЦ 8-/16-битного регистра или по сигналу сброса, второй (Д6) пишем/читаем со стороны УКНЦ, по сигналу сброса тоже сбрасываем. Может и еще потребуется пара-тройка битов.
Тогда все просто (со стороны Кортекса). Получили команду чтения, пока неважно, каким образом. Выставляем в наш 8/16-битный регистр очередное слово (или байт) данных и взводим триггер Д7. УКНЦовина, обнаружив там единицу, читает 177562, ПЛИСка аппаратно сбрасывает триггер Д7, мы это видим и толкаем новое слово данных, и снова взводим Д7.
В принципе, для чтения данных с псевдодиска, аппаратный регистр триггеров даже и не нужен, можно просто воспользоваться портом Кортекса. А вот для записи на псевдодиск аппаратный регистр необходим, ПЛИСка должна быстро принять в него очередное слово/байт данных, а наш Кортекс прочитает его, когда сможет.
Так как, реализуема подобная схема на PSoc?




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
