
Catethysis
11.11.2016
11:26:07

LexsZero
11.11.2016
11:28:56

Catethysis
11.11.2016
11:29:17
да, была и такая мысль. резисторный делитель чот хз :(
всё будет зависеть от выходного импеданса того девайса, от которого я TX получаю

Google

Дмитрий
11.11.2016
11:29:44
делитель может подойти, но придётся добавлять транзистор

Catethysis
11.11.2016
11:30:00
зачем? он ещё и инверснёт

Дмитрий
11.11.2016
11:30:13
0 или 1 могут делителем не совпасть
какая максимальная частота у РС817?

Эдуард
11.11.2016
12:39:32
Но я не поднимал. Может просто это как-то поможет

Catethysis
11.11.2016
14:22:20
ха, во второй схеме диод-то и не нужен ?

Ibh
11.11.2016
15:04:16
видел такую на 8 каналов. но название до понедельника не скажу
от NXP что-то, если память не изменяет

Catethysis
11.11.2016
15:04:36
ок, скинь потом, пожалуйста.
то, что я искал у NXP — находил только на 5В, а мне 12 надо

Ibh
11.11.2016
15:15:53
да. звиняй. 5в
вспомнил название - http://cache.nxp.com/documents/data_sheet/GTL2003.pdf?pspll=1

Google

Catethysis
11.11.2016
15:16:29
да, вижу. схема вроде та, а напряжение фиг :(
ладно, спасибо :)


Serg
11.11.2016
18:10:55
Нигде не мог толком найти, в чем же надежность CAN, вот отличное объяснение:
"Объясните почему CAN лучше RS-485? Я вот никак не пойму. RS-485 имеет 2х тактный выход, а CAN однотактный(тянет только вниз)…-
Как раз за счет этого и лучше. За счет так называемых рецессивных и доминантных состояний на линии. Если в RS-485 два устройства начнут передавать одновременно, возникнет коллизия — битые данные. В кэне передающие узлы контролируют линию. Если узел выставил рецессивный 1, а прочитал доминантный 0, то значит кто-то другой на линии передает свои более приоритетные данные. Этот узел «затыкается», данные продолжает посылать более успешный узел, посылка доходит до всех в сети в сохранности. А заткнувшийся узел пробует передать свое сообщение уже вслед еще раз. Поэтому при одновременной передаче доступ к линии (выигрывает арбитраж) получает узел с самым приоритетным началом посылки (идентификтором) — т.е. чем меньше идентификатор в цифровом представлении, тем выше приоритет (одинаковые идентификаторы — запрещены). Так автоматически разрешаются коллизии — не нужен мастер в сети, все шлют «когда хотят». А еще на этом же механизме (рецессивных и доминантных состояний) основано подтверждение посылки — в самом конце передачи есть битик, который должен быть всегда равен единице и который называется битом подтверждения (ack). Если какой-то из узлов плохо расслышал посылку, то он утягивает линию в ноль — передающий узел видит, что посылку кто-то не воспринял и автоматически (аппаратно) перепосылает еще раз. В RS всё это невозможно. Это же всё и минус CAN — такая система накладывает ограничения на максимальную длину линии/частоту передачи, чтобы узел на конце линии, выставив доминантный ноль, мог за время передачи одного бита быть услышан узлом в начале сети (скорость света, переходные процессы и всё такое). CAN — это не просто линия передачи, а целый протокол — там и бит стаффинг, и контрольная сумма и арбитраж (неразрушающий доступ к линии), и перепосылка данных — и все это на аппаратном уровне выполняется контроллером CAN линии в микроконтроллере.
Может я не понял, но помехоустойчивость это способность работать в сложной ЭМ обстановке(2х тактный выход как раз там покажет себя с положительной стороны) и разруливание коллизий на нее не влияет. То, что плюшек больше на CAN я не спорю.
Если CAN рассматривать не просто как физическую линию, а вместе с неотъемлемыми функциями аппаратной проверки контрольной суммы и перепосылки сообщения, то он покажет себя лучше по сравнению с RS, несмотря на более «слабый» физический сигнал передачи. И по количеству неполученных посылок CAN выиграет в большинстве случаев у RS — он просто перепошет битое сообщение, никто даже и не заметит. А в RS вы явно получите битые данные и будете программно уже их верифицировать протоколом более высокого уровня. Так что всё зависит от методов сравнения.
а у CAN все проверки разве на аппаратном уровне?
Арбитраж доступа, механизмы контроля и предотвращения ошибок (а их в CAN несколько — bit stuffing, проверка контрольной суммы), автоматическая перепосылка недоставленного сообщения — все это реализуется на аппаратном уровне. Вероятность невыявления ошибки передачи 4,7×10−11 (Из вики). Таким образом, надежность передачи сообщений в CAN очень высока. При этом программисту не надо об этом особо задумываться — отправляешь данные и знаешь, что они дойдут. В RS все тяготы разрешения конфликтов, расчета контрольных сумм, проверок доставлено ли сообщение и т.д. ложатся на плечи программиста."


IDDQD
11.11.2016
18:12:29
Правильно ПАЯЛИЛ

Дмитрий
11.11.2016
18:12:38

Catethysis
11.11.2016
18:12:48
Ах да, арбитраж-то я и забыл указать в списке плюсов. А это таааак удобно. Даже на осциле видно, как все начинают хором слать, и постепенно отваливаются, с каждым новым битом адреса единица на 50мВ проседает :)

