Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: контроллер для шлюза
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
v4567
Здравствуйте, форумчане.
Хочу на контроллере, спаять и написать на ассемблере программное обеспечение для интернет шлюза. ГРОМКО СКАЗАНО КОНЕЧНО, но хотя бы хочу попробовать.
Подскажите пожалуйста, если кто знает или занимался подобным, какой контроллер для этих целей выбрать?
AVR для этих целей не подходят, маленькая частота и памяти маловато, для фаэрвола и шейпера (может конечно я ошибаюсь) частота нужна где то порядка гига. Порывшись в интернете наткнулся на контроллеры AM3892 и AM3894 по параметрам они подходят, но вот беда ни ассемблера ни подробного описания на них я так и не нашёл (про описание на русском языке я вообще молчу).
Может кто знает где описание с ассемблером для них можно взять, или знает другие контроллеры с подробным описанием, помогите пожалуйста. За помощь заранее благодарен.
prottoss
Цитата(v4567 @ Mar 17 2011, 21:25) *
Здравствуйте, форумчане.
Хочу на контроллере, спаять и написать на ассемблере программное обеспечение для интернет шлюза. ГРОМКО СКАЗАНО КОНЕЧНО, но хотя бы хочу попробовать.
Подскажите пожалуйста, если кто знает или занимался подобным, какой контроллер для этих целей выбрать?
AVR для этих целей не подходят, маленькая частота и памяти маловато, для фаэрвола и шейпера (может конечно я ошибаюсь) частота нужна где то порядка гига. Порывшись в интернете наткнулся на контроллеры AM3892 и AM3894 по параметрам они подходят, но вот беда ни ассемблера ни подробного описания на них я так и не нашёл (про описание на русском языке я вообще молчу).
Может кто знает где описание с ассемблером для них можно взять, или знает другие контроллеры с подробным описанием, помогите пожалуйста. За помощь заранее благодарен.

http://catalog.gaw.ru/index.php?page=compo...il&id=53278
Цитата
Хочу на контроллере, спаять и написать на ассемблере
Советую еще в комплект прикупить револьвер с заправленным барабаном.
v4567
Цитата(prottoss @ Mar 17 2011, 16:40) *

Эту страницу я видел и описание скачал, оно не сильно подробное и описания ассемблера там нет.
SSerge
Цитата(v4567 @ Mar 17 2011, 20:58) *
Эту страницу я видел и описание скачал, оно не сильно подробное и описания ассемблера там нет.

А в самом низу страницы ссылку на сайт производителя (Texas Instruments) видели?

PS. Интересно, сколько лет своей жизни Вы намерены посвятить реализации этой идеи?
kovigor
Цитата(v4567 @ Mar 17 2011, 17:25) *
Здравствуйте, форумчане.
Хочу на контроллере, спаять и написать на ассемблере программное обеспечение для интернет шлюза.


Зависит от того, что за интерфейсы вам нужны, какая нужна производительность, и проч. В общем случае, наверное, придется искать контроллер или процессор с несколькими интерфейсамм Ethernet. Возможно, такие есть среди ARM9. А еще есть специальные NetWork Processors. Например, IXP465 от Intel. Или, например, PXA270. Или MPC8347 от Моторолы (Freescale). Для начала просто советую засунуть в персоналку две сетевые карточки, поставить Линукс и сделать шлюз на ней. Понравится - купите девкит для соотв. МК, там в комплекте идет Линукс, и поднимите ваш проект на нем. И только тогда будет смысл думать о полностью самодельном ПО.
Идея написания вашего ПО на асме совершенно абсурдная. Вам бы на Си такой проект поднять, и то хорошо было бы. А на деле скорее всего все упрется в Linux.
Вообще, откуда такая задача взялась ? Просто интересно ? Так начните с чего-то попроще. Например, возьмите AVR + RTL8019 и попробуйте подключить к Ethernet эту связку. Так, можно сделать сетевой термометр, или еще что-то. Вы хоть попробуете, что это такое. Пионерский энтузиазм - это, конечно, хорошо. Но зачем начинать учиться вождению на Феррари, когда для этой цели гораздо лучше подойдет подержанный Запорожец ?
prottoss
Цитата(v4567 @ Mar 17 2011, 21:58) *
Эту страницу я видел и описание скачал, оно не сильно подробное и описания ассемблера там нет.
Отлично. Тогда продолжайте вот отсюда http://www.arm.com/products/processors/cor...a/cortex-a8.php
v4567
Цитата(kovigor @ Mar 17 2011, 17:10) *
Для начала просто советую засунуть в персоналку две сетевые карточки, поставить Линукс и сделать шлюз на ней.


