You are on page 1of 86

Tài liệu DAQ Chương 1

Chương 1
TỔNG QUAN VỀ DAQ (DATA ACQUISITION AND
CONTROL)
1. Định nghĩa và khái niệm
Thu thập dữ liệu (data acquisition) là quá trình chuyển tín hiệu vật lý từ thế giới
thực thành tín hiệu điện để đo lường và chuyển sang tín hiệu số cho quá trình xử lý,
phân tích và lưu trữ bằng máy tính.
Trong hầu hết các ứng dụng, hệ thu thập dữ liệu (Data Acquisition (DAQ)
System) được thiết kế không những chỉ để thu thập dữ liệu mà còn cả chức năng điều
khiển. Vì vậy khi nói hệ DAQ thường hàm ý cả chức năng điều khiển (Data
Acquisition and Control)

Hình 1.1 – Các thành phần cơ bản của hệ DAQ

Trang 1 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

1.1. Bộ chuyển đổi (transducer) và cảm biến (sensor)


Bộ chuyển đổi và cảm biến thực hiện thay đổi các tín hiệu vật lý thành tín hiệu
điện để phần cứng có thể xử lý.
Bộ chuyển đổi có thể chuyển hầu hết các đại lượng cần đo sang tín hiệu điện
như: cặp nhiệt điện, nhiệt kế điện trở (RTD – Resistive Temperature Detector), nhiệt
trở, …

1.2. Dây nối và cáp truyền thông


Dây nối: liên kết ngõ ra của chuyển đổi/cảm biến đến phần cứng khối xử lý tín
hiệu hoặc từ khối xử lý tín hiệu đến PC nếu khối xử lý tín hiệu cách xa PC.
Trường hợp phần cứng khối xử lý tín hiệu cách xa PC và chuẩn truyền tín hiệu
là RS-232 hoặc RS-485 : cáp truyền thông
Đây thường là thành phần cồng kềnh nhất của hệ thống và dễ chịu tác động của
nhiễu bên ngoài, đặc biệt trong môi trường công nghiệp khắc nghiệt. Vì vậy cần quan
tâm đặc biệt đến vấn đề chống nhiễu cho dây nối và cáp truyền thông để giảm thiểu
ảnh hưởng của nhiễu.

1.3. Xử lý tín hiệu (Data conditioning)


Tín hiệu điện đầu ra của cảm biến cần được chuyển sang dạng thích hợp, tương
thích với phần cứng khối thu thập dữ liệu, đặc biệt là bộ chuyển đổi A/D.
Các nhiệm vụ của thành phần này có thể là:
- Lọc: thường là bộ lọc thông thấp để loại các thành phần tần số nhiễu.
- Khuếch đại: dùng để tăng độ phân giải cho hệ thống.
- Tuyến tính hóa: dùng để hiệu chỉnh cho các bộ chuyển đổi phi tuyến như
cặp nhiệt điện.
- Cách ly: dùng để cách ly với máy tính nhằm bảo vệ máy tính trước các
thành phần điện áp cao.
- Kích thích: dùng cho các bộ chuyển đổi cần dòng hay áp kích thích ngoài
như cảm biến điện trở, nhiệt trở, …

1.4. Phần cứng thu thập dữ liệu


Thực hiện các chức năng sau:
- Chuyển tín hiệu dạng tương tự sang dạng số để hiển thị, lưu trữ và phân tích
- Đọc vào tín hiệu số chứa đựng thông tin về quá trình của một hệ thống.
- Chuyển tín hiệu số từ PC sang tín hiệu điều khiển để điều khiển một hệ
thống hay quá trình.
- Xuất ra tín hiệu điều khiển dạng số.
Phần cứng thu thập dữ liệu tồn tại dưới nhiều hình thức khác nhau từ nhiều
nhà sản xuất, có thể là: card giao tiếp mở rộng (plug-in expansion bus boards),
intelligent stand-alone loggers and controllers (loại này có thể được định cấu hình,
quan sát và điều khiển từ máy tính qua RS-232 hoặc có thể hoạt động độc lập), hoặc

Trang 2 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

các thiết bi độc lập từ xa có thể điều khiển và định cấu hình từ máy tính qua chuẩn
giao tiếp IEEE-488.

1.5. Phần mềm thu thập dữ liệu


Có 3 lựa chọn:
- Đọc và xuất dữ liệu trực tiếp dùng tác động lên các thanh ghi của phần cứng
thu thập dữ liệu
- Dùng driver đi kèm với phần cứng cung cấp bởi nhà sản xuất để phát triển
phần mềm
- Dùng gói phần mềm ứng dụng cung cấp kèm với phần cứng thu thập dữ liệu
để thực hiện tất cả các nhiệm vụ yêu cầu cho một ứng dụng cụ thể

1.6. Máy chủ


Dùng thực thi các chương trình phần mềm và lưu trữ dữ liệu, có ảnh hưởng rất
lớn đến tốc độ của hệ thống.

2. Cấu hình hệ DAQ


Việc lựa chọn cấu hình cho hệ DAQ phụ thuộc vào:
- Môi trường làm việc (phòng thí nghiệm, thu thập dữ liệu trong cùng khu vực
sản xuất hay từ xa),
- Số lượng cảm biến và cơ cấu chấp hành yêu cầu, vị trí của chúng với máy
chủ, hình thức xử lý tín hiệu yêu cầu, độ khắc nghiệt của môi trường làm
việc là các yếu tố quan trọng.
Các cấu hình thông dụng của hệ DAQ:
- Vào/ra tại chỗ (tập trung) với PC
- Vào/ra phân tán
- Các bộ thu thập dữ liệu và điều khiển độc lập hoặc phân tán
- Các thiết bị theo chuẩn IEEE-488

2.1. Vào / ra tập trung (Plug-in I/O)


- Các mạch vào/ra tập trung được cắm trực tiếp vào máy tính qua các bus mở
rộng
- Đặc điểm: nhỏ gọn, tốc độ thu thập dữ liệu và điều khiển nhanh nhất, chi phí
thấp vì vậy thường được dùng.
- Được sử dụng trong các ứng dụng mà máy chủ ở gần cảm biến và cơ cấu
chấp hành.

Trang 3 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

Hình 1.2 – Một số ví dụ của Plug-in I/O board

2.2. Vào / ra phân tán (Distributed I/O)


Trong môi trường sản xuất công nghiệp, cảm biến và cơ cấu chấp hành thường
ở xa máy chủ, ở trong môi trường khắc nghiệt và bao phủ trong một diện tích rộng,
cách xa máy chủ hàng trăm mét. Do đó, khó có thể nhận được tín hiệu nhỏ từ các cảm
biến như cặp nhiệt, cảm biến điện trở (strain gauge) qua đường truyền dài đồng thời
dây nối từ cảm biến về máy chủ dài và tốn kém.
Giải pháp:
- Module xử lý tín hiệu được đặt gần mỗi cảm biến tương ứng cũng như mỗi
cảm biến cần có một module xử lý tín hiệu: vào/ra phân tán.
- Giải pháp này có thể tốn kém nếu có nhiều cảm biến nhưng chất lượng tín
hiệu và độ chính xác cao.
- Dạng thường gặp của vào/ra phân tán là bộ phát số. Bộ phát số này thực
hiện tất cả các chức năng xử lý tín hiệu cần thiết, có bộ vi điều khiển và
chuyển đổi tương tự - số (ADC) để chuyển tín hiệu cần đo sang dạng số. Tín
hiệu dạng số này được truyền về máy chủ bằng chuẩn RS-232 hoặc RS-485.
- RS-232: khoảng cách truyền gần.
- RS-485: (multi-drop): giảm số lượng cáp truyền, có thể kết nối đến 32
modules, khoảng cách truyền có thể lên đến 10km nếu dùng multi-drop
network. (RS-232: tối đa 15m).

Trang 4 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

- Cần bộ chuyển đổi từ RS-232 sang RS-485 do hầu hết các máy chủ không
hỗ trợ chuẩn RS-485.

Hình 1.3 – Vào / ra phân bố - module phát số

2.3. Bộ thu thập dữ liệu độc lập hay phân tán


Ưu điểm: giống ưu điểm của I/O phân tán với các bộ xử lý tín hiệu thông minh,
đồng thời khả năng tự quyết định từ xa làm tăng độ tin cậy của hệ thống, có thể điều
khiển và định cấu hình từ máy tính dùng giao tiếp nối tiếp hoặc card PCMCIA
(Personal Computer Memory Card International Association) và có thể hoạt động độc
lập mà không cần máy chủ (đây là mục tiêu chính). Vì vậy rất hữu ích khi phải đặt các
bộ thu thập dữ liệu ở xa hoặc trong môi trường khắc nghiệt hoặc các ứng dụng không
cho phép sự kết nối liên tục tới máy tính (ví dụ: điều khiển nhiệt độ trong các xe tải
đông lạnh).

Trang 5 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

Hình 1.4 - Sử dụng card PCMCIA để nhập dữ liệu từ bộ điều khiển / đăng nhập
độc lập

Hình 1.5 - Sơ đồ bộ thu thập dữ liệu độc lập qua giao tiếp nối tiếp RS-232

Trang 6 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

Hình 1.6 - Kết nối bộ thu thập dữ liệu độc lập qua mạng điện thoại hay radio

Hình 1.7 - Hệ thu thập dữ liệu phân tán

Trang 7 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 1

2.4. Các thiết bị lập trình được IEEE-488


- Chuẩn truyền thông này còn được gọi là GPIB (General Purpose Interface
Bus), được thành lập năm 1965 bởi Hewlett-Packard để kết nối và điều
khiển các thiết bị đo thử lập trình được của hãng. Chuẩn này nhanh chóng
được thế giới chấp nhận và trở thành chuẩn IEEE-488 nhờ tốc độ, tính linh
hoạt và hữu ích trong việc kết nối các thiết bị trong phòng thí nghiệm.
- GPIB là chuẩn giao tiếp truyền thông song song tốc độ cao cho phép kết nối
đồng thời 15 thiết bị trên bus truyền dữ liệu song song. Thường yêu cầu có
bộ điều khiển GPIB để định địa chỉ cho từng thiết bị và khởi tạo các thiết bị
sẽ truyền thông với nhau.
- Tốc độ truyền thông tối đa, chiều dài cáp truyền tối đa, khoảng cách tối đa
giữa các thiết bị phụ thuộc vào tốc độ và khả năng xử lý của bộ điều khiển
GPIB và loại cáp truyền.
- Phù hợp cho các phòng thí nghiệm nghiên cứu hoặc đo thử trong công
nghiệp
- Có hàng ngàn sản phẩm trên thị trường hỗ trợ chuẩn giao tiếp này

Hình 1.8 - Cấu trúc hệ GPIB thông dụng

Trang 8 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

Chương 2
XỬ LÝ TÍN HIỆU NGÕ VÀO CHO HỆ DAQ
(SIGNAL CONDITIONING)
1. Giới thiệu
Tín hiệu điện ngõ ra của bộ chuyển đổi / cảm biến cần được biến đổi cho phù
hợp với ngõ vào của phần cứng DAQ. Ngoài ra, một số bộ chuyển đổi / cảm biến cần
nguồn kích thích hoặc cầu Wheaston và tuyến tính hóa để tín hiệu đo được chính xác.
Hầu hết các hệ DAQ đều bao gồm khâu xử lý tín hiệu dưới một hình thức nào
đó.
Các hình thức cơ bản mà khâu xử lý tín hiệu có thể thực hiện là:
- Khuếch đại
- Cách ly
- Lọc
- Kích thích
- Tuyến tính hóa
Khâu xử lý tín hiệu của hệ DAQ phải thực hiện nhiệm vụ nào và cách thức thực
hiện là gì phụ thuộc vào số lượng và loại của bộ chuyển đổi / cảm biến, yêu cầu về
nguồn kích thích và nối đất cho cảm biến, đồng thời không kém phần quan trọng là
khoảng cách từ cảm biến tới máy chủ trung tâm.

2. Các kiểu xử lý tín hiệu


2.1. Khuếch đại
Là nhiệm vụ chính yếu của khâu xử lý tín hiệu nhằm:
- Tăng độ phân giải cho phép đo (nhiệm vụ chính)
- Tăng tỷ số tín hiệu/nhiễu (SNR)
Tăng độ phân giải:
Ví dụ: Xét tín hiệu ngõ ra cảm biến 0-10mV nếu đưa trực tiếp vào ADC 12bit
với full-scale 10V
ADC 12 bit  có tất cả 212 = 4096 mức điện áp khác nhau.
Điện áp ngõ vào ADC từ 0V – 12V  độ phân giải 10V/4096 = 2,44 mV
Ngõ ra cảm biến từ 0 – 10 mV  chỉ phân biệt 5 mức điện áp: 0V; 2,44 mV;
4,88 mV; 7,32 mV và 9,76 mV.
Nếu thực hiện khuếch đại tín hiệu tại ngõ ra cảm biến 10 lần: điện áp đưa vào
ADC sẽ nằm trong khoảng 0 – 100 mV  phân biệt được 41 mức điện áp khác nhau.
Tăng SNR:
Tín hiệu nhỏ ở ngõ ra của cảm biến cách xa phần cứng DAQ nếu được truyền
trong môi trường nhiễu sẽ bị ảnh hưởng lớn của nhiễu. Nếu tín hiệu nhỏ (bị nhiễu) này
được khuếch đại tại phần cứng DAQ sau khi được truyền qua môi trường nhiễu thì

Trang 9 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

nhiễu trong tín hiệu này cũng được khuếch đại như tín hiệu cần đo. Nếu nhiễu so sánh
được với tín hiệu cần đo (SNR thấp) sẽ dẫn đến sai số lớn cho phép đo và phép đo là
vô nghĩa.
Tăng SNR bằng cách khuếch đại tín hiệu nhỏ ở đầu ra cảm biến trước khi
truyền.
Ví dụ: Cặp nhiệt loại J có độ nhạy 50uV/0C. Nếu tín hiệu đầu ra cặp nhiệt được
truyền trong môi trường có nhiễu lớn với khoảng cách 10m, nhiễu đặt lên tín hiệu của
cặp nhiệt có thể lên đến 200uV dẫn đến sai số đến 4oC. Nếu khuếch đại tín hiệu tại đầu
ra cặp nhiệt lên 500 lần thì độ nhạy lúc này là 25mV/0C, sai số đo nhiễu lúc này (hàng
uV) là rất nhỏ.

2.2. Cách ly
 Cách ly dùng Opto : thường dùng cho tín hiệu số

 Cách ly bằng phương pháp từ trường/điện trường: dùng cho tín hiệu tương
tự, thực hiện bằng cách điều chế tín hiệu điện áp thành tần số, sau đó truyền tín
hiệu tần số và biến đổi tần số thành điện áp ở đầu ra
 Cách ly bằng biến áp:

Cách ly giúp bảo vệ thiết bị phần cứng DAQ, PC cũng như người vận hành khỏi
điện áp cao trong quá trình quá độ, sét hay tĩnh điện cũng như hỏng hóc của các thiết
bị cao áp. Các bộ bảo vệ quá áp được đặt ở đầu vào của khâu xử lý tín hiệu để bảo vệ
khâu này. Cách ly còn nhằm đảm bảo vòng nối đất không ảnh hưởng đến tín hiệu đo.

Trang 10 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

2.3. Mạch lọc


Mạch lọc thực hiện nhiệm vụ loại bỏ nhiễu ra khỏi tín hiệu cần đo trước khi tín
hiệu này được khuếch đại và đưa vào ADC. Quá trình lọc có thể thực hiện bằng phần
cứng hoặc phần mềm.
Lọc bằng phần mềm: đọc tín hiệu đo nhiều lần hơn cần thiết và lấy trung bình.
Phương pháp này loại bỏ được nhiễu tuần hoàn hoàn toàn nếu các mẫu được trung
bình hóa trong một chu kỳ của nhiễu.
Lọc bằng phần cứng: các mạch lọc tương tự là rẻ nhất, bao gồm các mạch lọc
thụ động (dùng các phần tử thụ động như RLC) và tích cực (dùng khuếch đại thuật
toán – OpAmp)
Các thông số thông dụng của mạch lọc:
- Tần số cắt
- Roll-off: độ dốc của đường cong biên độ theo tần số (biểu đồ Bode) tại tần
số cắt.
- Hệ số phẩm chất: quyết định độ lợi của mạch lọc tại tần số cộng hưởng và
roll-off

2.4. Tuyến tính hóa


Thông thường, quan hệ giữa ngõ ra của cảm biến và tín hiệu đầu vào cần đo là
phi tuyến. Phần mềm của hệ DAQ thường thực hiện chức năng tuyến tính hóa. Tuy
nhiên, nếu mối quan hệ phi tuyến là dự đoán được và có tính lặp lại thì có thể tuyến
tính hóa bằng phần cứng.

3. Phân loại khâu xử lý tín hiệu


3.1. Các mạch xử lý tín hiệu cắm vào PC
- Mạch xử lý tín hiệu nằm trên phần cứng DAQ cắm vào máy chủ như hình.
- Mỗi mạch xử lý tín hiệu cho một loại cảm biến
- Sử dụng cho ứng dụng nhỏ với số lượng cảm biến ít và nằm gần máy chủ

3.2. Các bộ phát 2 dây nối trực tiếp


Bộ phát 2 dây là module xử lý tín hiệu 2 cửa: nhận tín hiệu cần xử lý ở đầu vào
và xuất tín hiệu đã xử lý ở đầu ra. Mỗi module cần một loại cảm biến. Các bộ phát này
không phải là thiết bị thông minh và không có ADC trên mạch.

Trang 11 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

Tín hiệu đã được xử lý được truyền về phần cứng hệ DAQ tại máy chủ bằng 2
dây, tín hiệu truyền có thể là điện áp hoặc mạch vòng dòng điện (4-20 mA).
 Tín hiệu truyền điện áp (± 10V hoặc 0-10V) tương thích với hầu hết với đầu
vào các mạch DAQ cho phép giao tiếp dễ dàng với các board DAQ hiện đại.
Tuy nhiên hạn chế của tín hiệu này là sụt áp trên dây truyền ở khoảng cách xa
nên chỉ dùng phương pháp truyền điện áp khi đường truyền ngắn.
 Tín hiệu dòng điện có khả năng miễn nhiễm với nhiễu cao và có thể truyền với
