khi đọ ệu này, nế ệ ặ ộ xin hãy thông báo ...mientayvn.com/dien...

88
Khi đọc qua tài liu này, nếu phát hin sai sót hoc ni dung kém chất lượng xin hãy thông báo để chúng tôi sa cha hoc thay thế bng mt tài liu cùng chđề ca tác gikhác. Bn có ththam kho ngun tài liệu được dch ttiếng Anh tại đây: http://mientayvn.com/Tai_lieu_da_dich.html Thông tin liên h: Yahoo mail: [email protected] Gmail: [email protected]

Upload: hanhan

Post on 03-Feb-2018

216 views

Category:

Documents


2 download

TRANSCRIPT

Khi đọc qua tài liệu này, nếu phát hiện sai sót hoặc nội dung kém chất lượng

xin hãy thông báo để chúng tôi sửa chữa hoặc thay thế bằng một tài liệu

cùng chủ đề của tác giả khác.

Bạn có thể tham khảo nguồn tài liệu được dịch từ tiếng Anh tại đây:

http://mientayvn.com/Tai_lieu_da_dich.html

Thông tin liên hệ:

Yahoo mail: [email protected]

Gmail: [email protected]

Tài liệu:

TỔNG QUAN VỀ DAQ (DATA ACQUISITION AND

CONTROL)

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

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

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

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

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

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

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

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

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.

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

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

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).

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

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

- 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).

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

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

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

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

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

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

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

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

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

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

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

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ì

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

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

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.

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

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

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.

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

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

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

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

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

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

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

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

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:

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

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

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:

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

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

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

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

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

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:

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

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

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

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

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

Chương 3 GIAO TIẾP GIỮA HỆ DAQ VỚI MÁY TÍNH

1. Chuyển đổi AD (Analog to Digital)

1.1. Nguyên lý

Chuyển đổi AD là qua trình chuyển từ tín hiệu tương tự từ các nguồn bên ngoài

thành dạng tín hiệu số để máy tính có thể xử lý được.

Quá trình chuyển đổi AD bao gồm:

- Lấy mẫu tín hiệu (Sampling).

- Lượng tử hóa (Quantizing).

- Mã hóa (Coding).

1.1.1. Lấy mẫu

Là quá trình thay tín hiệu tương tự bằng biên độ của nó ở những thời điểm cách

đều nhau, gọi là chu kỳ lấy mẫu. Các giá trị này sẽ được chuyển thành số nhị phân để

có thể xử lý được. Vấn đề ở đây là phải lấy mẫu như thế nào để có thể khôi phục lại tín

hiệu gốc. Tín hiệu lấy mẫu của tín hiệu gốc s(t) biểu diễn là s(nT) với T là chu kỳ lấy

mẫu.

s(nT) = s(t)u(t) (3.1)

trong đó u(t) là chuỗi xung Dirac

u(t) =

n

)nTt( (3.2)

Phổ của tín hiệu lấy mẫu là tích chập của S(f) và U(f), do đó:

Ss(f) = S(f)*U(f) =

n

)T

nf(S

T

1 (3.3)

Hình 3.1 – Tín hiệu lấy mẫu và phổ

1/T 0

0

s

t

t

f

f

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

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

Quá trình lấy mẫu mô tả ở trên là quá trình lấy mẫu lý tưởng. Trong thực tế, do

tín hiệu u(t) là các xung lấy mẫu với chu kỳ T, độ rộng và biên độ a nên phổ tín hiệu

thực tế sẽ không chỉ là hàm S(f) mà là:

S(f)a

f

)fsin( (3.4)

(do giá trị lấy mẫu là a

2/nT

2/nT

dt)t(s )

Tuy nhiên do << T nên sai lệch không đáng kể.

Tần số lấy mẫu:

Xét tín hiệu sin có tần số f và quá trình lấy mẫu với các chu kỳ lấy mẫu khác

nhau.

Như vậy, ta thấy rằng nếu tần số lấy mẫu càng cao thì dạng của tín hiệu càng có

khả năng khôi phục giống như tín hiệu gốc. Tuy nhiên, nếu tần số càng cao thì cần

phải dùng dung lượng lớn hơn để lưu trữ và đồng thời tốc độ xử lý sẽ chậm lại do cần

xử lý số lượng dữ liệu lớn. Từ đó, ta cần xác định tần số lấy mẫu sao cho có thể khôi

phục lại gần đúng dạng tín hiệu với yêu cầu tốc độ xử lý giới hạn trong mức cho phép.

Định lý lấy mẫu

Định lý lấy mẫu xác định điều kiện để một tập mẫu có thể cho phép khôi phục

lại chính xác tín hiệu trước khi lấy mẫu. Như khảo sát ở trên (hình 3.1), phổ của tín

hiệu lấy mẫu là tín hiệu có chu kỳ trên miền tần số. Để khôi phục lại dạng của tín hiệu,

ta chỉ cần giới hạn phổ tần của tín hiệu. Quá trình này có thể thực hiện bằng một mạch

lọc thông thấp với hàm truyền:

fs = 16f fs = 8f

fs = 4f fs = 2f

Hình 3.2 – Lấy mẫu tín hiệu với các tần số khác nhau

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

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

H(f) =

2

ff0

2

ff0

f

1

s

s

s (3.5)

Hay:

h(t) = T/t

)T/tsin(

(3.6)

Phổ của tín hiệu sau khi khôi phục là:

S(f) = Ss(f)H(f) (3.7)

Hay:

s(t) =

'dt

T/)'tt(

)T/)'tt(sin()nT't()'t(s

n

s(t) =