Это уже сделал. За основу взял LFS но от туда взял только установку программ и то не всех, а не достающие пришлось добавлять. Все загрузочные скрипты написал сам. Сейчас шлюз реально работает, через него офис выходит в инет вроде всё нормально. В процессе сборки появлялась масса вопросов на некоторые ответы находились с трудом, что и подвигло меня на мысль сделать шлюз с нуля самому. Я представляю что это не просто, но хотя бы хочу попробовать.
По поводу программирования на ассемблере и написания что нибудь попроще, я раньше попытался написать на ассемблере шлюз для уровня 386 процессора, но уткнулся опять же в массу вопросов по железу ответы на которые я не нашёл, поэтому пришлось бросить. Кстати сказать я думаю что написание то есть программирование именно для задачи шлюза, не такая уж и сверх сложная задача, всё упирается в подробнейшее описание железа и протоколов, которого практически нет.
Если бы таковое было (например как на avr конроллеры, но они слабы для такой задачи) то написание было бы только в удовольствие.
Вот и прошу подсказки с конроллером и подробнейшей документацией на него.


я извиняюсь, kovigor что такое девкит?
kovigor
Цитата(v4567 @ Mar 17 2011, 19:28) *
Кстати сказать я думаю что написание то есть программирование именно для задачи шлюза, не такая уж и сверх сложная задача, всё упирается в подробнейшее описание железа и протоколов, которого практически нет.
Вот и прошу подсказки с конроллером и подробнейшей документацией на него.


Это не совсем так. Описания железа есть, и очень подробные. И на процессоры, и на МК, и на Ethernet PHY. И протоколы подробнейшим образом описаны в тех же стандартах. И в литературе много чего есть. Например, у того же Олифера. Написание ПО на асме, повторяю, полностью лишено смысла. Вы просто ухлопаете впустую массу времени. Вместо того, чтобы посвятить его изучению протоколов, аппаратуры и проч. гораздо более фундаментальных и важных вещей, вы будете засорять себе голову асмом. Зачем ? А кто ж его знает. Писать для AVR или 8051 на асме еще можно, но оправдано это крайне редко. А вот писать на нем для ARM можно только в порыве юношеского энтузиазма или по приговору суда.
Вот я вам и советую. Хочется железа ? Возьмите любой ARM7 (а лучше - ARM9, на котором можно будет потом поднять Linux) с Ethernet на борту. Сделайте в вашем устройстве второй Ethernet - интерфейс, подключив к нему ту же RTL8019 или CS8900. И попробуйте сделать шлюз на этом железе. Зачем сразу замахиваться на заведомо неподъемный с нуля проект ? Контроллер ? Вполне сгодится AT91SAM9XE512 или нечто подобное. Среда разработки - Кейл. Документации, ПО, литературы и примеров - куча. Так что ...


Цитата(scifi @ Mar 17 2011, 19:38) *
Либо это изощрённый троллинг, либо искреннее заблуждение эпического масштаба.


Нет. Просто молодость ...
kovigor
Цитата(v4567 @ Mar 17 2011, 18:31) *
я извиняюсь, kovigor что такое девкит?


Это такая платка, по сути дела маленький компьютер, собранный на вашем МК. Для ARM обычно комплектуется Линуксом или другой ОС. Т.е., имея такую штуку, вы сразу сможете сосредоточиться на вашей задаче, минуя разработку, отладку и изготовление аппаратной части. Например:

www.starterkit.ru
iosifk
Цитата(v4567 @ Mar 17 2011, 17:25) *
Хочу на контроллере, спаять и написать на ассемблере программное обеспечение для интернет шлюза.


5-ти портовый - KSZ8695 от micrel.com
etoja
Вот для любителей ассемблера:

Процессор SPEAr310 от ST:

ARM926EJ-S 333 MHz core
* LPDDR-333/DDR2-666 external memory interface
* 2 x USB 2.0 Host
* 5 x fast Ethernet
* 6 x UART interface
* 1x TDM/E1 HDLC interface with 128/32 timeslots per frame respectively
* 2x RS485 HDLC ports

Документация здесь: http_://www.st.com/internet/mcu/product/247245.jsp

AlexandrY
Цитата(etoja @ Mar 18 2011, 12:03) *
Документация здесь: http_://www.st.com/internet/mcu/product/247245.jsp


Понятно, доки нет.
На Micrel тоже кстати доки нет.

