|
Какую Плис Выбрать Для Реализации Конкретной Задачи |
|
|
|
Feb 15 2014, 15:20
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Доброе время суток. Необходима помощь с выбором программируемой логики. Ранее не имел с ней дело, в связи с чем затрудняюсь с выбором. Возникла задача реализовать устройство - приёмопередатчик. В итоге нужно получить следующее: две платы, на каждой по плисине. На первую плату подаётся напряжение питания и желательно бы иметь интерфейс для обмена данными (USB, RS232 или подобные, для соединения с ПК, но это пока не принципиально). На вторую внешнее питание не подаётся, там стоят конденсаторы, накапливающие энергию. Соединены они с помощью высокочастотного трансформатора (требований к рабочей частоте пока нет, ориентировочно 100 кГц...1МГц). Принцип работы заключается в том, что в определённый момент времени осуществляется подача энергии через трансформатор ("короткие" импульсы), накапливается энергия на конденсаторах, плис игнорирует эти импульсы. Потом начинается передача информации (несколько байт "длинными" импульсами) с плис на первой плате, которую плис на второй плате должна записать во внутреннюю память и в ответ на это выдать какую-то информацию (несколько байт) через трансформатор. Прикреплена иллюстрация, поясняющая работу. В последствии плис планируется заменить заказной интегральной микросхемой после отладки алгоритмов. В связи с чем требования к первой плис: - энергопотребление не имеет большого значения - возможность реализовать обмен данными с ПК - частота тактирования может задаваться кварцем. Требования ко второй плис: - минимально возможное энергопотребление - частота тактирования не должна задаваться кварцем, однако должна быть достаточно высокой, чтобы "успевать" принимать информацию и успевать не реагировать на "короткие" импульсы передачи энергии (кстати, какие есть соображения по этому поводу? RC цепочка не может давать достаточно высокие частоты, к примеру для pic16 RC цепь генерирует всего 4 МГц, что может в этом плане плис?). На данный момент уже есть функционирующий передатчик на микроконтроллере pic16f84a (тактовая частота 10 МГц), передающий один байт на частоте 100 кГц и приёмник, пока ещё не совсем стабильно работающий на микроконтроллере pic18f14k22 (тактовая частота 64 МГц). Столь высокие частоты тактирования при относительно низкой скорости передачи обусловлены тем, что одна простая команда в микроконтроллере выполняется за 4 такта, ветвления 8, переходы и прерывания от 8 до 16. Это не совсем удобно поэтому и было решено реализовать всё на плис.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Feb 15 2014, 15:25
|
Участник

Группа: Свой
Сообщений: 69
Регистрация: 15-02-14
Из: Кострома
Пользователь №: 80 525

