[AES-128 암호화 및 AES-CMAC 알고리즘 구현 원리 파악 성공]  

개인사업자로 IT 분야 펌웨어 개발 등  개발용역 사업을 한지 약 10 년 입니다  ...

로라통신 디바이스단 / 게이트웨이단 프로토타입 펌웨어 개발  Semtech SX1276 으로 가능 합니다 ...     귀사 요구에 맞춰 최대한 시간을 맞춰서 프로토타입 개발 진행이 가능 합니다 ...      Semtech 회사 사이트에서  SX1276  에서 다운로드 받은 펌웨어 세부 분석이 되있어서 최대한 빠른 기간내 펌웨어 개발 진행이 가능 합니다  ...     저는 지역이 수원 이고  맡겨 주시면  확실하게 결과물 내는것이 가능합니다  ...

LoRA (Long Range)는 저전력 광역 네트워크 (LPWAN) 기술로, 장거리 통신과 저전력 소비를 가능하게 하는 무선통신 방식입니다. LoRA 시스템은 크게 네 부분으로 나뉩니다: 디바이스단, 게이트웨이단, 네트웍 서버단, 그리고 어플리케이션 서버단. 각 부분의 구현 기술에 대해 상세히 설명드리겠습니다.

 

디바이스단 (End Device): 디바이스단은 데이터를 수집하고 LoRA 네트워크에 전송하는 IoT 장치입니다. 이들은 주로 센서나 액추에이터로 구성되며, LoRA 모듈을 통해 무선 신호를 전송합니다. 디바이스단의 핵심 기술은 Chirp Spread Spectrum (CSS) 변조 방식을 사용하여 장애물이 많은 환경이나 장거리에서도 간섭을 최소화하면서 데이터를 전송하는 것입니다.

게이트웨이단 (Gateway): 게이트웨이는 디바이스단으로부터 신호를 수신하여 인터넷을 통해 네트웍 서버로 전달하는 역할을 합니다. 게이트웨이는 별 모양의 토폴로지를 형성하여 중앙 네트워크 서버와 백엔드의 최종 장치 간 메시지를 릴레이합니다. 게이트웨이는 일반적인 IP 연결을 사용하여 네트워크 서버에 연결되며, 다수의 디바이스단과 통신할 수 있습니다.

네트워크 서버단 (Network Server): 네트워크 서버는 게이트웨이로부터 받은 데이터를 처리하고, 필요에 따라 디바이스단에 명령을 전송합니다. 또한, 네트워크의 보안과 데이터 라우팅을 관리합니다. 네트워크 서버는 Adaptive Data Rate (ADR) 알고리즘을 통해 연결된 각 센서의 데이터 속도를 관리하여 최적화합니다.

어플리케이션 서버단 (Application Server): 어플리케이션 서버는 사용자가 데이터를 분석하고 관리할 수 있도록 사용자 인터페이스를 제공합니다. 이 서버는 네트워크 서버로부터 데이터를 받아 사용자가 이해할 수 있는 형태로 가공하며, 사용자의 명령을 네트워크 서버로 전송하여 디바이스단의 동작을 제어할 수 있습니다

 

LoRA 네트워크의 보안은 여러 계층에서 구현되며, 이는 데이터의 무결성과 기기의 인증을 보장하기 위해 설계되었습니다. 주요 보안 기능은 다음과 같습니다:

  1. 네트워크 세션 키 (Network Session Key): 이 키는 네트워크 서버와 디바이스 간의 통신을 암호화하여 네트워크 레벨의 보안을 제공합니다.
  2. 애플리케이션 세션 키 (Application Session Key): 이 키는 애플리케이션 서버와 디바이스 간의 통신을 암호화하여 애플리케이션 데이터의 보안을 담당합니다.
  3. 장치 주소 (Device Address): 각 LoRA 디바이스는 고유한 주소를 가지며, 이를 통해 네트워크는 디바이스를 식별하고 관리합니다.
  4. 메시지 무결성 코드 (MIC): 전송된 각 메시지에는 MIC가 포함되어 있어, 메시지가 변경되지 않았음을 확인하고, 메시지의 출처가 유효한 디바이스임을 보증합니다.
  5. 하드웨어 보안 모듈 (Hardware Security Module): 일부 LoRA 솔루션은 키 관리와 암호화 작업을 위해 하드웨어 보안 모듈을 사용합니다. 이는 물리적 해킹으로부터 키를 보호하고, 보안성을 높입니다.

