메뉴 English Ukrainian 러시아인 홈

애호가 및 전문가를 위한 무료 기술 라이브러리 무료 기술 라이브러리


라디오 전자 및 전기 공학의 백과사전
무료 도서관 / 무선 전자 및 전기 장치의 계획

초보자와 그 이상을 위한 마이크로컨트롤러. 무선 전자 및 전기 공학 백과사전

무료 기술 라이브러리

무선 전자 및 전기 공학 백과사전 / 마이크로 컨트롤러

기사에 대한 의견 기사에 대한 의견

첫 만남

첫째, 제목으로 판단되는주기의 주제가 선험적으로 흥미롭지 않거나 "외국"인 것처럼 보이는 사람들을위한 몇 마디. 아마도 당신은 아직 디자인에 마이크로 컨트롤러를 사용하지 않았으며 (이하 간단히 MK라고 함) 가까운 장래에 마이크로 컨트롤러 없이도 할 수 있다고 생각할 것입니다. 문제를 해결하기 위해 마이크로 컨트롤러 시스템을 구축하는 것이 너무 번거롭고 경제적으로 실행 가능하지 않을 것이라고 가정할 수도 있습니다. 서두르지 마십시오. 특히 귀하를 위해 몇 가지 사실과 통계를 제공하고자 합니다.

예를 들어 개인용 컴퓨터인 MK의 가장 가까운 친척을 사용하여 사용 강도를 비교해 봅시다. 애널리스트 회사인 Loewenbaum & Co.에 따르면 주식회사 (미국), 1997년에 세계에 출시된 개인용 컴퓨터의 수는 약 20천만 대에 달했습니다. 동의합니다. 이제 이 엄청난 숫자가 전 세계 MK 생산량의 0,2%에 불과하다고 상상해 보십시오. 분석 회사인 IC Insights Inc.에 따르면 (미국) 1998년 세계 시장은 13,5억개 이상을 흡수했습니다!

결론은 스스로를 암시합니다. 오늘날에도 컴퓨터가 효과적으로 사용되지 않는 인간 활동 분야를 찾기 어렵다면 MK에 대해 무엇을 말할 수 있습니까? 왜 그렇게 인기 있고 문자 그대로 없어서는 안 될 존재가 되었습니까? 답은 마이크로컨트롤러의 바로 그 구조에 있습니다. 이 개념의 정의에 대한 첫 번째 근사치로 MC는 단일 마이크로 회로에 위치한 컴퓨터라고 가정할 수 있습니다. 따라서 주요 매력적인 특성 : 작은 크기, 소비, 가격; 고성능, 신뢰성 및 다양한 작업을 수행하기 위해 적응할 수 있는 능력.

MK는 중앙 처리 장치(CPU) 외에도 메모리와 수많은 입력/출력 장치(아날로그-디지털 변환기, 직렬 및 병렬 정보 채널, 실시간 타이머, 펄스 폭)를 포함한다는 점에서 마이크로프로세서와 다릅니다. 변조기 (PWM), 프로그래밍 가능한 펄스 발생기 등 구조와 작동 원리에서 MK는 본질적으로 개인용 컴퓨터와 다르지 않습니다. 따라서 마이크로컨트롤러와 마이크로컴퓨터는 동의어입니다. 그러나 신용 카드, 카메라, 휴대 전화, 스테레오, TV, VCR과 같은 다양한 장치에 내장된 자동 제어 시스템에서 사용되는 주요 목적을 반영하기 때문에 첫 번째 용어(영어 제어 - 관리)가 더 일반적입니다. 캠코더, 세탁기, 자동차, 전자레인지, 도난 경보 시스템, 가솔린 엔진 점화 시스템, 기관차 전기 드라이브, 원자로 등. 임베디드 제어 시스템은 임베디드 시스템(임베디드 시스템 - 영어)이라는 경제의 새로운 분야가 실제로 형성되는 엄청난 현상이 되었습니다.

현재 전 세계적으로 수천 종류의 MK가 생산되고 있습니다. 8~356핀 패키지로 제공되며 55kHz~125MHz의 주파수에서 -32~+200oC의 온도에서 작동하고 1,2V의 공급 전압에서 작동할 수 있으며 몇 마이크로암페어를 초과하지 않는 전류를 소비합니다. . . 제품 가격도 지속적으로 하락하고 있습니다. 오늘날 일부 50비트 MCU는 이미 XNUMX센트를 넘지 않으며, 이는 "하드 로직" 칩 하나의 비용과 비슷합니다.

이 모든 것이 오늘날 MC가 적용되지 않는 인간 활동 영역을 찾는 것이 점점 더 어려워지고 배포 과정이 눈사태와 같은 성격을 띠고 있다는 사실로 이어졌습니다.

위의 사실이 이미 우리 이야기의 주인공에 대한 존경심을 갖게 하셨기를 바랍니다. 실제로 MC는 거의 모든 유형의 인간 활동을 침범하는 세계적인 이벤트가 되었습니다.

25년이 조금 넘은 이러한 제품의 인기가 급속도로 증가한 이유는 무엇입니까? 이 장치는 무엇이며 기능과 전망은 무엇입니까?

활동에서 아직 MC 또는 이를 기반으로 한 시스템을 사용하지 않았다면. 생각할 시간이 아닐까요? 그리고 MK를 적용하기로 결정했다면 행동 순서는 무엇입니까? 어떤 어려움이 당신을 기다리고 있을 수 있으며, 그 과정에서 무엇이 당신을 도울 수 있습니까?

제안된 일련의 기사에서 이러한 질문에 답하려고 노력할 것입니다.

무어의 법칙과 최초의 MK

1965년으로 돌아가 강력한 Intel Corporation의 미래 창립자 중 한 명인 Gordon Moore는 흥미로운 사실에 주목했습니다. 메모리 칩의 성능 향상을 계획하면서 그는 흥미로운 패턴을 발견했습니다. 새로운 칩 모델이 18개월에서 24개월마다 등장하고 용량이 매번 약 두 배로 증가했습니다. 이러한 추세가 계속된다면 컴퓨팅 장치의 성능은 상대적으로 짧은 기간 동안 기하급수적으로 증가할 것이라고 G. Moore는 제안했습니다.

G. Moore의 예측은 나중에 훌륭하게 확인되었으며, 그가 발견한 패턴은 오늘날 놀라운 정확성으로 관찰되고 있으며 생산성 증가에 대한 수많은 예측의 기초가 됩니다. 28 마이크로프로세서(4004년)가 등장한 이후 1971년 동안 칩의 트랜지스터 수는 Sorrettué 칩의 12개에서 000개로 2배 이상 증가했습니다.

음, 1976년 반도체 기술의 기하급수적인 발전으로 인텔은 최초의 MK-8048을 탄생시켰습니다. CPU 외에도 프로그램 메모리, 데이터 메모리, 27비트 타이머, 8048개의 I/O 라인이 포함되었습니다. . 오늘날 1980은 이미 역사가 있지만 인텔이 8051년에 출시한 다음 제품은 여전히 ​​건재합니다. MKXNUMX입니다.

아키텍처 MK 8051

이 MK는 나중에 다른 많은 제품이 만들어진 이미지와 모양의 클래식 모델로 간주될 수 있습니다. 블록 다이어그램은 그림에 나와 있습니다. 1. CPU - MK의 메인 노드. 명령 시스템과 같은 중요한 개념과 관련이 있습니다.

초보자와 그 이상을 위한 마이크로컨트롤러

명령어 세트는 가능한 모든 작업 목록을 정의하는 주어진 CPU에 고유한 이진 코드 세트입니다. 이러한 각 코드는 하나의 작업을 정의하며 작업 코드 또는 명령이라고 합니다. 명령 집합에 사용되는 코드가 많을수록 CPU가 수행할 수 있는 작업이 많아집니다. MK 8051은 8비트이므로 opcode의 크기는 256비트입니다. 이론적으로 총 8051개의 255비트 opcode가 있을 수 있습니다. XNUMX은 XNUMX를 사용합니다.

사용되는 연산 코드의 수에 따라 명령 시스템은 CISC와 RISC의 두 그룹으로 나뉩니다. CISC라는 용어는 복잡한 명령 시스템을 의미하며 Complex Instruction Set Computer의 영어 정의의 약어입니다. 마찬가지로 RISC라는 용어는 축소된 명령어 집합을 의미하며 영어 축소된 명령어 집합 컴퓨터에서 유래되었습니다. 명령 시스템 MK 8051은 C15C 유형에 기인할 수 있습니다.

그러나 이러한 개념의 광범위한 사용에도 불구하고 이름 자체가 CISC와 RISC 명령 시스템 간의 주요 차이점을 반영하지 않는다는 점을 인식해야 합니다. RISC 아키텍처의 주요 아이디어는 클록 생성기의 한 사이클에서 실행될 수 있는 연산 코드 조합을 신중하게 선택하는 것입니다. 이 접근 방식의 주요 이점은 CPU의 하드웨어 구현을 크게 단순화하고 성능을 크게 높일 수 있다는 것입니다.

처음에는 명령 집합을 크게 줄여서만 이러한 접근 방식을 구현할 수 있었기 때문에 RISC라는 이름이 탄생했습니다. 예를 들어, Microchir PIC 제품군의 MK 명령어 세트에는 35개의 명령어만 포함되며 RISC로 분류될 수 있습니다. 분명히 일반적인 경우 RISC 아키텍처의 여러 명령어는 CISC 아키텍처의 한 명령어에 대응해야 합니다. 그러나 RISC 아키텍처의 성능 향상은 일반적으로 덜 효율적인 명령어 세트로 인한 손실보다 크므로 CISC에 비해 전체적으로 RISC 시스템의 효율성이 더 높습니다. 그래서. 가장 빠른 명령 MK 8051은 12주기로 실행됩니다. 각 명령에 대해 XNUMX개의 RISC 컨트롤러 명령을 실행해야 하는 경우에도 결국 RISC 아키텍처는 성능을 XNUMX배 향상시킵니다.

그 과정에서 RISC 아키텍처를 사용하면 여러 작업을 해결할 수 있습니다. 실제로 CPU가 단순화됨에 따라 구현에 필요한 트랜지스터 수가 감소하므로 크리스탈 영역이 감소합니다. 그 결과 비용과 전력 소비가 감소합니다.