khoảng cách hàng trăm m (lên đến 1000m). Bộ thu chuyển dòng sang áp để đưa
vào ADC. Bộ thu thường là một điện trở khoảng 500  / 10V (dòng 20 mA).
 Mỗi cặp cáp truyền cho một cảm biến riêng lẻ nhiều cáp kết nối đến máy chủ.
 Nguồn cung cấp (15-40V) cần đủ công suất cung cấp dòng cho các modules
theo yêu cầu.
 Sơ đồ khối của một bộ phát 2 dây trực tiếp như hình

Trang 12 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

3.3. Vào/ra phân tán - bộ phát số

Mạch xử lý tín hiệu vào/ra phân tán sử dụng bộ phát số

Mạch xử lý tín hiệu vào/ra phân tán sử dụng bộ phát số riêng biệt

Trang 13 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

4. Nhiễu và ảnh hưởng của nhiễu


4.1. Khái niệm
Nhiễu: tín hiệu điện không mong muốn trong mạch.
Không thể triệt nhiễu hoàn toàn mà chỉ có thể giảm biên độ nhiễu cho đến khi
biên độ của nó không gây ảnh hưởng lên tín hiệu đo

4.2. Nguồn nhiễu và phân loại nhiễu


Có 3 thành phần tham gia quá trình sinh nhiễu:

Trang 14 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

Các hình thức gây nhiễu thường gặp trong hệ DAQ


- Ghép nối hỗ cảm (inductive coupling)
- Ghép nối điện dung (capacitive coupling)
- Ghép nối điện trở (conductive coupling)
Ghép nối điện trở:

Ghép nối điện dung:

Trang 15 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

Ghép nối hỗ cảm:

Trang 16 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

4.3. Chống nhiễu


Dùng cáp có vỏ bọc và nối đất vỏ bọc : giảm nhiễu do tương hỗ điện dung gây
ra.
Vn = jω RS C2S VNS

Nối đất vỏ cáp:

Trang 17 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 2

Dùng cáp có vỏ bọc và xoắn đôi


Dùng cáp xoắn đôi
Dùng cáp đồng trục

Trang 18 GV: Phạm Hùng Kim Khánh


7jLOL͏X'$4  &K˱˯QJ

&KѭѫQJ
*,$27,ӂ3*,Ӳ$+ӊ'$49Ӟ,0È<7Ë1+
 &KX\ӇQÿәL$' $QDORJWR'LJLWDO 
 1JX\rQOê
&KX\ӇQÿәL$'OjTXDWUuQKFKX\ӇQWӯWtQKLӋXWѭѫQJWӵWӯFiFQJXӗQErQQJRjL
WKjQKGҥQJWtQKLӋXVӕÿӇPi\WtQKFyWKӇ[ӱOêÿѭӧF
4XiWUuQKFKX\ӇQÿәL$'EDRJӗP
 /ҩ\PүXWtQKLӋX 6DPSOLQJ 
 /ѭӧQJWӱKyD 4XDQWL]LQJ 
 0mKyD &RGLQJ 