Самый реальный вариант это IMX287, если их конечно не смыло на фабрике Freescale в Sendai
На эти IMX-ы хотя бы полная дока в свободном доступе.
А на такие чипы как SPEAr дока нормальная в принципе может отсутствовать, все делается через техподдержку.
alag57
Цитата
На Micrel тоже кстати доки нет


А это не то?
iosifk
Цитата(AlexandrY @ Mar 18 2011, 13:37) *
На Micrel тоже кстати доки нет.

А вот это - неправда...
Это я для кого делал:
http://www.eltech.spb.ru/micrel_ethernet.html
А статьи у меня на сайте слабо найти?
И это нам не указ:
http://micrel.com/page.do?page=product-info/ether_over.jsp
Там все и лежит, только надо зарегистрироваться...
Но, уж если так ленть, то уж запросить даташит в техподдержке - это для боярина поруха чести?

Дальше продолжать не буду... А то не дай б-г кто-то на меня и обидится...
AlexandrY
Цитата(alag57 @ Mar 18 2011, 12:45) *
А это не то?


Тонкий юмор?

Цитата(iosifk @ Mar 18 2011, 13:13) *
А вот это - неправда...
Это я для кого делал: ....
А то не дай б-г кто-то на меня и обидится...


Мануал на стол и не будет вопросов.
Мануал на такой чип должен содержать не менее полторы тысячи страниц (это чтоб отличить мануал от филькиной грамоты, для тех кто не в курсе).
iosifk
Цитата(AlexandrY @ Mar 18 2011, 14:22) *
Мануал на стол и не будет вопросов.
Мануал на такой чип должен содержать не менее полторы тысячи страниц (это чтоб отличить мануал от филькиной грамоты, для тех кто не в курсе).


http://www.eltech.spb.ru/micrel_ethernet.html?id=4

Жмите на значек pdf...
А если надо, то на сайте микрела есть и хардварный проект и софтовый проект с драйверами линукса...
Видите ли, если я говорю, что есть, то это значит, что есть...
Не ленитесь.
v4567
Ребята, огромное спасибо за ответы, за помощь. Сейчас всё смотрю, разбираюсь.
AlexandrY
Цитата(iosifk @ Mar 18 2011, 13:28) *
А если надо, то на сайте микрела есть и хардварный проект и софтовый проект с драйверами линукса...
Видите ли, если я говорю, что есть, то это значит, что есть...


Ну я то не поленился за это не беспокойтесь.
Но это во первых все те же даташиты (бумага важная, но для разработки своей хардварно-софтварной платформы бесполезная ), во вторых они по вашим ссылкам не открываются.
Вообщем, пока не убедили sad.gif

А драйвера линукса в таких демках известно чего стоят. Человеко год возни с ними обеспечен.
iosifk
Цитата(AlexandrY @ Mar 18 2011, 15:36) *
Но это во первых все те же даташиты (бумага важная, но для разработки своей хардварно-софтварной платформы бесполезная ), во вторых они по вашим ссылкам не открываются.


http://www.micrel.com/_PDF/Ethernet/
И там берете.
А вообще, зарегистрируйтесь и будет Вам счастье.
и купите стартовый набор. На нем как раз сервер собран. И есть возможность его перенастраивать...
За 5 лет я уже и не помню сколько раз я рассылал доку по этим микросхемам...
Кстати, АРМ там стандартный и на него описания нет... Все счастье начинается с адресов регистров...
AlexandrY
Цитата(iosifk @ Mar 18 2011, 14:50) *


И по этой ссылке нет мануала. Адреса памяти эт хорошо когда речь о PHY драйвере идет.
Но когда надо освоить SoC нужен MANUAL.
Или вы в жизни BSP не писали под какой нить SoC?

Реверсить драйвера под линукс уж увольте, меньшими гораздо силами можно освоить чипы других производителей.
iosifk
Цитата(AlexandrY @ Mar 18 2011, 16:09) *
И по этой ссылке нет мануала.


Ну а вот это:
http://www.micrel.com/page.do?page=product...sys_on_chip.jsp
о чем я писал в самом начале, Вы тоже не нашли?

Тут и программы и схемы...
Ant.
Остается неясным, что не позволяет автору топика использовать для обозначенных целей обычные маршрутизаторы, стоимостью менее отладочной платы...
Правда для этого форума это оффтоп, т.к. зачастую они на MIPS.
Nemod
Вообще реальные пацаны делают все на одном кристале как например broadcom sm.gif

Правильный и дорогой подход - управляющий контроллер + плисина в котрую загрузить пару ip блоков mac mii + пара phy типа rtl8201 + всякая разная память озу типа ddr для организации очередей и буферов, nand flash если управляющий контроллер не может хранить у себя весь код плисины. Потом пару лет и три программиста и вот мы уже почти конкурент циске или джуниперу. Причем возможно с конкурентной ценой.

