Про разработки  


Железо
Разработанные платы выглядят примерно вот так: несколько ADSP, FALC, ALTERA и CODEC.

Мои библиотечные элементы, созданные с 04.1998 г.
Проект "Ethernet-MAC 10/100".
--------------------------------
В рамках данного проекта были разработаны и испытаны следующие блоки:
1. Контроллер Ethernet-MAC 10/100
2. FIFO для канала передачи и для канала приема.
3. Контроллер MI
4. Программа тестирования блоков, позволяющая производить передачу и прием пакетов через сеть.

Контроллер интерфейса MII для Ethernet-MAC 10/100
Контроллер позволяет производить прием и передачу пакетов данных в/из трансивера по интерфейсу MII. В канале передачи контроллер формирует преамбулу, передает данные, во время передачи производит подсчет CRC32, затем по окончании данных контроллер передает CRC32, и далее выдерживает паузу между пакетами в соответствии с программно - задаваемой длительностью. В канале приема контроллер ведет проверку адресов пакетов, поступающих из линии и принимает широковещательные пакеты и пакеты, имеющие МАС-адрес контроллера. При приеме ведется подсчет CRC32. Контроллер выполнен в варианте 16-ти битной шины и в варианте 32-х битной шины.

FIFO
Блоки FIFO позволяют буферизировать принимаемую информацию и служебную информацию, необходимую для выделения данных от разных пакетов. Разработанные блоки FIFO содержат набор сигналов достаточный для стыка с контроллером DMA или с микроконтроллером. Узел контроля работы FIFO производит проверку наличия данных в FIFO, наличие числа целых пакетов и их количество, проверяет правильность приема и передачи. Блоки FIFO выполнены параметризируемыми как по разрядности шины данных, так и по "глубине" FIFO.

Контроллер MI
Контроллер позволяет производить прием и передачу данных по служебному интерфейсу в/из трансивера.

Программа тестирования
Программа тестирования позволяет загружать ALTERA, позволяет контролировать и управлять состоянием трансивера, загружать пакеты на передачу и принимать пакеты из приемного FIFO.


Проект может быть доработан как библиотечный элемент для системы NIOS.



Проект "PCI target с памятью 64DW и IO 1DW".
----------------------------------------------
Данный проект был выполнен для сопряжения встроенного блока памяти емкостью 64 двойных слов и порта, разрядностью 1 двойное слово, с шиной PCI.

Проект выполняет:
1. чтение - запись конфигурации с проверкой паритета
2. регистр статуса показывает ошибки SERR и PERR
3. запись в командный регистр разрешений на формирование SERR и PERR
4. чтение - запись слова в статическую СИНХРОННУЮ память
5. чтение - запись Multiple в статическую СИНХРОННУЮ память
6. чтение - запись слова в УВВ
7. без циклов ожидания

Проект был встроен в плату и отлажен в реальном РС.
Проект поддержан тестовой программой, позволяющей контролировать состояние регистров.
Проект может быть доработан под конкретные требования.

Проект может быть доработан как библиотечный элемент для системы NIOS.



Проект "Встроенный RISC-16 микроконтроллер".
----------------------------------------------
В рамках данного проекта были разработаны и испытаны следующие блоки:
1. Микроконтроллер
2. Контроллер прерываний
3. Ассемблер



Описание процессора

Процессор выполнен как RISC CPU, причем если память команд расположена во внутренней синхронной памяти FPGA, то ВСЕ команды выполняются только за один цикл. Разрядность шины команд 24 бита, шины данных - 16 бит.
При адресации все регистры имеют номера 0 - 15. Аккумулятор имеет адрес 0.
Процессор имеет память команд и счетчик адресов памяти команд PS.
Память данных и счетчик адресов памяти данных DS.
Стек реализован аппаратно на регистрах и предназначен только для хранения адреса возврата из прерывания, глубина стека - 8 вложений.
Все переменные должны сохраняться в DS.
Процессор имеет контроллер прерываний, входы шины запросов прерывания - 8.
Входы флагов flag_in[15..0] . Входы флагов и команды, их обслуживающие, дают повышение скорости работы при обработке битовых данных от периферии - биты готовности, ошибки и пр.
Входы от регистров Rg[15..0] до 12 шин по 15 бит.
Выходы для управления регистрами до 12 выходов - стробов записи в регистры .
К процессору может быть добавлена любая периферия из приведенной в этом файле или вновь разработанной по требованию заказчика.

Описание команд процессора

H"00" - Nop
H"01" - JMP < Y > - переход без условий
H"02" - LDSA - и загрузка DS непосредственная из памяти команд
H"03" - LDSR - загрузка счетчика DS из регистра 2
H"04" - LDSD - загрузка счетчика DS из памяти данных !!! Между загрузкой LDS
и приемом информации из DS интервал - 2 команды
H"05" - RETI - возврат из прерывания
H"1X" - Mov Const, Reg - загрузка в регистр константы 16 бит
H"2X" - Mov [Mem], Reg - загрузка в регистр данных из памяти по адресу указателя DS
с инкрементом указателя!!! Между загрузкой LDS
и приемом информации из DS интервал - 2 команды
H"3X" - Mov Reg, [Mem] - загрузка данных в память из регистра по адресу указателя DS
с инкрементом указателя