이 시점에서 외칠 수 있습니다. 미래는 RISC 아키텍처에 속합니다! 그러나 이 두 개념 사이의 경계가 빠르게 흐려지고 있습니다. 예를 들어. Atmel의 AVR 제품군 MCU에는 CISC 유형에 해당하는 120개 명령어 세트가 있습니다. 그러나 대부분은 하나의 주기로 실행되며 이는 RISC 아키텍처의 특징입니다. 오늘날 RISC 아키텍처의 주요 기능은 클록 생성기의 한 주기에서 명령을 실행하는 것으로 일반적으로 받아들여지고 있습니다. 명령 자체의 수는 더 이상 중요하지 않습니다.

클록 생성기는 장치의 모든 노드 작동을 동기화하기 위해 펄스를 생성합니다. 반복 주파수는 수정 공진기 또는 MK 출력에 연결된 RC 회로로 설정할 수 있습니다. 일부 MK에서는 외부 요소를 사용하지 않고 클록 생성기 작동 모드가 제공됩니다. 이 경우 클록 펄스의 주파수는 생산 중에 결정되는 크리스탈의 매개 변수에 따라 달라집니다.

ROM은 프로그램을 저장하도록 설계된 읽기 전용 메모리 장치이므로 이 메모리를 종종 코드 또는 프로그램 메모리라고 합니다. 최근까지 ROM에는 마스킹 및 프로그래밍 가능이라는 두 가지 주요 유형이 있었습니다.

기술 템플릿인 마스크를 사용하여 MC 제조 공정 중에 정보가 마스크 ROM에 입력됩니다. 생산 주기가 끝난 후에는 변경할 수 없습니다.

이러한 ROM은 프로그램의 품질이 의심의 여지가 없고 이 특정 프로그램에 MK가 크게 필요한 경우에만 사용됩니다. 마스크 ROM의 장점은 대량 생산(수천 개부터)에서 가장 저렴한 비용입니다.

프로그래머블 ROM 정보는 프로그래머라는 장치를 사용하여 기록됩니다. 이러한 ROM이 있는 MK는 두 가지 유형이 있습니다: 한 번 및 반복적으로 프로그래밍 가능(재프로그래밍 가능). 첫 번째는 이름 자체에서 알 수 있듯이 한 번만 프로그래밍할 수 있으며 그 후에는 더 이상 정보를 지울 수 없습니다(OTP 메모리가 있는 MK - 영어에서. One Time Programmable). 소규모 생산(최대 1000개)에 사용됩니다. 마스크 MK의 사용이 경제적으로 타당하지 않을 때.

반복적으로 프로그래밍 가능한 마이크로 회로는 자외선 조사로 지울 수 있는 ROM이 장착된 MK("창"이 있는 패키지에서 사용 가능)와 전기적으로 재프로그래밍 가능한 메모리가 있는 MK로 나뉩니다. 자외선 조사에 의한 소거 기능이있는 ROM이있는 MC의 단점은 비용이 매우 높고 쓰기 / 소거주기가 상대적으로 적다는 것입니다 (총 결정 조사량에 따라 다르며 일반적으로 15 ... 20을 초과하지 않음)

현재 ROM 구현을 위한 새로운 기술인 플래시 메모리가 점점 더 대중화되고 있습니다. 그 주요 장점은 그것은 전기적 재프로그래밍 가능성의 원리에 기반을 두고 있다는 것입니다. 즉, 프로그래머를 사용하여 정보를 여러 번 지우고 기록할 수 있습니다. 쓰기/지우기 주기의 최소 보장 횟수는 일반적으로 수천 회를 초과합니다. 이는 수명 주기를 크게 늘리고 MC 시스템의 유연성을 높입니다. 시스템 개발 단계와 실제 장치에서 작동하는 동안 MC 프로그램을 변경할 수 있기 때문입니다.

RAM은 데이터를 저장하는 데 사용되는 임의 액세스 메모리이므로 이 메모리를 데이터 메모리라고도 합니다. RAM의 읽기 및 쓰기 사이클 수는 제한이 없지만 공급 전압이 꺼지면 모든 정보가 손실됩니다.

MK 8051의 아키텍처는 프로그램과 데이터 메모리를 별도로 사용하며 Harvard라고 합니다. 일반적으로 이 아키텍처는 프로그램 및 데이터 메모리 액세스 경로를 분리하여 시스템 성능을 향상시키는 데 사용되지만 8051에서는 동일한 크기를 요구하지 않는 프로그램 및 데이터 메모리를 달성하는 데 사용되었습니다. von Neumann 아키텍처인 Harvard의 대척점은 프로그램과 데이터를 공유 메모리에 저장하는 것과 관련이 있으며 컴퓨터용으로 설계된 마이크로프로세서에 가장 일반적입니다. 마이크로프로세서의 x86 제품군이 그 예입니다.

타이머 TO, T1은 다양한 기능을 수행하도록 프로그래밍할 수 있는 32비트 프로그래밍 가능 타이머/카운터입니다. 시간 간격의 정확한 형성, MK 출력의 펄스 계산, 일련의 펄스 형성, 직렬 통신 채널의 트랜시버 클럭킹에 사용할 수 있습니다. 타이머/카운터는 인터럽트 요청을 생성하고 CPU를 전환하여 이벤트에 서비스를 제공하고 주기적으로 타이머 상태를 폴링할 필요가 없도록 할 수 있습니다. MK의 주요 응용 프로그램은 실시간 시스템에서 찾을 수 있으므로 타이머/카운터는 필수 요소입니다. 일부 수정에서는 타이머 수가 XNUMX에 도달합니다.

직렬 포트는 MK와 외부 세계 간의 정보 교환을 위한 채널입니다. 이러한 통신 채널은 최소 수의 크리스탈 핀을 차지하므로 최소한의 하드웨어 비용으로 상당한 거리에서 통신을 제공합니다. 8051은 RS-232C 표준 프로토콜을 지원하는 UART(Universal Asynchronous Serial Transceiver)를 구현하여 이 MK와 개인용 컴퓨터 간의 통신을 구성할 수 있습니다. RS-232C 외에도 임베디드 시스템 세계에서 가장 널리 사용되는 프로토콜은 RS-485입니다. I2C(XNUMX선 양방향 버스). SPI(XNUMX선 직렬 주변 장치 인터페이스). Bitbus(직렬 제어 버스), CAN(제어기 간 네트워크 인터페이스), USB(범용 직렬 버스) 및 기타. 거의 모든 유형의 직렬 채널에 대해 오늘날 구성에 해당 직렬 포트가 있는 MK를 찾을 수 있습니다.

병렬 I/O 포트는 모든 MCU의 필수 부분이기도 합니다. 일반적으로 센서 및 액추에이터와 같은 즉각적인 환경과 통신하는 데 사용됩니다.

MK 병렬 포트의 중요한 기능은 여러 기능을 수행하도록 프로그래밍할 수 있다는 것입니다. 예를 들어 8051에서 포트 핀 P0 및 P2는 일반 정적 I/O 레지스터로 사용하거나 추가 프로그램 메모리, 데이터 메모리, I/O 장치와 같은 외부 장치를 연결하기 위한 주소 및 데이터 버스로 사용할 수 있습니다. 이는 MK 아키텍처 유연성을 제공합니다. RXNUMX 포트는 정적 I/O 레지스터로 사용하거나 직렬 채널, 타이머, 인터럽트 컨트롤러 등의 작동을 위한 특수 기능을 수행할 수 있습니다. 재프로그래밍 기능을 통해 설계된 장치에서 MC의 모든 출력을 사용할 수 있습니다. 최대 효율로.

인터럽트 시스템은 MK의 가장 중요한 부분 중 하나입니다. 실시간 시스템의 특징은 외부 이벤트에 대한 응답 시간이 매우 중요한 매개변수라는 것입니다. 간단한 예를 들어 설명해 보겠습니다. 컴퓨터에서 수학적 계산을 할 때 보통 이러한 계산을 수행하도록 설계된 프로그램을 실행하고 컴퓨터의 메모리에 로드된 후 문제 설명을 입력하고 결과를 기다립니다. 이 경우 대기 시간은 근본적으로 중요하지 않습니다 (물론 이유 내에서). 컴퓨터의 느린 작동은 성 가실 수 있지만 결과에는 영향을 미치지 않습니다. 실시간 시스템은 개발 단계에서 계산된 매우 구체적인 외부 이벤트에 대한 제어 시스템의 응답 속도를 가정합니다. 계산된 것 이상의 지연은 여기에서 단순히 용납될 수 없으며 치명적인 결과를 초래할 수 있습니다.

이벤트에 대한 빠른 응답 문제는 인터럽트 시스템을 구성하여 해결됩니다. 이는 각 이벤트에 대해 MK의 반응을 형성하는 별도의 코드 "조각"이 개발됨을 의미합니다. 이 코드 "조각"은 인터럽트 요청 루틴(인터럽트 루틴이라는 용어는 간결함을 위해 종종 사용됨)이라고 하며 알려진 주소의 프로그램 메모리에 배치됩니다. 주어진 이벤트가 발생하는 순간 이에 대한 신호가 인터럽트 컨트롤러의 입력으로 전송됩니다. 후자는 발생한 이벤트에 대한 입력 신호와 이 이벤트의 인터럽트 요청 처리 루틴에 대한 진입점이 위치한 프로그램 메모리 주소 사이에 일대일 대응을 설정하는 장치입니다. 컨트롤러는 현재 프로그램의 CPU 실행을 중단하고 인터럽트 서비스 루틴 실행으로의 전환을 시작합니다. 이벤트가 발생한 순간부터 인터럽트 루틴의 첫 번째 명령 실행이 시작될 때까지 경과된 시간을 이벤트에 대한 MC의 응답 시간이라고 합니다. 처리가 완료되면 CPU는 자동으로 중단된 프로그램 실행으로 돌아갑니다.

인터럽트 컨트롤러의 또 다른 기능은 이벤트의 우선 순위를 지정하는 것입니다. 우선 순위의 개념은 실행 중인 인터럽트 루틴이 현재 이벤트보다 우선 순위가 높은 경우에만 다른 이벤트에 의해 중단될 수 있음을 의미합니다. 그렇지 않으면 CPU는 이전 이벤트 처리를 마친 후 새 이벤트 처리로 이동합니다. MK 8051의 일부인 인터럽트 컨트롤러에는 XNUMX개의 이벤트 입력이 있습니다. 외부 장치에서 XNUMX개, 타이머에서 XNUMX개, 직렬 채널에서 XNUMX개입니다.