이러한 보안 메커니즘은 LoRA 네트워크가 안전하게 운영될 수 있도록 하며, 다양한 IoT 환경에서의 신뢰성 있는 데이터 전송을 가능하게 합니다. 또한, LoRA Alliance에서 정의한 LoRaWAN 프로토콜은 이러한 보안 기능들을 표준화하여, 네트워크의 호환성과 보안을 강화하고 있습니다.

 

LoRa Gateway Uplink: radio packets 는 gateway 에 의해 수신된다 , 그리고 Gateway 에 의해 메터데이터가 더해지고 여기에 Gateway Status 정보가 더해져서 Network Server 로 forward 처리된다. 
LoRa Gateway Downlink:  Network Server 에 의해 패킷이 생성되고 , 부가적인 메터데이터를 포함될수 있고, 또한 Gateway 의 Configuration Data 도 포함되서 Gateway 의 Radio Channel 로 Transmit 된다  

 

SemTech 사가 공개하는 디바이스단의 펌웨어 소스는 ClassA/B/C end-device 구현시 Periodically uplinks a frame 은 the Cayenne LPP protocol 을 사용한다.   Cayenne Low Power Payload (LPP) 은 편리하고 쉬운 방안을 제공해서 LoRaWAN 같은  LPWAN networks 로 데이터를 Send 를 구현한다 ...  Cayenne LPP 는 payload size restriction 이 있다 11 bytes 보다 적은 수 만 한번에 센서 데이터들을 LoRa 디바이스가 Send 하는것을 허용한다. 

 

로라통신의 보안 메커니즘에서,  MAC( Message Authentication Code )은 메시지의 위변조를 확인하기 위해 쓰이는 보안 기술 입니다.  CMAC은 알고리즘과 모드 에 따라 AES CBC-MAC 메커니즘이 있구요 ...  CMAC 도 마찬가지로 주된 기능은 사용자 인증(authentication)과  데이터 무결성(data integerity) 처리를 위한것 입니다 ...  MAC 은  MAC 을 만들때  Block 함수를 사용하면 CMAC( Cipher-based Message Authentication Code )가 됩니다 ...  

 

SX1301 칩셋을 사용하여 LoRa 게이트웨이에서의 주요 기능을 구현하는 방법을 이해하기 위해, 각 기능과 관련된 레지스터 설정을 상세히 설명하겠습니다. SX1301은 LoRaWAN 네트워크의 핵심 구성 요소로서, 디바이스와 네트워크 서버 간의 통신을 관리합니다.

