Andruha_aaa
26.06.2007, 14:31
Здравствуйте спецы Senao.
У Нас появилась необходимость использовать многобазовую структуру Senao-358 (Тайвань), т.е. к примеру две базы находяться в одном небольшом населённом пункте, каждая имеет свой тел. номер. Абонент, будучи подвязан к обоим базам должен оперировать с обеими (по его выбору).
С прошивками я разобрался, привязал трубку к двум базам (изменил ID и вызывные каналы в базе), всё ОК, работает.
Проблема: при входящем вызове трубка соединяется с ближайшей базой, и если вызов поступил на удалённую базу - ответить на него невозможно. Как это разрулить???

Кстати благодарю за описание прошивки SN-358!

burvib
27.06.2007, 06:22
Абонент не сможет выбрать конкретную базу для связи, т.к. у трубки отсутствует возможность четкого выбора номера связного канала.
Каждая база должна быть запрограммирована на пару чередующихся связных каналов, отличных от пары другой базы.
Трубка программируется чередованием пар: ch1BU1, ch1BU2, ch2BU1,ch2BU2.

Andruha_aaa
02.07.2007, 09:30
У меня тоже была такая идея, но...трубка опять же с большой вероятностью свяжется с первым вызывным каналом, вариант что на первом канале будет помеха и переключится на второй вызывной не высок.
Прошить вызывные канале в базе не проблема. Проблема изменить их в трубке, контрольная сумма нарушиться, пересчитывать её я ещё не научился.

killer258
02.07.2007, 10:04
"Проблема изменить их в трубке, контрольная сумма нарушиться, пересчитывать её я ещё не научился"

с этим злом я борюсь следующим образом- ,воспользовавшись тем фактом, что в базе 358 контрольных сумм не почему-то проверяется,(во всяком случае, в моей базе)делаешь временно аналогичные изменения в еепроме базы (предварительно сохранив резервную копию), и на эту базу подшиваешь ту трубу, в которой эти изменения нужны( номера каналов и ID, например ), и база при подшивке всё это перенесёт в трубку ,процессор вычислит за тебя все контрольные суммы сам


