마하전자기술연구소 LOGO

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

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

제 목 40. USB 접속의 디지탈 멀티 미터(소프트웨어편)
첨부파일

 

                  PICROS를 사용한 작품으로,4-1/2자리수의 디지탈 멀티 미터입니다.
                  PC와는 USB로 접속하고 있기 때문에, 데이터 수집도 편하게 할 수 있습니다.


 USB 접속의 디지탈 멀티 미터(소프트웨어편)

 마이크로칩사의 이중 적분형의 A/D컨버터를 사용해
 4-1/2자리수의 디지탈 멀티 미터를 만들어 보았습니다.
 PIC의 프로그램은 PICROS로 멀티태스킹화했습니다.


【개요】

 마이크로칩사가 PIC 이외에 힘을 쓰고 있는 아날로그계의 IC중에서,
이중 적분형의 A/D컨버터로,4-1/2자리수의 BCD 출력의 것이 있었으므로
시작해 보았습니다.
 제어용으로는 PIC16F877를 사용해, USBN9603의 USB 콘트롤러로 PC와 풀
스피드의 USB 접속을 할 수 있기 때문에, 데이터 수집이나 그래프 작성에는 편리하게 사용할 수 있습니다.
 PIC의 프로그램에는 「PIC용 리얼타임 OS의 PICROS」(을)를 사용해 멀티태스킹화
했으므로, 의외로 간단하게 멀티 미터를 할 수 있었습니다.







【기능 사양】

이번 디지탈 멀티 미터의 기능 사양은 아래 표와 같이 되어 있습니다. 이것을 PIC와
A/D컨버터와 USB 콘트롤러로 실현되고 있습니다.

항목 기능 사양 비고
측정 항목과 분해가능 전압 3 레인지 구성의 오토 레인지 변환
   2 V레인지 1. 9999V 100μV분해가능
  20 V레인지 19. 999V 1 mV분해가능
 200 V레인지 199. 99V 10 mV분해가능

전류 1 레인지 구성
 2 A레인지  1999. 9mA 100μA분해가능

그 외(직접 입력)
 2 V레인지  1. 9999V 100μV분해가능
입력 impedance
100MΩ이상
1MΩ
1MΩ

입력 impedance


입력 impedance
100MΩ이상
교정용 출력 교정용의 고정밀도 기준 전압
 10. 000V  정밀도±0. 1%이하
  1. 000V  정밀도±0. 5%( 약)

TYP±0. 03%
교정 가능
표시 16 자리수 2행의 액정 표시기  
외부 출력 USB Ver1. 1 풀 스피드
셀프 전원
 커멘드에 의해 전압, 전류의 측정 가능
콘트롤러는
USBN9603
전원 외부에서(보다) 안정화 된 DC전원 공급
 +12 V~+15V 최대 100 mA
 





【PIC측 프로그램】

PIC의 프로그램은. 자작 리얼타임 OS인 「PICROS」를 사용해 멀티태스킹화
했으므로 의외로 간단하게 할 수 있었습니다. 모두 CCS사의 C언어로 만들고 있습니다.
전체의 소프트웨어 구성은 밑그림과 같이 되어 있어, 신규에 작성한 부분은, 그림중
색이 붙어 있는 태스크군과 A/D컨버터의 새치기 처리부만되고 있습니다.





이 태스크나 새치기 처리의 전체의 흐름은 밑그림과 같이 되어 있습니다.
즉 전체가 크고 2개의 흐름이 되어 있어, 하나는 기기 단체로 계측을
반복 액정 표시기에 표시하는 흘러 나와 밑그림의 푸른 화살표의 흐름이 됩니다.

 이 단체 동작은, 우선, 초기 기동으로 kicktsk가 한 번 기동되면(자), 나머지는 kicktsk로
A/D변환을 기동합니다. 변환 종료 새치기를 5회 접수 데이터를 입력하면(자)
mesure 태스크를 기동합니다. 이 mesure 태스크 중(안)에서 액정 표시기에 표시합니다.
mesure의 마지막 시점에서 Resume_Task 함수를 실행해 만나고 있는 태스크가
어느 재기동시킨 후, 재차 kicktsk를 기동해 최초로 돌아옵니다.
이것으로 영구히 계측 해 액정 표시기에 표시한다고 하는 동작을 반복합니다.

 2개째는 USB 경유 PC로부터 계측 요구되었을 경우로, 붉은 화살표의 동작이 되어
.
 우선 USB 수신 써브루틴 do_rx1로 계측 지령을 인식하면(자), usbrcv 태스크를 기동해
. usbrcv 태스크에서는 최초로 Get_Trigger 함수로 기동 조건을 판정해, Trigger 함수
에 의한 기동이라고 판정하면(자), kicktsk를 Request_Task 함수로 기동한 뒤, A/D변환
종료를 mesure 태스크에 대해 Suspend_Task 함수로 기다려 대면시킵니다.
 변환이 완료하면(자) mesure 태스크로부터 resume 되므로 usbrcv 태스크가 재기동합니다.
usbrcv 태스크에서는 Get_Trigger 함수로 기동 조건을 판정해, resume에 의한 기동이라면 판정
하면(자), 이번은 데이터를 USB에 송신하고 나서 Exit_Task 함수로 완료해 일순의 동작이 종료
합니다.
usbrcv 태스크에서는, Get_Trigger 서비스 함수에 의해, 기동 조건을 판정하고 있다
곳과 mesure의 태스크 완료를 Suspend_Task 함수로 약속키라고 있는 것이 특징입니다.