|
Судя по тому, что у Вас нет высокоскоростной передачи или какой то серьезной обработки сигналов, Вам подошла бы любая CPLD с таймерами и счетчиками, но Вы хотите интерфейсы. Значит либо Spartan6 от Xilinx либо Cyclone IV от Altera. В какой среде планируете работать.
|
|
|
|
|
Feb 15 2014, 15:31
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Посмотрите на iCE40 LP , с очень большой вероятностью это именно то, что нужно для задачи, особенно для "второй" ПЛИС, и, возможно, безальтернативное. Для первой же вообще особо не имеет значения, какое семейство. Хоть тоже iCE40, хоть MachXO2, хоть MAX-V, или LatticeXP2 (все имеют внутри и флеш, и генератор, который у латисов пошустрее и программируемый, у MAX фиксированно что-то типа 5 МГц (кажется), а у iCE40 их целых два, low speed (~10 кГц) и high speed (~12 MHz), первый может тактировать что-то медленное, а второй включаться когда это надо для быстрой работы)
|
|
|
|
|
Feb 15 2014, 17:52
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AntiDriver @ Feb 15 2014, 21:46)  А может лучше какой-либо аналог iCE40 LP. У этой серии нет (известных мне) аналогов. А, что касается софта, если Вы ни с чем до этого не работали, то совершенно все равно, с чего начинать, все они одной крови, плюс-минус нюансы. Если же работали, то тем более, смена среды пройдет легко. Поддержка у lattice, пожалуй, лучше всех других вместе взятых (скорее всего потому, что она не особо распиаренная, и у индусов из поддержки больше свободного времени). И не надо иметь каких либо предпочтений/предрассудков, связанных с фирмами-производителями при выборе комплектации. Это вредно. Есть параметры и цена, и ничего более нет. Честно говоря, я не вижу вариантов для второй ПЛИС, кроме iCE, с учетом такого питания.
|
|
|
|
|
Feb 15 2014, 18:24
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Про Xilinx просто много слышал и даже в институте когда-то программировали их, но не могу это назвать практикой, так как это было что-то вроде где-то достать программу у тех кто на год старше, попытаться залить и чудом защитить. А по поводу этой ПЛИС, документацию ещё не читал, с английским не очень, много времени на изучение уйдёт. В двух словах, какое программное обеспечение подойдёт? (есть ли под linux?) Каким лучше пользоваться? И какую литературу имеет смысл почитать? Что касаемо самой микросхемы, то какие у неё источники тактового сигнала? Хотелось бы обойтись, как уже писал, без кварцевого резонатора для снижения стоимости, хотя это не столь критично, так как потом всё равно всё будет переносится на интегральную микросхему, но заказчикам то нужно что-то показать))
Сообщение отредактировал AntiDriver - Feb 15 2014, 18:28
|
|
|
|
|
Feb 15 2014, 19:05
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Софт - icecube2, под линукс есть, скачивается с сайта производителя - http://www.latticesemi.com/Products/Design...S/iCEcube2.aspx . Литературу - общую, по выбранному языку описания аппаратуры, который хотите применить. Ну и даташит и т.п. по конкретной микросхеме, чтобы понять ее структуру. Источники тактового сигнала - LPSG и HSSG - прочитать в документации на серию, они называются "on-chip strobe generators", они именно on-chip, то есть не требуют ничего внешнего. наиболее полная информация, разумеется, в хэндбуке - http://www.latticesemi.com/~/media/Documen...ilyHandbook.pdf
|
|
|
|
|
Feb 15 2014, 19:07
|
Участник

Группа: Свой
Сообщений: 69
Регистрация: 15-02-14
Из: Кострома
Пользователь №: 80 525

|
Среда программирования скачивается с сайта xilinx.com, называется ISE или новая версия Vivado. Бесплатная версия поддерживает Spartan6, Вам должно хватить ее возможностей. Запускать лучше с кварцевым генератором, именно генератором, а не кристаллом кварца, перейти на RC цепочку всегда успеете, там могут быть нюансы. Для работы нужна либо отладочная плата, либо отдельный эмулятор, цена вопроса 500$. Все есть под Linux.
|
|
|
|
|
Feb 15 2014, 21:53
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Предполагается чередовать информацию и энергию (энергия - байт информации - энергия - байт информации), к тому же сама информация будет подпитывать конденсатор, пусть и не так сильно. Что касается iCE40 - ознакомлюсь. А что можно сказать по поводу CoolRunner-II CPLDs? Цитата Utilize far less power with an all-digital core and FZP process technology Ultra low power of 28.8 µW 16 µA typical standby current
|
|
|
|
|
Feb 16 2014, 04:22
|
Участник

Группа: Свой
Сообщений: 69
Регистрация: 15-02-14
Из: Кострома
Пользователь №: 80 525

