직렬 통신 프로토콜 - 소개

Mark Harris
|  작성 날짜: 사월 13, 2021
직렬 통신 프로토콜 - 소개

이 시리즈의 기사에서는 마이크로컨트롤러, 데이터 생성 및 처리 주변 장치, 그리고 다른 스마트 기기들 사이에 정보를 전송하기 위해 사용할 수 있는 다양한 종류의 직렬 통신 프로토콜을 살펴볼 것입니다. 직렬 통신에 대한 이 소개를 따르는 기사들은 일반적으로 사용되는 몇 가지 더 인기 있는 프로토콜을 다룰 것입니다. 이 시리즈의 마지막에서는 각각의 장단점을 요약할 것입니다. 직렬 통신 버스를 구현해야 할 때 다음에 이 자료가 귀하의 특정 상황에 가장 적합한 옵션을 선택하는 데 도움이 되기를 바랍니다.

요즘 디지털 전자기기는 시장에 나와 있는 대부분의 전자 장치에서 가장 중요한 부분이 되었습니다. 많은 다른 칩들이 사용되고 있으며, 그 복잡한 작동은 다른 유사한 디지털 구성 요소로부터 보내지고 받는 정보에 의존합니다. 이러한 칩들 사이의 통신을 가능하게 하기 위해 공통 프로토콜 표준이 만들어졌습니다. 만약 각 IC나 장치가 고유한 프로토콜을 사용하여 통신한다면 상상해 보십시오. 이것은 마치 모든 인간이 자신만의 고유한 언어를 사용하여 말하는 것과 같을 것입니다. 우리 중 누구도 서로를 이해할 수 없을 정도로 혼란스러울 것입니다.

현재 우리는 다양한 메모리 IC, 디지털 센서, 보호 장치, 프로그래머블 전원 공급 장치, 디지털 포텐쇼미터, 라디오 주파수 IC 등을 보유하고 있습니다. 이 모든 것들은 서로 또는 마이크로컨트롤러, FPGA, 또는 ASIC과 통신할 필요가 있습니다. 이러한 장치 간 통신의 목적은 매우 다양할 수 있습니다. 프로그래밍을 위해 정보를 추출하거나, 행동을 시작하기 위한 신호를 제공하는 것일 수 있습니다.

또한, 일부 프로토콜은 우리 인간이 마이크로컨트롤러를 통해 IC와 상호 작용할 수 있게 해줍니다. 이러한 프로토콜 중 하나를 통해 IC에 신호를 보내도록 프로그래밍된 마이크로컨트롤러에 신호를 보낼 수 있습니다. 또는, 사용 가능한 디버그 도구 중 하나를 연결할 수도 있습니다.

시리얼 통신의 문제 중 하나는 무언가 잘못되었을 때 회로를 찾고 디버깅하기 어렵다는 것입니다. 한 장치에서 다른 장치로 데이터가 전송되지 않는 경우, 문제는 다음 위치 중 하나 이상에 있을 수 있습니다: 전송 장치의 논리, 회로 설계, 시리얼 통신의 인코딩 방식, 통신 버스, 수신기에 의한 디코딩, 수신기의 회로 설계 또는 마지막으로 수신기의 논리입니다. 시리얼 통신에 오실로스코프 프로브를 연결하면 활동 여부를 확인할 수는 있지만, 그 유효성에 대해서는 거의 알려주지 않습니다. 무슨 일이 일어나고 있는지 완전히 보려면 디코딩 기능이 있는 오실로스코프나 로직 분석기가 필요합니다. 이를 통해 펄스를 통해 이동하는 전압 펄스를 알 수 있고, 전압 레벨을 찾아내고, 잡음 문제를 발견하며, 신호 상승 및 하강 속도와 관련된 문제를 찾아볼 수 있습니다.

그러나 직렬 통신을 철저히 디버깅하려면 버스에서 데이터를 디코드하여 데이터가 올바른지, 손상되었는지 또는 충돌의 영향을 받았는지 확인할 수 있는 도구가 필요합니다. 장치 또는 IC 간의 통신을 디버깅하기 위해 특별히 만들어진 디버그 도구가 상당수 있습니다. 업계 표준 로직 분석기 중 하나는 Saleae Logic 시리즈로, Pro 모델은 가장 인기 있는 프로토콜을 모두 분석할 수 있는 충분한 속도를 제공합니다.