n )nT/t(

)nT/t(sin)nT(s (3.8)

Như vậy, ta có thể khôi phục lại tín hiệu trước khi lấy mẫu khi phổ tín hiệu sau

khi qua mạch lọc phải giống hệt với phổ tín hiệu gốc. Theo hình 3.3, điều kiện này

thoả mãn khi phổ tín hiệu gốc không chứa thành phần tần số lớn hơn fs/2.

fs = 1/T

0

0

s

t

t

f

f

f

Ss

H

S

0

h

t

Hình 3.3 - Khôi phục tín hiệu sau khi lấy mẫu

fs/2

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

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

Trong trường hợp ngược lại, phổ của tín hiệu lấy mẫu sẽ bị méo dạng nên khi

sử dụng mạch lọc để khôi phục tín hiệu thì tín hiệu này sẽ khác với tín hiệu gốc, hiện

tượng này gọi lài chồng phổ (aliasing).

Từ đó định lý lấy mẫu phát biểu như sau:

"Một tín hiệu không chứa bất kỳ thành phần tần số nào lớn hơn hay bằng

một giá trị fm có thể biểu diễn chính xác bằng tập các giá trị của nó với chu kỳ lấy

mẫu T = 1/2fm"

Như vậy, tần số lấy mẫu phải thoả mãn điều kiện fs ≥ 2fm trong đó fm là thành

phần tần số lớn nhất có trong tín hiệu. Tần số giới hạn này được gọi là tần số Nyquist

và khoảng (-fs/2,fs/2) gọi là khoảng Nyquist. Trong thực tế , tín hiệu trước khi lấy mẫu

sẽ bị giới hạn bằng một mạch lọc để tần số tín hiệu nằm trong khoảng Nyquist.

Ví dụ như tín hiệu âm thanh thường nằm trong khoảng (300,3400) Hz nên

người ta sẽ đưa tí hiệu qua mạch lọc thông thấp để loại các thành phần tần số bậc cao

và thực hiện lấy mẫu ở tần số tối thiểu là 6,8 KHz.

1.1.2. Lượng tử hóa

Lượng tử hoá là quá trình xấp xỉ các giá trị của tín hiệu lấy mẫu s(nT) bằng bội

số của một giá trị q (q gọi là bước lượng tử). Nếu q không thay đổi thì quá trình lượng

tử gọi là đồng nhất. Quá trình này thực hiện bằng hàm bậc thang mô tả như sau:

Quá trình lượng tử có thể thực hiện bằng cách định nghĩa giá trị trung tâm của

hàm lượng tử. Ví dụ như trong hình 3.5, các giá trị trong khoảng từ (n – ½)q đến (n +

½)q sẽ được làm tròn là n. Phương pháp này sẽ cực tiểu hóa công suất của tín hiệu lỗi.

f

Ss

Hình 3.4 – Hiện tượng chồng phổ

Hình 3.5 – Hàm lượng tử với bước lượng tử q = 1

-6 -4 -2 0 2 4 6-5

-4

-3

-2

-1

0

1

2

3

4

5

s(n)

sq(n

)

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

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

Một phương pháp khác có thể sử dụng là dùng hàm cắt, nghĩa là các giá trị trong

khoảng [nq,(n+1)q) sẽ làm tròn thành n.

Như vậy, quá trình lượng tử hóa sẽ làm méo dạng tín hiệu và xem như tồn tại

một tín hiệu nhiễu. Sự méo dạng này gọi là méo lượng tử hay còn gọi là nhiễu lượng

tử.

s(n) = sq(n) + e(n) (3.9)

Biên độ của tín hiệu nhiễu lượng tử sẽ nằm trong khoảng (-q/2,q/2). Do sai số

lượng tử không biết trước nên việc mô tả sai số lượng tử mang tính thống kê. Tổng

quát, ta có thể xem e(n) là chuỗi các biến ngẫu nhiên trong đó:

- Thống kê của e(n) không thay đổi theo thời gian (nhiễu lượng tử hóa là

quá trình ngẫu nhiên dừng).

- Nhiễu lượng tử e(n) là chuỗi các biến ngẫu nhiên không tương quan.

- Nhiễu lượng tử e(n) không tương quan với tín hiệu ngõ vào s(n).

- Hàm mật độ xác suất của e(n) phân bố đều trên tầm các giá trị của sai

số lượng tử.

Như vậy, nhiễu lượng tử được phân bố đều trên khoảng (-q/2,q/2) và có phương

sai (công suất nhiễu lượng tử) là:

12

q 2

2

e (3.10)

Tín hiệu được lấy mẫu và lượng tử hóa bao gồm một tập hợp các số và được

lưu trữ ở dạng nhị phân. Đối với số nhị phân N bit sẽ có tối đa 2N giá trị khác nhau ứng

Hình 3.6 – Lỗi lượng tử

0 1 2 3 4 5 6

-10

-8

-6

-4

-2

0

2

4

6

8

10

0 1 2 3 4 5 6-5

-4

-3

-2

-1

0

1

2

3

4

5

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

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

với 2N mức lượng tử khác nhau. Như vậy, phạm vi lượng tử sẽ bị giới hạn trong

khoảng từ q đến 2Nq, bất kỳ biên độ tín hiệu nào vượt quá giá trị này thì sẽ bị cắt bỏ.

Giả sử tín hiệu mã hóa có biên độ trong khoảng [-Am,Am]:

Am = 2Nq/2 (3.11)

Từ đó, giả sử công suất tín hiệu là 2

s thì tỷ số tín hiệu trên nhiễu lượng tử hóa

(SQNR – Signal to Quantizing Noise Ratio) là:

SQNR [dB] = 2

e

2

slog10

= 6.02(N-1) + 10.79 - 20

s

mA

log

(3.12)

1.1.3. Mã hóa

Tín hiệu ở ngõ ra bộ lượng tử hóa được đưa đến bộ mã hóa, bộ mã hóa sẽ gán

một số nhị phân cho mỗi mức lượng tử. Quá trình này gọi là mã hóa.

Có nhiều phương pháp mã hóa khác nhau nhưng trong đa số hệ thống xử lý tín

hiệu số sử dụng phương pháp bù 2. Một ví dụ đối với N = 3 như sau:

Số nhị phân Giá trị Số nhị phân Giá trị

000 0 000 0

001 1/4 001 1/4

010 1/2 010 1/2

011 3/4 011 3/4

111 - 1/4 100 1

110 - 1/2 101 5/4

101 - 3/4 110 3/2

100 -1 111 7/4

Ngoài phương pháp mã hóa tuyến tính như trên (các mức lượng tử có cùng số

bit nhị phân bằng nhau), ta còn sử dụng phương pháp mã hóa phi tuyến. Phương pháp

này sử dụng các bước lượng tử thay đổi theo biên độ tín hiệu.

1.2. Các thông số

Khi thực hiện quá trình ADC, các thông số cần quan tâm của hệ thống:

Số bit mã hóa

Số bit mã hóa của quá trình AD xác định một mức lượng tử sẽ được mã hóa

thành bao nhiêu bit nhị phân. Nếu số bit mã hóa lớn, độ phân giải của hệ thống sẽ tăng

lên nhưng đòi hỏi dung lượng lưu trữ dữ liệu và thời gian xử lý lớn hơn và ngược lại.

Độ rộng mã hóa

Là giá trị của ngõ vào tương tự làm cho giá trị mã hóa ở ngõ ra thay đổi. Ví dụ

như bộ ADC có số bit mã hóa 12 với ngõ vào tương tự từ 0 – 10V có độ rộng mã hóa

là 10/212

= 2,44 mV. Độ rộng mã hóa còn gọi là bước lượng tử.

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

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

Phạm vi ngõ vào

Phạm vi ngõ vào là khoảng giá trị nhỏ nhất và lớn nhất mã ADC có thể chuyển

đổi chính xác sang dạng số. Phạm vi này có thể ở dạng đơn cực (chỉ có điện áp dương)

hay lưỡng cực (bao gồm cả điện áp dương và âm). Trong các board ADC, thông

thường phạm vi ngõ vào có thể thay đổi.

Phương pháp mã hóa dữ liệu

Dùng để xác định dữ liệu số ở ngõ ra theo tín hiệu tương tự ngõ vào. Phương

pháp mã hóa đơn giản nhất là offset: dữ liệu số thay đổi tuyến tính theo các mức lượng

tử.

Thời gian chuyển đổi

Là thời gian từ lúc bắt đầu quá trình chuyển đổi cho tới khi có dữ liệu số hợp lệ

tại ngõ ra. Ví dụ như ADC0804 và 0809 có thời gian chuyển đổi 100 µs.

1.3. Một số vi mạch ADC

Hình 3.7 – Vi mạch ADC

Mạch ứng dụng

+IN6

-IN7

VREF/29

DB711DB612DB513DB414DB315DB216DB117DB018

CLKR19

VCC/VREF20

CLKIN4

INTR5

CS1

RD2

WR3

U4

ADC0804

CLK10

OE9

EOC7

D017

D114

D215

D38

D418

D519

D620

D721

START6

ALE22

VCC11

REF+12

REF-16

IN026

IN127

IN228

IN31

IN42

IN53

IN64

IN75

A025

A124

A223

U4

ADC0809

Hình 3.9 – Sơ đồ mạch ứng dụng ADC0804

R31.13K

+5V

R11

+5V

C31 nF

10K

R-PACK

1 162 153 144 135 126 117 108 9

ADC080467

9

1112131415161718

194

5

123

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTR

CSRDWR

+5V

-5V

A

P1

+5V+5V

+5V

R14R12

12

12

12

PORT A

12345678

12

R5 10K

P3

R11K

R21K

12

12

R4 10K

J1R6 10K

12

R7

P2

+

-

5

67

84 J2

C

+5V

R8 R13

S1

START

+5V

B

12

R9

-5V

R10

+5V

+

-

JR4558

3

21

84

i liệu

DA

Q

Ch

ươ

ng 3

Tra

ng

20

GV

: Ph

ạm

ng K

im K

nh

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

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

2. Chuyển đổi DA (Digital to Analog)

2.1. Nguyên lý

Bộ biến đổi số - tương tự (DAC) thực hiện công việc biến đổi các giá trị số

thành các đại lượng tương tự (dòng điện hoặc điện áp) tương ứng.

DAC nhận n bit song song ở ngõ vào và thực hiện chuyển đổi thành tín hiệu

tương tự ở ngõ ra. Giá trị ngõ ra thông thường là dòng điện và cỏ thể thực hiện chuyển

đổi thành điện áp bằng các bộ khuếch đại thuật toán (OpAmp). DAC bao gồm một

mạng các chuyển mạch tương tự điều khiển bằng dữ liệu số ngõ vào và một mạng các

điện trở.

Chuyển mạch bằng dòng điện

Hình 3.10 – DAC chuyển mạch dòng điện

Phương pháp này tạo dòng điện ở ngõ ra bằng cách cộng tất cả các dòng điện

thành phần. Các dòng điện thành phần được điều khiển bằng các transistor, nếu giá trị

ngõ vào tương ứng là logic 0 thì dòng điện qua R diode transistor tắt, ngược lại

thì dòng điện qua R transistor OpAmp.

Giả sử dòng điện tại ngõ vào OpAmp là IT Vout = -ITR/2

IT = ( 1)EF 2 iRi

VB

R

Vout = ( 1) 1 2

EF EF 0 1 12 2 2 ... 2i n

R i R nV B V B B B

DAC R-2R

Phương pháp này chỉ dùng các điện trở có giá trị R và 2R. Giống như phần trên,

phương pháp này cũng dùng ngõ vào số và điện áp chuẩn VREF để tạo dòng IT tại ngõ

ra.

R/2

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

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

Hình 3.11 – DAC R-2R

2.2. Các thông số

Độ phân giải

Là giá trị chênh lệch ở ngõ ra khi ngõ vào thay đổi 1 giá trị. Giá trị này càng

nhỏ (ứng với số bit mã hóa càng lớn) thì dạng sóng ngõ ra DAC càng mịn.

Phạm vi ngõ ra

Ngõ ra của DAC có 2 dạng: điện áp hay dòng điện. Nếu sử dụng ngõ ra ở dạng

điện áp, cần phải thêm các mạch khuếch đại thuật toán để chuyển từ dòng thành áp.

Để thay đổi offset, độ lợi (nghĩa là phạm vi ngõ ra), bên trong bộ DAC có điện

trở hồi tiếp. Nếu có nhiều điện trở hồi tiếp, phạm vi ngõ ra của DAC có thể thay đổi

được, các giá trị này được xác định bằng các jumper trên board DAC.

Mã ngõ vào

Tùy theo dạng mã ngõ vào (nhị phân, bù 2, BCD), tín hiệu ngõ ra sẽ được xác

định.

Thời gian xác lập

Là thời gian để ngõ ra ổn định, thời gian này bao gồm: thay đổi bộ chuyển

mạch từ on sang off hay ngược lại, thay đổi dòng điện trong transistor và thời gian xử

lý trên OpAmp.

Tốc độ thay đổi

Là tốc độ lớn nhất mà DAC có thể tạo được dạng tín hiệu ở ngõ ra. Tốc độ này

thường bị giới hạn bởi tốc độ của bộ khuếch đại tại ngõ ra.

Tốc độ cập nhật

Phụ thuộc vào thời gian xác lập và tốc độ thay đổi, dùng để xác định tần số lớn

nhất mà DAC có thể tạo được.

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

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

2.3. Một số vi mạch DAC

Hình 3.12 – Vi mạch DAC0808 và ứng dụng

P1

-12

V

PB1

OU

T -

PB2

R1

02

.7K

R1

4

5.3

5K

+C

4100uF

C3

0.0

1u

F

PO

RT B

12345678

OU

T +

+-

567

84

PB6

R1

22

.7K

DA

C0

80

812

11

10 9 8 7 6 5

14

15

4 2 16

A8

A7

A6

A5

A4

A3

A2

A1

VR

+

VR

-

IOU

T

IOU

T

CO

MP

R1

12

.7K

PB0

PB4

PB3

R1

52

.7K

PB5

D1 Z5

V1

PB7

+1

2V

R1

6

5.3

5K

+-

321

84

R9

820

C5

0.0

1u

F

C2

0.0

1u

F

R1

3

2.7

K

A812

A711

A610

A59

A48

A37

A26

A15

VR+14

VR-15

IOUT4

IOUT2

COMP16

U4

DAC0808

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

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

3. Giao tiếp qua cổng máy in

3.1. Giới thiệu

Cổng song song gồm có 4 đường điều khiển, 5 đường trạng thái và 8 đường dữ

liệu bao gồm 5 chế độ hoạt động:

- Chế độ tương thích (compatibility).

- Chế độ nibble.

- Chế độ byte.

- Chế độ EPP (Enhanced Parallel Port).

- Chế độ ECP (Extended Capabilities Port).

3 chế độ đầu tiên sử dụng port song song chuẩn (SPP – Standard Parallel Port)

trong khi đó chế độ 4, 5 cần thêm phần cứng để cho phép hoạt động ở tốc độ cao hơn.

Sơ đồ chân của máy in như sau:

Hình 3.13 – Hình dạng và sơ đồ cổng máy in

13

25

12

24

11

23

10

22 9

21 8

20 7

19 6

18 5

17 4

16 3

15 2

14 1

P1

CO

NN

EC

TO

R D

B2

5

Thanh ghi

trạng thái

Thanh ghi

điều khiển

Thanh ghi

dữ liệu

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

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

Chân Tín hiệu Mô tả

1 STR (Out) Mức tín hiệu thấp, truyền dữ liệu tới máy in

2 D0 Bit dữ liệu 0

3 D1 Bit dữ liệu 1

4 D2 Bit dữ liệu 2

5 D3 Bit dữ liệu 3

6 D4 Bit dữ liệu 4

7 D5 Bit dữ liệu 5

8 D6 Bit dữ liệu 6

9 D7 Bit dữ liệu 7

10 ACK (In) Mức thấp: máy in đã nhận 1 ký tự và có khả năng

nhận nữa

11 BUSY (In) Mức cao: ký tự đã được nhận; bộ đệm máy in đầy;

khởi động máy in; máy in ở trạng thái off-line.

12 PAPER EMPTY (In) Mức cao: hết giấy

13 SELECT (In) Mức cao: máy in ở trạng thái online

14 AUTOFEED (Out) Tự động xuống dòng; mức thấp: máy in xuống

dòng tự động

15 ERROR (In) Mức thấp: hết giấy; máy in ở offline; lỗi máy in

16 INIT (Out) Mức thấp: khởi động máy in

17 SELECTIN (Out) Mức thấp: chọn máy in

18-25 GROUND 0V

3.2. Các thanh ghi

Cổng song song có ba thanh ghi có thể truyền dữ liệu và điều khiển máy in.

Địa chỉ cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4

được lưu trữ trong vùng dữ liệu của BIOS. Thanh ghi dữ liệu được định vị ở offset

00h, thanh ghi trang thái ở 01h, và thanh ghi điều khiển ở 02h. Thông thường, địa chỉ

cơ sở của LPT1 là 378h, LPT2 là 278h, do đó địa chỉ của thanh ghi trạng thái là 379h

hoặc 279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah. Tuy nhiên trong một số

trường hợp, địa chỉ của cổng song song có thể khác do quá trình khởi động của BIOS.

BIOS sẽ lưu trữ các địa chỉ này như sau:

Địa chỉ Chức năng

0000h:0408h Địa chỉ cơ sở của LPT1

0000h:040Ah Địa chỉ cơ sở của LPT2

0000h:040Ch Địa chỉ cơ sở của LPT3

Định dạng các thanh ghi như sau:

Thanh ghi dữ liệu (hai chiều):

7 6 5 4 3 2 1 0

Tín hiệu máy in D7 D6 D5 D4 D3 D2 D1 D0

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

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

Chân số 9 8 7 6 5 4 3 2

Thanh ghi trạng thái máy in (chỉ đọc):

7 6 5 4 3 2 1 0

Tín hiệu máy

in

BUSY ACK PAPER

EMPTY

SELECT ERROR IRQ x x

Số chân cắm 11 10 12 13 15 - - -

Thanh ghi điều khiển máy in:

7 6 5 4 3 2 1 0

Tín

hiệu

máy

in

x x DIR IRQ Enable

SELECTIN INIT AUTOFEED STROBE

Số

chân

cắm

- - - - 17 16 14 1

x: không sử dụng

IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép

Chú ý rằng chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi

trạng thái, các bit SELECTIN , AUTOFEED và STROBE được đưa qua cổng đảo

trước khi đưa ra các chân của cổng máy in.

Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm hơn PC nhiều

nên các đường ACK , BUSY và STR được sử dụng cho kỹ thuật bắt tay. Khởi đầu, PC đặt

dữ liệu lên bus sau đó kích hoạt đường STR xuống mức thấp để thông tin cho máy in biết

rằng dữ liệu đã ổn định trên bus. Khi máy in xử lý xong dữ liệu, nó sẽ trả lại tín hiệu ACK

xuống mức thấp để ghi nhận. PC đợi cho đến khi đường BUSY từ máy in xuống thấp (máy in

không bận) thì sẽ đưa tiếp dữ liệu lên bus.

3.3. Ứng dụng

Quá trình giao tiếp với các thiết bị ngoại vi có thể thực hiện thông qua chế độ

chuẩn. Để đọc dữ liệu, có thể dùng một IC ghép kênh 21 74LS257 và dùng 4 bit

trạng thái của cổng song song còn xuất dữ liệu thì sử dụng 8 đường dữ liệu D0 – D7.

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

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

Hình 3.14 – Mạch giao tiếp đơn giản thông qua cổng máy in

Giao diện:

Hình 3.15 – Giao diện của chương trình giao tiếp với cổng máy in

Chương trình giao tiếp trên VB sử dụng thư viện liên kết động để trao đổi dữ

liệu với cổng máy in. Thư viện IO.DLL bao gồm các hàm sau:

- Hàm PortOut: xuất 1 byte ra cổng

Private Declare Sub PortOut Lib "IO.DLL" (ByVal

Port As Integer, ByVal Data As Byte)

123456789

10K

D03

D14

D27

D38

D413

D514

D617

D718

OE1

CLK11

Q02

Q15

Q26

Q39

Q412

Q515

Q616

Q719

74LS374

SW0-7

9 8

74LS06

VCC

STROBE

PAPER EMPTY

ACK

D03

D14

D27

D38

D413

D514

D617

D718

OE1

CLK11

Q02

Q15

Q26

Q39

Q412

Q515

Q616

Q719

74LS374

13251224112310229218207196185174163152141

G15A/B1

1Y4

2Y7

3Y9

4Y12

1A2

2A5

3A11

4A14

1B3

2B6

3B10

4B13

74LS257

123456789

10K1

VCC

12

74LS06

3 4

74LS06

5 6

74LS06

BUSY

SELECTSELECTSELECT

SELECT IN

AUTO FEED

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

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

Port: địa chỉ cổng, Data: dữ liệu xuất

- Hàm PortWordOut: xuất 1 word ra cổng

Private Declare Sub PortWordOut Lib "IO.DLL"

(ByVal Port As Integer, ByVal Data As Integer)

- Hàm PortDWordOut: xuất 1 double word ra cổng

Private Declare Sub PortDWordOut Lib "IO.DLL"

(ByVal Port As Integer, ByVal Data As Long)

- Hàm PortIn: nhập 1 byte từ cổng, trả về giá trị nhập

Private Declare Function PortIn Lib "IO.DLL"

(ByVal Port As Integer) As Byte

- Hàm PortWordIn: nhập 1 word từ cổng

Private Declare Function PortWordIn Lib "IO.DLL"

(ByVal Port As Integer) As Integer

- Hàm PortDWordIn: nhập 1 double word từ cổng

Private Declare Function PortDWordIn Lib

"IO.DLL" (ByVal Port As Integer) As Long

Chương trình nguồn:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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&

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. Giao tiếp qua khe cắm mở rộng

Hình 3.16 – Giao tiếp với khe cắm mở rộng

+5V+12V-12V-5V

+5V

CA

ÙC C

HA

ÂN T

REÂN

SLO

T

CS

CA

ÙC C

HA

ÂN T

REÂN

SLO

T

CA

ÙC C

HA

ÂN T

REÂN

SLO

T

D0

D1

D2

D3

D4D5

D7

D6

D0

D1

D2

D3

D5

D7

D4

D6

CS

A0

A1

A2

A3

A4

IOR

IOW

AEN

RESET-DRV

SL0

SL0

SL0

SL1

SL2

SL3

SL5

SL7

SL6

SL4

SL1

SL2

SL4

SL6

SL7

SL5

SL3

SL1

SL3

SL5

SL7

SL4

SL2

SL6

A19

A20

A21

A22

A23

A24

A25

A26

A2

A3

A4

A5

A6

A7

A8

A9

B14

A31

A30

A29

A28

A27

B14

B13

A11

B2

CS

A0

A1

A2

A3

A4

IOR

AEN

IOW

RESET-DRV

A11

P1

PC INTERFACE

13

25

12

24

11

23

10

22

921

820

719

618

517

416

315

214

1

U2

74LS688

P0

2P

14

P2

6P

38

P4

11

P5

13

P6

15

P7

17

Q0

3Q

15

Q2

7Q

39

Q4

12

Q5

14

Q6

16

Q7

18

G1

P=Q

19

U1

74LS245

A1

2A

23

A3

4A

45

A5

6A

67

A7

8A

89

G19

DIR

1

B1

18

B2

17

B3

16

B4

15

B5

14

B6

13

B7

12

B8

11

U3F

7407

13

12

U3A

7407

12

U3B

74073

4

U3C

7407

56

U3D

7407

98

U3E

7407

11

10

U4A

7407

12

U4B

7407

34

U4C

7407

56

U4D

7407

98

S1

SW DIP-8

1 2 3 4 5 6 7 8

16

15

14

13

12

11

10 9

R1

10K x 8

RESET-DRVAENIOWIORA4A3A2A1A0

D0D1D2D3D4D5D6D7 IOR

A5A6A7A8A9A10A11A12 AEN

A11

Hình 3.17 – Giao tiếp qua khe cắm mở rộng

+5V

-5V

-12V

+12V

+5V

31 0H ->3 1FH

30 8H ->3 0FH

30 0H ->3 07H

D3

D4

D5

D6

D7

D0

D1

D2

D0

D1

D2

D3

D4

D5

D6

D7

D0

D1

D2

D3

D4

D5

D6

D7

RS

AEN

IOW

IOR

CLOCK

A2

A4

A3

A1

A0

CS

RS

AEN

IOW

IOR

CLOCK

A4

A3

A2

A1

A0

CS

A4

RS

A0

A1

A2

CS

A3

AEN

CLOCK

IOW

IOR

CLK

AEN

A3

CS

A2

A1

A0

RS

CS

CS

CS

A3

A3

/A3

/A4

A4

P1

COMPUT ER INT ERFACE

13251224112310229218207196185174163152141

R2 560

R4 220R5 220

R3 220

R7 560

R11 560R10 560R9 560R8 560

R1 560

R6 560

U3

74LS245

A12

A23

A34

A45

A56

A67

A78

A89

G19

DIR1

B118

B217

B316

B415

B514

B613

B712

B811

U4

74LS245

A12

A23

A34

A45

A56

A67

A78

A89

G19

DIR1

B118

B217

B316

B415

B514

B613

B712

B811

U3C

74045 6

U3B

74043 4

U3D

74049 8

U3E

7404

11 10

U3A

7404

1 2

U3F

7404

13 12

U2A

74LS32

1

23

U2D

74LS32

12

1311

U2C

74LS32

9

108

U2B

74LS32

4

56

A0A1

A2A3

CLKRS

AEN

IOR

IOW

CS1

CS2

CS3

D0D1

D2D3D4D5D6D7

CS

IOR

i liệu

DA

Q

Ch

ươ

ng 3

Tra

ng

20

GV

: Ph

ạm

ng K

im K

nh

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

Phạm Hùng Kim Khánh Trang 46

5. Giao tiếp qua RS-232 và RS-485 Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có

các ưu điểm sau:

- Khoảng cách truyền xa hơn truyền song song.

- Số dây kết nối ít.

- Có thể truyền không dây dùng hồng ngoại.

- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).

