ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RPi Zero W, LTE CATM1 내장형 모뎀을 만나 날개를 달다
    리눅스 PPP 모뎀 2022. 3. 16. 20:37

    최근 라즈베리파이 제로와 LTE CATM1 내장형 모뎀을 연결해서 어디서나 통신이 가능한 

    단말기를 개발하려고 하는데 도움을 제공해 줄 수 있는지 문의하는 전화를 받았습니다.

     

    라즈베리파이 제로는 저렴한 가격과 작은 사이즈, 리눅스 구동에 따른 유연함과 확장성으로 인해

    초소형 미니컴퓨터 타입의 솔루션을 개발하려고 하는 개발자와 유저들로부터 많은 사랑을 받고 있는

    제품입니다. 

     

    장점도 분명하지만 단점 또한 확실해서 ARM11의 느린 컴퓨팅 처리속도와 USB 허브가 내장되어 있지 않아서

    전원 USB, 디바이스 연결 USB 두 포트가 전부라 기능을 확장하기에 큰 어려움이 있습니다. 

     

    여기에 LTE CATM1 내장형 모뎀을 연결하려고 여러 가지 시도를 1주일 정도 진행해 보고 최종 정리된 내용을 

    블로그를 통해 공유하고자 합니다. 

     

    일단, 기존에 블로그에 포스팅한 USB TTL을 통한 LTE CATM1 내장형 모뎀과의 연결이 불가능합니다. 

    위 서술한 디바이스 연결포트가 하나이기 때문에 거기에 키보드라도 하나 연결하게 되면 다른 것을 연결할 수 없습니다.

     

    따라서 LTE CATM1 내장형 모뎀의 UART포트를 라즈베리파이에 직접 연결해야 합니다. 

    그리고 데이터 전송시 Loss를 방지하기 위해 하드웨어 흐름 제어 기능도 살려서 RTS, CTS핀을 통해서 안정적인 통신환경도 제공하고자 했습니다.

     

    이번 작업에서는 RPI Zero와 CATM1 내장모뎀을 PPP 통신 방식으로 연결하려고 합니다. 

    자료출처 : https://flylib.com/books/en/3.475.1.45/1/
    자료출처 : https://flylib.com/books/en/3.475.1.45/1/

    PPP통신 방식은 나온지 꽤(?) 오래된 방식입니다. 이전에 전화접속 모뎀을 경험해 보신 분이 계실 텐데, 그때부터 쭉 이어져 왔다고 생각하시면 됩니다. 전화 모뎀에서 현재 LTE 모뎀으로 변경되고 성능도 좋아졌지만 사용하는 방법에서 큰 차이는 없습니다. 하지만 ppp driver, ppp daemon을 거쳐서 IP layer를 통해 동작하는 방식에 대해서는 기본적으로 이해하고 있어야 다루시는데 무리가 없습니다.  

     

    그럼 작업을 시작해 보겠습니다. 

    먼저 RPI Zero와 CATM1은 아래와 같이 연결했습니다. 

    RPI Zero -- LTE CATM1 모뎀 배선도

    RPI Zero 3.3V -- CATM1 VBAT, IO_REF, LDO_EN, MWAKEUP

    RPI Zero GND -- CATM1 GND

    RPI Zero TX -- CATM1 UART0_RX

    RPI Zero RX -- CATM1 UART0_TX

    RPI Zero GPIO 16 -- CATM1 UART0_RTS

    RPI Zero GPIO 17 -- CATM1 UART0_CTS

    RPI Zero GPIO 26 -- CATM1 MRESET

     

    와 같이 배선했고, 브래드보드를 사용해서 아래와 같이 연결했습니다.

    RPI Zero -- LTE CATM1 실제 연결사진

    이제 하드웨어 준비는 마무리 되었습니다. 

    이제 RPI Zero 를 동작시키기 위한 이미지를 준비하도록 하겠습니다. 

    마이크로 SD카드와 Raspberry Pi Imager 프로그램만 설치하면 아래와 같이 손쉽게 이미지를 다운로드하여 마이크로 SD카드에 설치하실 수 있습니다. 

     

    이후 준비된 마이크로 SD카드를 RPI Zero에 넣고 부팅시키면 초기화 작업이 진행 됩니다. 

    저는 RPI Zero W를 사용했는데, 지역을 한국으로 설정할 경우 와이파이가 접속되지 않아서 미국으로 설정하고 진행했고, 다음 설정에서 최신 버전으로 패키지 업데이트를 선택했습니다. (최신 버전 패키지 설치 시 시간이 꽤 걸립니다)

     

    모든 과정을 마치고 재부팅 하였습니다. 

     

    이제 UART포트로 PPP통신을 하기 위한 설정은 본격적으로 시작하겠습니다.

    먼저 RPI Zero의 Serial을 사용할 수 있도록 아래와 같이 설정해야 합니다. 

     

    터미널을 열어서,

    sudo raspi-config 를 실행합니다. 

    3번 메뉴를 선택합니다.

    Serial Port 설정 메뉴를 선택합니다.

    Serial을 login shell로 사용할 거냐? 묻는 질문에 No를 선택합니다.

    하드웨어 Serial Port 기능을 Enable 할 거냐는 질문에 Yes를 선택합니다.

    설정 결과를 보여 줍니다.

    이제 커서를 오른쪽으로 선택해서 Finish를 선택하고 reboot 시킵니다.

    재부팅 후 터미널을 열어서 ls -al /dev/tty* 해서 확인해 보면 ttyS0가 생성된 것을 확인할 수 있습니다.

     

    자 이제 PPP설정을 위해 필요한 패키지를 순서대로 설치해 보겠습니다. 

    vim, ppp, minicom 을 아래와 같이 설치했습니다.

    sudo minicom -s 를 실행합니다.

     

    이제 RPI Zero W와 연결된 LTE CATM1 내장형 모뎀을 설정해 보겠습니다.

    1. a 키를 누르고 /dev/ttyS0 로 변경 후 Enter Enter를 누른다.

    2. e키를 누르고 e키를 누르고 “115200”로 설정 EnterEnter를 누른다.

    3. f키를 눌러서 “No”로 설정

    4. Enter를 누른다.

    5. Exit 메뉴를 고르고 Enter로 선택

    minicom Serial port 설정화면

    이제 아래와 같이 RPI Zero와 LTE CATM1 모뎀이 접속된 화면이 보입니다.

    터미널에 아래와 같이 AT명령어를 입력합니다.

    모뎀 CTS/RTS 하드웨어 흐름 제어 기능을 Enable 시키고, 모뎀 속도를 921600bps로 설정했습니다. 

    6. AT 입력 + enter – OK

    7. at%setacfg=modem_apps.Mode.AutoConnectMode,true + enter  OK 

    8. AT&K3 입력 + enter – OK

    9. AT+IPR=921600 + enter – OK

    AT명령어 입력 및 결과확인 화면

    이제 아래와 같이 커맨드를 입력해서 minicom에서 빠져나옵니다.

    10. Ctrl+a 누르고 손가락을 떼고 z키를 바로 누름

    11. x키를 누르고 Yes 선택 Enter로 빠져나옴

    LTE CATM1 모뎀에 대한 설정이 완료되었습니다. 해당 설정은 모뎀 내부 저장공간에 기록되어 있어서

    매번 다시 입력하지 않아도 됩니다.

     

    이제 PPP 통신을 위한 chat 스크립트를 가져오겠습니다. 해당 스크립트는 pppd에서 사용하는데 LTE CATM1 내장형 모뎀에 맞게 수정해서 작성해 두었습니다. 

    12. git clone https://github.com/codezoo-ltd/Type1SC_Linux.git

    13. cd Type1SC_Linux

    14. APN(Access Point Name) 설정  : vi Vodafone-Type1SC-chat

    APN이 다를 경우 AT%APNN에 적용되는 APN을 변경

    모든 작업이 완료되면 pon에서 호출하기 위해 아래 경로로 스크립트 파일을 이동시킵니다.

    15. sudo cp –rf Vodafone-Type1SC* /etc/ppp/peers/

    자 이제 PPP통신을 위한 스크립트 작업도 마무리되었습니다. 

     

    마지막으로 RPI Zero의 CTS, RTS 핀 기능을 활성화시키기 위한 프로그램을 설치하도록 하겠습니다. 

    RPI Zero의 16번, 17번 핀은 각각 아래와 같이 CTS, RTS 용도로 사용할 수 있습니다.

    GPIO16 : UART0 CTS(Alt3)
    GPIO 17 : UART0 RTS(Alt3)

    16. raspberry pi rtscts 설정 프로그램 다운로드 및 빌드

    cd ~/

    git clone https://github.com/codezoo-ltd/rpirtscts.git

    cd rpirtscts

    make clean && make

    자 모든 준비가 완료되었습니다. 1~16까지의 과정 잘 따라오시느라 고생하셨습니다. 

    이제 통신 테스트를 진행하겠습니다.

    먼저 와이파이를 끄고 시스템을 재시작하도록 하겠습니다.

    재시작 후 터미널을 열어서 ifconfig 명령을 실행해 보면 아래와 같이 loopback 장치만 하나 잡혀 있습니다.

     

    우선 RPI Zero의 RTSCTS 기능을 활성화하도록 하겠습니다.

    cd rpirtscts

    sudo rpirtscts on

    RPI Zero RTS, CTS기능 활성화 및 모뎀 재시작

    gpio readall 명령을 통해 RPI Zero RTS, CTS 기능(ALT3)이 잘 설정된 것을 확인할 수 있습니다.

    17 -- ALT3, 16 -- ALT3 확인

    이제 아래 명령으로 PPP통신을 연결하겠습니다.

    sudo pon vodafone-Type1SC

    PPP접속 및 IP획득 화면

    ifconfig을 통해서 디바이스가 제대로 붙었는지 확인할 수 있습니다.

     

    1) 핑 테스트 (구글닷컴에 10개의 핑을 보내고 응답 시간 체크)

    ping -c 10 www.google.com 

    구글닷컴 핑테스트 화면 

    2) 파이썬 테스트 코드로 통신 테스트 (아래 파이썬 코드로 에코 서버 테스트 진행)

    python socket echo test code

    python3 ./python_echo_client.py

    3) 인터넷 속도 테스트 사이트 체크

    fast.com 속도테스트, upload 380Kbps, download 210Kbps

     

    속도테스트 영상

    전체 동작 테스트 영상 첨부합니다.

     

    긴 글 읽으시느라 고생하셨습니다. 감사합니다.

    Murata Type1SC 모듈 구매, 자료 관련 문의
    (주)아성코리아
    전지만 이사 010-5418-8812 mlcc@asung.com
    박상인 차장 010-6556-5405 sipark@asung.com

    LTE-CATM1 내장형 모뎀 대량 구매 상담, 외주 개발, 협업 문의
    (주)코드주
    장병남 대표 010-8965-1323 rooney.jang@codezoo.co.kr

     

    https://www.devicemart.co.kr/goods/view?no=14077527 

     

    LTE-CatM1 내장형 모뎀 / 사물인터넷 통신모듈

    사물인터넷 개발을 위한 LTE 모듈입니다. / CodeZoo / 사물인터넷 통신모듈 / 유심은 상품상세의 링크에서 별도 구매가 필요합니다.

    www.devicemart.co.kr

    https://smartstore.naver.com/codezoo/products/7153689192

     

    Vodafone Global IoT SIM Card : codezoo

    [codezoo] IoT Global SIM, IoT Connectivity, IoT Device

    smartstore.naver.com

Designed by Tistory.