(1) 유저 설정 파일 usrconf.h
  이것이 전체 구성을 결정하는 정의 파일로, 여기서 태스크 구성등을 지정합니다.
  여기서의 내용은 아래와 같이 되어 있습니다.
  우선 PIC 종별, 클럭 주파수, 배치 비트, 포토 모드
  등을 설정한 뒤, 디버그 모드는 OFF로 해둡니다.
  현재 USB와 USA RT를 동시에 사용하는 디버그는 할 수 없습니다.
  그 후로, 태스크의 호칭 설정과 prototype를 설정해 있습니다.
  공통 변수를 정의해 그 후는 액정 표시기용 라이브러리와 USB 라이브러리의
  링크를 지정하기 위한 헤더 파일을 링크하고 있습니다.



































아래와 같이가 PIC측의 프로그램의 C언어의 원시 파일 일식입니다.
CCS사의 PCM 컴파일러를 통합한 MPLAB로 컴파일 해 주세요.
프로젝트명은 「dmm01」로서 주세요.

  ★USB 접속 디지탈 멀티 미터 PIC 프로그램 일식
     (부동 소수점수(실수) 취급이기 때문에 사이즈대)
  
  ★USB 접속 디지탈 멀티 미터 PIC 프로그램 일식
     (부동 소수점수(실수) 취급을 중지 사이즈 작다)

  ★USB 접속 디지탈 멀티 미터 PIC 프로그램 일식 (3/3)
     (전압계측시에 레인지 변경중은 표시, USB 송신 없음)(1/22)
     (SPI 동작 안정화이기 때문에 클락 엣지 변경)     (2/14)
     (TX_2()의 에러 처리 T1SIZE → T2SIZE에 수정) (3/3)




【PC측 프로그램】

이번 PC측의 프로그램은 테스트용의 레벨이므로, 단순하게 계측 한 데이터
(을)를 본체측과 같은 수치 표시만되고 있습니다. 이것을 일정시간 간격으로 반복해
계측 해 표시하게 되어 있습니다.
레인지나 전압 전류의 구별은 모두 본체측에서 보내져 오기 때문에, 이것을 구별해
표시할 만큼되고 있습니다.
폼은 밑그림과 같이 되어 있어, 아래와 같은 기능을 가지고 있습니다.

(1) USB 접속
  지정한 벤더 ID와 프로덕트 ID로 USB의 접속을 개시합니다.
  정상적으로 접속할 수 없는 경우에는 에러 메세지를 표시해 프로그램은 종료합니다.
  정상적으로 접속되었을 경우에는 ID의 창이 초록으로부터 오렌지로 바뀝니다.

(2) 계측 개시
  계측 개시 버튼을 누르면(자) 일정시간 간격으로, 본체에 계측 개시 커멘드를 출력해
  즉시의 데이터를 숫자에서 표시합니다. 이 때, 즉시의 데이터에 포함되어
  있는 내용에 근거해, 전류, 전압의 구별이나 레인지에 의한 값의 변환을 실시합니다.
  표시 내용은 밑그림과 같이, 오버플로우 표시, 극성 표시, 값, 단위가 되고 있습니다.

(3) 그래프 작성, 보존 기능은 미작성입니다.







아래와 같이가 PC측의 Visual Basib의 프로그램 소스의 1식입니다.
VB로 사용해 주세요.

  ★USB 접속 디지탈 멀티 미터 PC 프로그램 일식

  ★PIC 측에 맞추어 개판(부동집몇 점수를 중지한 것에 맞추었다)


【PC측 프로그램 Ver2】

PC측의 프로그램으로서 트랜드 그래프를 할 수 있도록(듯이) 버전 업 했습니다.
기본 폼은 밑그림과 같이 했습니다. 밑그림은 폼 디자인의 그림으로, 타이머와
커멘드 다이얼로그가 숨겨 컴퍼넌트로서 있습니다.
트랜드를 다양한 시간에 잡히도록(듯이) 시간 간격을 설정할 수 있도록(듯이) 했습니다.
이것으로 상당한 장시간의 트랜드가 기록 가능합니다.
그래프 작성에 의해 트랜드 그래프를 표시해, 그린 그래프를 보존할 수가 있습니다.
또 보존되어 있는 그래프 데이터를 읽어내 재묘화 할 수도 있습니다.







밑그림이 동작중의 기본 폼으로, USB의 창이 초록으로부터 오렌지로 변해있습니다.
한층 더 실제로 계측 한 데이터가 값의 창에 표시되고 있습니다.
단위 등은, 자동적으로 기기가 악어 맞추어 표시됩니다.









밑그림이 트랜드 그래프를 표시한 결과입니다. 세로축의 스케일은 전압치에 맞추어
3 단계에서 자동적으로 수정됩니다. 또 도중에 스케일이 변경이 되었을 경우에도
자동적으로 세로축이 변경되어 재표시됩니다.
횡축의 시간축도, 설정된 시간 간격에 맞추어 자동 표시됩니다.




아래와 같이로부터 상기 PC측의 프로그램이 다우 로드할 수 있습니다. Visual Basic로
사용해 주세요.

  ★PC측 프로그램 일식  (12/22)

목록보기

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