- Cho phép nối mạng.

- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc.

- Có thể cung cấp nguồn cho các mạch điện đơn giản

Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE

(Data Communication Equipment). DCE là các thiết bị trung gian như MODEM còn DTE là

các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, … Việc trao đổi

tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền). Các tín hiệu còn lại có chức

năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay

(handshake). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường

truyền.

Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).

Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0

ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA.

Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.

Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp

truyền đủ ngắn có thể lên đến 115.200 bps.

Các phương thức nối giữa DTE và DCE:

- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng.

- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm

chỉ được truyền theo 1 hướng.

- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng.

Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Start D0 D1 D2 D3 D4 D5 D6 D7 P Stop

0 1

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt

đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7

và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền. Dạng

tín hiệu truyền mô tả như sau (truyền ký tự A):

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

Phạm Hùng Kim Khánh Trang 47

Hình 3.18 – Tín hiệu truyền của ký tự ‘A’

Các đặc tính kỹ thuật của chuẩn RS-232 như sau:

Chiều dài cable cực đại 15m

Tốc độ dữ liệu cực đại 20 Kbps

Điện áp ngõ ra cực đại 25V

Điện áp ngõ ra có tải 5V đến 15V

Trở kháng tải 3K đến 7K

Điện áp ngõ vào 15V

