MCU가 LCD 화면 및 설계 고려 사항을 주도하는 방법

2023-07-17

싱글칩 마이크로컴퓨터의 분류 및 응용
MCU는 메모리 유형에 따라 온칩 ROM이 없는 유형과 온칩 ROM이 있는 두 가지 유형으로 나눌 수 있습니다. 온칩 ROM이 없는 칩의 경우 외부 EPROM(일반적으로 8031)과 연결해야 합니다. 온칩 ROM이 있는 칩은 온칩 EPROM(일반적으로 87C51), MASK 온칩 마스크 ROM(일반적으로 87C51), 칩은 8051), 온칩 플래시 유형(일반적으로 칩은 89C51) 및 기타 유형으로 나뉩니다.
목적에 따라 일반용과 특수용으로 구분됩니다. 데이터 버스의 폭과 한 번에 처리할 수 있는 데이터 바이트의 길이에 따라 8, 16, 32비트 MCU로 나눌 수 있습니다.
현재 국내 MCU 애플리케이션 시장은 가전제품 분야에서 가장 널리 사용되고 있으며, 산업분야와 자동차 전자제품 시장이 그 뒤를 잇고 있다. 가전제품에는 가전제품, TV, 게임 콘솔, 오디오 및 비디오 시스템 등이 포함됩니다. 산업 분야에는 스마트 홈, 자동화, 의료 애플리케이션, 신에너지 생성 및 분배가 포함됩니다. 자동차 분야에는 자동차 파워트레인, 안전 제어 시스템 등이 포함됩니다.
Shenzhen Hongjia Technology Co., Ltd.는 사용자 정의가 가능한 1.14인치~10.1인치 LCD 스크린 및 터치 스크린의 R&D, 생산 및 판매를 전문으로 하며 SPI 인터페이스, MCU 인터페이스, RGB 인터페이스를 포함한 지원 MCU 디스플레이를 제공합니다. MIPI 인터페이스 등 다양한 크기와 모델이 있으며, 매칭되는 저항막 방식 터치스크린과 정전식 터치스크린도 제공될 수 있습니다.
싱글칩 마이크로컴퓨터의 기본 기능

대부분의 MCU에서 다음 기능이 가장 일반적이고 기본입니다. MCU마다 설명이 다를 수 있지만 기본적으로는 동일합니다.