H"4X" - Mov Reg, Reg
H"5X" - IF FlagX JMP < Y > - переход по условию - флаги периферии = 1
H"6X" - IF BitX JMP < Y > - переход по условию - биты аккумулятора = 1
H"7X" - IF [Reg0] JMP < Y > - проверка регистра аккумулятора на "не равно нулю"
H"8X" - JMP Reg - переход без условий косвенный возможен, если регистр передает данные в регистр

Команды, реализованные для данного микропроцессора, могут быть дополнены любыми типами команд, необходимыми для конкретной реализации.
Как видно из описания системы команд, процессор ориентирован не на математические операции, а на максимально быструю обработку периферии. Для встроенного применения все вычисления, необходимые для обработки периферии, производятся в отдельных вычислительных блоках, процессор же производит переключение потоков информации из одного обрабатывающего узла в другой.
При помощи дополнительного файла - оболочки процессор может быть доработан так, чтобы он соответствовал любому требуемому интерфейсу для связи с периферией, расположенной вне кристалла FPGA или на кристалле.

Блок "контроллер прерываний - ICU".

Блок контроллера прерываний имеет разрядность 8 векторов. Вектора прерываний задаются как параметры. Блок может быть доработан так, чтобы вектора программно загружались в регистры и оттуда передавались в CPU. Блок может использоваться как отдельное устройство для шифрации запросов.

Ассемблер
Ассемблер позволяет после компилляции получать файлы типа *.ttf, необходимые для инициализации памяти программ микроконтроллера.



Проект "MCS51 UART".
--------------------

Проект "MCS51 UART" разрабатывался как библиотечный элемент для системы NIOS.
В рамках данного проекта были разработаны и испытаны следующие блоки:
1. Генератор синхрочастоты приема-передачи - my_avalon_baud_gen
2. Блок "UART 51 микропроцессорного комплекта".
3. Тестовая программа для проверки режимов работы MCS51 UART на СОМ-порт.

Блок "генератор синхрочастоты для MCS51-UART" - "my_avalon_baud_gen ".

Блок представляет собой программируемый счетчик, выдающий сигналы синхрочастоты приема-передачи для MCS51 UART. Имеется файл - ptf, необходимый для связи с NIOS CPU.

Блок "UART 51 микропроцессорного комплекта" - "my_avalon_mcs51_uart".

-- UART, совместимый с 51-микропроцессором
-- здесь реализованы 3 режима по передаче и по приему, соответствующие UART микропроцессорного комплекта MCS51.
-- генератор частоты "extirnal"
-- приемник и автомат управления приемником
-- передатчик и автомат управления передатчиком

Имеется файл - ptf, необходимый для связи с NIOS CPU.

Тестовая программа для проверки режимов работы MCS51 UART на СОМ-порт.

Тестовая программа позволяет задать режимы работы MCS51 UART и проверить прием ипередачу информации. Если блок отлаживается в FPGA, то возможно подключение встроенного Логического Анализатора, при помощи которого визуально проверяются режимы приема и передачи.



Проект "UART - 8N1 Асинхронный ISA_8bit или Синхронно-Асинхронный embedded_32bit".
------------------------------------------------------------------------------------

В рамках данного проекта были разработаны и испытаны следующие блоки:
1. Генератор частоты передачи - uartbaud
2. UART - 8N1

Блок Генератор частоты передачи - uartbaud

Генератор частоты представляет собой параметризируемый делитель, для которого задаются как параметры частота системного генератора и частота в канале приема / передачи.

UART - 8N1
Блок UART - 8N1 выполняет функции СОМ-порта и может быть встроен как интерфейсная карта для шины ISA, реализующая дополнительные СОМ-порты, так и для встроенного микроконтроллера с 32-х битной шиной.

Блок UART - 8N1 имеет:
1. генератор частоты "internal" или "extirnal"
2. приемник и автомат управления приемником
3. передатчик и автомат управления передатчиком
4. выводятся биты регистра - "Line status register"
5. выводятся биты регистра - "Interrupt ID register"
6. регистр - "Interrupt enable register"
7. регистр - "Line control register"
8. выводится бит - "DRAB"
9. прерывания по уровню - "level" или по фронту - "edge"

Блок UART - 8N1 выполнен параметризируемыми и имеет следующие параметры:
base_addr = H"200",
system_clk =33300000,
baud_gen = "internal", или "extirnal"
baudrate=57600,
interface_mode = "ISA_8bit", или "embedded_32bit_asynch", или "embedded_32bit_synch"
int_mode = "edge" или "level"
Задавая режим работы можно получить решение для асинхронного "ISA_8bit" варианта, или варианты для встроенного применения: Асинхронный "embedded_32bit", или Синхронный "embedded_32bit"
Блок UART - 8N1 тестировался с ОС "Нейтрино".