Độ nhạy ngõ vào 3V

Trở kháng ngõ vào 3K đến 7K

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,

9600 bps và 19200 bps.

Sơ đồ chân:

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

Phạm Hùng Kim Khánh Trang 48

Hình 3.19 – Sơ đồ chân cổng nối tiếp

Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như

hình 4.2. Ý nghĩa của các chân mô tả như sau:

D25 D9 Tín

hiệu

Hướng

truyền

Mô tả

1 - - - Protected ground: nối đất bảo vệ

2 3 TxD DTEDCE Transmitted data: dữ liệu truyền

3 2 RxD DCEDTE Received data: dữ liệu nhận

4 7 RTS DTEDCE Request to send: DTE yêu cầu truyền dữ liệu

5 8 CTS DCEDTE Clear to send: DCE sẵn sàng nhận dữ liệu

6 6 DSR DCEDTE Data set ready: DCE sẵn sàng làm việc

7 5 GND - Ground: nối đất (0V)

8 1 DCD DCEDTE Data carier detect: DCE phát hiện sóng mang

20 4 DTR DTEDCE Data terminal ready: DTE sẵn sàng làm việc

22 9 RI DCEDTE Ring indicator: báo chuông

23 - DSRD DCEDTE Data signal rate detector: dò tốc độ truyền

