개발자가 꼭 알아야할 지식

MCU란 무엇이고 PC와 주변장치의 상호작용에 대해 알아보기

mandelina 2023. 12. 13. 23:52

일하는 회사의 제품 특성상 RFID , 바코드 , 결제기 같은 단말기기를 다루게 되는데, 오늘 이런 기기들의 상호작용에 대해서 팀장님께서 친절히 설명해 주셔서 정리해본다! 

 

1. MCU (Microcontroller Unit) 란 무엇인가.

 

  • MCU는 소형 컴퓨터로, 마이크로프로세서, 메모리, 입출력 포트 등이 하나의 칩에 통합된 장치
  • 다양한 주변장치에서 제어 및 데이터 처리를 담당
  • 작은 cpu라고 생각하면 된다!! 

 

2. 이 글에서 의미하는 주변장치?

 

 나는 PC기준의 주변장치로만 글을 쓰려고한다! ( 그외는 나도 잘 모름 ㅎㅎ)

주변장치는 주로 개인 컴퓨터(PC) 또는 다른 컴퓨터 시스템과 상호작용하는 하드웨어 장치를 의미하는데, 이러한 장치들은 컴퓨터와 통신하여 데이터를 주고받거나 특정 작업을 수행힌다.

몇가지 주변장치의 예시로는 키보드,마우스,프린터,모니터, USB 등 우리가 흔히 쓰는 장치를 말하고 내가 공부하게 된 계기는  RFID, 바코드 때문! 

 

여기서 MCU의 정의를 먼저 보고 넘어간 이유는, 바로 이런 주변장치 안에 MCU가 포함되어있는것이다.!

 

3. 그럼 이런 MUC가 내장되어있는 주변장치는 어떻게 통신을 하는데 ? 

 

통신 프로토콜은 크게 4가지가 있다.

  • UART (Universal Asynchronous Receiver/Transmitter):
    • 비동기 시리얼 통신을 위한 프로토콜로, 주로 단순한 장치 간의 직렬 통신에 사용
    • 데이터를 비트 단위로 전송하며, 송수신기 간에는 별도의 클럭이 필요하지 않음.
    • 일반적으로 사용되는 프로토콜
  • RS232 (Recommended Standard 232):
    • 시리얼 통신을 위한 표준 인터페이스로, 데이터 송수신을 위해 여러 핀을 사용
    • 주로 컴퓨터와 주변장치 사이의 통신에 사용
  • USBHID (Human Interface Device):
    • USB를 이용하여 사람과 장치 간의 상호작용을 위한 표준
    • 주로 키보드, 마우스 등과 같은 인터페이스 장치에 사용
  • USBCDC (Communication Device Class):
    • USB를 통한 일반적인 통신 장치를 위한 표준으로, 시리얼 통신을 지원
    • 주로 모뎀이나 시리얼 기반 장치와의 통신에 사용

여기서 현재 우리 회사에선 RFID는 USBHID 를, 바코드는 UART 형식의 프로토콜을 사용하고있다.  

 

 

4. MUC 제조회사는 어디있을까?

1. STM (STMicroelectronics): 세미컨덕터 기업으로, 다양한 MCU 및 관련 제품을 생산

 

2. CP2102: Silicon Labs에서 생산한 USB-UART 변환 칩으로, UART 통신을 USB로 변환하는 데 사용

 

3. FT232 (Future Technology Devices International): USB-UART 변환 칩으로, UART를 USB로 연결하여 데이터 통신을 지원

 

 

5.  데이터 프레임의 시작과 끝을 나타내기 위한 전송제어 문자 사용

 

 RFID 시스템은 RFID 리더기가 RFID 태그에게 읽기 또는 쓰기 명령을 보내고, 태그는 이에 대한 응답을 리더기에 전송하면 STX와 ETX라는 전송제어문자를 사용하여 데이터 프레임의 시작과 끝을 나타낸다.

 

이러한 제어 문자는 데이터 프레임을 식별하고 구분하여 RFID 리더기와 PC 간의 효율적인 통신을 가능케 한다. 

 

일반적으로 STX는 0x02 , ETX는 0x03을 사용하는데 따로 설정을 해줄수도 있긴하다. 우리회사는 STX를 77로 설정해서 사용하고있다!  (그리고 신기했던 부분은  VSC에서 STX , ETX 를 인식하고 (?) 예쁘게 처리해준다. )

 

구조는 다음과 같다.

STX | 데이터 | ETX

이런 전송제어 문자를 사용하는 곳은 RFID,바코드뿐만아니라 여러 산업분야와 서비스에서 사용하고있다 .

 

 

뭔가 이런 임베디드 분야의 내용은 잘 모르기도 했고 통신을 어떻게 하는지에 대한 인지조차 하지 않았었는데 어떤 통신방식을 사용하고 대략적으로 어떻게 동작하는지에 대해 알게되어 신기했다 ....

세상에는 참 많은 분야가 있군 ...