SPI 통신의 네트워크 계층
STM32 코어와 메모리 간에 SPI 통신으로 데이터를 주고받는 실습을 해봤습니다.
이 때 SPI 통신은 OSI 7계층의 어디까지 해당하는지 궁금해져서 질문 올립니다.
위키백과의 데이터 링크 계층 설명을 보면 '장치 간 신호를 전달하는 물리 계층'이란 말이 있는데 코어와 메모리 사이의 신호를 전달하니까 Physical layer 같기도 하고, '네트워크 상의 주변 장치들 간 데이터를 전송한다'는 말을 보면 데이터 링크 계층처럼도 느껴집니다. 코어 기준으로 메모리는 주변장치이니까요.
여러분은 어떻게 생각하시는지 듣고 싶습니다.
아래는 위키백과 데이터 링크 계층 설명입니다.(https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%A7%81%ED%81%AC_%EA%B3%84%EC%B8%B5)
데이터 링크 계층(영어: data link layer)은 장치 간 신호를 전달하는 물리 계층을 이용하여 네트워크 상의 주변 장치들 간 데이터를 전송한다.
데이터 링크 계층에는 두 가지 주요 기능이 있다.
주소 할당: 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.
오류 감지: 신호가 전달되는 동안 오류가 포함되는지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기한다.
안녕하세요! 처음으로 질문을 올려봅니다. 제가 뭔가 실수한 게 있다면 양해 부탁드립니다. 댓글로 알려주세요^^;
SPI 에 대해서 잘 모르지만 physical
SPI 에 대해서 잘 모르지만 physical layer는 바이너리 (binary) 데이터를 나르기만 하는 계층입니다. 진짜 나르기만 합니다. 유선 통신이라면 그냥 (transceiver) + 구리선이라고 보시면 됩니다.
link layer는 physical layer 위에 '0', '1' 바이너리 비트 스트림 (bit stream) 위에 헤더(header), 체크섬(checksum) 등을 두어 패킷을 분석/해석하고 무결성을 확인하는 정도의 단계를 수행할 수 있는 계층입니다.
SPI 프로토콜은 소프트웨어 처리가 필요하니 Data
SPI 프로토콜은 소프트웨어 처리가 필요하니 Data link layer라는 생각이 드네요. 답변 감사합니다ㅎㅎ
좀 더 설명을 드리자면 소프트웨어는
좀 더 설명을 드리자면 소프트웨어는 Application layer에서 담당합니다. 사실 거의 모든 통신 프로토콜은 소프트웨어적인 처리가 필요하죠.
아래 나빌레라님이 찾은 것처럼 SPI 프로토콜은 Physical layer + Link layer만 지원하는 간단한 프로토콜로 보입니다. 나머지 쓰임새는 유저가 어떻게 활용할 것이냐에 따라 변화되겠죠.
SPI 프로토콜이 지원하는 수준 이상의 무결성 체크 방식이라든지, Ack/NACK 등의 처리, 라우팅의 처리 등등이 필요하면 그 부분은 SPI 프로토콜 보다 상위에서 유저가 추가로 개발해서 넣어야 할 것 같습니다.
예를 들어 TCP/IP over SPI 프로토콜 같은 것도 나올 수 있겠죠.
우왕 그렇군요!!
우왕 그렇군요!!
저는 CubeMX HAL 라이브러리가 제공하는 SPI 관련 함수를 사용했는데
제가 접한 코드는 Application layer에 해당하고, 필요에 따라 다른 레이어에 관한 설정을 하는 코드를 개발해 사용할 수 있고, 실제 SPI 통신이 일어나는 건 Physical, Data link 레이어라고 생각하면 될까요?
프로토콜은 정의된 그대로 사용하는 건 줄 알았는데 필요한 만큼 응용해서 쓰는 거였군요. 더 알려주셔서 감사합니다!ㅎㅎ
http://www.ijesit.com/Volume
http://www.ijesit.com/Volume%203/Issue%204/IJESIT201404_46.pdf
구글에서 "what osi layer for SPI" 로 검색했을 때 나오는 첫 번째 링크를 눌러보니 답이 있네요.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
답변 감사합니다. 덕분에 궁금증도 해결하고 적절한
답변 감사합니다. 덕분에 궁금증도 해결하고 적절한 검색 키워드도 알게됐습니다ㅎㅎ
댓글 달기