소 예 공 방

자바 직렬 통신 개발 환경

길위의행복 2012. 11. 2. 12:14

1. 들어가기


    운영 체제가 아래와 같은 상황에서 자바로 직렬 통신을 할 수 있는 환경에 대해서 조사해 보았다.


        Windows 7 (64비트 운영 체제)


    Java Communications API 2.0에 대한 오라클 구현과 gnu.io.*을 패키지명으로 사용하는 RXTX 구현을 비교해 보았는데, 다음과 같은 이유로 오라클 구현보다 RXTX 구현을 사용하는 것이 바람직하다.

    

        오라클 구현은 OS 지원 대상이 제한적이고, 64비트 바이너리를 제공하지 않으며, 무엇보다도 업데이트가 멎은 듯하다.

        

2. Oracle 구현 사용 방법

        

    Java Communications API 3.0에 대한 오라클 구현이 지원하는 OS는 아래와 같은데, Windows 버전을 제공하지 않으므로 2.0버전을 사용해야 한다.

    

        Solaris SPARC

        Solaris x86

        Linux x86


    2.1 JDK 설치

    

        64비트 JDK에서는 오라클 구현이 제공하는 win32com.dll을 사용하지 못하므로 32비트 JDK를 설치해야 한다.

        

            설치 파일: Windows x86를 위한 jdk-7-windows-i586.exe


    2.2 환경 변수 설정


        java.exe 파일이 다른 경로에, 특히 Windows system32 폴더 아래에 이미 설치되어 있을 수 있다. 앞에서 설치한 JDK의 java.exe를 사용하기 위하여 기존 PATH 변수의 앞쪽에 bin 경로를 추가해 준다.


            > set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0

            > set PATH=%JAVA_HOME%\bin;%PATH%


    2.3 오라클 구현 설치


        Java Communications API는 JDK 확장 패키지이므로 별도로 오라클 구현을 다운로드 받아서 세 개의 파일을 아래 경로로 복사한다.

        

            https://jspoorloos.googlecode.com/files/javacomm20-win32.zip


            %JAVA_HOME%\bin\win32com.dll

            %JAVA_HOME%\\jre\lib\javax.com.properties

            %JAVA_HOME%\\jre\lib\ext\comm.jar

            

    2.4 SimpleRead 예제 수정


        Java Communications API에 포함되어 있는 예제 SimpleRead.java 를 사용하기 위하여 포트 이름과 파라미터를 자신의 환경에 맞게 수정한다.

        

            public static void main(String[] args) {

                ...

                //if (portId.getName().equals("/dev/term/a")) {

                if (portId.getName().equals("COM4")) {

                    SimpleRead reader = new SimpleRead();

                }

                ...

            }

            

            public SimpleRead() {

                ...

                //serialPort.setSerialPortParams(9600,            

                serialPort.setSerialPortParams(115200,

                SerialPort.DATABITS_8,

                SerialPort.STOPBITS_1,

                SerialPort.PARITY_NONE);

                ...

            }

            

    2.5 SimpleRead 컴파일 및 실행


        아래의 명령을 실행하면 장치에서 출력하는 메세지를 화면에 보여 줄 것이다.


            > javac SimpleRead.java

            > java SimpleRead


3. RXTX 구현 사용 방법


    3.1 JDK 설치

    

        RXTX는 32비트, 64비트 모두 지원하므로 필요에 따라 JDK 32비트, 또는 64비트 버전을 설치한다.

        

    3.2 RXTX 구현 설치

    

        32비트 JDK에서 사용할 수 있는 RXTX 32비트 버전은 아래의 위치에서 찾을 수 있다.

        

            http://rxtx.qbang.org/wiki/index.php/Download

        

        64비트 JDK에서 사용 가능한 RXTX 64비트 버전은 아래 사이트에서 다운로드할 수 있다.

        

            http://www.cloudhopper.com/opensource/rxtx/

            

        RXTX 구현을 다운로드 받아서 세 개의 파일을 다음 경로로 복사한다.

        

            %JAVA_HOME%\bin\rxtxParallel.dll

            %JAVA_HOME%\bin\rxtxSerial.dll

            %JAVA_HOME%\lib\ext\RXTXcomm.jar