1. 타이머(타이머): 타이머의 종류는 많지만 두 가지 범주로 분류할 수 있습니다. 하나는 고정된 시간 간격을 갖는 타이머입니다. 즉, 타이밍은 시스템에 의해 설정되고 사용자 프로그램은 제어할 수 없습니다. 32Hz, 16Hz, 8Hz 등과 같이 사용자 프로그램이 선택할 수 있는 몇 가지 고정 시간 간격만 제공됩니다. 이러한 종류의 타이머는 4비트 MCU에서 더 일반적이므로 클록 및 타이밍과 같은 관련 기능을 구현하는 데 사용할 수 있습니다. .
다른 유형은 프로그래밍 가능 타이머(Programmable Timer)입니다. 이름에서 알 수 있듯이 이러한 유형의 타이머의 타이밍 시간은 사용자 프로그램에 의해 제어될 수 있습니다. 제어 방법에는 클록 소스 선택, 주파수 분할 선택(프리스케일) 및 사전 제작된 숫자 설정 등이 포함됩니다. 일부 MCU에는 세 가지가 동시에 있는 반면 다른 MCU에는 한 개 또는 두 개가 있을 수도 있습니다. 이러한 종류의 타이머 애플리케이션은 매우 유연하며 실제 사용도 끊임없이 변화합니다. 가장 일반적인 응용 분야 중 하나는 이를 사용하여 PWM 출력을 실현하는 것입니다.
클럭 소스를 자유롭게 선택할 수 있으므로 이러한 타이머는 일반적으로 이벤트 카운터와 결합됩니다.
2. IO 포트: 모든 MCU에는 특정 수의 IO 포트가 있습니다. IO 포트가 없으면 MCU는 외부 세계와의 통신 채널을 잃게 됩니다. IO 포트의 구성에 따라 다음 유형으로 나눌 수 있습니다.
순수 입력 또는 순수 출력 포트: 이 유형의 IO 포트는 MCU 하드웨어 설계에 따라 결정됩니다. 입력 또는 출력만 가능하며 소프트웨어로 실시간 설정할 수는 없습니다.
IO 포트 직접 읽기 및 쓰기: 예를 들어 MCS-51의 IO 포트는 이 유형의 IO 포트에 속합니다. IO 포트 읽기 명령을 실행할 때 이는 입력 포트입니다. IO 포트 쓰기 명령을 실행하면 자동으로 출력 포트가 됩니다.
입력 및 출력 방향을 설정하는 프로그램 프로그래밍: 이 유형의 IO 포트의 입력 또는 출력은 실제 필요에 따라 프로그램에 의해 설정되며 애플리케이션은 상대적으로 유연하며 I2C와 같은 일부 버스 수준 애플리케이션을 실현할 수 있습니다. 버스, 각종 LCD, LED 드라이버 제어 버스 등
IO 포트를 사용하려면 중요한 점을 염두에 두어야 합니다. 입력 포트의 경우 플로팅할 수 없도록 명확한 레벨 신호가 있어야 합니다(풀업 또는 풀업을 추가하여 달성할 수 있음). 저항 감소); 출력 포트의 경우 출력 상태 수준은 외부 연결을 고려해야 하며 대기 또는 정적 상태에 전류 소스나 싱크가 없는지 확인해야 합니다.
3. 외부 인터럽트: 외부 인터럽트도 대부분의 MCU의 기본 기능입니다. 일반적으로 신호의 실시간 트리거링, 데이터 샘플링 및 상태 감지에 사용됩니다. 인터럽트에는 상승 에지, 하강 에지 트리거, 레벨 트리거 등 여러 유형이 있습니다. 외부 인터럽트는 일반적으로 입력 포트를 통해 구현됩니다. IO 포트인 경우 인터럽트 기능은 입력으로 설정된 경우에만 활성화됩니다. 출력 포트인 경우 외부 인터럽트 기능은 자동으로 꺼집니다. (ATiny 시리즈 ATMEL에는 일부 예외가 있으며 출력 포트도 인터럽트 기능을 트리거할 수 있습니다.) 외부 인터럽트의 적용은 다음과 같습니다.
외부 트리거 신호 감지: 하나는 실리콘 제어 정류기 제어, 버스트 신호 감지 등과 같은 실시간 요구 사항을 기반으로 하고, 다른 하나는 절전이 필요합니다.
신호 주파수 측정: 신호가 누락되지 않도록 하려면 외부 인터럽트가 이상적인 선택입니다.
데이터 디코딩: 원격 제어 응용 분야에서는 설계 비용을 줄이기 위해 맨체스터 디코딩 및 PWM 인코딩과 같은 다양한 인코딩된 데이터를 디코딩하는 소프트웨어를 사용해야 하는 경우가 많습니다.
키 감지 및 시스템 깨우기: 슬립 상태에 들어간 MCU의 경우 일반적으로 외부 인터럽트를 통해 깨워야 합니다. 가장 기본적인 형태는 키이며, 키의 동작에 따라 레벨 변화가 발생합니다.
4. 통신 인터페이스: MCU가 제공하는 통신 인터페이스에는 일반적으로 SPI 인터페이스, UART, I2C 인터페이스 등이 포함되며 이에 대한 설명은 다음과 같습니다.
SPI 인터페이스: 이 유형의 인터페이스는 대부분의 MCU가 제공하는 가장 기본적인 통신 방법입니다. 데이터 전송은 동기식 시계에 의해 제어됩니다. 신호에는 SDI(직렬 데이터 입력), SDO(직렬 데이터 출력), SCLK(직렬 클럭) 및 준비 신호가 포함됩니다. 어떤 경우에는 준비 신호가 없을 수도 있습니다. 이러한 유형의 인터페이스는 마스터 모드 또는 슬레이브 모드에서 작동할 수 있습니다. 일반적으로 누가 클럭 신호를 제공하는지 확인하고 클럭을 제공하는 쪽이 마스터이고 반대쪽이 슬레이버입니다.
UART(Universal Asynchronous Receiver Transmit): 가장 기본적인 비동기식 전송 인터페이스입니다. 신호선은 Rx와 Tx뿐입니다. 기본 데이터 형식은 시작 비트 + 데이터 비트(7비트/8비트) + 패리티 비트(짝수, 홀수 또는 없음) + 정지 비트(1~2비트)입니다. 데이터 1비트에 걸리는 시간을 Baud Rate(보레이트)라고 합니다.
대부분의 MCU의 경우 데이터 비트 길이, 데이터 확인 방법(홀수 확인, 짝수 확인 또는 확인 안 함), 정지 비트 길이(Stop Bit) 및 전송 속도를 프로그래밍을 통해 유연하게 설정할 수 있습니다. 틀림없이. 이러한 유형의 인터페이스 중 가장 일반적으로 사용되는 방법은 PC의 직렬 포트와 통신하는 것입니다.
I2C 인터페이스: I2C는 Philips가 개발한 데이터 전송 프로토콜로 SDAT(직렬 데이터 입력 및 출력)와 SCLK(직렬 클럭)의 두 가지 신호로 구현됩니다. 가장 큰 장점은 주소를 통해 식별하고 액세스할 수 있는 이 버스에 여러 장치를 연결할 수 있다는 것입니다. I2C 버스의 가장 큰 장점 중 하나는 소프트웨어를 사용하여 IO 포트를 통해 구현하는 것이 매우 편리하며 전송 데이터 속도는 SCLK에 의해 완전히 제어된다는 것입니다. 제어하려면 UART 인터페이스와 달리 빠르거나 느릴 수 있습니다 , 엄격한 속도 요구 사항이 있습니다.
5. Watchdog(워치독 타이머): Watchdog은 대부분의 MCU의 기본 구성이기도 하며(일부 4비트 MCU에는 이 기능이 없을 수 있음), 대부분의 MCU Watchdog은 프로그램이 이를 재설정하도록 허용할 수만 있고 재설정할 수는 없습니다. 닫혀 있고(Microchip PIC 시리즈 MCU 등 일부는 프로그램이 번인될 때 설정됨), 일부 MCU는 프로그램이 Watchdog 레지스터에 액세스하는 한 삼성의 KS57 시리즈와 같이 특정 방식으로 열지 여부를 결정합니다. 은(는) 자동으로 켜지며 다시 끌 수 없습니다. 일반적으로 워치독의 리셋 시간은 프로그램에 의해 설정될 수 있습니다. Watchdog의 가장 기본적인 애플리케이션은 예상치 못한 오류로 인해 MCU가 충돌하는 경우 자체 복구 기능을 제공하는 것입니다.

