avatar_nordiver

Проект: улучшенная BMS для LiFePO4 с измерением ёмкости

Автор nordiver, 09 Дек. 2009 в 21:31

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

FAS_r7

Цитата: eea66 от 26 Апр. 2010 в 21:40
Вообще мне непонятно из каких соображений для связи с МИ выбран именно этот протокол или я что-то пропустил? :bw:
Если не ошибаюсь, для того чтобы минимум проводов на руль тащить.

eea66

#109
Цитата: FAS_r7 от 26 Апр. 2010 в 23:28
Цитата: eea66 от 26 Апр. 2010 в 21:40
Вообще мне непонятно из каких соображений для связи с МИ выбран именно этот протокол или я что-то пропустил? :bw:
Если не ошибаюсь, для того чтобы минимум проводов на руль тащить.
Нечто подобное я предполагал. Спасибо за ответ.
Хотя использование например протокола I2C добавляет всего 1 провод, зато в системе может быть сколько угодно мастеров, правда он рассчитан на небольшие расстояния между устройствами.

nordiver

Цитата: eea66 от 26 Апр. 2010 в 21:40

Вообще мне непонятно из каких соображений для связи с МИ выбран именно этот протокол или я что-то пропустил? :bw:


Протокол 1-Wire был выбран из соображения того что в большинстве современных ЭВ разъём на батарее - трёхконтактная вилка от блоков питания компьютеров, два контакта там заняты на + и - батареи и один свободен, т.е нет необходимости переделывать сам велосипед. Про интеграцию всей сигнальной системы ЭВ в единое целое я тоже думал, и несколько позже хотел предложить интегрировать в эту систему передачу всех сигналов с органов управления на руле и самого контроллера, это позволит тянуть на руль всего 3 провода (естественно одним кабелем) +, - и 1-Wire и избавиться по крайней мере от 7ми проводов.

i

Цитата: zap от 26 Апр. 2010 в 21:42
.. а я как раз месяц назад дописал свой Форт для АВР под линуксом :-)
Странно, но я не нашел там ни одного слова по-русски. И потом, там именно Форт для AVR, а у меня кросс-ассемблер AVR, просто написанный на Форте.
Цитата: zap от 26 Апр. 2010 в 21:42
А почему именно Форт? Я-то писал его для приложений, где нужно давать конечному пользователю возможность писать "скрипты", как можно более абстрагировано от железа. А в проекте умной BMS - не проще ли всё сразу на C написать? Будет экономия флэша минимум килобайта 4 (это столько моё ядро занимает).
Выбор языка программирование дело сугубо личное и субъективное. Ругать Си за избыточность, тормознутость, непрозрачность - значит нарываться на "священную войну". Скажу просто, что Форт больше подходит к моим мозгам, да и расширить его функционал и "понятливость" можно не залезая в исходники. Насчёт экономии флеша, шибко не уверен, что си съест меньше, тем более, что полное ядро в конечном изделии штука лишняя.

i

Цитата: eea66 от 27 Апр. 2010 в 00:39
...Хотя использование например протокола I2C добавляет всего 1 провод, зато в системе может быть сколько угодно мастеров, правда он рассчитан на небольшие расстояния между устройствами.
I2C проектировался для применения в пределах одной платы, а для ТС нужны расстояния в 3-4 метра. Физика 1W не запрещает несколько мастеров на шине, кто начал передачу тот и мастер, кто слушает - тот слейв, проблема только в арбитраже и в том, что каждый мастер должен знать адреса своих слейвов, так как передача идет по адресу. В системе CAN отказались от адресов, там идут сообщения, каждое со своим "весом", приоритетом.
Попробую объяснить на примере.
Допустим, что на руле нажата кнопка "левый поворот", контроллер этой кнопки (и других, которые он обслуживает), посылает сообщение с весом например 11001010 и телом "левый поворот включить". При передаче постоянно контролируется правильность сигналов, если передачу начинают два и более источника, выигрывает тот, у которого в весе больше нулей, это делается чисто автоматически, выигрывавший даже не заметит, что он кого-то победил, просто продолжит передачу, а проигравший, который пытался передать единицу, а получил ноль, переходит в режим приёмника. То есть, один говорит - все слушают. Те приёмники, которые "знают", что значит полученное сообщение - исполняю некоторые действия (например включают левый поворотник и выключают правый), остальные - игнорируют.
Если у нас несколько левых поворотников (передний, задний, боковой), они все сработают, если ни одного - сообщение просто канет в Лету.
Допустим, лампочка в поворотнике сгорела, её контроллер имеет право сообщить об этом системе, как система отреагирует на такое сообщение,  выведет сообщение на МИ, выдаст звуковой сигнал или вырубит питание - её дело.
Тут важно отметить, что кнопке по-барабану кто сидит на шине, она просто делает свое дело, а поворотнику пофигу кто послал ему сообщение и сколько поворотников есть, он просто делает своё дело. Смотрите что получается, пусть контроллер батареи зафиксировал падение напряжения ниже порога отключения, он выдаёт сообщение "авария питания", его принимают МИ (показыват надпись "Авария"), контроллер МК (вырубает мотор) и поворотники(включаются и левые и правые). Возможен вариант, когда поворотники не знают  сообщение "авария питания", тогда кто-то (МИ или контроллер кнопок поворотов) может им "перевести" и выдать сообщение "включить левый и правый поворотник".
Таким образом на одной шине могут сидеть совершенно разные системы, не мешая друг другу. Система может изменятся простым добавлением (или удалением) устройства на шину, без всякой переконфигурации кого либо, а это живучесть, независимость и ремонтопригодность.