많은 저가형 로직 분석기는 SPI와 같은 고속 프로토콜을 처리하기에 너무 느립니다. LA2016 Logic Analyser는 Saleae Logic 8과 Logic 8 Pro 사이의 샘플 속도를 매우 저렴한 비용으로 제공합니다. 저는 하나를 소유하고 있으며 프로토콜을 매우 성공적으로 분석하는 데 사용했습니다.

또한, 펌웨어와 하드웨어 설계 모두에 있어 통신 프로토콜의 고려는 매우 중요합니다. 하드웨어 측면에서는 선택한 마이크로컨트롤러의 데이터시트를 항상 주의 깊게 검토해야 합니다. MCU는 전용 핀을 사용하여 사전에 정의된 프로토콜로만 통신할 수 있습니다. 설계자는 사용할 IC와 필요한 프로토콜을 MCU를 선택하기 전에 미리 결정해야 합니다.

예를 들어, 인기 있는 STM32 Blue Pill 개발 보드에 장착된 STMicroelectronics STM32F103C8T6 장치는 2 x I2C, 3 x USART, 2 x SPI, 그리고 1 x CAN 통신 인터페이스를 포함합니다. 그러나, 이러한 통신 프로토콜의 일부 핀은 공유됩니다. 예를 들어, 장치의 14번 핀을 살펴보면 PA4로 표시됩니다. 이 핀은 USART와 SPI 기능을 모두 가지고 있습니다. 이는 설계 시 모든 SPI 및 USART 인터페이스를 동시에 사용할 수 없음을 의미합니다. 언제 어떤 것이 필요한지 선택하고 계획을 세우거나 더 많은 통신 인터페이스를 지원하는 다른 마이크로컨트롤러를 찾아야 합니다. 물론, PA4 핀은 운영 중에 구성을 변경하여 두 통신 프로토콜 모두에 사용될 수 있습니다. 그러나 여전히 언제 어떤 기능으로 사용될지 신중히 고려해야 합니다. 왜냐하면 동시에 사용될 수 없기 때문입니다. 이는 하드웨어 및 펌웨어 디자인의 복잡성을 증가시킬 것입니다.

Serial Communication

마이크로컨트롤러에서 직렬 통신 핀이 겹칠 수 있으므로 데이터시트를 주의 깊게 읽으십시오. 펌웨어 측에서 통신에 사용될 프로토콜에 기반하여 적절한 IC 통신 라이브러리 모듈을 다운로드하여 사용해야 합니다.

비록 많은 통신 프로토콜이 있지만, 가장 인기 있는 것들은 SPI와 I2C입니다. 각 프로토콜은 그것들의 응용 프로그램, 통신 속도, 설계 고려 사항, 장점 및 단점을 가지고 있습니다. 이 시리즈의 기사에서 차례대로 각각을 살펴볼 것입니다.

요약

이 시리즈의 다음 기사에서는 인기 있는 UART 장치를 살펴보고 그들의 장점과 구현 세부 사항에 대해 논의할 것입니다. 다양한 프로토콜을 비교하며 그들의 주요 장점과 단점을 강조하면서 시리즈를 마무리할 것입니다.

더 궁금한 점이 있으신가요? Altium의 전문가에게 전화하여 다음 PCB 설계에 어떻게 도움을 줄 수 있는지 알아보세요.

작성자 정보

작성자 정보

Mark Harris is an engineer's engineer, with over 16 years of diverse experience within the electronics industry, varying from aerospace and defense contracts to small product startups, hobbies and everything in between. Before moving to the United Kingdom, Mark was employed by one of the largest research organizations in Canada; every day brought a different project or challenge involving electronics, mechanics, and software. He also publishes the most extensive open source database library of components for Altium Designer called the Celestial Database Library. Mark has an affinity for open-source hardware and software and the innovative problem-solving required for the day-to-day challenges such projects offer. Electronics are passion; watching a product go from an idea to reality and start interacting with the world is a never-ending source of enjoyment. 

You can contact Mark directly at: mark@originalcircuit.com

관련 자료

홈으로 돌아가기
Thank you, you are now subscribed to updates.