일반적으로 MK에 대해 이야기할 때 항상 그것이 속한 가족을 언급합니다. 한 제품군에는 명령어 시스템, CPU 작동 시퀀스 다이어그램, 프로그램 메모리 및 데이터 메모리 구성, 인터럽트 시스템 및 기본 주변 장치 세트와 같은 개념 세트로 이해되는 동일한 코어를 가진 제품이 포함됩니다. . 실제로 Fig. 1은 8051 제품군의 수백 가지 다른 수정 사항을 만드는 기초가 된 핵심을 보여줍니다.

다양한 대표자들 간의 차이점은 주로 주변 장치의 구성과 프로그램 또는 데이터 메모리의 양에 있습니다. MK가 해결하는 작업 범위부터. 매우 광범위하여 제조업체는 가장 다양한 소비자 요구를 충족시키기 위해 많은 수정 사항을 출시하려고 노력하고 있습니다. 많은 가족에서 수정 횟수가 XNUMX에 가까워지거나 이 값을 초과하기도 합니다.

제품군의 가장 중요한 기능은 포함된 모든 MK의 이진 코드 수준에서의 소프트웨어 호환성입니다. 이를 통해 시스템 개발자는 소프트웨어 개발 손실 없이 한 마이크로컨트롤러 제품군을 다른 제품군으로 교체할 수 있습니다. 당연히 가족에 포함된 품종의 수가 많을수록 최상의 옵션을 선택할 가능성이 높아지고 이 가족은 개발자에게 더 매력적입니다. 새로운 개발을 위해 MC 제품군을 올바르게 선택하는 문제는 전략적인 문제입니다. 다른 제품군의 제품 간 소프트웨어 전송 문제는 매우 복잡하고 고급 언어를 사용하더라도 항상 해결이 가능한 것은 아니기 때문입니다. 큰 손실 없이 말입니다. 시리즈의 다음 기사에서 선택 기준 문제로 돌아갈 것입니다.

프로그램 개발은 MK 기반 장치 생성에서 가장 중요한 단계 중 하나입니다. 그것 없이는 그는 "죽었다"고 외부 영향에 반응하지 않으며 제어 신호를 발행하지 않습니다.

전원이 켜지면 MCU는 연결된 프로그램 메모리(일반적으로 ROM)에 있는 프로그램을 즉시 실행하기 시작합니다. 실행은 고정 주소에서 시작되며 대부분 32입니다. 주소는 단순히 ROM 셀 번호입니다.프로세스는 다음과 같이 수행됩니다: MCU는 프로그램 메모리에 저장된 번호를 읽고 기계 코드라고 하는 값에 따라 ALU 레지스터의 내용에 대해 특정 작업을 수행합니다. . 메모리, 포트 등. 예를 들어 프로그램 메모리에서 숫자 2H를 읽습니다. MK는 입력 포트 번호 XNUMX에서 값을 읽고 누산기 레지스터에 배치해야 함을 "이해"합니다. 종종 XNUMX바이트는 동작을 설명하기에 충분하지 않으며 MK는 메모리에서 추가 바이트를 읽습니다.

동작을 수행한 후 MK는 순서대로 다음 메모리 셀에서 값을 읽습니다. MK가 수행하는 하나의 동작을 설명하는 바이트 집합을 기계 명령(명령)이라고 하며 MK가 " 이해한다”. - 명령 시스템 또는 명령어 세트(Instruction Set). 다른 가족의 MK는 다른 명령 시스템을 가지고 있습니다. 즉, 유사한 작업을 수행하지만 기계 코드는 다른 의미를 갖습니다.

따라서 MK 프로그램은 일련의 숫자이며 그 값은 수행할 작업을 나타냅니다. 프로그램 개발의 결과는 이러한 기계 코드를 포함하는 컴퓨터 파일입니다. ROM 프로그래머의 도움으로 MK 프로그램 메모리에 입력("봉제")됩니다.

이 기계 코드 시퀀스의 구성은 어떻습니까? MK 프로그램입니까? 개발자가 실제로 기계 코드의 값을 기억하고 시퀀스를 수동으로 설정해야 합니까? MK의 첫 번째 프로그램은 이런 식으로 만들어졌습니다. 기계 코드에서 프로그래밍이라고 불렀습니다. 이러한 프로그램 개발 방식은 시간이 많이 걸리고 비효율적임이 분명합니다.

프로그램 작성 프로세스를 용이하게 하는 첫 번째 단계는 소위 어셈블리 언어의 번역기인 컴퓨터 프로그램이었습니다. 아이디어는 MK가 수행하는 작업을 사람이 더 읽기 쉬운 언어로 표현한 다음 이러한 표현을 기계 코드로 변환하는 것이었습니다. 포트 2의 값을 읽고 누산기에 넣는 위의 예제 기계 명령에서 취해진 조치는 대략 MOV A.P2로 표시될 수 있습니다.

여기서 명령어 니모닉이라고 하는 MOV(영어 이동에서 유래)라는 단어는 값의 전송을 나타내며 피연산자라고 하는 A와 P2는 값을 가져올 위치와 값을 넣을 위치를 나타냅니다. 이 표기법을 어셈블리 언어라고 합니다. 그것에 쓰여진 프로그램. 어셈블리 언어 구성을 기계 코드로 변환하는 번역기에 의해 처리됩니다.

어셈블리 언어 프로그래밍은 오늘날까지 널리 퍼져 있습니다. 널리 사용되는 모든 마이크로컨트롤러 제품군에 대한 어셈블리 언어 번역기는 무료입니다.

기계 코드로 프로그래밍하는 것보다 어셈블러로 프로그래밍하는 것이 분명한 이점이 있음에도 불구하고 대부분의 경우 어셈블러는 개발자의 작업을 구현하기에 충분히 효율적이지 않습니다. 사실 MK는 정수에 대한 산술 연산, 전송, 비교 등과 같은 가장 간단한 연산만 수행할 수 있습니다. 예를 들어 부동 소수점 수에 대한 연산과 같은 보다 복잡한 작업의 경우 개발자는 불편한 특수 루틴을 작성해야 했습니다. 사용하기 번거롭고. MK 프로그램 개발의 다음 단계는 고급 프로그래밍 언어의 번역기 또는 컴파일러와 같은 특수 컴퓨터 프로그램을 만드는 것입니다. 가장 널리 사용되는 프로그래밍 언어는 C입니다.

번역가의 출현으로 MK 프로그램 개발이 크게 단순화되었습니다. 예를 들어 프로그램에 두 개의 숫자를 추가해야 하는 경우 이제 a = b + c를 작성하는 것으로 충분합니다. 번역기는 이 표현을 변수 a, b 및 c의 유형에 따라 필요한 일련의 기계 명령어로 변환합니다.

고급 언어를 사용하면 개발자가 특정 마이크로 컨트롤러의 명령 시스템에서 추상화하고 사람이 더 간단하고 이해하기 쉬운 범주에서 작동할 수 있습니다. 개발자는 마이크로컨트롤러의 일반 아키텍처만 알면 됩니다. 과제 해결에 필요한 임베디드 주변기기의 동작원리와 C언어로 프로그래밍하는 기술. 프로그램의 기능적 내용은 C 언어 도구를 사용하여 구현됩니다. 여기에는 다양한 서브루틴(함수)이 많이 포함되어 있습니다: 산술, 문자열 작업용 등.

C 언어로 MK용 프로그램을 만드는 과정을 생각해 보십시오. 개발 프로세스에는 개인용 컴퓨터가 필요합니다.

작업을 이해한 후 개발자는 텍스트 편집기를 사용하여 C 언어로 프로그램의 소스 코드를 작성합니다. 그런 다음 C 번역기 프로그램을 실행합니다. 소스 텍스트를 중간 개체 파일로 변환합니다. 변환기는 명령줄에 지정된 일련의 키(해당 설명은 문서에서 찾을 수 있음)로 제어됩니다. 개발자가 프로그램을 작성하는 동안 구문 오류를 범한 경우 번역자는 소스 텍스트 파일의 각 행 번호 표시와 함께 오류 목록을 화면에 표시합니다. 개발자는 모든 버그를 수정해야 합니다. 번역에 성공한 후 목적 파일은 링커(linker)에 의해 처리되어야 하며, 이는 프로그램 파일을 기계어 코드로 생성합니다.

고급 언어를 사용할 때 한 가지 문제가 있습니다. 컴파일러는 언어 구조를 기계 코드로 변환하는 일을 담당하며 이 변환은 다양한 수준의 효율성으로 수행될 수 있습니다. 효율성 기준은 기계어 코드의 크기(물론 작을수록 좋습니다)와 기계어 코드의 속도입니다. 작고 빠른 코드를 생성하는 작업은 매우 어려우며 컴파일러의 전반적인 품질은 해당 솔루션에 따라 다릅니다. 최신 C 컴파일러는 특정 MK의 아키텍처 기능인 다단계 최적화를 사용하여 일부 서브루틴이 어셈블러로 작성된 혼합 프로그램을 만들 수 있습니다.

설명된 프로세스는 다소 번거로워 보입니다. 개발자는 다양한 프로그램(텍스트 편집기, C 컴파일러, 제어 키를 기억하는 링커, 파일의 줄 번호로 프로그램의 오류 검색)을 수동으로 시작해야 합니다. MK용 프로그램 개발자는 통합환경개발(Integrated Development Environment. IDE)의 등장이었다. 통합개발환경은 프로그램 개발의 모든 단계를 함께 연결하는 컴퓨터 프로그램이다. 어셈블러 및 C, 링커, 디버거, MK에 대한 참조 정보 및 개발자에게 필요한 기타 도구. 변환기, 링커 및 기타 구성 요소의 구성은 명령줄에서 스위치를 지정하는 것이 아니라 대화 상자의 형태로 수행됩니다. 올바른 위치에 있는 상자만 선택하면 됩니다.

통합 소프트웨어 개발 환경의 출현으로 MC용 프로그램 작성의 효율성이 더욱 높아졌으며 개발자는 해결 중인 문제의 본질에 집중하고 구현의 특정 세부 사항을 추상화할 수 있었습니다.

통합 소프트웨어 개발 패키지는 여러 회사에서 생산됩니다. 다른 제조업체의 패키지는 기능이 비슷하지만 서비스 기능, 사용 용이성 및 생성된 기계 코드의 품질이 다릅니다.

가장 많이 사용되는 개발 키트의 주요 특징이 표에 나와 있습니다.

초보자와 그 이상을 위한 마이크로컨트롤러
(확대하려면 클릭하십시오)

MK용 프로그램의 심볼릭 디버깅