24 - TSET DTEDCE Transmit Signal Element Timing: tín hiệu định thời

truyền đi từ DTE

15 - TSET DCEDTE Transmitter Signal Element Timing: tín hiệu định thời

truyền từ DCE để truyền dữ liệu

17 - RSET DCEDTE Receiver Signal Element Timing: tín hiệu định thời

truyền từ DCE để truyền dữ liệu

18 - LL Local Loopback: kiểm tra cổng

21 - RL DCEDTE Remote Loopback: Tạo ra bởi DCE khi tín hiệu nhận

từ DCE lỗi

14 - STxD DTEDCE Secondary Transmitted Data

16 - SRxD DCEDTE Secondary Received Data

19 - SRTS DTEDCE Secondary Request To Send

13 - SCTS DCEDTE Secondary Clear To Send

12 - SDSRD DCEDTE Secondary Received Line Signal Detector

25 - TM Test Mode

9 - Dành riêng cho chế độ test

10 - Dành riêng cho chế độ test

11 Không dùng

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

Phạm Hùng Kim Khánh Trang 49

5.1. Truyền thông giữa hai nút

Các sơ đồ khi kết nối dùng cổng nối tiếp:

Hình 3.20 – Kết nối đơn giản trong truyền thông nối tiếp

Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và

thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo ngắt.

Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:

Hình 3.21 – Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay

Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của DTE2

cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM (ảo). Sau

đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có thể

nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau nên phải

thực hiện điều khiển lưu lượng. Quá trinh điều khiển này có thể thực hiện bằng phần mềm

hay phần cứng. Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và Xoff.

Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ gởi ký tự

Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu DTE muốn

truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang

rảnh) thì gởi lại CTS.

5.2. Truy xuất trực tiếp thông qua cổng

Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4 với

các địa chỉ như sau:

TxD

RxD

GND

TxD

RxD

GND

DTE1 DTE2

TxD

RxD

GND

TxD

RxD

GND

DTE DCE

TxD

RxD

GND

RTS

CTS

DSR

DCD

DTR

DTE1 DTE2

TxD

RxD

GND

RTS

CTS

DSR

DCD

DTR

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

Phạm Hùng Kim Khánh Trang 50

Tên Địa chỉ Ngắt Vị trí chứa địa chỉ

COM1 3F8h 4 0000h:0400h

COM2 2F8h 3 0000h:0402h

COM3 3E8h 4 0000h:0404h

COM4 2E8h 3 0000h:0406h

Giao tiếp nối tiếp trong máy tính sử dụng vi mạch UART với các thanh ghi cho trong

bảng sau:

Offset DLAB R/W Tên Chức năng

0

0 W THR Transmitter Holding Register (đệm truyền)

0 R RBR Receiver Buffer Register (đệm thu)

1 R/W BRDL Baud Rate Divisor Latch (số chia byte thấp)

1 0 R/W IER Interrupt Enable Register (cho phép ngắt)

1 R/W BRDH Số chia byte cao

