생산에서 펌웨어를 고유하게 식별하는 것이 실용적입니까?


12

고유 한 일련 번호를 펌웨어로 프로그래밍 할 수있는 시스템이나 각 PCB의 여유 메모리 공간을 확보 할 수있는 시스템이 있습니까?

나는 것으로 나타났습니다 FDA는 달성하기 쉬운 또는 당신의 자신의 제조 공정 개발을 필요로이 일을 의료용 기기 위해 시행 시작하기로 결정했지만, 무엇입니까?


7
어떤 종류의 시스템이 있습니까? 많은 CPU (및 고급 MCU)에는 이미 고유 한 값으로 사전 프로그래밍 된 일종의 ID 레지스터가 있습니다.
Dmitry Grigoryev

4
먼저 확인하여 MCU는 이미 고유 식별자가 없습니다
Jeroen3

답변:


14

대부분의 생산 프로그래머는 프로그램 메모리에 고유 일련 번호를 삽입 할 수있는, 자사의 과정은 일반적으로 불리는 직렬화 . 이것은 이전 Dataman 프로그래머의 Serialization 화면입니다.

Dataman 프로그래머의 직렬화 디스플레이


serialization가능성은 있지만 값의 범위가 단어 경계를 넘는 경우 특히주의해야합니다. 프로그래밍을 아웃소싱하면 훨씬 까다로워집니다. 잘 알려진 공급 업체가이 문제를 한 번에 두 번 연속해서 잘못 알고 문제의 부분에 해당하는 프로그래머가 여러 바이트를 직렬화 할 수 없다는 사실을 인정했습니다. 더 중요한 바이트의 각 값에 대해 고유 한 파일을 전송하여 각 하위에 대해 직렬화 된 256 조각의 프로그래밍 작업을 실행했습니다. 다음 디자인을 위해 맞춤형 프로그래머를 만들었습니다.
Chris Stratton

14

소프트웨어 전용 솔루션을 요구할 수도 있지만 보드에 저렴한 IC를 추가 할 수있는 경우 '실리콘 일련 번호'칩을 사용할 수 있습니다.

이들은 각 장치마다 고유 한 이진수를 포함하는 작은 ROM 칩입니다. 48 비트 고유 번호를 갖는 Maxim의 DS2401 (1 선 버스) 및 DS28CM00 (I2C)이 그 예입니다.

이 번호는 해당 제조업체에서 해당 부품 번호로 만든 모든 IC 중에서 고유합니다. 전 세계의 모든 사람이 만든 모든 SSN 칩 중에서 독특하지는 않습니다. 그러나 그들은 당신의 보드를위한 장치를 선택하는 것을 매우 쉽게 만들고 모든 보드가 다른 고유 번호를 읽을 것이라는 것을 알고 있습니다.


1
그것은 내가 본 것 중 최고의 벤더 잠금 방식 일 것입니다.
기본

"세계 모든 사람이 만든 모든 SSN 칩 중에서 독특하지는 않습니다."왜 이것이 "분명한"것입니까? 전체적으로 고유 한 다른 식별자 (예 : 이더넷 MAC 주소)는 접두사 할당을 사용하여이를 달성합니다. 공급 업체는 접두사를 사용하고 나머지 비트 / 숫자를 선택합니다.
벤 Voigt

1
@BenVoigt MAC 주소는 전 세계적으로 고유하지 않습니다. 지역적으로 독특합니다. 아시아에 와서 유럽의 장치와 충돌 할 MAC 주소를 가진 장치를 구입할 수 있습니다. 많은 장치에서 의도적으로 장치와 의도적으로 충돌하도록 MAC 주소를 변경할 수도 있습니다.
slebetman 2016 년

