west329_
Dec 27 2011, 14:33
Первые запуски встроенного в сам модуль приложения оставили пока только положительные отзывы.
Продвигаясь дальше по схемотехнике и развивая идею автономности приходится за ненадобностью убирать стоящий рядом контроллер, который выполнял на своих плечах львиную долю работы. Собственно на нем крутился сетевой стек, управление внешним питанием модуля схема защиты от зависания, коммутация сим карт на случай окончания финансов на оных.
Начну по порядку перечислять новоиспеченные костыли.
1. Автоматическое включение модуля 900. Я понимаю что можно поставить конденсатор и подтянуть резистором. Но с моей колокольни это некрасиво как минимум.
Как выход из положения вешать контроллер снаружи специально для включения модуля гарантированного. Не могу понять лишь одного почему разработчики не предусмотрели автоматический старт прошивки если это версия с ЕАТ функциями, ведь они прекрасно понимают что на 100% будет крутится приложение стороннее в модуле, тем более что телодвижений вообще никаких не нужно.
2. Так как внешний контроллер коммутировал сим карты, а его теперь нет, задача пала на плечи самого модуля. Вопрос такой кто как реализует такую ситуацию ?
Для коммутации использовалось 2 выхода на каждый по карте, так вот есть ли возможность переподключать сим карту из приложения пользователя, или опять нужно прибегнуть к помощи внешнего контроллера ?
3. Ну и напоследок питание. Ситуация банальна контроллер в силу своей кармы или кармы программиста завис полностью. Как его вывести из такой ситуации ? Насколько я понимаю некоторые особенно жесткие зависания лечатся полным снятием питанием с модуля. Вижу выход только в помощи извне, опять внешний контроллер следит за работой 900 и почувствовав что большому брату требуется помощь аккуратно перекрывает ему полевым транзистором кислород(питание).
Что посоветуете ?
CADiLO
Dec 27 2011, 14:45
1. Автоматическое включение модуля 900. Я понимаю что можно поставить конденсатор и подтянуть резистором.
Резистор есть внутри. Кроме того я не копался глубоко, но наличие вот этого
The ebdat6_17DisablePowerOffKey function
The ebdat6_17DisablePowerOffKey function configures the power key as a normal key. If the
power key is pressed, EVENT_KEY will be triggered, and the value of key_val will be 0x0000. In
default mode, the power key is enabled.
превращает ножку POWERKEY в обычный вход, а значит должен быть автостарт модуля.
надо порыться в опциях.
2. Так как внешний контроллер коммутировал сим карты, а его теперь нет, задача пала на плечи самого модуля. Вопрос такой кто как реализует такую ситуацию ?
Внешний коммутатор, а один из GPIO модуля указывает какую карточку используте.
3. Ну и напоследок питание. Ситуация банальна контроллер в силу своей кармы или кармы программиста завис полностью. Как его вывести из такой ситуации ?
PIC10 или аппаратное решение в виде супервизора-антизависателя - именно так как и предполагаете.
Делаю новый проект на EAT. По советам с форума поставил PIC10F200. Сваял простенькую програмку, которая включает модуль и в случае его мертвого зависания жэсточайше выключает ему питание полевым транзистором. +1у.е к стоимости всего проекта, +неприятная ситуация с программированием контроллеров (очень маленькие - в sot-23-6). В смысле программирования, думаю сделать на плате контактные пятаки и прошивать во время наладки устройства. Благо, партии не большие. Более изящный способ был предложен в форуме gegel - ссылки на его проект нету, но можно поискать по названию архива, который он выкладывал gps_260911.rar. Там он предлагает интересную схемку вачдога на 4001. Взять эту схему без ее детальной проработки с моделированием я не рискнул, но за идею gegel огромное спасибо.
CADiLO
Dec 28 2011, 07:14
А PIC10F200 у минского "Альфа-Софт" берете? Потому как у нас он в розницу $0.45
Прошивать действительно удобнее на плате. Обратите внимание на TC2030-MCP - который без защелок.
http://www.microchip.com/stellent/idcplg?I...ocName=en541939Аппаратно кроме 4001 можно еще на 555 таймере сделать.
Цитата
А PIC10F200 у минского "Альфа-Софт" берете?
Для опытов взял на рынке. А так конечно, у Альфасофта буду брать.
Цитата
Обратите внимание на TC2030-MCP - который без защелок.
За эту ссылку огромное спасибо - именно то что и нужно было. Я раньше с пиками никогда не работал, и всех удобств не знаю.
Цитата
...можно еще на 555 таймере сделать
пробовал - что то не очень получилось... правда мало времени уделил... решил с микроконтроллером сделать - двух зайцев сразу убить - и питание, и вачдог
imho GEGEL прав - если на контроллере не лежит никаких обязанностей кроме вочдога, то не надо еще одно программируемое устройство в схему тащить. Лучше 2 корпуса логики, чем 1 пик.
Другое дело, что в устройства для жестких условий эксплуатации не надо , конечно, ставить резисторов с номиналами типа магаома, я и 100к не стану ставить.
CADiLO
Dec 28 2011, 10:40
Жаль не успеваем до НГ - новая версия EAT будет после праздников.
Скорее всего одновременно с ЕАТ для SIM908.
Список новшеств оглашу чуть позже.
Цитата
Другое дело, что в устройства для жестких условий эксплуатации не надо , конечно, ставить резисторов с номиналами типа магаома, я и 100к не стану ставить.
Вот и меня это же смутило - в условиях автомобиля возможен и конденсат, и пыль с различными гадскими испарениями, сопротивления в мегаом уж как то стремно ставить.... Могут поплыть времянки... А у меня основная задача - сделать надежное устройство.
Согласен - мегомные резисторы немного не в тему для авто. Можно уменьшить до надежного номинала, пропорционально увеличив конденсаторы. Необходимо выдержать две временные составляющие: по периоду меандра (для входных цепей) и собственно для периода мультивибратора (подачи - снятия питания) - около 5-8 сек.
А выбрал логику исключитально чтобы не шить пик...
CADiLO
Dec 29 2011, 08:28
Возвращаюсь к вопросу
>>>>Автоматическое включение модуля 900. Я понимаю что можно поставить конденсатор и подтянуть резистором.
В даташите на чипсет четко описано когда влючится питание
* Detection and debouncing of system power-on orders:
POK and AUX_POK press, RTC alarm, charger plug-in or pins POK goes below 0.4 x Vperm, then PNXxxxx is powered on.
Поэтому програмно можно включить только извернувшись со срабатыванием будильника в момент подачи питания.
Но это для мазохистов, а приемлимое решение именно в PIC10 или другом маловыводном и дешевом контроллере.
недостаток - нужно программировать в системе.
преимущества - не нужно RC цепочек, сделает выдержку времени для POWERKEY, реализация антизависателя который делает попытку отключиться сначала поверкеем, а при неудаче передернет ключиком.
итого соединяем 4 ножки портов
1 - вывод POWERKEY
2 - управление ключиком на питании
3 - вход импульсов с модуля - пропали, завис
4 - вывод STATUS модуля
так можно в принципе отловить практически все ситуации с питанием.
west329_
Dec 29 2011, 10:57
По поводу включения модуля.
Повозившись с прошивкой сим900 пару вечеров заметил такую особенность. Если Замкнуть ПоверКей глухо на землю, как для режима замены прошивки, подаём питание и при этом не делать никаких телодвижений модуль прекрасно сам стартует секунд через 5-10. При это все четко работает внутренние приложение и все остальное. Не знаю это так и надо или недоглядели разработчики. Меня лично такой подход устраивает полностью.
По поводу глубокого зависания.
Предлагаю такой вариант схемотехнического решения. Так как без внешнего контроля не обойтись, как на меня поставить контроллер копеечный интереснее. прошивать его при больших партиях однозначно снаружи в панельке, при малых можно и на коленке.
CADiLO
Dec 29 2011, 11:14
>>>>>>Повозившись с прошивкой сим900 пару вечеров заметил такую особенность. Если Замкнуть ПоверКей глухо на землю, как для режима замены прошивки, подаём питание и при этом не делать никаких телодвижений модуль прекрасно сам стартует секунд через 5-10. При это все четко работает внутренние приложение и все остальное. Не знаю это так и надо или недоглядели разработчики. Меня лично такой подход устраивает полностью.
До GPRS еще не добрались? При постоянно замкнутом поверкее нормально не работает.
и пару новостей
If possible, add the MP3 or AMR format. It is useful for applications with the voice menu.
------In next EAT version, AMR format voice will be supported.
Add SLEEP mode in EAT.
--------SIM900 EAT has already supported this feature.
DTMF decoder
----ok implem.
west329_
Dec 29 2011, 11:23
Ещё нет, угадали.
Ну тогда ногой контроллера внешнего сформировать поверкей сигнал, тут уже выбора нету.
Ещё одна особенность. Извлекаем одну сим карту, вставляем другую. Можно ка кто заново запустить процедуру инициализации или проще перегрузить модуль полностью питанием. Пробовал в горячем режиме заменить сим, модуль потом не реагирует на новую карточку.
CADiLO
Dec 29 2011, 11:37
У меня на отладочной плате со стандартным фирмваре получалось так:
Без ухода модуля в сброс - проверялось для переключения карточек на лету - иммитировалось управление коммутатором и SIMPRESENT от внешнего контроллера.
На SIMPRESENT повешен микрик - иммитация внешнего управления, сам SIMPRESENT через 10к на Vext
AT+CFUN=4
OK
// здесь я вынул - вставил карточку
AT+CFUN=1,0 // обязательно с 0 иначе сбросится модуль
OK
+CPIN: NOT READY
AT+CSDT=1 //разрешил опрос карточки - нельзя делать раньше чем CFUN=1
OK
+CPIN: NOT READY
//здесь я зажал микрик и подал 0 на SIMPRESENT
AT+COPS?
+COPS: 0,0,"UA-KYIVSTAR"
OK
AT+COPS=0 // регистрируемся в сети
OK
AT+CSDT=0 // запретил опрос SIMPRESENT и отпустил микрик
OK
AT+CREG?
+CREG: 0,1
OK
Если разрешить опрос SIMPRESENT в другом месте то AT+COPS дает ERROR и CREG уходит в 0,3
Работает именно приведенная последовательность.
west329_
Dec 29 2011, 17:43
Комбинация интересная, надо попробовать. Как она себя ведет себя с разными прошивками модуля тоже вопрос.
Цитата(west329_ @ Dec 29 2011, 13:57)

