마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 36. USB 인터페이스의 계측 로가-유니트
첨부파일

 

                  PIC16F876에 USBN9603를 접속해, PC와 USB 접속으로
                  통신을 실시하면서, 4 채널의 계측 데이터를 수집할 수 있는 유니트입니다.

 


 USB 인터페이스의 계측 로가-유니트

 PC와 USB로 접속해, 4 채널의 계측 데이터
 (을)를 수집할 수 있는 계측 로가-입니다.


【개요】

드디어 USB 인터페이스의 등장입니다. PIC16F876에 USB 디바이스 콩트
롤러인, 내셔널 반도체사의 「USBN9603」를 접속해, 풀 스피드
에서의 USB 통신을 실현하고 있습니다.
이 유니트로, USB 통신으로 가능한 (일)것은 아래와 같이가 되고 있습니다.

 (1) PC로부터의 커멘드 출력
   계측 지시 등
 (2) 계측 한 데이터의 PC에의 입력
   4 채널의 10비트의 A/D변환 결과의 데이터를 PC에 보냅니다.
 (3) 디지탈 포토의 제어
   발광 다이오드의 On/Off 제어 등
 (4) 액정 표시기에의 표시 메세지 출력
   PC로부터의 메세지를 액정 표시기에 표시한다.

【유니트의 구성】

이 계측 로가-유니트의 내부 구성은 밑그림의 블럭도와 같이 되어 있습니다.
우선, 중심은 PIC16F876입니다. 이것은 PIC16F873에서도 유저프로그램이
남아 크지 않으면 충분히 사용할 수 있습니다.
USB의 콘트롤러의 USBN9603는 PIC와 SPI 통신 모드로 접속하고 있습니다.

아날로그 입력부는, 유효증폭기의 LMC662만의 간편한 구성으로 하고 있기 때문에,
본격적인 센서등의 계측을 실시하려면 , 전단에 센서와의 인터페이스부
하지만 필요합니다.







【회로 구성】

본유니트의 회로는 아래와 같은 회로도와 같이 되어 있습니다. PIC와 USBN의 접속을
SPI로 했으므로, 선의 갯수가 적게 회로도 간단하게 됩니다.

4 채널의 계측 부분의 회로는 간이 회로가 되고 있습니다. 본격적인 데이터 계측
(을)를 하기 위해서는, 노이즈 대책, 고정밀화, 센서 인터페이스등 손본다
필요가 있습니다.

USBN9603용의 클락 회로는, 통상의 크리스탈 진동자와 크리스탈 발진기의
양쪽 모두 머지않아에서도 사용할 수 있도록(듯이) 했습니다.
24 MHz라고 하는 높은 주파수이므로, 발진 유니트가 된, 크리스탈 발진기를 사용했다
(분)편이 안정에 발진합니다. 이번은 진동자의 HC49US와 같은 외관의 크리스탈 발신기
(을)를 사용하고 있습니다.

USB의 인터페이스는, 셀프 파워로 해, 디바이스측에서 전원을 가지는 회로와
했습니다. 유니트로서는 몇 안 되는 전류 밖에 소비하지 않기 때문에, 버스 파워에서도
충분히 가능합니다만, 이 경우에는, 전원에 충분히의 필터를 삽입해, 아날로그 입력
에의 노이즈 대책을 고려할 필요가 있습니다.






아래와 같은 파일은 WinDraft, WinBoard용의 회로도와 패턴도입니다.
다운로드해 해동해 사용해 주세요.

  ★ 회로도 파일(WinDraft용)
  ★ 패턴도 파일(WinBoard용)


【디바이스측 프로그램】

아래와 같이가 디바이스측의 프로그램의 전체로, 5개의 파일이 다운로드됩니다.
모두 어셈블러에서 작성하기 때문에, 해동하면, MPLAB로 그대로 아센
불 가능합니다. PIC16F876가 대상 프로세서가 되고 있습니다.

 ★ 디바이스측 프로그램
   ·usbdvc2.asm  :메인 프로그램 본체
   ·usbdat.h     :USB에 관한 데이터 정의 파일
   ·usbmac.h    :매크로 명령의 정의 파일
   ·usbn9602.h   :USBN9602의 IC의 레지스터류의 정의 파일
   ·usbsym.h    :USB에 관한 파라미터류의 정의 파일


 개량판 디바이스 프로그램입니다.
  
  ★ 개량판 디바이스측 프로그램 (11/24)
   프로덕트 ID가 0x0042 (으)로 변해있습니다.


이 디바이스측 프로그램은, 아래와 같이를 참고에 했습니다.

  ★ 트랜지스터 기술 2000년 6월호의 와타나베 아키라정씨의 프로그램

상기를 베이스로 해 내가 작성한 「기본 디바이스 프로그램」에, 각 엔드 포인트
의 처리 부분을 추가합니다.
엔드 포인트의 구성은 아래 표와 같이 하고 있습니다. IN/OUT의 견해는 호스트측으로부터
본 입출력이 되고 있습니다.
USBN9603는 최대로 엔드 포인트가 컨트롤+6개까지 사용할 수 있습니다. 기본 데바
의자 프로그램에서는, 전부를 사용할 수 있게 되어 있습니다만, 계측 로가-로서 사용해
있는 것은, 아래 표의 컨트롤+4개입니다.