드문 경우지만 포함된 오류로 인해 MK용 프로그램은 처음부터 작업을 시작하지 않으며 디버깅이 필요합니다. 개발자는 다양한 방식으로 디버깅 문제를 처리합니다. 그들 중 일부는 소스 텍스트를 신중하게 분석하고 MK 출력에서 ​​일어나는 일을 오실로스코프를 사용하여 확인하면 모든 오류를 수정할 수 있다고 생각합니다. 이 방법은 개발자가 광범위한 경험이 있고 MK가 완벽하게 사용된다는 것을 알고 있으며 항상 올바른 코드(일반적으로 어셈블러)를 생성하는 번역기와 충분한 시간이 있는 경우에 적용할 수 있습니다.

다른 사람들은 실제로 집에서 만든 디버그 모니터를 사용합니다. 기본 프로그램과 함께 MK에 로드되는 특수 서브루틴 세트입니다. 후자는 검사점에서 모니터 서브루틴을 호출하고 MK 자원의 상태에 대한 정보를 제공합니다. 거의 모든 프로그램을 이 방법으로 디버깅할 수 있지만 중요한 단점이 있습니다. 첫째, 디버그 모니터에는 작업을 위한 MC 리소스의 일부가 제공되어야 합니다. 적어도 코드 주소 공간의 일부와 특정 수의 스택 셀, 그리고 최대로 RAM 및 주변 장치의 일부도 제공되어야 합니다. MC 장치. 모니터에서 정보를 표시하는 데 사용됩니다. 기본 프로그램 자체가 MK를 적극적으로 로드하는 경우 디버그 모니터에 리소스를 할당하기 어려울 수 있습니다. 예를 들어, PIC 16С5х(Microchip) MK에는 스택 셀이 두 개뿐이며 디버그 모니터 서브루틴 호출을 사용하기 어렵습니다. 둘째, 모니터 호출은 기본 프로그램에서 시간이 걸리므로 프로그램의 시간이 중요한 부분에서 호출할 수 없습니다. 셋째, 디버그 모니터를 만드는 것 자체에는 시간이 걸립니다.

MK용 프로그램을 디버깅하는 가장 효과적인 방법은 시뮬레이터 디버거 및 인서킷 에뮬레이터를 포함하는 전문적인 전문 디버깅 도구를 사용하는 것입니다.

그러한 디버거가 제공하는 가능성에 대해 이야기하기 전에 프로그램의 소스 텍스트가 기계 코드로 변환되는 컴파일러 선택을 다룰 필요가 있습니다. 대부분의 경우 고급 언어로 프로그래밍하는 것이 좋습니다. 생성된 코드의 크기와 속도에 매우 엄격한 요구 사항이 부과되는 경우 어셈블러를 사용해야 합니다. 현재 이러한 경우는 거의 항상 더 많은 메모리로 "더 빠른"MK를 사용할 수 있기 때문에 점점 줄어들고 있습니다. 또한 최신 교차 도구 패키지를 사용하면 일부 모듈이 C로 작성된 혼합 프로그램을 쉽게 작성할 수 있습니다. 가장 성능에 중요한 부분은 어셈블러에 있습니다. C 컴파일러는 어셈블리 명령을 소스 코드에 삽입할 수도 있습니다.

어셈블러 프로그래밍과 비교하여 C 프로그래밍의 이점은 무엇입니까? 간단히 말해서 다음과 같습니다.

  • 대용량 작업에 대해 걱정할 필요가 없습니다. 컴파일러는 a+b 작업에 대한 올바른 코드를 자동으로 생성합니다. a와 b가 8, 16, 32비트 숫자, 부동 소수점 숫자 및 서로 다른 유형의 짝수인 경우;
  • 컴파일러에는 다양한 수학 연산(삼각 함수, 지수 등)을 구현하는 광범위한 함수(서브루틴) 라이브러리가 함께 제공됩니다. 문자열, 형식화된 입력/출력 등으로 작업합니다.
  • 많은 프로그래머 오류가 컴파일러에 의해 진단됩니다. 예를 들어 잘못된 매개변수 개수 또는 잘못된 유형의 매개변수를 함수에 전달하거나 return 문을 잊어버리는 등의 작업을 허용하지 않습니다.
  • C로 작성된 소스 코드는 훨씬 읽기 쉽고 간결하며 수정하기 쉽습니다.
  • C로 작성된 프로그램 다른 가족의 MK로 더 쉽게 이전됩니다.

고급 언어로 작성된 프로그램을 효과적으로 디버깅하려면 개발자는 프로그램에서 사용되는 데이터를 표시하고 소스 코드에서 프로그램 실행을 추적할 수 있는 적절한 기회를 제공하는 디버깅 도구를 마음대로 사용해야 합니다. . 이것이 가능하려면 두 가지 조건이 필요합니다.

  • 컴파일러는 프로그램의 구조와 프로그램이 사용하는 데이터에 대한 충분한 정보를 제공해야 합니다. 이 정보를 기호(디버깅)라고 합니다.
  • 디버거는 이 정보를 해석할 수 있어야 합니다. 모든 최신 컴파일러와 어셈블러는 어떤 형태로든 기호 정보를 생성하지만 범용 형식은 아직 개발되지 않았으며 각 컴파일러는 자체 형식으로 생성합니다. 이것은 여러 문자 형식을 "이해"할 수 있어야 하는 디버거에게 추가적인 어려움을 만듭니다.

이제 디버거가 기호 정보를 해석하는 방법과 이와 관련하여 사용자에게 어떤 옵션을 제공해야 하는지 살펴보겠습니다.

소스 텍스트에 따라 프로그램 실행 추적

일반적으로 한 줄의 소스 텍스트는 컴파일러에 의해 여러 기계 명령어로 변환됩니다. 어셈블러 프로그램도 거의 항상 번역될 때 여러 프로세서 명령으로 확장되는 매크로를 포함합니다. 코드의 디스어셈블러를 사용하여 이러한 프로그램을 디버깅하는 것은 불편하므로 컴파일러는 디버그 정보에 행 번호 테이블을 삽입합니다. 여기에는 프로그램 코드의 절대 주소에 대한 소스 텍스트 줄 번호 및 소스 텍스트 파일 이름의 대응에 대한 정보가 들어 있습니다. 디버거는 프로그램의 소스 코드를 화면에 표시합니다. 이 표에 따라 "라인별로" 프로그램을 실행할 수 있으며 현재 라인에 대해 컴파일러가 생성한 모든 기계 명령어를 한 단계에서 실행할 수 있습니다.

줄 번호 테이블을 사용하면 프로그램 텍스트와 함께 컨텍스트 작업을 수행할 수도 있습니다. 예를 들어 "커서까지" 실행(예: 소스 텍스트의 사용자 지정 위치), 지정된 줄에 중단점 설정 등이 있습니다. 컨텍스트 작업 개발자가 소스 텍스트의 줄에 해당하는 주소를 알 필요가 없기 때문에 편리합니다. 디버거 자체가 테이블에서 주소를 결정합니다. 또한 디버거는 서브루틴, 함수 및 코드 레이블의 주소를 "알고" 이름으로 함수의 소스 텍스트를 찾을 수 있어야 합니다.

디버깅하는 프로그램에서 사용된 데이터 표시

전체 디버깅을 위해 개발자는 프로그램이 조작하는 데이터를 언제든지 볼 수 있어야 합니다. 디버거는 프로그램에서 사용하는 모든 데이터를 가장 적절한 방식으로 표시할 수 있어야 합니다.

일반적으로 개발자는 프로그램에서 명명된 데이터를 사용합니다. 즉, 프로그램에서 사용되는 각 개체에 이름이 지정됩니다. 객체는 단순한 메모리 셀에서 구조, 배열 등과 같은 고급 언어의 복잡한 구조에 이르기까지 다양한 복잡성을 가질 수 있습니다.

조립 프로그램의 데이터

조립 프로그램은 대부분 단순한 데이터, 즉 메모리 셀을 사용합니다. 배열도 사용됩니다. 간단한 데이터를 올바르게 표시하려면 디버거가 다음을 "알아야" 합니다.

  • 개체 이름:
  • 메모리에 있는 객체의 주소;
  • 개체가 있는 MK 주소 공간입니다. 많은 마이크로컨트롤러에는 둘 이상의 데이터 영역이 있습니다. 예를 들어 MCS-51 제품군에는 내부 데이터 메모리, 외부 데이터 메모리 및 비트 공간이 있습니다.
  • 개체의 비트, 즉 개체가 차지하는 바이트 수입니다. MCS-16 제품군과 같은 96비트 마이크로컨트롤러는 작동 방법을 "알고 있습니다." 8-. 16-. 32비트 데이터. 여기서 한 가지 중요한 점을 지적해야 합니다. 개발자에게는 개체의 논리적 크기가 중요합니다. 예를 들어 PIC 제품군(Microchip)의 16비트 MK는 바이트만 작동합니다. 예를 들어 프로그램에 16비트 카운터가 있어야 하는 경우 각 바이트를 개별적으로 조작해야 합니다. 그러나 디버깅할 때 프로그래머는 카운터의 각 바이트를 개별적으로 보는 것이 아니라 XNUMX비트 변수의 형태로 한 번에 두 바이트를 모두 보고 싶어합니다. 인기 있는 크로스 어셈블러는 그러한 기회를 제공하지 않습니다. 예외는 Fiton의 PASM-PIC 크로스 어셈블러로, 프로그램에서 바이트 크기, 워드, 더블 워드 및 이러한 개체의 배열 데이터를 선언할 수 있습니다. PASM-PIC으로 작성된 프로그램을 디버깅할 때. 모든 개체는 논리적 크기 및 구조에 해당하는 형식으로 표시됩니다.
  • 객체의 범위. 프로그램이 여러 모듈로 구성된 경우 프로그래머는 한 모듈 내에서 이름의 범위를 지역화할 수 있습니다. 따라서 다른 모듈에는 이름은 같지만 속성이 다른 개체가 있을 수 있습니다. 디버거는 어떤 개체가 활성 상태인지 "파악"하고 올바르게 표시해야 합니다. 그러나 서로 다른 모듈에서 동일한 이름을 사용하면 혼동과 오류가 발생하는 경우가 많습니다. 객체가 전역(PUBLIC)으로 선언되고 모든 모듈에서 볼 수 있으면 해석에 어려움이 없습니다.