zap

#113
Цитата: i от 27 Апр. 2010 в 10:23
Цитата: zap от 26 Апр. 2010 в 21:42
.. а я как раз месяц назад дописал свой Форт для АВР под линуксом :-)
Странно, но я не нашел там ни одного слова по-русски.
Дык так и задумано было ;) просто написал интерпретатор, подумал что в России его попробует вряд ли больше двух человек, а по миру может хотя бы с десяток наберётся  :) Написал кое-какую документацию по английски, на русскую уже энтузиазизма не хватило.

Цитата: i от 27 Апр. 2010 в 10:23
И потом, там именно Форт для AVR, а у меня кросс-ассемблер AVR, просто написанный на Форте.
А, ясно. То есть таки всё пишется на ассемблере, просто в экзотической оболочке :). А у меня интерактивное урезанное 16-битное Форт-ядро, написано переносимо на C (отлаживал компилируя под x86_64), можно с ним общаться по последовательному порту. Словарь пользователя пишется в EEPROM, поэтому программы можно делать не особо длинные.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

Alex_Soroka

Цитата: eea66 от 26 Апр. 2010 в 21:40
Кстати  в моей проге модуль индикации – это 1wire slave устройство, хотя если надо можно его сделать мастером.
Вообще мне непонятно из каких соображений для связи с МИ выбран именно этот протокол или я что-то пропустил? :bw:

...в моих "микроЗУ" мы вообще отказались от проводов в пользу радиоканала.
Есть готовые микросхемы, очень удобно все и гальванически развязано...
и масштабирование проще...

вообще-то для условий сильных помех есть RS485 интерфейс передачи :)
на нем пром.приборы работают...

i

Цитата: Alex_Soroka от 28 Апр. 2010 в 10:54
...в моих "микроЗУ" мы вообще отказались от проводов в пользу радиоканала.
Есть готовые микросхемы, очень удобно все и гальванически развязано...
и масштабирование проще...
Ваше право, но и у радиоканала есть свои минусы.
Масштабировать действительно проще, так как радио доберется до всего в радиусе действия, следовательно нужны дополнительные усилия для определения "свой-чужой", а то как бы два рядом стоящие велика не "объединили" свои батареи. Проводные системы хотя бы лишены этой особенности.
А пока, собственно физический уровень передачи - дело десятое, перво-наперво нужно "сторговаться" с логикой взаимодействия, тогда уж сам канал можно будет выбирать по вкусу и по месту, хоть радио, хоть диф.пару, хоть фельдъегеря.

Alex_Soroka

Цитата: i от 28 Апр. 2010 в 11:34
Ваше право, но и у радиоканала есть свои минусы.
Масштабировать действительно проще, так как радио доберется до всего в радиусе действия, следовательно нужны дополнительные усилия для определения "свой-чужой", а то как бы два рядом стоящие велика не "объединили" свои батареи
:) извините но вы глупость пишете ... микросхемы-радио каждая имеет свой "типа MAC-адрес" на который и откликается. И трафик может шифроваться :) ... Так что пещерные страхи тут неуместны.