Если Замкнуть ПоверКей глухо на землю, как для режима замены прошивки, подаём питание и при этом не делать никаких телодвижений модуль прекрасно сам стартует секунд через 5-10.
Еще хочу добавить: так стартует он как раз не в 100% случаев. Если это ручное включение и юзер сам контролирует процесс по индикатору, то ничего страшного - перевключит, но если автономное устройство, то так и будет стоять до повторного снятия-подачи питания.
CADiLO
Dec 30 2011, 07:38
Проверял на восьмерке с DTMF декодером.
Romashki
Dec 30 2011, 09:14
Цитата(west329_ @ Dec 29 2011, 13:23)

... Извлекаем одну сим карту, вставляем другую. Можно ка кто заново запустить процедуру инициализации или проще перегрузить модуль полностью питанием. ....
AT+CFUN=1,1
Цитата(GeGeL @ Dec 30 2011, 00:23)

Еще хочу добавить: так стартует он как раз не в 100% случаев. Если это ручное включение и юзер сам контролирует процесс по индикатору, то ничего страшного - перевключит, но если автономное устройство, то так и будет стоять до повторного снятия-подачи питания.
Это про симком или вообще? На примере квектела мне так не показалось
Цитата(pau62 @ Dec 30 2011, 16:06)

Это про симком или вообще? На примере квектела мне так не показалось
Как раз на примере Quectel. Думаю, напрямую связано с питанием - кит дергал: вроде стартует всегда. А вот девайс с LM317 и аваланчевской зарядкой в качестве БП - процентов 5-10 облома.
Но суть не в качестве БП, а в том, что ситуация теоретически возможна, и это надо соотносить с требуемой надежностью рестарта.
Поэтому я в своем вотчдоге и вышел на мультивибратор.
Цитата(GeGeL @ Dec 31 2011, 11:40)

