>백엔드 개발 >PHP 튜토리얼 >PHP 및 RS232 프로토콜을 통해 직렬 통신을 구현하는 방법

PHP 및 RS232 프로토콜을 통해 직렬 통신을 구현하는 방법

王林
王林원래의
2023-07-29 17:59:062500검색

PHP 및 RS232 프로토콜을 통해 직렬 통신을 구현하는 방법

개요:
현재 직렬 통신은 산업 자동화, 통신 장비 등 다양한 분야에서 널리 사용되고 있습니다. 이 기사에서는 PHP 언어를 사용하여 RS232 프로토콜을 통해 직렬 포트와 통신하는 방법을 소개하고 관련 코드 예제를 제공합니다.

RS232 프로토콜 소개:
RS232 프로토콜은 일반적으로 사용되는 직렬 통신 프로토콜로 직렬 통신의 물리 계층과 데이터 링크 계층에 대한 표준을 정의합니다. RS232 프로토콜을 통해 컴퓨터와 센서, PLC 등과 같은 외부 장치 간에 데이터를 전송할 수 있습니다.

PHP가 RS232와 통신하는 방법:
PHP 언어를 사용하여 직렬 포트와 통신하려면 PHP 확장 라이브러리 php_serial을 사용해야 합니다. php_serial은 직렬 통신 기능을 PHP 클래스 라이브러리에 캡슐화하는 오픈 소스 확장 라이브러리입니다.

단계는 다음과 같습니다.

  1. 시스템이 직렬 포트 통신을 지원하는지 확인하세요
    php_serial을 사용하기 전에 먼저 시스템의 직렬 포트 장치가 제대로 작동하는지 확인해야 합니다. 터미널 명령 ls /dev/tty*을 사용하여 시스템에서 사용 가능한 직렬 장치를 볼 수 있습니다.
  2. php_serial 확장 라이브러리 설치
    다음 명령을 통해 php_serial 확장 라이브러리를 설치할 수 있습니다.

    sudo apt-get install php-pear
    sudo pecl install channel://pecl.php.net/php_serial

    설치가 완료된 후 php.ini에 다음 구성을 추가해야 합니다.

    extension=php_serial.so
  3. php_serial 소개 클래스를 생성하고 직렬 포트 객체를 생성합니다
    PHP 코드에서 require_once 키워드를 통해 php_serial 클래스를 도입하고 SerialPort 객체를 생성할 수 있습니다:

    require_once('php_serial.class.php');
    $serial = new phpSerial;
  4. 직렬 포트 매개변수를 설정하세요
    직렬 포트와 통신하기 전에 다음을 수행해야 합니다. 전송 속도, 데이터 비트, 패리티 등과 같은 직렬 포트의 매개변수를 설정합니다. setPort, setParity, setDataBits 및 기타 메소드를 사용하여 직렬 포트 매개변수를 설정할 수 있습니다:

    $serial->setPort("/dev/ttyUSB0");
    $serial->setBaudRate(9600); //设置波特率为9600
    $serial->setParity("none");
    $serial->setDataBits(8);
    $serial->setStopBits(1);
    $serial->setFlowControl("none");
  5. 직렬 포트 열기
    직렬 포트 매개변수를 설정한 후 open 메소드를 통해 직렬 포트를 열 수 있습니다:

    $serial->open();
  6. 직렬 포트 데이터 읽기 및 쓰기
    readPort 메서드를 통해 읽을 수 있음 직렬 포트에서 받은 데이터 가져오기:

    $read_data = $serial->readPort();

    writePort 메서드를 통해 직렬 포트로 데이터를 보낼 수 있습니다:

    $serial->writePort("Hello World!");
  7. 직렬 포트를 닫습니다
    이후 통신이 완료되면 직렬 포트를 닫아야 합니다.

    $serial->close();

    전체 PHP 코드 예제는 다음과 같습니다.

    require_once('php_serial.class.php');
    
    $serial = new phpSerial;
    $serial->setPort("/dev/ttyUSB0");
    $serial->setBaudRate(9600);
    $serial->setParity("none");
    $serial->setDataBits(8);
    $serial->setStopBits(1);
    $serial->setFlowControl("none");
    
    $serial->open();
    
    $serial->writePort("Hello World!");
    
    $read_data = $serial->readPort();
    
    $serial->close();

    필수 Linux 및 Windows 시스템의 직렬 포트 통신 구현은 약간 다르며 그에 따라 조정될 수 있습니다. 시스템 유형에 따라.

결론:
PHP 및 RS232 프로토콜을 통해 직렬 통신을 실현하면 프로젝트에 더 많은 가능성을 가져올 수 있습니다. 실제 응용 분야에서는 외부 장치와의 데이터 상호 작용을 달성하기 위해 특정 요구 사항에 따라 직렬 포트 매개 변수를 유연하게 조정할 수 있습니다. 이 글이 독자들에게 도움이 되고 더 많은 탐색과 연습을 촉발할 수 있기를 바랍니다.

위 내용은 PHP 및 RS232 프로토콜을 통해 직렬 통신을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.