khi đọ ệu này, nế ệ ặ ộ xin hãy thông báo ...mientayvn.com/dien...
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 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 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
Tà
i liệu
DA
Q
Ch
ươ
ng 3
Tra
ng
20
GV
: Ph
ạm
Hù
ng K
im K
há
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
Tà
i liệu
DA
Q
Ch
ươ
ng 3
Tra
ng
20
GV
: Ph
ạm
Hù
ng K
im K
há
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
Hù
ng K
im K
há
nh
T
ran
g 2
0
Tà
i liệu
Lậ
p trìn
h h
ệ thố
ng
C
hư
ơ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).