ppt - 영남대학교

Download Report

Transcript ppt - 영남대학교

컴퓨터 계측 및 제어
영남대학교 기계공학부
PC의 기본장치
2
PC의 작동구조
3
컴퓨터의 기본구성
µ¥ÀÌÅÍ ¹ö½º
¾îµå·¹½º ¹ö½º
Áß¾Óó¸®ÀåÄ¡
(CPU)
ÁÖ±â¾ïÀåÄ¡
ÀÔÃâ·Â ÀåÄ¡
·¹Áö½ºÅÍ
RAM
ÀÔ·ÂÆ÷Æ®
ROM
Ãâ·ÂÆ÷Æ®
¿¬»ê±â
Á¦¾î±â
Á¦¾î ¹ö½º
4
CPU의 구조
5
IBM-PC의 입출력 단자
GND
+RESET DRV
+5V DC
+IRQ 2
-5V DC
DRQ2
-12 DC
-CARD SLOTD
+12 DC
GND
-SMEMW
-SMEMR
-IOW
-IOR
-DACK3
DRQ3
-DACK1
DRQ1
-REFRESH
CLK
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
-DACK2
T/C
ALE
+5V DC
OSC
GND
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
A23
A24
A25
A26
A27
A28
A29
A30
A31
-I/O CHCK
D7
D6
D5
D4
D3
D2
D1
D0
+I/O CH RDY
AEN
A19
A18
A17
A16
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
6
Analog and Digital
Analog: 측정치의 값이 연속적인 형태
Digital: 변화의 최소 크기가 정해져 잇고
변화의 크기는 최소크기의 정수배만 가
능
Digital의 장단점: Digital화 된 이후에는
추가적인 noise가 없으나, resolution이
제한적임
7
디지털의 장점
 잡음을 거의 타지 않음
 작동전압이 낮음 (5V 혹은 12V)
 자동 스케일링이 가능(scaling)
 다른 기기(혹은 컴퓨터)와의 연결이 용이
 데이터의 처리(data reduction, filtering...)가 가
능하다
8
계측제어계의 구성요소
¼¾¼(½ºÀ§Ä¡)
ÀÔ·ÂÆ÷Æ®
(A/D , DI)
(¿Âµµ¼¾¼-)
µ¥ÀÌÅÍ ¹ö½º
(·¥ÇÁ)
¸ñ
Ç¥
¹°
Ãâ·ÂÆ÷Æ®
(D/A , DO)
(¸ðÅÍ)
±¸µ¿±â
9
Breadboard의 모양과 배선
10
다림인터페이스보드
 아날로그 입력




아날로그 출력
디지털 입력
디지털 출력
타이머
DR 8330
Differential 8 Channel,
Single Ended 16 Channel
2 Channel
16 Channel
16 Channel
2 channel
A/D Conversion













Complete 12 bit A/D Conversion
A/D Converter :
Burr Brown ADS7800
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  2V
Resolution :
12 Bits, 1 in 4096
Maximum Sampling Rate :
330 kHz
Streaming to Disk Rate :
330 kHz (Tested on Pentium 233)
Input Impedance :
100 Gohm
A/D Trigger Mode :
Programmable Timer, Software,
External Trigger
Data Transfer :
Programmed I/o, Interrupt,
DMA(Block Mode)
Channel Configuration :
Unipolar/Bipolar, Gain, Channel,
Channel No
FIFO Size :
4 Kbytes
12
D/A Conversion
 D/A Converter :
Analog Device AD7545
 D/A Channel :
2 Channel
(One for Wave form generation
and the other for single DC Output)
 Resoultion :
2 Bits, 1 in 4096
 Throughput Rate :
48 kHz
 Output Voltage Range :
 10 V
 D/A Trigger Mode :
Software, Programmable Timer
 Data Transfer :