PS: хотя предполагаю, что и в базах 358 скорее всего,тоже есть возможность проверки контрольных сумм, но, видимо, там задействованность этой возможности, в отличие от трубки, не является обязательной.
И, помнится, аналогично дело обстояло в харвестах с индексом "Б". Но там было ещё интереснее.Сколько раз к базе пришьёшь одну и ту же трубу, столько разных значений контрольной суммы будет стоять в соответствующих позициях еепрома трубки. Получалось, что одному и тому же самому ID могло соответсвовать целое множество контрольных сумм(!!), назначаемых неизвестно по какому правилу, и все они были правильными,а другие , отличные от них суммы- не воспринимались (трубка делала вид, что всё нормально, но при передаче второй байт паттерна был заменён нулями, со всеми вытекающими последствиями, т.е, не связывалась с базой. .

Andruha_aaa
04.07.2007, 01:14
Тоже вариант, меня как-то такая же идея посещала, не успел попробовать.
Таким образом вопрос прошивки решить можно, но вопрос выбора базы с трубки вручную как я понял в SENAO-358 не решаем, ну да тогда бі она (трубка) превратилась в своеобразный сканер :) . Трубка будет подключаться к базе на первом вызывном канале (при условии нормального уровня сигнала) и к перебору второго вызывного канала дело может и не дойти...а жаль, хотелось сделать своеобразную структуру с несколькими номерами на одной трубке .:(

killer258
04.07.2007, 09:47
что касается возможности выбора базы с трубки вручную ,то,в отличие от сканера, задачей которого является обнаружение множества баз ,ведение базы данных и управление ей, и ещё куча всего, данной трубке этого ничего не нужно,лишь необходимо знать лишь ID и вызывные каналы максимум 4 баз,поэтому задача гораздо проще,программная сложность алгоритма будет относительно небольшой .
И любой самый простой микроконтроллер, прицепленный к трубке,легко решит вопрос выбора .То есть запишет по нажати юкакой-либо из кнопок нужное содержимое ячеек еепрома трубы и принудительно перезагрузит её. А поскольку работать придётся с одними и теми же 4 базами, то не будет необходимости, как пришлось бы в сканере, считать контрольные суммы по хитрым алгоритмам.
Достаточно по одному разу дать это сделать самой базе, "подсмотреть"программатором,что она там прописала в поле контрольной суммы еепрома трубки,запомнить, и то же самое для трёх других.
А потом записать эти контрольные суммы в память микроконтроллера вместе с кодами и каналами.
И потом просто выбирать вручную тот или иной "профиль" из числа хранящихся.

и по-моему, где-то я дажеуже встречал такую разработку, 8 баз обслуживалось.


:p От сканера будет отличаться тем ,что трубка не занимается поиском и сбором чужих кодов, а лишь хранит в своей памяти настройки для 4 выделенных баз и применяет их когда требуется..

killer258
04.07.2007, 15:38
хочу доббавить по этому поводу. Давно, когда ещё сотовые не были так доступны, как сейчас,мы с приятелем хотели телефонизировать посёлок путём раздачи населению трубок, посаженных на одну базу, и проблема была в том чтобы решить проблему биллинга и автоматического прекращения доступа к базе тех трубок, у кого обнулился баланс внесённых средств (поминутная тарификация,авансовый метод платежа). Так вот была в своё время такая идея,которую можно использовать и здесь, немножко изменив её под данную задачу.

Поставить между АК2358 и процессором трубки микроконтроллер-посредник, который все декодированные акашкой ID сверяет со списком тех, которые занесены в список допустимых баз, и если это из этого списка, то трубка тут же мгновенно перепрошивается микроконтроллером на этот код,быстро перезгружается через ресет и далее соединяется с звонящей базой уже как "своя"
и в этом случае ВЫ КАК РАЗ ИЗБАВИТЕСЬ ОТ ВАШЕЙ ПРОБЛЕМЫ,ИЗ-ЗА КОТОРЙ ВЫ И НАЧАЛИ ТЕМУ,:"при входящем вызове трубка соединяется с ближайшей базой, и если вызов поступил на удалённую базу - ответить на него невозможно. "
а в даном случае у баз будут коды разные, общие только вызывные каналы, так что при входящем труба ответит именно той базе,которая её зовёт, а не другой имющей такой же код но другой канал вызова)
,либо не установление соединения если ID чужой,не из вашего списка.
тогда трубка будет, вроде как, отвечать на входящие звонки любой из нужных баз.
но это , правда, годится только для входящей связи от этих баз.а для исходящей связи тот же микроконтроллер либо выбирает код нужной базы вручную кнопками либо по очереди пробует прошивать еепром трубки всеми кодами из своего списка,и отправлять посылку вызова,пока не откроется одна из баз списка (почти как сканер-автомат,разве что только не ищет новые базы :D



PS: кстати, аналогичная проблема была при двухбазии харвестов- тебе звонит база 1, трубка пытается связаться, но не получается из-за расстояния,а база номер 2 ближе, и трубка после неудачной попытки открыть первую базу открывает вторую, и ты вместо звонящего тебе человека слышишь непрерывный гудок второй базы. пока повторяешь попытку, на первой линии уже ложат трубку, и входящий звонок потерян :D

Что касается " вопрос выбора базы с трубки вручную как я понял в SENAO-358 не решаем,",
то самым дешёвым решением этого вопроса было простое переключение нескольких еепромов,заранее прошитых на имеющиеся у вас базы,подобно тому, как переключают SIM-карты в сотовых. То есть, чисто механически переключаем, без контроллера. но это решает только вторую часть вопроса, то есть выбирать конкретную базу из имеющихся у вас перед осуществлением исходящего вызова..

Katz
09.07.2007, 14:55
killer258 пишет

и по-моему, где-то я дажеуже встречал такую разработку, 8 баз обслуживалось.

Это разработка коллеги POMOR из нашего форума - там, правда, SN-258.
Был вариант и для SN-358/458 (трубка разработана "с нуля", до 8 баз, и еще много всяких наворотов), но опоздал малость - дело ограничилось фактически опытной партией :(
В связи со снятием с производства AT89S8252 появилась техническая возможность реализации полноценной многобазовости в станциях LINE (в AT89S8253, которые сейчас в ходу, на 4 кБ памяти больше, должно хватить). Вот только вопрос, насколько это может быть востребовано...