|
А что Вы хотите услышать? CPLD микросхемы простой логики, то есть просто набор триггеров с элементами И-ИЛИ-НЕ. Количество максимум 256 таких яеек. Микросхема простая, надежная и дубовая. Работать с ней одно удовольствие. Среда программирвоания та же ISE. Да, еще бонус, так как микросхема простая, можно позволить себе ваять дизайн в "схематике". То есть рисуете схему, как на бумаге и получаете ее в железе. И все работает. Ну и довольно быстрая. Лень лезть в даташит, но на 100MHz она работает нормально.
Сообщение отредактировал vzelenuk - Feb 16 2014, 04:24
|
|
|
|
|
Feb 16 2014, 08:27
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(AntiDriver @ Feb 15 2014, 18:20)  Соединены они с помощью высокочастотного трансформатора (требований к рабочей частоте пока нет, ориентировочно 100 кГц...1МГц).
Принцип работы заключается в том, что в определённый момент времени осуществляется подача энергии через трансформатор ("короткие" импульсы), накапливается энергия на конденсаторах, плис игнорирует эти импульсы. Потом начинается передача информации (несколько байт "длинными" импульсами) с плис на первой плате, которую плис на второй плате должна записать во внутреннюю память и в ответ на это выдать какую-то информацию (несколько байт) через трансформатор. Прикреплена иллюстрация, поясняющая работу. В последствии плис планируется заменить заказной интегральной микросхемой после отладки алгоритмов. Требования ко второй плис: - минимально возможное энергопотребление - частота тактирования не должна задаваться кварцем, однако должна быть достаточно высокой, чтобы "успевать" принимать информацию и успевать не реагировать на "короткие" импульсы передачи энергии (кстати, какие есть соображения по этому поводу? RC цепочка не может давать достаточно высокие частоты, к примеру для pic16 RC цепь генерирует всего 4 МГц, что может в этом плане плис?).
передающий один байт на частоте 100 кГц и приёмник, пока ещё не совсем стабильно работающий на микроконтроллере pic18f14k22 Это не совсем удобно поэтому и было решено реализовать всё на плис. А на базе какого стандарта Вы сделали свою реализацию. На вскидку здесь сборная солянка из MIL-STD-1553 specifications и ARINC-429 bus Из диаграммы не понятно, как устройство игнорирует чего то в линии, как приемник определит начало кадра. На трансформаторную линию работает только Манчестер. Например пауза, потом непрерывно льется Манчестер на 1 МГц, устройство "оживает", передатчик знает примерно когда, встраивает в этот поток синхроимпульс (начало кадра (искаженный мачестер)) и непрерывно без всякого разделения на байты гонит весь поток данных в том же формате Манчестера. По окончании посылки гонит Манчестер на время записи информации в энергонезависимую память и принятия ответного слова и снова тишина. Это задача как раз для микроконтроллера. Где взять у CPLD энерго независимую память
|
|
|
|
|
Feb 16 2014, 08:41
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(AntiDriver @ Feb 16 2014, 01:53)  А что можно сказать по поводу CoolRunner-II CPLDs? В кулранерах генератора ни одного нету, и объем там максимум 512 триггеров, когда у iCE - минимум 384. И цена - для сравнение iCE40 на 384 регистра стоит $1.65 за 1 в digikey, а кулранер на 256 - $12.35 (в 8 раз почти дороже ни за что), дальше - корпус - у кулранера на 256 будет минимум 100 пин 14х14 мм (не БГА), у iCE40 - VQFN32 5х5 мм. Ну и у iCE40 есть PLL (мало ли, что), а у CPLD ее нет. В общем, разница налицо.
|
|
|
|
|
Feb 16 2014, 10:44
|
Частый гость
 
Группа: Участник
Сообщений: 106
Регистрация: 1-05-13
Пользователь №: 76 699

|
Видимо действительно имеет смысл остановиться на iCE40. Корпуса типа WLCSP и ucBGA мне явно не подходят (не будет предприятие заказывать многослойные печатные платы), так что придётся выбрать из: LP384 и LP1K (HX Series так понимаю не подойдут по энергопотреблению). Наверное имеет смысл остановиться на LP1K, пусть лучше ячеек будет побольше на запас, а то мало ли. И есть к ним что-то типа IP-ядра как на xilinx, скажем, для того чтобы можно было установить связь с компьютером по какому-либо интерфейсу? Цитата А на базе какого стандарта Вы сделали свою реализацию Стандарта как такового нет. Может быть меня дезинформировали, однако сообщили что в России вообще нет реализаций таких устройств (ну может за исключением частных разработок), а вот в Германии появились и тоже себе такую же игрушку хочется. Что касается MIL-STD-1553 specifications и ARINC-429 bus, посмотрю, думаю что-то интересное там найду. Почему я решил отказаться от микроконтроллера уже пояснил - нужна большая тактовая частота и в последствии разрабатывать интегральную микросхему, а микроконтроллер сможет дать лишь очень приблизительные данные того что может получится. И впринципе на это уже реализовано на микроконтроллере, осталось только отладить немного и подкорректировать форму передаваемой информации (отношение длительности информационных "скачков" к периоду информации, то есть время между передачей каждого бита).
Сообщение отредактировал AntiDriver - Feb 16 2014, 10:51
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|