LoRa 게이트웨이의 핵심 역할과 SX1301의 레지스터 설정

  1. 신호 수신 및 송신
    • 역할: LoRa 디바이스로부터 신호를 수신하고, 네트워크 서버로 데이터를 송신합니다.
    • 제어 레지스터: REG_OP_MODE, REG_PACONFIG, REG_RFLR_PADAC, REG_HOP_PERIOD
      • 수신 모드 설정: REG_OP_MODE 레지스터에서 수신 모드를 설정합니다. 이 레지스터의 값에 따라 칩셋이 수신 모드로 작동하도록 설정할 수 있습니다.
      • 송신 모드 설정: REG_OP_MODE 레지스터의 설정을 통해 송신 모드로 전환합니다.
      • 주파수 설정: REG_FRF_MSB, REG_FRF_MID, REG_FRF_LSB 레지스터를 통해 주파수를 설정합니다. 이 레지스터들에 대해 원하는 주파수 값을 설정하여, 송신 및 수신 주파수를 조정합니다.
      • 출력 전력 설정: REG_PACONFIG, REG_RFLR_PADAC 레지스터를 사용하여 송신 전력을 설정합니다.
  2. 프레임 복조 및 디코딩
    • 역할: 수신된 LoRa 프레임을 복조하고 디코딩하여 네트워크 서버에 전달할 수 있는 데이터로 변환합니다.
    • 제어 레지스터: REG_MODEM_CONFIG1, REG_MODEM_CONFIG2, REG_DETECTION_OPTIMIZE, REG_DETECTION_THRESHOLD
      • 복조 방식 설정: REG_MODEM_CONFIG1 및 REG_MODEM_CONFIG2 레지스터를 통해 모듈레이션 방식, 대역폭, 코드율 등을 설정합니다.
      • 프레임 검출 설정: REG_DETECTION_OPTIMIZE, REG_DETECTION_THRESHOLD 레지스터를 사용하여 패킷의 신호 검출 임계값을 조정합니다.
  3. 네트워크 서버와의 통신
    • 역할: 수신한 데이터를 네트워크 서버에 전송하고, 네트워크 서버의 명령을 디바이스에 전달합니다.
    • 제어 레지스터: REG_FIFO, REG_FIFO_ADDR_PTR, REG_FIFO_TX_BASE_ADDR
      • 패킷 전송: REG_FIFO 레지스터를 통해 송신할 데이터 패킷을 FIFO에 쓰고, 송신 작업을 시작합니다.
      • 패킷 수신: REG_FIFO 레지스터를 통해 수신된 패킷을 읽어들입니다. REG_FIFO_ADDR_PTR 레지스터를 사용하여 읽을 데이터의 위치를 지정합니다.
  4. 패킷 처리 및 필터링
    • 역할: 수신된 패킷을 필터링하고, 오류가 있거나 불필요한 패킷을 제거합니다.
    • 제어 레지스터: REG_PKT_SNR_VALUE, REG_PKT_RSSI_VALUE, REG_RX_NB_BYTES
      • 패킷 필터링: REG_PKT_SNR_VALUE와 REG_PKT_RSSI_VALUE 레지스터를 통해 패킷의 신호 대 잡음비(SNR)와 수신 신호 세기(RSSI)를 모니터링하여 유효한 패킷을 필터링합니다.
      • 패킷 길이 설정: REG_RX_NB_BYTES 레지스터를 통해 수신할 패킷의 길이를 설정합니다.
  5. 주파수 동기화 및 시간 동기화
    • 역할: LoRa 디바이스와의 주파수 및 시간 동기화를 통해 정확한 데이터 전송 및 수신을 보장합니다.
    • 제어 레지스터: REG_SYNC_WORD, REG_HOP_PERIOD
      • 동기화 단어 설정: REG_SYNC_WORD 레지스터를 사용하여 동기화 단어를 설정합니다. 이 단어는 디바이스와의 통신에서 동기화를 보장합니다.
      • 주파수 홉 설정: REG_HOP_PERIOD 레지스터를 통해 주파수 홉 주기를 설정하여 동기화의 정확성을 높입니다.

결론

SX1301 칩셋의 각 레지스터는 LoRa 게이트웨이의 핵심 기능을 구현하는 데 중요한 역할을 합니다. 신호 수신 및 송신, 프레임 복조 및 디코딩, 네트워크 서버와의 통신, 패킷 처리 및 필터링, 주파수 및 시간 동기화는 모두 이러한 레지스터 설정을 통해 효과적으로 수행됩니다. 이들 레지스터를 적절히 제어함으로써, 게이트웨이는 LoRaWAN 네트워크의 원활한 운영을 지원합니다.

 

LoRa 게이트웨이는 LoRa 패킷을 IP 패킷으로 변환하여 네트워크 서버로 전송하고, 네트워크 서버에서 받은 IP 패킷을 LoRa 패킷으로 변환하여 LoRa 디바이스로 전송합니다. 이 과정은 게이트웨이의 소프트웨어와 네트워크 구조에 의해 관리됩니다. 상세한 송수신 구조와 방식을 설명하겠습니다.

1. LoRa 패킷을 IP 패킷으로 변환하여 네트워크 서버로 전송하는 과정