마이크로컨트롤러 프로그래밍
MCU 프로그램 프로그래밍과 PC 프로그램 프로그래밍에는 큰 차이가 있습니다. C 기반 MCU 개발 도구가 점점 대중화되고 있지만, 효율적인 프로그램 코드와 어셈블리 사용을 좋아하는 디자이너에게는 어셈블리 언어가 여전히 가장 간결하고 효율적인 프로그래밍 언어입니다.

MCU 프로그래밍의 경우 기본 프레임워크는 대략 동일하다고 할 수 있으며 일반적으로 초기화 부분(MCU 프로그래밍과 PC 프로그래밍의 가장 큰 차이점), 기본 프로그램 루프 본문 및 인터럽트 처리 프로그램의 세 부분으로 나뉩니다. 다음과 같이 설명했습니다.
1. 초기화: 모든 MCU 프로그램 설계에서 초기화는 가장 기본적이고 중요한 단계이며 일반적으로 다음을 포함합니다.
모든 인터럽트를 마스크하고 스택 포인터를 초기화합니다. 초기화 부분은 일반적으로 인터럽트가 발생하는 것을 원하지 않습니다.
시스템의 RAM 영역을 지우고 메모리를 표시합니다. 때로는 완전히 필요하지 않을 수도 있지만 신뢰성과 일관성의 관점에서, 특히 우발적인 오류를 방지하기 위해 좋은 프로그래밍 습관을 기르는 것이 좋습니다.
IO 포트 초기화: 프로젝트의 애플리케이션 요구 사항에 따라 관련 IO 포트의 입력 및 출력 모드를 설정합니다. 입력 포트의 경우 풀업 또는 풀다운 저항을 설정해야 합니다. 출력 포트의 경우 불필요한 오류를 방지하기 위해 초기 레벨 출력을 설정해야 합니다.
인터럽트 설정: 프로젝트에서 사용해야 하는 모든 인터럽트 소스에 대해 활성화하고 인터럽트에 대한 트리거 조건을 설정해야 하며, 사용되지 않는 중복 인터럽트에 대해서는 반드시 꺼야 합니다.
기타 기능 모듈 초기화: 사용해야 하는 MCU의 모든 주변 기능 모듈에 대해 UART 통신, 전송 속도, 데이터 길이, 검증 방법 및 중지와 같은 프로젝트의 애플리케이션 요구 사항에 따라 해당 설정을 수행해야 합니다. 비트의 길이 등을 설정해야 하며, 프로그래머 타이머의 경우 클럭 소스, 주파수 분할 및 데이터 다시 로드 등을 설정해야 합니다.
매개변수 초기화: MCU 하드웨어 및 리소스 초기화를 완료한 후 다음 단계는 프로그램에 사용되는 일부 변수 및 데이터를 초기화하는 것입니다. 이 부분의 초기화는 특정 프로젝트와 프로그램의 전체적인 배치에 따라 설계되어야 합니다. 프로젝트 사전 제작 데이터를 저장하기 위해 EEPROM을 사용하는 일부 애플리케이션의 경우 초기화 중에 관련 데이터를 MCU의 RAM에 복사하여 데이터에 대한 프로그램의 액세스 속도를 향상시키고 시스템의 전력 소비를 줄이는 것이 좋습니다(원칙적으로) , 외부 EEPROM에 액세스하면 전원 공급 장치의 전력 소비가 증가합니다.
2. 메인 프로그램의 루프 본체: 대부분의 MCU는 오랫동안 지속적으로 실행되므로 메인 프로그램 본체는 기본적으로 순환 방식으로 설계되었습니다. 여러 작업 모드가 있는 애플리케이션의 경우 여러 A 루프 본문이 상태 플래그를 통해 서로 간에 변환될 수 있습니다. 기본 프로그램 본문의 경우 일반적으로 다음 모듈이 배열됩니다.
계산 프로그램: 계산 프로그램은 일반적으로 시간이 많이 걸리므로 인터럽트 처리, 특히 곱셈과 나눗셈 연산에 대해 단호히 반대합니다.
실시간 요구 사항이 낮거나 실시간 요구 사항이 없는 처리 프로그램