안녕하세요 @ BenVoigt, 많은 SSN IC 제품군이 존재하며 많은 프로세서 / MCU에는 고유 ID가 있으며 IC 제품군에만 고유합니다. 전 세계적으로 고유 한 IC 번호 체계를 몇 개나 나열 할 수 있습니까? (IMEI와 같은 제품 번호는
아님

5

네, 물론 언급 된 맥 주소는 명백한 것으로, 별도의 부분 인 경우 맥 옆의 플래시 / eeprom 또는 다른 곳의 플래시 / eeprom에 있습니다. 중요한 제품 데이터 (보드 일련 번호 등)는 별도의 eeprom 또는 플래시 또는 다른 펌웨어를 저장하는 데 사용 된 동일한 장치에 배치 할 수 있습니다.

예를 들어 시스템 설계의 일부인 펌웨어의 필드 업그레이드가 가능한 상황에서는 펌웨어 플래시를 지우고 다시 프로그래밍 할 때 VPD 데이터가 삭제되는 것을 원하지 않으므로 쓰기 방지 기능을 사용하여이를 해결해야합니다. 플래시 보호 장치 (뱅크 / 영역에 VPD를 넣고 해당 영역을 잠그는 것), 쓰기 방지 핀 및 / 또는 다른 솔루션을 공개적으로 게시 / 문서화하지 않아도 VPD를 그런 다음 고정 된 상태로 유지하십시오 (ICT 도중 / 주변에 프로그래밍 된 경우 고정 장치가 다른 방향으로 당길 수 있음).

의료는 생각보다 훨씬 흔할 것입니다. 아마도 텔레비전 리모컨이 아니라 아마도 마우스 나 키보드 그리고 확실히 휴대폰 등일 것입니다.

스티커를 보드에 사용하는 경우 스티커가 바코드를 가지고있어 고정구 또는 작업자가 바코드, 어셈블리 rev 등을 스캔하여 해당 보드의 VPD에 추가 할 수 있도록 바코드가있을 수 있습니다.


현장 업그레이드 용으로 설계 한 경우 최소한 펌웨어로 컴파일 된 버전의 펌웨어를 알고 싶지만 현장 업그레이드를 수행하기 전에이 플랫폼이 어떤 플랫폼 / 보드인지 확인해야합니다 ( 올바른 펌웨어 및 / 또는 필드 프로그래밍의 미묘한 차이 등을 사용하므로 VPD를 보호하고 싶을뿐만 아니라 펌웨어 업그레이드를 위해 VPD 정보를 설계의 일부로 필요로 할 수 있습니다.
old_timer 2016 년

3

모든 제품에 고유 코드를 사용하는 것이 가능하고 가능합니다. 이를 수행하는 한 가지 방법은 프로그래밍 된 모든 장치의 펌웨어 식별 번호를 순차적으로 변경하는 소프트웨어 프로그래밍 시스템을 보유하는 것입니다. 일부 시스템에서는이 작업이 쉽습니다. 예를 들어 일부 마이크로 컨트롤러에는 ID를 저장하기 위해 예약 된 eeprom 위치가 있습니다.

다른 대안은 고유 한 하드웨어 ID를 추가하는 것입니다. 이에 대한 예는 Dallas Semi (현재 Maxim Integrated) 실리콘 일련 번호 집적 회로 ( DS2401 )입니다. 이 장치는 일련 번호를 제공하며 고유 번호임을 보증합니다. 이 일련 번호는 특정 제품의 고유 주소를 유추하는 데 사용될 수 있습니다.


2

대량 생산 된 네트워크 카드에는 제조 중에 하드웨어 (MAC) 주소의 일련 번호 가 플래시 / EEPROM에 프로그래밍되어 있습니다.

스티커로 제품 케이스에 적용된 일련 번호를 제거하거나 다시 적용 할 수 있지만 특정 보드에 일련 번호를 태우면 보드 사용을 추적하는 또 다른 방법이됩니다. 아마도이 일련 번호는 의료 진단서 나 수술에 정확히 어떤 장치가 사용되었는지 추적하기 위해 의료 문서에 인쇄 될 것입니다.


2

... 이것은 달성하기 쉬운 것입니까, 아니면 자체 제조 프로세스를 개발해야합니까?

약 10 년 전에 저는 클라이언트 중 하나를 위해 개발 한 의료 기기 펌웨어와 비슷한 상황에있었습니다. 이것은 클래스 2 장치로 막대를 높였습니다. 생산 수량은 수백 개였습니다.

일련 번호를 자동 또는 반자동으로 쓸 수있는 상용 프로그래머를 찾을 수 없습니다. 우리는 해결 방법을 수행했습니다. 교정 및 테스트에 사용 된 공장 펌웨어가있었습니다. 이 공장 펌웨어는 직렬 포트를 통해 나머지 테스트 장비와 통신했습니다. 이 테스트의 일환으로 마이크로 컨트롤러의 EEPROM에 저장된 일련 번호를 다운로드합니다. (공장 펌웨어는 필드 펌웨어로 덮어 썼습니다.)


0

SEGGER 프로덕션 프로그래머는 고유 한 일련 번호를 MCU로 플래싱하는 것을 지원합니다.


0

이것에 대한 많은 옵션이있는 경우 ( 이 답변 에서 얻은 일부 ) :

  1. 가능한 경우 마이크로 컨트롤러의 고유 ID를 사용하십시오.
  2. 전용 I / O에 일부 외부 점퍼를 설정하여 고유 한 주소를 선택하십시오.
  3. 제작하는 동안 UID를 플래시 또는 EEPROM으로 프로그래밍하십시오. 펌웨어 파일 자체는 직렬화를 통해 변경할 수 있습니다. 조립 라인에이 기능이 없지만이를 사용자 정의 할 수있는 경우 16 진 편집기로 펌웨어 파일의 오프셋을 찾고 선호하는 스크립트 / 언어를 사용하여 파일을 수정하면 쉽게 수행 할 수 있습니다. 때로는 링커 스크립트를 사용하여이 주소를 "수정"할 수 있습니다.
  4. UID를 제공하는 외부 칩을 무시하십시오.
  5. 서비스 인터페이스 또는 부트 로더로 내부 플래시 / eeprom (사용 가능한 경우)을 구성하십시오. 테스트 중에도 수행 될 수 있습니다 (일부 경우 "생산 라인"이 아님). 일부 장치에는이 서비스 인터페이스가 있으며 공인 기술자 제조업체 만 일부 값을 변경할 수 있습니다. 이 값은 수정할 수 없으므로 코드가 수정 된 값을 플래그로 지정하고 추가 수정을 금지하십시오. 부트 로더가있는 경우 현장 업그레이드에서이 섹션을 덮어 쓰지 않아야합니다.

0

우수한 하드웨어 RNG 및 16 바이트의 추가 영구 스토리지에 액세스 할 수있는 경우 프로덕션 프로세스를 너무 많이 변경하지 않는 한 가지 방법은 처음 시작할 때 v4 GUID를 생성하여 저장하는 것입니다. 사후 프로그래밍 테스트 중에 펌웨어를 직렬로 덤프 할 수 있습니다. 순차적이지는 않지만 대부분의 응용 프로그램에는 중요하지 않습니다.


0

각 PCB에서 RFID 또는 스마트 태그를 사용하는 것이 요구 사항을 충족하면 사용자가 제어하는 ​​가장 쉬운 구현 방법이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.