Как раз на примере Quectel. Думаю, напрямую связано с питанием - кит дергал: вроде стартует всегда. А вот девайс с LM317 и аваланчевской зарядкой в качестве БП - процентов 5-10 облома.
При работе от АКБ 3,7 Вольт, с закороченным ПоверКей стартовал всегда, во всяком случае я не заметил "нестартования". Видимо при старте модуль иногда просаживает Аваланч.
Вопрос по EAT. Может где уже спрашивали - поиском не нашел....
Можно ли защитить свою прошивку от считывания?
Цитата(Alfa @ Feb 22 2012, 05:52)

Вопрос по EAT. Может где уже спрашивали - поиском не нашел....
Можно ли защитить свою прошивку от считывания?
Думаю, что нет. Quectel точно нет. Код оцпу находится по фиксированному адресу в бинарном виде и может быть считан флеш-утилитой и затем скопирован в другой модуль с полным сохранением работоспособности.
Как вариант защиты видится привязка пользовательского кода к уникальным идентификаторам конкретного модуля. Причем IMEI и серийный однозначно не подходят, т.к. могут быть легко изменены.
Я использую идентификатор чипа флеш-памяти (там отп-область, и она уже привязана к ядру при его корректной заливке - это часть защиты производителя от клонирования модулей конкурентом) - китайцы дали, как получить это число.
А далее - на ваше усмотрение: или тупо проверяете на старте вашей программы (что убирается за 10 мин дизассемблированием и патчем), или усеиваете весь код пятнами, неявно сверяя определенные данные, полученные в других местах в виде вычислений, или даже можете использовать такие извращения, как неявные переходы и т.п. Это существенно затруднит разбор дизассемблированного кода. И вот когда затраты человекочасов на разбор достигнут затрат на написание аналогичной программы, считайте, что вы защищены от взлома.
Именно таким образом надо бороться с нами - хакерами, а не патентовать продукт