디스플레이 전송 프로그램: 주로 외부 LED 및 LCD 드라이버를 사용하는 애플리케이션에 사용됩니다.
3. 인터럽트 처리 프로그램: 인터럽트 프로그램은 주로 외부 갑작스러운 신호 감지, 키 감지 및 처리, 타이밍 카운팅, LED 디스플레이 스캐닝 등과 같이 실시간 요구 사항이 높은 작업 및 이벤트를 처리하는 데 사용됩니다.
일반적으로 인터럽트 프로그램은 코드를 최대한 간결하고 짧게 유지해야 합니다. 실시간으로 처리할 필요가 없는 기능의 경우 인터럽트에 트리거 플래그를 설정하면 기본 프로그램이 특정 트랜잭션을 실행할 수 있습니다. 이는 매우 중요합니다. 특히 저전력, 저속 MCU의 경우 모든 인터럽트에 적시에 응답하는 것이 필요합니다.
4. 다양한 작업 본체를 배열하기 위해 MCU마다 처리 방법이 다릅니다.
예를 들어, 저속, 저전력 MCU(Fosc=32768Hz) 애플리케이션의 경우 이러한 프로젝트가 모두 휴대용 장치이고 일반 LCD 디스플레이를 사용한다는 점을 고려하면 버튼 및 디스플레이에 대한 응답에는 높은 실시간 성능이 필요하므로 일반적으로 Timed 인터럽트가 사용됩니다. 버튼 동작 및 데이터 표시를 처리하는 데 사용됩니다. Fosc>1MHz 애플리케이션과 같은 고속 MCU의 경우 MCU는 현재 메인 프로그램 루프 본문을 실행할 수 있는 충분한 시간을 갖고 있기 때문에 해당 설정에서만 중단될 수 있습니다. 다양한 트리거 플래그를 설정하고 모든 작업을 수행합니다. 실행할 주 프로그램 본문에서
5. MCU의 프로그래밍 설계에서 특별한 주의가 필요한 또 하나의 사항은 다음과 같습니다.