구조와 방식

  1. LoRa 패킷 수신
    • SX1301 역할: LoRa 디바이스에서 수신된 무선 신호를 디지털 데이터로 복조합니다.
    • 레지스터: REG_FIFO, REG_FIFO_ADDR_PTR를 통해 수신된 패킷 데이터를 읽습니다.
  2. 패킷 처리
    • 게이트웨이 애플리케이션 프로세서:
      • 수신 데이터의 디코딩: SX1301에서 받은 데이터를 애플리케이션 프로세서가 해석합니다. 데이터는 LoRaWAN 프로토콜에 따라 포맷이 지정되어 있습니다.
      • LoRaWAN 프레임 추출: 수신된 LoRa 프레임을 LoRaWAN의 MAC (Medium Access Control) 프레임으로 디코딩하여, 페이로드와 메타데이터(예: 디바이스 주소, 패킷 순서 등)를 추출합니다.
  3. IP 패킷 변환
    • 게이트웨이 소프트웨어:
      • LoRaWAN 데이터의 IP 패킷화: 디코딩된 LoRaWAN 데이터와 메타데이터를 IP 패킷으로 변환합니다. 이 과정에서는 LoRaWAN 프로토콜에서 IP 패킷 포맷으로 데이터를 변환하는 작업이 필요합니다. 일반적으로 MQTT, HTTP, UDP 등 IP 프로토콜을 사용하여 네트워크 서버와 통신합니다.
  4. 네트워크 서버로 전송
    • 전송 프로토콜:
      • MQTT: LoRaWAN 게이트웨이는 MQTT 프로토콜을 사용하여 IP 패킷을 네트워크 서버로 전송합니다. MQTT는 메시지 브로커를 통해 IP 패킷을 전송하는 방식입니다.
      • HTTP/HTTPS: HTTP API를 통해 IP 패킷을 POST 요청으로 전송합니다.
      • UDP: UDP 패킷을 통해 IP 패킷을 전송합니다.

2. 네트워크 서버에서 받은 IP 패킷을 LoRa 패킷으로 변환하여 디바이스로 전송하는 과정

구조와 방식

  1. IP 패킷 수신
    • 네트워크 서버 역할: IP 네트워크를 통해 LoRa 게이트웨이로 IP 패킷을 전달합니다.
  2. IP 패킷 처리
    • 네트워크 서버 소프트웨어:
      • IP 패킷 디코딩: 네트워크 서버는 IP 패킷에서 LoRaWAN 데이터와 메타데이터를 추출합니다. 이 데이터는 특정 디바이스로 전송될 메시지와 명령을 포함하고 있습니다.
  3. LoRa 패킷 변환
    • 게이트웨이 소프트웨어:
      • LoRaWAN 데이터 포맷: IP 패킷의 데이터를 LoRaWAN 프레임으로 변환합니다. 여기서는 LoRaWAN 프로토콜에 맞게 데이터 포맷을 재구성합니다.
      • LoRa 프레임 인코딩: LoRaWAN 데이터와 메타데이터를 LoRa 패킷으로 인코딩하여 송신 준비를 합니다.
  4. LoRa 패킷 전송
    • SX1301 역할:
      • 패킷 송신: REG_FIFO, REG_FIFO_ADDR_PTR, REG_FIFO_TX_BASE_ADDR 레지스터를 사용하여 LoRa 패킷을 FIFO 버퍼에 작성합니다. 이후, REG_OP_MODE 레지스터를 통해 송신 모드를 활성화하여 패킷을 송신합니다.
    • 무선 송신: SX1301은 설정된 주파수와 송신 전력으로 패킷을 무선으로 전송합니다.

요약

  • LoRa 패킷 → IP 패킷:
    • SX1301: LoRa 신호를 디지털 데이터로 변환.
    • 게이트웨이 애플리케이션 프로세서: 데이터 디코딩 및 IP 패킷화.
    • 게이트웨이 소프트웨어: IP 패킷 전송 (MQTT, HTTP, UDP).
  • IP 패킷 → LoRa 패킷:
    • 네트워크 서버: IP 패킷을 디코딩.
    • 게이트웨이 소프트웨어: LoRaWAN 데이터 포맷으로 변환.
    • SX1301: LoRa 패킷 송신.

이와 같은 구조와 방식으로, LoRa 게이트웨이는 LoRa 디바이스와 네트워크 서버 간의 데이터 송수신을 원활하게 처리합니다.

 

 

 

로라통신은 스마트팜 구현분야에 적용 가능하고  각종 데이터 송수신시 이 데이터들의 보안처리가 중요한 이슈이기에 로라통신에는 AES-CMAC 보안 알고리즘으로 동작하게 규격문서가 그렇게 설계되 있구요 ...   저는 로라통신에 적용되는 암호화/복호화 알고리즘 설계 기술을 확실하게 확보 성공했읍니다 ...  이 부분 감안해서 장거리 저전력 무선통신 로라통신 펌웨어 개발이 가능 합니다 ...     

딥네트워크   장석원   010 3350 6509   sayhi7@daum.net     으로 로라통신 펌웨어 개발 문의 부탁드립니다 

 

 

 

+ Recent posts