Post on 19-Jan-2016
description
컴퓨터 계측 및 실습
개 요
영남대학교 기계공학부
PC 의 기본장치
PC 의 작동구조
컴퓨터의 기본구성
Ãâ·ÂÆ÷Æ®ROM
RAM
Á¦¾î±â
¿¬»ê±â
·¹Áö½ºÅÍ
ÀÔ·ÂÆ÷Æ®
µ¥ÀÌÅÍ ¹ö½º
¾îµå·¹½º ¹ö½º
Á¦¾î ¹ö½º
Áß¾Óó¸®ÀåÄ¡(CPU)
ÁÖ±â¾ïÀåÄ¡ ÀÔÃâ·Â ÀåÄ¡
CPU 의 구조
IBM-PC 의 입출력 단자
B1B2B3B4B5B6B7B8B9
B10B11B12B13B14B15B16B17B18B19B20B21B22B23B24B25B26B27B28B29B30B31
A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15A16A17A18A19A20A21A22A23A24A25A26A27A28A29A30A31
GND+RESET DRV
+5V DC+IRQ 2-5V DCDRQ2
-12 DC-CARD SLOTD
+12 DCGND
-SMEMW-SMEMR
-IOW-IOR
-DACK3DRQ3
-DACK1DRQ1
-REFRESHCLK
IRQ7IRQ6IRQ5IRQ4IRQ3
-DACK2T/CALE
+5V DCOSCGND
-I/O CHCKD7D6D5D4D3D2D1D0+I/O CH RDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
Analog and Digital
Analog: 측정치의 값이 연속적인 형태Digital: 변화의 최소 크기가 정해져 잇고
변화의 크기는 최소크기의 정수배만 가능
Digital 의 장단점 : Digital 화 된 이후에는 추가적인 noise 가 없으나 , resolution이 제한적임
디지털의 장점 잡음을 거의 타지 않음 작동전압이 낮음 (5V 혹은 12V) 자동 스케일링이 가능 (scaling) 다른 기기 ( 혹은 컴퓨터 ) 와의 연결이 용이 데이터의 처리 (data reduction, filtering...)
가 가능하다
계측제어계의 구성요소
ÀÔ·ÂÆ÷Æ®(A/D , DI)
Ãâ·ÂÆ÷Æ®(D/A , DO)
(½ºÀ§Ä¡)
(¿Âµµ¼¾¼ )
(·¥ÇÁ)
(¸ðÅÍ)
µ¥ÀÌÅÍ ¹ö½º
¸ñÇ¥¹°
¼¾¼
±¸µ¿±â
어드레스 디코드
CPU Address Decoder
I/O 1 I/O 2 I/O 3
Address Bus
I/O 1 I/O 2 I/O 3
Data Bus
Breadboard 의 모양
Breadboard 의 배선
커미조아 인터페이스보드
COMI-SD104 Multi-Function Board
기본 사양
Bus BM PC Bus(32Bit PCI) 크기 195 * 107 mm 자원할당 Plug & Play 방식의 자동할당
입출력 채널
아날로그 입력 Differential 8 Channel, Single Ended 16 Channel
아날로그 출력 2 Channel 디지털 입력 8 Channel 디지털 출력 8 Channel 타이머 2 channel
A/D Conversion Complete 12 bit A/D Conversion A/D Converter : Burr Brown ADS7899 Type of ADC : Successive approximation A/D Channel : 16 Single Ended, 8 Differential Input Voltage Range : 10 V, 5 V, 2, 1, 0 10V,
0 5V, 0 2V,0 1V Resolution : 14 Bits, 1 in 16384 Maximum Sampling Rate : 375 kHz Streaming to Disk Rate : 375 kHz (Tested on PentiumⅢ 700MHz) Input Impedance : 10 Mohm A/D Trigger Mode : Programmable Timer, Software,
External Trigger Data Transfer : Programmed I/o, Interrupt, Block Mode Channel Configuration : Uni polar/Bipolar, Gain, Channel,
Channel No FIFO Size : 4 Kbytes
D/A Conversion D/A Converter : Burr Brown DAC7545 D/A Channel : 2 Channel (for single DC Output) Resolution : 12 Bits, 1 in 4096 Setting time : 2usec Output Voltage Range : 10 V D/A Trigger Mode : Software Data Transfer : Programmed I/O
Digital Input TTL Compatible Input Channel : 8 Channel Voltage Level : Low(0~0.8 V), High(2V~) Input Load : Low 0.5V(0.2 mA), High 2.7V(20 mA) Data Transfer : Programmed I/O
Digital Output TTL Compatible Output Channel 8 Channel Voltage Level Low(0~0.4 V), High(2.4V~) Input Load Low 0.5V(0.2 mA), High 2.7V(0.4 mA) Data Transfer Programmed I/O
Programmable Counter
COMI-SD Counter Clock Input Channel 2 Channel Resolution 32 bits Gate Input Software Reset Real Time Clock
COMI-SD104 Reading 레지스터 구조
No. Address Description Bit
0 CS0+0 A/D Buffer Register 32Bits
1 CS0+4 A/D Conversion Check Register 32Bits
2 CS0+8 A/D Gain Memory Trigger 32Bits
3 CS1+0 A/D FIFO Register 32Bits
4 CS2+0 Digital Input Register 32Bits
5 CS3+0 Counter0 Low Word Register 32Bits
6 CS3+4 Counter0 High Word Register 32Bits
7 CS3+8 Counter1 Low Word Register 32Bits
8 CS3+12 Counter1 High Word Register 32Bits
9 CS3+16 Speed Checker0 Word Register 32Bits
10 CS3+20 Speed Checker1 Word Register 32Bits
COMI-SD104 Writing 레지스터 구조
No Address Description Bit
0 CS0+0 INT Clear Register 32Bits
1 CS0+4 A/D Range Memory Control Register 32Bits
2 CS0+8 A/D Software Trigger Register 32Bits
3 CS0+12 A/D Channel & Range Memory Register 32Bits 4 CS0+16 A/D Scan Channel Number Register 32Bits
5 CS0+20 Interrupt Control Register 32Bits
6 CS0+24 A/D Trigger Timer Control Register 32Bits
7 CS0+28 A/D Trigger Control Register 32Bits
8 CS1+0 D/A0 Output Register 32Bits
9 CS1+4 D/A1 Output Register 32Bits
10 CS2+0 Digital Output Register 32Bits
11 CS3+0 Sampling Timer Register0 32Bits
12 CS3+4 Sampling Timer Register1 32Bits
13 CS3+8 Scan Timer Register0 32Bits
14 CS3+12 Scan Timer Register1 32Bits
15 CS3+16 Speed Checker Gate Control Register 32Bits
16 CS3+24 Counter0 Clear Register 32Bits
17 CS3+28 Counter1 Clear Register 32Bits
Comidas.h 와 Comidas.cpp 를 Include 하기
1) ComidasCommon.h, Comidas.h 그리고 Comidas.cpp 파일을
프로젝트가 있는 폴더에 복사한다 .
2) Comidas.cpp 파일을 프로젝트에 추가한다 .
3) Comidas.cpp 소스파일의 맨 처음 부분에 #include "stdafx.h"
구문을 추가한다 .
4) COMI-SD104 보드를 제어하는 함수를 사용하는 소스파일에
#include “Comidas.h”
구문을 추가한다 .
프로그램 작성 공통 사항 (1)
디바이스 핸들
디바이스 핸들은 COMI-SD104 를 제어하는 모든 함수의 파라미터로
사용되므로 전역변수 또는 메인 윈도우 클래스의 멤버 변수로
관리한다 .
일반적으로 다이얼로그 기반 프로그램인 경우 메인 다이얼로그
클래스 (XXXXDlg) 의 멤버변수로 선언한다 .
class CASISTDlg : public CDialog{
………...public: //user parameter
HANDLE m_hDevice;………...
};
프로그램 작성 공통 사항 (2)
라이브러리 및 디바이스 로딩 (Loading)
프로그램 시작 부분에서 다음과 같은 함수를 수행하여 라이브러리 및
디바이스를 로드하여야 한다 .
• BOOL COMI_LoadDll(void) : 라이브러리를 로드한다 .
• HANDLE COMI_LoadDevice (COMIDAS_DEVID deviceID, ULONG insta
nce) : 지정한 디바이스를 로드한다 .
일반적으로 다이얼로그 기반 프로그램인 경우에는 OnInitDialog()
함수에서 라이브러리 및 디바이스 로딩을 수행하면된다 .
프로그램 작성 공통 사항 (3-1)
프로그램 작성 공통 사항 (3-2)
라이브러리 및 디바이스 언로딩 (Unloading)
프로그램 종료 부분에서 다음과 같은 함수를 수행하여 라이브러리 및
디바이스를 언로드하여야 한다 .
• void COMI_UnloadDll(void) : 라이브러리를 로드한다 .
• void COMI_UnloadDevice (HANDLE hDevice) : 지정한 디바이스를
언로드한다 .
일반적으로 다이얼로그 기반 프로그램인 경우에는 WM_CLOSE 이벤트
핸들러인 OnClose() 함수에서 라이브러리 및 디바이스 언로딩을
수행하면된다 .
프로그램 작성 공통 사항 (4-1)
☞ OnClose() 함수 생성 및 작성 예
프로그램 작성 공통 사항 (4-2)
LED, 7 세그먼트 , 스테핑 모터
Digital Output 구동 프로그램
SetTimer ( UINT nIDEvent, 10, NULL )
OnTimer ( UINT nIDEvent )
KillTimer ( UINT nIDEvent )
기본함수기본함수
SetTimer 는 OnTimer, KillTimer 와 함께 사용되며 OnTimer 함수를 구동하는 함수이다 . 여기서 첫번째 매개변수 0 은 실행되는 Timer 번호 , 10 은 단위가 msec 로 OnTimer 실행 간격을 의미한다 . 즉 0 번 Timer 가 0.01 초 마다 실행된다 .
SetTimer ( 0, 10, NULL)
nIDEvent 는 Timer 번호를 의미한다 . SetTimer 함수가 한 개만 존재할 때는 nI
DEvent 는 0 으로 인식하고 여러 개의 SetTimer 함수가 존재할 때는 SetTimer 함수의 첫번째 매개변수 값을 받아 작업이 분기되어진다 .
OnTimer ( UINT nIDEvent )
KillTimer 함수의 매개변수는 Timer 번호 (nIDEvent) 를 의미한다 . 여기에는 0 번 Timer 를 지시하고 있다 . 따라서 이 KillTimer 함수는 0 번 Timer 를 끝낸다 .
KillTimer ( 0 )