Professional Documents
Culture Documents
1/ TÍN HIỆU :
Trong quá trình đo các thông số của các thí nghiệm vật lý, hoá học hay sinh học,... (các đại
lượng trong tự nhiên), Người ta thường biến đổi các đại lượng không điện thành các đại lượng
điện nhờ các bộ cảm biến (sensor) để tận dụng được các tính năng ưu việt của các tín hiệu điện (
phát, truyền, thu nhận và xử lý một cách thuận tiện). Các tín hiệu từ bộ cảm biến ( đặc trưng cho
thông tin) được truyền vào các bộ thu thập thông tin rồi được mã hoá và truyền qua kênh thông
tin, sau đó được thu nhận lại, giải mã và xử lý để tái tạo lại các dạng tín hiệu gốc cung cấp các
thông tin về diễn biến của hiện tượng cần đo. Quá trình biến đổi, mã hoá, truyền tin lại bị ảnh
hưởng của các phần tử nhiễu (tạp âm) từ môi trường ảnh hưởng làm tín hiệu kém trung thực. Do
đó quá trình xử lý tín hiệu cần thiết để khôi phục lại dạng gần nhất của tín hiệu gốc ban đầu.
Trước đây các tín hiệu thường được xử lý bằng kỹ thuật tương tự (analog). Nhưng ngày nay việc
phát triển của các máy tính cá nhân (PC) khiến cho việc áp dụng các kỹ thuật xử lý tín hiệu số
ngày càng được sử dụng rộng rãi.(DSP). Kỹ thuật xử lý số cho phép thực hiện những công việc
xử lý phức tạp nhất mà vẫn đảm bảo được tính mềm dẻo cao nhất (điều mà kỹ thuật xử lý tín
hiệu tương tự không thể làm được).
Tín hiệu : Là biểu hiện vật lý của thông tin (information). các thông tin xuất hiện từ một quá
trình nào đó trong tự nhiên. Các thông số của tín hiệu có thể thay đổi theo thời gian và nhiều đại
lượng khác.
Tín hiệu có thể là các đại lượng vật lý không điện ( áp suất, nhiệt độ, độ sáng, từ thông, độ pH)
và cũng có thể là các đại lượng điện ( hiệu thế mV ở hai đầu cặp nhiệt điện,... ). Nhưng để thực
hiện được các kỹ thuật xử lý số người ta phải biến đổi tín hiệu từ các đại lượng không điện thành
các đại lượng điện trong khi tiến hành quá trình đo. vì thế ở đây ta coi rằng tín hiệu là tín hiệu
điện.
14
Tín hiệu liên tục : Là tín hiệu mà sự thay đổi của nó theo thời gian và biên độ là liên tục
Tín hiệu rời rạc : Là tín hiệu mà biên độ của nó chỉ xác định trong những khoảng thời gian xác
định.
Các tín hiệu tác dụng vào đầu vào và đầu ra của thiết bị đo tuỳ thuộc vào đặc tính của tín hiệu
mà có thể chia thành bốn loại như sau :
- Tín hiệu tương tự (analog signal) : Là tín hiệu liên tục cả về biên độ lẫn thời gian.
- Tín hiệu được lượng tử hoá (Quantified Signal) : Là tín hiệu liên tục theo thời gian nhưng
biên độ được lượng tử hoá.
- Tín hiệu rời rạc (Discrete Time Signal) : Là tín hiệu được lấy rời rạc theo thời gian nhưng
biên độ vẫn giữ liên tục. Hàm tín hiệu chỉ có giá trị xác định ở những thời điểm xác định. Ta có
thể thu nhận được tín hiệu rời rạc bằng cách lấy mẫu tín hiệu tương tự (sampling). Vì vậy tín
hiệu rời rạc còn được gọi là tín hiệu được lấy mẫu (sampled signal).
- Tín hiệu số (Digital Signal) : Là tín hiệu lấy rời rạc theo thời gian và biên độ cũng được lượng
tử hoá.
15
xác, máy tính có thể điều khiển một tiến trình trên cơ sở thu nhận và xử lý các tín hiệu phản hồi
từ tiến trình đó.
Ngày nay có thể sử dụng các thiết bị khác nhau cho mục đích này :
- Thiết bị ghép nối theo giao diện RS 232
- Các board thu thập số liệu cắm thêm
- Thiết bị giao diện IEEE-488
- Thiết bị VXI
Với các ứng dụng khác nhau các thiết bị ghép nối khác nhau được sử dụng, tất nhiên là cũng có
sự khác biệt về đặc tính và giá thành giữa các thiết bị khác nhau.
Các thiết bị đơn giản như cặp nhiệt điện, đồng hồ đo tốc độ, thiết bị tự ghi dữ liệu có thể được
thực hiện qua ghép nối RS-232. Chuẩn ghép nối nối tiếp này được sử dụng khi cần
nối thiết bị ngoại vi với máy tính qua một khoảng cách dài. Ghép nối nối tiếp truyền dữ liệu từng
bít một qua một đường dây tín hiệu tới một máy tính khác. Do đầu cắm RS-232 hầu như là
chuẩn cho tất cả các máy tính PC vì vậy không cần thêm các phần cứng bổ xung. Về nguồn gốc,
RS-232 được thiết kế để nối các máy tính (hay thiết bị đầu cuối) với các MODEM ( nối với
đường điện thoại).
Cuộc cách mạng các bộ chuyển đổi tương tự số và các thiết bị điều kiện hoá tín hiệu khiến
cho các board thu thập dữ liệu cắm thêm trở nên phổ biến. Giả sử với yêu cầu đo với giải
điện áp từ -5v đến +5V độ chính xác yêu cầu là không lớn hơn 1 : Board thu thập dữ liệu
2048 bít là một sự lựa chọn tự nhiên. Trên một board thường tích hợp nhiều chức năng :
chuyển đổi AD, chuyển đổi DA, vào ra I/O, các hoạt động đếm, định thời gian. Các board
thu thập dữ liệu cắm thêm cung cấp nhiều khả năng mềm dẻo hơn so với một thiết bị đơn
độc.
Giao diện ghép nối IEEE- 488 còn được biết đến như GPIB (Bus ghép nối mục đích chung)
thiết kế cho việc sử dụng với các ứng dụng đòi hỏi tốc độ truyền dữ liệu cao (cỡ
1MByte/giây). IEEE – 488 định nghĩa cả các liên kết phần cứng lẫn giao thức lệnh để kết nối
thiết bị. Đa số các thiết bị như các giao động ký nhớ và các máy phát chức năng đều có
giao diện IEEE-488 đi kèm.
BUS VXI ra đời năm 1987, là một mặt bằng phát triển cho các ứng dụng thời gian thực tốc
độ cao. Một trong các phương án khả thi là các máy tính nhúng trong các khung VXI
(frame). CPU, thiết bị đo và bộ nhớ cũng tích hợp luôn trong các khung VXI và ghép nối
trực tiếp qua các BUS VXI 32 bít. Tốc độ truyền dữ liệu cực đại cỡ 20MByte / giây.
Để liên lạc giữa các máy tính và thiết bị ngoại vi người ta thực hiện các nghi thức móc nối
(handshaking).
Nhằm mục đích hỗ trợ cho việc điều kiện hoá tín hiệu , các thiết bị đặc biệt (gọi là front-
end) được sử dụng kết hợp với các board thu thập dữ liệu nhằm cách ly máy tính với thiết bị
đo (về mặt điện để tránh hỏng hóc). Các thiết bị front-end này thường sẵn có nguồn cung
cấp, bộ khuyếch đại ( hai bộ khuyếch đại với các lối vào vi sai ) và các bộ lọc thấp ( hai bộ).
Nhiều đầu nối 2mm nối với card ghép nối.
Trong các kết nối song song hai chiều giữa thiết bị đo và máy tính. Các máy tính thông
thường không có sẵn các cổng kết nối song song như vậy. Tuy nhiên người ta có thể sử
dụng các bộ tiếp hợp riêng trên các khe cắm mở rộng,Ví dụ như các board ghép nối
16
UIA/UIB thực hiện các kênh I/O hai chiều, chuyển đổi AD và một vài chức năng bổ xung
khác. ( phòng thí nghiệm máy tính – Trung tâm ITIMS)
Card ghép nối UIA/UIB hỗ trợ nhiều khả năng đo, nó có bốn lối vào tín hiệu tương tự.
Các bộ chuyển đổi tương tự / số nối liền khoảng cách giữa thế giới tín hiệu số và tương tự.
Một hệ thống tương tự / số điển hình lối vào hệ thống nhận các kích thích vật lý, hoá học
hay sinh học; bộ chuyển đổi chuyển những tín hiệu này ra dạng tín hiệu điện tương tự
(sensor áp suất, nhiệt độ, ánh sáng ...). các tín hiệu được sinh ra do bộ chuyển dổi thường
tương đối nhỏ và cần được khuyếch đại lên ( đến mức điện áp yêu cầu ) trước khi được
chuyển đổi sang dạng tín hiệu số tương đương. Các giá trị số đại diện cho tín hiệu sau đó sẽ
được các máy tính hay bộ vi xử lý lưu trữ hay xử lý rồi được tái tạo lại thành các tín hiệu
điện nhờ bộ chuyển đổi số / tương tự DAC.
17
Máy tính số : Là một thiết bị thu thập và xử lý tín hiệu số, trong khi các tín hiệu đo từ các quá
trình gồm cả tín hiệu tương tự. Vì vậy sơ đồ khối đầy đủ của việc xử lý tín hiệu bằng tính số
trong các thực nghiệm như sau :
Tín hiệu tương tự từ thực nghiệm đưa vào bộ lọc thông thấp LF1, được lấy mẫu qua bộ trích và
giữ mẫu S&H (sample and hold) thành tín hiệu rời rạc. Sau đó được đưa qua bộ biến đổi tương
tự số ADC (Analog – digital-converter) để thành tín hiệu số và đưa vào máy tính PC để xử lý.
Tín hiệu số sau khi đã xử lý được biến đổi trở lại thành tín hiệu tương tự qua bộ biến đổi số
tương tự DAC (Digital-analog-converter) rồi lại đưa qua bộ lọc thông thấp LF2 để thành tín hiệu
lối ra. Tác dụng của hai bộ lọc thấp LF1 và LF2 sẽ được nói rõ sau. Tuy nhiên tín hiệu số khi
đưa vào máy tính xử lý không nhất thiết phải lấy ra từ ADC mà có thể được lấy trực tiếp từ các
quá trình số khác. Cũng như vậy, tín hiệu số sau khi xử lý không bắt buộc phải qua bộ biến đổi
DAC để chuyển đổi lại thành tín hiệu tương tự mà có thể được lấy ra ngay để điều khiển các quá
trình số khác.
Thiết bị chuyển đổi những tín hiệu tương tự biến đổi liên tục từ các thiết bị theo dõi các điều
kiện như sự chuyển động, nhiệt độ, cường độ sáng, âm thanh ...thành các số nhị phân dùng trong
máy tính. Có thể là một chip đơn hay một mạch điện thiết kế cùng một chíp gọi là bộ chuyển đổi
tương tự số (Analog Digital Converter).
Vai trò của các bộ chuyển đổi là chuyển dạng này của năng lượng ( ánh sáng, nhiệt độ ... ) ra
thành các dạng khác ( tín hiệu điện ).
18
Điều khiển là một vai trò quan trọng trong ghép nối máy tính với ngoại vi, việc điều thể hiện ở
khả năng lập trình mềm dẻo các câu lệnh máy tính để hệ thống tự động làm những công việc
nhất định (mà không có sự can thiệp của con người). Cùng với hệ thu thập dữ liệu, hệ xử lý, điều
khiển hệ thống là thành phần cốt lõi của các robot điều khiển tự động công nghiệp.
19
điều khiển motor của hệ thống sưởi trung tâm (bật/tắt)
Quạt (bật/tắt)
Cungcấp gas (bật/tắt)
Đánh lửa điện (bật/tắt)
CUng cấp ôxy (bật/tắt)
Cung cấp nước (bật/tắt)
Lựa chọn điện áp
Lựa chọn tần số
Mô tơ bước (bật/tắt)
Câu hỏi :
- Nêu một số ví dụ về điều khiển hệ thống
- Hệ phản hồi là gì, ví dụ ?
Khái niệm cơ sở của DAC là các bít được dùng để bật ON hay tắt OFF các mức thế hay dòng
trọng số. Chúng được cộng thêm vào và lối ra sẽ là mức tương tự tương đương với giá trị số
lối vào. Bít nhiều ý nghĩa nhất có trọng số bằng nửa của toàn thang ... Một DAC cộng
thếđơn giản biểu diễn trên hình vẽ :
Để tiến hành ghép nối, card ghép nối hay các board ghép nối là phần cứng thiết yếu đóng vai trò
trung gian, cửa ngõ giữa máy tính và các thiết bị ngoại vi, có thể là một thiết bị chấp hành, một
thiết bị đo,...card hay board ghép nối có thể được cài đặt (install) trong máy tính cá nhân hay qua
các giao tiếp thông thường của máy tính như cổng usb, cổng nối tiếp COM hay cổng máy in
20
song song LPT. Trong bài học này chúng ta sẽ tìm hiểu một card ghép nối chuyên dụng dùng
trong các bài thực tập tại ITIMS, card ghép nối vạn năng UIB (Univesal Inteface Bus)
Card UIA / UIB được thực hiện tại khoa Vật Lý trường Đại học tổnghợp Amsterdam ( Hà lan).
Khoa này đã thực hiện các phát triển ứng dụng các thực nghiệm trên cơ sở máy tính rất sớm (từ
năm 1982). Hợp tác với các kỹ thuật viên, nhà vật lý chuyên gia đào tạo và giáo viên, thiết kế
đầu tiên của UIA ra đời năm 1987. Từ năm 1988 card ghép nối vạn năng UIA đã được sử dụng
trong hàng trăm trường học tại Hà lan. Bộ tương hợp UIA đã trở thành chuẩn cho việc liên kết
các thí nghiệm với các máy tính PC (nền DOS).
Card mở rộng UIB là version cải tiến của UIA. cải tiến quan trong nhất là ở các lối vào tương tự.
Bộ chuyển đổi ADC kiểu 12 bít ( 8 bít trong UIA), chứa các chức năng trích và giữ mẫu nhanh
hơn rất nhiều. Giải điện áp lối vào cũng được cải thiện đối với mức thế âm. Nhữnng cải tiến này
làm tăng tính ứng dụng của các bộ tương hợp này
21
lập với đồng hồ hệ thống của máy tính.
- ADS7803 và tiền khuyếch đại : CHuyển đổi tương tự số với bốn lối vào tín hiệu tương tự.
Các kênh 1 và 2 có thể hoạt động với giải điện áp từ –5 đến +5V, với các kênh 3 và 4 giải
điện áp vào có thể đặt qua JUMPER từ –1 đên +1V hay –2V đến +2V; -5 V đến +5V và -10V
đến +10V. Quá trình s.µ chuyển đổi một điện áp tương tự ra mã số 12 bít mất khoảng 10
22
MODE đơn cực là MODE thường dùng, ý nghĩa của nó là từ điều khiển quyết định chọn kênh
chuyển đổi ADC. Sau khi viết từ điều khiển, quá trình s.µ chuyển đổi được tự động bắt đầu.
Kết quả có thể được đọc sau 40 Trong MODE này chu kỳ giữa một kênh xác định và đất
tương tự (AGND) được chuyển đổi bởi ADC.
Với trường hợp outportb(0x308) = 4; // 0000 0100 thế của kênh 1 ( tương đối so với
AGND) được chuyển đổi thành giá trị byte tương đương.
Trong MODE vi sai, ADC chuyển đổi chu kỳ giữa hai kênh ( điẹn áp so sánh ).
MODE giả vi sai có thể nói chung thường không được sử dụng chính xác, vì sự khác biệt về
độ nhạy giữa các kênh.
UIB : ADS7803 :
Hình vẽ :
ADS7803 chứa bộ chuyển đổi ADC 12 bít với mạch lấy mẫu tín hiệu và giữ mẫu trực tiếp
trước quá trình chuyển đổi. Đây là một bộ MUTIPLEXER 4 kênh vào tươngtự. ADS7803 dùng
phương pháp xấp xỉ liên tiếp, mức điẹn s). Phầnµ áp vào được số hoá thành 12 bước xấp xỉ
liên tiếp ( 12x0,5 cứng cho phép lấy mẫu ở tốc độ 100kHz. Tín hiệu vào với tần số đên
50kHz có thể đo được.
Khoảng thế vào của ADS7803 là 0 đến 5V. Mỗi lối vào đều được tiền khuyếch đại. Với kênh
1 và 2 của lối vào cáp 9 chân giải điện áp từ –5V đến 5V. Giải điện áp cho kênh 3 và 4 là
được lựa chọn bằng JUMPER từ –1V đên + 1V hay –2V đến + 2V ; -5 V đến + 5V hoặc –10V
đến + 10V). Các lối vào đều có trở kháng 1Ω 00K
Mức thế thấp nhất trong giải điện áp vào là nhận giá trị số là 0 trong khi mức cao nhất
(mức trên) ở giá trị số là 4095.
Khởi tạo quá trình chuyển đổi nhờ sườn lên của lối vào khởi động (Sart Conversion) với một
tín hiệu hợp lệ từ lối vào kênh giải mã và đường chọn chip (CS). Kênh chuyển đổi tương tự
được chọn để lấy mẫu tín hiệu mất 5 chu kỳ xung nhịp. Một phép chuyển đổi xấp xỉ liên tiếp
sẽ tiến hành trong chu kỳ 6 đến 17.
Đọc dữ liệu : Dữ liệu từ ADS7803 được đọc trong hai byte : byte thấp ( địa chỉ 0x308) và
byte cao ở 0x309. Các byte này có thể đọc theo bất kỳ thứ tự nào. Bít 7 của byte cao ADC
biểu diễn trạng thái của tiến trình chuyển đổi. Nếu =’1’ thì quá trình chuyển đổi đang được
thực hiện, nếu là ‘0’ thì quá trình chuyển đổi đã hoàn tất.
MODE chốt lối ra :Trong MODE này dữ liệu từ quá trình chuyển đổi chỉ được chốt vào hai
chốt lỗi ra 8 bít sau khi quá trình chuyển đổi hoàn thành và được giữ ở đó cho đến khi quá
trình chuyển đổi tiếp theo hoàn tất. Dữ liệu kết quả của quá trình chuyển đổi còn hợp lệ cho
trong khi quá trình chuyển đổi tiếp theo đang thực hiện. Điều này cho phép đọc dữ liệu cũ
ngay cả khi một quá trình chuyển đổi mới tiếp theo đã bắt đầu. Làm cho hệ thống nhanh
hơn.
Mode chốt lối ra kích hoạt nhờ việc viết số ‘1’ ra bít 0 của thanh ghi chức năng đặc biệt của
ADC (0x30B)
MODE trong suốt (Transparent) : Trong MODE này thanh ghi xấp xỉ liên tiếp là trong suốt Ví
dụ 4 bít nhiều ý nghĩa nhất có thể được đọc sau khi kết thúc chu kỳ thứ 9 của quá trình
chuyển đổi. Dữ liệu 12 bít đầy đủ có thể sau khi EOC chuyển về ‘0’. Lúc bật nguồn bộ
23
chuyển đổi đặt ở MODE trong suốt theo mặc định.
Do cách thực hiện của ADS7803 trong Card UIB mà quá trình chuyển đổi có thể được thực
hiện ở hai cách khác nhau :
- Chuyển đổi bằng lệnh chương trình : Khi một chỉ thị được viết ra địa chỉ 0x308 (hay
0x309) khởi động một chu kỳ của kênh được chọn, lấy mẫu và chuyển đổi. Các đường dữ
liệu D0 và D1 qui định kênh muốn chuyển đổi, ví dụ : outportb(0x308,1) khởi động quá
trình chuyển đổi ở kênh 2. ( số kênh là 1 .. 4 tương ứng với các mã 0 .. 3). Cách này khởi
tạo quá trình chuyển đổi được chọn khi bít #2 của thanh ghi MODE lấy mẫu ở địa chỉ 0x30C
bằng 0. Đây là thiết lập mặc định sau khi máy tính khởi động. ( hoặc sau một RESET cứng)
s) từ bộ đếm 0µ - Chuyển đổi khởi tạo bằng một xung âm ( đặc trưng 1 (PIT). Mode này
được chọn nếu bít #2 của thanh ghi MODE lấy mẫu ở địa chr 0x30C đặt là cao. Bít #0 và #1
định nghiã kênh được chọn. Ví dụ, sau lệnh outportb(0x30C,6); quá trình chuyển đổi ở kênh
3 được thực hiện (tuần tự) sau mỗi xung lối ra của bộ đếm 0.
Khuyếch đại OPAM đóng vai trò bộ đệm phối hợp trở kháng có độ trôi nhỏ và dòng dò nhỏ,
tốc độ cao. Bộ chuyển đổi DAC thứ nhất sử dụng hai bộ OPAM : một đóng vai trò đệm phối
hợp trở kháng nhờ điện trở phản hồi nội của DAC và cái kia khuyếch đại tổng để dịch tín
24
hiệu thành mức lưỡng cực. Một mạch dịch thế một chiều bổ xung dùng để thay đổi thế
offset của U6 với P2. Hệ số khuyếch đại của DAC0 có thể thay đổi bằng cách chọn đúng giá
trị điện trở cho R3, R7 và R9. Thường R9 sẽ là một ) và R3 không được nối. R7 là điện trở
chính xác caoΩ điện trở dây (0 10K (0.1%)
Điều chỉnh độ khuyếch đại của DAC1 không cần thiết trong khi các điện trở nội U9 được
dùng. ĐIện áp Offset có thể thay đổinhờ chiết áp P1.
Các khuyếch đại Burr Brown có thể được thay thế bằng các vi mạch TL051 rẻ tiền hơn và
hầu như có cùng đặc tuyến.
Lối ra của chuyển đổi DA có thể dùng với các tải trở kháng thấp, hay dẫn, nên nối thêm với
bộ khuyếch đại ngoài.
25
Lưu ý với card ghép nối UIA : các địa chỉ 0x309,0x30A và 0x30B tương đương với 0x308
( cũng tương tự với các giải địa chỉ khác)
Lưu ý với UIB : địa chỉ 0x30E tương đương với 0x30C, 0x30F tương đương với 0x30D ( và
tương tự cho các giải địa chỉ khác)
- JUMPER J4a và J4b cùng nhau xác định giải điện áp vào cho kênh 4 theo cùng cách diễn
tả với kênh 3
- JUMER J5 nối tín hiẹu xung nhịp 2MHz với bộ chuyển đổi AD. Nếu gỡ ra ADC sẽ sử dụng
đồng hồ xung nhịp nội riêng của nó. Quá trình chuyển đổi sẽ chậm hơn một chút, những
mức ồn có thể được hạn chế.
CÀI ĐẶT :
- Mở máy tính
- Chạm tay vào vỏ máy khoảng một phút để giảm tĩnh điện
- Tháo dây nguồn
- Gỡ vỏ máy
- Chèn card UIA/UIB vào khe cắm ISA còn trống trongmáy ( chú ý khoảng cách giữa các
card mở rộng tránh để chập)
- Vít nhẹ các ốc
- Lắp lại vỏ máy
ĐẦU NỐI :
-Đầu nối 9 chân :
26
1/ Lối vào kênh 1 (CH1)
UIA : 0- 5V
UIB : -5V – 5V
. trong nhiêu fthí nghiệmΩ Trở kháng vào của lỗi vào tương tự là 100K với UIA/UIB sẽ
không ảnh hưởng đến hệ thống. Giải điện áp vào được lượng tử hoá ra thành 256 mức
(UIA) và 4096 mức (UIB) điện áp bằng nhau.
2/ Lối vào kênh 3 (CH3)
UIA : 0 – 1V
UIB : giải điện áp tuỳ thuôc vào xác lập JUMPER
3/ Đất cho tín hiêu tương tự
4/ Đất cho tín hiệu số
5/ Lối vào xung nhịp cho bộ đêm 1
Lối vào CLOCK và GATE là các triger Schmitt, Hệ quả là không có các yêu cầu đặc biệt với
tốc độ chuyển mức logic cho các cổng
( Bộ đếm giảm di một mỗi lần chuyển từ mức thấp lên mức rồi về mức thấp ( xung dương))
Mức cao và thấp nghĩa là +5V và 0 V tương ứng(TTL). Trong thực tiễn các điện áp vào trên
+2.0V được xem như mức cao. dưới +0.8V xem như mức thấp. Với lối ra TTL: thấp nghãi là
dưới +0.4V và cao là trên +2.4V. Điện áp vào trên +5.5V và dưới –0.5V nên tránh, các
mứcc điện áp này có thể gây ra hư hỏng mạch điện.
6/ Lối vào cho kênh 2 (CH2)
UIA : 0- 5V
UIB : -5V – 5V
7/ Lối vào cho kênh 4 (CH4)
UIA : 0 – 1V
UIB : giải điện áp tuỳ thuôc vào xác lập JUMPER
8/ Điện áp ra 5V. Nguồn này bị giới hạn dòng cực đại 100mA (0.5W), có thể dùng cho một
số loại sensor
9/ Cổng vào GATE cho bộ đếm 1
Lỗi này cho phép hay huỷ bỏ quá trình đếm của bộ đếm 1
Cổng GATE có thể sử dụng để đo chu kỳ của một xung dương ( hay cả xung âm với UIB ).
Xung dương nghĩa là mức thế thay đổi từ mức thấp ( gần 0V) đến mức cao (gần 5V) và trở
về.
Hình vẽ :
Đầu nối 25 chân :
Tất cả các lối vào và ra là tương thích TTL. Lối ra được tải với 1 lối vào TTL, CLK – 0, CLK –
1 và GATE – 1 là các lối ào triger SCHMITT.
1-8/ Cảng A : cổng vào ra 8 bít có thể lập trình được
PAO là bít ít ý nghĩa nhất, giá trị 1 là cao; 0 nếu là thấp.
PA7 là bít nhiều ý nghĩa nhất. giá trị 128 nếu ở mức cao và 0 nếu là ở mức thấp
14-17 Các bít thấp cổng C (PC0 – PC3)
18 – 21
Các bít cao cảng C (PC4 – PC7)
Nửa cao và nửa thấp cảng C có thể lập trình riêng biệt cho đọc vào hay viết ra.
10/ Lối vào nhịp cho bộ đếm 0. Đếm xuống 1 mỗi xung duơng ( thấp – cao – thấp)
11/ Lối vào cổng GATE ch bộ đếm 0 ( mặc đinh là cao ). Hoạt động đếm bị cấm nếu cổng
nàybị đặt xuống mức thấp.
12/ Lỗi ra bộ đếm 0. Tính chất tuỳ thuộc vào xác lập cho MODE đếm.
13/ Lối ra cho bộ đếm 2
23/ Lối vào xung nhịp cho bộ đếm 1
24/ Lối vào cổng GATE cho bộ đếm 1
25/ Lỗi ra cho bộ đếm 1
9/ Đất
22/ Thế lối ra +5V, dòng cực đại là 100mA (0.5W) cho UIA và 200mA (1W) cho UIB.
27
Bảo vệ : Các card ghép nối UIA/UIB
- Tránh đưa những điện áp quá cao hay quá thấp (ngoài giải đo) đến các lối vào. Tránh các
phóng điện tĩnh điện với các đường tín hiệu nối trực tiếp.
- Các lối vào tương tựu có thể chịu được các điện thế giữa –30V và 30V
- các lối vào số không nên chịu các giá trị dưới –0.5V hay trên +5.5V.
- Thế lỗi vào là được giữ bởi các diod. Khả năng chịu đựng tuỳ thuộc vào dòng trên lối vào.
Các peaks điện áp từ nguồn cũng hạn chế nhờ các diod này
- Lối ra số cũng có thể chịu được sự ngắn mạch với đất trong một thời gian ngắn. Với các lối
ra điện áp ngắn mạch +5V nên tránh.
Lệnh code = code << 2; dịch tất cả các bít đi hai vị trí về phía trái, trong khi bít 0 và bít 1
trở thành 0. code << 2 tương đương với code * 4. Toán hạng dịch phải cũng hoạt động
tương tự : code >> 1 dịch các bít đi 1 vị rí sang phải còn bít 7 bằng 0
ví dụ :
17 & 7 =
0x17 & 0x07 =
0xFC | 0xC3 =
~ 0x55 =
6 >> 2 =
2 << 6 =
Kiểm tra bít : Giả sử muốn dùng máy tính để kiểm tra an toàn của một cửa ra vào ( ví dụ
phòng từ trường cao chẳng hạn ). Một thiết bị an toàn nối với cửa của phòng cao thế. Nhờ
các công tắc ở cửa ra vào ta có thể kiểm tra xem cửa có mở (‘1’) hay đóng (‘0’). Nối bít 2
với cổng vào tại địa chỉ 0x300. Trạng thái của bít 2 có thể được xác địnhnhờ dòng lệnh sau
đây :
door_is_open = inportb(0x300) & 4; // Dùng phép toán AND &
// xxxx xxxx & 0000 0100 = 0000 0x00
Kiểm tra bít thứ n có thể được thực hiện nhờ hàm sau
int test_bit_PPI_PORT_A(int bit_nrr)
{
return inportb(0x300) & (1 << bit_nr );
}
28
duy trì không đổi trong khi điều khiển bít 3. Có thể xây dựng được hàm như sau để điều
khiển quá trình :
magnet_control ( high_voltage, on)
Để thực hiện được các nhiệm vụ điều khiển và thu thập, xử lý dữ liệu một cách mềm dẻo linh
hoạt, không có cách nào khác hơn là sử dụng những thuật toán và ngôn ngữ lập trình cho phép
can thiệp đến phần cứng ngoại vi (cổng, cảng hay port). Bằng cách thay đổi chương trình, có thể
thay đổi các tác vụ hay nâng cấp tính năng mà không cần thay đổi thiết kế phần cứng. Việc lập
trình ghép nối mở ra những khả năng to lớn cho chúng ta trong việc thiết kế, ứng dụng môn học
vào thực tiện cuộc sống, công việc.
4.1/ VÀO RA SỐ SONG SONG : Xây dựng trên cơ sở vi mạch 82C55 PPI ( Progamable
29
Peripheral Inteface ).
16 đường I/O cho hai cổng 8 bít A và C được nối với jack cắm 25 chân trên card UIA/UIB.
Mỗi cổng có địa chỉ riêng. Việc gửi và nhận dữ liệu được thực hiện qua việc đọc và viết ra
địa chỉ cổng tương ứng. Có thể sử dụng cổng A cho cả việc vào và ra dữ liệu trong vài
MODE khác nhau. Trong khi đo cổng C được chia ra làm hai cổng 4 bít Pclower (nửa byte
thấp PC0 – PC3) và PC upper (nửa byte cao PC4 – PC7) có thể lập trình độc lập cho mỗi nửa
ở MODE đọc vào hay viết ra. Cổng C chỉ hoạt động ở một MODE. MODE hoạt động được lựa
chọn bằng cách viết từ điều khiển cho thanh ghi điều khiển. Thanh phần của từ điều khiển
được biểu diễn dưới đây :
Với card UIA/UIB, cổng B luôn được đặt ở MODE ra (MODE 0) vì nó được dùng để điều khiển
các công tắc mềm. ( giáo trình Tin học I phần II - phòng thí nghiệm máy tính – Trung tâm
ITIMS)
Ví dụ : outportb(0x303,145) // 1001 0001 sẽ đặt cổng A trong MODE 0 đọc vào , cổng B
MODE 0 viết ra và cổng C (thấp) MODE đọc vào và nửa cao MODE viết ra.
Riêng cổng C ( khi ở MODE viết ra) từng bít riêng biệt có thể được xác lập lên 1 hay về 0
( mà không ảnh hưởng tới các bít khác) bằng cách viết từ SET/RESET bít ( bít 7 luôn luôn
bằng 0) ra từ điều khiển.
Ví dụ :
outportb(0x303,6); // 0000 0110 đặt bít PC3 xuống thấp
outportb(0x303,7); // 0000 0111 đặt bít PC3 lên mức cao
30
31
32
4.1.1/ ĐỊNH DẠNG TỪ ĐIỀU KHIỂN CHO VIỆC ĐẶT / XOÁ BÍT CỔNG C
Các MODE PPI : Việc lập trình cho MODE ở cổng A tuỳ thuộc vào cách truyền dữ liệu với
thiết bị ngoại vi.
a/ MODE0 : Vào ra cơ sở :
- MODE 0 viết ra : Một byte được viết ra cổng và sẽ được chốt lại nghĩa là nó xuất hiện
trên kết nối với cổng đó và sẽ duy trì cho đến khi một byte mới được viết ra cổng đó.
- MODE 0 đọc vào : VIệc đọc trên một cổng sẽ cho biết giá trị của một byte hiện hành
trên cổng đó ( tại thời điểm đọc ).
Nếu chương trình sử dụng cổng A ở MODE 1 hay 2, cổng A sẽ dùng các tín hiệu móc nối.
Các đường tín hiệu móc nối này được mượn từ cổng C (khi đó cổng C không thể được dùng
ở MODE vào ra thông thường nữa ). ở MODE 0 cổng A không thực hiện việc móc nối nên các
bít ở cổng C đều có thể sử dụng ở hoạt động vào ra thông thường.
NGẮT:
Trong chương trình , trạng thái của đường INTR (PC3) có thể được kiểm tra liên tục ( thăm
dò) để biết có byte mới nào đựoc đọc vào hay viết ra cổng A không. Trong hầu hết trường
hợp, cách hiệu quả hơn là để 8255 PPI sinh ra ngắt. Đường INTR có thể được kích hoạt hay
không kích hoạt nhờ các triger INTE ( cho phép ngắt ). Hay là các công tắc mềm các đường
33
INTR của PPI có thể được nối với một trong các mức ngắt ( đường yêu caùa ngắt ) của máy
tính.
Cổng A dùng các flipflop INTE khác nhau cho lối vào và lối ra
Lối vào cổng A : INTE-A được bật/tắt bằng cách đặt bít SET/RESET PC4
Lối ra cổngA : INTE-A được bật hay tắt (SET/RESET) nhờ bít PC6
34
- Hai thanh ghi lối ra chốt giá trị đếm tức thời
- Một thanh ghi điều khiển và một đơn vị điều khiển điều khiển bộ đếm theo MODE được
chọn
- Một thanh ghi chốt trạng thái đệ đọc trạng thái hiện tại của bộ đếm.
Phần tử đếm (bộ đếm lùi có thể đặt lại được), một thanh ghi đếm (cất dữ liệu được viết vào
bộ đếm), một chốt dữ liệu lối ra, cất dữ liệu đọc ra từ bộ đếm và một đơn vị điều khiển
logic (điều khiển bộ đếm tuỳ theo mode lập trình ). Dưới những đIều kiện nhất định tuỳ
thuộc vào mode của bộ đếm, số đếm ban đầu được nạp vào phần tử đếm, sau đó bắt đầu
quá trình đếm lùi. Khi bộ đếm đạt đến giá trị 0 (N xung sau khi nạp giá trị N vào thanh ghi
đếm) đơn vị logic đIều khiển hoạt động tương ứng tuỳ thuộc vào mode lập trình. Phần tử
đếm đếm lùi đi 1 mỗi một xung nhịp trên lối vào nhịp, lối vào cổng (Gate) là lối vào điều
khiển. Chức năng của nó tuỳ thuộc vào mode lập trình. Các đường lối vào gate được treo
lên với các điện trở PullUp và mức logic nếu không nối là bằng 1. Mode bộ đếm được xác lập
bằng việc viết từ điều khiển đến thanh ghi điều khiển. Sau khi viết từ điều khiển, các byte
của số đếm ban đầu được viết lần lượt vào bộ đếm.
Chú thích:
CRM ,CRl : Thanh ghi đếm (dùng để lưu trữ dữ liệu được ghi lên bộ đếm).
CE : Phần tử đếm (Bộ đếm giảm dần để đồng bộ với những thiết lập được đặt trước).
OLM ,OLM : Chốt lối ra (Chứa dữ liệu được đọc từ bộ đếm).
Hình vẽ: Định dạng của công tắc chuyển mạch mềm ( Cổng B của PPI-8255A, địa chỉ
$301). Cổng B gồm 8 bit được xác định từ PB0-->PB7, dùng để xác lập chế độ kết nối cho
bộ đếm vào.
35
Khởi tạo bộ đếm : Việc khởi tạo bộ đếm được thực hiện nhờ viết một byte từ điều khiển ra
địa chỉ thanh ghi điều khiển bộ đếm PIT theo thứ tự ở bảng sau đây
Các bít 7 và 6 xác định bộ đếm nào sẽ được khởi tạo. Bít 4 và 5 xác định cách viết giá trị
khởi tạo cho bộ đếm xác định bởi các bít 7 và 6 nói trên., có thể viết một byte đơn ( cả
phần byte cao hoặc byte thấp) hay viết cả hai phần lần lượt lên bộ đếm đó. Các bít 3, 2, 1
xác định MODE đếm. Bít 0 qui định kiểu đếm là đếm nhị phân hay mã nhị thập phân (BCD –
Binary Coded Decimal)
36
• lệnh chốt bộ đếm (Bit 5,4 =00)
• Lệnh đọc lại bộ đếm (Bit 7,6 =11)
a/ Lệnh chốt bộ đếm: Khi được viết vào thanh ghi điều khiển, thì giá trị bộ đếm được chốt
vào thanh ghi lối ra và số liệu này có thể được giữ nguyên để chương trình đọc lại sau đó.
Lưu ý: phải đọc đủ 1 hoặc 2 byte , nếu không đọc đủ thì lệnh chốt tiếp theo sẽ bị bộ đếm
bỏ qua và giá trị đầu vẫn được giữ nguyên.
b/ Lệnh đọc lại bộ đếm: hoạt động giống như lệnh chốt bộ đếm nhưng nó cho phép chốt
giá trị của nhiều bộ đếm đồng thời, mỗi bộ đếm được chốt cho đến khi nó được đọc (hoặc là
bộ đếm được lập trình lại), cũng có thể chốt byte trạng thái, byte trạng thái thu được bằng
cách đọc bộ đếm đó.
Dữ liệu được chốt của một lệnh chốt hoặc lệnh đọc lại cần phải được đọc hoàn toàn nếu
không lệnh đọc lại tiếp theo sẽ không có ảnh hưởng trên bộ đếm đó. Bit đếm NULL (D6=1)
trong byte trạng thái chỉ ra rằng một số đếm ban đầu vừa được viết lên bộ đếm chưa được
nạp vào trong phần tử đếm dẫn đến việc đọc bộ đếm sẽ không có ý nghĩa
37
c/ Mode bộ đếm: mode của bộ đếm được định nghĩa bởi các bit 1,2,3 của từ điều khiển.
+ Mode 0: (ngắt khi kết thúc đếm) Sau khi bộ đếm vừa đặt là mode 0 thì lối ra OUT là thấp
(=0), ngay khi giá trị đếm vừa được nạp vào thì bắt đầu quá trình đếm lùi, khi đạt đến 0, lối
ra OUT của bộ đếm bật lên cao (=1, có thể được dùng để sinh ra một ngắt) viết một giá trị
đếm mới sẽ lặp lại quá trình này, tức là OUT lại thấp xuống và quá trình đếm lùi lại tiến
hành. Quá trình đếm được phép nếu cổng Gate là cao, khi cổng gate là thấp thì các xung
nhịp bị bỏ qua (không đếm).
(Tóm lại: trong mode 0, nếu giá trị OUT=0 thì quá trình đếm của bộ đếm vẫn đang được
tiến hành, Nếu OUT=1 thì chấm dứt quá trình đếm. Giá trị OUT của bộ đếm sẽ được kiểm
tra qua việc đọc Byte trạng thái của bộ đếm - kiểm tra bit D7 của bộ đếm - sau khi thực
hiện lệnh đọc thanh ghi).
+ Mode 1: (kích hoạt bằng xung phần cứng) Ban đầu lối ra OUT là mức cao (=1) với một
xung sườn lên ở lối vào cổng gate thì lối ra OUT sẽ xuống thấp và giữ nguyên ở mức thấp
trong khi đếm lùi.
38
+ Mode 2: (máy phát xung) mode này là mode liên tiếp, lối ra OUT xuống thấp một chu kì
xung nhịp ngay khi quá trình đếm kết thúc (số đếm =1). Sau đó OUT lại lên mức cao một
lần nữa và giá trị đếm ban đầu lại được nạp lại. Như vậy cứ sau mỗi chu kì N xung nhịp, lối
ra OUT lại xuống thấp trong một chu kì. cổng Gate có thể được dùng để đồng bộ bộ đếm:
sau một xung ở mức thấp trên cổng gate, bộ đếm khởi động lại từ giá trị đếm ban đầu.
+ Mode 3 (máy tạo sóng vuông): mode này tương tự mode 2, quá trình đếm xuống sẽ được
thực hiện hai lần, nhưng với số bước gấp đôi. Với số đếm ban đầu là chẵn thì OUT sẽ cao
trong nửa đầu của chu kì ( N, N-2, N-4, .... , 2) và thấp trong nửa còn lại ( N-1, N-3,..., 1).
Với số ban đầu là lẻ, thì chu kì ở mức cao của lối ra OUT sẽ giữ lâu hơn một xung nhịp so
với chu kì thấp. Cũng như với mode 2, lối vào gate có thể được dùng để đồng bộ bộ đếm.
39
+ Mode 4 (khởi động mềm): OUT sẽ khởi đầu là cao sau khi số đếm ban đầu được viết thì
bộ đếm bắt đầu đếm lùi ngay khi đạt đến giá trị 0, OUT sẽ thấp trong một chu kì xung nhịp.
Lối vào gate cho phép quá trình đếm khi ở mức cao và cấm khi ở mức thấp.
+ Mode 5 (kích hoạt cứng): OUT bắt đầu ở mức cao. Khi gate đạt đến mức cao, số đếm ban
đầu được nạp và quá trình đếm lùi bắt đầu. Khi giá trị đếm đạt đến 0, OUT xuống thấp
trong một chu kì xung nhịp. ( giáo trình Tin học I phần II - phòng thí nghiệm máy tính –
Trung tâm ITIMS)
Ví dụ: Tạo máy phát xung vuông điều khiển được từ bàn phím
Hình : Chương trình chính với vòng lặp bắt phím điều khiển tần số
40
Hình : Màn hình kết quả trong DOS- bấm ESC để thoát khỏi chương trình
Chuyển đổi tương tự số phức tạp hơn chuyển đổi số tương tự. ở đây đề cập đến kiểu phổ
biến nhất ADC xấp xỉ liên tiếp.
ADC sẽ cần một thời gian hữu hạn để tính toán các giá trị số. Nó cũng cần báo hiệu khi nào
thì bắt đầu quá trình chuyển đổi và trả lại tín hiệu khi kết thúc qua trình này. Khi nhận được
tín hiệu kết thúc, máy tính đọc từ lối ra ADC. Những đường tín hiệu chính điều khiển quá
trình móc nối này như trên hình vẽ.
Đường tín hiệu SC ( bắt đầu chuyển đổi ) lên mức kích hoạt cao (HIGH) báo với ADC bắt
đầu quá trình chuyển đổi (tính toán ). Sau khi kết thúc lối ra EOC xuống mức thấp (LOW)
báo hiệu giá trị ở lối ra của ADC đã ổn định dấu – báo rằng đây là đường hoạt động ở mức
thấp. giản đồ thời gian của chu trình chuyển đổi như trên hình vẽ.
41
Phương pháp xấp xỉ liên tiếp là phương pháp phổ biến cho các kiểu ADC do tốc độ, độ chính
xác và dễ thiết kế của nó. Hoạt động nhờ việc so sánh thế được sinh với thế lối vào. Một
mạch dãy và một DAC tạo ra thế so sánh như trên hình vẽ :
Phương pháp xấp xỉ liên tiếp : phương pháp trên cơ sở “đúng” và “sai”. Tín hiệu lối vào được
xấp xỉ liên tiếp bằng một nửa độ lớn của bước trước đó. Như trên hình vẽ :
Bước thứ nhất kiểm tra xem nếu điện thế vào Vin lớn hơn một nửa khoảng điện thế
(Vranger) của ADC. Giả sử rằng lối ra là “đúng” thì phép xấp xỉ tiếp theo sẽ kiểm tra xem
nếu Vin lớn hơn (1/2 + ẳ) giải điện áp Vranger. Giả sử kết quả là sai. Phép so sánh thứ ba
sẽ kiểm tra xem liệu Vin có lớn hơn (1/2 + ẳ + 1/8) của giải điện ap Vranger. Quá trình này
sẽ lặp lại cho đến khi thế vào xấp xỉ đủ chính xác.
Như vậy ADC xấp xỉ liên tiếp gồm bộ so sánh, một chuyển đổi số tương tự (DAC), một đồng
hồ xung nhịp và một thanh ghi xấp xỉ liên tiếp SAR.
Bộ so sánh :
Khuyếch đại thuật toán sử dụng để so sánh hai giá trị điện thế ở cùng độ lớn ( biên độ ),
nếu không dùng ở chế độ có phản hồi. Lối ra của một bộ thuật toán lý tưởng là +15V. Nếu
V + lớn hơn V – và bằng –15V nếu V + nhỏ hơn V - . Những mạch như vậy được gọi là bộ
so sánh ( comparator ). Trong trường hợp này, Vout là giới hạn về 0 tương ứng với 5 V để
lối ra có thể tương thích TTL.
Chuyển đổi DAC : Bộ chuyển đổi DAC chuyển đổi số nhị phân thành thế tương tự tương ứng
tỷ lệ về độ lớn (biên độ ) với giá trị của số đó.
42
Khởi đầu quá trình chuyển đổi thế so sánh được đặt bằng nửa thang đo lối vào. Nếu thế so
sánh quá lớn lần lượt sẽ thiết lập phép so sánh giữa một tập các giá trị một nửa các giá trị
giữa giới hạn thấp và điểm một nửa trước đó. Nếu thế so sánh quá nhỏ thì thế đặt liên tiếp
phép so sánh giữa điểm giữa và toàn thang. Quá trình này tiếp tục cho đến khi đạt đến
khoảng tăng nhỏ nhất. Mã trên lối ra là giá trị số tính được. Hình vẽ biểu diễn phép so sánh
với bộ chuyển đổi 4 bít và chu trình lấy mẫu xấp xỉ liên tiếp.
Có thể thấy số phép so sánh cần thiết bằng số bít trong mẫu. như vậy số chu kỳ xung nhịp
cần thiết cho phép tính xấp xỉ liên tiếp bằng số bít lối ra.
43
Bộ chuyển đổi song song N bít ( hay bộ chuyển đổi kiểu flash) dùng các thang điện trở để
tạo ra 2N - 1 mức lượng tử từ LSB (bít ít ý nghĩa nhất ) đến (2N-1) lần LSB. Mỗi chúng so
sánh với thế vào dùng 2N - 1 bộ so sánh. Nếu thế trên lối vào thuận (+) của bộ so sánh lớn
hơn lối vào đảo (-) thì lối ra sẽ ở mức cao , khác đi sẽ là mức thấp. Thế ngưỡng được đưa
vào lối vào lối vào (+) và thế vào đưa vào lối vào (-). Như vậy lối ra của mỗi bộ so sánh sẽ
cao khi thế vào lớn hơn thế ngưỡng và thấp khi nhỏ hơn. Một bộ giải mã (decode) sẽ dịch
lối ra từ các bộ so sánh thành mã nhị phân. Hình vẽ biểu diễn một ADC song song 3 bít với
7 bộ so sánh. bảng dưới đây cũng liệt kê số lượng các bộ so sánh cần thiết cho ADC với độ
phân giải khác nhau. Có thể thấy DC 16 bít cần 65535 mức thế và bộ so sánh.
ADC flash không yêu cầu xung nhịp và tốc độ của nó chỉ bị giới hạn bởi thời gian thiết lập
của tín hiệu. Thường thường được dùng trong các ứng dụng tốc độ cao như bộ giải mã mầu
trên các màn hình VGA / SVGA, các ứng dụng rada,...
44
Hai đường điều khiển sẽ đồng bộ việc truyền dữ liệu giữa máy tính và ADC. Chúng là các
đường SC ( bắt đầu chuyển đổi ) và EOC ( kết thúc chuyển đổi ). Đường SC là đường lối vào
ADC và dùng để khởi động một quá trình chuyển dổi. EOC là lối ra từ ADC dùng để chỉ ra
rằng quá trình chuyển đổi đã kết thúc dữ liệu trên ADC là hợp lệ và có thể bắt đầu đọc vào
máy tính. Tín hiệu này ở mức kích hoạt thấp.
Như vậy khi SC ở mức cao, bắt đầu một quá trình chuyển đổi khác với EOC ở mức thấp khi
ADC đã thực hiện xong việc chuyển đổi. PPI có thể được dùng để điều khiển và quan sát các
đường tín hiệu móc nối này bằng cách nối hai đường với 2 bít trên cổng C ( điều khiển SC
và quan sát EOC )
Đường EOC là lối vào với PPI và SC là lối ra. Máy tính khởi động quá trình chuyển đổi ADC
bằng cách đặt SC lên cao. Tiếp theo máy tính sẽ quan sát EOC cho đến khi nào nó xuống
mức thấp. Khi đó sẽ tiến hành đọc tại cổng (A) mà lối ra ADC nối với nó.
Cổng C có thể tách ra thành hai nửa vào và ra C ( cao ) và C (thấp). Khi này C thấp là lối
vào ( nối với EOC ) và C (cao) là lối ra ( SC). lưu đồ như sau :
Khi gửi số liệu vào máy tính, thiết bị ngoài đặt STB xuống mức kích hoạt thấp (0), dữ liệu
sau đó được đọc vào vùng đệm vào. Tiếp theo PPI tự động đặt IBF lên cao và dữ nguyên
cho đên khi PC đọc xong dữ liệu từ vùng đệm. Đường này được dùng để báo cho ngoại vi
đừng gửi thêm bất kỳ dữ liệu nào đến PPI. Một khi dữ liệu đã được đọc IBF trở lại mức thấp
báo cho ngoại vi (ADC) có thể tiếp tục gửi dữ liệu.
45
Hình vẽ biểu diễn các thiết lập có liên quan đến chương trình điều khiển. đây là hoạt động
móc nối điển hình, chỉ có điều cần đến một bộ đảo giữa IBF và SC để cho phép các tín hiệu
được thích hợp.
Khi vùng đệm của cổng đầy và đường PC5 (IBF) là không ở mức kích hoạt ( thấp ). Kết nối
này thông qua bộ đảo đến SC của ADC. Khởi động nó ở mức cao sẽ bắt đầu quá trình
chuyển đổi của ADC. Khi kết thúc EOC xuống thấp đường này lại nối trực tiếp với PC4 (STB)
khiến cho dữ liệu trên cổng A có thể được nạp vào vùng đệm vào của cổng. PPI sau đó tự
động đặt bít PC5 (IBF) lên cao ( gây ra SC chuyể xuống thấp và reset ADC ) đường này dữ
nguyên cho đến khi PC đọc xong dữ liệu từ vùng đệm vào. Khi đó đường IBF xuống thấp
làm cho SC lên cao. ADC lại bắt đầu một quá trình chuyển đổi mới
46
4.3.4/ CHUYỂN ĐỔI TỪ SỐ THÀNH GIÁ TRỊ TUYỆT ĐỐI
Trong hầu hết các trường hợp giá trị số đọc được từ ADC cần phải chuyển đổi sang giá trị
thực tế như áp suất hay nhiệt độ. Để xác định nhiệt độ tuyệt đối cần thiết phải có đặc trưng
chuyển đổi nhiệt độ sang điện áp của cảm biến (sensor) và hệ số khuyếch đại sử dụng.
Thường thường, thế lối ra từ sensor nhiệt độ đựoc đưa vào bộ khuyếch đại với cả tín hiệu
đơn cực lẫn tín hiệu lưỡng cực.
Hình vẽ biểu diễn đặc tuyến nhiệt độ . Cái đầu là khoảng thế đơn cực với mức thế 5V biểu
diễn cho nhiệt độ 100oC và 0V biểu diễn cho 0oC. chuyển đổi giữa thế lối ra (V) và nhiệt độ
sẽ theo công thức :
T = 20xV oC
Cái thứ hai là giải điện áp lưỡng cực. Thế +5V biểu diễn nhiệt độ 100oC và -5V biểu diễn
0oC. Công thức chuyển đổi sẽ như sau :
47
T = 10xV + 50oC
Thế ra của bộ khuyếch đại được đưa vào ADC hoặc loại đơn cực hoặc loại lưỡng cực. hình vẽ
biểu diễn phép chuyển đổi giữa giá trị số và nhiệt độ. Chuyển đổi này giả thiết rằng thế vào
cực đại mã hoá 255 và cực tiểu là 0. Từ đó có thể có được đồ thị chuyển đổi gữa giá trị lấy
mẫu (số) và nhiệt độ đo được.
Motor bước :
Các xung TTL áp dụng với các cuộn dây của motơ, làm quay trục đi các bước rời rạc, theo
các góc. Các transitor nguồn NPN- (kiểu BD677) sử dụng để điều khiển các cuộn này. Để
điều khiển mô tơ theo một hướng xác định, Các tansitor cần được điều khiển bật tắt (dẫn)
theo một chuỗi tuần từ xác định. Các bước liên tiếp như vậy tạo ra mỗi lần tuần tự bật
nguồn cho cuộn dây tiếp theo và tắt nguồn cho cuộn trước đo. Motơ quay ngược lại khi mã
trứơc đó được đặt lên cuộn. Chuỗi tuần tự các mã cho bốn cuộn dây của mô tơ bước được
cho trong bảng.
Nếu đặt “1” lên lối vào của một transitor nó sẽ dẫn điện và cuộn tương ứng được kích hoạt.
Hệ thống cảm biến :Hai diod ánh sáng được nối với một bộ so sánh analog. Lối ra so sánh
sẽ là “1” hoặc “0” tuỳ thuộc vào photo diod nào được chiếu sáng hơn.
Hệ ROBOT :
Lối ra bộ so sánh được dùng để phản hồi trở lại máy tính để quyết định việc điều khiển
motơ quay trái hay phải. ( theo chiều kim đồng hồ hay ngược lại chính là hướng tới nơi có
nhiều ánh sáng hơn hay sáng ít hơn tuỳ thuộc vào cách lập trình )
Lưu ý : vì hai diod không bao giờ được chiếu sáng như nhau nên MOTOR sẽ không bao giờ
dừng lại ở giữa hai vị trí.
Một hệ thống như thế gọi là hệ SERVO
48
Bài tập điều khiển mô tơ bước: Dùng ngôn ngữ lập trình C để viết chương trình điều khiển mô
tơ bước (4 lối điều khiển) quay phải, quay trái, tăng tốc, giảm tốc dùng bàn phím
1) Khai báo chương trình
Hình : Khai báo biến mảng giữ các giá trị nhị phân dùng để điều khiển 4 bít thấp cổng A, các
biến điều khiển khác
Hình : Khai báo 2 hàm điều khiển phải, trái dùng 2 vòng lặp xác định, điều kiện thoát khi gõ
phím
3) Khai báo thân chương trình, bắt phím
49
Hình : Khởi tạo chế độ Mod, bẫy phím được gõ
Hình: Điều khiển rẽ nhánh cho các trường hợp bấm phím mũi tên, phím ESC
50
Dạng của một xung tam giác có thể được biểu diễn trên hình vẽ và mô phỏng lại với DAC .
với 256 mức, viết ra cổng PPI các giá trị từ 0 - 255 ra DAC. Hiệu ứng xung tam giác sẽ đạt
được nhờ việc đếm lên từ 0 – 255 rồi ngược lai đến 0. Tiến trình này lặp lại cho đến khi có
một phím được bấm. nếu có thể quan sát dạng sóng trên giao động ký và đo thời gian giữa
các vi bước liên tiếp.
51
Thư viện uiblib.c giúp cho việc lập trình ghép nối trở nên dễ dàng
Sử dụng :
Copy file thư viên uiblib.c thư viện vào thư muc C:\TC\include
Khai báo thư viện đầu chương trình
#include <uiblib.c>
hoặc khai báo
#include "uiblib.c" nếu file này nằm trong thư mục hiện tại (thư mục của sinh viên)
Lưu ý: Các máy tính thực tập tại ITIMS đã cài sẵn thư viện này nên các bạn dùng cách khai báo
thứ nhất để sử dụng các hàm trong thư viên.
Hình : Hàm đọc giá trị một kênh ADC (từ 1.4) trả về giá trị 12 bít
Hình : Hàm kiểm tra trạng thái hiện tại của một bộ đếm bằng cách chốt sử dụng lệnh đọc lại bộ
đếm với 3 bộ đếm C0..2 và kiểm tra bit 7
Hình : Hàm kiểm tra xem một bộ đếm đã được nạp hay chưa bằng cách sử dụng lệnh đọc lại bộ
đếm và kiểm tra bít 6
52
Hình : Hàm đọc và trả về giá trị 1 bộ đếm 16 bít
Ứng dụng thư viện uiblib.c
Dưới đây là các bài tập chính trong phần thực hành môn học, mục đích các bài tập này là giúp
làm quen với một số kỹ thuật thực nghiệm khi ghép nối máy tính với thiết bị ngoại vi, thu thập
dự liệu từ ngoại vi qua các bộ cảm biến, điều khiển ngoại vi, phần xử lý tín hiệu số không phải là
trọng tâm trong phần này.
53
1.2/ Viết chương trình đọc một số nhị phân từ cổng A (C) của vi mạch 8255 trên card UIB
qua giao diện FRONT-END hiển thi ra dạng số thập phân, hexa, nhị phân trên màn hình
máy tính
1.3/ Viết chương trình điều khiển đèn giao thông tại một ngã tư giả sử dùng 3 bít thấp trên
cổng A để điều khiển một chiều và 3 bít cao điều khiển chiều còn lại.
1.4/ Viết chương trình tạo đèn quảng cáo
- đèn nhấp nháy
- đèn chạy
1.5/ Xây dựng chương trình đọc một số từ cổng A rồi quay các bít của số đó theo chiều kim
đồng hồ và ngược lại.
1.6/ Viết chương trình điều khiển motơ bước : chiều quay, tốc độ
54
toán lọc nhiễu cửa sổ trượt, trung bình hoá đa kênh, ...
5.11/ Xây dựng chương trình điều khiển đóng hệ thống quạt gió, thay đổi tốc độ theo nhiệt
độ môi trường, điều khiển bật tắt đèn theo độ sáng.
5.12/ Viết chương trình báo động khi nhiệt độ vượt quá một giới hạn nhất định.
5.13/ Viết chương trình điều khiển tốc độ quay của một mô tơ một chiều
5.14/ Viết chương trình thực hiện chức năng một ADC xấp xỉ liên tiếp với một bộ chuyển đổi
DAC, so sánh, và PPI cổng A.
5.15/ Viết chương trình đo đặc trưng phóng điện của một tụ điện trong mạch RC.
I- PPI-8255A
Thiết lập cổng card ghép nối UIB :
- Sử dụng khoảng địa chỉ chuẩn 300h – 30Fh
- Ngắt chuẩn : ngắt 5
- Nguồn xung nhịp đặt ở 1MHz
1/ Đo điện áp kênh 1 : Nối một chiết áp chia thế với kênh 1 ADC : chạy chương trình đo
điện áp, kiểm tra xem giá trị điện áp 5 V có đúng bắng 255 hay 4095 (UIB, ADC 12bít )
không.
2/ Đọc thế trong vòng lặp : Nối mạch điện như hình vẽ.
Fµ , C = 220Ω Chọn giá trị R = 10K
- Nặp cho tụ bằng công tắc S
- Bật công tắc để chuyển sang chế độ phóng
- Đo và vẽ đặc trưng đường phóng của tụ điện
Trên cơ sở giá trị đo được có thể xác định giá trị R*C = (tkết thúc - tbắt đầu )/ln(Vbắt
đầu/Vkết thúc)
Với giá trị đo được với phép đo không dùng định thời của card, có thể xác định được thời
gian trể tương ứng : tcalc = (tkết thúc - tbắt đầu )/9 = [R*C*ln(Vbắt đầu /Vkết thúc)]/9
Thay đổi hằng số phóng nạp bằng chiết áp R (thay đổi giá trị của R)
55
4/ Đo nhiệt độ với điện trở NTC ( điện trở với hệ số nhiệt độ âm) để xác định nhiệt độ
sau những khoảng thời gian xác định
Hình vẽ :
5/ Đo độ sáng với LDR ( điện trở phụ thuộc độ sáng ). đo độ sáng ( hay độ trong suốt )
của chất lỏng trong các phản ứng hoá hay hoá sinh.
Hình vẽ :
6/ Chương trình đo thế kích hoạt bằng xung : Xây dựng mạch điện như hình vẽ : bấm
công tắc để khởi động quá trình đo, điện áp được đọc vào qua kênh 1, điện áp của 1 in ra
màn hình mỗi khi bấm công tắc.
8/ Đo trên 2 kênh :
Xây dựng mạch điện chia áp như sơ đồ :
Xây dựng chương trình đo : Mức thế trên kênh 1 và 2 được đọc sau khi bấm 1 phím. Mỗi
phím bấm có 2 phép đo thế được tiến hành (V1 và V2) và in ra màn hình dưới dạng bảng
hay 1 điểm trên đồ thị :
- Đo điện áp tại các điểm khác nhau trên mạch điện
- Với một giá trị R đã biết, dòng I , đặc trưng V có thể đo được với các trường hợp đèn, diod
hay điện trở NTC.
9/ Đo thời gian :
Xây dựng mạch điện, Thời gian đến khi tia sáng chiếu lên phototransitor được đo theo ms :
- Xác định giai đoạn thời gian ( hay tốc độ trung bình ) mà một đối tượng vượt qua một
cổng GATE.
10/ Đếm sự kiện : Xây dựng hệ thống theo sơ đồ : Số giọt dung dịch rơi qua một cổng
sáng sẽ được đếm. ( giáo trình Tin học I phần II - phòng thí nghiệm máy tính – Trung tâm
ITIMS)
11/ Đếm số sự kiện trong một giây : Nối lối ra TTL của một máy phát chức năng với lối
vào bộ đếm. Tần số tín hiệu đo được sẽ được in liên tục ra màn hình
- Đo số vòng quay của một bánh xe : một đĩa với các lỗ được gắn vào bánh xe; Nhờ cổng
ánh sáng, số vòng trong 1 giây có thể đo được.
12/ Hệ thống đo và điều khiển :
Điều hoàn không khí :
- Bật tắt lò sưởi trung tâm (bật/ tắt)
- Nồi đun (bật/tắt)
- Quạt (bật/tắt)
- Airgrid ( mở/đóng )
- Tưới nước (bật/tắt)
- Mở cửa sổ (mở/đóng)
- Dò phương (có/không)
Các quá trình tiếp diễn
- Nhiệt độ tới hạn
- áp suất tới hạn
56
- Nồng độ cồn tới hạn
Thang máy
- Chuyển động (lên/xuống)
- Gọi từ trong ra (lên/xuống)
- Gọi từ ngoài vào (lên/xuống)
- Đếm đến giá trị 0 (có/không)
- Cửa thang máy (mở/đóng)
- Hãm khẩn cấp
- Chuông (bật / tắt )
Cũng có thể xét tới các hệ thống điều khiển cho đèn giao thông, thiết bị gia đình như máy
giặt, máy rửa chén, đun nước sôi, lò nướng, lò sưởi ...
1/ Viết chương trình nhập một byte từ bàn phím và viết ra cổng C
2/ Hệ phản hồi (FEEDBACK) Trong các quá trình phản hồi : Việc kích hoạt hay tắt
điều khiển bằng tiến trình đo trước nó.
Đọc một giá trị từ cổng A, tính toán sau đó viết ra cổng C (tất cả giá trị đọc được và tính
được đều được viết ra màn hình)
3/ Viết chương trình tạo ra xung tần số cao và thấp trên lối ra của bộ đếm 2. ( có
thể thấy qua đèn chỉ thị trên OUT-2 nhấp nháy)
Móc nối : Các lệnh đọc và viết ra cổng có thể được thực hiện tại những vị trí nhất định trong
chương trình. Cũng có thể được ngắt ra trong chương trình hiện hành nhờ các ngắt và ưu
tiên với một lệnh I/O. Trong các trường hợp như vậy cần đến tín hiệu móc nối. Tín hiệu móc
nối chạy qua 5 đường cao nhất của cổng C (PC3-PC7).
57
Một đặc trưng của tín hiệu tuần hoàn là tần số của tín hiệu, có 2 cách để đo tần số:
Đo số xung trong 1 khoảng thơi gian đã biết , từ đó tính ra tần số(đo tần số cao).
Đo chu kì: đo 1 chu kì đơn và tính ra tần số (đo tần số thấp) .
Bài tập:
1. Viết chương trình sử dụng bộ đếm PIT 82C54 để hiển thị số xung đếm được khi
đưa xung vào Clock 1.
58
2. Viết chương trình sử dụng bộ đếm PIT 82C54 để đo khoảng thời gian giữa 2 lần
nhấn/nhả công tắc.
3. Viết chương trình sử dụng bộ đếm PIT 82C54 để đo tần số ( Máy phát 1Mhz nối với
Clock 0, Clock 1 nối với External)
59
Hình : Khởi tạo bài tập đếm xung
60
61
Hình: Khởi tạo bài tập đo thời gian
62
Hình : Khởi tạo bài tập đo tần số
63
Hình : Thân chương trình bài tập đo tần số
Hình : Kiểm tra kết nối cổng DAC - 0x210 hoặc 0x310
64
Hình : Hàm tạo sóng SIN
Hình : Chương trình chính gọi đến các hàm tạo dạng sóng dùng DAC
Hướng dẫn
65