위의 정보로 디버거는 사용자로부터 개체의 이름을 받은 후 유형에 따라 해당 값을 표시해야 합니다. 가장 "고급" 디버거는 개체의 나머지 특성을 추가로 표시할 수 있습니다.

고급 언어로 된 프로그램의 데이터

고급 언어에서 사용되는 객체를 표시하는 것은 다양한 객체 구조, 메모리에 저장되는 방식 및 범위로 인해 훨씬 ​​더 어렵습니다. 예를 들어 개발자들 사이에서 가장 인기있는 C 언어를 사용합니다.

물체의 구조

길이가 다른 단순 변수 외에도 C 프로그램은 부동 소수점 변수, 구조체(struct), 유니온 또는 유니온(union), 포인터, XNUMX차원 및 다차원 배열을 사용합니다. 후자는 간단한 개체와 복잡한 개체(구조, 공용체, 포인터)로 구성될 수 있습니다.

프로그램에서 복잡한 개체를 사용하는 것은 확실히 편리합니다. 그러나 구조가 복잡하기 때문에 디버깅 단계에서 적절하게 표시할 수 있는 것이 매우 바람직합니다. Fiton의 디버거에서 복잡한 개체는 압축(요소 값 목록) 및 확장된 형식으로 표시될 수 있으며 각 배열 요소 및/또는 구조 구성원의 주소, 값 및 유형을 나타냅니다. 다른 컴파일러에서 포인터 구현은 다릅니다. MK가 일반적으로 여러 개의 주소 공간을 가지고 있다는 사실은 포인터로 작업할 때 주소 외에도 포인터가 가리키는 주소 공간을 알아야 하기 때문에 추가적인 어려움을 만듭니다. 일부 구현에서는 주소 공간 식별자가 포인터 값의 일부이고, 다른 구현에서는 컴파일러가 이를 미리 "알고" 적절한 코드를 생성합니다.

또한 포인터의 주소 구성 요소는 크기가 8~32비트일 수 있습니다. 포인터 값을 표시할 때 디버거는 각 컴파일러에서 해당 구현의 모든 세부 정보를 "알아야" 합니다.

메모리에서 객체의 위치를 ​​찾는 방법

프로그램 실행 중에 주소가 변경되지 않는 정적 개체 외에도 고급 언어로 작성된 프로그램에는 MK 스택에 메모리가 일시적으로 할당되는 소위 자동 개체가 있을 수 있습니다. . 이러한 개체의 주소는 절대적인 것이 아니라 프로그램 실행 단계에서 동적으로 결정됩니다. 일반적으로 스택 프레임 포인터(기본 포인터 또는 BP)라고 하는 일부 정적 변수의 현재 값에서 측정됩니다. BP의 값은 런타임에 프로그램에 의해 동적으로 생성되기 때문에 자동 개체의 값은 해당 범위 내에서만, 즉 올바른 BP 값으로만 ​​사용할 수 있습니다. 디버거는 자동 개체의 값을 표시할 때 주소가 결정되는 방식을 "알고" BP 값의 정확성을 모니터링해야 합니다.

MK 레지스터에 일시적으로 변수를 배치하는 것도 가능합니다. 이 경우 디버거는 어떤 변수가 어떤 레지스터에 얼마 동안 배치되는지 "알고" 있어야 합니다. 그리고 마지막으로 동일한 객체가 수명 동안 메모리에 배치되는 방식을 한 번 이상 변경하는 상황이 종종 있습니다. 예를 들어, 함수가 레지스터에서 하나 이상의 매개변수를 받은 다음 스택에 푸시할 때 이런 일이 발생할 수 있습니다.

물체의 시야

어셈블러 프로그램에서와 마찬가지로 C 프로그램에는 모든 모듈에서 이름으로 액세스할 수 있는 전역 개체와 모듈에서 지역화된 개체(이러한 개체는 정적으로 선언됨)가 있습니다. 그러나 자동 및 레지스터 변수는 디버거가 해당 값을 표시하기 어렵게 만듭니다. 사실입니다. 첫째, 자동 개체의 수명은 해당 범위에 의해 제한되고 둘째, 둘러싸는 범위는 동일한 이름을 가진 자체 자동 개체를 가질 수 있습니다. 여러 중첩된 범위가 있는 함수의 예를 통해 이를 설명하겠습니다.

초보자와 그 이상을 위한 마이크로컨트롤러

"a"라는 변수는 함수 f가 실행되는 동안 존재하지만 함수의 어느 부분이 실행되는지에 따라 "a"라는 이름은 다른 변수를 나타냅니다. 함수 f를 추적할 때 디버거는 활성화된 변수에 따라 해당 값을 올바르게 표시해야 합니다.

프로그램을 만들 때 개발자는 프로그램에서 사용한 개념 구현의 세부 사항에 신경 쓰지 않습니다. "당연한" 범주 측면에서 그는 종종 컴파일러 및 디버거 개발자가 이를 구현하는 것이 얼마나 어려운지 의심하지 않습니다. 후자는 단순하고 직관적인 인터페이스, 풍부한 기능 및 특정 MK의 아키텍처 기능 및 기능 구현과 관련된 모든 것에 대한 자세한 연구를 동시에 하나의 셸에 결합하는 문제를 해결해야 합니다. 디버거가 해결 중인 문제의 복잡성에 적합한 디버깅 도구를 개발자에게 제공하지 않으면 개발자는 필연적으로 생산성을 잃게 됩니다. 우리 중 누가 소스 텍스트에서 성가신 오류나 오타를 찾기 위해 몇 시간이고 며칠을 보내지 않아도 되었습니까?!

마이크로프로세서 시스템을 개발하고 만드는 과정에서 머지않아 그것이 마침내 하드웨어로 구체화되고 생명의 징조를 보이기 시작하는 순간이 온다. 그러나 대부분의 경우 이러한 징후는 예측할 수 없는 것으로 판명되고 시스템은 자체 수명을 시작합니다. 많은 프로그래머는 아마도 모든 새 프로그램에 버그가 있다는 데 동의할 것입니다. 이것이 부분적으로 새로운 MK가 처음에 "블랙" 상자처럼 작동하는 이유입니다.

시스템 디버깅 프로세스를 용이하게 하기 위해 전체 클래스의 도구가 개발되었습니다. 주요 목적은 디버깅된 MK의 기능 프로세스를 "투명"하게 만드는 것입니다. 즉, 쉽게 제어하고 임의로 제어하고 개발자의 의지에 따라 수정할 수 있습니다. 훌륭한 전문 툴킷은 개발자에게 많은 서비스를 추가로 제공하여 작업을 크게 촉진하고 일상적인 작업을 제거할 수 있습니다.

주요 디버깅 도구에는 회로 내 에뮬레이터, 소프트웨어 시뮬레이터, 개발 보드(평가 보드), 디버그 모니터 및 ROM 에뮬레이터가 포함됩니다. 결합 된 장치와 세트도 있습니다.

회로 내 에뮬레이터

회로 내 에뮬레이터(ICE)는 실제 장치에서 에뮬레이트된 프로세서를 대체할 수 있는 하드웨어-소프트웨어 도구입니다. VSE는 가장 강력하고 다양한 디버깅 도구입니다.

기능적으로 VE는 외부 컴퓨터(일반적으로 IBM 호환 PC)에 연결되어 자율적으로 작동하는 것으로 구분됩니다. 후자는 자체 컴퓨팅 리소스와 입출력 시설을 갖추고 있으므로 동일한 기능을 가지고 전자보다 훨씬 비싸고 동일한 가격으로 기능 및 서비스 기능 측면에서 훨씬 열등합니다.

디버깅 중인 시스템에서 VSE는 일반적으로 케이블을 통해 특수 에뮬레이션 헤드에 연결됩니다. 비교적 최근에는 이러한 헤드가 본체와 구조적으로 결합되어 MK 대신 디버깅중인 시스템에 삽입되는 VSE 모델이 등장했습니다. 후자를 제거할 수 없는 경우(핀이 보드에 납땜됨) VSE 사용이 허용됩니다. 단, 이 MC에는 모든 핀이 세 번째(높은 임피던스) 상태에 있는 디버그 모드가 있어야 합니다. 이 경우 VSE를 연결하기 위해 에뮬레이트된 MK의 출력에 직접 연결된 특수 클립 어댑터가 사용됩니다.

최소. VSE에는 MK 에뮬레이션 노드인 디버거가 포함되어 있습니다. 에뮬레이션 메모리 및 중단점 하위 시스템. 고급 TSE에는 트레이서, 중단점 프로세서, 프로파일러(프로그램 코드 효율성 분석기), 실시간 타이머, 에뮬레이트 프로세서의 리소스를 "즉석에서" 읽고 수정할 수 있는 소프트웨어 및 하드웨어 도구가 추가로 포함될 수 있습니다. , 동기화 관리를 제공하고 통합 개발 환경인 멀티프로세서 시스템에서 에뮬레이션에 필요한 소프트웨어 및 하드웨어 도구.

디버거는 개발자와 디버깅 도구 사이의 다리 역할을 합니다. 좋은 디버거는 디버깅 중인 프로그램이 시스템 메모리에 로드되고 모든 레지스터와 메모리의 상태와 내용(필요한 경우 수정 사항)이 모니터에 표시되고 에뮬레이션 프로세스가 제어되도록 합니다.

보다 강력한 디버거(일반적으로 상위 수준 또는 상위 수준 디버거라고 함)에서도 이를 허용합니다.

  • 기호 디버깅을 수행합니다(컴파일러가 제공하는 특수 정보를 사용하는 디버거가 모든 기호 변수, 배열 및 구조의 주소를 "알고" 있기 때문입니다). 이 경우 사용자는 주소를 기억하지 않고도 사람이 더 쉽게 받아들일 수 있는 기호 이름으로 작업할 수 있습니다.
  • 디스어셈블된 텍스트뿐만 아니라 고급 언어로 작성된 프로그램의 소스 코드와 자체 주석까지 제어하고 분석합니다.

이러한 디버거를 통해 사용자는 프로그램의 진행 상황을 동시에 제어하고 소스 텍스트, 기계 코드의 프로그램 이미지 및 에뮬레이트된 마이크로 컨트롤러의 모든 리소스 상태 간의 대응 관계를 볼 수 있습니다.

고수준 디버거는 완전하고 정확한 디버깅 정보를 제공하는 크로스 컴파일러가 사용되는 경우에만 모든 기능의 성능을 제공한다는 점에 유의해야 합니다. 동시에 프레젠테이션의 형식이 디버거에 "익숙"합니다.