Serg
11.11.2016
18:14:24
Вот сомнения в надежности были как раз из-за этих аналоговых танцев с сигналом
В RS все двоичное

Catethysis
11.11.2016
18:14:36
Каких ещё аналоговых ><

Serg
11.11.2016
18:14:43
Даже если линия занажена - пофиг

Catethysis
11.11.2016
18:14:45
Всё цифровое
А тут так можно подумать, не пофиг
Цифровое и дифференциальное всё, ещё и црц. В чём проблемы?

Serg
11.11.2016
18:15:50
Я хотел сказать это "Это же всё и минус CAN — такая система накладывает ограничения на максимальную длину линии/частоту передачи, чтобы узел на конце линии, выставив доминантный ноль, мог за время передачи одного бита быть услышан узлом в начале сети (скорость света, переходные процессы и всё такое)."

Catethysis
11.11.2016
18:16:18
Скорость_передачи*длина_линии <= const
И на пять километров кан кидают без проблем

Serg
11.11.2016
18:16:31
А если линия звенит и загажена, не будет ли CAN капризнее RS485?

Catethysis
11.11.2016
18:16:39
Скорость просто пониже сделать, и можно хоть 10км
Нет, не будет
В машине вон всё звенит на +-100 вольт, и всем норм

Google

Serg
11.11.2016
18:17:12
Изначально то CAN для сети в авто делали

Catethysis
11.11.2016
18:17:16
Ну и?

Serg
11.11.2016
18:17:37
Значит норм

Catethysis
11.11.2016
18:17:46
Да

Serg
11.11.2016
18:17:53
А адресация у CAN есть как у RS485?

Catethysis
11.11.2016
18:18:37
11 бит адреса. 2048 девайсов.
Если этого мало -- есть режим с 29 битами адреса, как раз под каждый атом во вселенной

Serg
11.11.2016
18:19:25
адрес часть протокола, как в modbus?

Catethysis
11.11.2016
18:19:32
В девайсе можно несколько адресов делать
Да
В кадре -- адрес, доп.адрес, данные, црц плюс кучка флагов
Всё хардварно распиливается и вставляется

Serg
11.11.2016
18:20:21
Тогда уже надо 96 бит, под размер CPUID в STM32