2 R IIR Interrupt Identification Register (nhận dạng ngắt)

W FCR FIFO Control Register

3 R/W LCR Line Control Register (điều khiển đường dây)

4 R/W MCR Modem Control Register (điều khiển MODEM)

5 R LSR Line Status Register (trạng thái đường dây)

6 R MSR Modem Status Register (trạng thái MODEM)

7 R/W Scratch Register (thanh ghi tạm)

Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ như thanh

ghi cho phép ngắt của COM1 có địa chỉ là BACOM1 + 1 = 3F9h.

IIR (Interrupt Identification): IIR xác định mức ưu tiên và nguồn gốc của yêu cầu ngắt mà UART đang chờ phục

vụ. Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định nguồn gốc của

ngắt. Định dạng của IIR như sau:

D7 D6 D5 D4 D3 D2 D1 D0

00: không có

FIFO

11: cho phép

FIFO

Cho phép FIFO 64

byte (trong 16750)

- 1: ngắt time-out

(trong 16550)

Xác định nguồn

gốc ngắt

0: có

ngắt

1: không

ngắt

D2 D1 Ưu

tiên

Tên Nguồn D2 – D0 bị xoá

khi

0 0 4 Đường

truyền

Lỗi khung, thu đè, lỗi parity, gián đoạn

khi thu

Đọc LSR

0 1 3 Đệm thu Đệm thu đầy Đọc RBR

1 0 2 Đệm phát Đệm phát rỗng Đọc IIR, ghi

THR

1 1 1 Modem CTS, DSR, RI, RLSD Đọc MSR

(mức 1 ưu tiên cao nhất)

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

Phạm Hùng Kim Khánh Trang 51

IER (Interrupt Enable Register):

IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm ngắt)

D7 D6 D5 D4 D3 D2 D1 D0

- - POW HBR MODEM LINE TxEMPTY RxRDY

MCR (Modem Control Register):

D7 D6 D5 D4 D3 D2 D1 D0

- - - LOOP OUT2 OUT1 RTS DTR

MSR (Modem Status Register):

D7 D6 D5 D4 D3 D2 D1 D0

RLSD RI DSR CTS RLSD RI DSR CTS

LSR (Line Status Register):

D7 D6 D5 D4 D3 D2 D1 D0

FIE TSRE THRE BI FE PE OE RxDR

FIE: FIFO Error – sai trong FIFO

TSRE: Transmitter Shift Register Empty – thanh ghi dịch rỗng (=1 khi đã phát 1 ký

tự và bị xoá khi có 1 ký tự chuyển đến từ THR.

THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từ THR –

TSR và bị xoá khi CPU đưa ký tự tới THR).

Cho phép kiểu

công suất thấp

Cho phép khi lỗi

modem

Cho phép kiểu

nghỉ (hibernate)

Cho phép khi lỗi

thu, phát

Cho phép khi

THR rỗng

Cho phép khi

RBR đầy

Mode loopback:

kiểm tra hoạt

đọng của UART

Điều khiển 2 ngõ ra

2OUT,1OUT của

UART

Điều khiển tín hiệu

RTS và DTR

Trạng thái của CD, RI,

DSR và CTS

1: nếu có thay đổi các tín hiệu so với lần đọc trước

RI: = 1 nếu có xung dương tại RI

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

Phạm Hùng Kim Khánh Trang 52

BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic 0

trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị xoá khi CPU đọc LSR)

FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU đọc LSR)

PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)

OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu làm cho

quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)

RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bị xoá khi

CPU đọc RBR).

LCR (Line Control Register):

D7 D6 D5 D4 D3 D2 D1 D0

DLAB SBCB PS2 PS1 PS0 STB WLS1 WLS0

DLAB (Divisor Latch Access Bit) = 0: truy xuất RBR, THR, IER, = 1 cho phép đặt

bộ chia tần trong UART để cho phép đạt tốc độ truyền mong muốn.

UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16 thành tần

số 115,200 Hz. Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có tốc độ mong muốn.

Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 / 2,400 = 48d =

0030h BRDL = 30h, BRDH = 00h.

Một số giá trị thông dụng xác định tốc độ truyền cho như sau:

Tốc độ (bps) BRDH BRDL

1,200 00h 60h

2,400 00h 30h

4,800 00h 18h

9,600 00h 0Ch

19,200 00h 06h

38,400 00h 03h

57,600 00h 02h

115,200 00h 01h

SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) trong khoảng

thời gian lớn hơn một khung

PS (Parity Select):

PS2 PS1 PS0 Mô tả

X X 0 Không kiểm tra

0 0 1 Kiểm tra lẻ

0 1 1 Kiểm tra chẵn

1 0 1 Parity là mark

1 1 1 Parity là space

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

Phạm Hùng Kim Khánh Trang 53

STB (Stop Bit) = 0: 1 bit stop, =1: 1.5 bit stop (khi dùng 5 bit dữ liệu) hay 2 bit stop

(khi dùng 6, 7, 8 bit dữ liệu).

WLS (Word Length Select):

WLS1 WLS0 Độ dài dữ liệu

0 0 5 bit

0 1 6 bit

1 0 7 bit

1 1 8 bit

Một ví dụ khi lập trình trực tiếp trên cổng như sau:

.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

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

Phạm Hùng Kim Khánh Trang 54

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]

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

Phạm Hùng Kim Khánh Trang 55

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

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

Phạm Hùng Kim Khánh Trang 56

5.3. Truyền thông nối tiếp dùng ActiveX

5.3.1. Mô tả

Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một ActiveX có

sẵn là Microsoft Comm Control.. ActiveX này dược lưu trữ trong file MSCOMM32.OCX.

Quá trình này có hai khả năng thực hiện điều khiển trao đổi thông tin:

- Điều khiển sự kiện:

Truyền thông điều khiển sự kiện là phương pháp tốt nhất trong quá trình điều khiển

việc trao đổi thông tin. Quá trình điều khiển thực hiện thông qua sự kiện OnComm.

- Hỏi vòng:

Quá trinh điều khiển bằng phương pháp hỏi vòng thực hiện thông qua kiểm tra các

giá trị của thuộc tính CommEvent sau một chu kỳ nào đó để xác định xem có sự kiện nào

xảy ra hay không. Thông thường phương pháp này sử dụng cho các chương trình nhỏ.

ActiveX MsComm được bổ sung vào một Visual Basic Project thông qua menu

Project > Components:

Hình 3.21 – Bổ sung đối tượng MsComm vào VBP

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

Phạm Hùng Kim Khánh Trang 57

Biểu tượng của MsComm: và các thuộc tính cơ bản mô tả như sau:

Thuộc tính Mô tả

CommPort Số thứ tự cổng truyền thông

Input Nhận ký tự từ bộ đệm

Output Xuất ký tự ra cổng nối tiếp

PortOpen Mở / đóng cổng

Settings Xác định các tham số truyền

Hình 3.22 – Các thuộc tính của đối tượng MSComm

5.3.2. Các thuộc tính

Settings:

Xác định các tham số cho cổng nối tiếp. Cú pháp:

MSComm1.Settings = ParamString

MSComm1: tên đối tượng

ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S"

BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:

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

Phạm Hùng Kim Khánh Trang 58

110 2400 38400

300 9600 (măc định) 56000

600 14400 188000

1200 19200 256000

P: kiểm tra chẵn lẻ, với các giá trị:

Giá trị Mô tả

O Odd (kiểm tra lẻ)

E Even (kiểm tra chẵn)

M Mark (luôn bằng 1)

S Space (luôn bằng 0)

N Không kiểm tra