개발 중인 시스템의 ROM 대신 디버깅 프로세스에서 에뮬레이션 메모리가 사용됩니다. 또한 실제 시스템이나 레이아웃이 없을 때 프로그램을 디버깅할 수 있습니다. 디버깅 중인 프로그램을 변경해야 하는 경우 ROM을 다시 프로그래밍하는 대신 새 프로그램이나 수정된 ​​프로그램을 에뮬레이터의 메모리에 로드하는 것으로 충분합니다.

VSE가 있습니다. 이를 통해 사용자는 ROM 대신 에뮬레이션 메모리를 전체적으로 "대체"할 수 있을 뿐만 아니라 블록별로도 사용할 수 있습니다(일부 모델에서는 최소 블록 크기가 1바이트임). 사용자가 지정한 순서대로. 이를 위해 프로세서가 디버깅 중인 시스템의 ROM 내용과 TSE의 에뮬레이션 메모리 내용 모두에 액세스하는 데이터 메모리 및 프로그램 메모리의 배포를 설정하는 것으로 충분합니다. 이러한 메모리는 일반적으로 매핑 가능성이 있는 메모리라고 합니다.

트레이서는 프로세서와 동시에 작동하는 로직 분석기로 실행 중인 명령의 흐름과 선택된 외부 신호의 상태를 캡처합니다. 외부 신호뿐만 아니라 MC의 내부 리소스 상태도 추적할 수 있는 VSE가 있습니다. 예를 들어 레지스터. 이러한 장치에는 MK(에뮬레이션 크리스탈)의 특수 버전이 사용됩니다.

중단점 프로세서를 사용하면 일반적인 중단점 메커니즘과 달리 사용자 지정 조건이 충족될 때 프로그램 실행을 중지하거나 다른 작업(예: 추적 프로그램 시작 또는 중지)을 수행할 수 있습니다. 하드웨어 수준의 복잡성, 에뮬레이션되는 동안 프로세스는 실시간 규모에서 추론되지 않습니다. 일부 VSE 모델에서는 중단점 프로세서를 선택적으로 사용하여 트레이서를 동적으로 제어할 수 있습니다.

프로파일러(프로그램 코드 효율성 분석기)를 사용하면 디버깅된 프로그램 실행 결과를 기반으로 프로그램의 다양한 섹션에 대한 호출 수와 실행에 소요된 시간에 대한 정보를 얻을 수 있습니다. 프로파일러가 제공하는 통계 정보를 분석하면 프로그램의 "죽은" 섹션이나 과도한 스트레스 섹션을 식별할 수 있으며 결과적으로 디버깅 중인 프로그램의 구조를 최적화할 수 있습니다.

통합 개발 환경은 프로그램의 소스 코드 작성에서 컴파일 및 디버깅에 이르기까지 소프트웨어 개발의 모든 단계를 지원하고 소프트웨어 디버거-시뮬레이터 및 프로그래머와 간단하고 빠른 상호 작용을 제공하는 소프트웨어 도구 세트입니다.

VSE 소프트웨어 셸에 내장된 편집기, 프로젝트 관리자 및 제어 시스템의 존재는 개발자의 작업을 크게 용이하게 하여 많은 일상적인 작업에서 그를 구해 줍니다. 그에게는 프로그램 작성, 편집 및 디버깅 사이의 경계가 모호합니다. 소스 텍스트 편집에서 디버깅으로 또는 그 반대로의 전환은 해당 창의 활성화와 동시에 "투명하게" 수행됩니다. 프로젝트 관리자는 필요에 따라 자동으로 컴파일을 시작하고 해당 프로그램 인터페이스 창을 활성화합니다. 기존 시뮬레이터 디버거를 사용하여 프로젝트 디버깅을 쉽게 진행하거나 디버깅된 프로그램으로 ROM 플래싱을 시작할 수 있습니다.

일부 ITU는 사용자에게 다른 추가 기능을 제공합니다. 그중에서 특히 주목해야 할 것은 매우 구체적이지만 어떤 경우에는 근본적으로 중요한 경우 다중 프로세서 시스템 디버깅에 필요한 다중 에뮬레이터 컴플렉스를 구축하는 기능입니다 이러한 컴플렉스의 특징은 동기 제어입니다 (한 컴퓨터에서) 여러 에뮬레이터의.

일반적으로 디버깅된 장치의 기능을 제어하고 관리하는 TSE의 기능은 제한될 수 있습니다(예: 단계 모드에서 잘못된 인터럽트 처리, 직렬 포트 사용 금지 등). 또한 각 VSE 모델에는 지원되는 마이크로컨트롤러 및 컴파일러의 자체 목록이 있음을 기억해야 합니다.

그러나 대부분의 대중적인 마이크로컨트롤러의 경우 디버깅된 수정의 리소스 사용에 제한이 없는 VSE가 개발되었습니다. Fiton 회사의 PICE-51 모델을 예로 들어 이러한 ESS의 가능성을 설명합니다.

PICE-51은 FPGA(Programmable Logic IC)를 사용하여 만든 장치입니다. 이를 통해 VSE의 크기를 대폭 줄이고 에뮬레이션된 MC의 특성과 전기 및 주파수 특성의 편차를 최소화하여 33~3,3V의 공급 전압에서 최대 5MHz의 주파수에서 최대 에뮬레이션 정확도를 달성할 수 있었습니다. R╡SE-51의 리로드 가능한 하드웨어 구조는 MCS-51 제품군의 거의 모든 MK의 에뮬레이션을 제공합니다. 소프트웨어 지원은 Windows 환경에서 작동합니다.

PICE-51은 메인 보드, 특정 MK 그룹을 위한 교체 가능한 어댑터 및 특정 케이스 유형을 위한 교체 가능한 에뮬레이션 헤드로 구성됩니다. 트레이서와 중단점 프로세서는 메인 보드에 조립되고 특정 유형의 MK에 대한 에뮬레이션 프로세서는 교체 가능한 어댑터 보드에 설치됩니다. 에뮬레이션 헤드를 사용하면 장치를 사용자 보드의 DIP 및 PLCC 소켓에 설치할 수 있습니다. 출력 전압이 +5V(0,5A)인 블록 또는 디버깅 중인 장치에서 전원이 공급됩니다. 컴퓨터와의 통신은 갈바닉 절연 RS-232C 채널을 통해 115kbaud 속도로 이루어집니다.

PICE-51의 다른 기능은 다음과 같습니다.

  • 정확한 에뮬레이션 - MK 리소스의 사용자 프로그램 사용에 대한 제한이 없습니다.
  • 최대 256KB의 에뮬레이트된 프로그램 및 데이터 메모리. 뱅크 메모리 모델 지원. 1바이트의 정확도로 ESS와 사용자 장치 간의 메모리 할당
  • 프로그램 및 데이터 메모리 액세스를 위한 최대 512K 하드웨어 중단점,
  • 고급 언어로 프로그램 디버깅을 위한 하드웨어 지원;
  • XNUMX개의 임의의 외부 신호를 추적합니다.
  • XNUMX개의 사용자 장비 동기화 출력;
  • 즉석 액세스가 가능한 16비트의 64~64K 프레임(어레이) 버퍼가 있는 실시간 추적자. 추적 주소, 데이터, 제어 신호, 실시간 타이머 및 XNUMX개의 외부 사용자 신호;
  • 프로그래밍 가능한 추적 필터;
  • 주소, 데이터, 컨트롤, XNUMX개의 외부 신호, 실시간 타이머, 이벤트 카운터 및 지연 타이머의 조합으로 복잡한 에뮬레이션 정지 조건을 설정할 수 있는 기능이 있는 하드웨어 중단점 프로세서:
  • AND / OR / IF-THEN 조건에 대해 독립적으로 또는 조합하여 사용할 수 있는 XNUMX개의 복잡한 중단점;
  • 48비트 실시간 타이머;
  • "투명한" 에뮬레이션 - 에뮬레이트된 메모리, 중단점, 중단점 프로세서, 추적 버퍼, 실시간 타이머에 "즉시" 액세스합니다.
  • 에뮬레이트된 MK를 위한 제어 클럭 생성기. 500kHz에서 40MHz로 원활하게 변경하는 기능
  • VSE 장비의 자체 진단 시스템이 내장되어 있습니다. 매크로 어셈블러 МСА-51("Fiton"/"Microcosm")과 Keil Software 및 IAR Systems의 교차 도구 패키지를 위한 프로젝트 관리 수준의 프로그램 개발이 지원됩니다.
  • Intel의 ASM51 어셈블러, Intel의 PL/M 컴파일러, Avocet Systems의 어셈블러 및 C 컴파일러와 같은 컴파일러를 사용하여 생성된 프로그램의 전체 기능 기호 디버깅 지원. 하이테크. 태스킹 소프트웨어;
  • 하드웨어 구성 파일, 인터페이스 및 디버깅 옵션의 자동 저장 및 로드. PDS-51 시뮬레이터와 구성 파일의 호환성 및 PICE-51과 PDS-51 시뮬레이터 간의 프로젝트 이식성 보장
  • 모든 창에 대한 색상, 글꼴 및 기타 설정을 동시에 그리고 각 창에 대해 개별적으로 사용자 지정하는 기능.

이러한 광범위한 기능 덕분에 VSE는 가장 강력하고 다재다능한 디버깅 도구입니다.

시뮬레이터

시뮬레이터 - MK 및 해당 메모리의 작동을 시뮬레이션할 수 있는 소프트웨어 도구입니다. 일반적으로 디버거, CPU 모델 및 메모리로 구성됩니다. 고급 장치에는 내장형 주변 장치(타이머, 포트, ADC 및 인터럽트 시스템) 모델이 포함됩니다.

시뮬레이터는 널리 사용되는 모든 형식으로 프로그램 파일을 로드하고 시뮬레이션된 마이크로 컨트롤러의 리소스 상태에 대한 정보를 가능한 한 완전하게 표시할 수 있어야 합니다. 또한 다양한 모드에서 로드된 프로그램의 실행을 시뮬레이션할 수 있는 기회를 제공합니다. 디버깅하는 동안 모델은 프로그램을 실행하고 모델의 현재 상태는 컴퓨터 모니터 화면에 표시됩니다.

프로그램을 시뮬레이터에 로드합니다. 사용자는 단계별 또는 연속 모드에서 실행하고, 조건부 또는 무조건 중단점을 설정하고, 시뮬레이션된 마이크로 컨트롤러의 메모리 셀 및 레지스터의 내용을 제어하고 자유롭게 수정할 수 있습니다. 시뮬레이터를 사용하면 프로그램 실행 논리, 산술 연산의 정확성을 빠르게 확인할 수 있습니다.

