Способ назначения уникальных индивидуальных адресов


18

Мы разрабатываем платы передатчика / приемника для применения с дистанционным управлением. Чтобы избежать разговоров между несовпадающими парами, нам нужны уникальные адреса для каждой платы. Адрес задается микросхемам кодера / декодера через 8 адресных контактов.

Мы, вероятно, соберем небольшую партию (около 25) вручную, но профессионально изготовим печатные платы.

Какой ваш любимый способ делать уникальные адреса для каждой платы в такой ситуации? Я размышлял о DIP-переключателях, перемычках и следах резки / перемычек. Я склоняюсь к сокращению следов, но я хотел бы услышать, что обычно делают более опытные люди.


насколько реконфигурируемыми они должны быть? а насколько физически устойчив? Можно ли предположить, что радиочастотный пульт дистанционного управления будет иметь неблагоприятную вибрационную среду?
JustJeff

4
Избегайте DIP-переключателей; люди меняют их.
Брайан Карлтон

@JustJeff, они не должны быть перенастроены, если один из контроллеров не выйдет из строя и не будет заменен, или что-то в этом роде. Там не будет много вибрации.
Стивен Оурада

@ Брайан, да, такая возможность есть, но я не слишком беспокоюсь об этом.
Стивен Оурада

1
Я понимаю, что мой вопрос был, вероятно, слишком широким и убедительным. Я люблю ответы и узнал хорошие вещи; спасибо всем, кто внес свой вклад.
Стивен Оурада

Ответы:


15

Я удивлен, что никто не упомянул EEPROM. Нам приходилось вводить уникальные числа в продуктах несколько раз, и большую часть времени они помещались в EEPROM процессора или иногда в зарезервированные места памяти программ. Это, как правило, простая вещь в качестве заключительного этапа производственного испытания и процесса калибровки. После того, как устройство считается работающим и любая калибровка была выполнена, система производственного тестирования отправляет микро команду команду присвоить ей свой серийный номер или использует программный интерфейс для прямой записи серийного номера в соответствующее место. Иногда HEX-файлы, которые программируются на micro, одноразово модифицируются из HEX-файла основного шаблона с уникальным серийным номером для этого устройства, с соответствующими контрольными суммами и, возможно, другой информацией.

Несколько лет назад я работал с компанией, которая производила сотни тысяч штук в год через контрактного производителя в Китае. Мы отправили две полные тестовые системы китайскому производителю. Тестовая программа будет поддерживать файл серийного номера, и мы можем отправить им новые файлы, чтобы настроить устройства для новых диапазонов серийных номеров. Некоторое время все шло достаточно хорошо, пока однажды мы не получили устройства с дублирующимися серийными номерами. Оказывается, китайцы сделали что-то глупое с одной из систем, чтобы она больше не работала. Вместо того, чтобы сказать нам, что они должны были строго выполнять, если что-то пошло не так, они сделали полную копию диска с рабочей системы на другую. Это, конечно, скопировало файлы серийных номеров и текущее состояние, так что с тех пор обе системы раздавали одинаковую последовательность серийных номеров.

Я начал проектировать новые тестовые системы, поэтому я удостоверился, что диапазон серийных номеров и текущее состояние были сохранены в EEPROM в оборудовании тестера и не предоставил никакой документации об этом производителю. У нас было изготовлено около десятка плат тестеров, и мы тщательно присвоили отдельные диапазоны серийных номеров каждому. Когда производителя нужно было обновить новым блоком серийных номеров, мы отправили им обновленные платы тестеров. До сих пор эта система работала очень хорошо. Это также позволяет легко производить единицу измерения здесь или на другом производственном участке. Каждое место имеет своего собственного тестера с собственным диапазоном серийных номеров, и только один человек был главным хранителем серийных номеров и назначал новые диапазоны для тестеров.


1
Привет, Олин! Брайан упомянул EEPROM в своем ответе, но не добавил подробностей. Ваша история показывает слабое место программного присвоения уникальных идентификаторов. Есть производственная цепочка, которая включает в себя некоторые этапы логистики, когда что-то может пойти не так. Это также случилось с нами однажды, когда служба программирования нашей disti забыла увеличить счетчик. Рано или поздно такие вещи случаются. ИМО ничто не сравнится с SSN (см. Мой ответ): нет программирования, нет администрирования, нет ничего :-)
stevenvh

15

Мой любимый это Максим DS2411 . Это небольшая часть SOT-23, которая содержит уникальный SSN (кремниевый серийный номер). Не очень дешево само по себе, но может быть самым дешевым в целом , если учесть затраты на логистику и затраты на программирование в других решениях. Решение SSN не требует какого-либо ручного вмешательства / операции в дополнение к автоматическому захвату и размещению.
Риск дублирования идентификаторов практически равен нулю.
В комментарии к этому ответу mikeselecticstuff указал на эти EEPROM MAC-адреса . Это обычные EEPROM с уникальным идентификатором, запрограммированным в защищенной от записи области EEPROM. Они дешевле, чем DS2411, и у них осталось место для хранения пользовательских данных.

Ω

введите описание изображения здесь

Оператор просто должен положить каплю припоя на обе половины, чтобы «запрограммировать» один бит. Менее половины времени (одна точка пайки вместо двух, и не нужно выбирать и размещать компоненты), и никаких компонентов не требуется. Таким образом, вы экономите дважды. И, как говорит Олин, при правильном размере и зазоре их легко соединять и разбирать.