/ҩ\PүX
/jTXiWUuQKWKD\WtQKLӋXWѭѫQJWӵEҵQJELrQÿӝFӫDQyӣQKӳQJWKӡLÿLӇPFiFK
ÿӅXQKDXJӑLOjFKXNǤO̭\P̳X&iFJLiWUӏQj\VӁÿѭӧFFKX\ӇQWKjQKVӕQKӏSKkQÿӇ
FyWKӇ[ӱOêÿѭӧF9ҩQÿӅӣÿk\OjSKҧLOҩ\PүXQKѭWKӃQjRÿӇFyWKӇNK{LSKөFOҥLWtQ
KLӋXJӕF7tQKLӋXOҩ\PүXFӫDWtQKLӋXJӕFV W ELӇXGLӉQOjV Q7 YӟL7OjFKXNǤOҩ\
PүX
 V Q7  V W X W   
WURQJÿyX W OjFKXӛL[XQJ'LUDF
f
 X W   ¦ G W  Q7 
Q f
 

3KәFӫDWtQKLӋXOҩ\PүXOjWtFKFKұSFӫD6 I Yj8 I GRÿy


 f Q
 6V I  6 I 8 I   ¦
7 Q f
6 I  
7
 
V




I
 W 




 I
W
  7
+uQK±7tQKLӋXOҩ\PүXYjSKә

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

4XiWUuQKOҩ\PүXP{WҧӣWUrQOjTXiWUuQKOҩ\PүXOêWѭӣQJ7URQJWKӵFWӃGR
WtQKLӋXX W OjFiF[XQJOҩ\PүXYӟLFKXNǤ7ÿӝUӝQJWYjELrQÿӝDQrQSKәWtQKLӋX
WKӵFWӃVӁNK{QJFKӍOjKjP6 I PjOj
VLQ SIW
 6 I DW   
SIW
Q7 W  
GRJLiWUӏOҩ\PүXOjD ³ V W GW 
Q7 W  

7X\QKLrQGRW7QrQVDLOӋFKNK{QJÿiQJNӇ
7ҫQVӕOҩ\PүX
;pWWtQKLӋXVLQFyWҫQVӕIYjTXiWUuQKOҩ\ PүX YӟLFiFFKXNǤOҩ\ PүX NKiF
QKDX






 IV I IV I






IV I IV I

+uQK±/ҩ\PүXWtQKLӋXYӟLFiFWҫQVӕNKiFQKDX

1KѭYұ\WDWKҩ\UҵQJQӃXWҫQVӕOҩ\PүXFjQJFDRWKuGҥQJFӫDWtQKLӋXFjQJFy
NKҧ QăQJ NK{L SKөF JLӕQJ QKѭ WtQ KLӋX JӕF 7X\ QKLrQ QӃX WҫQ Vӕ FjQJ FDR WKu FҫQ
SKҧLGQJGXQJOѭӧQJOӟQKѫQÿӇOѭXWUӳYjÿӗQJWKӡLWӕFÿӝ[ӱOêVӁFKұPOҥLGRFҫQ
[ӱOêVӕOѭӧQJGӳOLӋXOӟQ7ӯÿyWDFҫQ[iFÿӏQKWҫQVӕOҩ\PүXVDRFKRFyWKӇNK{L
SKөFOҥLJҫQÿ~QJGҥQJWtQKLӋXYӟL\rXFҫXWӕFÿӝ[ӱOêJLӟLKҥQWURQJPӭFFKRSKpS
ĈӏQKOêOҩ\PүX
ĈӏQKOêOҩ\PүX[iFÿӏQKÿLӅXNLӋQÿӇPӝWWұSPүXFyWKӇFKRSKpSNK{LSKөF
OҥLFKtQK[iFWtQ KLӋXWUѭӟF NKLOҩ\ PүX1KѭNKҧRViWӣWUrQ KuQK SKәFӫDWtQ
KLӋXOҩ\PүXOjWtQKLӋXFyFKXNǤWUrQPLӅQWҫQVӕĈӇNK{LSKөFOҥLGҥQJFӫDWtQKLӋX
WDFKӍFҫQJLӟLKҥQSKәWҫQFӫDWtQKLӋX4XiWUuQKQj\FyWKӇWKӵFKLӋQEҵQJPӝWPҥFK
OӑFWK{QJWKҩSYӟLKjPWUX\ӅQ

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

­ IV
°° I 
 + I   ® I V   
° I
°¯ It V

+D\
VLQ SW  7
 K W     
SW  7
3KәFӫDWtQKLӋXVDXNKLNK{LSKөFOj
 6 I  6V I + I   
+D\
º VLQ S W  W
 7
f
ª f
 V W   ³ « ¦ V W
G W
Q7 » GW

f¬ Q f ¼ S W  W
 7
f
VLQ S W  7  Q
 V W   ¦ V Q7
Q f S W  7  Q
  

 V
6V



I

 IV 7 W
 K
+

IV

I

 W

6


I

W



 +uQK.K{LSKөFWtQKLӋXVDXNKLOҩ\PүX

1KѭYұ\WDFyWKӇNK{LSKөFOҥLWtQKLӋXWUѭӟFNKLOҩ\PүXNKLSKәWtQKLӋXVDX
NKL TXD PҥFK OӑF SKҧL JLӕQJ KӋW YӟL SKә WtQ KLӋX JӕF 7KHR KuQK  ÿLӅX NLӋQ Qj\
WKRҧPmQNKLSKәWtQKLӋXJӕFNK{QJFKӭDWKjQKSKҫQWҫQVӕOӟQKѫQI V


7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

7URQJWUѭӡQJKӧSQJѭӧFOҥLSKәFӫDWtQKLӋXOҩ\PүXVӁEӏPpRGҥQJQrQNKL
VӱGөQJPҥFKOӑFÿӇNK{LSKөFWtQKLӋXWKuWtQKLӋXQj\VӁNKiFYӟLWtQKLӋXJӕFKLӋQ
WѭӧQJQj\JӑLOjLFK͛QJSK͝ DOLDVLQJ 
 6V


 I

 +uQK±+LӋQWѭӧQJFKӗQJSKә

7ӯÿyÿӏQKOêOҩ\PүXSKiWELӇXQKѭVDX
0͡W WtQKL͏XNK{QJFKͱD ḘW NǤ WKjQK SK̯Q W̯Q V͙ QjR OͣQ K˯Q KD\ E̹QJ
P͡WJLiWU͓IPFyWK͋EL͋XGL͍QFKtQK[iFE̹QJW̵SFiFJLiWU͓FͯDQyYͣLFKXNǤO̭\
P̳X7 IP
1KѭYұ\WҫQVӕOҩ\PүXSKҧLWKRҧPmQÿLӅXNLӋQIV•IPWURQJÿyIPOjWKjQK
SKҫQWҫQVӕOӟQQKҩWFyWURQJWtQKLӋX7ҫQVӕJLӟLKҥQQj\ÿѭӧFJӑLOjWҫQVӕ1\TXLVW
YjNKRҧQJ IVIV JӑLOjNKRҧQJ1\TXLVW7URQJWKӵFWӃWtQKLӋXWUѭӟFNKLOҩ\PүX
VӁEӏJLӟLKҥQEҵQJPӝWPҥFKOӑFÿӇWҫQVӕWtQKLӋXQҵPWURQJNKRҧQJ1\TXLVW
9t Gө QKѭ WtQ KLӋX kP WKDQK WKѭӡQJ QҵP WURQJ NKRҧQJ   +] QrQ
QJѭӡLWDVӁÿѭDWtKLӋXTXDPҥFKOӑFWK{QJWKҩSÿӇORҥLFiFWKjQKSKҫQWҫQVӕEұFFDR
YjWKӵFKLӋQOҩ\PүXӣWҫQVӕWӕLWKLӇXOj.+]

/ѭӧQJWӱKyD
/ѭӧQJWӱKRiOjTXiWUuQK[ҩS[ӍFiFJLiWUӏFӫDWtQKLӋXOҩ\PүXV Q7 EҵQJEӝL
VӕFӫDPӝWJLiWUӏT TJӑLOjE˱ͣFO˱ͫQJW͵ 1ӃXTNK{QJWKD\ÿәLWKuTXiWUuQKOѭӧQJ
WӱJӑLOjÿӗQJQKҩW4XiWUuQKQj\WKӵFKLӋQEҵQJKjPEұFWKDQJP{WҧQKѭVDX
 5

 4

 3

2

1


sq(n)

 -1

 -2

 -3

 -4

-5
 -6 -4 -2 0
s(n)
2 4 6

 +uQK±+jPOѭӧQJWӱYӟLEѭӟFOѭӧQJWӱT 
4XiWUuQKOѭӧQJWӱFyWKӇWKӵFKLӋQEҵQJFiFKÿӏQKQJKƭDJLiWUӏWUXQJWkPFӫD
KjPOѭӧQJWӱ9tGөQKѭWURQJKuQKFiFJLiWUӏWURQJNKRҧQJWӯ Q±ò TÿӃQ Q
ò TVӁÿѭӧFOjPWUzQOjQ3KѭѫQJSKiSQj\VӁFӵFWLӇXKyDF{QJVXҩWFӫDWtQKLӋXOӛL

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

0ӝW SKѭѫQJ SKiS NKiF Fy WKӇ Vӱ GөQJ Oj GQJ KjP FҳW QJKƭD Oj FiF JLi WUӏ WURQJ
NKRҧQJ>QT Q T VӁOjPWUzQWKjQKQ
 10

 8

 6

 4

 2

 0

 -2

 -4
5

-6
4

-8

 3

-10

 20 1 2 3 4 5 6

 1

 0

 -1

 -2
+uQK±/ӛLOѭӧQJWӱ
1KѭYұ\TXiWUuQKOѭӧQJWӱKyDVӁOjPPpRGҥQJWtQKLӋXYj[HPQKѭWӗQWҥL
-3
PӝWWtQKLӋXQKLӉX6ӵPpRGҥQJQj\JӑLOjPpROѭӧQJWӱKD\FzQJӑLOjQKLӉXOѭӧQJ
Wӱ -4

 V Q  VT Q H Q 
-5
 
0 1 2 3 4 5 6

%LrQÿӝFӫDWtQKLӋXQKLӉXOѭӧQJWӱVӁQҵPWURQJNKRҧQJ TT 'RVDLVӕ


OѭӧQJ Wӱ NK{QJ ELӃW WUѭӟF QrQ YLӋF P{ Wҧ VDL Vӕ OѭӧQJ Wӱ PDQJ WtQK WKӕQJ Nr 7әQJ
TXiWWDFyWKӇ[HPH Q OjFKXӛLFiFELӃQQJүXQKLrQWURQJÿy
 7KӕQJNrFӫDH Q NK{QJWKD\ÿәLWKHRWKӡLJLDQ QKLӉXOѭӧQJWӱKyDOj
TXiWUuQKQJүXQKLrQGӯQJ 
 1KLӉXOѭӧQJWӱH Q OjFKXӛLFiFELӃQQJүXQKLrQNK{QJWѭѫQJTXDQ
 1KLӉXOѭӧQJWӱH Q NK{QJWѭѫQJTXDQYӟLWtQKLӋXQJ}YjRV Q 
 +jPPұWÿӝ[iFVXҩWFӫDH Q SKkQEӕÿӅXWUrQWҫPFiFJLiWUӏFӫDVDL
VӕOѭӧQJWӱ
1KѭYұ\QKLӉXOѭӧQJWӱÿѭӧFSKkQEӕÿӅXWUrQNKRҧQJ TT YjFySKѭѫQJ
VDL F{QJVXҩWQKLӉXOѭӧQJWӱ Oj
T
 V 
H   

7tQKLӋXÿѭӧFOҩ\ PүX YjOѭӧQJWӱKyDEDR JӗP PӝWWұSKӧSFiFVӕ YjÿѭӧF
OѭXWUӳӣGҥQJQKӏSKkQĈӕLYӟLVӕQKӏSKkQ1ELWVӁFyWӕLÿD 1JLiWUӏNKiFQKDXӭQJ

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

YӟL 1 PӭF OѭӧQJ Wӱ NKiF QKDX 1Kѭ Yұ\ SKҥP YL OѭӧQJ Wӱ VӁ Eӏ JLӟL KҥQ WURQJ
NKRҧQJWӯTÿӃQ1TEҩWNǤELrQÿӝWtQKLӋXQjRYѭӧWTXiJLiWUӏQj\WKuVӁEӏFҳWEӓ
*LҧVӱWtQKLӋXPmKyDFyELrQÿӝWURQJNKRҧQJ>$P$P@
 $P 1T  
7ӯÿyJLҧVӱF{QJVXҩWWtQKLӋXOj V V WKuWӹVӕWtQKLӋXWUrQQKLӉXOѭӧQJWӱKyD
6415±6LJQDOWR4XDQWL]LQJ1RLVH5DWLR Oj
V V $
 6415>G%@   ORJ    1  ORJ P   
VH VV

0mKyD
7tQKLӋXӣQJ}UDEӝOѭӧQJWӱKyDÿѭӧFÿѭDÿӃQEӝPmKyDEӝPmKyDVӁJiQ
PӝWVӕQKӏSKkQFKRPӛLPӭFOѭӧQJWӱ4XiWUuQKQj\JӑLOjPmKyD
&yQKLӅXSKѭѫQJSKiSPmKyDNKiFQKDXQKѭQJWURQJÿDVӕKӋWKӕQJ[ӱOêWtQ
KLӋXVӕVӱGөQJSKѭѫQJSKiSE0ӝWYtGөÿӕLYӟL1 QKѭVDX

6ӕQKӏSKkQ *LiWUӏ 6ӕQKӏSKkQ *LiWUӏ
   
   
   
   
   
   
   
   

1JRjLSKѭѫQJSKiSPmKyDWX\ӃQWtQKQKѭWUrQ FiFPӭFOѭӧQJWӱFyFQJVӕ
ELWQKӏSKkQEҵQJQKDX WDFzQVӱGөQJSKѭѫQJSKiSPmKyDSKLWX\ӃQ3KѭѫQJSKiS
Qj\VӱGөQJFiFEѭӟFOѭӧQJWӱWKD\ÿәLWKHRELrQÿӝWtQKLӋX

 &iFWK{QJVӕ
.KLWKӵFKLӋQTXiWUuQK$'&FiFWK{QJVӕFҫQTXDQWkPFӫDKӋWKӕQJ
™ 6ӕELWPmKyD
6ӕ ELW Pm KyD FӫD TXi WUuQK $' [iF ÿӏQK PӝWPӭF OѭӧQJ Wӱ VӁ ÿѭӧF Pm KyD
WKjQKEDRQKLrXELWQKӏSKkQ1ӃXVӕELWPmKyDOӟQÿӝSKkQJLҧLFӫDKӋWKӕQJVӁWăQJ
OrQQKѭQJÿzLKӓLGXQJOѭӧQJOѭXWUӳGӳOLӋXYjWKӡLJLDQ[ӱOêOӟQKѫQYjQJѭӧFOҥL
™ ĈӝUӝQJPmKyD
/jJLiWUӏFӫDQJ}YjRWѭѫQJWӵOjPFKRJLiWUӏPmKyDӣQJ}UDWKD\ÿәL9tGө
QKѭEӝ$'&FyVӕELWPmKyDYӟLQJ}YjRWѭѫQJWӵWӯ±9FyÿӝUӝQJPmKyD
Oj P9ĈӝUӝQJPmKyDFzQJӑLOjEѭӟFOѭӧQJWӱ
7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

™ 3KҥPYLQJ}YjR
3KҥPYLQJ}YjROjNKRҧQJJLiWUӏQKӓQKҩWYjOӟQQKҩWPm$'&FyWKӇFKX\ӇQ
ÿәLFKtQK[iFVDQJGҥQJVӕ3KҥPYLQj\FyWKӇӣGҥQJÿѫQFӵF FKӍFyÿLӋQiSGѭѫQJ 
KD\ OѭӥQJ FӵF EDR JӗP Fҧ ÿLӋQ iS GѭѫQJ Yj kP  7URQJ FiF ERDUG $'& WK{QJ
WKѭӡQJSKҥPYLQJ}YjRFyWKӇWKD\ÿәL
™ 3KѭѫQJSKiSPmKyDGӳOLӋX
'QJÿӇ[iFÿӏQKGӳOLӋXVӕӣQJ}UDWKHRWtQKLӋXWѭѫQJWӵQJ} YjR3KѭѫQJ
SKiSPmKyDÿѫQJLҧQQKҩWOjRIIVHWGӳOLӋXVӕWKD\ÿәLWX\ӃQWtQKWKHRFiFPӭFOѭӧQJ
Wӱ
™ 7KӡLJLDQFKX\ӇQÿәL
/jWKӡLJLDQWӯO~FEҳWÿҫXTXiWUuQKFKX\ӇQÿәLFKRWӟLNKLFyGӳOLӋXVӕKӧSOӋ
WҥLQJ}UD9tGөQKѭ$'&YjFyWKӡLJLDQFKX\ӇQÿәL—V

 0ӝWVӕYLPҥFK$'&
    U4 
26 17
 27
28
IN0
IN1
D0
D1
14
15 U4
1 IN2 D2 8
 2
3
IN3
IN4
D3
D4
18
19
6
7 +IN DB0
18
17
IN5 D5 -IN DB1 16
4 20
 5 IN6
IN7
D6
D7
21 9
VREF/2
DB2
DB3
15
14
4 DB4 13
 12
16 REF+
REF-
EOC
7
19 CLKIN
CLKR
DB5
DB6
12
11
2 DB7
 10
CLK 3 RD
WR INTR
5
25 1
CS
 24
23
A0
A1 20
A2 VCC/VREF
22
 9
6
ALE
OE ADC0804
START
 11
VCC

 ADC0809

+uQK±9LPҥFK$'&
™ 0ҥFKӭQJGөQJ


7UDQJ *93K̩P+QJ.LP.KiQK

+5V

R7 R8 R9 R10 R11 R12 R13 R14

7UDQJ

7jLOL͏X'$4




2
2
2
2
2
2
2
2

+5V


1
1
1
1
1
1
1
1

 10K
1 16
2 15
 3 14
4 13
5 12
 6 11
+5V 7 10
8 9

R-PACK
 P1 ADC0804 PORT A
+5V 6 18
7 +IN DB0 17 1
R3 -IN DB1 16 2
 1.13K 9 DB2 15 3
+5V 19 VREF/2 DB3 14 4
R1
 4 CLKR DB4 13 5
1K CLKIN DB5 12 6
C3 1 DB6 11 7
 1 nF 2 CS DB7 8

4
RD A
3 5 R6 10K
WR INTR +5V
2 - +5V J1
P2 1 R5 10K
+5V
3 +
B
C R4 10K
 +5V
JR4558

4
J2

8
 P3 6 - S1
7
5 + START

R2 -5V

8
1K

-5V
+uQK±6ѫÿӗPҥFKӭQJGөQJ$'&

*93K̩P+QJ.LP.KiQK
&K˱˯QJ


7jLOL͏X'$4  &K˱˯QJ

 &KX\ӇQÿәL'$ 'LJLWDOWR$QDORJ 


 1JX\rQOê
%ӝ ELӃQ ÿәL Vӕ  WѭѫQJ Wӵ '$&  WKӵF KLӋQ F{QJ YLӋF ELӃQ ÿәL FiF JLi WUӏ Vӕ
WKjQKFiFÿҥLOѭӧQJWѭѫQJWӵ GzQJÿLӋQKRһFÿLӋQiS WѭѫQJӭQJ
'$& QKұQ Q ELW VRQJ VRQJ ӣ QJ} YjR Yj WKӵF KLӋQ FKX\ӇQ ÿәL WKjQK WtQ KLӋX
WѭѫQJWӵӣQJ}UD*LiWUӏQJ}UDWK{QJWKѭӡQJOjGzQJÿLӋQYjFӓWKӇWKӵFKLӋQFKX\ӇQ
ÿәL WKjQK ÿLӋQ iS EҵQJ FiF Eӝ NKXӃFK ÿҥL WKXұW WRiQ 2S$PS  '$& EDR JӗP PӝW
PҥQJFiFFKX\ӇQPҥFKWѭѫQJWӵÿLӅXNKLӇQEҵQJGӳOLӋXVӕQJ}YjRYjPӝWPҥQJFiF
ÿLӋQWUӣ
™ &KX\ӇQPҥFKEҵQJGzQJÿLӋQ


5


+uQK±'$&FKX\ӇQPҥFKGzQJÿLӋQ
3KѭѫQJSKiSQj\WҥRGzQJÿLӋQӣQJ}UDEҵQJFiFKFӝQJWҩWFҧFiFGzQJÿLӋQ
WKjQKSKҫQ&iFGzQJÿLӋQWKjQKSKҫQÿѭӧFÿLӅXNKLӇQEҵQJFiFWUDQVLVWRUQӃXJLiWUӏ
QJ}YjRWѭѫQJӭQJOjORJLFWKuGzQJÿLӋQTXD5ÆGLRGHÆWUDQVLVWRUWҳWQJѭӧFOҥL
WKuGzQJÿLӋQTXD5ÆWUDQVLVWRUÆ2S$PS
*LҧVӱGzQJÿLӋQWҥLQJ}YjR2S$PSOj,7Æ9RXW ,75

Æ9RXW  VR() ¦ Bi  i  VR() B   B     Bn  n 


VR()
,7 
R
¦B 
i
 i 

™ '$&55
3KѭѫQJSKiSQj\FKӍGQJFiFÿLӋQWUӣFyJLiWUӏ5Yj5*LӕQJQKѭSKҫQWUrQ
SKѭѫQJSKiSQj\FNJQJGQJQJ}YjRVӕYjÿLӋQiSFKXҭQ9 5()ÿӇWҥRGzQJ,7WҥLQJ}
UD



7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ


+uQK±'$&55

 &iFWK{QJVӕ
™ ĈӝSKkQJLҧL
/j JLiWUӏFKrQKOӋFKӣQJ}UD NKLQJ} YjRWKD\ÿәL JLiWUӏ*LiWUӏQj\FjQJ
QKӓ ӭQJYӟLVӕELWPmKyDFjQJOӟQ WKuGҥQJVyQJQJ}UD'$&FjQJPӏQ
™ 3KҥPYLQJ}UD
1J}UDFӫD'$&FyGҥQJÿLӋQiSKD\GzQJÿLӋQ1ӃXVӱGөQJQJ}UDӣGҥQJ
ÿLӋQiSFҫQSKҧLWKrPFiFPҥFKNKXӃFKÿҥLWKXұWWRiQÿӇFKX\ӇQWӯGzQJWKjQKiS
ĈӇWKD\ÿәLRIIVHWÿӝOӧL QJKƭDOjSKҥPYLQJ}UD ErQWURQJEӝ'$&FyÿLӋQ
WUӣKӗLWLӃS1ӃXFyQKLӅXÿLӋQWUӣKӗLWLӃSSKҥPYLQJ}UDFӫD'$&FyWKӇWKD\ÿәL
ÿѭӧFFiFJLiWUӏQj\ÿѭӧF[iFÿӏQKEҵQJFiFMXPSHUWUrQERDUG'$&
™ 0mQJ}YjR
7\WKHRGҥQJPmQJ}YjR QKӏSKkQE%&' WtQKLӋXQJ}UDVӁÿѭӧF[iF
ÿӏQK
™ 7KӡLJLDQ[iFOұS
/j WKӡL JLDQ ÿӇ QJ} UD әQ ÿӏQK WKӡL JLDQ Qj\ EDR JӗP WKD\ ÿәL Eӝ FKX\ӇQ
PҥFKWӯRQVDQJRIIKD\QJѭӧFOҥLWKD\ÿәLGzQJÿLӋQWURQJWUDQVLVWRUYjWKӡLJLDQ[ӱ
OêWUrQ2S$PS
™ 7ӕFÿӝWKD\ÿәL
/jWӕFÿӝOӟQQKҩWPj'$&FyWKӇWҥRÿѭӧFGҥQJWtQKLӋXӣQJ}UD7ӕFÿӝQj\
WKѭӡQJEӏJLӟLKҥQEӣLWӕFÿӝFӫDEӝNKXӃFKÿҥLWҥLQJ}UD
™ 7ӕFÿӝFұSQKұW
3KөWKXӝFYjRWKӡLJLDQ[iFOұSYjWӕFÿӝWKD\ÿәLGQJÿӇ[iFÿӏQKWҫQVӕOӟQ
QKҩWPj'$&FyWKӇWҥRÿѭӧF



7UDQJ *93K̩P+QJ.LP.KiQK


































7UDQJ
7jLOL͏X'$4

15
14
5
6
7
8
9
10
11
12

A1
A2
A3
A4
A5
A6
A7
A8
U4

VR-
VR+

DAC0808
COMP
IOUT
IOUT


2
4

16
 0ӝWVӕYLPҥFK'$&

R13
OUT +
R16
DAC0808 2.7K 4
4

12 4 2 - R14 5.35K
8 PB0 A8 IOUT -
PB1 11 1 6
7 10 A7 3 + 7
6 PB2 A6 + OUT -
PB3 9 2 5.35K 5
5 8 A5 IOUT
4 PB4 A4
8

PB5 7 R12
3 A3
8

PB6 6 2.7K R15


2 5 A2 16 2.7K
1 PB7 A1 COMP
PORT B 14
VR+
+12V 15
VR- C3
R9 R10 0.01uF

+uQK±9LPҥFK'$&YjӭQJGөQJ
2.7K R11
2.7K -12V
820
P1
+ C4 D1
100uF C2
Z5V1 0.01uF
C5
0.01uF
&K˱˯QJ

*93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

 *LDRWLӃSTXDFәQJPi\LQ
 *LӟLWKLӋX
&әQJVRQJVRQJJӗPFyÿѭӡQJÿLӅXNKLӇQÿѭӡQJWUҥQJWKiLYjÿѭӡQJGӳ
OLӋXEDRJӗPFKӃÿӝKRҥWÿӝQJ
 &KӃÿӝWѭѫQJWKtFK FRPSDWLELOLW\ 
 &KӃÿӝQLEEOH
 &KӃÿӝE\WH
 &KӃÿӝ(33 (QKDQFHG3DUDOOHO3RUW 
 &KӃÿӝ(&3 ([WHQGHG&DSDELOLWLHV3RUW 
FKӃÿӝÿҫXWLrQVӱGөQJSRUWVRQJVRQJFKXҭQ 633±6WDQGDUG3DUDOOHO3RUW 
WURQJNKLÿyFKӃÿӝFҫQWKrPSKҫQFӭQJÿӇFKRSKpSKRҥWÿӝQJӣWӕFÿӝFDRKѫQ
6ѫÿӗFKkQFӫDPi\LQQKѭVDX






7KDQKJKL
 GӳOLӋX




7KDQKJKL

WUҥQJWKiL


 7KDQKJKL
CONNECTOR DB25

 ÿLӅXNKLӇQ



P1

1
13
25
12
24
11
23
10
22

21

20

19

18

17

16

15

14



+uQK±+uQKGҥQJYjVѫÿӗFәQJPi\LQ



7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ


&KkQ 7tQKLӋX 0{Wҧ
 675  2XW  0ӭFWtQKLӋXWKҩSWUX\ӅQGӳOLӋXWӟLPi\LQ
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 ' %LWGӳOLӋX
 $&.  ,Q  0ӭFWKҩSPi\LQÿmQKұQNêWӵYjFyNKҧQăQJ
QKұQQӳD
 %86< ,Q  0ӭFFDRNêWӵÿmÿѭӧFQKұQEӝÿӋPPi\LQÿҫ\
NKӣLÿӝQJPi\LQPi\LQӣWUҥQJWKiLRIIOLQH
 3$3(5(037< ,Q  0ӭFFDRKӃWJLҩ\
 6(/(&7 ,Q  0ӭFFDRPi\LQӣWUҥQJWKiLRQOLQH
 $872)(('  2XW  7ӵ ÿӝQJ [XӕQJ GzQJ PӭF WKҩS Pi\ LQ [XӕQJ
GzQJWӵÿӝQJ
 (5525  ,Q  0ӭFWKҩSKӃWJLҩ\Pi\LQӣRIIOLQHOӛLPi\LQ
 ,1,7  2XW  0ӭFWKҩSNKӣLÿӝQJPi\LQ
 6(/(&7,1  2XW  0ӭFWKҩSFKӑQPi\LQ
 *5281' 9


 &iFWKDQKJKL
&әQJ VRQJ VRQJ Fy ED WKDQK JKL Fy WKӇ WUX\ӅQ Gӳ  OLӋX Yj ÿLӅX NKLӇQ Pi\ LQ
ĈӏDFKӍFѫVӣFӫDFiFWKDQKJKLFKRWҩWFҧFәQJ/37 OLQHSULQWHU Wӯ/37ÿӃQ/37
ÿѭӧF OѭX WUӳ WURQJ YQJ Gӳ OLӋX FӫD %,26 7KDQK JKL Gӳ OLӋX ÿѭӧF ÿӏQK Yӏ ӣ RIIVHW
KWKDQKJKLWUDQJWKiLӣKYjWKDQKJKLÿLӅXNKLӇQӣK7K{QJWKѭӡQJÿӏDFKӍ
FѫVӣFӫD/37OjK/37OjKGRÿyÿӏDFKӍFӫDWKDQKJKLWUҥQJWKiLOjK
KRһFKYjÿӏDFKӍWKDQKJKLÿLӅXNKLӇQOj$KKRһF$K7X\QKLrQWURQJPӝWVӕ
WUѭӡQJKӧSÿӏDFKӍFӫDFәQJVRQJVRQJFyWKӇNKiFGRTXiWUuQKNKӣLÿӝQJFӫD%,26
%,26VӁOѭXWUӳFiFÿӏDFKӍQj\QKѭVDX

ĈӏDFKӍ &KӭFQăQJ
KK ĈӏDFKӍFѫVӣFӫD/37
K$K ĈӏDFKӍFѫVӣFӫD/37
K&K ĈӏDFKӍFѫVӣFӫD/37

ĈӏQKGҥQJFiFWKDQKJKLQKѭVDX
7KDQKJKLGӳOLӋX KDLFKLӅX 
        
7tQKLӋXPi\LQ ' ' ' ' ' ' ' '

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

&KkQVӕ        

7KDQKJKLWUҥQJWKiLPi\LQ FKӍÿӑF 
        
7tQKLӋXPi\ %86< $&.  3$3(5 6(/(&7 (5525  ,54  [ [
LQ (037<
6ӕFKkQFҳP        

7KDQKJKLÿLӅXNKLӇQPi\LQ
        
7tQ [ [ ',5 ,54 6(/(&7,1  ,1,7  $872)(('  6752%( 
KLӋX (QDEOH
Pi\
LQ
6ӕ        
FKkQ
FҳP
[NK{QJVӱGөQJ
,54(QDEOH\rXFҫXQJҳWFӭQJ FKRSKpS NK{QJFKRSKpS

&K~ ê UҵQJ FKkQ %86< ÿѭӧF QӕL YӟL FәQJ ÿҧR WUѭӟF NKL ÿѭD YjR WKDQK JKL
WUҥQJ WKiL FiF ELW 6(/(&7,1  $872)(('  Yj 6752%(  ÿѭӧF ÿѭD TXD FәQJ ÿҧR
WUѭӟFNKLÿѭDUDFiFFKkQFӫDFәQJPi\LQ
7K{QJWKѭӡQJWӕFÿӝ[ӱOêGӳOLӋXFӫDFiFWKLӃWEӏQJRҥLYLQKѭPi\LQFKұPKѫQ3&QKLӅX
QrQFiFÿѭӡQJ $&. %86<Yj 675 ÿѭӧFVӱGөQJFKRNӻWKXұWEҳWWD\.KӣLÿҫX3&ÿһW
Gӳ OLӋX OrQ EXVVDXÿyNtFKKRҥWÿѭӡQJ 675 [XӕQJ PӭFWKҩSÿӇWK{QJWLQFKR Pi\ LQ ELӃW
UҵQJGӳOLӋXÿmәQÿӏQKWUrQEXV.KLPi\LQ[ӱOê[RQJGӳOLӋXQyVӁWUҧOҥLWtQKLӋX ACK 
[XӕQJPӭFWKҩSÿӇJKLQKұQ3&ÿӧLFKRÿӃQNKLÿѭӡQJ%86<WӯPi\LQ[XӕQJWKҩS Pi\LQ
NK{QJEұQ WKuVӁÿѭDWLӃSGӳOLӋXOrQEXV 

 ӬQJGөQJ
4XiWUuQKJLDRWLӃSYӟLFiFWKLӃWEӏQJRҥLYLFyWKӇWKӵFKLӋQWK{QJTXDFKӃÿӝ
FKXҭQ ĈӇ ÿӑF Gӳ OLӋX Fy WKӇ GQJ PӝW ,& JKpS NrQK Æ /6 Yj GQJ  ELW
WUҥQJWKiLFӫDFәQJVRQJVRQJFzQ[XҩWGӳOLӋXWKuVӱGөQJÿѭӡQJGӳOLӋX'±'




7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ
74LS06

9 8

1 STROBE
10K1
14
2 3 2 9
15 4 D0 Q0 5 8
3 7 D1 Q1 6 7
16 8 D2 Q2 9 6
4 13 D3 Q3 12 5 VCC
17 14 D4 Q4 15 4
5 17 D5 Q5 16 3
18 18 D6 Q6 19 2 1
6 D7 Q7
19 11
7 CLK
20 1
8 OE
21
9 74LS374
22
10 ACK
23
11 PAPER EMPTY 74LS257 SW0-7
10K
24
12 SELECT 4 2 2 3 9
25 74LS06 7 1Y 1A 5 5 Q0 D0 4 8
13 9 2Y 2A 11 6 Q1 D1 7 7
BUSY 2 1 12 3Y 3A 14 9 Q2 D2 8 6
4Y 4A 12 Q3 D3 13 5 VCC
3 15 Q4 D4 14 4
74LS06 1B 6 16 Q5 D5 17 3
2B 10 19 Q6 D6 18 2 1
AUTO FEED 3 4 3B 13 Q7 D7
4B 11
1 CLK
74LS06 A/B 15 1
G OE
SELECT IN 5 6
74LS374


+uQK±0ҥFKJLDRWLӃSÿѫQJLҧQWK{QJTXDFәQJPi\LQ

*LDRGLӋQ


+uQK±*LDRGLӋQFӫDFKѭѫQJWUuQKJLDRWLӃSYӟLFәQJPi\LQ
&KѭѫQJWUuQK JLDRWLӃSWUrQ9%VӱGөQJWKѭ YLӋQOLrQ NӃWÿӝQJÿӇWUDRÿәL Gӳ
OLӋXYӟLFәQJPi\LQ7KѭYLӋQ,2'//EDRJӗPFiFKjPVDX
 +jP3RUW2XW[XҩWE\WHUDFәQJ
Private Declare Sub PortOut Lib "IO.DLL" (ByVal
Port As Integer, ByVal Data As Byte)

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

3RUWÿӏDFKӍFәQJ'DWDGӳOLӋX[XҩW
 +jP3RUW:RUG2XW[XҩWZRUGUDFәQJ
Private Declare Sub PortWordOut Lib "IO.DLL"
(ByVal Port As Integer, ByVal Data As Integer)
 +jP3RUW':RUG2XW[XҩWGRXEOHZRUGUDFәQJ
Private Declare Sub PortDWordOut Lib "IO.DLL"
(ByVal Port As Integer, ByVal Data As Long)
 +jP3RUW,QQKұSE\WHWӯFәQJWUҧYӅJLiWUӏQKұS
Private Declare Function PortIn Lib "IO.DLL"
(ByVal Port As Integer) As Byte
 +jP3RUW:RUG,QQKұSZRUGWӯFәQJ
Private Declare Function PortWordIn Lib "IO.DLL"
(ByVal Port As Integer) As Integer
 +jP3RUW':RUG,QQKұSGRXEOHZRUGWӯFәQJ
Private Declare Function PortDWordIn Lib
"IO.DLL" (ByVal Port As Integer) As Long

&KѭѫQJWUuQKQJXӗQ
VERSION 5.00
Begin VB.Form Form1
Caption = "Printer Interface
Example"
ClientHeight = 4665
ClientLeft = 60
ClientTop = 345
ClientWidth = 3585
LinkTopic = "Form1"
ScaleHeight = 4665
ScaleWidth = 3585
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton cmdReceive
Caption = "Receive"
Height = 495
Left = 1200
TabIndex = 18
Top = 3960
Width = 1095
7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

End
Begin VB.CheckBox chkSW
Height = 375
Index = 7
Left = 1800
TabIndex = 17
Top = 3480
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 6
Left = 1800
TabIndex = 16
Top = 3000
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 5
Left = 1800
TabIndex = 15
Top = 2520
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 4
Left = 1800
TabIndex = 14
Top = 2040
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Index = 3
Left = 1800
TabIndex = 13
Top = 1560
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 2
Left = 1800
TabIndex = 12
Top = 1080
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 1
Left = 1800
TabIndex = 11
Top = 600
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 0
Left = 1800
TabIndex = 10
Top = 120
Width = 1575
End
Begin VB.CommandButton cmdExit
Caption = "Exit"
Height = 495
Left = 2400
TabIndex = 9

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Top = 3960
Width = 975
End
Begin VB.CommandButton cmdSend
Caption = "Send"
Height = 495
Left = 0
TabIndex = 8
Top = 3960
Width = 1095
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED7"
Height = 375
Index = 7
Left = 240
TabIndex = 7
Top = 3480
Width = 1095
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED6"
Height = 375
Index = 6
Left = 240
TabIndex = 6
Top = 3000
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED5"
Height = 375

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Index = 5
Left = 240
TabIndex = 5
Top = 2520
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED4"
Height = 375
Index = 4
Left = 240
TabIndex = 4
Top = 2040
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED3"
Height = 375
Index = 3
Left = 240
TabIndex = 3
Top = 1560
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED2"
Height = 375
Index = 2
Left = 240
TabIndex = 2
Top = 1080
Width = 975

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED1"
Height = 375
Index = 1
Left = 240
TabIndex = 1
Top = 600
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED0"
Height = 375
Index = 0
Left = 240
TabIndex = 0
Top = 120
Width = 975
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 7
Left = 840
Shape = 3 'Circle
Top = 3480
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

FillStyle = 0 'Solid
Height = 375
Index = 6
Left = 840
Shape = 3 'Circle
Top = 3000
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 5
Left = 840
Shape = 3 'Circle
Top = 2520
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 4
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Index = 3
Left = 840
Shape = 3 'Circle
Top = 1560
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 2
Left = 840
Shape = 3 'Circle
Top = 1080
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 1
Left = 840
Shape = 3 'Circle
Top = 600
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 0
Left = 840

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Shape = 3 'Circle
Top = 120
Width = 375
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'IO.DLL
Private Declare Sub PortOut Lib "IO.DLL" (ByVal
Port As Integer, ByVal Data As Byte)
Private Declare Function PortIn Lib "IO.DLL"
(ByVal Port As Integer) As Byte
'Variable
Private BA_LPT As Integer

Private Sub cmdExit_Click()


End
End Sub

Private Sub cmdReceive_Click()


Dim n As Integer
Dim n1 As Integer
Dim i As Integer

PortOut BA_LPT + 2, &H8 'SELECTIN = 1


PortOut BA_LPT + 2, 0 'SELECTIN = 0
n1 = PortIn(BA_LPT + 1) 'Doc 4 bit thap
n1 = n1 / &H10 'Dich phai 4 bit
PortOut BA_LPT + 2, 2 'AUTOFEED=1
n = PortIn(BA_LPT + 1) 'Doc 4 bit cao
n = n And &HF0
n = n + n1
For i = 0 To 7
7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

chkSW(i).Value = n Mod 2
If chkSW(i).Value = 0 Then
chkSW(i).Caption = "Switch " &
Str(i) & " off"
Else
chkSW(i).Caption = "Switch " &
Str(i) & " on"
End If
n = Fix(n / 2)
Next i
End Sub

Private Sub cmdSend_Click()


Dim t As Integer
Dim i As Integer
Dim s As String
t = 0
For i = 0 To 7
t = t + (2 ^ i) * (1 - shpLED(i).FillStyle)
Next i
PortOut BA_LPT, t
PortOut BA_LPT + 2, 1 'STROBE = 1
PortOut BA_LPT + 2, 0 'STROBE = 0
End Sub

Private Sub Form_Load()


BA_LPT = &H378
PortOut BA_LPT + 2, 0
End Sub

Private Sub lblLED_Click(Index As Integer)


shpLED(Index).FillStyle = 1 -
shpLED(Index).FillStyle
End Sub


7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

 *LDRWLӃSTXDNKHFҳPPӣUӝQJ
P1
PC INTERFACE

1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13
RESET-DRV
AEN
IOW
IOR
D0
D1
D2
D3
D4
D5
D6
D7

A4
A3
A2
A1
A0
CS
+5 V+1 2V-12V
-5V

RESET-DRV
IOR

IOW

AEN
D0
D1
D2
D3
D4
D5
D6
D7

CS

A0

A1

A2

A3

A4
18
17
16
15
14
13
12
11

U1
B1
B2
B3
B4
B5
B6
B7
B8

74 LS 245

10

12
2

8
DIR

U3A U3B U3C U3D U3E U3F U4A U4B U4C U4D
A1
A2
A3
A4
A5
A6
A7
A8

74 07 74 07 74 07 74 07 74 07 74 07 74 07 74 07 74 07 74 07
CAÙC CHAÂN TREÂN SLOT
2
3
4
5
6
7
8
9

19
1

11

13

9
A27
A31

A30

A29

A28

B14

B13

A11
CAÙC CHAÂN TREÂN SLOT

B2
B14
A9
A8
A7
A6
A5
A4
A3
A2

A 11
A0 A1 A2 A3 A4 IOR IOW A EN RES E T-DRV

D0D1D2D3D4D5D6D7 IOR
CS19

U2
P =Q

16
15
14
13
12
11
10

74 LS 688
9

S1
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
P0
P1
P2
P3
P4
P5
P6
P7

S W DIP -8
G
2
4
6
8
11
13
15
17

3
5
7
9
12
14
16
18

1
2
3
4
5
6
7
8
SL0
SL1
SL2
SL3
SL4
SL5
SL6
SL7

SL0
SL1
SL2
SL3
SL4
SL5
SL6
SL7
CAÙC CHAÂN TREÂN SLOT
A26
A25
A24

A22
A21
A20
A19
A23

SL0
SL1
SL2
SL3
SL4
SL5
SL6
SL7

R1
10 K x 8

A 5A 6A 7A 8A 9A 10
A 11
A 12 A EN

+5 V


+uQK±*LDRWLӃSYӟLNKHFҳPPӣUӝQJ

7UDQJ *93K̩P+QJ.LP.KiQK


U3
D0 2 18 D0
3 A1 B1 17 D0
D1 D1 D1
4 A2 B2 16
D2 D2
5 A3 B3 15 D2
D3 D3 D3
6 A4 B4 14
D4 D4

7UDQJ
7 A5 B5 13 D4
D5 D5 D5
8 A6 B6 12
D6 D6 D6
9 A7 B7 11
D7 D7 D7
A8 B8
7jLOL͏X'$4

19
CS 1 G
IOR DIR
74 LS 245

U3C U3B

IOW 5 6 3 4
74 04 74 04 IOW

U3D U3E

IOR 9 8 11 10
74 04 74 04 IOR
P1
1 D0
14 D1
2 A0
D2 A1
15 D3
3 U4 A2
D4
16 CLOCK 18 2 CLK A3
D5
4 AEN 17 B1 A1 3 AEN CLK
D6 RS
17 A3 16 B2 A2 4 A3
D7 A EN
5 CS 15 B3 A3 5 CS
18 +5 V A2 14 B4 A4 6 A2
6 +5 V A1 13 B5 A5 7 A1
19 +1 2V A0 12 B6 A6 8 A0
7 RS 11 B7 A7 9 RS
20 -12V B8 A8
8 RS -5V RS A4 19
R1 56 0 G A3
21 AEN AEN 1
9 IOW IOW R2 56 0 DIR
22 IOR IOR R3 22 0
10 R4 22 0 74 LS 245 CS
CLOCK CLOCK U2C
23 R5 22 0 9
A4 A4 A3
11 A3 R6 56 0 8 30 0H ->3 07H
A3
24 A2 R7 56 0 10 CS1
A2 U3A
12 A1 A1 R8 56 0
25 A0 A0 R9 56 0 1 2
R10 56 0 74 LS 32
13 CS CS
R11 56 0

COMP UT E R INT E RFACE 74 04 U2D


U2A /A3 12
CS 1 11 30 8H ->3 0FH
3 13 CS2
A4 2
74 LS 32
74 LS 32
U2B
U3F CS 4
6 31 0H ->3 1FH
13 12 /A4 5 CS3

74 LS 32
74 04

+uQK±*LDRWLӃSTXDNKHFҳPPӣUӝQJ

*93K̩P+QJ.LP.KiQK
&K˱˯QJ


7jLOL͏X'$4 &K˱˯QJ

 *LDRWLӃSTXD56Yj56
&әQJQӕLWLӃSÿѭӧFVӱGөQJÿӇWUX\ӅQGӳOLӋXKDLFKLӅXJLӳDPi\WtQKYjQJRҥLYLFy
FiFѭXÿLӇPVDX
 .KRҧQJFiFKWUX\ӅQ[DKѫQWUX\ӅQVRQJVRQJ
 6ӕGk\NӃWQӕLtW
 &yWKӇWUX\ӅQNK{QJGk\GQJKӗQJQJRҥL
 &yWKӇJKpSQӕLYӟLYLÿLӅXNKLӇQKD\3/& 3URJUDPPDEOH/RJLF'HYLFH 
 &KRSKpSQӕLPҥQJ
 &yWKӇWKiROҳSWKLӃWEӏWURQJO~FPi\WtQKÿDQJOjPYLӋF
 &yWKӇFXQJFҩSQJXӗQFKRFiFPҥFKÿLӋQÿѫQJLҧQ
&iF WKLӃW Eӏ JKpS QӕL FKLD WKjQK  ORҥL '7( 'DWD 7HUPLQDO (TXLSPHQW  Yj '&(
'DWD&RPPXQLFDWLRQ(TXLSPHQW '&(OjFiFWKLӃWEӏWUXQJJLDQQKѭ02'(0FzQ'7(Oj
FiFWKLӃWEӏWLӃSQKұQKD\WUX\ӅQGӳOLӋXQKѭPi\WtQK3/&YLÿLӅXNKLӇQ«9LӋFWUDRÿәL
WtQKLӋXWK{QJWKѭӡQJTXDFKkQ5[' QKұQ Yj7[' WUX\ӅQ &iFWtQKLӋXFzQOҥLFyFKӭF
QăQJ Kӛ WUӧ ÿӇ WKLӃW OұS Yj ÿLӅX NKLӇQ TXi WUuQK WUX\ӅQ ÿѭӧF JӑL Oj FiF WtQ KLӋX EҳW WD\
KDQGVKDNH ѬXÿLӇPFӫDTXiWUuQKWUX\ӅQGQJWtQKLӋXEҳWWD\OjFyWKӇNLӇPVRiWÿѭӡQJ
WUX\ӅQ
7tQ KLӋX WUX\ӅQ WKHR FKXҭQ 56 FӫD (,$ (OHFWURQLFV ,QGXVWU\ $VVRFLDWLRQV 
&KXҭQ56TX\ÿӏQKPӭFORJLFӭQJYӟLÿLӋQiSWӯ9ÿӃQ9 PDUN PӭFORJLF
ӭQJYӟLÿLӋQiSWӯ9ÿӃQ9 VSDFH YjFyNKҧQăQJFXQJFҩSGzQJWӯP$ÿӃQP$
1JRjLUDWҩWFҧFiFQJ}UDÿӅXFyÿһFWtQKFKӕQJFKұSPҥFK
&KXҭQ 56 FKR SKpS WUX\ӅQ WtQ KLӋX YӟL WӕF ÿӝ ÿӃQ  ESV QKѭQJ QӃX FiS
WUX\ӅQÿӫQJҳQFyWKӇOrQÿӃQESV
&iFSKѭѫQJWKӭFQӕLJLӳD'7(Yj'&(
ĈѫQF{QJ VLPSOH[FRQQHFWLRQ GӳOLӋXFKӍÿѭӧFWUX\ӅQWKHRKѭӟQJ
 %iQ VRQJ F{QJ  KDOIGXSOH[  Gӳ OLӋX WUX\ӅQ WKHR  KѭӟQJ QKѭQJ PӛL WKӡL ÿLӇP
FKӍÿѭӧFWUX\ӅQWKHRKѭӟQJ
6RQJF{QJ IXOOGXSOH[ VӕOLӋXÿѭӧFWUX\ӅQÿӗQJWKӡLWKHRKѭӟQJ
ĈӏQKGҥQJFӫDNKXQJWUX\ӅQGӳOLӋXWKHRFKXҭQ56QKѭVDX

 6WDUW ' ' ' ' ' ' ' ' 3 6WRS
           

.KLNK{QJWUX\ӅQGӳOLӋXÿѭӡQJWUX\ӅQVӁӣWUҥQJWKiLPDUN ÿLӋQiS9 .KLEҳW
ÿҫXWUX\ӅQ'7(VӁÿѭDUD[XQJ6WDUW VSDFH9 YjVDXÿyOҫQOѭӧWWUX\ӅQWӯ'ÿӃQ'
Yj3DULW\FXӕLFQJOj[XQJ6WRS PDUN9 ÿӇNK{LSKөFWUҥQJWKiLÿѭӡQJWUX\ӅQ'ҥQJ
WtQKLӋXWUX\ӅQP{WҧQKѭVDX WUX\ӅQNêWӵ$ 


3K̩P+QJ.LP.KiQK 7UDQJ

Tài OL͏XDAQ &K˱˯QJ

Hình 3.18 ± 7tQKLӋXWUX\ӅQFӫDNêWӵµ$¶

&iFÿһFWtQKNӻWKXұWFӫDFKXҭQ56-QKѭVDX

&KLӅXGjLFDEOHFӵFÿҥL 15m
7ӕFÿӝGӳOLӋXFӵFÿҥL 20 Kbps
ĈLӋQiSQJ}UDFӵFÿҥL r 25V
ĈLӋQiSQJ}UDFyWҧL r 9ÿӃQr 15V
7UӣNKiQJWҧL .ÿӃQ.
ĈLӋQiSQJ}YjR r 15V
ĈӝQKҥ\QJ}YjR r 3V
7UӣNKiQJQJ}YjR .ÿӃQ.

&iF WӕF ÿӝ WUX\ӅQ Gӳ OLӋX WK{QJ GөQJ WURQJ FәQJ QӕL WLӃS Oj  ESV  ESV
9600 bps và 19200 bps.
™ 6ѫÿӗFKkQ

3K̩P+QJ.LP.KiQK Trang 47
7jLOL͏X'$4 &K˱˯QJ









+uQK±6ѫÿӗFKkQFәQJQӕLWLӃS

&әQJ&20FyKDLGҥQJÿҫXQӕL'% FKkQ YjÿҫXQӕL'% FKkQ P{WҧQKѭ
KuQKéQJKƭDFӫDFiFFKkQP{WҧQKѭVDX

' ' 7tQ +ѭӟQJ 0{Wҧ
KLӋX WUX\ӅQ
    3URWHFWHGJURXQGQӕLÿҩWEҧRYӋ
  7[' '7(Æ'&( 7UDQVPLWWHGGDWDGӳOLӋXWUX\ӅQ
  5[' '&(Æ'7( 5HFHLYHGGDWDGӳOLӋXQKұQ
  576 '7(Æ'&( 5HTXHVWWRVHQG'7(\rXFҫXWUX\ӅQGӳOLӋX
  &76 '&(Æ'7( &OHDUWRVHQG'&(VҹQVjQJQKұQGӳOLӋX
  '65 '&(Æ'7( 'DWDVHWUHDG\'&(VҹQVjQJOjPYLӋF
  *1'  *URXQGQӕLÿҩW 9 
  '&' '&(Æ'7( 'DWDFDULHUGHWHFW'&(SKiWKLӋQVyQJPDQJ
  '75 '7(Æ'&( 'DWDWHUPLQDOUHDG\'7(VҹQVjQJOjPYLӋF
  5, '&(Æ'7( 5LQJLQGLFDWRUEiRFKX{QJ
  '65' '&(Æ'7( 'DWDVLJQDOUDWHGHWHFWRUGzWӕFÿӝWUX\ӅQ
  76(7 '7(Æ'&( 7UDQVPLW6LJQDO(OHPHQW7LPLQJWtQKLӋXÿӏQKWKӡL
WUX\ӅQÿLWӯ'7(
  76(7 '&(Æ'7( 7UDQVPLWWHU6LJQDO(OHPHQW7LPLQJWtQKLӋXÿӏQKWKӡL
WUX\ӅQWӯ'&(ÿӇWUX\ӅQGӳOLӋX
  56(7 '&(Æ'7( 5HFHLYHU6LJQDO(OHPHQW7LPLQJWtQKLӋXÿӏQKWKӡL
WUX\ӅQWӯ'&(ÿӇWUX\ӅQGӳOLӋX
  //  /RFDO/RRSEDFNNLӇPWUDFәQJ
  5/ '&(Æ'7( 5HPRWH/RRSEDFN7ҥRUDEӣL'&(NKLWtQKLӋXQKұQ
Wӯ'&(OӛL
  67[' '7(Æ'&( 6HFRQGDU\7UDQVPLWWHG'DWD
  65[' '&(Æ'7( 6HFRQGDU\5HFHLYHG'DWD
  6576 '7(Æ'&( 6HFRQGDU\5HTXHVW7R6HQG
  6&76 '&(Æ'7( 6HFRQGDU\&OHDU7R6HQG
  6'65' '&(Æ'7( 6HFRQGDU\5HFHLYHG/LQH6LJQDO'HWHFWRU
  70  7HVW0RGH
    'jQKULrQJFKRFKӃÿӝWHVW
    'jQKULrQJFKRFKӃÿӝWHVW
    .K{QJGQJ

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

 7UX\ӅQWK{QJJLӳDKDLQ~W
&iFVѫÿӗNKLNӃWQӕLGQJFәQJQӕLWLӃS


 7[' 7[' 7[' 7['
   

5[' 5[' 5[' 5['
    
 *1' *1' *1' *1'
  

 '7( '7( '7( '&(

+uQK±.ӃWQӕLÿѫQJLҧQWURQJWUX\ӅQWK{QJQӕLWLӃS

.KLWKӵFKLӋQNӃWQӕLQKѭWUrQTXiWUuQKWUX\ӅQSKҧLEҧRÿҧPWӕFÿӝӣÿҫXSKiWYj
WKXJLӕQJQKDX.KLFyGӳOLӋXÿӃQ'7(GӳOLӋXQj\VӁÿѭӧFÿѭDYjREӝÿӋPYjWҥRQJҳW
1JRjLUDNKLWKӵFKLӋQNӃWQӕLJLӳDKDL'7(WDFzQGQJVѫÿӗVDX

 7[' 7['
 5[' 5['
 *1' *1'
 576 576
 &76 &76
 '65 '65
 '&' '&'
 '75 '75

'7( '7(

+uQK±.ӃWQӕLWURQJWUX\ӅQWK{QJQӕLWLӃSGQJWtQKLӋXEҳWWD\

.KL'7(FҫQWUX\ӅQGӳOLӋXWKuFKR'75WtFKFӵFÆWiFÿӝQJOrQ'65FӫD'7(
FKRELӃWVҹQVjQJQKұQGӳOLӋXYjFKRELӃWÿmQKұQÿѭӧFVyQJPDQJFӫD02'(0 ҧR 6DX
ÿy'7(WtFKFӵFFKkQ576ÿӇWiFÿӝQJÿӃQFKkQ&76FӫD'7(FKRELӃW'7(FyWKӇ
QKұQGӳOLӋX.KLWKӵFKLӋQNӃWQӕLJLӳD'7(Yj'&(GRWӕFÿӝWUX\ӅQNKiFQKDXQrQSKҧL
WKӵFKLӋQÿLӅXNKLӇQOѭXOѭӧQJ4XiWULQKÿLӅXNKLӇQQj\FyWKӇWKӵFKLӋQEҵQJSKҫQPӅP
KD\SKҫQFӭQJ4XiWUuQKÿLӅXNKLӇQEҵQJSKҫQPӅPWKӵFKLӋQEҵQJKDLNêWӵ;RQYj;RII
.êWӵ;RQÿѭӧF'&(JӣLÿLNKLUҧQK FyWKӇQKұQGӳOLӋX 1ӃX'&(EұQWKuVӁJӣLNêWӵ
;RII 4Xi WUuQK ÿLӅX NKLӇQ EҵQJ SKҫQ FӭQJ GQJ KDL FKkQ 576 Yj &76 1ӃX '7( PXӕQ
WUX\ӅQGӳOLӋXWKuVӁJӣL576ÿӇ\rXFҫXWUX\ӅQ'&(QӃXFyNKҧQăQJQKұQGӳOLӋX ÿDQJ
UҧQK WKuJӣLOҥL&76

 7UX\[XҩWWUӵFWLӃSWK{QJTXDFәQJ
&iFFәQJQӕLWLӃSWURQJPi\WtQKÿѭӧFÿiQKVӕOj&20&20&20&20YӟL
FiFÿӏDFKӍQKѭVDX

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

7rQ ĈӏDFKӍ 1JҳW 9ӏWUtFKӭDÿӏDFKӍ


&20 )K  KK
&20 )K  KK
&20 (K  KK
&20 (K  KK

*LDRWLӃSQӕLWLӃSWURQJPi\WtQKVӱGөQJYLPҥFK8$57YӟLFiFWKDQKJKLFKRWURQJ
EҧQJVDX
2IIVHW '/$% 5: 7rQ &KӭFQăQJ
 : 7+5 7UDQVPLWWHU+ROGLQJ5HJLVWHU ÿӋPWUX\ӅQ 
  5 5%5 5HFHLYHU%XIIHU5HJLVWHU ÿӋPWKX 
 5: %5'/ %DXG5DWH'LYLVRU/DWFK VӕFKLDE\WHWKҩS 
 5: ,(5 ,QWHUUXSW(QDEOH5HJLVWHU FKRSKpSQJҳW 

 5: %5'+ 6ӕFKLDE\WHFDR
 5 ,,5 ,QWHUUXSW,GHQWLILFDWLRQ5HJLVWHU QKұQGҥQJQJҳW 

 : )&5 ),)2&RQWURO5HJLVWHU
  5: /&5 /LQH&RQWURO5HJLVWHU ÿLӅXNKLӇQÿѭӡQJGk\ 
  5: 0&5 0RGHP&RQWURO5HJLVWHU ÿLӅXNKLӇQ02'(0 
  5 /65 /LQH6WDWXV5HJLVWHU WUҥQJWKiLÿѭӡQJGk\ 
  5 065 0RGHP6WDWXV5HJLVWHU WUҥQJWKiL02'(0 
  5:  6FUDWFK5HJLVWHU WKDQKJKLWҥP 

&iFWKDQKJKLQj\FyWKӇWUX\[XҩWWUӵFWLӃSNӃWKӧSYӟLÿӏDFKӍFәQJ YtGөQKѭWKDQK
JKLFKRSKpSQJҳWFӫD&20FyÿӏDFKӍOj%$&20 )K

™ ,,5 ,QWHUUXSW,GHQWLILFDWLRQ 
,,5[iFÿӏQKPӭFѭXWLrQYjQJXӗQJӕFFӫD\rXFҫXQJҳWPj8$57ÿDQJFKӡSKөF
Yө .KL FҫQ [ӱ Oê QJҳW &38 WKӵF KLӋQ ÿӑF FiF ELW WѭѫQJ ӭQJ ÿӇ [iF ÿӏQK QJXӗQ JӕF FӫD
QJҳWĈӏQKGҥQJFӫD,,5QKѭVDX
' ' ' ' ' ' ' '
NK{QJFy &KR SKpS ),)2    QJҳW WLPHRXW ;iFÿӏQKQJXӗQ  Fy
),)2 E\WH WURQJ  WURQJ  JӕFQJҳW QJҳW
FKRSKpS  NK{QJ
),)2 QJҳW



' ' ѬX 7rQ 1JXӗQ '±'Eӏ[Ri
 WLrQ NKL
   ĈѭӡQJ /ӛLNKXQJWKXÿqOӛLSDULW\JLiQÿRҥQ ĈӑF/65
 WUX\ӅQ NKLWKX
   ĈӋPWKX ĈӋPWKXÿҫ\ ĈӑF5%5
   ĈӋPSKiW ĈӋPSKiWUӛQJ ĈӑF,,5JKL
 7+5
   0RGHP &76'655,5/6' ĈӑF065
PӭFѭXWLrQFDRQKҩW 

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

™ ,(5 ,QWHUUXSW(QDEOH5HJLVWHU 
,(5FKRSKpSKD\FҩPFiFQJX\rQQKkQQJҳWNKiFQKDX FKRSKpSFҫPQJҳW 

' ' ' ' ' ' ' '
  32: +%5 02'(0 /,1( 7[(037< 5[5'<


&KRSKpSNLӇX &KRSKpSNKLOӛL &KRSKpSNKL

F{QJVXҩWWKҩS PRGHP 7+5UӛQJ


&KRSKpSNKL

&KRSKpSNLӇX &KRSKpSNKLOӛL 5%5ÿҫ\

QJKӍ KLEHUQDWH  WKXSKiW

™ 0&5 0RGHP&RQWURO5HJLVWHU 

' ' ' ' ' ' ' '
   /223 287 287 576 '75

 0RGHORRSEDFN
ĈLӅXNKLӇQQJ}UD ĈLӅXNKLӇQWtQKLӋX
 NLӇPWUDKRҥW
287 287  FӫD 576Yj'75
 ÿӑQJFӫD8$57
 8$57

™ 065 0RGHP6WDWXV5HJLVWHU 

' ' ' ' ' ' ' '
5/6' 5, '65 &76 '5/6' '5, ''65 '&76


 7UҥQJWKiLFӫD&'5, QӃXFyWKD\ÿәLFiFWtQKLӋXVRYӟLOҫQÿӑFWUѭӟF
 '65Yj&76 '5, QӃXFy[XQJGѭѫQJWҥL5,


™ /65 /LQH6WDWXV5HJLVWHU 

' ' ' ' ' ' ' '
),( 765( 7+5( %, )( 3( 2( 5['5

),(),)2(UURU±VDLWURQJ),)2
765(7UDQVPLWWHU6KLIW5HJLVWHU(PSW\±WKDQKJKLGӏFKUӛQJ NKLÿmSKiWNê
WӵYjEӏ[RiNKLFyNêWӵFKX\ӇQÿӃQWӯ7+5
7+5(7UDQVPLWWHU+ROGLQJ5HJLVWHU(PSW\ NKLFyNêWӵÿmFKX\ӇQWӯ7+5±
765YjEӏ[RiNKL&38ÿѭDNêWӵWӟL7+5 

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

%,%UHDN ,QWHUUXSW  NKLFyVӵ JLiQÿRҥQ NKLWUX\ӅQQJKƭDOjWӗQWҥL PӭFORJLF


WURQJNKRҧQJWKӡLJLDQGjLKѫQNKRҧQJWKӡLJLDQWUX\ӅQE\WHYjEӏ[RiNKL&38ÿӑF/65 
)()UDPH(UURU NKLFyOӛLNKXQJWUX\ӅQYjEӏ[RiNKL&38ÿӑF/65 
3(3DULW\(UURU NKLFyOӛLSDULW\YjEӏ[RiNKL&38ÿӑF/65 
2(2YHUUXQ(UURU NKLFyOӛLWKXÿqQJKƭDOj&38NK{QJÿӑFNӏSGӳOLӋXOjPFKR
TXiWUuQKJKLFKӗQJOrQ5%5[ҧ\UDYjEӏ[RiNKL&38ÿӑF/65 
5['55HFHLYHU'DWD5HDG\ NKLÿmQKұQNêWӵYjÿѭDYjR5%5YjEӏ[RiNKL
&38ÿӑF5%5 
™ /&5 /LQH&RQWURO5HJLVWHU 

' ' ' ' ' ' ' '
'/$% 6%&% 36 36 36 67% :/6 :/6

'/$% 'LYLVRU/DWFK$FFHVV%LW  WUX\[XҩW5%57+5,(5 FKRSKpSÿһW
EӝFKLDWҫQWURQJ8$57ÿӇFKRSKpSÿҥWWӕFÿӝWUX\ӅQPRQJPXӕQ
8$57GQJGDRÿӝQJWKҥFKDQKYӟLWҫQVӕ0+]ÿѭDTXDEӝFKLDWKjQKWҫQ
Vӕ+].KLÿyWXǤWKHRJLiWUӏWURQJ%5'/Yj%5'+WDVӁFyWӕFÿӝPRQJPXӕQ
9tGөQKѭÿѭӡQJWUX\ӅQFyWӕFÿӝWUX\ӅQESVFyJLiWUӏFKLD G 
KÆ%5'/ K%5'+ K
0ӝWVӕJLiWUӏWK{QJGөQJ[iFÿӏQKWӕFÿӝWUX\ӅQFKRQKѭVDX

7ӕFÿӝ ESV  %5'+ %5'/
 K K
 K K
 K K
 K &K
 K K
 K K
 K K
 K K

6%&% 6HW%UHDN&RQWURO%LW  FKRSKpSWUX\ӅQWtQKLӋX%UHDN  WURQJNKRҧQJ
WKӡLJLDQOӟQKѫQPӝWNKXQJ
36 3DULW\6HOHFW 
36 36 36 0{Wҧ
; ;  .K{QJNLӇPWUD
   .LӇPWUDOҿ
   .LӇPWUDFKҹQ
   3DULW\OjPDUN
   3DULW\OjVSDFH

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

67% 6WRS%LW  ELWVWRS ELWVWRS NKLGQJELWGӳOLӋX KD\ELWVWRS


NKLGQJELWGӳOLӋX 
:/6 :RUG/HQJWK6HOHFW 

:/6 :/6 ĈӝGjLGӳOLӋX
  ELW
  ELW
  ELW
  ELW

0ӝWYtGөNKLOұSWUuQKWUӵFWLӃSWUrQFәQJQKѭVDX
.MODEL SMALL
.STACK 100h
.DATA
Com1 EQU 3F8h
Com_int EQU 08h
Buffer DB 251 DUP(?)
Bufferin DB 0
Bufferout DB 0
Char DB ?
Seg_com DW ? ; Vector ngắt cũ
Off_com DW ?
Mask_int DB ?
Msg DB 'Press any key to exit$’
.CODE
Main PROC
MOV AX,@DATA
MOV DS,AX

MOV AH,35h
MOV AL,Com_int
INT 21h
MOV Seg_com,ES ; Lưu vector ngắt cũ
MOV Off_com,BX

PUSH DS
MOV BX,CS
MOV DS,BX
LEA DX,Com_ISR
MOV AH,35h ;Gán vector ngắt mới
MOV AL,Com_int
INT 21h
POP DS

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

MOV DX,Com1+3 ; Địa chỉ LCR


MOV AL,80h ; Set DLAB = 1 cho phép định tốc
OUT DX,AL ; độ truyền dữ liệu

MOV DX,Com1 ; Gởi byte thấp


MOV AL,0Ch
OUT DX,AL

MOV DX,Com1+1
MOV AL,00h ; Gởi byte cao Æ 000Ch: xác định
OUT DX,AL ; tốc độ truyền 9600bps

MOV DX,Com1+3 ; LCR = 0000 0011B


MOV AL,03h ; DLAB = 0, SBCB = 0 Æ cấm Break
OUT DX,AL ; PS = 000 Æ no parity
; STB = 0 Æ 1 stop bit
; WLS = 11 Æ 8 bit dữ liệu

MOV DX,Com1+4 ; Tác động đến DTR và RTS


MOV AL,03h ; MCR = 0000 0011b Æ DTR=RTS = 1
OUT DX,AL ; Æ ngõ DTR và RTS của cổng nối
; tiếp = 0
MOV DX,21h ; Kiểm tra trạng thái ngắt
IN AL,DX ; D7 – D0 xác định các IRQi
MOV Mask_int,AL ; =0: cho phép, =1: cấm
AND AL,0EFh ; = 1110 1111b Æ cho phép IRQ4
OUT DX,AL ; Æ cho phép COM1

MOV AL,01h ; IER = 0000 0001b Æ cho phép


MOV DX,Com1+1 ; ngắt khi RBR đầy
OUT DX,AL
MOV AH,09h
LEA Dx,Msg
INT 21h

Lap:
MOV AH,0Bh
INT 21h
CMP AL,0FFh
JE Exit

MOV AL,bufferin
CMP AL,bufferout
JE Lap
MOV AL,buffer[bufferout]

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

MOV char,AL
INC bufferout
MOV AL,bufferout
CMP AL,251
JNE Next
MOV bufferout,0
Next:
MOV DL,char ; Xuất giá trị ra màn hình
MOV AH,02h
INT 21h

MOV AL,char ; Xuất ra cổng nối tiếp


MOV DX,Com1
OUT DX,AL
JMP Lap
Exit:
MOV AL,Mask_int
OUT 21h,AL ; Khôi phục trạng thái ngăt

MOV DX,Off_com
MOV BX,Seg_com
MOV DS,BX
MOV AH,35h ;Khôi phục vector ngắt
MOV AL,Com_int
INT 21h
MOV AH,4Ch
INT 21h
Main ENDP
Com_ISR PROC
MOV DX,Com1+5 ; Đọc nội dung LSR
IN AL,DX
AND AL,1 ; Nếu D0 = 1 thì có dữ liệu
JZ exit_ISR
MOV DX,Com1
IN AL,DX
MOV buffer[bufferin],AL
INC bufferin
MOV AL,bufferin
CMP AL,251
JNE Exit_ISR
MOV bufferin,0
Exit_ISR:
MOV AL,20h ; Báo cho PIC kết thúc ngăt
OUT 20h,AL
IRET
Com_ISR ENDP
END Main

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

 7UX\ӅQWK{QJQӕLWLӃSGQJ$FWLYH;
0{Wҧ
9LӋFWUX\ӅQWK{QJQӕLWLӃSWUrQ:LQGRZVÿѭӧFWKӵFKLӋQWK{QJTXDPӝW$FWLYH;Fy
VҹQOj0LFURVRIW&RPP&RQWURO$FWLYH;Qj\GѭӧFOѭXWUӳWURQJILOH06&2002&;
4XiWUuQKQj\FyKDLNKҧQăQJWKӵFKLӋQÿLӅXNKLӇQWUDRÿәLWK{QJWLQ
 ĈLӅXNKLӇQVӵNLӋQ
7UX\ӅQWK{QJÿLӅXNKLӇQVӵNLӋQOjSKѭѫQJSKiSWӕWQKҩWWURQJTXiWUuQKÿLӅXNKLӇQ
YLӋFWUDRÿәLWK{QJWLQ4XiWUuQKÿLӅXNKLӇQWKӵFKLӋQWK{QJTXDVӵNLӋQ2Q&RPP
 +ӓLYzQJ
4XiWULQKÿLӅX NKLӇQEҵQJSKѭѫQJSKiSKӓL YzQJWKӵFKLӋQWK{QJTXD NLӇPWUDFiF
JLiWUӏFӫDWKXӝFWtQK&RPP(YHQWVDXPӝWFKXNǤQjRÿyÿӇ[iFÿӏQK[HPFyVӵNLӋQQjR
[ҧ\UDKD\NK{QJ7K{QJWKѭӡQJSKѭѫQJSKiSQj\VӱGөQJFKRFiFFKѭѫQJWUuQKQKӓ
$FWLYH; 0V&RPP ÿѭӧF Eә VXQJ YjR PӝW 9LVXDO %DVLF 3URMHFW WK{QJ TXD PHQX
3URMHFW!&RPSRQHQWV
















+uQK±%әVXQJÿӕLWѭӧQJ0V&RPPYjR9%3




3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

%LӇXWѭӧQJFӫD0V&RPP YjFiFWKXӝFWtQKFѫEҧQP{WҧQKѭVDX

7KXӝFWtQK 0{Wҧ
&RPP3RUW 6ӕWKӭWӵFәQJWUX\ӅQWK{QJ
,QSXW 1KұQNêWӵWӯEӝÿӋP
2XWSXW ;XҩWNêWӵUDFәQJQӕLWLӃS
3RUW2SHQ 0ӣÿyQJFәQJ
6HWWLQJV ;iFÿӏQKFiFWKDPVӕWUX\ӅQ

















+uQK±&iFWKXӝFWtQKFӫDÿӕLWѭӧQJ06&RPP

&iFWKXӝFWtQK
™ 6HWWLQJV
;iFÿӏQKFiFWKDPVӕFKRFәQJQӕLWLӃS&~SKiS
MSComm1.Settings = ParamString
06&RPPWrQÿӕLWѭӧQJ
3DUDP6WULQJOjPӝWFKXӛLFyGҥQJQKѭVDX%%%%3'6
%%%%WӕFÿӝWUX\ӅQGӳOLӋX ESV WURQJÿyFiFJLiWUӏKӧSOӋOj


3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

  


  PăFÿӏQK  
  
  
3NLӇPWUDFKҹQOҿYӟLFiFJLiWUӏ
*LiWUӏ 0{Wҧ
2 2GG NLӇPWUDOҿ 
( (YHQ NLӇPWUDFKҹQ 
0 0DUN OX{QEҵQJ 
6 6SDFH OX{QEҵQJ 
1 .K{QJNLӇPWUD
'VӕELWGӳOLӋX KD\ PһFÿӏQKOjELW
6VӕELWVWRS  
9'
MSComm1.Settings = "9600,O,8,1" VӁ [iF ÿӏQK WӕF ÿӝ WUX\ӅQ ESV
NLӇPWUDSDULW\FKҹQYӟLELWVWRSYjELWGӳOLӋX
™ &RPP3RUW
;iFÿӏQKVӕWKӭWӵFӫDFәQJWUX\ӅQWK{QJF~SKiS
MSComm1.CommPort = PortNumber
3RUW1XPEHUOjJLiWUӏQҵPWURQJNKRҧQJWӯÆPһFÿӏQKOj
9'
MSComm1.CommPort = 1 [iFÿӏQKVӱGөQJ&20
™ 3RUW2SHQ
ĈһWWUҥQJWKiLKD\NLӇPWUDWUҥQJWKiLÿyQJPӣFӫDFәQJQӕLWLӃS1ӃXGQJWKXӝF
WtQKQj\ÿӇPӣFәQJQӕLWLӃSWKuSKҧLVӱGөQJWUѭӟFWKXӝFWtQK6HWWLQJVYj&RPP3RUW&~
SKiS
MSComm1.PortOpen = True | False
*LiWUӏ[iFÿӏQKOj7UXHVӁWKӵFKLӋQPӣFәQJYj)DOVHÿӇÿyQJFәQJÿӗQJWKӡL[Ri
QӝLGXQJFӫDFiFEӝÿӋPWUX\ӅQQKұQ
9'0ӣFәQJ&20YӟLWӕFÿӝWUX\ӅQESV
MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
™ &iFWKXӝFWtQKQKұQGӳOLӋX
,QSXWQKұQPӝWFKXӛLNêWӵYj[RiNKӓLEӝÿӋP&~SKiS
InputString = MSComm1.Input

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

7KXӝFWtQKQj\NӃWKӧSYӟL,QSXW/HQÿӇ[iFÿӏQKVӕNêWӵÿӑFYjR1ӃX,QSXW/HQ 
WKuVӁÿӑFWRjQEӝGӳOLӋXFyWURQJEӝÿӋP
,Q%XIIHU&RXQWVӕNêWӵFyWURQJEӝÿӋPQKұQ&~SKiS
Count = MSComm1.InBufferCount
7KXӝFWtQKQj\FQJGѭӧFGQJÿӇ[RiEӝÿӋPQKұQEҳQJFiFKJiQJLiWUӏ
MSComm1.InBufferCount = 0
,Q%XIIHU6L]HÿһWYj[iFÿӏQKNtFKWKѭӟFEӝÿӋPQKұQ WtQKEҵQJE\WH &~SKiS
MSComm1.InBufferCount = NumByte
*LiWUӏPăFÿӏQKOjE\WH.tFKWKѭӟFEӝÿӋPQj\SKҧLÿӫOӟQÿӇWUiQKWuQKWUҥQJ
PҩWGӳOLӋX
9'ĈӑFWRjQEӝQӝLGXQJWURQJEӝÿӋPQKұQQӃXFyGӳOLӋX
MSComm1.InputLen = 0
If MSComm1.InBufferCount <> 0 Then
InputString = MSComm1.Input
End If
™ &iFWKXӝFWtQK[XҩWGӳOLӋX
%DR JӗP FiF WKXӝF WtQK 2XWSXW 2XW%XIIHU&RXQW Yj 2XW%XIIHU6L]H FKӭF QăQJ
FӫDFiFWKXӝFWtQKQj\JLӕQJQKѭFiFWKXӝFWtQKQKұS
™ &'7LPHRXW
ĈһWYj[iFÿӏQKNKRҧQJWKӡLJLDQOӟQQKҩW WtQKEҵQJPV WӯO~FSKiWKLӋQVyQJPDQJ
FKR ÿӃQ O~F Fy Gӳ OLӋX 1ӃX TXi NKRҧQJ WKӡL JLDQ Qj\ Pj YүQ FKѭD Fy Gӳ OLӋX WKu VӁ JiQ
WKXӝFWtQK&RPP(YHQWOj&'72 &DUULHU'HWHFW7LPHRXW(UURU YjWҥRVӵNLӋQ2Q&RPP
&~SKiS
MSComm1.CDTimeout = NumTime
™ '657LPHRXW
;iFÿӏQKWKӡLJLDQFKӡWtQKLӋX'65WUѭӟFNKL[ҧ\UDVӵNLӋQ2Q&RPP
™ &767LPHRXW
ĈһWYj[iFÿӏQKNKRҧQJWKӡLJLDQOӟQQKҩW WtQKEҵQJPV ÿӧLWtQKLӋX&76WUѭӟFNKL
ÿһWWKXӝFWtQK&RPP(YHQWOj&7672YjWҥRVӵNLӋQ2Q&RPP&~SKiS
MSComm1.CTSTimeout = NumTime
™ &76+ROGLQJ
;iFÿӏQKÿmFyWtQKLӋX&76KD\FKѭDWtQKLӋXQj\GQJFKRTXiWUuQKEҳWWD\EҵQJ
SKҫQFӭQJ FKRELӃW'&(VҹQVjQJQKұQGӳOLӋX WUҧYӅJLiWUӏ7UXHKD\)DOVH
™ '65+ROGLQJ
;iFÿӏQKWUҥQJWKiL'65 EiRKLӋXVӵWӗQWҥLFӫD'&( WUҧYӅJLiWUӏ7UXHKD\)DOVH
™ &'+ROGLQJ

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

;iFÿӏQKWUҥQJWKiL&'WUҧYӅJLiWUӏ7UXHKD\)DOVH
™ '75(QDEOH
ĈһWKD\[RiWtQKLӋX'75ÿӇEiRVӵWӗQWҥLFӫD'7(&~SKiS
MSComm1.DTREnable = True | False
™ 576(QDEOH
ĈһWKD\[RiWtQKLӋX576ÿӇ\rXFҫXWUX\ӅQGӳOLӋXÿӃQ'7(&~SKiS
MSComm1.RTSEnable = True | False
™ 1XOO'LVFDUG
&KRSKpSQKұQFiFNêWӵ18// UӛQJ KD\NK{QJ 7UXHFҩP &~SKiS
MSComm1.NullDiscard = True | False
™ 67KUHVKROG
6ӕE\WHWURQJEӝÿӋPWUX\ӅQOjPSKiWVLQKVӵNLӋQ2Q&RPP1ӃXJLiWUӏQj\EҵQJ
WKuVӁNK{QJWҥRVӵNLӋQ2Q&RPP&~SKiS
MSComm1.SThreshold = NumChar
™ +DQG6KDNLQJ
&KӑQJLDRWKӭFEҳWWD\NKLWKӵFKLӋQWUX\ӅQGӳOLӋX&~SKiS
MSComm1.HandShaking = Protocol
&iFJLDRWKӭFWUX\ӅQEDRJӗP
3URWRFRO *LiWUӏ 0{Wҧ
&RP1RQH  .K{QJEăWWD\ PһFÿӏQK 
&RP;RQ;RII  %ҳWWD\SKҫQPӅP ;RQ;RII 
&RP576  %ҳWWD\SKҫQFӭQJ 576&76 
&RP576;RQ;RII  %ҳWWD\SKҫQFӭQJYjSKjQPӅP

™ &RPP(YHQW
7UҧOҥLFiFOӛLWUX\ӅQWK{QJKD\VӵNLӋQ[ҧ\UDWҥLFәQJQӕLWLӃS
&iFVӵNLӋQ
6ӵNLӋQ *LiWUӏ 0{Wҧ
&RP(Y6HQG  ĈmWUX\ӅQNêWӵ
&RP(Y5HFHLYH  .KLFyNêWӵWURQJEӝÿӋPQKұQ
&RP(Y&76  &yWKD\ÿәLWUrQ&76 &OHDU7R6HQG 
&RP(Y'65  &yWKD\ÿәLWUrQ'65 'DWD6HW5HDG\ 
&RP(Y&'  &yWKD\ÿәLWUrQ&' &DUULHU'HWHFW 

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

&RP(Y5LQJ  3KiWKLӋQFKX{QJ
&RP(Y(2)  1KұQNêWӵNӃWWK~FILOH
&iFOӛLWUX\ӅQWK{QJ
/ӛL *LiWUӏ 0{Wҧ
&RP%UHDN  1KұQWtQKLӋX%UHDN
&RP&7672  &DUULHU'HWHFW7LPHRXW
&RP)UDPH  /ӛLNKXQJ
&RP2YHU  3KҫQFӭQJNK{QJÿӑFNêWӵWUѭӟFNKLJӣLNêWӵNӃ
&RP&'72  &DUULHU'HWHFW7LPHRXW
&RP5[2YHU  7UjQEӝÿӋPQKұQ
&RP5[3DULW\  /ӛLSDULW\
&RP7[)XOO  7UjQEӝÿӋPWUX\ӅQ

6ӵNLӋQ2Q&RPP
6ӵNLӋQ2Q&RPP[ҧ\UDEҩWFӭNKLQjRJLiWUӏFӫDWKXӝFWtQK&RPP(YHQWWKD\ÿәL
&iFWKXӝFWtQK57KUHVKROGYj67KUHVKROG VӁFҩPVӵNLӋQ2Q&RPPNKLWKӵFKLӋQQKұQ
KD\JӣLGӳOLӋX7K{QJWKѭӡQJ67KUHVKROG Yj57KUHVKROG 
0ӝWFKѭѫQJWUuQKWUX\ӅQQKұQÿѫQJLҧQWKӵFKLӋQEҵQJFiFKQӕLFKkQ7['YӟL5['
FӫDFәQJ&20 ORRSEDFN 3KѭѫQJSKiSQj\GQJÿӇNLӇPWUDFәQJQӕLWLӃS
7KXӝFWtQKFѫEҧQFӫDFәQJQӕLWLӃS











+uQK±&iFWKXӝFWtQKFѫEҧQFӫD06&RPP






3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

&ӱDVәFKѭѫQJWUuQKWKӵFWKL


7H[WER[FKӭD
 ĈӕLWѭӧQJ
FiFNêWӵJӣL
 06&RPP



7H[WER[FKӭD
FiFNêWӵQKұQ



<rXFҫXWUX\ӅQ
GӳOLӋX

+uQK±&ӱDVәFKѭѫQJWUuQKORRSEDFN
&KѭѫQJWUuQKQJXӗQ
VERSION 5.00
Object = “{648A5603-2C6E-101B-82B6-
000000000014}#1.1#0”; “MSCOMM32.OCX”
Begin VB.Form Form1
Caption = “Loopback Serial Port
Example”
ClientHeight = 3195
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = “Form1”
ScaleHeight = 3195
ScaleWidth = 4680
StartUpPosition = 3 ‘Windows Default
Begin VB.CommandButton cmdExit
Caption = “Exit”
Height = 615
Left = 2640
TabIndex = 5
Top = 2160
Width = 1095
End
Begin VB.CommandButton cmdSend
Caption = “Send”
Height = 615
Left = 1200
TabIndex = 4
Top = 2160
Width = 975

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

End
Begin VB.TextBox txtReceive
Height = 735
Left = 1320
Locked = -1 ‘True
TabIndex = 3
Top = 1080
Width = 2535
End
Begin VB.TextBox txtTransmit
Height = 735
Left = 1320
TabIndex = 0
Top = 240
Width = 2535
End
Begin MSCommLib.MSComm MSComm1
Left = 3960
Top = 240
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 ‘True
RThreshold = 1
End
Begin VB.Label Label2
Caption = “Receive:”
Height = 375
Left = 240
TabIndex = 2
Top = 1200
Width = 855
End
Begin VB.Label Label1
Caption = “Transmit:”
Height = 375
Left = 240
TabIndex = 1
Top = 240
Width = 975
End
End
Attribute VB_Name = “Form1”
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

Private Sub cmdExit_Click()


MSComm1.PortOpen = False ‘Đóng cổng
End
End Sub
Private Sub cmdSend_Click()
MSComm1.Output = Trim(txtTransmit.Text)’Gởi dữ liệu
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1 ‘COM1
MSComm1.Settings = “9600,n,8,1” ‘Tốc độ 9600bps
MSComm1.PortOpen = True ‘ Mở cổng
End Sub
Private Sub MSComm1_OnComm()
If (MSComm1.CommEvent = comEvReceive) Then
txtReceive.Text = txtReceive.Text + MSComm1.Input
End If
End Sub

 *LDRWLӃSYӟLKӋ'$4
.KLWKӵFKLӋQJLDRWLӃSYӟLYLÿLӅXNKLӇQWDSKҧLGQJWKrPPҥFKFKX\ӇQPӭFORJLF
Wӯ 77/ Æ  Yj QJѭӧF OҥL &iF YL PҥFK WKѭӡQJ Vӱ GөQJ Oj 0$; FӫD 0D[LP KD\
'6FӫD'DOODV0ҥFKFKX\ӇQPӭFORJLFP{WҧQKѭVDX
 TxDB3&
1
 6
2 13 12
7 R1IN R1OUT

 3
8
14
T1OUT T1IN
11 RxDB3&
4 1
 9
5
C25
6 MAX232
C+
3 C28
V- C1- 10u
 DB9 10u 4
R2OUT
T2OUT

2 C2+
R2IN

T2IN

V+
 C26 C2-
5 C29
10u
10u
8

9
10

VCC
 C27
10u

+uQK±0ҥFKFKX\ӇQPӭFORJLF77/l56









3K̩P+QJ.LP.KiQK 7UDQJ

7jLOL͏X'$4 &K˱˯QJ

7X\ QKLrQ NKL Vӱ GөQJ PҥFK FKX\ӇQ PӭF ORJLF GQJ FiF YL PҥFK WKu ÿzL KӓL SKҧL
GQJFKXQJ*1'JLӳDPi\WtQKYjYLPҥFKÆFyNKҧQăQJOjPKӓQJFәQJQӕLWLӃSNKL[ҧ\
UDKLӋQWѭӧQJFKұSPҥFKӣPҥFKQJRjL'RÿyWDFyWKӇGQJWKrPRSWR1ÿӇFiFKO\YӅ
ÿLӋQ6ѫÿӗPҥFKFiFKO\P{WҧQKѭVDX VCC

 1K


TxD

 6
5
1
VCC

 
68K
4 2

DTR 4N35
 1 4.7K
6
 2 RxD_PC
7
 3
8
TxD_PC 1 6
5 RxD
4 4.7K
 9
5
2 4

4N35
 RTS

 2.2K

+uQK±0ҥFKFKX\ӇQPӭFORJLF77/l56FiFKO\
.KLJLDRWLӃSYLÿLӅXNKLӇQFKtQKOjPӝW'7(QrQVӁQӕL5['FӫDPi\WtQKYӟL7['
FӫDYLÿLӃXNKLӇQYjQJѭӧFOҥL0ҥFKNӃWQӕLÿѫQJLҧQJLӳDYLÿLӅXNKLӇQYjPi\WtQKQKѭ
VDX

3K̩P+QJ.LP.KiQK 7UDQJ




LED
 1 2
74LS04
1
VCC 2 LED VCC
 3 3 4
4 74LS04 1
 5 2
6 LED 3
7 5 6 4
 8 74LS04 5
9 6

3K̩P+QJ.LP.KiQK 
7jLOL͏X/̵SWUuQKK͏WK͙QJ

LED 7
 21 39 9 8 8
SW DIP-8 330 22 P2.0/A8 P0.0/AD0 38 74LS04 9
23 P2.1/A9 P0.1/AD1 37
 24 P2.2/A10 P0.2/AD2 36 LED




25 P2.3/A11 P0.3/AD3 35 11 10 330


26 P2.4/A12 P0.4/AD4 34 74LS04
 27 P2.5/A13 P0.5/AD5 33
28 P2.6/A14 P0.6/AD6 32 LED
P2.7/A15 P0.7/AD7




1 13 12
6 10 1 74LS04
2 13 12 11 P3.0/RXD P1.0 2
7
 R1IN R1OUT 12 P3.1/TXD P1.1 3 LED
3 14 11 13 P3.2/INT0 P1.2 4 1 2
T1OUT T1IN P3.3/INT1 P1.3




8 14 5 74LS04

4 1 15 P3.4/T0 P1.4 6
9 C+ 16 P3.5/T1 P1.5 7 LED
5 6 MAX232 3 C28 17 P3.6/WR P1.6 8 3 4
 V- C1- 10u P3.7/RD P1.7 74LS04




10u 4 30 19
2 C2+ 29 ALE/PROG XTAL1 18
 V+ 5 C29 PSEN XTAL2

R2IN
T2IN
T2OUT
R2OUT
C26 C2- 10u 31
10u EA/VPP 9

8
7
9





VCC RST

10
C27
 10u AT89C51
33p




 11.059MHz
C31






+uQK±.ӃWQӕLYӟL'$4


7UDQJ
&K˱˯QJ


7jLOL͏X'$4  &K˱˯QJ

&KѭѫQJWUuQKQJXӗQFKRYLÿLӅXNKLӇQ$7&
MOV TMOD,#20h
MOV SCON,#52h ; Truyền 8 bit dữ liệu, no parity
MOV TH1,#(-3) ; Tốc độ truyền 9600 bps
MOV TL1,#(-3)
SETB TR1

Receive:
JNB RI,Transmit ; Có dữ liệu hay không
CLR RI
MOV A,SBUF ; Nếu có thì xuất ra LED
MOV P1,A
Transmit:
JNB TI,Receive ; Đã truyền xong chưa
CLR TI
MOV A,P2 ; Nếu xong thì truyền trạng
thái
MOV SBUF,A ; của công tăc SW DIP-8
JMP Receive

*LDRGLӋQFӫDFKѭѫQJWUuQKWUrQPi\WtQK












+uQK±&KѭѫQJWUuQKJLDRWLӃSYӟLYLÿLӅXNKLӇQ
&KѭѫQJWUuQKQJXӗQ
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-
000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Microcontroller
Interface Example"
ClientHeight = 4665

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

ClientLeft = 60
ClientTop = 345
ClientWidth = 4020
LinkTopic = "Form1"
ScaleHeight = 4665
ScaleWidth = 4020
StartUpPosition = 3 'Windows Default
Begin VB.CheckBox chkSW
Height = 375
Index = 7
Left = 1800
TabIndex = 17
Top = 3480
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 6
Left = 1800
TabIndex = 16
Top = 3000
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 5
Left = 1800
TabIndex = 15
Top = 2520
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 4
Left = 1800
TabIndex = 14
Top = 2040
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 3
Left = 1800
TabIndex = 13
Top = 1560
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Index = 2
Left = 1800
TabIndex = 12
Top = 1080
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 1
Left = 1800
TabIndex = 11
Top = 600
Width = 1575
End
Begin VB.CheckBox chkSW
Height = 375
Index = 0
Left = 1800
TabIndex = 10
Top = 120
Width = 1575
End
Begin VB.CommandButton cmdExit
Caption = "Exit"
Height = 495
Left = 1680
TabIndex = 9
Top = 3960
Width = 975
End
Begin MSCommLib.MSComm MSComm1
Left = 3360
Top = 3960
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
RThreshold = 1
End
Begin VB.CommandButton cmdSend
Caption = "Send"
Height = 495
Left = 240
TabIndex = 8
Top = 3960
Width = 1095
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Caption = "LED7"
Height = 375
Index = 7
Left = 240
TabIndex = 7
Top = 3480
Width = 1095
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED6"
Height = 375
Index = 6
Left = 240
TabIndex = 6
Top = 3000
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED5"
Height = 375
Index = 5
Left = 240
TabIndex = 5
Top = 2520
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED4"
Height = 375
Index = 4
Left = 240
TabIndex = 4
Top = 2040
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED3"
Height = 375
Index = 3
Left = 240
TabIndex = 3
Top = 1560
Width = 975
End
Begin VB.Label lblLED

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

BackStyle = 0 'Transparent
Caption = "LED2"
Height = 375
Index = 2
Left = 240
TabIndex = 2
Top = 1080
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED1"
Height = 375
Index = 1
Left = 240
TabIndex = 1
Top = 600
Width = 975
End
Begin VB.Label lblLED
BackStyle = 0 'Transparent
Caption = "LED0"
Height = 375
Index = 0
Left = 240
TabIndex = 0
Top = 120
Width = 975
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 7
Left = 840
Shape = 3 'Circle
Top = 3480
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 6
Left = 840
Shape = 3 'Circle
Top = 3000

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 5
Left = 840
Shape = 3 'Circle
Top = 2520
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 4
Left = 840
Shape = 3 'Circle
Top = 2040
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 3
Left = 840
Shape = 3 'Circle
Top = 1560
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 2
Left = 840
Shape = 3 'Circle
Top = 1080
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

FillStyle = 0 'Solid
Height = 375
Index = 1
Left = 840
Shape = 3 'Circle
Top = 600
Width = 375
End
Begin VB.Shape shpLED
BorderColor = &H000000FF&
FillColor = &H000000FF&
FillStyle = 0 'Solid
Height = 375
Index = 0
Left = 840
Shape = 3 'Circle
Top = 120
Width = 375
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub cmdExit_Click()
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
End
End Sub

Private Sub cmdSend_Click()


Dim t As Integer
Dim i As Integer
t = 0
For i = 0 To 7
t = t + (2 ^ i) * (1 - shpLED(i).FillStyle)
Next i
MSComm1.Output = Chr(t)
End Sub

Private Sub Form_Load()


MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End Sub

Private Sub lblLED_Click(Index As Integer)

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ

shpLED(Index).FillStyle = 1 - shpLED(Index).FillStyle
End Sub

Private Sub MSComm1_OnComm()


Dim t As String
Dim n As Integer
Dim i As Integer
If MSComm1.CommEvent = comEvReceive Then
n = Asc(MSComm1.Input)
For i = 0 To 7
chkSW(i).Value = n Mod 2
If chkSW(i).Value = 0 Then
chkSW(i).Caption = "Switch " &
Str(i) & " off"
Else
chkSW(i).Caption = "Switch " &
Str(i) & " on"
End If
n = Fix(n / 2)
Next i
End If
End Sub

 &KXҭQ56
&KXҭQ56GQJÿѭӡQJWUX\ӅQ NK{QJFkQ EҵQJ YuFiFWtQKLӋXOҩ\FKXҭQOj
*1'FKXQJQrQGӉEӏҧQKKѭӣQJFӫDQKLӉXOjPWӕFÿӝYjNKRҧQJFiFKWUX\ӅQEӏJLӟL
KҥQ.KLPXӕQWăQJNKRҧQJFiFKWUX\ӅQP{WSKѭѫQJSKiSFyWKӇVӱGөQJOjGQJ
Gk\WUX\ӅQYLVDLYuO~FQj\Gk\FyFQJÿһFWtQKQrQVӁORҥLWUӯÿѭӧFQKLӉXFKXQJ
+DL FKXҭQ ÿѭӧF Vӱ GөQJ Oj 56 Yj 56 QKѭQJ WK{QJ WKѭӡQJ Vӱ GөQJ 56
ĈLӋQ iS YL VDL \rX FҫX SKҧL OӟQ KѫQ P9 1ӃX 9 $% !  P9 WKu WѭѫQJ ӭQJ YӟL
ORJLFYj9$%P9WѭѫQJӭQJYӟLORJLF&KXҭQ56VӱGөQJKDLÿLӋQWUӣ
NӃWWK~FOj:WҥLKDLÿҫX[DQKҩWFӫDÿѭӡQJWUX\ӅQYjVӱGөQJGk\[RҳQÿ{L










+uQK±&KXҭQJLDRWLӃS56

7UDQJ *93K̩P+QJ.LP.KiQK
7jLOL͏XDAQ &K˱˯QJ

Hình 3.30 ± &KXҭQJLDRWLӃS56

5.5.1. &iFÿһFWtQKNӻWKXұW
ĈһFWtQK RS422 RS485
6ӕWKLӃWEӏWUX\ӅQ 1 32
6ӕWKLӃWEӏQKұQ 10 32
&KLӅXGjLFDEOHFӵFÿҥL 1200m 1200m
7ӕFÿӝWUX\ӅQFӵFÿҥL Wӯ± 1200m) 10Mps ± 100Kbps 10Mps ± 100Kbps
ĈLӋQiSFӵFÿҥLWҥLQJ}UDWKLӃWEӏWUX\ӅQ -0.25V y 6V -7V y 12V
ĈLӋQiSQJ}YjRWKLӃWEӏQKұQ -10V y 10V -7V y 12V

5.5.2. &iFFKӃÿӝWUX\ӅQ
Bán song công

Trang 75 *93K̩P+QJ.LP.KiQK
7jLOL͏XDAQ &K˱˯QJ

Song công:

5.5.3. 6RViQKJLӳD56Yj56
RS232 RS485
&KӃÿӝKRҥWÿӝQJ ĈѫQ Vi sai
7әQJ Vӕ Eӝ ÿLӅX NKLӇQ Yj EӝÿLӅXNKLӇQ GULYHU  Eӝ ÿLӅX NKLӇQ GULYHU  
thu trên 1 dây EӝWKX UHFHLYHU EӝWKX UHFHLYHU
&KLӅXGjLFiSWӕLÿD 15m 1200m
7ӕFÿӝWӕLÿD 20 Kbps/15m 10Mbps/12m
1Mbps/120m
100Kbps/1.2km
0ӭFWtQKLӋXQJ}UDFyWҧL r 5 y r 15V r 1.5V
0ӭFWtQKLӋXQJ}UD NK{QJ r 25V r 6V
WҧL
7Uӣ NKiQJ FӫD Eӝ ÿLӅX 3 K: - 7 K: 54 :
NKLӇQ
3KҥPYLÿLӋQiSEӝWKX r 15V -7V ± 12V
ĈӝQKҥ\EӝWKX r 3V r 200 mV
7UӣNKiQJEӝWKX 3 K: - 7 K: t 12 K:

ĈӕLYӟLFKXҭQ56NKRҧQJFiFKWUX\ӅQNK{QJFKRSKpSÿL[DQrQNKLPXӕQ
WKӵF KLӋQ WUX\ӅQ ӣ NKRҧQJ FiFK [D WKu SKҧL FKX\ӇQ Wӯ 56 VDQJ FKXҭQ 56 ÿӇ
WUX\ӅQÿLYjVDXÿyFKX\ӇQWӯ56VDQJ56ÿӇPi\WtQKFyWKӇQKұQGҥQJÿѭӧF
6ѫÿӗPҥFKFKX\ӇQÿәLWӯ56VDQJ56YjQJѭӧFOҥLP{WҧQKѭVDX

Trang 76 *93K̩P+QJ.LP.KiQK
7jLOL͏X'$4  &K˱˯QJ



 1
2
3
 1
6
4
DI A
6
7
120 4
5
2 13 12 3 B 6
 7
3 14
R1IN R1OUT
11
VCC 2 DE
RE RO
1 7
8
8 T1OUT T1IN

 4
9 C+
1 MAX485
CON8
5 6 MAX232 3

V- C1- 10u
DB9 10u 4 6 4

R2OUT
T2OUT
2 C2+ 7 A DI

R2IN

T2IN
V+ B
 C2-
5
10u 1
RO
DE
RE
3
2 120
10u
8

9
10
VCC
 MAX485
10u


+uQK±&KX\ӇQÿәLWӯ56VDQJ56YjQJѭӧFOҥL

7UDQJ *93K̩P+QJ.LP.KiQK
Tài liệu DAQ Chương 4

Chương 4
TỔNG QUAN VỀ SCADA (SUPERVISORY
CONTROL AND DATA ACQUISITION)
1. Giới thiệu
SCADA là hệ thống cho phép người điều hành giám sát và điều khiển các quá
trình được phân bố trong các nơi ở xa.
Có nhiều quá trình sử dụng hệ thống SCADA như: thủy điện, các khâu xử lý và
phân phối nước, khí tự nhiên, v.v…Các hệ thống SCADA cho phép các nơi xa liên lạc
với phương tiện điều khiển và cung cấp dữ liệu điều khiển cần thiết cho các quá trình
điều khiển. Khi khoảng cách đến các nơi xa tăng thì càng khó truy cập hơn, khi đó
SCADA trở thành sự chọn tốt nhất cho người điều hành để điều chỉnh và quan sát.
Khoảng cách và sự ở xa là hai yếu tố chính để cài đặt các hệ thống SCADA .
Các hệ thống SCADA hiện đại có nhiều đặc tính tiên tiến như: kiến trúc phân bố,
cơ sở dữ liệu phân bố, giao tiếp đồ họa với người sử dụng (GUI = Graphic User
Interface), các đơn vị đo lường từ xa thông minh v.v…
Hệ SCADA thường được dùng để chỉ tất cả các hệ thống máy tính được thiết kế
để thực hiện các chức năng sau:
- Thu thập dữ liệu từ các thiết bị công nghiệp hoặc các bộ cảm biến / chuyển đổi
năng lượng.
- Xử lý và thực hiện các phép tính trên dữ liệu thu thập được.
- Hiển thị dữ liệu thu thập và dữ liệu đã xử lý.
- Nhận lệnh từ người điều hành và thực hiện gởi các lệnh điều khiển đến các
thiết bị.
- Xử lý các lệnh điều khiển tự động hoặc bằng tay đúng lúc và tin cậy.
Các hệ thống như vậy có thể được gọi bằng các tên khác trong các tình huống và
các công nghệ khác như: DAC (Data Acquition and Control = Điều khiển và thu thập dữ
liệu), DCS (Distributed Control Systems = Các hệ thống điều khiển phân bố), … Tất cả
các hệ thống này về cơ bản thực hiện cùng các chức năng. Tùy theo ứng dụng cụ thể, các
đặc điểm sau dùng để phân biệt các hệ thống:
- Vị trí và sự phân bố các nguồn dữ liệu công nghiệp.
- Lượng dữ liệu được thu thập.
- Tốc độ thu thập dữ liệu.
- Mức độ tự động của các lệnh điều khiển.
- Kiểu tính toán và vị trí mà tác động điều khiển được thực hiện.
Hệ thống SCADA có 4 phần tử chính: người điều hành (operator), phần tử thiết bị
đầu cuối chính MTU (Master Terminal Unit), truyền thông liên lạc và phần tử thiết bị đầu

Trang 107 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

cuối ở xa RTU (Remote Terminal Unit). Người điều hành thực hiện điều khiển qua thông
tin được mô tả trong khối hiển thị hình ảnh VDU (Video Display Unit). Phần nhập của hệ
thông thường xuất phát từ người điều hành qua bàn phím của MTU. Thông tin từ các nơi
ở xa được MTU giám sát và hiển thị các thông tin này cho người điều hành.
MTU (Master Terminal Unit)

Outputs to Other Devices

Inputs from RTU MTU Outputs to RTU

Inputs from Operator


Hình 4.1: Các phần nhập và xuất của MTU.
Trung tâm của hệ thống là MTU. Nhiệm vụ của MTU là khởi động tất cả các công
việc: truyền thông liên lạc, thu thập dữ liệu, lưu trữ thông tin, gửi thông tin đến các hệ
thống khác, và giao tiếp với người điều hành. Sự khác biệt chính giữa MTU và RTU là
MTU khởi động ảo tất cả các truyền thông bằng lập trình giữa nó và con người. Hầu hết
tất cả các truyền thông được thực hiện bởi MTU. MTU cũng liên lạc với các thiết bị
ngoại vi khác như: monitor, máy in hoặc các hệ thống thông tin khác. Thành phần giao
tiếp cơ bản với người điều hành là monitor mà trong đó hiển thị các valve, bơm, … Khi
dữ liệu đến thay đổi thì màn hình được cập nhật.
RTU (Remote Terminal Unit):
RTU thu thập thông tin ở xa từ nhiều thiết bị nhập như các valve, bơm, báo động
(alarm), đồng hồ đo (meter)… Chủ yếu dữ liệu dạng analog, digital (on/off), hoặc dữ liệu
xung (như đếm số vòng xung của các meter). Nhiều RTU giữ thông tin thu thập được
trong bộ nhớ và đợi yêu cầu từ MTU để truyền dữ liệu. Các RTU hiện đại hơn có các
máy vi tính và các PLCs có thể điều khiển trực tiếp qua địa điểm từ xa không cần định
hướng của MTU.

Trang 108 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

Outputs to Field Devices

Inputs from MTU RTU Outputs to MTU

Inputs from Field Devices

Hình 4.2: Các phần nhập và xuất của RTU.


CPU của RTU nhận luồng dữ liệu nhị phân theo giao thức truyền thông. Các giao
thức có thể mở rộng như TCP/IP (Transmission Control Protocol and Internet Protocol)
hoặc các giao thức riêng. Những luồng dữ liệu tổng quát chứa các thông tin được tổ chức
theo mô hình 7 lớp ISO/OSI. Mô hình OSI được sử dụng để đặt tiêu chuẩn cho cách trao
đổi thông tin với các giao thức, truyền thông và dữ liệu. RTU nhận thông tin của nó nhờ
vào mã nhận dạng của nó trong dữ liệu truyền. Dữ liệu này được diễn dịch và CPU điều
khiển tác động thích hợp tại chỗ.

2. Các đặc tính chính của hệ thống SCADA


2.1. Kiến trúc hệ thống
Hiện nay các hệ SCADA thế hệ mới được xây dựng theo kiến trúc phân tán, trong
đó máy chủ được phân bố trên một số bộ xử lý được nối cùng với nhau bằng mạng nội bộ
(LAN). Trong đó mỗi bộ xử lý có một trách nhiệm nhất định như : thu thập và xử lý, tạo
hiển thị, thiết lập báo cáo, … và một số bộ xử lý dùng để dự phòng.
Nhờ vào các công nghệ diện rộng (WAN), hệ thống SCADA có thể được phân tán
trên một miền địa lý rộng. Hệ thống được thiết kế theo hệ thống mở và cơ cấu server -
client.

Trang 109 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

Kiến trúc tiêu biểu của một hệ SCADA phân tán:

IOS HMI

HDC GW APPS

Hình 4.3: Kiến trúc tiêu biểu của một hệ SCADA phân bố.
IOS: Data Input/Output Modules
HMI: Human Machine Interface Module
HDC: Historical Data Collection and Storage Module
GW: Gateway for inter LAN communications
APPS: Application Calculations and Processing Module.

2.2. Các đặc tính chính của hệ thống


Các hệ thống SCADA hiện nay có các đặc tính sau:
- Đồ họa hoàn toàn trong quá trình giám sát và điều khiển.
- Có hệ thống lưu trữ dữ liệu (History) và hiển thị đồ thị quá trình, có khả năng
hiển thị đa tín hiệu.
- Hệ thống cảnh báo và ghi nhận sự kiện (Alarm/ Event System).
- Hỗ trợ các chuẩn truyền thông nối tiếp, song song và giao thức TCP/IP.
- Hệ thống báo cáo, báo biểu theo chuẩn công nghiệp.
- Hỗ trợ các chuẩn giao diện OPC, OLE/DB và các giao diện công nghiệp khác.
- Khả năng tích hợp tín hiệu Video động.
- Khả năng đồng bộ về thời gian với hệ thống cũng như giữa các Server và
Client.

2.3. Đặc điểm về giao tiếp giữa người và máy


SCADA trang bị các VDU (Visual Display Unit = Đơn vị hiển thị) đầy đủ đồ họa
có kèm mouse, trackball, joystick và bàn phím. Các nút điều khiển nối cứng được thay
thế bằng các biểu tượng trên màn hình được tác động bằng chuột hay bàn phím. Các
phương tiện này giúp cho người điều hành:
- Nhanh chóng hoán đổi giữa các màn hình hiển thị.
- Nhanh chóng xem được chi tiết các thông tin.

Trang 110 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

- Tạo và sửa đổi các màn hình hiển thị trực tiếp ở hệ thống.
Có những hiệu ứng đặc biệt để tăng khả năng phân biệt rõ dữ liệu (ví dụ các màu
khác nhau cho các lô khác nhau trong một đường ống dẫn dầu).
Với các VDU hoạt động trong môi trường Windows hay X-Windows, người điều
hành cũng có thể:
- Xem trên cùng một VDU nhiều mảng thông tin trải ra trên nhiều màn hình hiển
thị.
- Trên cùng màn hình, truy cập được các dữ liệu nằm rải rác theo vùng hoặc các
dữ liệu thuộc các cơ sở dữ liệu khác nhau.
Do đó, những phương tiện HMI hiện đại cho phép người điều hành truy cập số
lượng thông tin lớn dễ hơn và nhanh hơn.
Về các RTU, không còn là những thiết bị thụ động nữa mà chúng làm nhiệm vụ
thu thập và lưu giữ dữ liệu vùng. Nhiều mức xử lý dữ liệu và điều khiển được thực hiện
tại các RTU.
Nhiều loại thiết bị có thể được nối vào các RTU như: PLC, máy đo lưu lượng,
thiết bị lấy chuẩn trong các bin hay các bồn chứa… Các RTU có thể được kết nối theo
kiểu phân bố hoặc kiểu phân cấp. Dữ liệu của các RTU được xử lý tại trạm chủ.
Về cơ sở dữ liệu, các dữ liệu được lưu trữ không chỉ là dữ liệu đo đạc từ xa được tính
toán mà còn là các thông số bảo vệ, các sự kiện, các mẫu tin cũng như các cảnh báo. Do
tính chất phân bố của SCADA nên cơ sở dữ liệu cũng được phân bố. Cơ sở dữ liệu cũng
có thể liên hệ với hệ thống quản trị thông tin (Managerment Information System) và hệ
thống thông tin địa lý GIS (Geographic Information System). Ngoài ra, các dữ liệu có thể
được bảo mật bằng các password.

3. Nguyên tắc hoạt động của hệ thống SCADA


Hệ thống SCADA hoạt động dựa trên nguyên tắc lấy tín hiện từ các cơ cấu cảm
biến được gắn trên các thiết bị công tác hoặc trên dây chuyền sản xuất gửi về cho máy
tính. Máy tính xử lý, kiểm tra trạng thái hoạt động của hệ thống, các yêu cầu kỹ thuật của
sản phẩm đã được cài sẵn trong bộ nhớ. Đồng thời, máy tính sẽ hiển thị lại những thông
tin kỹ thuật của hệ thống trên màn hình, cho phép tự động giám sát và điều khiển hệ
thống và phát ra tín hiệu điều khiển đến máy công tác tạo nên vòng tín hiệu kín (thực
hiện chức năng giám sát và điều khiển)
Việc điều khiển giám sát ở đây bao hàm hai ý nghĩa :
- Con người theo dõi và điều khiển.
- Máy tính giám sát và điều khiển.
Đối với các hệ thống sản xuất tự động trước đây, việc kiểm tra giám sát hoàn toàn
do con người đảm trách. So với máy tính, tốc độ xử lý tính toán của con người rất chậm
và dễ nhầm lẫn. Việc tính toán điều khiển của máy tính sẽ tránh được những hậu quả trên.
Những sai sót nhỏ, đơn giản thường xuyên gặp phải sẽ được máy tính giám sát và xử lý

Trang 111 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

theo chương trình được đặt sẵn. Đối với những sự cố lớn máy tính sẽ báo cho người theo
dõi biết và tạm dừng hoạt động của hệ thống để chờ quyết định của người điều hành.
Vì vậy, bên cạnh khả năng hoạt động toàn hệ thống theo một chương trình định
trước, hệ SCADA còn cho phép người vận hành quan sát được trạng thái làm việc của
từng thiết bị tại các trạm cơ sở, đưa ra các cảnh báo, báo động khi hệ thống có sự cố và
thực hiện các lệnh điều khiển can thiệp vào hoạt động của hệ thống khi có tình huống bất
thường hay có sự cố

4. Chức năng và nhiệm vụ cơ bản của hệ thống SCADA


4.1. Giám sát và phân tích hoạt động sản xuất
Ngay khi nhận biết được những thông tin về hoạt động của hệ thống từ các bộ
phận cảm biến gửi về, máy tính sẽ phân tích những tín hiệu đó và so sánh với những tín
hiệu chuẩn, với những tín hiệu yêu cầu từ các tập tin về cấu hình hoạt động của hệ thống
sản xuất, hay các bảng cơ sở dữ liệu về sản phẩm, quy trình sản xuất, các thông số công
nghệ của các máy công tác(dữ liệu tham khảo). Nhờ các bộ phận cảm biến, các thiết bị đo
lường mà trong quá trình sản xuất luôn thông báo cho người giám sát biết được các thông
tin về tiến trình hoạt động sản xuất, các thông số kỹ thuật ,số lượng sản phẩm...
Việc giám sát ở đây bao hàm hai ý nghĩa:
- Máy tính giám sát
- Con người giám sát
Việc theo dõi giám sát chủ yếu là do máy tính, con người chỉ đóng vai trò phụ,
chuyên theo dõi những biến cố lớn nguy hiểm đến hệ thống sản xuất. Những trục trặc nhỏ
hay những sai lệch thường xuyên gặp phải sẽ được máy tính sửa chữa theo chương trình
được cài sẵn

4.2. Hoạt động theo chương trình điều khiển


Ngoài các chức năng truyền thống là so sánh để điều khiển cơ cấu tác động, ta còn
có thể cho hệ thống hoạt động theo một chương trình đã lập từ trước. Nhờ có bộ vi xử lý
ta có thể lập trình cho hệ thống hoạt động theo những chu trình phức tạp, máy tính sẽ đọc
chương trình và xuất tín hiệu điều khiển cho các cơ cấu hoạt động theo chương trình
Việc thay đổi chu trình hoạt động của máy tính hay thay đổi kích thước mẫu mã
sản phẩm chỉ là việc thay đổi chương trình. Mẫu mã, kích thước được vẽ trên máy tính
bằng các phần mềm chuyên dụng (Cimatron, Pro Engineer..) rồi máy tính sẽ dịch lại theo
mã máy để cho các máy điều khiển số (NC,CNC) hiểu được.

4.3. Kiểm tra và đảm bảo chất lượng


Nhờ các thiết bị cảm ứng, các thiết bị đo lường được gắn trên máy mà ta có thể đo,
kiểm tra sản phẩm, loại bỏ các phế phẩm ngay từ nguyên nhân hỏng, nhờ đó mà chất
lượng sản xuất được nâng cao và giảm bớt chi phí sản xuất; kịp thời phát hiện, báo động
những biến cố xảy ra.

Trang 112 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

4.4. Quản lý quá trình sản xuất


Các thông tin về hệ thống sản xuất đều được truyền về cho máy tính giám sát và
thống kê, tổng kết quá trình sản xuất: số lượng sản phẩm, số lượng nguyên vật liệu còn
tồn trữ, giúp người quản lý ra quyết định. Đặt biệt là khả năng liên kết động (DDE -
Dynamic Data Exchange) cho phép các thông tin trên được kết nối, trao đổi cơ sở dữ liệu
với các hệ thống SCADA tương tự khác theo chuẩn TCP/IP. Điều này cho phép các hệ
thống có thể truy xuất dữ liệu cũng như xuất ra tín hiệu điều khiển lẫn nhau.
Hệ thống SCADA còn có khả năng liên kết với các hệ thống thương mại có cấp độ
cao hơn, cho phép đọc / ghi theo cơ sở dữ liệu chuẩn ODBC như Oracle, Access,
Microsoft SQL…

5. Phân loại hệ thống SCADA


Có nhiều loại hệ thống SCADA khác nhau nhưng trên cơ bản chúng được chia làm
4 nhóm với những tính năng cơ bản sau :
- SCADA độc lập / SCADA nối mạng.
- SCADA không có chức năng đồ hoạ (Blind) / SCADA có khả năng xử lý đồ hoạ
thông tin thời gian thực.
Hệ thống SCADA mù (Blind)
Là hệ thống thu nhận, xử lý dữ liệu thu được bằng hình ảnh hoặc đồ thị . Do
không có bộ phận giám sát nên hệ thống rất đơn giản và giá thành thấp
Hệ thống SCADA xử lý đồ hoạ thông tin thời gian thực
Là hệ thống giám sát và thu nhận dữ liệu có khả năng mô phỏng tiến trình hoạt
động của hệ thống sản xuất nhờ các tập tin cấu hình của máy đã được khai báo trước đó.
Tập tin cấu hình sẽ ghi lại khả năng hoạt động của hệ thống, các giới hạn không gian hoạt
động, giới hạn về khả năng, công suất làm việc của máy. Nhờ biết trước khả năng hoạt
động của hệ thống sản xuất mà khi có tín hiệu vượt quá tải hay có vấn đề đột ngột phát
sinh, hệ thống sẽ báo cho người giám sát biết trước để họ can thiệp vào hoặc tín hiệu vượt
quá mức cho phép hệ thống sẽ lập tức cho máy công tác ngưng hoạt động
Hệ thống SCADA độc lập
Là hệ thống giám sát và thu nhận dữ liệu với một bộ xử lý, thông thường loại hệ
thống SCADA này chỉ điều khiển một hoặc hai máy công cụ (workcell). Do khả năng
điều khiển ít máy công tác nên hệ thống sản xuất chỉ đáp ứng được cho việc sản xuất chi
tiết, không tạo nên được dây chuyền sản xuất lớn.
Hệ thống SCADA mạng
Là hệ thống giám sát và thu nhận dữ liệu với nhiều bộ xử lý có nhiều bộ phận
giám sát được kết nối với nhau thông qua mạng. Hệ thống này cho phép điều khiển phối
hợp được nhiều máy công tác hoặc nhiều nhóm workcell tạo nên một dây chuyền sản
xuất tự động. Đồng thời hệ thống có thể kết nối tới nơi quản lý – nơi ra quyết định sản

Trang 113 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

xuất hay có thể trực tiếp sản xuất theo yêu cầu của khách hàng từ nơi bán hàng hay phòng
thiết kế. Do được kết nối mạng nên chúng ta có thể điều khiển từ xa các thiết bị công tác
mà điều kiện nguy hiểm (như làm việc ở nơi có môi trường phóng xạ, nơi có từ trường
mạnh …) không cho phép con người đến gần

6. Tiêu chuẩn đánh giá


Mục đích trong việc đánh giá và lựa chọn của một người thiết kế hệ thống không
phải là tìm ra giải pháp tốt nhất, mà là một giải pháp đủ thoả mãn các nhu cầu về mặt kỹ
thuật với giá thành hợp lý, trong phạm vi ngân sách cho phép. Để đánh giá một giải pháp
SCADA, ta cần đặc biệt chú ý đến những yếu tố sau:
- Khả năng hỗ trợ của công cụ phần mềm đối với việc thực hiện các màn hình
giao diện, chất lượng của các thành phần đồ hoạ có sẵn.
- Khả năng truy cập và cách thức kết nối dữ liệu từ các quá trình kỹ thuật (trực
tiếp từ các cơ cấu chấp hành, cảm biến, các module vào / ra, qua các thiết bị
điều khiển khả trình PLC hay các hệ thống bus trường).
- Tính năng mở rộng của hệ thống.
- Khả năng hỗ trợ xây dựng các chức năng trao đổi tin tức (Messaging), xử lý sự
kiện và sự cố (Event and Alarm), lưu trữ thông tin (Archive and History) và lập
báo cáo (Reporting).
- Tính năng thời gian, hiệu suất trao đổi thông tin.
- Giá thành hệ thống phần mềm bao gồm công cụ phát triển (Development
Tool), chương trình chạy (Runtime Engine), tài liệu sử dụng, công đào tạo và
dịch vụ hỗ trợ, bảo trì.
Tạo dựng một ứng dụng SCADA tối thiểu đòi hỏi hai phần việc chính: xây dựng
màn hình hiển thị và thiết lập mối quan hệ giữa các hình ảnh trên màn hình với các biến
quá trình. Như vậy, công việc tạo dựng một ứng dụng SCADA trên nguyên tắc sẽ phức
tạp hơn nhiều so với việc lập trình giao diện đồ hoạ trong các ứng dụng thông thường. Có
hai phương pháp để tạo dựng:
Phương pháp thứ nhất là sử dụng công cụ lập trình phổ thông như Visual C++,
Visual Basic, Jbuilder, Delphi và người lập trình phải tự làm từ đầu, giống như việc phát
triển các ứng dụng thông thường. Không kể đến việc phải lập trình để kết nối dữ liệu qua
các cổng truyền thông, thì công việc lập trình đồ họa mặc dù có các công cụ hỗ trợ rất
mạnh cũng gặp nhiều khó khăn. Thứ nhất là phương pháp này đòi hỏi mức kiến thức lập
trình khá cao ở người lập trình. Thứ hai, việc lập trình các biểu tượng, ký hiệu đồ hoạ
thường dùng trong kỹ thuật đòi hỏi nhiều công sức. Để giải quyết vấn đề này, ta có thể sử
dụng các thư viện phần mềm dưới dạng thư viện lớp (class library) hay thư viện thành
phần (component library) có sẵn. Đặc biệt, việc sử dụng các thư viện thành phần như
ActiveX hay JavaBeans nâng cao hiệu suất lập trình một cách đáng kể. Tuy nhiên trong
bất cứ trường hợp nào cũng phải biên dịch lại toàn bộ ứng dụng. Do đó, phương pháp lập
trình này chỉ nên sử dụng trong các ứng dụng quy mô nhỏ và ít có yêu cầu phải thay đổi.

Trang 114 GV: Phạm Hùng Kim Khánh


Tài liệu DAQ Chương 4

Phương pháp thứ hai là sử dụng một công cụ phần mềm chuyên dụng (ví dụ FIX,
InTouch,WinCC,Lookout,…), gọi tắt là phần mềm SCADA. Các công cụ này có chứa
các thư viện thành phần cho việc xây dựng giao diện người –máy cũng như phần mềm
kết nối với các thiết bị cung cấp dữ liệu thông dụng. Nhiều công cụ định nghĩa một ngôn
ngữ riêng (thường gọi là script) phục vụ các mục đích này , tuy nhiên độ phức tạp của
chúng cũng rất khác nhau. Gần nay, xu hướng đơn giản hoá việc tạo dựng một ứng dụng
SCADA thể hiện ở sự kết hợp phương pháp lập trình hiển thị với sử dụng một ngôn ngữ
script thông dụng như Visual Basic for Application(VBA) và VBScript, tương tự như
việc soạn thảo một văn bản. Một số công cụ còn đi xa hơn nữa, cho phép ta sử dụng các
biểu tượng, ký hiệu đồ hoạ vừa để xây dựng giao diện người – máy vừa để biểu diễn sự
liên quan logic giữa các thành phần của một chương trình dưới dạng biểu đồ khối chức
năng (FBD) quen thuộc, không cần tới một dòng lệnh kể cả script. Người ta cũng nói đến
khái niệm tạo lập cấu hình (configuring) thay cho lập trình (programming).

Trang 115 GV: Phạm Hùng Kim Khánh

You might also like