시스템 내 프로그래밍
In-system programmingIn-system Programming(ISP; 시스템내 프로그래밍) 또는 In-Circuit Serial Programming(ICSP; 회로내 시리얼 프로그래밍)이라고도 불리는 것은 일부 프로그래밍 가능한 논리 디바이스, 마이크로 컨트롤러 및 기타 임베디드 디바이스를 시스템에 설치하기 전에 칩을 프로그래밍할 필요가 없는 완전한 시스템에 설치하는 기능입니다.또, 회로 기판의 전문 프로그래밍 회로를 사용하지 않고, 마이크로 컨트롤러나 관련 프로세서의 온칩 메모리에 펌 웨어 업데이트를 송신할 수 있어 설계 작업을 [1]심플화합니다.
마이크로컨트롤러 장치를 프로그래밍하기 위한 시스템 내 프로그래밍 프로토콜에 대한 표준은 없습니다.마이크로컨트롤러의 거의 모든 제조업체가 이 기능을 지원하지만, 모두 자체 프로토콜을 구현하고 있으며, 이는 종종 동일한 제조업체의 다른 장치에서도 다릅니다.일반적으로 최신 프로토콜은 사용되는 핀 수를 2핀으로 낮게 유지하려고 합니다.1개의 핀만으로 같은 것을 실현할 수 있는 ISP 인터페이스도 있고, JTAG 인터페이스의 실장에 최대 4개의 핀을 사용하는 ISP 인터페이스도 있습니다.
시스템 내 프로그래밍의 주요 장점은 전자 장치 제조업체가 프로그래밍과 테스트를 단일 생산 단계로 통합하여 시스템을 조립하기 전에 별도의 프로그래밍 단계를 필요로 하지 않고 비용을 절감할 수 있다는 것입니다.이를 통해 제조업체는 제조업체나 유통업체로부터 미리 프로그래밍된 칩을 구입하는 대신 자체 시스템 생산 라인에 칩을 프로그래밍할 수 있으므로 생산 작업 중에 코드나 설계 변경을 적용할 수 있습니다.또 다른 장점은 프로덕션 환경에서 항상 최신 펌웨어를 사용할 수 있으며 사전 프로그래밍된 마이크로 컨트롤러를 사용할 때 지연 없이 새로운 기능 및 버그 수정을 구현하여 프로덕션 환경에 도입할 수 있다는 것입니다.
마이크로컨트롤러는 일반적으로 프린트기판에 직접 납땜되며, 일반적으로 다른 컴퓨터에 대한 대규모 외부 프로그래밍 케이블을 위한 회로나 공간이 없습니다.
일반적으로 ISP를 지원하는 칩은 시스템의 일반 공급 전압에서 필요한 프로그래밍 전압을 생성하고 시리얼 프로토콜을 통해 프로그래머와 통신하기 위한 내부 회로를 가지고 있습니다.대부분의 프로그램 가능한 로직 디바이스는 자동화된 테스트 절차와의 통합을 용이하게 하기 위해 ISP용 JTAG 프로토콜의 배리언트를 사용합니다.다른 장치에서는 일반적으로 이전 표준에서 정의한 독점 프로토콜 또는 프로토콜을 사용합니다.상당히 큰 글루 로직을 필요로 할 정도로 복잡한 시스템에서는 설계자가 플래시 메모리나 마이크로 컨트롤러 등의 비 JTAG 디바이스용 JTAG 제어 프로그래밍 서브시스템을 구현하여 프로그래밍 및 테스트 절차 전체를 단일 프로토콜로 제어할 수 있습니다.
역사
1990년대 초부터 마이크로컨트롤러의 아키텍처에서 중요한 기술적 진화가 목격되었습니다.처음에는 OTP(One Time Programmable) 또는 EPROM 메모리라는 두 가지 솔루션으로 실현되었습니다.이러한 기술에서 메모리 소거 공정은 패키지 위의 특정 창을 통해 칩을 자외선에 노출시켜야 합니다.1993년에 마이크로칩 테크놀로지는 EEPROM 메모리를 탑재한 최초의 마이크로 컨트롤러인 PIC16C84를 발표했습니다.EEPROM 메모리는 전기적으로 소거할 수 있습니다.이 기능을 통해 패키지 위의 지우기 창을 제거하고 시스템 내 프로그래밍 기술을 시작하여 실현 비용을 절감할 수 있습니다.ISP를 사용하면 생산 프로세스의 마지막에 보드에서 직접 플래시 프로세스를 수행할 수 있습니다.이 진화에 의해, 프로그래밍과 기능 테스트 국면과 실가동 환경의 통합이 가능하게 되어, 펌 웨어의 개발이 아직 완료되지 않은 경우에서도, 보드의 예비 생산을 개시할 수 있게 되었습니다.이렇게 하면 버그를 수정하거나 나중에 변경할 수 있습니다.같은 해, Atmel은 EEPROM 메모리에 비해 프로그래밍이 쉽고 고속이며 라이프 사이클이 훨씬 긴 플래시 메모리를 탑재한 최초의 마이크로 컨트롤러를 개발했습니다.
ISP를 지원하는 마이크로컨트롤러에는 보통 시리얼 통신 페리페럴이 프로그래머와 인터페이스하기 위해 사용하는 핀, 플래시/EEPROM 메모리 및 마이크로컨트롤러 프로그래밍에 필요한 전압을 공급하기 위해 사용되는 회로가 있습니다.통신 페리페럴은 플래시 또는 EEPROM 메모리에서 동작하는 명령을 제공하는 프로그래밍 페리페럴에 접속됩니다.
ISP 프로그래밍을 위한 전자 보드를 설계할 때는 프로그래밍 단계를 가능한 한 신뢰할 수 있도록 몇 가지 지침을 고려해야 합니다.핀 수가 적은 일부 마이크로 컨트롤러는 I/O 라인과 프로그래밍 라인을 공유합니다.이는 보드 설계에 필요한 예방 조치를 고려하지 않으면 문제가 될 수 있습니다. 프로그래밍 중에 장치가 I/O 컴포넌트에 손상을 입을 수 있습니다.게다가 프로그래머에 의한 컴포넌트의 손상을 피하기 위해서도, 마이크로 컨트롤러가 회선을 파일럿 하기 위해서도, ISP 회선을 고임피던스 회로에 접속하는 것이 중요합니다.많은 마이크로 컨트롤러가 프로그래밍 모드로 들어가려면 전용 RESET 회선이 필요합니다.라인 구동을 위해 공급되는 전류에 주의를 기울이고 RESET 라인에 연결된 워치독이 있는지 확인해야 하며, 이로 인해 프로그래밍 오류가 발생할 수 있습니다.또한 일부 마이크로컨트롤러는 프로그래밍 모드로 전환하기 위해 더 높은 전압이 필요하므로 이 값이 감쇠되지 않았는지, 이 전압이 보드 상의 다른 컴포넌트로 전송되지 않았는지 확인해야 합니다.
산업용도
시스템 내 프로그래밍 프로세스는 제품 생산의 최종 단계에서 이루어지며, 생산량에 따라 두 가지 방법으로 수행될 수 있습니다.
첫 번째 방법에서는 커넥터가 프로그래머에 수동으로 접속된다.이 솔루션은 프로그래머와 전자 보드를 케이블로 연결해야 하는 프로그래밍 프로세스에 사람이 참여하기를 기대합니다.따라서 이 솔루션은 프로덕션 볼륨이 적은 경우에 적합합니다.
두 번째 방법은 보드 상의 테스트 포인트를 사용합니다.프린트 기판(PCB)에 배치되어 보드상의 전자 컴포넌트 중 일부에 전기적으로 접속되어 있는 특정 영역입니다.테스트 포인트는 보드에 탑재된 컴포넌트의 기능 테스트에 사용됩니다.테스트 포인트는 일부 마이크로컨트롤러 핀에 직접 연결되어 있기 때문에 ISP에 매우 효과적입니다.중간 규모 및 대량 생산 시 테스트 포인트를 사용하는 것이 조립 라인에 프로그래밍 단계를 통합할 수 있으므로 최적의 솔루션입니다.
생산라인에서 보드는 고정장치라고 불리는 못의 바닥에 놓인다.후자는 생산량에 따라 ATE – Automatic Test Equipment라고 불리는 반자동 또는 자동 테스트 시스템에 통합됩니다.고정 장치는 각 보드에 맞게 특별히 설계되어 있습니다(기껏해야 설계한 보드와 유사한 모델만 해당). 따라서 이러한 고정 장치는 통합된 시스템 환경에서 서로 교환할 수 있습니다.테스트 시스템은 보드와 고정장치를 제자리에 배치한 후 테스트하기 위해 고정장치의 바늘을 보드 상의 테스트 포인트와 접촉시키는 메커니즘을 가지고 있습니다.ISP 프로그래머에 접속되어 있거나 ISP 프로그래머 내부에 직접 통합되어 있는 시스템.이것은, 마이크로 컨트롤러나 시리얼 메모리 등, 보드에 탑재된 디바이스를 프로그래밍 할 필요가 있습니다.
마이크로칩 ICSP
대부분의 마이크로칩 마이크로컨트롤러에서는 클럭(PGC)과 데이터(PGD)의 2개의 핀을 사용하여 ICSP 프로그래밍이 실행되며 Vpp/MCLR 핀에는 고전압(12V)이 존재합니다.저전압 프로그래밍(5V 또는 3.3V)은 고전압을 방출하지만 I/O 핀을 단독으로 사용합니다.단, 새로운 마이크로컨트롤러, 특히 PIC18F6XJX/8XJXX 마이크로컨트롤러 패밀리의 경우 ICSP 모드로 들어가는 것은 조금 다릅니다.[2]ICSP Program/Verify 모드로 들어가려면 다음 3단계를 수행해야 합니다.
- MCLR(마스터 클리어) 핀에 전압이 잠시 인가됩니다.
- 32비트 키시퀀스가 PGD에 표시됩니다.
- MCLR에 전압이 다시 인가됩니다.