파이프 No 엔드 포인트 IN/OUT 용도
없음 0 IN/OUT 컨트롤 전송
배치용
0 1 벌크 IN 미사용
1 2 벌크 OUT 커멘드의 출력
계측 지령등의 지시
2 3 벌크 IN 미사용
3 4 벌크 OUT 디지탈 출력
발광 다이오드의 점멸 제어
4 5 벌크 IN 계측 데이터 입력
4 채널 10비트의 A/D변환 데이터
5 6 벌크 OUT 액정에의 메세지 출력
16 문자까지의 메세지 표시용

기본 디바이스 프로그램에 추가한 유저프로그램 부분은 아래와 같이, 각 파이프
의 처리가 되어 있습니다.
우선 첫째가, 파이프 1의 커멘드의 수신 부분에서, 아래와 같이 리스트와 같이, 커멘드의 값을
판별해, 「1」이라면 계측 지시로서 4 채널의 A/D변환을 해, 송신 버퍼에
격납하는 것과 동시에, 액정 표시기의 2행째에 16 진수로 표시합니다. 계측이 완료하면(자)
곧 USB의 파이프 4로 송신합니다.






다음은, 파이프 3의 수신 처리부에서, 수신한 데이터의 1바이트째를 디지탈 포토
에의 출력 데이터로서 그대로 포토 C에 출력하고 있습니다.
한층 더 나머지는, 파이프 5의 수신 처리부에서, 수신한 16바이트의 데이터를 액정 표시기
에의 표시 데이터로서 그대로 액정의 1행째에 출력합니다.
USB의 파이프 0, 2, 4의 송신 처리는, 단독으로 실시하는 것은 특별히는 없습니다.







【호스트측 테스트 프로그램】

호스트측의 프로그램으로서는, 디바이스 드라이버와 응용 프로그램이
필요합니다.
우선, 디바이스 드라이버는 아래와 같이를 그대로 사용했습니다.
INF 파일에 디바이스를 추가합니다. 추가 디바이스는 아래와 같이로 합니다.
  벤더 ID : 0x9B9
  프로덕트 ID: 0x0042


 ★ 카시와노 마사히로씨작 「범용 USB 드라이버」(Interface 2000년 3월호)

응용 프로그램은, Visual Basic Ver6 그리고 작성했습니다.
프로젝트 관련 파일을 다운로드할 수 있도록(듯이) 했으므로, 사용해 주세요.

 ★ USB 계측 로가-테스트 프로그램(VB프로젝트 관련 파일)

 ★ USB 계측 로가-테스트 프로그램 실행 파일
    (VB6의 런타임 패키지가 필요합니다)


이번 응용 프로그램은, 유니트의 테스트용으로서 작성한 것으로,
아래와 같은 기능을 가지고 있습니다.

(1) 디지탈 포토의 제어
  3개의 기판상의 발광 다이오드의 점멸 제어를 할 수 있습니다.
(2) 계측 커멘드 출력과 계측 데이터의 입력 표시
  계측 커멘드를 수동, 또는 일정시간 간격으로 자동으로 출력해, 응답으로서 돌려주어진다
  4 채널의 계측 데이터를, 16 진수로서 표시합니다.
(3) 액정 표시기에의 메세지의 출력
  텍스트 박스에 쓰여진 메세지를 USB 경유로 보내, 액정 표시기에 표시한다.

우선 폼은 밑그림과 같이 되어 있어, 위로부터, 디지탈 제어, 계측 데이터 표시,
액정에의 메세지 송신이라고 하는 기능이 되고 있습니다.

(1) 디지탈 제어
  각 bit의 체크 박스를 체크해 LED점등으로 하면(자), 체크가 있는 곳은
  High의 출력이 나오기 때문에, LED는 소등해, 체크가 없는 곳의 LED는 점 켭니다.
  이번 유니트에서는, 하위 3비트에만 발광 다이오드가 실장되고 있습니다.
(2) 계측 데이터 표시
  수동 계측으로 하면(자), 1회만 계측 해 4 채널의 계측 데이터를 표시합니다.
  자동 계측으로 하면(자) 타이머에 1초간격으로 계측 해, 매회 결과를 표시 갱신합니다.
(3) 액정 표시
  텍스트 에리어에 입력한 메세지를 그대로 USB로 보내, 디바이스측의 액정 표시
  그릇에 표시합니다.






《참고》
 액정 표시기에의 전송 기능의 곳에서, UNICODE로부터 ANSI 코드의 배열 변환으로
 곤란했습니다. 즉, VB 중(안)에서는 UNICODE로 모두 다루어지므로 문자가 2 바이
 트로 표현되고 있어 그대로 액정 표시기에 보내면(자) 의미 불명의 표시가 되고 해
 있습니다. 이것을 ANSI 코드 즉 아르바이트 단위의 캐릭터 라인으로 변환할 필요가 있어
 .
 아래와 같이는 그 변환의 수법입니다. 이것은 아래와 같이책을 참고로 했습니다.

  ★ 「Visual Basic로 즐김 프로그래밍」호야공치저 CQ출판사