사용되는 디버거 클래스에 따라 일부 시뮬레이터 모델은 프로그램의 고수준 기호 디버깅을 지원합니다.

시뮬레이터에는 외부 환경 인터페이스와 같은 여러 추가 소프트웨어 도구가 포함될 수도 있습니다. 이러한 인터페이스가 있으면 MK의 외부 환경 모델을 만들고 유연하게 사용할 수 있습니다. 주어진 알고리즘에 따라 디버깅된 프로그램을 작동하고 영향을 줍니다.

실제 시스템에서 MC는 일반적으로 연결된 외부 장치(센서)에서 정보를 읽고 처리하고 액추에이터에 제어 신호를 보내는 데 "참여"합니다. 간단한 시뮬레이터에서 센서의 동작을 시뮬레이션하기 위해서는 실제 시스템에서 센서가 연결된 주변기기 모델의 현재 상태를 수동으로 변경해야 합니다. 예를 들어 직렬 포트를 통해 바이트를 수신할 때 특정 플래그가 설정되고 바이트 자체가 특정 레지스터에 들어가면 이 두 작업을 모두 시뮬레이터에서 수동으로 수행해야 합니다. 일부 모델에서는 이 문제가 해결됩니다. 시뮬레이터에는 정보를 그래픽으로 표시하는 도구를 포함하여 MK에 연결된 외부 장치의 모델을 만드는 도구가 내장되어 있습니다.

소프트웨어 시뮬레이터의 분명한 특징은 로드된 프로그램이 실시간이 아닌 시간 단위로 실행됩니다. 그러나 저렴한 가격, 디버깅 중인 장치의 모형이 없는 경우에도 디버깅할 수 있는 기능은 소프트웨어 시뮬레이터를 매우 매력적인 디버깅 도구로 만듭니다. 또한 시뮬레이터를 통해서만 감지할 수 있는 전체 종류의 오류가 있다는 점에 유의해야 합니다.

디버그 모니터

디버그 모니터는 디버깅 중인 시스템의 메모리에 로드되는 특수 프로그램입니다. MK가 적용된 작업 외에도 디버깅 기능을 수행하도록 합니다.

  • 사용자 애플리케이션 코드를 모니터 없는 메모리에 로드합니다.
  • 중단점 설정;
  • 로드된 프로그램을 실시간으로 시작하고 중지합니다.
  • 사용자 프로그램을 단계별로 전달;
  • 메모리 및 제어 레지스터의 내용 보기, 편집.

모니터 프로그램은 디버깅 프로세스의 시각화 및 제어가 이루어지는 컴퓨터 또는 패시브 터미널과 "함께" 작동합니다. 이 접근법의 장점

  • 실시간 디버깅 기능을 유지하면서 매우 낮은 비용, 주요 단점;
  • 디버깅 및 통신 절차를 위한 MK 리소스의 산만함(모니터가 일부 메모리, 인터럽트, 직렬 채널을 차지함). 최근 MK의 하드웨어 리소스를 거의 차지하지 않는 프로그램이 나타났습니다("ROM 에뮬레이터" 섹션에서 설명).

개발 보드

개발 보드, 또는 일반적으로 외국 문헌에서는 평가 보드(Evaluation Boards)라고 합니다. - 응용 시스템의 프로토타이핑을 위한 원본 생성자. 최근 많은 제조사에서 MK의 새로운 모델을 출시하고 있습니다. 제안 및 해당 개발 보드. 일반적으로 이것은 MK가 설치된 인쇄 회로 기판과 정상 작동에 필요한 모든 요소 및 컴퓨터와의 통신 시스템입니다. 일반적으로 보드는 개발 중인 사용자 장치를 실장할 수 있는 여유 공간을 제공합니다. 때로는 회사에서 권장하는 추가 장치(ROM, RAM, LCD 디스플레이, 키보드, ADC 등)를 설치하기 위한 기성품 "배선"도 있습니다. 사용자가 수정한 보드는 소규모 제품(5...20개)에 내장된 단일 보드 컨트롤러로 유리하게 사용할 수 있습니다.

사용자의 편의를 위해 개발 보드에는 디버그 모니터를 기반으로 한 간단한 디버깅 도구도 장착되어 있습니다. 여기에서 두 가지 접근 방식이 등장했습니다. 하나는 MK에 사용됩니다. 외부 버스가 있고 두 번째는 버스가없는 MK의 경우입니다.

첫 번째 경우 디버그 모니터는 ROM 칩으로 제공됩니다. 개발 보드의 특수 소켓에 설치됩니다. 이 보드에는 사용자 프로그램용 RAM과 컴퓨터 또는 터미널과의 통신 채널도 있습니다. MK MCS-51 제품군을 위해 인텔에서 개발한 개발 보드가 그 예입니다.

두 번째 경우 개발 보드에는 MK의 내부 ROM을 위한 프로그래밍 시스템이 내장되어 있습니다. 컴퓨터에 의해 제어됩니다. 모니터 프로그램은 그에 따라 준비된 응용 프로그램과 함께 MK의 ROM에 입력됩니다(모니터 디버깅 루틴의 호출이 올바른 위치에 삽입됨). 그런 다음 테스트 실행이 수행됩니다. 디버깅 중인 프로그램을 수정하기 위해 ROM에서 지워지고 수정된 프로그램이 기록됩니다. 완성된 응용 프로그램은 모니터와 해당 기능에 대한 모든 호출을 제거하여 디버깅된 응용 프로그램에서 얻습니다. PIC-micro(Microchip), 80C750(Philips), 89C2051(Atmel) 제품군의 MK용 개발 보드는 이러한 디버깅 알고리즘을 위해 설계되었습니다.

개발 보드에는 때때로 모니터와 "연결하여" 외부 컴퓨터에서 실행되는 디버깅 프로그램이 장착되어 있습니다. 이러한 프로그램은 최근 눈에 띄게 더 복잡해졌으며 종종 매우 전문적인 디버깅 기능 세트(예: 디버거 시뮬레이터) 또는 순수한 형태의 통합 개발 환경에만 내재된 다양한 요소를 포함합니다. 키트에는 실제로 가장 자주 접하는 응용 프로그램도 포함될 수 있습니다.

"개발 보드 플러스 모니터" 키트의 디버깅 기능은 ESS만큼 보편적이지 않습니다. 또한 디버깅 과정에서 일부 MC 리소스는 모니터가 작동하도록 선택됩니다. 그럼에도 불구하고 시간을 낭비하지 않고 적용된 시스템의 설치 및 디버깅을 시작할 수 있는 기성 소프트웨어 및 하드웨어 도구의 완전한 세트의 가용성은 많은 경우에 결정적인 요소입니다. 특히 그러한 키트가 다재다능한 에뮬레이터보다 몇 배나 저렴하다는 점을 고려할 때.

ROM 에뮬레이터

ROM 에뮬레이터는 디버깅 중인 장치의 ROM을 RAM으로 교체할 수 있는 소프트웨어 및 하드웨어 도구입니다. 표준 통신 채널 중 하나를 통해 컴퓨터에서 프로그램을 다운로드할 수 있습니다. 이를 통해 사용자는 ROM 플래싱의 여러 주기를 피할 수 있습니다. ROM 에뮬레이터는 외부 프로그램 메모리에 액세스할 수 있는 MK 프로그램 디버깅에만 사용됩니다. 복잡성과 비용 측면에서 이 장치는 개발 기판과 비슷합니다. 다용도라는 큰 장점이 있습니다. ROM 에뮬레이터는 모든 MK에서 작동할 수 있습니다.

첫 번째 ROM 에뮬레이터는 마스터 재설정을 사용하여 프로그램을 로드, 실행 및 중지할 수만 있었습니다. 그런 다음 특정 주소에 도달하면 오실로스코프에 추적 신호를 하드웨어로 생성하는 복잡한 모델이 있었습니다. 이러한 제품의 에뮬레이트 메모리는 보기 및 수정이 가능했지만 MK의 내부 제어 레지스터에 대한 제어는 최근까지 불가능했습니다.

최근에는 소위 지능형 ROM 에뮬레이터가 등장했습니다. 사용자 보드의 MC 내부를 '볼' 수 있으며 VSE에 대한 디버깅 제어와 유사합니다. 실제로 이 경우 프로세서는 교체되지 않고 사용자 요금에 있는 프로세서가 사용됩니다.

스마트 ROM 에뮬레이터는 일반 ROM 에뮬레이터의 하이브리드입니다. 버스를 서로 빠르게 전환하기 위한 디버그 모니터 및 시스템. 이렇게 하면 디버그 모니터가 사용자 보드에 설치된 것처럼 효과가 생성되며 동시에 소프트웨어 단계의 작은 영역(약 4KB)을 제외하고 MK에서 하드웨어 리소스를 거의 차지하지 않습니다. 예를 들어 이러한 에뮬레이터는 Fiton 회사에서 8051 코어가 있지만 다양한 입력 / 출력 장치로 추가로 포화된 모든 기존 및 미래 MK를 위해 개발되었습니다. 이 제품은 Philips, Siemens의 다양한 MC를 지원합니다. 오키.

통합 개발 환경

엄밀히 말하면 통합 개발 환경은 디버깅 도구에 속하지 않지만 마이크로프로세서 시스템 개발 및 디버깅 프로세스를 크게 촉진하고 가속화하는 이러한 종류의 소프트웨어 도구를 무시하는 것은 잘못입니다.

전통적인 접근 방식으로 프로그램 작성의 초기 단계는 다음과 같이 구성됩니다. 원본 텍스트는 텍스트 편집기를 사용하여 입력됩니다. 입력이 완료되면 텍스트 편집기 작업이 중지되고 크로스 컴파일러가 시작됩니다. 일반적으로 새 프로그램에는 구문 오류가 포함되어 있으며 컴파일러는 이를 운영자 콘솔에 보고합니다. 그런 다음 텍스트 편집기가 다시 시작되고 운영자는 식별된 오류를 찾아 제거합니다. 동시에 화면이 텍스트 편집기에 의해 점유되기 때문에 컴파일러에 의해 표시되는 특성에 대한 메시지는 더 이상 표시되지 않습니다.

이 주기는 두 번 이상 반복될 수 있습니다. 그리고 프로그램이 상대적으로 복잡하고 다양한 부분으로 구성되어 있고 편집 또는 현대화가 필요한 경우 이 초기 단계에서도 프로그래머의 많은 노력과 시간이 필요할 수 있습니다.