인터럽트와 메인 프로그램 본체에서 동일한 변수나 데이터에 대한 동시 액세스 또는 설정을 방지합니다. 효과적인 예방 방법은 이러한 데이터의 처리를 모듈에 배치하고 트리거 플래그를 판단하여 데이터의 관련 작업을 실행할지 여부를 결정하는 것입니다. 다른 프로그램 본체(주로 인터럽트)에서는 처리해야 하는 데이터가 처리 장소에서만 트리거 플래그를 설정합니다. - 이는 데이터 실행이 예측 가능하고 고유하다는 것을 보장합니다.

마이크로컨트롤러 개발 기술

1. 프로그램의 버그를 줄이는 방법
프로그램 버그를 줄이는 방법에 대해서는 먼저 시스템 작동 중에 고려해야 할 다음과 같은 범위 초과 관리 매개변수를 고려해야 합니다.
물리적 매개변수: 이러한 매개변수는 주로 여기 매개변수, 획득 및 처리 중 작동 매개변수, 처리 종료 시 결과 매개변수를 포함한 시스템의 입력 매개변수입니다.

리소스 매개변수: 이러한 매개변수는 주로 메모리 용량, 저장 장치 길이, 스택 깊이 등 시스템의 회로, 장치 및 기능 장치의 리소스입니다.
애플리케이션 매개변수: 이러한 애플리케이션 매개변수는 종종 일부 단일 칩 마이크로컴퓨터 및 기능 장치의 애플리케이션 조건을 나타냅니다. 프로세스 매개변수: 시스템이 작동하는 동안 순서대로 변경되는 매개변수를 말합니다.


2. C언어 프로그래밍 코드의 효율성을 높이는 방법
싱글칩 마이크로컴퓨터 프로그램을 설계하기 위해 C언어를 사용하는 것은 싱글칩 마이크로컴퓨터의 개발과 응용에 있어서 피할 수 없는 추세이다. C로 프로그래밍할 때 최고의 효율성을 얻으려면 사용 중인 C 컴파일러에 익숙해지는 것이 가장 좋습니다. 먼저 컴파일된 각 C 언어에 해당하는 어셈블리 언어의 명령문 행 수를 테스트하여 효율성을 명확하게 알 수 있습니다. 향후 프로그래밍 시에는 컴파일 효율이 가장 높은 문장을 사용하세요. 각 C 컴파일러에는 특정 차이점이 있으므로 컴파일 효율성도 다릅니다. 뛰어난 임베디드 시스템 C 컴파일러의 코드 길이와 실행 시간은 어셈블리 언어로 작성된 동일한 기능 수준보다 5-20% 더 길뿐입니다.

개발 시간이 촉박한 복잡한 프로젝트의 경우 C 언어를 사용할 수 있지만 전제는 MCU 시스템의 C 언어 및 C 컴파일러에 매우 익숙하고 C 컴파일러 시스템이 제공하는 데이터 유형 및 알고리즘에 특별한 주의를 기울이는 것입니다. 지원할 수 있습니다. C 언어가 가장 일반적인 고급 언어이지만 다양한 MCU 제조업체의 C 언어 컴파일 시스템은 특히 일부 특수 기능 모듈의 작동에서 다릅니다. 그래서 이러한 기능을 이해하지 못하면 디버깅에 문제가 많아 어셈블리 언어에 비해 실행 효율성이 떨어지게 됩니다.

3. 단일 칩 마이크로컴퓨터의 간섭 방지 문제를 해결하는 방법 간섭을 방지하는 가장 효과적인 방법은 간섭 소스를 제거하고 간섭 경로를 차단하는 것입니다. 그러나 그렇게 하기 어려운 경우가 많으므로 이에 의존합니다. 단일 칩 마이크로컴퓨터의 간섭 방지 능력이 충분히 강한지 여부. 하드웨어 시스템의 전파 방해 방지 기능을 향상시키는 동시에 소프트웨어 전파 방해 방지는 유연한 설계가 특징입니다.
X
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. By using this site, you agree to our use of cookies. Privacy Policy