(1) ANSI측의 배열 변수를 선언한다.
  이 때인덱스는 지정하지 않는으로 둔다. 지정해 버리면(자) 각각이 독립
  변수가 되어 버려, 아르바이트열(즉 캐릭터 라인 배열)로서 취급할 수 없게 되어 버린다.

  Dim data( ) As Byte

(2) UNICODE로부터 ASCII 코드에의 변환에는 StrConv 함수 (을)를 사용한다
  또 StrConv 함수의 제2 파라미터에는,vbFromUnicode (을)를 지정해 변환 후
  에 VB시스템 기정 코드(즉 ASCII)가 되도록(듯이) 지정한다.

   data( ) = StrConv (Left (Text2.Text & " (16개의 스페이스) ", 16), vbFromUnicode)

(3) 나머지는 통상의 아르바이트열의 캐릭터 라인으로서 취급할 수가 있다.
  LeftB, RightB, MidB라고 하는 아르바이트 캐릭터 라인 취급으로 한다







【로가-호스트 프로그램】   

아날로그 데이터 의 계측을 하면서. 그 트랜드를 그래프로 표시하는 프로그램을
작성했습니다.
아래와 같이는 Visual Basic의 프로젝트 파일 1식입니다. 해동해 사용해 주세요.

  ★ 트랜드 그래프 표시 프로그램
    (실행 파일도 포함하고 있습니다)

이 트랜드 표시 프로그램은 아래와 같은 기능을 가지고 있습니다.

(1) 프로그램 로드시에 USB 로가-를 오픈
  프로그램 기동시에 USB 로가-의 파이프를 오픈합니다. 따라서
  본프로그램 기동전에, 로가-유니트의 USB 접속이 완료해, 범용 USB
  드라이버가 기동하고 있을 필요가 있습니다.
(2) 4 채널의 데이터의 그래프 표시
  데이터는 10비트 바이너리치를 그대로 취급하고 있습니다. (데이터 변환 없음)
  최대 10000회의 계측치를 그래프 표시합니다.
(3) 계측 간격의 지정과 그래프 X축시간치 표시
  계측 인터벌을 msec 단위로 지정해 계측 할 수 있습니다.
  최소 10 msec, 최대 30000 msec(30초)까지 지정할 수 있습니다. 이 인터벌
  에 맞추어 X축의 시간표시를 변경하고 있습니다. 1000 msec까지는 「초」로,
  그 이상은 「분 」에 표시합니다.
  10000 샘플까지이므로, 10 msec 간격이라면 100초, 30 sec 간격이라면
  300000초=5000분 = 약 83시간의 트랜드 그래프가 됩니다.
(4) 그래프 데이터의 파일 격납, 읽기 표시
  측정해 그래프에 표시한 데이터를 CSV 형식의 파일로서 보존합니다.
  또 격납되고 있는 데이터를 읽어들여 그래프로서 표시 할 수 있습니다.
(5) 디바이스의 액정 표시기에의 메세지 표시
  계측의 개시, 종료, 인터벌 시간, 프로그램의 종료를 메세지와
  해 디바이스측의 액정 표시기에 표시한다.
(6) 프로그램 종료와 USB 클로우즈
  프로그램을 종료시키면(자), 디바이스의 액정 표시기에 End Program (와)과 표시
  해, 모든 USB 파이프를 클로우즈 해 USB 로가-를 클로우즈 합니다.
  이후에는, USB 로가-를 다른 프로그램으로 사용하는 일도 가능하고, 떼어낸다
  일도 문제 없습니다.

아래와 같이는 트랜드 그래프의 표시예입니다. (확대 표시할 수 있습니다)






【외관】

USB 접속의 계측 로가-의 외관은 밑그림과 같이 되어 있습니다. 보드 단체
입니다.


전체 외관으로, 액정 표시기 등 외부 접속은
모두 연결기로 했습니다.





중앙이 PIC16F873/876으로 USBN9603는 뒤편의
반전면에 있습니다.



USBN9603 회전의 부품으로 클락에는 24 MHz의
HC49US 타입의 크리스탈 발진기를 사용했습니다.
USB의 접속에 시리즈 B용의 소켓을 실장했습니다.




USBN9603는 플랫 패키지이므로 직접
기판의 반전면에 직 붙이고 하고 있습니다.
USB 소켓의 핀 배치를 잘못해 버려
수정 스트랩을 추가하고 있습니다.



기판 CAD의 WinBoard에는 플랫 패키지의
패턴이 미리 준비되어 있으므로, 간단하게
패턴을 작성할 수 있습니다. 납땜도, 한 번 충분히의
반전으로 핀을 납땜 해, 나중에, 팔뚝으로 여분의 반전
(을)를 없애면서, 핀간의 브릿지를 없게 하고 가면,
비교적 간단하게 납땜 할 수 있습니다.



목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com