Catethysis
11.11.2016
18:20:51
Ещё и битики стаффятся, пять единиц или нулей подряд дополняются противоположным, для самосинхронизации
Ну я конечно преувеличил про вселенную, но для всего хватит

IDDQD
11.11.2016
18:21:41

Serg
11.11.2016
18:21:46
В RS практическая проблема при множестве устройств - это проставление уникальных адресов

Catethysis
11.11.2016
18:22:12
А в хдми вообще tmdi, сильно понижающий гармоники

Serg
11.11.2016
18:22:28
хотя для пользователя удобнее видеть одну циферку, а не 96 битный код :)

Catethysis
11.11.2016
18:22:50
Ну вот можно из unique_id генерить

Google

Catethysis
11.11.2016
18:23:12
Серж, вспоминается двухгодовой давности разговор в коментах :D

Serg
11.11.2016
18:23:27
Ага, про CPUID
Я все думал как его сократить, а ты выдал сразу несколько вариантов с теоретическими выкладками :)

Catethysis
11.11.2016
18:24:38
Хаха :) мне нравится вся эта математика, коды, шифрование, вау

Serg
11.11.2016
18:25:19
Я заметил, а я вот математику терпеть не могу

IDDQD
11.11.2016
18:26:39

Serg
11.11.2016
18:28:16
Ну как говорил у нас препод, кроя матом приматов (факультет прикладной математики) - "не понимаю чем они там занимаются, вся математика уже давно решена, просто бери и пользуйся" :)

IDDQD
11.11.2016
18:29:32

Serg
11.11.2016
18:30:13
Ну это подготовка ученых
не инженеров
И этот извечный спор, нужна ли разработчику ПО математика

Дмитрий
11.11.2016
18:33:00
не нужна, пока не понадобится
рано или поздно в какой-то мере она всегда нужна

Serg
11.11.2016
18:33:42
Тогда сюда надо включить и химию, физику твердого тела, нефтедобычу и прочие отрасли знаний

Дмитрий
11.11.2016
18:33:52
а это зачем?

Catethysis
11.11.2016
18:34:02
Я выступаю и за математику, и за копание в глубину. Если бы я был против глубины -- я бы занимался ардуино :)

Дмитрий
11.11.2016
18:34:13
что без знаний основ матана можно сделать? Даже геометрию окна иногда надо посчитать

Serg
11.11.2016
18:34:19
"рано или поздно понадобится"
для подсчета геометрии окна не нужно матана
99% знаний математики - это арифметика

Google

Serg
11.11.2016
18:35:27
у большинства
т.е. 3 класса средней школы
А если понадобится - ну так берешь и изучаешь
Мало ли чего понадобится, с оконачнием ВУЗа образование не заканчивается

IDDQD
11.11.2016
19:12:53
если бы все так было просто, то тогда бы люди не ездили на курсы, бери и изучай, хули ты глаза вылупил?
никуда мы тебя учится не отправим. вот те гугол, учи давай как работает synopsys design compiler
вот тут и ты и твой менеджер лососнет тунца

BigSam
11.11.2016
19:17:48
к вопросу о высшем образовании... оно учит как найти информацибю,и как применить ее...

Serg
11.11.2016
19:20:22
Как найти информацию - это о чем? Как пользоваться оглавлением книги или гуглом?
Находить информацию - это базовые знания пятилетнего ребенка

Catethysis
11.11.2016
19:21:37
Не все знают даже про язык запросов гугла, не говоря уж о чём-то большем.

Serg
11.11.2016
19:22:00
Таких в расчет можно не брать

Catethysis
11.11.2016
19:22:13
Без этого языка порой сложно найти что-то, или даже сформулировать

BigSam
11.11.2016
19:22:16
да не многие то и знают как в гугле правильно искать

Serg
11.11.2016
19:22:17
Обучение в ВУЗе не поможет им "находить информацию"

BigSam
11.11.2016
19:22:33
поверь они сами научатся

IDDQD
11.11.2016
19:22:49