PS: я уже писал в другой теме: как вариант, можете перенести значимую (или хотя-бы неотъемлемую) часть кода в дешевый внешний МК под бит защиты. Т.о. основная прошивка без коррекции станет бесполезной. Цена вопроса коррекции и равна степени защиты.
Цитата
Именно таким образом надо бороться с нами - хакерами, а не патентовать продукт
ИМХО спорно, смотря какой продукт.
Цитата
можете перенести значимую (или хотя-бы неотъемлемую) часть кода в дешевый внешний МК под бит защиты
А еще лучше поставить более дешевый sim900R + внешний контроллер. При цене достаточно толстого STM32F103RC в 4$ вполне оправданно получается. А если код в какую-небудь мегу за пару $ влезет так совсем хорошо. И никаких проблем с запуском/контролем зависаний/итд.
ИМХО пока под OCPU не будет выделятся достаточно ресурсов, особенно RAM и не будет моногопоточности в EAT особого смысла в них не вижу.
Цитата(GeGeL @ Feb 22 2012, 12:27)

Думаю, что нет. Quectel точно нет.
Про Quectel я в курсе - мне офф представители сказали. Думал вдруг в EAT этот вопрос решен...
Цитата(GeGeL @ Feb 22 2012, 12:27)

PS: я уже писал в другой теме: как вариант, можете перенести значимую (или хотя-бы неотъемлемую) часть кода в дешевый внешний МК под бит защиты. Т.о. основная прошивка без коррекции станет бесполезной. Цена вопроса коррекции и равна степени защиты.
Только тогда теряется смысл использовать OCPU...
Aleksandr_q
Feb 22 2012, 11:01
Цитата(=F8= @ Feb 22 2012, 10:14)

ИМХО спорно, смотря какой продукт.
А еще лучше поставить более дешевый sim900R + внешний контроллер. При цене достаточно толстого STM32F103RC в 4$ вполне оправданно получается. А если код в какую-небудь мегу за пару $ влезет так совсем хорошо. И никаких проблем с запуском/контролем зависаний/итд.
ИМХО пока под OCPU не будет выделятся достаточно ресурсов, особенно RAM и не будет моногопоточности в EAT особого смысла в них не вижу.
Ну тогда лучше не сим 900R, а Quectel М72 - прошивка стабильная изначально, цена ниже.
CADiLO
Feb 22 2012, 12:43
Ню-ню.....
Цитата(CADiLO @ Feb 22 2012, 16:43)

Ню-ню.....
А вот и не подеретесь!

?
CADiLO
Feb 22 2012, 13:17
Конечно не подеремся - незачем. Особенно после того как один из официалов Quectel начал предлагать SIMCOM

Да и сравнивать "only data" M72 с SIM900R несколько неправильно.
Aleksandr_q
Feb 22 2012, 14:24
Цитата(CADiLO @ Feb 22 2012, 16:17)

Конечно не подеремся - незачем. Особенно после того как один из официалов Quectel начал предлагать SIMCOM

Да и сравнивать "only data" M72 с SIM900R несколько неправильно.
А С М95 правильно?
Новинка, миниатюрные размеры, цена как на М72, аудиоканал, GPRS класс 12 и т.д.
CADiLO
Feb 22 2012, 14:38

Спасибо за хорошее настроение.....
Цитата(CADiLO @ Feb 22 2012, 20:38)


Спасибо за хорошее настроение.....
2 CADiLO:
Про защиту от считывания ПО в EAT sim900 есть что сказать?
CADiLO
Feb 24 2012, 07:17
Нет там защиты. Обычную флешку защитить простыми способами проблематично.
А чтобы защищать с извратами, стоимость проекта должна быть соизмерима.
И вообще все эти защиты от честных людей, нечестные придут в гости за исходниками....
Цитата(CADiLO @ Feb 24 2012, 11:17)

И вообще все эти защиты от честных людей, нечестные придут в гости за исходниками....

Ага, вот и я о том же: честно взломанная защита - это заслуживает уважения, т.к. иногда посложнее, чем написать аналог. Поэтому если Вас ломают, надо радоваться, что это кому-то нужно и интересно.
К сожалению, действительно, чаще могут или пальцы в дверь, или *** в тиски...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.