D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit

S: số bit stop (1, 1.5, 2)

VD:

MSComm1.Settings = "9600,O,8,1" sẽ xác định tốc độ truyền 9600bps,

kiểm tra parity chẵn với 1 bit stop và 8 bit dữ liệu.

CommPort:

Xác định số thứ tự của cổng truyền thông, cú pháp:

MSComm1.CommPort = PortNumber

PortNumber là giá trị nằm trong khoảng từ 1 99, mặc định là 1.

VD:

MSComm1.CommPort = 1 xác định sử dụng COM1

PortOpen:

Đặt trạng thái hay kiểm tra trạng thái đóng / mở của cổng nối tiếp. Nếu dùng thuộc

tính này để mở cổng nối tiếp thì phải sử dụng trước 2 thuộc tính Settings và CommPort. Cú

pháp:

MSComm1.PortOpen = True | False

Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồng thời xoá

nội dung của các bộ đệm truyền, nhận.

VD: Mở cổng COM1 với tốc độ truyền 9600 bps

MSComm1.Settings = "9600,N,8,1"

MSComm1.CommPort = 1

MSComm1.PortOpen = True

Các thuộc tính nhận dữ liệu:

Input: nhận một chuỗi ký tự và xoá khỏi bộ đệm. Cú pháp:

InputString = MSComm1.Input

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

Phạm Hùng Kim Khánh Trang 59

Thuộc tính này kết hợp với InputLen để xác định số ký tự đọc vào. Nếu InputLen = 0

thì sẽ đọc toàn bộ dữ liệu có trong bộ đệm.

InBufferCount: số ký tự có trong bộ đệm nhận. Cú pháp:

Count = MSComm1.InBufferCount

Thuộc tính này cùng dược dùng để xoá bộ đệm nhận bắng cách gán giá trị 0.

MSComm1.InBufferCount = 0

InBufferSize: đặt và xác định kích thước bộ đệm nhận (tính bằng byte). Cú pháp:

MSComm1.InBufferCount = NumByte

Giá trị măc định là 1024 byte. Kích thước bộ đệm này phải đủ lớn để tránh tình trạng

mất dữ liệu.

VD: Đọc toàn bộ nội dung trong bộ đệm nhận nếu có dữ liệu

MSComm1.InputLen = 0

If MSComm1.InBufferCount <> 0 Then

InputString = MSComm1.Input

End If

Các thuộc tính xuất dữ liệu:

Bao gồm các thuộc tính Output, OutBufferCount và OutBufferSize, chức năng

của các thuộc tính này giống như các thuộc tính nhập.

CDTimeout:

Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) từ lúc phát hiện sóng mang

cho đến lúc có dữ liệu. Nếu quá khoảng thời gian này mà vẫn chưa có dữ liệu thì sẽ gán

thuộc tính CommEvent là CDTO (Carrier Detect Timeout Error) và tạo sự kiện OnComm.

Cú pháp:

MSComm1.CDTimeout = NumTime

DSRTimeout:

Xác định thời gian chờ tín hiệu DSR trước khi xảy ra sự kiện OnComm.

CTSTimeout:

Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) đợi tín hiệu CTS trước khi

đặt thuộc tính CommEvent là CTSTO và tạo sự kiện OnComm. Cú pháp:

MSComm1.CTSTimeout = NumTime

CTSHolding:

Xác định đã có tín hiệu CTS hay chưa, tín hiệu này dùng cho quá trình bắt tay bằng

phần cứng (cho biết DCE sẵn sàng nhận dữ liệu), trả về giá trị True hay False.

DSRHolding:

Xác định trạng thái DSR (báo hiệu sự tồn tại của DCE), trả về giá trị True hay False.

CDHolding:

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

Phạm Hùng Kim Khánh Trang 60

Xác định trạng thái CD, trả về giá trị True hay False.

DTREnable:

Đặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE. Cú pháp:

MSComm1.DTREnable = True | False

RTSEnable:

Đặt hay xoá tín hiệu RTS để yêu cầu truyền dữ liệu đến DTE. Cú pháp:

MSComm1.RTSEnable = True | False

NullDiscard:

Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm). Cú pháp:

MSComm1.NullDiscard = True | False

SThreshold:

Số byte trong bộ đệm truyền làm phát sinh sự kiện OnComm. Nếu giá trị này bằng 0

thì sẽ không tạo sự kiện OnComm. Cú pháp:

MSComm1.SThreshold = NumChar

HandShaking:

Chọn giao thức bắt tay khi thực hiện truyền dữ liệu. Cú pháp:

MSComm1.HandShaking = Protocol

Các giao thức truyền bao gồm:

Protocol Giá trị Mô tả

ComNone

ComXon/Xoff

ComRTS

ComRTSXon/Xoff

0

1

2

3

Không băt tay (mặc định)

Bắt tay phần mềm (Xon/Xoff)

Bắt tay phần cứng (RTS/CTS)

Bắt tay phần cứng và phàn mềm

CommEvent:

Trả lại các lỗi truyền thông hay sự kiện xảy ra tại cổng nối tiếp

Các sự kiện:

Sự kiện Giá trị Mô tả

ComEvSend

ComEvReceive

ComEvCTS

ComEvDSR

ComEvCD

1

2

3

4

5

Đã truyền ký tự

Khi có ký tự trong bộ đệm nhận

Có thay đổi trên CTS (Clear To Send)

Có thay đổi trên DSR (Data Set Ready)

Có thay đổi trên CD (Carrier Detect)

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

Phạm Hùng Kim Khánh Trang 61

ComEvRing

ComEvEOF

6

7

Phát hiện chuông

Nhận ký tự kết thúc file

Các lỗi truyền thông:

Lỗi Giá trị Mô tả

ComBreak

ComCTSTO

ComFrame

ComOver

ComCDTO

ComRxOver

ComRxParity

ComTxFull

1001

1002

1004

1006

1007

1008

1009

1010

Nhận tín hiệu Break

Carrier Detect Timeout

Lỗi khung

Phần cứng không đọc ký tự trước khi gởi ký tự kế

Carrier Detect Timeout

Tràn bộ đệm nhận

Lỗi parity

Tràn bộ đệm truyền

5.3.3. Sự kiện OnComm

Sự kiện OnComm xảy ra bất cứ khi nào giá trị của thuộc tính CommEvent thay đổi.

Các thuộc tính RThreshold và SThreshold = 0 sẽ cấm sự kiện OnComm khi thực hiện nhận

hay gởi dữ liệu. Thông thường, SThreshold = 0 và RThreshold = 1.

Một chương trình truyền nhận đơn giản thực hiện bằng cách nối chân TxD với RxD

của cổng COM1 (loopback). Phương pháp này dùng để kiểm tra cổng nối tiếp.

Thuộc tính cơ bản của cổng nối tiếp:

Hình 3.23 – Các thuộc tính cơ bản của MSComm

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

Phạm Hùng Kim Khánh Trang 62

Cửa sổ chương trình thực thi:

Hình 3.24 – Cửa sổ chương trình loopback

Chương trình nguồn:

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

Textbox chứa

các ký tự gởi

Textbox chứa

các ký tự nhận

Đối tượng

MSComm

Yêu cầu truyền

dữ liệu

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

Phạm Hùng Kim Khánh Trang 63

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

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

Phạm Hùng Kim Khánh Trang 64

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

5.4. Giao tiếp với hệ DAQ

Khi thực hiện giao tiếp với vi điều khiển, ta phải dùng thêm mạch chuyển mức logic

từ TTL 232 và ngược lại. Các vi mạch thường sử dụng là MAX232 của Maxim hay

