Blog

  • 서강대학교 23년도 마이크로프로세서응용실험 11주차 Lab011 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1.목적
    – DMA의 동작원리와 구동방법을 이해한다. DMA 구동을 위한 설정 레지스터와 입출력소자의 DMA지원을 위한 설정 등을 이해한다.
    – ADC를 구동하는 방법을 이해한다. polling과 DMA를 이용하여 ADC를 구동한다.

    2.이론
    2-1. DMA introduction

    메모리에 저장된 block data를 외부로 연속적으로 전송하거나, 외부로부터 데이터를 차례로 저장할 때, CPU 대신 DMA를 통해서 하는 것이 CPU의 부담을 줄일 수 있다. 이를 위한 제어소자가 DMAC이다. 이때 DMAC도 같은 address bus, data bud를 사용하기에, 이를 조정하는 arbiter가 필요하다. DMAC는 입출력 소자의 주소, 데이터의 양, 메모리의 주소, 데이터를 연속적으로 전송(burst)할지, 단위 데이터로 전송할지 설정해야 한다.

    DMAC는 다수의 입출력장치와 channel을 통해 DMA를 수행한다. 이때 각 channel에 대해 우선순위를 4개까지 부여한다. 각 channel에는 내장된 연결소자들의 DMA request를 선택적으로 연결할 수 있다.

    STM32F103VB는 한 개의 DMA, 7개의 channel을 지닌다. DMA는 central data buffer storage를 여러 peripheral과 사용할 수 있게 해준다. 이 buffer는 주로 SRAM에 위치한다. 각 채널들은 여러 peipheral중 하나를 선택하여 DMA를 수행한다.

    2-2. DMA functional description
    DMAC는 system bus를 CPU core와 공유한다. DMA는 CPU가 같은 주소를 targeting할때, CPU의 bus access를 stop시키는 request를 한다. bus matrix는 round-robin 스케쥴링을 수행하기에, CPU의 system bus bandwidth를 적어도 절반은 보장한다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 10주차 Lab010 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1.목적
    – USART의 기본 동작을 전송속도, parity, stop bits 등을 변경하면서 확인한다.
    – Polling에 의한 데이터 전송을 구현하여 각종 flag들의 역할을 이해한다.
    – 인터럽트에 의한 데이터 전송을 구현한다.

    2.이론
    2-1. Introduction

    Serial 통신은 USB 등에서 사용되고, 소수의 데이터 라인을 사용하기에 간결하다. 직렬 통신은 동기방식, 비동기 방식으로 구분된다. 이들의 차이는 clock line의 유무이다. 비동기 방식은 clock신호가 필요하지 않고, 송신, 수신 data line과 기준 GND만 필요하다. 데이터는 character씩 전송된다. 수신부는 start bit와 stop bit으로 동기를 유지하게 된다. 각 bit 유지시간이 bit time이고, 이것은 전송 주파수, rate인 baud rate의 역수이다. 직렬 송수신 과정에서는 shift register를 이용해, serial-parallel간 변환이 필요하다. 전송 속도를 결정하는 소자에는 전송속도의 2의 power 배수가 되도록 clock이 결정된다.

    Rs-232C는 비동기 직렬 통신의 하드웨어 규정이다. 프린터, CRT, 모뎀 등에 사용된다. 25pin을 지원할때 DB-25, 자주 사용되지 않는 pin을 제외하고 9pin을 지원할 때 DB-9이라 불린다. 장비의 성격은 DTE, DCE로 나뉜다. DCE는 PC, DTE는 모뎀이 대표적이다. DTE와 DCE 장비의 신호는 입출력이 반대로 할당되기에, direct cable 사용이 가능하다. 전기적인 특성도 TTL과는 다르게, logic 0는 +12V, logic 1은 -12V로 사용된다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 9주차 Lab09 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1.목적
    – 타이머의 동작 모드 설정에 사용되는 레지스터 구성, 초기화 방법을 이해한다.
    – 타이머에 의해 발생하는 인터럽트를, GPIO와 연동하여 확인해본다.
    – 한 개 이상의 타이머들에 의한 인터럽트 동작을 확인한다.
    – 타이머에 trigger source를 연동하여 활용하는 방법에 대해 이해한다.
    – 타이머 clock에 스위치 신호를 연결하여 counter로 사용하는 방법을 이해한다.

    2.이론
    2-1. Timer introduction

    프로세서의 시간 제어를 돕기 위해, Timer를 이용할 수 있다. Timer는 하드웨어 자체는 counter와 동일하고, clock에 의한 counting으로 시간을 측정하는 방식으로 사용된다. figure 9.1에서 보다시피 clock신호로는 외부신호(ETR) 또는 프로세서 내부 clock 중 하나로 선택되고, clock신호는 Prescaler로 분주가 가능하다.

    Auto-reload 레지스터는 타이머의 초기값을 지정한다. 초기값으로부터 down-counting해서 0이 되거나, 0으로부터 up-counting해서 초기값에 도달하는지를 Capture/compare 레지스터를 통해 확인한다. 이러한 동작을 반복하여, 프로세서가 일정 간격으로 task를 처리할 수 있다.

    동작 중인 타이머 값을 Capture 레지스터로 읽음으로써, 외부 연결신호 CH에서 들어오는 펄스 간 시간간격을 측정할 수 있다. 출력 신호 폭을 조절해서 PWM 출력도 생성할 수 있어서, motor를 제어할 수 있다.

    STM32F103xx는 7개의 timer를 내장하고 있다.
    •SysTick timer: OS를 위해 마련되었으나, downcounter로 사용 가능하다. auto-reload기능과, counter가 0일 때 인터럽트도 선택적으로 발생 가능하다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 8주차 Lab08 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1. 목적
    – GPIO의 동작 모드 설정에 사용되는 레지스터의 구성, 초기화 방법을 이해한다.
    – GPIO의 포트 신호들을 외부소자/장치와 어떻게 연결하는지 이해한다.
    – Array 형태로 배열된 dot matrix, key matrix에 어떻게 access하는지 이해하고, C 프로그램으로 구현한다.
    2. 이론
    2-1. Peripherals in STM32F103x

    figure 8.2처럼, 칩 내부에는 프로세서뿐만 아니라, 다수의 소자들이 있다. 이들은 AHB와 APB라는 bus로 연결되어 있다.

    figure 8.3은 각 소자들의 할당된 주소들을 보여주는 memory map이다. 소자들의 할당된 boundary address를 주소순서에 따라서 정리한 것이 table 8.1과 같다. 프로세서가 특정 입출력포트를 대상으로 read, write 명령을 수행할 때, address bus와 decoder에 의해 포트가 선택된다. 명령어가 수행될 때, address, data, control bus들의 상태는 프로세서의 한 bus cycle동안 유지된다. read시에는 입력버퍼 중 하나가 activate되어 스위치의 상태를 data bus에 연결한다. write시에는 data latch에 데이터가 저장되어 유지된다.

    2-2. GPIO functional description
    GPIO에 속한 pin들은 프로그램을 통해 설정(configuration)하여 다양한 형식의 입력, 출력으로 사용 가능이다.

    target 컨트롤러에는 5개의 GPIO port A~E가 제공된다. 각 port는 16 bits, 16개의 pin으로 구성되며, Px[15:0]으로 표시한다. 각 pin의 기능, 동작형식을 정의하기 위해 GPIO port마다 설정을 위한 레지스터가 제공된다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 7주차 Lab07 결과레포트 (A+자료)

    목차

    1. Interrupt types & Vector table
    2. Interrupt pending behavior.
    3. Interrupt Sequence
    4. Interrupt return
    5. NVIC
    6. Interrupt priority register (NVIC_IPRx)
    7. External interrupt/event controller (EXTI)
    8. Priority
    9. Interrupt latency
    10. Software interrupt
    11. System control block (SCB)

    본문내용

    1.목적
    – 인터럽트의 동작원리를 이해한다. 인터럽트가 발생했을 때, stack이 어떻게 사용되는지 이해한다.
    – vector table의 구성과 역할에 대해 이해한다.
    – 인터럽트의 처리과정에서 사용되는 레지스터들의 종류 및 역할을 이해한다.

    2.이론
    2-1. Interrupt types % Vector table
    인터럽트란, 마이크로프로세서에서 외부에서 스위치가 눌리거나 통신에서 신호가 수신되는 등 예기치 못한 상황, 사건을 의미한다. 인터럽트가 발생한다면, 프로세서는 명령어 수행을 마친 후, 해당 인터럽트의 처리를 하는 서브루틴인 interrupt service routine(ISR)을 수행하며 처리하게 된다. exception 또한 interrupt의 한 종류인데, exception은 시스템에 영향을 미칠만한 오류나 문제에서 발생하는 것으로 구분된다.

    table 7.2는 STM32F103xx의 vector table의 일부를 보여준다. 0~15번까지는 exception이고, 16번부터는 인터럽트에 대해 번호가 부여된다. vector table의 Address column을 보면, 각 인터럽트에 대해 0x00000000부터 4단위로 절대주소가 부여되어 있다. 이렇게 인터럽트 번호에 4를 곱한 위치에, ISR의 시작 주소가 저장되어 있다.

    2-2. Interrupt pending behavior.

    외부 인터럽트가 발생했다면, 곧바로 처리되는 것이 아니라, 인터럽트가 처리될 때까지 대기하게 된다. 이렇게 대기하는 상태를 pending이라고 하는데, 프로세서는 pending되어있는 인터럽트들을 우선순위에 맞게 처리한다. 프로세서는 인터럽트를 처리할 때, Thread mode에서 Handler mode로 모드를 변경하고, ISR을 수행할 때 해당 인터럽트의 pending상태를 해제한다.

    figure 7.3처럼, 인터럽트가 pending상태에서 처리되지 않고 있다면, NVIC의 interrupt control register에 의해 software적으로 취소될 수도 있다.

    figure 7.5처럼, 인터럽트 요청이 계속해서 active일 경우, ISR 처리가 끝난 후에 다시 pending된다. 이럴 경우 한번의 인터럽트를 두 번 이상 처리하는 불상사가 발생할 수 있기에, 인터럽트를 처리할 때 인터럽트 요청 신호를 software적으로 clear할 필요가 있다.

    하지만 figure 7.7처럼 인터럽트 요청이 해제된 후 다시 나타난다면, 다시 pending된다. 그리고 figure 7.6처럼 인터럽트 요청이 pulse형태로 반복해서 나타난다면, 한번만 pending된다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 5주차 Lab05 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1.목적
    – 프로그램의 흐름을 변경하는 branch 명령어의 동작을 이해한다.
    – branch with link 명령어의 특징을 알아보고, 어떻게 활용될 수 있는지 실험해본다.
    – PC에 대한 상대주소 분기와 절대주소 분기의 차이에 대해 이해한다.
    – conditional execution을 위한 suffix의 종류와 의미를 알아보고, 이것의 장점에 대해 이해한다.

    2.이론
    2-1. Introduction
    C언어에서의 if문이나 for, while문의 경우, 조건 만족 여부에 따라 프로그램의 흐름이 바뀌거나, 지정된 횟수만큼 수행을 반복하게 된다. 이때 프로세서는 branch와 같은 분기 명령을 통해, PC 내용을 변경시키며 프로그램의 흐름을 바꾸게 된다. 이때 분기 명령어는 파이프라인의 효율을 떨어뜨리게 된다. 이를 branch penalty라고 한다.

    파이프라인 동작을 통해, 분기명령이 성능에 어떻게 악영향을 미치는지 알아보자. 3단계 파이프라인은 Figure 5.1과 같이, fetch – decode – execute로 구분된다. 0x8000의 BL(branch and link) 명령어 때문에, 0x8004와 0x8008 명령어의 fetch, decode가 의미없어지고, PC가 0x8408을 가리키게 되면서 새로운 명령어의 fetch가 이루어진다. 4번 사이클에서 PC는 다음 fetch할 명령어인 0x8008이 저장되어 있기에, BL 명령어에 의해 이 주소가 link register에 저장된다. 하지만 분기가 끝나고 복귀해야할 주소는 0x8004이기에, 5번 사이클에서 link register에서 4를 빼는 adjust를 수행한다. branch가 발생하면 일반적인 pipeline의 진행에 비해 성능이 안좋아지게 된다.

    출처 : 해피캠퍼스

  • 서강대학교 23년도 마이크로프로세서응용실험 4주차 Lab04 결과레포트 (A+자료)

    목차

    1. 목적
    2. 이론
    3. 실험과정
    4. Exercises
    5. 추가실험
    6. 결론
    7. 참고문헌

    본문내용

    1.목적
    – 논리, 연산, 곱셈, 나눗셈, shift, rotation과 같은 데이터 처리 명령어들을 수행시키며, 레지스터에 저장되는 결과와 flag의 변화를 이해한다.
    – Flag들의 종류와 역할에 대해 이해한다. flag가 set되었을 때의 의미를 이해한다.
    – bit field와 extension과 관련된 bits단위 데이터처리 명령어들의 동작을 확인한다.

    2.이론
    2-1. Number system / ASCII code
    8진수와 16진수는 2진수를 3bits, 4bits 단위로 묶어 표현하는 수체계이다. 이들은 모두 10진수로 상호변환 가능하다. 컴퓨터는 음수를 포함한 signed number를 표현하기 위해, 2’s complement를 사용한다. 2’s complement는 MSB를 sign bit로 간주하여, MSB가 0이면 양수, 1이면 음수로 표현한다. 또한 양수에서 음수로의 변환은 2진수 각 bit를 inverting 후, 1을 도하는 방식으로 이뤄진다. 2’ complement는 뺄셈을 음수와의 덧셈으로 표현할 수 있고, 이에 따라 덧셈과 뺄셈을 수행하기 위한 하드웨어가 동일해지고, unsigned number의 연산 하드웨어를 signed number에도 그대로 적용할 수 있다는 장점이 있기에, 주로 사용된다.

    연산에 사용되거나 주소를 표현할 수 있는 ‘수’와 text 문서를 구성하는 string에서의 ‘표기’를 구분하기 위해 ASCII code가 사용된다. character ‘0’ 같은 경우, 7-bit로 coding되어 0x30을 배정하는 방식이다.

    table 1.1: ASCII code table
    table 1.1과 같이, 0x00~0x1F, 0x7F의 경우 총 33개의 control character로, 나머지는 95개의 printerable character로 구성된다. 0x00은 NULL character에 해당되고, string의 마지막을 표시한다.

    출처 : 해피캠퍼스

  • 시사이슈 분석 비트코인 투자 광풍을 통해 본 비트코인의 현재와 미래 가치에 대한 분석

    목차

    1. 비트코인을 중심으로 한 가상화폐에 대한 광기적(狂氣的) 투자 열풍
    2. 제도권으로 점점 편입되고 있는 비트코인
    3. 국내에서도 비트코인에 대한 제도적 논의 지속으로 이루어져
    4. 비트코인의 미래 가치는 어떻게 될 것인가. (비트코인은 금을 뛰어 넘을 수 있을까)

    본문내용

    1. 비트코인을 중심으로 한 가상화폐에 대한 광기적(狂氣的) 투자 열풍
    그야말로 비트코인을 중심으로 한 가상화폐에 대한 투자에 엄청난 관심이 모아지고 있다. 비트코인이란 2009년에 발행된 P2P 기반의 암호화폐이다. <비트코인> 이라는 명칭은 컴퓨터의 단위를 뜻하는 비트(Bit)와 화폐를 뜻하는 코인(Coin)에서 유래되었다.
    비트코인의 가장 큰 특징은 역시 탈중앙화(脫中央化)이다. 기존 화폐와 달리 정부나 중앙은행, 금융기관의 개입 없이 개인간(P2P)의 빠르고 안전한 거래가 가능하며, 정부가 원하면 더 찍어낼 수 있는 기성 화폐와는 달리 최대 발행량이 한정되어 있다는 것을 특징으로 볼 수 있다.
    비트코인은 최근에 만들어지는 블록체인 기반 코인들과는 다르게 결제나 거래 관련 시스템 즉 화폐로서의 기능에 집중되어 있다. 예를 들어 이더리움은 다양한 어플리케이션으로 발전 될 수 있는 플랫폼적 기능을 하는데 그에 따라 베이직 어텐션 토큰(BAT), 골렘(GOLEM), 어거(AUGUR) 등 많은 코인이 만들어지는데 기초 플랫폼을 제공하는 역할을 한다. 반대로 비트코인은 암호화폐의 역할에 기능이 제한되어 있다.

    출처 : 해피캠퍼스

  • 싱크 어게인(THINK AGINE)

    목차

    없음

    본문내용

    ㅡ 조급함이 일을 망친다 ㅡ

    우리는 매순간 의사결정을 한다. 오늘은 무슨 옷을 입고 나갈까, 오늘 점심은 무엇을 먹어야 하나 일상적인 것부터 시작해서 부동산, 주식 투자. 회사의 중요한 안건까지 뇌는 한시도 쉬지 않고 판단하고 결정한다.

    우리는 자신의 판단과 결정이 최고라고 생각하고 다시 생각하는 것을 주저하는 경향이 있다. 뇌는 ‘인지적 구두쇠’이기에 다시 생각하는 것을 무척 싫어한다. 한 번 내린 결정은 웬만해서는 번복하지 않으려 한다. 그러다 실수를 하고 손실을 보고 후회를 한다.

    저자는 조직 심리학 교수로서 수많은 연구, 조사, 사례를 통해 다시 생각하기의 힘이 우리 삶에서 많은 도움을 주며 위험 요소들을 사전에 제거할 수 있다는 것을 경험적 논증으로 독자들에게 깨달음을 주고 있다.

    똑똑한 사람일수록 더 실패한다고 하는데 ⌜정신적인 마력(馬力)은 정신적인 재주를 보장하지 않는다. 아무리 머리가 좋아도 자기 마음을 바꿀 동기가 부족한 사람은 다시 생각할 많은 경우를 놓치고 만다. 연구 결과에 따르면 지능지수가 높은 사람일수록 고정관념에 빠져들 가능성이 더 높다.⌟ (p046)

    출처 : 해피캠퍼스

  • 2008년 글로벌 금융위기 이후 관광산업의 성장현황 _제주에어

    목차

    1.글로벌 금융위기
    2.기업선정이유
    3.기업소개
    4.기업연혁
    5.기업의 성공요인
    6.결과
    7.출처

    본문내용

    글로벌 금융 위기
    시발점
    서브 프라임 모기지론
    신용등급이 낮은 저소득층에게 주택자금을 빌려주는 미국의 주택담보대출상품이 있다.
    우리말로는 ‘비우량주택담보대출’이라 한다. 미국의 주택 담보 대출은 ‘프라임’, ‘알트-A’, ‘서브프라임’의 3등급으로 구분된다. 서브프라임은 신용도가 일정 기준 이하인 저소득층을 대상으로 하는 상품이라 부실 위험이 커 일반적으로 프라임 등급보다 대출 금리가 2~4% 정도 높다. 2000년대 초반 미국의 부동산 가격 급등으로 모기지론 업체들이 경쟁적으로 주택담보 대출을 확대하면서 서브프라임 등급에 대한 대출 비중도 급격히 상승했다. 그러나 2000년대 중반 집값이 하락하면서 FRB(미국 연방준비제도이사회)는 17차례에 걸쳐 정책금리를 1.0%에서 5.25%로 대폭 올렸고, 이자부담이 커진 저소득층은 원리금을 제대로 갚을 수 없게 됐다. 이로 인해 서브프라임 연체율이 급상승하면서 2007년 ‘서브프라임모기지론 사태’가 일어나게 되었다.

    출처 : 해피캠퍼스