Если на вашей плате есть микроконтроллер (какой платы нет в наши дни?), Вы можете запрограммировать серийный номер на нем службой программирования. Затраты на логистику на вашей стороне минимальны: просто следите за тем, с какого серийного номера они должны начинаться в каждом пакете программ.
Риск ошибок, приводящих к дублированию идентификаторов, низок, в зависимости от того, насколько хорошо организована служба программирования, но я знаю, что это происходит.

Я знал о следующем, но я не помнил, как они назывались, и я также думал, что мне нужна картина, чтобы объяснить это лучше.

программируемый шунт DIP
Видимо это называется программируемым шунтом DIP . Вы используете его как DIP-переключатель, но вместо миниатюрных переключателей используются слабые соединения, которые вы можете «запрограммировать», сломав их ручкой или небольшой отверткой.
Это имеет тот же большой недостаток, что и решения для выборочной пайки: оператор должен решить, какие соединения разорвать, а какие оставить нетронутыми, и тогда человеческая ошибка никогда не исчезнет. Надежность в отношении уникальности: низкая.


2
Я согласен с паяными перемычками, если человек должен делать каждый. Я попробовал несколько разных вещей, но нашел две полукруглые прокладки, чтобы работать лучше. При правильном размере и зазоре их легко соединять и снимать. Некоторые из них вы можете увидеть на плате по адресу embedinc.com/products/ready02/qprot05_1280.jpg под правым концом разъема DB-9 в верхней части платы.
Олин Латроп

7

I2C EEPROM хорошие и маленькие. Существуют 1-проводные чипы серийного номера.


Хм, я не особо задумывался об этом, хотя мне пришлось бы разработать какой-то интерфейс для его чтения и постоянно представлять адрес кодеру / декодеру, поскольку у меня нет готового доступа к внутренним компонентам указанного чипа. Теперь, когда вы упомянули об этом, кажется, что производитель мог бы предложить это, поскольку кодировщик / декодер - это просто микроконтроллер с некоторой проприетарной прошивкой. Возможно, придется поговорить с ними об этом.
Стивен Оурада

3

Если адрес должен быть установлен кем-то с возможностью пайки, вы можете расположить контактное сопротивление для каждого контакта и выборочно припаять с помощью перемычек на 0 Ом.


Да, это один из способов. Моя теория состоит в том, что несколько проще вырезать следы, чем перемычки для пайки, но я могу ошибаться.
Стивен Оурада

5
@ Steven - на первый взгляд следы резки могут выглядеть проще, поскольку вам не нужны компоненты, но резка грязная, и стоит проверить, есть ли у вас правильное прерывание. Пайка дешевле, особенно когда вам не нужны перемычки (см. мой ответ).
Стивенвх

1

Для простой 8-битной адресации я обычно использую треки. Он более постоянен, чем перемычки / паяные ссылки, и отговаривает людей от его изменения. Вот как я обычно делаю это на доске:

введите описание изображения здесь

Каждая ссылка - это пэд (но это ограничение моего программного обеспечения - я бы предпочел, чтобы оно не было луженым), поэтому оно не получает маску припоя и только 5 мил (в отличие от 10 мил для остальной части трека), которые облегчает резку 5 мил - это минимум для сигнала, который они несут в моем случае - вы можете использовать толще. В моем примере это просто использование пакета резисторов в качестве подтягивающих резисторов. Очевидно, вы могли бы заменить это на что угодно.

Просто помните, чтобы над ними не было маски припоя.

Другой вариант заключается в том, чтобы (как кто-то еще упомянул) использовать контактные площадки SMT и соединить их. Но, если вы просто собираетесь пойти к резисторам, чтобы они работали как подтягивающие, почему бы просто не отключить резисторы, к которым вы бы не подключались?


4
Чтобы ответить на ваш последний вопрос: потому что затраты на выборочное размещение компонентов дороги; Вы должны сделать это вручную. Дешевле, чтобы компонент был помещен с помощью инструмента «Подбор и размещение» и припаял на 1 точку вручную, чем «Подбор и установка» вручную, а затем вручную припаял две точки. Кроме того, если вы разместите все резисторы, вы можете использовать массив резисторов (как и вы), что также дешевле. Стоимость размещения 1 резистора >> стоимость самого резистора.
Стивенвх

2
Как резка более постоянна, чем пайка? Я могу распаять ваш разрез так же легко, как вы можете удалить мой припой. Пайка также более надежна (откуда вы знаете, что она правильно обрезана). Честно говоря, мне вообще не нравится идея резки, но это было очевидно, я полагаю :-)
stevenvh

Это очень верно. Я сам пока не пользуюсь P & P - мои объемы не стоят того. Я хотел бы когда-нибудь построить свой собственный станок P & P ... Но сначала мне нужно построить станок для сверления отверстий с ЧПУ;)
Majenko

Вы можете припаять его как легко, да. Постоянство более психологическое, чем физическое.
Маженко

Если ваш P & P сможет сделать 01005 с (0,25 мм х 0,12 мм), я хочу прийти и посмотреть! Понятия не имею, как они это делают!
Stevenvh

1

Если в вашей схеме есть какое-либо устройство 1-Wire, ваша плата будет иметь серийный номер.

У меня есть плата силового инвертора, и поскольку МОП-транзисторы имеют тенденцию нагреваться, я добавил датчик температуры DS18B20 на радиатор, измеряющий температуру МОП-транзисторов. Это также дало моему инвертору серийный номер, присвоенный датчику температуры.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.