Programmed I/O,
Memory on Card (for WFM)
13
DR8330 Reading 레지스터 구조
No
Address
Description
Bit
0
1
Base+0
Base+1
16 Bits
8 Bits
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Base+2
Base+3
Base+4
Base+5
Base+6
Base+7
Base+8
Base+9
Base+10
Base+11
Base+12
Base+13
Base+14
Base+15
A/D Buffer Register
A/D Conversion
Software Trigger Register
And Memory Writing
Trigger Register
A/D FIFO Memory Regester
Not Used
Digital Input Register
D/A 0 Reset Register
Not Used
Not Used
Read Counter 0 Register
Not Used
Not Used
Not Used
Read Counter 1 Register
Not Used
Not Used
Not Used
16 Bits
16 Bits
8 Bits
8 Bits
8 Bits
14
DR8330 Writing Reading 레지스터 구조
No
Address
Description
Bit
0
1
Base+0
Base+1
16 Bits
8 Bits
2
3
4
5
6
7
Base+2
Base+3
Base+4
Base+5
Base+6
Base+7
8
9
10
11
12
13
14
15
Base+8
Base+9
Base+10
Base+11
Base+12
Base+13
Base+14
Base+15
D/A Channel Register
A/D Channel Number & D/A1
DMA Channel Register
D/A 1 Channel Register
A/D channel & Range Setting Register
Digital Output Register
IRQ Number Setting Register
IRQ & DMA Control Register
D/A & A/D Trig control & A/D
DMA Channel Register
Load Counter 0 Register
Not Used
Not Used
Counter 0 Control Register
Load Counter 1 Register
Not Used
Not Used
Counter 1 Control Register
16 Bits
8 Bits
16 Bits
8 Bits
8 Bits
8 Bits
8 Bits
8 Bits
8 Bits
8 Bits
15
디지털 입력
영남대학교 기계공학부
디지털 입력이란? (1)
전등이 켜져 있는 경우
전등이 켜져 있는 경우
전등이 꺼져 있는 경우
전등이 꺼져 있는 경우
전압
상태
5V
High(H)
Digit
1
0V
Low(L)
0
이 상태로 컴퓨터는 전등의
점등 상태를 알 수있다.
17
디지털 입력이란? (2)
컴퓨터에서는 여러 개의 입력을 동시에
받아들여서 여러가지의 장치 혹은 센서
등의 상태를 파악할 수 있다.
경우에 따라서는 bit의 H, L 를 연속적
으로 읽어서펄스의 수와 속도를 파악
할 수도 있다.
예를 들면 모터의 속도를 이와 같이 측
정한다.
18
기본 D/I 연결 방법
D I/O
Terminal block
connector
D/I
BASE+4
Get_DI 라는 함수에서
알아서 각 bit의 주소를
계산하므로 신경 쓸
필요는 없다.
19
근접센서 (디지털 출력을 내는 소자)
종류
원리
고주파형
교류형
정전용량형
교과서 pp.262 참조
20
광전 스위치
(디지털 출력을 내는 소자)
원리
종류 (검출형태에 따른 분류)
고온금속
투과형
직접반사형
거울반사형
복사량 검출형
21
광전 스위치 (2)
종류 (광원의 종류에 따른 분류)
1. 백열전구형 (가시광) : 저가격
2. LED형 (가시광, 근적외광) : 초소형, 소정력 가장 이상적인 광원
3. 형광등형 (가시광) : 이미지 센서
4. 자외광 : 이물질 검출
5. 가스 레이저형 (가시광) : 바코드 리더
6. 반도체 레이저형(근적외광) : 강력한 투과력, 철장설비등
종류 (광원의 변조에 따른 분류)
1. 전기적 펄스 변조형
2. 기계적 회전 변조형
3. 다중 스캐닝형
22
디지털 스위치 (디지털 출력을 내는 소자)
원리
+
-
Vcc
GND
2 10
2
22
23
+, - 단자를 한 번 누를 때마다 내부에서
카운트하여 BCD (Binary-Coded Decimal)
코드로 내보내는 소자
23
로터리 엔코더 (디지털 출력을 내는 소자)
원리
회전하면서 일정 각도마다 하나의 펄스를 내보내는 장치
(단위: pulse/rev)
24
로터리 엔코더의 응용
25
디지털 입출력 실험
D/I, D/O의 실제 응용 예로서, 광전
스위치의 상태를 PC로 읽어 들이고
LED 또는 7-Segment로 상태를 표
시하는 실험입니다.
실험 1 광전 스위치
실험목적
이 실험은 D/I의 실제 응용 예로서, 광전
스위치의 상태를 PC로 읽어 들이는 실험
입니다.
27
회 로 도
28
기본함수 (1)
 #include <conio.h>
 Digital 입출력을 담당
 int _inp( unsigned short port );
 지정된 디지털 입력 채널의 상태를 읽음
=> port : 입력 채널 번호 0x224
 int _outp( unsigned short port, int databyte );
 출력 채널에 지정된 디지털에 출력
=> port : 출력 채널 번호 0x224
=> databyte : int형 data
29
기본함수 (2)
 SetTimer(0, 50, NULL)
 OnTimer(UINT nIDEvent)를 50milliseconds
간격으로 한번씩 구동
=> 0 : timer identifier
 KillTimer(0)
 OnTimer(UINT nIDEvent)를 정지
=> 0 : timer identifier
 BOOL UpdateData( BOOL FALSE or TRUE);
 다이얼로그박스에서 데이터를 읽거나 표시함
=> FALSE : 데이터를 표시
=> TRUE : 데이터를 읽어옴
30
광전스위치 구동 프로그램
OnStartButton()
OnResetButton()
Int m_nCountNum
OnEndButton()
31
프로그램 설명
#include <conio.h>
void CDIDODlg::OnStartButton()
{
SetTimer(0,50,NULL);
}
void CDIDODlg::OnTimer(UINT
nIDEvent)
{
int i;
void CDIDODlg::OnEndButton()
i = _inp(0x224) & 0x01;
{
if(i){
KillTimer(0);
m_nCountNum = 1;
}
}else{
void CDIDODlg::OnResetButton()
m_nCountNum = 0;
{
}
m_nCountNum = 0;
UpdateData(FALSE);
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}
}
32
실험 2 LED 및 7-Segment
실험목적
이 실험은 D/O의 실제 응용 예로서, 광전
스위치로 부터 상태를 읽어 들여 PC를 통
해 LED 및 7-Segment로 상태를 표시하
는 실험입니다.
33
LED 출력 인터페이스
34
7세그멘트 구동 인터페이스
35
74LS48과 7세그먼트와의 인터페이스
36
프로그램 설명
#include “conio.h”
int m_nOnOff = 1;
void CDIDODlg::OnTimer(UINT nIDEvent)
{
int i;
i = _inp(0x224) & 0x01;
if(m_nOnOff != i){
m_nCountNum ++;
//LED
_outp(0x224,i);
Sleep(45);
//7-Segment
//
_outp(0x224, m_nCountNum);
m_nOnOff = ~i;
}
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}
37