많은 양의 일상적인 작업을 피하고 프로그래머의 생산성을 크게 높이기 위해 등장하여 빠르게 인기를 얻고있는 개발 (통합 개발 환경 IDE)의 소위 통합 개발 환경 (셸)이 허용됩니다.

일반적으로 우수한 통합 환경은 사용 가능한 디버깅 도구(회로 내 에뮬레이터, 소프트웨어 시뮬레이터, 프로그래머)를 결합하고 프로그래머에게 "Turbo" 스타일 프로그램 텍스트를 제공합니다.

통합 환경은 다음을 허용합니다.

  • 특히 프로그램 소스 텍스트 작업에 중점을 둔 내장 다중 파일 텍스트 편집기를 사용합니다.
  • 동시에 (다중 창 모드에서) 컴파일 중에 감지된 오류 진단과 편집 가능한 프로그램의 소스 텍스트를 관찰합니다.
  • 여러 프로젝트를 병렬로 작업합니다. 프로젝트 관리자를 사용하면 새로 만든 프로젝트의 템플릿으로 모든 프로젝트를 사용할 수 있습니다. 사용된 컴파일러에 대한 옵션과 프로젝트 소스 파일 목록은 대화 상자 메뉴에서 설정되고 프로젝트 내에 저장되므로 불편한 배치 파일로 작업할 필요가 없습니다.
  • 편집된 모듈만 다시 컴파일합니다.
  • 디버깅 중인 프로그램을 사용 가능한 디버깅 도구에 로드하고 셸을 종료하지 않고 작업합니다.
  • 거의 모든 소프트웨어를 셸에 연결합니다.

최근에 통합 개발 환경의 기능은 가장 "고급" 에뮬레이터 및 디버거-시뮬레이터의 프로그래밍 인터페이스의 일부가 되었습니다. 친숙한 인터페이스와 결합된 이러한 기능은 프로그래머의 작업 속도를 크게 향상시킵니다.

따라서 디버깅 도구를 선택할 때 지원되는 마이크로컨트롤러 목록, 에뮬레이션/시뮬레이트된 마이크로컨트롤러의 리소스에 대한 제한, 기호 디버깅 가능성, 지원되는 컴파일러 목록과 같은 일련의 지표를 고려하는 것이 좋습니다. 마지막으로 서비스 기능입니다.

저자: Yu.Zobnin, Sh.Kobakhidze, 모스크바

다른 기사 보기 섹션 마이크로 컨트롤러.

읽고 쓰기 유용한 이 기사에 대한 의견.

<< 뒤로

과학 기술의 최신 뉴스, 새로운 전자 제품:

터치 에뮬레이션을 위한 인조 가죽 15.04.2024

거리가 점점 일반화되는 현대 기술 세계에서는 연결과 친밀감을 유지하는 것이 중요합니다. 최근 독일 자를란트 대학(Saarland University) 과학자들이 인공 피부를 개발하면서 가상 상호 작용의 새로운 시대가 열렸습니다. 독일 자를란트 대학 연구진이 촉각 감각을 멀리까지 전달할 수 있는 초박형 필름을 개발했습니다. 이 최첨단 기술은 특히 사랑하는 사람과 멀리 떨어져 있는 사람들에게 가상 커뮤니케이션을 위한 새로운 기회를 제공합니다. 연구원들이 개발한 두께가 50마이크로미터에 불과한 초박형 필름은 직물에 통합되어 제XNUMX의 피부처럼 착용될 수 있습니다. 이 필름은 엄마나 아빠의 촉각 신호를 인식하는 센서이자, 이러한 움직임을 아기에게 전달하는 액추에이터 역할을 합니다. 부모가 직물을 만지면 압력에 반응하여 초박막 필름이 변형되는 센서가 활성화됩니다. 이것 ...>>

펫구구 글로벌 고양이 모래 15.04.2024

애완동물을 돌보는 것은 종종 어려운 일이 될 수 있습니다. 특히 집을 깨끗하게 유지하는 데 있어서는 더욱 그렇습니다. Petgugu Global 스타트업의 새롭고 흥미로운 솔루션이 제시되었습니다. 이 솔루션은 고양이 주인의 삶을 더 쉽게 만들고 집을 완벽하게 깨끗하고 깔끔하게 유지할 수 있도록 도와줍니다. 스타트업 펫구구글로벌(Petgugu Global)이 자동으로 배설물을 씻어내는 독특한 고양이 화장실을 공개해 집안을 깨끗하고 산뜻하게 유지해준다. 이 혁신적인 장치에는 애완동물의 배변 활동을 모니터링하고 사용 후 자동으로 청소하도록 활성화되는 다양한 스마트 센서가 장착되어 있습니다. 이 장치는 하수 시스템에 연결되어 소유자의 개입 없이 효율적인 폐기물 제거를 보장합니다. 또한 변기는 물을 내릴 수 있는 대용량 수납 공간을 갖추고 있어 다묘 가정에 이상적입니다. Petgugu 고양이 모래 그릇은 수용성 모래와 함께 사용하도록 설계되었으며 다양한 추가 기능을 제공합니다. ...>>

배려심 많은 남자의 매력 14.04.2024

여성이 '나쁜 남자'를 더 좋아한다는 고정관념은 오랫동안 널리 퍼져 있었습니다. 그러나 최근 모나쉬 대학의 영국 과학자들이 실시한 연구는 이 문제에 대한 새로운 관점을 제시합니다. 그들은 여성이 남성의 정서적 책임과 다른 사람을 도우려는 의지에 어떻게 반응하는지 살펴보았습니다. 이번 연구 결과는 무엇이 남성을 여성에게 매력적으로 만드는지에 대한 우리의 이해를 변화시킬 수 있습니다. Monash University의 과학자들이 실시한 연구는 여성에 대한 남성의 매력에 대한 새로운 발견으로 이어졌습니다. 실험에서 여성에게는 노숙자를 만났을 때의 반응을 포함하여 다양한 상황에서 자신의 행동에 대한 간략한 이야기와 함께 남성의 사진이 표시되었습니다. 일부 남성은 노숙인을 무시했지만, 다른 남성은 음식을 사주는 등 그를 도왔습니다. 한 연구에 따르면 공감과 친절을 보여주는 남성은 공감과 친절을 보여주는 남성에 비해 여성에게 더 매력적이었습니다. ...>>

아카이브의 무작위 뉴스

ICL5102 - PFC가 있는 효율적인 하프 브리지 AC-DC 컨버터 컨트롤러 27.08.2018

Infineon의 ICL5102는 PFC(역률 보정기) 단계와 공진형 하프 브리지 LLC 컨버터 단계(LCC 옵션)의 두 단계를 동시에 제어하는 ​​새로운 결합 전원 공급 장치 컨트롤러입니다.

이 솔루션의 높은 수준의 통합은 적은 수의 구성 요소를 보장하며 소형 및 로우 프로파일 전원 공급 장치에 매우 적합합니다. ICL5102 칩의 매개변수 구성은 저항 값을 선택하여 이루어집니다. 약 100μA의 시작 전류로 컨트롤러를 사용하면 300ms 이내에 전원 공급 장치를 시작할 수 있습니다.

PFC 스테이지는 디지털 코어를 기반으로 구현되며 초크 전류 제한(CrM) 모드에서 작동하거나 경부하에서 불연속 전류 모드(DCM)로 전환합니다. 이 단계는 22~500kHz의 주파수 범위에서 작동하며 95% 이상의 역률과 10% 미만의 입력 전류 고조파 왜곡(THD)을 달성할 수 있습니다.

하프 브리지 스테이지에는 최대 650V의 외부 트랜지스터를 제어하기 위한 내장형 로우 및 하이 사이드 드라이버가 포함되어 있습니다. 이 마이크로 회로는 500-1000ns 범위의 적응형 데드 타임 조정 알고리즘을 구현합니다.

ICL5102 컨트롤러는 LLC 컨버터의 용량성 작동 모드를 종료하기 위한 알고리즘을 구현합니다. 용량 성 모드는 부하의 단락 또는 부하의 급격한 증가 (서지) 또는 변환기를 시작할 때 발생할 수 있습니다. 컨트롤러는 변환 주파수를 높여서 컨버터를 용량성 모드에서 원활하게 해제하려고 시도합니다. 이것이 도움이 되지 않으면 컨트롤러가 다시 시작됩니다.

기술적 이점:

입력 전압의 유효 값 범위 85...305 V;
PFC 캐스케이드의 작동 주파수 범위는 22...500kHz입니다.
출력단의 내장형 절연 코어리스 변압기 기술 하이 사이드 드라이버;
최대 95%의 높은 컨버터 효율이 가능합니다(두 단계 - KKM + LLC).
과열 보호를 위한 외부 NTC 저항기;
최대 300ms의 짧은 소프트 시작 시간;
LLC 캐스케이드의 용량성 모드에서 조절 알고리즘
1,3MHz에서 실행
경부하에서 안정적인 작동;
하우징 DSO-16;
작동 온도 범위 -40...125°C.

일반적인 응용 프로그램:

산업용 전원 공급 장치;
소비자 가전용 전원 공급 장치;
LED 드라이버.

다른 흥미로운 소식:

▪ 자동차용 Corning Gorilla Glass

▪ 화성의 도시들

▪ 스마트 티셔츠

▪ 트랜센드 TS128GMTS810 솔리드 스테이트 드라이브

▪ Roccat Torch 스튜디오급 USB 마이크

과학 기술 뉴스 피드, 새로운 전자 제품

 

무료 기술 라이브러리의 흥미로운 자료:

▪ 사이트 전압 안정기 섹션. 기사 선택

▪ 기사 재배 식물의 지리적 원산지. 과학적 발견의 역사와 본질

▪ 기사 어떤 군주가 기술적으로 자신과 전쟁 중이었습니까? 자세한 답변

▪ 기사 일반적인 산사나무속. 전설, 재배, 적용 방법

▪ 기사 바니시 및 바니시에 대한 일반 정보. 간단한 레시피와 팁

▪ 기사 DVD 플레이어의 블록을 기반으로 전원 공급 장치 전환. 무선 전자 및 전기 공학 백과사전

이 기사에 대한 의견을 남겨주세요:

이름 :


이메일(선택사항):


댓글 :





이 페이지의 모든 언어

홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰

www.diagram.com.ua

www.diagram.com.ua
2000-2024