|
Господа, а не пора ли уже забыть про встроенные стеки? |
|
|
|
Jul 24 2013, 08:54
|
Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954

|
Ну вот подумайте STM32103RET стоит около 5$(в принципе хватит даже STM32103RСT). Порт FreeRTOS для этого контроллера есть, так-же есть порт lwip+ppp для freertos, т.е. практически все системное п.о. уже написано, только бери и кушай  . При этом мы получаем систему с которой работать на порядок удобней чем со встроенным стеком соответственно уменьшается время разработки. Кроме того возможности такой системы намного шире, например попробуйте открыть с помощью Simcom-вского встроенного стека пару серверних портов, с помощью стека от Telit вы сможете открыть несколько портов но при этом каждый серверный сокет может принять только одно соединение, а это не годиться, к примеру, для web-сервера, и.т.д. Кроме того, как бонус, отказавшись от встроенного стека мы получаем практически полную независимость от типа gsm модуля. Честно говоря вижу лишь один случай когда использование встроенного стека оправданно - когда программа работает на самом модуле(OpenAT, OpenCPU, phyton, java итд) ЗЫ Недавно пришлось преводить девайс на Sagem HILO NC на внешний стек по причине глючности внутреннего. И был приятно удивлен насколько это просто.
|
|
|
|
3 страниц
< 1 2 3
|
 |
Ответов
(30 - 39)
|
Aug 7 2013, 15:24
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата(kan35 @ Jul 31 2013, 09:49)  И как автор правильно заметил - абсолютная свобода в выборе модема, вплоть до проводных и ethernet. Проектные цены на микроконтроллеры далеки от розничных про которые тут речь шла, контроллер за 2-3$ вполне тянет стек и полезную задачу с несколькими соединениями. Так же стек поддерживаает мульти-PPP, так что можно через 2 соединения одновременно выходить в сеть, например один будет проводной (eth), другой беспроводной (gsm). Как пример - очень давняя разработка 2007 года на PIC18F1320 (256 ОЗУ, 8К флеш) - в гугле поиск "cambridge gprs": самописный стек на asm, работает через PPP - GPRS старых сименсов (начиная с C55) и Ethernet (ENC28J60). Поддерживал tcp, udp, dns, dhcp-клиенты. Плюс еще tDES или AES128 внутри на выбор. Сложного там особо ничего - иногда с АТ-командами внутреннего стека больше геморроя. Но сейчас есть встроенные приложения (OpenAT, OCPU), с помощью которых можно реализовать любые надстройки силами самого модуля (в т.ч. и езернет прикрутить ч/з SPI). Также можно изнутри модуля дозвониться на *99***1# и своим кодом программно подять ррр. Так, например, понадобилось сделать для роутера из LAN ч/з езернет (ENC28J60) в WAN ч/з GPRS (M12). Т.к. необходимо править IP-заголовки (портмаппинг), то внутренний стек модуля не подходит - тут надо работать на уроне IP-пакетов.
|
|
|
|
|
Aug 8 2013, 04:51
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(=F8= @ Aug 7 2013, 16:44)  При какие функции идет речь? CFUN абсолютно безразлично какой стек вы используете. Предавать данные в каком либо режиме кроме "1" разумеется не сможете. Читайте манулы внимательнее. BGS2 прекрасно передает и принимает данные в режиме CFUN=7 (другие просто не проверял, но думаю тоже долно работать). Другие модули также должны. Зачем вообще нужны режимы энерго сбережения если они не позволяют обмен данными. Проще тогда вообще отключать питание модуля. А вот при самописном стеке такое возможно?
|
|
|
|
|
Aug 8 2013, 05:52
|
Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954

|
Цитата(viakon @ Aug 8 2013, 07:51)  Читайте манулы внимательнее. BGS2 прекрасно передает и принимает данные в режиме CFUN=7 (другие просто не проверял, но думаю тоже долно работать). Другие модули также должны. Зачем вообще нужны режимы энерго сбережения если они не позволяют обмен данными. Проще тогда вообще отключать питание модуля. А вот при самописном стеке такое возможно? Прежде чем читать мануалы неплохо-бы ознакомиться со стандартами. Так-вот согласно GSM 07.07 описано 5 уровней функциональности 0-4. Из них обязательными к реализации являются только 0 и 1. Все, что выше 4 отдано на усмотрение производителя. Соответственно как ведет себя BGS2 в седьмом режиме я не знаю и знать не могу поскольку с этим модулем не работал. Более логично задать этот вопрос техподдержке производителя. Стандарты, если интересно, ищите здесь.Маленько ошибся, мануалы на Ваш модуль ссылаются не на GSM 07.07 а на 3GPP TS 27.007, но там то-же самое
|
|
|
|
|
Aug 8 2013, 09:50
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(=F8= @ Aug 8 2013, 11:52)  Прежде чем читать мануалы неплохо-бы ознакомиться со стандартами. Так-вот согласно GSM 07.07 описано 5 уровней функциональности 0-4. Из них обязательными к реализации являются только 0 и 1. Все, что выше 4 отдано на усмотрение производителя. Соответственно как ведет себя BGS2 в седьмом режиме я не знаю и знать не могу поскольку с этим модулем не работал. Более логично задать этот вопрос техподдержке производителя. Стандарты, если интересно, ищите здесь.Маленько ошибся, мануалы на Ваш модуль ссылаются не на GSM 07.07 а на 3GPP TS 27.007, но там то-же самое BGS2 приведен для примера. Как он себя при использовании внутреннего стека в режиме энергосбережения я знаю. При своей реализации IP стека будут ли работать режимы энергосбережения модуля? CFUN=0 например, он обязательный. Вместо чтения стандартов, предпочитаю читать даташиты, сразу становится понятно что реализовано.
|
|
|
|
|
Aug 8 2013, 13:05
|
Знающий
   
Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954

|
Цитата(viakon @ Aug 8 2013, 12:50)  BGS2 приведен для примера. Как он себя при использовании внутреннего стека в режиме энергосбережения я знаю. При своей реализации IP стека будут ли работать режимы энергосбережения модуля? CFUN=0 например, он обязательный. Подключите модем к компу. На компе есть TCP/IP стек. Подайте команду AT+CFUN=0. Сработало? Теперь попробуйте установить соединение не получается? Теперь аналогичные действия для CFUN = 7. Не могу сказать однозначно про BGS2, но MC52i в 7-м режиме соединение устанаваливает, а поскольку оба Cinterion-ы то... Цитата Вместо чтения стандартов, предпочитаю читать даташиты, сразу становится понятно что реализовано. А зря.
|
|
|
|
|
Aug 8 2013, 14:59
|
Местный
  
Группа: Участник
Сообщений: 290
Регистрация: 9-12-05
Из: г. Пермь
Пользователь №: 12 002

|
Цитата(=F8= @ Aug 8 2013, 19:05)  Подключите модем к компу. На компе есть TCP/IP стек. Подайте команду AT+CFUN=0. Сработало? Теперь попробуйте установить соединение не получается? Теперь аналогичные действия для CFUN = 7. Не могу сказать однозначно про BGS2, но MC52i в 7-м режиме соединение устанаваливает, а поскольку оба Cinterion-ы то... Ха. Причем тут стек то. Просто комповый драйвер не умеет выводить из CFUN=0. А еще вероятней проблемы с неработающим/выключенным flow control. CFUN=7 работает и хорошо. разницы по потреблению между этими режимами практически нет. Я получил ответ на свой вопрос, спасибо  . ps: не понравился мне CFUN=0, надо RTS тащить до модуля. CFUN=7 практически тоже самое, но обходимся только CTS.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|