|
SIM20 |
|
|
|
Oct 1 2013, 11:10
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Пишу программу для коммуникации через SIM20 в режиме команд. Режим команд выбрал, для более гибкой работы с несколькими адресатами, а также для того, чтобы не было задержек ожидания передающего буфера.
1) Хотелось бы уточнить у знатоков, в каком порядке будут поступать данные от SIM20, если мой запрос на выполнение AT-команды совпадет с моментом получения данных от удаленного источника: - Может ли ответ на АТ-команду "разорваться" вставкой полученных данных или они все же будут поступать последовательно друг за другом? - При последовательном поступлении данных от SIM20 есть ли какой-либо проритет между отработкой AT-команд или приема данных от удаленного устройства?
2) Как обычно определяется скорость работы если устройство (в данном случае SIM20) может конфигурироваться. Поясню, у SIM20 "заводская скорость" - 115kbps, однако она может меняться по усмотрению пользователся. Т.е. я по включению должен все таки определить на какой скорости сейчас работает устройство и подстроить ее под себя, мало ли что мог поменять производитель или где до меня был этот SIM20? Как обычно поступают в таких случаях, по включению проверяются все скорости, пока не найдется нужная и уже на ней устройство, при необходимости, переконфигурируется на нужную скорость?
|
|
|
|
|
Oct 1 2013, 11:40
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(Yaumen @ Oct 1 2013, 15:10)  Пишу программу для коммуникации через SIM20 в режиме команд. Режим команд выбрал, для более гибкой работы с несколькими адресатами, а также для того, чтобы не было задержек ожидания передающего буфера.
1) Хотелось бы уточнить у знатоков, в каком порядке будут поступать данные от SIM20, если мой запрос на выполнение AT-команды совпадет с моментом получения данных от удаленного источника: - Может ли ответ на АТ-команду "разорваться" вставкой полученных данных или они все же будут поступать последовательно друг за другом? - При последовательном поступлении данных от SIM20 есть ли какой-либо проритет между отработкой AT-команд или приема данных от удаленного устройства?
2) Как обычно определяется скорость работы если устройство (в данном случае SIM20) может конфигурироваться. Поясню, у SIM20 "заводская скорость" - 115kbps, однако она может меняться по усмотрению пользователся. Т.е. я по включению должен все таки определить на какой скорости сейчас работает устройство и подстроить ее под себя, мало ли что мог поменять производитель или где до меня был этот SIM20? Как обычно поступают в таких случаях, по включению проверяются все скорости, пока не найдется нужная и уже на ней устройство, при необходимости, переконфигурируется на нужную скорость? 1. Нет. Не замечал. 2. "заводская скорость" у сим20 -9600 (реально и по даташит), но китайцы могут всё ;-)
|
|
|
|
|
Oct 1 2013, 11:55
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Цитата(ssokol @ Oct 1 2013, 14:40)  2. "заводская скорость" у сим20 -9600 (реально и по даташит), но китайцы могут всё ;-) Вопрос был в другом. Как правильнее начинать работать с модулем, скорость которого могла быть изменена до вставки в Ваше изделие. Перебирать все скорости, пока SIM20 не ответит на одной из скоростей?
|
|
|
|
|
Oct 3 2013, 12:50
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 4-07-13
Из: Санкт-Петербург
Пользователь №: 77 391