Неправильный и подешевле - взять предлагавшийся ранее sam9xe512 или что- то подобное побыстрее например из iMX серии. На одну строну которого прикрутить rtl8201 на другую cp2200. Залить туда uIP или lwIP и дописать софт.
После чего убедится что ты все равно не конкурент для длинка или негиара по стоимости и производительности.
AlexandrY
Цитата(Nemod @ Mar 19 2011, 22:02) *
Неправильный и подешевле - взять предлагавшийся ранее sam9xe512 или что- то подобное побыстрее например из iMX серии.


Правильный пацан это TC, который не заморачивается на хардваре, а точно знает что если линукс поставлен на платформу то дальше нужный ему роутинг он и на ассемблере напишет.
А вот путать sam9xe512 и iMX287 (который с 2-я Ethernet-aми, аппаратным свитчером, аппаратной сборкой TCP пакетов, и оставляет отдыхать всякие Micrel-ы) это уже прокол . biggrin.gif
sasamy
Цитата(AlexandrY @ Mar 19 2011, 23:17) *
А вот путать sam9xe512 и iMX287 (который с 2-я Ethernet-aми, аппаратным свитчером, аппаратной сборкой TCP пакетов, и оставляет отдыхать всякие Micrel-ы) это уже прокол . biggrin.gif


Это тот у которого ENET может работать только в be и в le нужно для буфера програмный свап делать ?
firstvald
Цитата(AlexandrY @ Mar 18 2011, 14:22) *
Мануал на такой чип должен содержать не менее полторы тысячи страниц (это чтоб отличить мануал от филькиной грамоты, для тех кто не в курсе).



NXP умудряется где то в 800-900 на свои чипы умещаться sm.gif Но все зависит от шрифта sm.gif
Nemod
Цитата(AlexandrY @ Mar 19 2011, 23:17) *
Правильный пацан это TC, который не заморачивается на хардваре, а точно знает что если линукс поставлен на платформу то дальше нужный ему роутинг он и на ассемблере напишет.
А вот путать sam9xe512 и iMX287 (который с 2-я Ethernet-aми, аппаратным свитчером, аппаратной сборкой TCP пакетов, и оставляет отдыхать всякие Micrel-ы) это уже прокол . biggrin.gif

Ну я сказал для начала "что то" из iMX, а не конкретно iMX287. Но вообщем я согласен что iMX с несколькими MAC это лучше чем sam9xe с одним.
Ему нужен шлюз а не аппаратный свитч. Что он конкретно под словом шлюз имел ввиду, т.е. какого уровня обработка пакетов (MAC, IP, TCP, Application) идет он не сказал.
Линукс это линукс, и большая пропускная способность при программной обработке на линуксе ему доступна только в некоторых случаях аппаратно решаемых встроенными в SoC модулями. Если нужен линукс и не заморачиватся на железе пускай идет покупает модуль PC104 или miniITX.

v4567
Цитата(Nemod @ Mar 21 2011, 10:14) *
Ему нужен шлюз а не аппаратный свитч. Что он конкретно под словом шлюз имел ввиду, т.е. какого уровня обработка пакетов (MAC, IP, TCP, Application) идет он не сказал.


Да нужен шлюз с поддержкой протоколов tcp/ip, icmp, udp с двумя интерфейсами Ethernet, usb можно один, sata для подключения hdd, и что бы можно было подключать монитор и клавиатуру.
Монитор и клавиатура нужна что бы можно было настраивать с консоли а не только удалённо.

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

Всё это хочу написать на ассемблере. Если кто скажет что это не подъёмная задача, то не соглашусь. Есть операционка называется колибри она же минует, написана одним человеком на ассемблере, поддерживает все эти протоколы, мало того она с графикой и браузер есть, есть несколько не сложных игр, занимает 3 Мбайта, то есть 3 Мегабайта ассемблера, значит под силу одному человеку написать такое.

Есть ещё часы с настройкой через инет по веб-интерфейсу на AVR-е, правда написаны они на Си
(на Си там не такие уж и большие программы), мало того они с веб-сервером. Написал всё это то же один человек, значит под силу одному написать. Сейчас ссылку не помню, всё дома. Если кому интересно когда приду домой выложу здесь.