Проект может быть доработан как библиотечный элемент для системы NIOS.


Проект "Блок шинного интерфейса - Bus Interface Unit".
--------------------------------------------------------

Блок шинного интерфейса предназначен для формирования следующих сигналов:
1. формирует 6 сигналов CS
2. формирует синхронные и асинхронные сигналы чтения - записи памяти и УВВ

Блок шинного интерфейса разрабатывался как узел, связывающий встроенный микропроцессор с периферией и памятью. Блок получает сигналы от процессора и формирует управление процессором по сигналу READY.
Работа блока определяется набором параметров, что позволяет легко добавлять порты и память к микропроцессору.
- Параметры задаются в порядке возрастания времени задержки на сравнение адреса и по задержке чтения-записи
-- параметр "Х_addr_cmp_time" определяет время на дешифрацию адреса абонента шины -
-- - это зависит от числа разрядов адреса и быстродействия микросхемы FPGA.
-- параметр "Х_wait_st" определяет общее время на дешифрацию адреса и время доступа к абонентам шины
-- параметр "Х_width_msb" определяет старший бит адреса, поступающий на схему сравнения адресов.
-- параметр "Х_width_lsb" определяет младший бит адреса, поступающий на схему сравнения адресов.
-- параметр "Х_addr" определяет адрес
-- параметр "Х_rdy_input" определяет нужно ли учитывать вход готовности от абонентов шины




Проект "Контроллер DMA"
------------------------

Контроллер позволяет производить прием и передачу данных в/из памяти по счетчику адресов канала DMA, в остальное время память адресуется счетчиком адресов, например, микроконтроллера. Контроллер формирует запрос на доступ к памяти, и по приходу подтверждения начинает работу.

Проект может быть доработан как библиотечный элемент для системы NIOS.



Проект "Таймер - Timer / CCP / PWM"
-----------------------------------

Данный проект содержит модуль таймера, позволяющий выполнять функции Таймера, Накопителя импульсов (Счетчика) и ШИМ. По выполняемым функциям модуль аналогичен модулю Timer0 для PIC16.
Модуль содержит Пределитель, который может подключаться ко входу модуля.
Модуль может работать в следующих режимах:
1. счет от системной частоты -- "синхр_счетчик"
2. счет от внешней асинхронной частоты -- "асинхр_ счетчик "
3. однократный счет до задаваемого значения -- "однокр_период"
3. циклический счет до задаваемого значения -- "цикл_генератор"
4. однократная пауза-период до задаваемого значения -- "однокр_шим"
5. циклическая пауза-период до задаваемого значения -- "цикл_шим"

Сигналы управления позволяют выбрать режим работы, внешнюю или внутреннюю частоту, фронт внешней частоты, режим работы предделителя и тд.
Проект содержит ядро модуля таймера и интерфейсную оболочку.
Ядро модуля таймера выполнено параметризируемыми как по разрядности Предделителя, так и по разрядности Счетчика таймера. Интерфейсная оболочка позволяет легко перестраивать проект под любые типы контроллеров с различными интерфейсами.

Проект может быть доработан как библиотечный элемент для системы NIOS.



Проект "I2C / SPI"
------------------

Данный проект содержит модуль SSP, позволяющий выполнять функции контроллера интерфейсов I2C или SPI. По выполняемым функциям модуль аналогичен модулю SSP для PIC16. Проект содержит ядро модуля SSP и интерфейсную оболочку. Интерфейсная оболочка позволяет легко перестраивать проект под любые типы контроллеров с различными интерфейсами.

Данный проект находится в стадии разработки.

Проект может быть доработан как библиотечный элемент для системы NIOS.



Проект "Коммутатор ИКМ - трактов".
-----------------------------------

Блок коммутатора был разработан в варианте 8 х 8 каналов. Проект может быть перестроен под большее число каналов.



Проект "Многоканальный HDLC контроллер".
----------------------------------------

Контроллер осуществляет прием и передачу по программно - задаваемым временным каналам. Передатчик контроллера HDLC формирует передачу флага, информации, bit-staffing, содержит CRC-генератор. Передатчик контроллера HDLC содержит коммутатор адресов Mailbox_RAM.
Приемник контроллера HDLC определяет приход флага, выполняет bit-staffing, содержит CRC- генератор, коммутатор адресов Mailbox_RAM, и генератор прерываний.
Память Mailbox_RAM содержит принимаемые и передаваемые пакеты.
Для проекта была выполнена программная симуляция и временная симуляция.



Проект "Порт АС97 ".
--------------------

Контроллер осуществляет прием и передачу данных в кодек стандарта АС97 по программно - задаваемым временным каналам.

Проект может быть доработан как библиотечный эл

Мои статьи по этой тематике:
Статьям посвящена отдельная страница. Это направление будет непрерывно развиваться до тех пор, пока хватит того о чем стоит писать. А дальше будет видно.

Ccылки на другие страницы, посвященные этому кумиру
Home
Про разработки после 2003 г.
Мои статьи подробно
Напишите мне


 
Hosted by uCoz