한쪽은 PC의 I/O 포트에, 다른 한쪽은 PIC에 연결하려면 프로그래머라고 불리는 별도의 하드웨어가 필요합니다.각 주요 프로그래밍 유형에 대한 기능 목록은 다음과 같습니다.
- 병렬 포트 - 큰 부피가 있는 케이블.대부분의 컴퓨터에는 포트가1개밖에 없습니다.프로그래밍 케이블을 연결된 프린터와 교환하는 것은 불편할 수 있습니다.2010년 이후 노트북의 대부분은 이 포트를 지원하지 않습니다.병렬 포트 프로그래밍은 매우 빠릅니다.
- 시리얼 포트(COM 포트) - 동시에 가장 일반적인 방식입니다.시리얼 포트에는 보통 적절한 회로 프로그래밍 전원 전압이 없습니다.2010년 이후 대부분의 컴퓨터와 노트북은 이 포트를 지원하지 않습니다.
- 소켓(회선 내 또는 외) - CPU를 회로 기판에서 분리하거나 칩 메이킹 액세스에 클램프를 연결해야 합니다.
- USB 케이블 - 소형 경량.전압원을 지원하며 대부분의 컴퓨터에는 여분의 포트가 있습니다.프로그래밍할 회로와 컴퓨터 사이의 거리는 USB 케이블 길이로 제한됩니다. 일반적으로 180cm 미만이어야 합니다.이로 인해 기계나 캐비닛의 깊은 곳에 있는 프로그래밍 장치가 문제가 될 수 있습니다.
ICSP 프로그래머에는 크기, 컴퓨터 포트 가용성 및 전원이 주요 기능인 많은 이점이 있습니다.마이크로 컨트롤러를 둘러싼 인터커넥트 방식 및 타깃 회선의 변화로 인해 가능한 모든 타깃 회선 또는 인터커넥트로 동작하는 프로그래머는 없습니다.마이크로칩은 상세한 ICSP 프로그래밍[3] 가이드를 제공합니다. 많은 사이트에서 프로그래밍 및 회로 예를 제공합니다.
PIC는 5개의 신호를 사용하여 프로그래밍됩니다(6번째 핀 'aux'는 제공되지만 사용되지 않음).데이터는 2-와이어 동기 직렬 방식을 사용하여 전송되며, 3개의 와이어가 추가로 프로그래밍 및 칩 전력을 제공합니다.클럭 신호는 항상 프로그래머에 의해 제어됩니다.
신호 및 핀 배치
- Vpp - 프로그래밍 모드 전압이것은 MCLR 핀 또는 일부 큰 핀카운트 PIC에서 사용 가능한 옵션의 ICSP 포트의 V 핀에 접속해야pp 합니다.PIC를 프로그래밍 모드로 만들려면 이 행이 PIC에서 PIC까지 다른 지정된 범위 내에 있어야 합니다.5 V PIC의 경우 이 값은 항상 V보다 약간dd 크며 최대 13.5 V까지 높아질 수 있습니다.18FJ, 24H 및 33F 시리즈와 같은 3.3 V 전용 PIC는 특수 서명을 사용하여 프로그래밍 모드로 전환되며 V는pp 접지 또는 Vdd에 있는 디지털 신호입니다.모든 PIC의 유효한pp V 범위 내에 있는 V 전압이 없습니다pp.실제로 일부 PIC에 필요한pp 최소 V 레벨로 인해 다른 PIC가 손상될 수 있습니다.
- Vdd-Productivity에 이것은 긍정의 힘이 입력.반면 다른 사람들은(그 Microchip ICD2처럼)어느 쪽이든 구성될 수 있는 프로그래머들이 회로(회로에서 일부를 공급 받아야 한다)에 의해 제공되는 것, 일부 프로그래머들은 자신과 서킷에서 벗어날 필요가 이 라인 운전할 것으로 예상하고 있이 요구한다.그 Embed 회사 프로그래머들 자신과 대상 회로를 프로그래밍 때는 Vdd 선을 따라 운전할 것으로 기대한다.
- 는 영상 처리 컴퓨터에 Vss-부정적인 전력 입력과 나머지 신호가 0볼트 참조입니다.다른 신호 Voltages 암시적으로 Vss과 관련 있다.
- ICSPCLK-직렬 데이터 인터페이스의 시계 라인.이 줄 지앤디 Vdd까지이며, 항상 프로그래머에 의해 구동된다를 휘둘렀다.자료에 쓰러지는 모서리 위에 전송된다.
- ICSPDAT-직렬 데이터 라인.직렬 인터페이스, 이 라인은 프로그래머나 Productivity현재 작업에 따라 주행할 수 있은 양방향이다.어느 경우든 지앤디 Vdd까지 이 라인 오락가락하고 있다.약간 PGC의 쓰러지는 모서리 위에 전송된다.
- AUX/PGM- 새로운 영상 처리 컴퓨터 제어 장치 낮은 전압 프로그래밍(LVP) 수 있도록 이 핀을 사용한다.높은 정밀 유도탄을 열어, 데 LVP 모드가 된다.로 LVP-만약 당신이 브랜드 새 칩을 사용하게 LVP 모드에서 사용할 수 있게 영상 처리 컴퓨터 마이크로 컨트롤러 수출하고 있다.유일한 방법은 모드 변경에 높은 전압 프로그래머를 사용하는 것입니다.이 핀에 연결하지 않고 마이크로 컨트롤러를 프로그래밍하면 모드는 변경되지 않습니다.
RJ11 핀 배치
ICSP 프로그래머와 함께 RJ11 소켓을 사용하기 위한 업계 표준은 마이크로칩에 의해 지원된다.그림은 데이터 시트에 제공된 정보를 나타냅니다.하지만 혼란의 여지가 있다.PIC 데이터 시트는 반전 소켓을 나타내며 핀 배치를 그림으로 보여주지 않기 때문에 소켓 핀 1의 위치가 불분명합니다.이 그림은 테스트되지 않았지만 전화 업계 표준 핀 할당을 사용하고 있습니다(RJ11 플러그/소켓은 원래 유선 데스크톱 전화용으로 개발되었습니다).
레퍼런스
- ^ Oreilly, 임베디드 하드웨어 설계, John Catsoulis 제2판
- ^ http://ww1.microchip.com/downloads/en/DeviceDoc/39644l.pdf[베어 URL PDF]
- ^ ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ICSP 프로그래밍 가이드, 마이크로칩