Если кто спросит зачем всё это ведь можно всё сделать взяв PC на линуксе или на фряхе. Обьясняю:
я уже сделал всё это на линуксе. В начале взял стандартную сбору федору. Поставил начал настраивать, начали возникать проблемы, начал разбираться. Настройку интерфейса и маршрутов можно сделать двумя командами ifconfig и route, в федоре сделано 6 скриптами каждый где то по 200 строк, на разбиралово этого произведения ушла неделя, (это так сделано скорее всего из-за универсальности). В общем плюнул я на стандартные сборки и захотел сделать свою. Взя LFS, от туда взял только установку программ и то не всех (потом те что надо мне ещё доставлял), загрузочные скрипты написал свои. В общем проблем и вопросов было очень много, ответы искались неделями и месяцами, на некоторые вопросы ответов так и не нашёл. Про установку программ из исходников вообще промолчу. Но шлюз сделал и сейчас он работает вроде бы даже без проблем. В результате этих мытарств и решил написать что то своё с нуля. Я не говорю что напишу 100 процентов, что у меня всё обязательно получиться, просто хочу попробовать.
Вот и ищу чип (с подробной документацией и ассемблером) и плату с распаяным этим чипом.
Nemod
Ну масштаб идеи я оценил.
Колибри пока что более чем курьез не воспринимается http://lurkmore.ru/MenuetOS.
И что хочется сделать процессорозависимую ось под ARM на асемблере? которая бы все реализовывала все потребности в маршрутизации и фильтрации трафика?
Нет ну можно конечно, только не пойму почему на Си не написать. Во первых она будет переносимой, во вторых ну только в полтора два раза только больше места занимать.
По скорости сомневаюсь что можно выиграть. Зато можно хоть как то вменяемо прописать уровни абстракции такой сложной системы, документацию сделать. Код легче поддерживать и потом проще делегировать разработку другим людям если делать свою контору или открыть его.

Что то сомневаюсь я что самые крутые проекты для этого дела типа Cisco IOS и JUNOS написаны на асме (ну может быть только небольшие вставки). Скорее всего они и C++ используют местами.
sasamy
Цитата(v4567 @ Mar 21 2011, 16:09) *
Всё это хочу написать на ассемблере. Если кто скажет что это не подъёмная задача, то не соглашусь. Есть операционка называется колибри она же минует, написана одним человеком на ассемблере,


Какое глубокое заблуждение - ее писало целое сообщество [CENSORED] со всего мира несколько лет.

Цитата
В общем плюнул я на стандартные сборки и захотел сделать свою. Взя LFS, от туда взял только установку программ и то не всех (потом те что надо мне ещё доставлял), загрузочные скрипты написал свои. В общем проблем и вопросов было очень много, ответы искались неделями и месяцами, на некоторые вопросы ответов так и не нашёл. Про установку программ из исходников вообще промолчу.


В buildroot я это все соберу минут за 20.

Цитата
Я не говорю что напишу 100 процентов, что у меня всё обязательно получиться, просто хочу попробовать.


Ну а я говорю что 100 % не напишите если уж на простейшие стартовые скрипты у вас ушло больше недели - на все остальное вам жизни точно не хватит.
Enthusiast
Цитата(v4567 @ Mar 21 2011, 16:09) *
Да нужен шлюз с поддержкой протоколов tcp/ip, icmp, udp с двумя интерфейсами Ethernet, usb можно один, sata для подключения hdd, и что бы можно было подключать монитор и клавиатуру...

v4567, а почему бы не попробовать Freescale QorIQ P1010 UTM? Предъявленным требованиям этот набор вполне удовлетворяет за исключением возможности подключения к монитору и клавиатуре, зато недорого и паять схему не нужно.
Добавлю ещё один ролик на набор помощнее: "UTM Security Appliance Solution Utilizes QorIQ P1020 and VortiQA Software for Enterprise Equipment".
scifi
Цитата(Nemod @ Mar 21 2011, 17:07) *
И что хочется сделать процессорозависимую ось под ARM на асемблере? которая бы все реализовывала все потребности в маршрутизации и фильтрации трафика?
Нет ну можно конечно, только не пойму почему на Си не написать. Во первых она будет переносимой, во вторых ну только в полтора два раза только больше места занимать.

Про полтора-два раза - это Вы погорячились. Я считаю, в таком применении Си не проиграет ассемблеру. А может быть и выиграет, так как в ассемблере можно зарыться с головой и накосячить не по-детски.
v4567
Enthusiast спасибо за ссылки. С доставкой эти наборы дорого наверное будут стоить?
Как и обещал вот ссылка на часы (может кого заинтересует):
http://tuxgraphics.org/electronics/200710/...ntp-clock.shtml
вот то же на русском:
http://www.rlocman.ru/shem/schematics.html?di=55068
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.