|
Цитата(Yaumen @ Oct 1 2013, 15:55)  Вопрос был в другом. Как правильнее начинать работать с модулем, скорость которого могла быть изменена до вставки в Ваше изделие. Перебирать все скорости, пока SIM20 не ответит на одной из скоростей? Можно и так. Но чаще всего модули поставляются предпрошитыми с установленной скоростью 9600 (реже) и 115200 bps (чаще). Кто бы после этого не юзал модуль и на какой бы его скорости не оставил - аппаратный RESET должен откатить его на заводские (прошивочные) установки по умолчанию. Т.е. - на одну из этих скоростей. • AT+SRDRESET =1 Reset after 1s without change any pre-set parameters • AT+SRDRESET=0 Reset after 1s ,SIM20 parameters set to default • All AT command send to SIM20 should be finished by "RETURN" ( ASCII HEX = OD Также однозначно поможет перепрошивка модуля, где вы заранее выберете нужную скорость. Кстати, а что отвечает такой модуль на команду AT? Большинство SIMCom-вских модулей на такой запрос отвечает независимо от предустановленной скорости и после такого ответа есть возможность уточнить не какой он стоит сейчас, либо принудительно навязать ему нужную Вам скорость и уже после этого "вправить мозги" так, чтобы Ваша настройка оставалась у него по умолчанию.
|
|
|
|
|
Oct 5 2013, 09:59
|
Ортодокс
  
Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775

|
Цитата(ssokol @ Oct 3 2013, 17:34)  причем замечал , что если неправильно выбрать стоповые - работает , но с ошибками. 1 или 2 стоп-бита фактически определяют паузу между двумя последовательно выдаваемыми байтами. Если работает с 1, то тем более должно работать, если установить 2.
|
|
|
|
|
Oct 7 2013, 09:01
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Опыт работы с отладочными модулями SIM20-TE говорит о том, что модуль на команду на неправильной скорости не ответит ничего, так как фактически он ничего не примет. Так что придется перебирать скорость, но это не беда.
Мне сложнее написать код для работы, так как опыта работы именно с АТ командами маловато. Вот вопросы, которые возникают:
1. При работе в режиме команд в момент пока я отправляю AT команду к SIM20, он может получить данные от удаленного устройства, т.е. фактически ожидая ответа на АТ команду, гипотетически, я могу получить в начале принятые удаленные данные, а лишь затем ответ на АТ команду. Т.е. в процедуре отбработки ответа на АТ команду, необходимо уметь вычленять собственно ответ и данные. Причем удаленные данные необходимо куда-то временно складывать, чтобы затем другой процедурой заняться их анализом. 2. Каким образом отслеживать окончание ответа на АТ команду: поиск некоего ключевого слова, типа OK или ERROR или по возникновении определенной паузы в передаче ответа от модуля SIM ? 3. Выдерживает ли модуль SIM20 какие-либо паузы между блоками: [удаленные данные] - [ответ на АТ команду] - [удаленные данные] ?
|
|
|
|
|
Oct 7 2013, 10:46
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(Yaumen @ Oct 7 2013, 13:01)  Опыт работы с отладочными модулями SIM20-TE говорит о том, что модуль на команду на неправильной скорости не ответит ничего, так как фактически он ничего не примет. Так что придется перебирать скорость, но это не беда.
Мне сложнее написать код для работы, так как опыта работы именно с АТ командами маловато. Вот вопросы, которые возникают:
1. При работе в режиме команд в момент пока я отправляю AT команду к SIM20, он может получить данные от удаленного устройства, т.е. фактически ожидая ответа на АТ команду, гипотетически, я могу получить в начале принятые удаленные данные, а лишь затем ответ на АТ команду. Т.е. в процедуре отбработки ответа на АТ команду, необходимо уметь вычленять собственно ответ и данные. Причем удаленные данные необходимо куда-то временно складывать, чтобы затем другой процедурой заняться их анализом. 2. Каким образом отслеживать окончание ответа на АТ команду: поиск некоего ключевого слова, типа OK или ERROR или по возникновении определенной паузы в передаче ответа от модуля SIM ? 3. Выдерживает ли модуль SIM20 какие-либо паузы между блоками: [удаленные данные] - [ответ на АТ команду] - [удаленные данные] ? 1. Да 2. SIM20_AT20CommandManual_V1.04, page8, AT Command syntax 3. сомневаюсь, да и зачем "тормозить-то"???
|
|
|
|
|
Oct 8 2013, 12:33
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Народ, зациклился при реализации кода работы с SIM20. Но вполне вероятно, что эта ситуация касается любых устройств, работающих с АТ командами.
Кратенько опишу чуть проблемы:
3 или более устройства связываются между собой посредством SIM20. Для того, чтобы сократить задержки на передаче и для удобства назначения адрес устройства назначения, решил работать исключительно в режиме команд с использованием команды "AT+SRDSEND".
Допустим настал момент отправки сообщения одному из устройств. Я перехожу в процедуру формирования запроса "AT+SRDSEND" и начинаю формировать АТ команду на отправку, который здесь же отправляю к модулю SIM20. Гипотетически, возможна ситуация, что в этот момент, пока я готовлю или отправляю АТ команду, от одного из удаленных модулей поступают данные, которые начинают "сыпаться" в UART. После окончания передачи АТ команды я естественно должен ждать отклика, но от SIM20 "сыпятся" удаленные данные, которые я каким-то образом должен узнать, среди общего потока данных и при этом не потерять.
Еще одна проблема, так как различные АТ команды могут выполняться разное время, то при ожидании отклика я планирую использовать 2 таймаута: - максимальное время реакции SIM20 на АТ команду - максимальная пауза между приемом двух соседних байт данных Так вот, чтобы ими воспользоваться, нужно уметь, в описанном выше случае, четко различать когда закончились "сыплющиеся" удаленные данные, чтобы иметь возможность их применить.
Готов выслушать, любые советы и замечания по тому, как в таких случаях поступают ...
|
|
|
|
|
Oct 8 2013, 13:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(Yaumen @ Oct 8 2013, 18:33)  Народ, зациклился при реализации кода работы с SIM20. Но вполне вероятно, что эта ситуация касается любых устройств, работающих с АТ командами.
Гипотетически, возможна ситуация, что в этот момент, пока я готовлю или отправляю АТ команду, от одного из удаленных модулей поступают данные, которые начинают "сыпаться" в UART. После окончания передачи АТ команды я естественно должен ждать отклика, но от SIM20 "сыпятся" удаленные данные, которые я каким-то образом должен узнать, среди общего потока данных и при этом не потерять. Общее правило - всегда обрабатывайте ВЕСЬ поток входящих данных! А уж там его разгребайте на отклики и прочую чушь. Прочую чушь желательно отлавливать по заголовкам, где указана длина этой чуши. При наличии отклика выставляйте соответсвующий флаг.
|
|
|
|
|
Oct 8 2013, 13:15
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
Наш уважаемый клиент и коллега думаю сможет вам помочь - он в свое время основательно разобрался с SIM20. Контакты внизу статьи. http://invent-systems.narod.ru/shkola2.htmили Ukraine Телефон: +380-50-575-98-63 (MTC Украина) E-mail: invent-systems@ya.ru gchernov@e-mail.ua Геннадий Чернов
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Oct 8 2013, 13:22
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
CADiLO, Спасибо, я уже отослал ему письмо, но я думал, что это проблема методическая, касающаяся не только SIM20. И похожую проблему должны были бы решать многие, кто работает с АТ командами.
Alechek, Получается, что нужно каким-то образом на лету, при приеме в прерывании очередного байта, определять, что за данные "сыпятся" и выставлять соответствующие флаги.
|
|
|
|
|
Jan 16 2014, 08:18
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
В архиве последние прошивки и релизнотес. В той которая *_433 снята блокировка мощности по требованиям CE, в другой до 10 милливатт.
C 04 прошивки должно обновиться до седьмой.
>>>Любой SIM20 можно обновлять любой прошивкой ?
Только для своей частоты - аппаратная RF часть то не меняется под другую частоту.
>>>>В результате экспериментов выяснил, что на самом деле WaitTime = примерно 1 сек. FrameSize=63 байта.
А посмотреть в даташите табличку с интервалами и еще раз перечитать описание ???
SIM20_AT Command Manual_V1.04.pdf
страничка 8 Table 1: Recommend intervals
There are 2 important parameters to trig sending packets over the air interface in data mode--WaitTime and FrameSize. WaitTime is the interval between receiving two characters at SIM20 module’s UART Rx. If WaitTime > 120ms, SIM20 will be trigged to send packets inside UART Rx buffer to the air; FrameSize is the size of data frame, and data are received at UART Rx. Either WaitTime or FrameSize will trig sending data over the air.
Note: The default value of the WaitTime is about 120 milliseconds. The value of the FrameSize is 255 characters. The UART port of SIM20 has a RX buffer in data mode and the RX buffer size is 255-character long; if the data frame received from serial port is more than 255 characters, the first 255 characters will be sent, the rest of it will be discarded. When customer’s MCU sends data to SIM20 during its data mode, make sure there is enough time intervals between two frames, the recommended intervals are in the following table.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jan 16 2014, 08:40
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(CADiLO @ Jan 16 2014, 15:18)  >>>>В результате экспериментов выяснил, что на самом деле WaitTime = примерно 1 сек. FrameSize=63 байта. А посмотреть в даташите табличку с интервалами и еще раз перечитать описание ??? Спасибо. Я это все прочитал. Но так и не нашел команды с помощью которой можно установить WaitTime = 120ms.
|
|
|
|
|
Jan 16 2014, 08:51
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(CADiLO @ Jan 16 2014, 15:49)  Нет такой команды - этот параметр зависит от количества байт, скорости и т.д. А что нужно сделать, чтобы SIM20 отсылал данные сразу же, а не ждал 1200 мс ? Или как сократить эту задержку хотя бы до 100 мс ?
|
|
|
|
|
Jan 16 2014, 10:43
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(Zlumd @ Jan 16 2014, 12:51)  А что нужно сделать, чтобы SIM20 отсылал данные сразу же, а не ждал 1200 мс ? Или как сократить эту задержку хотя бы до 100 мс ? После приема последнего байта через 120мс сим отправляет данные в эфир , никаких 1200мс он не ждет, сократить задержку нельзя в принципе тк не определить будет конец массива. По моему вы либо что-то не так измеряете, либо не правильно понимаете принцип работы сима, либо неправильно сформулировали вопрос и мы говорим о разных вещах.
|
|
|
|
|
Jan 17 2014, 02:34
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(ssokol @ Jan 16 2014, 17:43)  После приема последнего байта через 120мс сим отправляет данные в эфир , никаких 1200мс он не ждет, сократить задержку нельзя в принципе тк не определить будет конец массива. Обновил прошивку с B04 до B07. Задержка прохождения данных уменьшилась с 1200 мс до примерно 500 мс. Я измеряю время между отправкой данных в SIM20 и появлением этих данных на выходе другого SIM20.
|
|
|
|
|
Sep 18 2014, 14:55
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(Zlumd @ Aug 19 2014, 05:41)  SimCom прекращает выпуск модулей SIM20 в связи с прекращением выпуска применяемого в них чипсета. Будет ли Pin-to-Pin замена для SIM20? Симком полностью сворачивает сим20, замены не будет (симкомовской), посему предлагаю обсудить замену на других производителей. Например NE50-433 | NE50-868 кто использовал? Интересуют модули с RS232 и естественно ценой сим20.
|
|
|
|
|
Sep 19 2014, 10:30
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
Я бы не сказал что здесь хорошая пайка. Смотрится как пионеры паяли. http://www.microchip.ua/rfm/img/RFM12BP-868.jpghttp://www.microchip.ua/rfm/img/RFM50-433S.jpgС тем что чипы есть лучше по чуствительности не спорю. Однако MRF49 со склада по 2 бакса в розницу, плюс мы к ней предлагаем мелкий кварц и комплект индуктивностей на любой из диапазонов. Для большинства задач более чем подходит. За основу усилителя вполне можно брать нижеприведенную схему. Проверено - переплевывает по дальности SIM20.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Sep 22 2014, 19:44
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-05-07
Пользователь №: 27 623

|
Цитата(ssokol @ Sep 18 2014, 17:55)  Симком полностью сворачивает сим20, замены не будет (симкомовской), посему предлагаю обсудить замену на других производителей. Например NE50-433 | NE50-868 кто использовал? Интересуют модули с RS232 и естественно ценой сим20. NE50 - удобен для организации Mesh-сети. Если такой задачи нет, нужен прозрачный режим или звезда - то можно смотреть на LE50.
|
|
|
|
|
Sep 30 2014, 10:18
|
Участник

Группа: Участник
Сообщений: 44
Регистрация: 10-05-07
Пользователь №: 27 623

|
Цитата(ssokol @ Sep 29 2014, 19:46)  Да, вот именно на него и запал (NE70), случайно с ним не работали? Еще не работал, вы спросите если что-то конкретное, может смогу помочь
|
|
|
|
|
Sep 30 2014, 15:00
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(ssmokie @ Sep 30 2014, 14:18)  Еще не работал, вы спросите если что-то конкретное, может смогу помочь Собственно интересует cyclic wake up mode в star, насколько удобоваримо сделано и какое потребление можно достич не прозевав посылку. Конечно , посмотрел, все зависит от настроек регистров для этого режима, но сюдя по даташиту сделано оч красиво, в отличие от полной корявости слипа в СИМ20. Вот вроде модуля едут , так что бум юзать. Да еще в МТ сказали, что можно поэксплуатировать Telit, должен много знать ;-)
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|