Зато можно "с центр. модуля" дать команду и ЗУ позакрываются :) или проще: наш центральный модель имеет встроенную батарейку - так что можно с собой, как "морду магнитолы" уносить - как противоугонка :) . Нажал кнопку и... скутер == груда металла :)
пока хозяин не разрешил работать :)...

nordiver

Цитата: Alex_Soroka от 28 Апр. 2010 в 11:54
Цитата: i от 28 Апр. 2010 в 11:34
Ваше право, но и у радиоканала есть свои минусы.
Масштабировать действительно проще, так как радио доберется до всего в радиусе действия, следовательно нужны дополнительные усилия для определения "свой-чужой", а то как бы два рядом стоящие велика не "объединили" свои батареи
:) извините но вы глупость пишете ... микросхемы-радио каждая имеет свой "типа MAC-адрес" на который и откликается. И трафик может шифроваться :) ... Так что пещерные страхи тут неуместны.

Зато можно "с центр. модуля" дать команду и ЗУ позакрываются :) или проще: наш центральный модель имеет встроенную батарейку - так что можно с собой, как "морду магнитолы" уносить - как противоугонка :) . Нажал кнопку и... скутер == груда металла :)
пока хозяин не разрешил работать :)...


Согласен, радиоканал отличное решение, единственная проблема то что он сложнее в реализации (в том числе и програмной)  :ak:

i

Вот и я о том же. Нужны "телодвижения", что бы всё это правильно работало, а некоторые их не делают, и тогда китайские радиотрубки могут говорить через чужие базы, чрез Wi-Fi соседа зачастую можно выйти в интернет за его счёт, радиобрелки противоугонок сканерами вскрываются  на раз...
Так что это не страхи, а опыт.

stranger

Из переписки с программистом, которую опубликовал nordiver несколькими постами ранее, и которую потёрли модераторы, так и не объяснив причину, по которой они это сделали, я понял следующее:

Тиамо обещал дать денег программисту на закупку необходимых комплектующих, но денег не дал ни копейки, поэтому сейчас программист собирается покупать всё необходимое за свои деньги, т.к. определённую работу по написанию софта он уже проделал, и ему сейчас уже жалко просто взять и бросить всё это на середине пути.

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

nordiver

Цитата: stranger от 29 Апр. 2010 в 16:26
Из переписки с программистом, которую опубликовал nordiver несколькими постами ранее, и которую потёрли модераторы, так и не объяснив причину, по которой они это сделали, я понял следующее:

Тиамо обещал дать денег программисту на закупку необходимых комплектующих, но денег не дал ни копейки, поэтому сейчас программист собирается покупать всё необходимое за свои деньги, т.к. определённую работу по написанию софта он уже проделал, и ему сейчас уже жалко просто взять и бросить всё это на середине пути.

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


Я двумя руками за это предложение! Просьба к eea66 сообщить какие нибудь реквизиты для перевода денег (типа вебмани или чего-то подобного)

stranger

Лучше всего яндекс-деньги или, на худой конец счёт в сбере

i

Денег не дам. Не хочу портить парня.
Разница между написанной программой и работающей такая же, как между сном и реальностью.

stranger

Цитата: i от 29 Апр. 2010 в 17:15
Денег не дам. Не хочу портить парня.
Разница между написанной программой и работающей такая же, как между сном и реальностью.

Ну, как говорится, колхоз - дело добровольное, тут никто нож к горлу никому не приставляет  :D
Мне вот только не совсем понятно (а точнее, совсем не понятно) то, каким образом сумма "пожертвования" с каждого размером, ну скажем в 100-200 рублей, может испортить кого-либо.
Туплю, однако.  :bu:

Насколько я понимаю, денег всего надо собрать - пару тысяч рублей.

nordiver

Цитата: i от 29 Апр. 2010 в 17:15
Денег не дам. Не хочу портить парня.
Разница между написанной программой и работающей такая же, как между сном и реальностью.

Вообще-то на сколько я понимаю речь шла не об оплате труда программиста, а о компенсации за приобретённые радиодетали

stranger

Цитата: nordiver от 29 Апр. 2010 в 18:38
Цитата: i от 29 Апр. 2010 в 17:15
Денег не дам. Не хочу портить парня.
Разница между написанной программой и работающей такая же, как между сном и реальностью.

Вообще-то на сколько я понимаю речь шла не об оплате труда программиста, а о компенсации за приобретённые радиодетали

Я, собственно, об этом и написал, ещё раз процитирую:

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