DS275 của Dallas. Mạch chuyển mức logic mô tả như sau:

Hình 3.25 – Mạch chuyển mức logic TTL RS232

R1IN13

R2IN

8

T1IN11

T2IN

10

C+1

C1-3

C2+4

C2-5V+

2

V-6

R1OUT12

R2O

UT

9

T1OUT14

T2O

UT

7

MAX232594837261

DB9

C25

10u

C2610u

C2710u

VCC

C2810u

C2910u

TxD

RxD

_PC

_PC

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

Phạm Hùng Kim Khánh Trang 65

Tuy nhiên, khi sử dụng mạch chuyển mức logic dùng các vi mạch thì đòi hỏi phải

dùng chung GND giữa máy tính và vi mạch có khả năng làm hỏng cổng nối tiếp khi xảy

ra hiện tượng chập mạch ở mạch ngoài. Do đó, ta có thể dùng thêm opto 4N35 để cách ly về

điện. Sơ đồ mạch cách ly mô tả như sau:

Hình 3.26 – Mạch chuyển mức logic TTL RS232 cách ly

Khi giao tiếp, vi điều khiển chính là một DTE nên sẽ nối RxD của máy tính với TxD

của vi điếu khiển và ngược lại. Mạch kết nối đơn giản giữa vi điều khiển và máy tính như

sau:

4.7K

TxD

1 6

2

5

4

4N35

16

2

5

4

4N35

1K

VCC

4.7K

68K

RxD_PCRxD_PC

TxD_PC

594837261

2.2K

RTS

RxD

VCC

DTR

.

SW DIP-8

123456789

330

R1IN13

R2

IN8

T1IN11

T2

IN10

C+1

C1-3

C2+4

C2-5V+

2

V-6

R1OUT12

R2

OU

T9

T1OUT14

T2

OU

T7

MAX232594837261

10u

C2610u

C2710u

VCC

C2810u

C2910u

RST9

XTAL218XTAL119

PSEN29 ALE/PROG30

EA/VPP31

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P2.0/A821

P2.1/A922

P2.2/A1023

P2.3/A1124

P2.4/A1225

P2.5/A1326

P2.6/A1427

P2.7/A1528

P3.0/RXD10

P3.1/TXD11

P3.2/INT012

P3.3/INT113

P3.4/T014

P3.5/T115

P3.6/WR16

P3.7/RD17

P0.0/AD039

P0.1/AD138

P0.2/AD237

P0.3/AD336

P0.4/AD435

P0.5/AD534

P0.6/AD633

P0.7/AD732

AT89C51

11.059MHz

33p

C31

VCC

1 274LS04

3 474LS04

5 674LS04

9 874LS04

11 1074LS04

13 1274LS04

1 274LS04

VCC

3 474LS04

123456789

330

LED

LED

LED

LED

LED

LED

LED

LED

Hình 3.27 – Kết nối với DAQ

Ph

ạm

ng K

im K

nh

T

ran

g 2

0

i liệu

Lậ

p trìn

h h

ệ thố

ng

C

ơn

g 4

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

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

Chương trình nguồn cho vi điều khiển AT89C51:

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

Giao diện của chương trình trên máy tính:

Hình 3.28 – Chương trình giao tiếp với vi điều khiển

Chương trình nguồn:

VERSION 5.00

Object = "{648A5603-2C6E-101B-82B6-

000000000014}#1.1#0"; "MSCOMM32.OCX"

Begin VB.Form Form1

Caption = "Microcontroller

Interface Example"

ClientHeight = 4665

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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&

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

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

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)

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

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

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

5.5. Chuẩn RS-485

Chuẩn RS232 dùng đường truyền không cân bằng vì các tín hiệu lấy chuẩn là

GND chung nên dễ bị ảnh hưởng của nhiễu làm tốc độ và khoảng cách truyền bị giới

hạn. Khi muốn tăng khoảng cách truyền, môt phương pháp có thể sử dụng là dùng 2

dây truyền vi sai vì lúc này 2 dây có cùng đặc tính nên sẽ loại trừ được nhiễu chung.

Hai chuẩn được sử dụng là RS422 và RS485 nhưng thông thường sử dụng RS485.

Điện áp vi sai yêu cầu phải lớn hơn 200mV. Nếu VAB > 200 mV thì tương ứng với

logic 1 và VAB < -200 mV tương ứng với logic 0. Chuẩn RS485 sử dụng hai điện trở

kết thúc là 120 tại hai đầu xa nhất của đường truyền và sử dụng dây xoắn đôi.

Hình 3.29 – Chuẩn giao tiếp RS422

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

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

Hình 3.30 – Chuẩn giao tiếp RS485

5.5.1. Các đặc tính kỹ thuật:

Đặc tính RS422 RS485

Số thiết bị truyền 1 32

Số thiết bị nhận 10 32

Chiều dài cable cực đại 1200m 1200m

Tốc độ truyền cực đại (từ 12 – 1200m) 10Mps – 100Kbps 10Mps – 100Kbps

Điện áp cực đại tại ngõ ra thiết bị truyền -0.25V 6V -7V 12V

Điện áp ngõ vào thiết bị nhận -10V 10V -7V 12V

5.5.2. Các chế độ truyền:

Bán song công

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

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

Song công:

5.5.3. So sánh giữa RS232 và RS485:

RS232 RS485

Chế độ hoạt động Đơn Vi sai

Tổng số bộ điều khiển và

thu trên 1 dây

1 bộ điều khiển (driver) + 1

bộ thu (receiver)

32bộ điều khiển (driver) +

32 bộ thu (receiver)

Chiều dài cáp tối đa 15m 1200m

Tốc độ tối đa 20 Kbps/15m 10Mbps/12m

1Mbps/120m

100Kbps/1.2km

Mức tín hiệu ngõ ra có tải 5 15V 1.5V

Mức tín hiệu ngõ ra không

tải 25V 6V

Trở kháng của bộ điều

khiển 3 K - 7 K 54

Phạm vi điện áp bộ thu 15V -7V – 12V

Độ nhạy bộ thu 3V 200 mV

Trở kháng bộ thu 3 K - 7 K 12 K

Đối với chuẩn RS232, khoảng cách truyền không cho phép đi xa nên khi muốn

thực hiện truyền ở khoảng cách xa thì phải chuyển từ RS232 sang chuẩn RS485 để

truyền đi và sau đó chuyển từ RS485 sang RS232 để máy tính có thể nhận dạng được.

Sơ đồ mạch chuyển đổi từ RS232 sang RS485 và ngược lại mô tả như sau:

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

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

Hình 3.31 – Chuyển đổi từ RS232 sang RS485 và ngược lại

RO1

DI4

RE2DE3

A6

B7

MAX485

120

120

VCC

12345678

CON8

R1IN13

R2

IN8

T1IN11

T2

IN10

C+1

C1-3

C2+4

C2-5V+

2

V-6

R1OUT12

R2

OU

T9

T1OUT14

T2

OU

T7

MAX232594837261

DB9 10u

10u

10u

VCC

10u

10u

RO1

DI4

RE2 DE3

A6

B7

MAX485

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

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

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

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

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

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)

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.

MTU

Outputs to Other Devices

Inputs from Operator

Outputs to RTU Inputs from RTU

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

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

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.

RTU

Outputs to Field Devices

Inputs from Field Devices

Outputs to MTU Inputs from MTU

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

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

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

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.

IOS

HDC APPS GW

HMI

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

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

- 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ý

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

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

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.

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

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

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

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

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

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.

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

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

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).