Tải bản đầy đủ (.doc) (84 trang)

Ứng dụng vi điều khiển để chuyển đổi AD và DA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.65 MB, 84 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
Đề tài :
Đề tài :
ỨNG DỤNG KIT 8051
ỨNG DỤNG KIT 8051
DÙNG ĐỂ CHUYỂN ĐỔI A/D & D/A
DÙNG ĐỂ CHUYỂN ĐỔI A/D & D/A
Sinh viên thực hiện : NGUYỄN VŨ ANH DUY
Lớp : 95 KĐĐ
Giáo viên hướng dẫn : LÊ THANH ĐẠO
TPHCM, tháng 2-2000
LỜI CẢM ƠN
Để hoàn thành được luận án này, đầu tiên em xin được gửi lời cám ơn
đến Ban Giám Hiệu, các Thầy Cô đặc biệt là Thầy Cô trong bộ môn Điện tử
thuộc Khoa Điện – Điện Tử trường Đại Học Sư Phạm Kỹ Thuật TP.HCM,
đã tận tình chỉ dạy, truyền đạt kiến thức cũng như tạo điều kiện thuận lợi cho
em trong suốt quá trình học tập vừa qua
Em xin chân thành cảm ơn Thầy Lê Thanh Đạo đã quan tâm theo dõi,
tận tình hướng dẫn và động viên em để thực hiện tốt luận án tốt nghiệp này
Ngoài ra em cũng xin gửi lời cảm ơn đến tất cả các bạn bè cùng khóa
và người thân chung quanh đã giúp đỡ về vật chất và tinh thần để em đạt
được thành tích như ngày hôm nay.
MỤC LỤC
PHẦN DẪN NHẬP
PHẦN I : GIỚI THIỆU TỔNG QUÁT
Chương I: Biến đổi tương tự số và số tương tự Trang 1
A. Biến đổi tương tự số 1


I – Tổng quát 1
II – Các kỹ thuật AD 4
III – Giao tiếp phần mềm 11
IV – Giao tiếp phần cứng 11
B. Biến đổi số tương tự 12
I – Tổng quát 12
II – Giao tiếp với vi xử lý 13
Chương II : Giao tiếp ngoại vi 8255 A 14
I – Tổng quát 14
II – Mô tả chi tiết 15
III – Chế độ hoạt động 17
Chương III: Tổng quan về họ vi điều khiển MCS-51 24
I – Cấu trúc 8051 24
II – Sơ lược về các chân 25
III – Cấu trúc cổng xuất nhập 28
IV – Tổ chức bộ nhớ 29
V – Các thanh ghi có chức năng đặc biệt 31
VI – Bộ nhớ ngoài 36
VII – Hoạt động reset 41
Chương IV: Tóm tắt tập lệnh 43
I – Giới thiệu 43
II – Các mode đònh vò 43
Chương V: Giới thiệu về KIT vi điều khiển 8051 53
I- Chức năng của các phím 53
II- Giới thiệu cấu trúc phần cứng kit vi điều khiển 55
PHẦN II: THIẾT KẾ
Chương I: Thiết kế phần cứng 60
I – Mạch chuyển đổi AD 60
II – Mạch DA 62
Chương II: Thiết kế phần mềm 68

I – Lưu đồ giải thuật chương trình 68
II – Chương trình 71
PHẦN III: PHỤ LỤC
PHẦN DẪN NHẬP
I – ĐẶT VẤN ĐỀ:
Vào đầu những năm thập niên 60, kỹ thuật số đã đưa vào ứng dụng trong
thực tế nhưng ở phạm vi nhỏ. Cho đến ngày hôm nay kỹ thuật số đã được phát triển
một cách mạnh mẽ và được ứng dụng vào mọi lãnh vực của cuộc sống. Từ những
chiếc máy vi tính (computer), máy CD, máy VDC, truyền hình số … cho đến các
băng diã CD đã dần dần thay thế các máy và băng từ tín hiệu tương tự (analog) bởi
bộ phân giải rộng, độ chính xác cao và dễ dàng trong quá trình xử lý tín hiệu. Tuy
nhiên trong cuộc sống hằng ngày chúng ta lại thường tiếp xúc với những tín hiệu
tương tự nhiều hơn. vd: Điện thoại, sóng đài truyền hình, dòng điện sinh hoạt, âm
thanh … vì thế phải cần có một sự chuyển đổi từ tín hiệu tương tự (Analog) – số
(Digital) để xử lý dữ liệu, sau đó lại chuyển đổi ngược lại từ số (Digital) – tương tự
(Analog) để đưa vào điều khiển, khống chế thiết bò. Đó là những lý do để em thực
hiện đề tài này.
II – MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI
Có rất nhiều phương pháp để thực thi việc chuyển đổi A/D và D/A
• Sử dụng vi mạch số
• Sử dụng vi xử lý
• Sử dụng vi điều khiển
Với đề tài này em sử dụng vi điều khiển để thực hiện việc chuyển đổi A/D
và D/A
Mục đích: Chuyển đổi tín hiệu Analog – Digital để xử lý, sau đó chuyển đổi
ngược lại từ Digital – Analog để điều khiển, khống chế thiết bò
Yêu cầu: Hiểu rõ về kỹ thuật số, các quá trình chuyển đổi A/D và D/A bên
trong những vi mạch chuyên dụng (IC ADC 0809 và DAC 0808), nắm vững cách sử
dụng kết nối phần cứng và phần mềm của KIT 8051.
III – GIỚI HẠN ĐỀ TÀI

Do sự chuyển đổi A/D và D/A để điều khiển và xử lý bằng KIT 8051 rất
phong phú và đa dạng mà kiến thức của em thì còn rất nhiều hạn chế đặt biệt đối
với vi điều khiển 8051 là phần không có trong chương trình giảng dạy của nhà
trường, chủ yếu là em tự tìm tòi học hỏi, nghiên cứu là chính. Bên cạnh đó chỉ với
thời gian 6 tuần để tìm hiểu, viết luận văn và thi công thì đề tài này em xin được
trình bày và thực hiện một quá trình chuyển đổi A/D và D/A cơ bản nhất.
Ngày 25 Tháng 02 Năm 2000
Sinh viên thực hiện
Nguyễn Vũ Anh Duy
PHAÀN I
GIÔÙI THIEÄU
TOÅNG QUAÙT
Chương I
BIẾN ĐỔI TƯƠNG TỰ – SỐ VÀ SỐ – TƯƠNG TỰ
A – BIẾN ĐỔI TƯƠNG TỰ SỐ (ADC):
Biến đổi tương tự – số (analog – digital) là thành phần cần thiết trong việc
xử lý thông tin và các cách điều khiển sử dụng phương pháp số. Tín hiệu thực ở
Analog. Một hệ thống tiếp nhận dữ liệu phải có các bộ phận giao tiếp Analog –
Digital (A/D).
Các bộ chuyển đổi tương tự số, viết tắt là ADC thực hiện hai chức năng cơ
bản là lượng tử hóa và mã hóa. Lượng tử hóa là gán cho những mã nhò phân cho
từng giá trò rời rạc sinh ra trong quá trình lượng tử hóa.
I – TỔNG QUÁT
1 – Quan hệ In – Out:
Biến đổi AD có tính chất tỉ lệ. Tín hiệu vào Analog được biến đổi thành một
phân số X bằng cách so sánh với tín hiệu tham chiếu Vref. Đầu ra của bộ ADC là
mã của phân số này. Bất kỳ một sai số tín hiệu Vref nào cũng sẽ dẫn đến sai số
mức ra, vì vậy người ta cố gắn giữ cho Vref càng ổn đònh càng tốt.

Vref

Vin Digital output
Hình 2.1 Quan hệ vào ra các khối ADC
Nếu bộ ADC xuất mã ra gồm n bit thì số mức ra rời rạc là 2
n
. Đối quan hệ
tuyến tính, tần vào được lượng tử hóa theo đúng mức này. Mỗi mức như vậy là một
tín hiệu Analog được phân biệt với hai mã kế tiếp nhau, nó chính là kích thước của
LSB (Least Significant Bit).
FS
Q=LSB=
2
N
Trong đó : Q : Lượng tử
LSB : bit có trọng số thấp nhất
FS : giá trò toàn thang
ADC
Tất cả các giá trò Analog của lượng tử Q được biểu diễn bởi mã số, mà mã
này tương ứng với giá trò trung bình của lượng tử (có thể hiểu là giữa khoảng LSB)
gọi là mức ngưỡng. Các giá trò Analog nằm trong khoảng từ mức ngưỡng sai biệt đi
± ½ LSB vẫn được thể hiện bằng cùng một mãù, đó là sai số lượng tử hóa. Sai số
này có thể sẽ giảm đi bằng cách tăng số bit trong mã ra bộ ADC.
2 – Độ phân giải:
Là giá trò biến đổi nhỏ nhất của tín hiệu vào ra được yêu cầu để thay đổi mã
lên một mức. Độ phân giải được đưa ra với giả thiết lý tưởng.
3 – Độ chính xác:
Sự sai biệt giữa các giá trò điện áp tín hiệu vào so với giá trò FS tương đương
với mã xuất ra. Thường có ghi trong đặc tính của các bộ ADC thương mại.
4 – ADC:
Tùy theo công nghệ chế tạo mà bộ ADC có đầu vào đơn cực hay lưỡng cực,
đa số nằm trong khoảng 0…5V hoặc 0…10V đối với đơn cực và -5…+5V hoặc –10V…

+10V đối với ADC lưỡng cực. Tín hiệu vào cần phù hợp với tầm vào xác đònh cho
từng bộ ADC. Nếu đầu vào không hết thang sẽ tạo mã vô dụng ở đầu ra. Vấn đề
này được giải quyết bằng cách chọn tầm đầu vào bộ ADC sau đó chỉnh độ lợi thích
hợp cho đầu vào của nguồn Analog.
Khi sử dụng bộ ADC đơn cực mà có tín hiệu vào là lưỡng cực trong khoảng
±Vpp thì ta cần phải cộng điện áp vào Vi với một điện áp nền bằng +Vpp, khi đó
ta sẽ có Vi nằm trong khoảng 0 +2Vpp; tín hiệu này sẽ được đưa tới đầu vào bộ
ADC. Nếu sử dụng ADC lưỡng cực thì không cần cộng tín hiệu và đầu ra ta sẽ
nhận được mã lưỡng cực.
5 – Đầu ra bộ ADC:
Đa số các ADC có đầu ra 8 Bits, 16 Bits … dù vậy cũng có loại 3½ Digit, mã
BCD, 10 Bits, 14 Bits. Đầu các bộ ADC thường là mã nhò phân tự nhiên hoặc có
dấu. ADC dùng cho máy đo chỉ thò số đa dụng thường là mã BCD.
5 – Tín hiệu tham chiếu Vr:
Vi+ (EOC) End of Convertion
Vi - OE (Output Enable)
Vr
Start Digital Output
Clock
Hình 2.3 Các ngõ vào, ra chính của bộ ADC
Hình vẽ cho thấy đầu vào và đầu ra của bộ ADC. Mọi ADC đều yêu cầu có
tín hiệu Vr. Bất kỳ một sai số nào trên Vr đều gây ra lỗi độ lợi ở đặc tính của AD.
Vì vậy Vr là tín hiệu đảm bảo độ chính xác và ổn đònh của bộ AD. Dùng IC ổn áp
có thể thỏa mãn điều này.
7 – Tín hiệu điều khiển:
Mọi bộ ADC đều có tính xung Clock và tín hiệu điều khiển để hoạt động.
Thiết bò ngoài giao tiếp với ADC sẽ khởi động quá trình AD bằng cách phát một
xung Start vào đầu vào Start của ADC, ADC sẽ nhận biết cạnh lên của xung Start
và ngay sau đó nó sẽ kéo đường EOC (End of Conversion) xuống thấp (không tích
cực). Lúc này ADC đang thực hiện quá trình biến đổi, tương ứng với mỗi xung

Clock đưa vào ADC sẽ thực hiện được một bước biến đổi, sau một bước nhất đònh
tùy theo bộ ADC, thì quá trình biến đổi hoàn thành. Khi biến đổi xong, AD sẽ nâng
đường EOC lên mức cao, tín hiệu này có thể dùng để kích một ngắt cứng của máy
tính (nếu dùng giao tiếp với máy tính). Để đọc được dữ liệu đầu ra của bộ ADC thì
phải nâng đường OE (Output Enable) của ADC lên mức cao, sau khi đọc xong thì
lại trả đường này về mức thấp.
ADC
II – CÁC KỸ THUẬT AD:
1 – ADC có Vr dạng nấc thang:
Analog Vht Vref
input Vi Reference
Comparateur
Digital output
Hình 2.4 Sơ đồ khối AD có Vr dạng nấc thang
Counter: Bộ đếm tạo đầu ra cho bộ ADC bằng hoặc lớn hơn giá trò vào Vi.
Nó được reset tại mọi thời điểm bắt đầu thực hiện AD và đếm dần lên sau mỗi
xung Clock. Cứ mỗi lần đếm bộ DAC lại nâng lên mỗi nấc thang (1 LSB). Bộ so
sánh sẽ dùng bộ đếm lại khi điện áp DAC (áp hồi tiếp) đạt tới giá trò vào Vi.
Nhược điểm của phương pháp này là Tc (thời gian chuyển đổi) theo mức tín
hiệu vào và đôi khi rất lâu. Tc=2ⁿ x T
clock
đối với bộ DAC n bit khi biến đổi một
tín hiệu vào ở mức FS (Full Scale).
Một cải tiến của phương này là “tracking” hay “servo” sử dụng bộ đếm
thuận nghòch cho phép DAC đưa tín hiệu vào liên tục. Bằng sự khống chế bộ đếm
từ bên ngoài tại một điểm nhất đònh ta dùng bộ DAC kiểu tracking như một bộ S &
H (Sample and Hold).
2 – ADC thăng bằng liên tục:
Sơ đồ khối giống như phương pháp trước, nhưng bộ đếm là bộ đếm thuận
nghòch.

Về cơ bản cũng giống như phương pháp trên nhưng bộ đếm hoạt động được
ở chế độ thuận nghòch. Khi tín hiệu Vht < Vi thì bộ đếm sẽ đếm lên, ngược lại thì
bộ đếm sẽ đếm xuống. Quá trình xác lập ghi nhận được khi giá trò Vht dao động
xung quanh giá trò Vi. Tc cũng phụ thuộc vào Vi và nhược điểm sai số cũng giống
phương pháp trên: sai số động phụ thuộc vào thời gian biến đổi và sai số tónh chủ
yếu ở bộ biến đổi DA và bộ so sánh.
ControlClock Counte
r
DAC
3 – Phương pháp biến đổi AD hàm dốc tuyến tính: (Phng pháp tích phân một
độ dốc)
Về bản chất thực hiện biến đổi trung gian từ điện áp ra khoảng thời gian sau
đó đo khoảng thời gian theo phương pháp số. Quá trình biến đổi sẽ xảy ra như sau:
Comparator
Vi V1
Vs V2
Start
Result
Hình 2.6 Sơ đồ khối phương pháp ADC hàm dốc tuyến tính
Sau thời gian kích khởi, bộ đếm sẽ bắt đầu đếm lên và mạch quét sẽ bắt đầu
tạo ra tín hiệu tuyến tính thời gian. Tín hiệu quét và tín hiệu vào Vi được so sánh
với nhau, khi hai tín hiệu này bằng nhau thì mạch so sánh sẽ đóng cổng không cho
xung tới bộ đếm nữa. Như vậy nội dung của bộ đếm sẽ tỉ lệ với thời gian to, mà to
lại tỉ lệ thuận với giá trò Vi nên nội dung bộ đếm tỉ lệ với Vi.
Gate
Clock
Coute
r
Scan
Độ chính xác của phương pháp này phụ thuộc vào độ tuyến tính của tín hiệu

quét (sai số độ dốc càng nhỏ, độ chính xác càng cao), tín hiệu phụ thuộc vào tần số
của từng xung.
Phương pháp này có tốc độ hoạt động cao hơn các phương pháp ban đầu, và
độ chính xác cũng cao hơn do không cần sử dụng bộ biến đổi DA.
4 – ADC xấp xỉ liên tiếp:
Analog
Input Vi
Comparateur
Vref
Reference
Digital output
Hình 2.8 ADC xấp xỉ liên tiếp
Phương pháp này được dùng trong kỹ thuật biến đổi AD tốc độ cao – trung
bình. Nó cũng dùng một bộ DAC bên trong để tạo ra một điện áp bằng mức vào và
của tín hiệu sau đúng bằng n chu kỳ xung Clock cho trường hợp ADC n bit.
Phương pháp này cho phép rút ngắn Tc rất nhiều và không phụ thuộc vào tín
hiệu vào Vi. Kỹ thuật này phụ thuộc vào sự xấp xỉ tín hiệu vào với mã nhò phân,
SARClock DAC
sau đó thay đổi các bit trong mã này một cách liên tiếp cho đến khi đạt được mã
gần đúng nhất. Tại mỗi bước của quá trình này, giá trò xấp xỉ của mã nhò phân thu
được sẽ được lưu vào SAR (Successive Approximate Register). Việc biến đổi luôn
được bắt đầu tại MSB (Most Significant Bit) của SAR khi đó được bật lên. Bộ so
sánh sẽ so sánh đầu ra của ADC với Vi và ra lệnh cho bộ điều khiển ngắt MSB nếu
như giá trò ban đầu này vượt quá đầu vào AD. Trong chu kỳ xung Clock kế tiếp,
MSB lại được phát trở lại. Một lần nữa bộ so sánh sẽ quyết đònh lấy hay bỏ MSB
này. Sự biến đổi này sẽ tiến dần đến sự đúng nhất so với tín hiệu vào xuất dữ liệu
này ra.
DAC output
100
MSB LSB

1 1 0 SAR output
Hình 2.9 Đồ thò dạng sóng của mạch
111
111
110 110
101 101
100 100
010 011 011
010
011 001
000
Hình 2.10 Sơ đồ thay đổi mức logic
5 – ADC tích phân hai độ dốc:
Kỹ thuật này thấy rõ trên sơ đồ khối. Ta thấy điện áp vào được tích phân
trong khoảng thời gian t
1
, đúng bằng lúc bộ đếm đếm hết. Tại cuối t
1
, bộ đếm sẽ
reset và bộ tích phân chuyển qua mức tham chiếu âm, đầu ra của bộ tích phân sẽ
Control logicClock
Coute
r
giảm tuyến tính về zero tại đó bộ đếm ngưng đếm và được reset. Điện tích nạp tụ
trong khoảng thời gian t gần bằng điện tích xả trong khoảng thời gian t
2
:
t
1
x V

1
= t
2
x V
2
⇒ t
2
= V
1
= x
t
1
V
2
Tỉ số x cũng chính là tỉ số mà mã nhò phân của bộ đếm lớn nhất ⇒ giá trò
đếm được vào cuối t
2
cũng là giá trò xuất ra. Kỹ thuật này có một số ưu điểm, nhất
là chất lượng khử ồn. Tín hiệu vào được tích phân qua một chu kỳ, do đó bất kỳ
mức ồn nào cũng có tần số là bội số của
1
/t
1
đều bò loại.
Analog reference

+
Vr -
- +
Vi


Digital Output
Hình 2.11 Sơ đồ khối ADC tích phân hai độ dốc
Chú ý rằng, tần số xung Clock không ảnh hưởng gì đến độ phân giải. Độ
phân giải của kỹ thuật này chỉ bò giới hạn bởi chất lượng mạch và không phụ thuộc
vào độ phi tuyến của bộ AD: Do đó đầu ra của bộ tích phân có thể nhảy cấp tự do
mà không sợ phát sinh mã lỗi ở đầu ra. Vì vậy mà độ phân giải tốt rất dễ đạt được
và có thể thay đổi bằng cách chỉnh kích thước của vòng đếm và tần số xung Clock.
Tần số thấp là nhược điểm duy nhất của phương pháp. Phương pháp này
thường được dùng cho các đồng hồ hiện số, máy đo đa năng chỉ thò số, cảm biến
nhiệt độ và những ứng dụng có yêu cầu không cao về tần số lấy mẫu.
6 – ADC dùng biến đổi V – F (điện áp – tần số):
VFC Bộ phát Bộ thu
Đònh thời Đếm
Digital output
Hình 2.13 Sơ đồ khối bộ biến đổi AD dạng VF
Hình trên cho thấy kỹ thuật này trong bộ biến đổi AD. Áp vào Analog được
một bộ VF chính xác biến thành một dãy xung có tần số tỉ lệ với áp vào. Một bộ
đếm sẽ đếm số xung này trong một khoãng thời gian nhất đònh rồi xuất số đếm cho
bộ AD. Giống kỹ thuật tích phân độ dốc kép, kỹ thuật này có tần số thấp nhưng
khử nhiễu tốt. Nếu thời gian Tc thấp ở mức có thể chấp nhận được thì phương pháp
VF cho phép đạt được độ phân giải cao với tín hiệu thay đổi chậm với giá thành hạ.
Ưu điểm của phương pháp này là có khả năng điều khiển từ xa trong môi
trường ồn. Có thể làm một bộ VF như một hàm truyền dữ liệu từ xa dưới dạng số
đến trạm kiểm soát, tại đây có bộ xử lý (tiếp nhận + bộ đếm + xuất dữ liệu). Điều
này tránh được việc truyền tín hiệu Analog qua môi trường nhiễu có khả năng làm
xấu tín hiệu. Việc truyền bằng tín hiệu VF cũng có khả năng triệt nhiễu bằng cách
tạo sự cách ly giữa bộ biến đổi với thiết bò cảm biến, một yêu cầu quan trọng trong
các trạm kiểm soát và điều khiển các hệ thống điện cao áp. Thực tế, kỹ thuật này
phụ thuộc vào các vi mạch VFC thông dụng, rẻ tiền, có chất lượng tốt (tuyến tính

và ổn đònh).
7 – ADC song song:
Vr Vi
R
Digital output
R
R
2 2
n-1
Comparator
Hình 2.14 Sơ đồ khối AD song song
Được dùng trong kỹ thuật cần biến đổi AD tốc độ cao, như kỹ thuật Video,
kỹ thuật Radar, dao động ký số. Trong kỹ thuật này tín hiệu vào được so sánh ngay
lập tức với tất cả các mức ngưỡng bằng cách dùng nhiều bộ so sánh. Việc lượng tử
hóa do vậy thực hiện hoàn tất trong cùng một lúc. Bộ giải mã nhanh lập tức đổi các
tín hiệu so sánh được tới đầu ra.
ADC dùng phương pháp này có tần số lấy nẫu phụ thuộc vào tốc độ (thời
gian trễ) của các bộ so sánh. Thông thøng vi mạch so sánh có thời gian trễ trong
khoảng 10-12ns, vì vậy trên lý thuyết, tần số lấy mẫu của ADC có độ phân giải 8
Bits cần tới 2
8
– 1=255 bộ so sánh, do vậy kích thước vi mạch sẽ rất lớn.
Encode
r
III – GIAO TIẾP PHẦN MỀM:
Dữ liệu truyền giữa ADC và vi xử lý có thể tổ chức trong phần mềm theo 3
cách:
1 – Memory – Mapped – Transfers (Truyền theo bản đồ nhớ):
Trong bản đồ bộ nhớ, ADC được chỉ đònh trong một vùng bộ nhớ thực sự
chưa sử dụng. Bên cạnh việc sử dụng tối đa bộ nhớ, ta có dùng phần cứng giải mã

đòa chỉ từ tối thiểu đến tối đa để không lãng phí không gian trong bộ nhớ.
2 – Input / Output Mapped Tranfers (Truyền theo bản đồ I/O):
Một vài hệ thống tạo ra vùng I/O có đòa chỉ rất riêng biệt, mà ở đó đòa chỉ có
thể giống đòa chỉ bộ nhớ, có thể phân biệt chúng với nhau bằng cách dùng tín hiệu
điều khiển đặc biệt IOR, IOW trên hệ thống Bus của IBM – PC. Sự phân biệt giữa
I/O và 2 vùng bộ nhớ làm cho thiết kế hệ thống trở nên tốt hơn. Nó cho phép giải
mã đòa chỉ sử dụng phần cứng là tối thiểu, giải mã từ vùng IO đơn giản và tốt hơn
bộ nhớ có giá trò chưa sử dụng.
3 – DMA (Direct Memory Access : truy mất trực tiếp bộ nhớ):
Khi chỉ có truyền dữ liệu đơn giản giữa bộ nhớ và ngoại vi được dùng tích
lũy trong quá trình chuyền làm chậm quá trình một cách không cần thiết.
Bằng việc sử dụng kết hợp trong phần cứng trong dạng thiết bò phục vụ gọi
là “điều khiển DMA”. Việc truyền trực tiếp có tác động nhanh hơn nhiều, hầu hết
các bộ vi xử lý cho phép DMA thực hiện đầy đủ bằng cách cấp điều khiển của Bus
hệ thống cho khoảng đònh trước. Điều khiển DMA lấy đòa chỉ yêu cầu và tín hiệu
điều khiển. Tại cuối khoảng, điều khiển Bus quay lại vi xử lý. Truyền dữ liệu hoàn
toàn có thể lấy nhiều chu kỳ DMA để thi hành.
IV – GIAO TIẾP PHẦN CỨNG:
Thiết kế phần cứng theo mô hình dữ liệu song song hay nối tiếp.
1 – Dữ liệu truyền song song:
Phần cứng cho giao tiếp dữ liệu song song hầu hết bao gồm ngõ ra đệm ba
trạng thái mà ADC nối với Bus dữ liệu của vi xử lý. Đòa chỉ giải mã và tín hiệu
điều khiển ghi đọc của cho phép đệm truyền dữ liệu ADC vào µP. Giải mã tương
ứng và tín hiệu điều khiển của µP tạo thành lệnh bắt đầu cho bộ biến đổi. Nó
không cần dùng điều khiển R/W riêng biệt, dù sao việc làm này cho phép đòa chỉ
giống nhau cho việc gởi lệnh đến ADC và để đọc ngõ ra ADC.
Các ADC mới hơn có bộ đệm ba trạng thái với mạch điều khiển của chúng.
Những ADC này có thể nối trực tiếp với Bus dữ liệu của vi xử lý. Giao tiếp nhiều
thiết bò, thì ta phải cung cấp giải mã và đôi khi phải một vài cổng quản lý tín hiệu
điều khiển. Giao tiếp với hệ thống µP thì đơn giản bởi vì µP cung cấp đòa chỉ Port

trực tiếp và việc giải mã đòa chỉ là không cần thiết.
2 – Mô hình dữ liệu nối tiếp :
Dùng trong việc truyền dữ liệu đi xa. Truyền đồng bộ nối tiếp dùng cho
tuyến phục vụ hay tuyến điện thoại. Thiết bò gọi là UART (truyền nhận không
hoàn toàn đồng bộ). UART nhận và truyền dữ liệu dạng tuần tự nhưng giao tiếp
với µP dạng song song.
B – BIẾN ĐỔI TƯƠNG TỰ SỐ (DAC) :
Biến đổi DA thường là giai đoạn cuối của một hệ thống xử lý số: Sau khi tín
hiệu tương tự ở đầu vào được mạch ADC biến đổi sang dạng số, nó được xử lý, lưu
trữ dưới dạng số bởi hệ xử lý trung tâm rồi kết quả xử lý sẽ được đưa đến mạch
DAC để xuất ra dữ liệu dạng tương tự. Mạch DAC nhận ở đầu vào một giá trò số
nhò phân tự nhiên và xuất ra ở ngõ ra một điện áp dạng tương tự có giá trò tỉ lệ với
giá trò ngõ vào.
I – TỔNG QUÁT:
1 – Quan hệ vào ra:
Vref
V
0
(I
0
)
DAC
Digital input
Hình 2.15 Quan hệ vào ra bộ DAC
Biến đổi DA có tính chất tỉ lệ. Tín hiệu vào Digital N được biến đổi thành
một điện áp (hoặc dòng điện) có giá trò Q (phụ thuộc vào tín hiệu tham chiếu Vref)
bằng cách so sánh giá trò ở đầu vào với giá trò đầy thang của đầu vào. Bất kỳ một
sai số tín hiệu Vref nào cũng sẽ dẫn tới sai số mức ra, vì vậy người ta cố gắng cho
Vref càng ổn đònh càng tốt.
Thông thường, ở các bộ biến đổi DAC thương mại, ngõ ra sẽ xuất hiện dòng

điện, vì vậy ta phải mắc thêm một biến đổi dòng thành áp có thể nhận được điện
áp ra.
2 – Đầu vào bộ DAC:
Đa số các bộ DAC có đầu vào 8 Bits, 10 Bits, 12 Bits, 16 Bits … Đầu vào các
bộ DAC thường là các mã nhò phân tự nhiên hoặc có dấu. Nếu mã đầu vào đầu vào
có dấu thì tín hiệu tham chiếu Vref phải là tín hiệu lưỡng cực.
Bộ DAC sẽ liên tục biến đổi số ở ngõ vào thành giá trò tương tự ở ngõ ra,
thời gian cho một lần biến đổi như vậy tùy theo bộ DAC. Vì vậy để đảm bảo chính
xác, người ta mắc thêm ở ngõ vào bộ DAC một mạch chốt dữ liệu để tránh hiện
tượng bộ DAC xuất ra tín hiệu không xác đònh trong khoảng thời gian tự do giữa
hai lần cập nhật dữ liệu ở ngõ vào.
3 – Đầu ra bộ DAC
Tùy theo công nghệ chế tạo mà đầu ra của bộ DAC có thể là dòng hoặc áp.
4 – Tín hiệu điều khiển:
Hầu hết các bộ DAC đều không cần tín hiệu điều khiển.
II – GIAO TIẾP DAC VỚI VI XỬ LÝ:
1 – Xuất dữ liệu tuần tự:
Khi có yêu cầu xuất một chuỗi dữ liệu ra cổng, phần mềm xử lý sẽ tuần tự
xuất từng Byte dữ liệu trong bộ đệm ra cổng. Để tạo được tần số xuất theo mong
muốn, đầu tiên chương trình phải tính được tốc độ của CPU có thể xuất ra cổng
giao tiếp trong một dòch vụ thời gian (1 giây). Từ thông tin đó, phần mềm có thể
tính được thời gian trễ (Delay) giưã hai lần xuất dữ liệu để tạo ra tần số xuất theo
yêu cầu.
Phương pháp này tạo ra tần số xuất dữ liệu rất cao (lên tới khoảng 40Khz
hoặc cao hơn tùy theo kiểu máy tính), nhưng tần số rất khó để có thể tạo ra một
cách chính xác. Mặt khác CPU cũng sẽ bò bận trong suốt quá trình xuất dữ liệu.
2 – Cài đặt một ngắt ngoại vi:
Phương pháp này sử dụng xung Start để mạch lấy mẫu ADC để kích hoạt
một chương trình phục vụ ngắt, chương trình phục vụ này sẽ làm nhiệm vụ xuất
một Byte dữ liệu ra cổng. Xung Start ở được lợi dụng để tạo ra một tần số kích ngắt

bằng tần số lấy mẫu.
3 – Sử dụng ngắt đồng hồ:
Ta biết rằng trong hệ thống của máy tính có ngắt số 8 là một ngắt có kích
hoạt đònh kỳ theo thời gian, gọi là ngắt đồng hồ, chu kỳ kích ngắt có thể có thể
thay đổi được bằng cách lập trình cho bộ đònh thì 8253. Lợi dụng ngắt có sẵn này,
ta có cài thêm một chương trình phục vụ ngắt của máy rồi lập trình cho bộ 8253 để
tạo ra một tần số kích ngắt theo mong muốn.
Chương II
GIAO TIẾP NGOẠI VI 8255A
GIAO TIẾP NGOẠI VI 8255A
PPI 8255A (PROGRAMABLE PARALLEL INTERFACE)
I – TỔNG QUÁT:
1 – Bộ đệm truyền dữ liệu:
Bộ đệm 8 Bits, 2 chiều, 3 trạng thái dùng để giao tiếp 8255 với CPU.
Dữ kiện được phát hay nhận bởi bộ đệm khi thực hiện lệnh IN, OUT bởi
CPU.
Các từ điều khiển cũng truyền qua dữ kiện.
I/O
PA0-DA7
I/O
PC4-PC7
I/O
PC0-PO3
I/O
PB0-PB7
Hình 3.1 Cấu trúc khối của 8255
2 – Phần kiểm soát đọc ghi:
Chức năng của khối này là kiểm soát tất cả các sự truyền đạt bên trong và
bên ngoài của từ điều khiển và dữ kiện. Nó nhận ngõ vào từ tuyến đòa chỉ và sự
điều khiển của CPU, phát ra các lệnh cần thiết cho cả hai nhóm A và B.

CS: ngõ vào = 0 cho phép truyền tin giữa 8255 và CPU.
RD: = 0 cho phép 8255 gởi dữ kiện đến CPU trên tuyến dữ kiện chủ yếu là
cho phép CPU đọc dữ kiện từ 8255.
WR=0 – CPU từ điều khiển hay dữ kiện ra 8255.
Đệm
dữ
kiện
Điều khiển
Nhóm A
Nhóm A
Cửa A
Nhóm A
Cửa C
Phần cao
Nhóm B
Cửa C
Phần thấp
Nhóm B
Cửa B
Kiểm
soát
đọc
ghi
Điều khiển
nhóm B
A0 A1 Chọn cửa
0 0 Cửa A
0 1 Cửa B
1 0 Cửa C
1 1 Cửa điều khiển

RESET: =1 xóa các thanh ghi bên trong gồm thanh ghi điều khiển và các
cửa A, B, C ở mode nhận.
3 – Điều khiển nhóm A và B:
Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần mềm, chủ yếu là
CPU xuất phát từ điều khiển đến 8255. Từ điều khiển gồm các thông tin như chế
độ (mode), bit set, bit reset, v.v … sẽ khởi động cấu hình hoạt động của 8255. Thanh
ghi từ điều khiển chỉ có thể viết vào mà không đọc ra.
4 – Các cửa A, B, C:
8255 gồm 3 cửa A, B và C. Mỗi cửa gồm 8 bits. Các cửa này có thể được lập
trình bởi phần mềm để có thể hoạt động ở chế độ thích hợp.
Cửa A: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits.
Cửa B: gồm bộ đệm, cài ngõ ra 8 bits và cài ngõ vào 8 bits.
Cửa C: đệm và cài ngõ ra 8 bits và đệm 8 bits ngõ vào (không cài).
Cửa C có thể chia làm 2 phần, mỗi phần 4 bits cho điều khiển mode.
Mỗi phần được dùng kết hợp với cửa A hay B tạo nên các tín hiệu điều
khiển.
II – MÔ TẢ CHI TIẾT:
1 – Chọn chế độ (Mode):
Có 3 chế độ hoạt động cơ bản thích hợp cho phần mềm:
Mode 0 : Vào/ra cơ bản
Mode 1 : Vào/ra “bắt tay” (chỉ cho phép 1 trong chiều)
Mode 2 : Truyền dữ kiện hai chiều
Khi RESET, tất cả các cửa được thiết lập ở chế độ nhập (input), tức là cả 24
đường đều ở 3 trạng thái. Sau khi RESET 8255 có thể duy trì ở chế độ nhập mà
không cần khởi động gì thêm. Trong khi thực hiện chương trình hệ thống, có thể
chọn bất kỳ mode nào bằng cách xuất đến 8255 từ điều khiển. Điều này cho phép
chỉ cần một 8255 mà có thể phục vụ nhiều kiểu thiết bò ngoại vi.
Các chế độ cửa A và B có thể đònh nghóa riêng biệt. Còn của C được chia
làm hai phần cho hai nhóm tùy yêu cầu đònh nghóa chế độ cửa A và B. Ta có từ
điều khiển cho 8255 như sau: (trang sau).

2 – Đặc tính xóa/thiết lập bit cho cửa C khi nó dùng làm tín hiệu trạng
thái/điều khiển cho cửa A/B:
Ta dùng lệnh OUT xuất ra từ một điều khiển, trong đó bit D7 = 0.
D7 D6 D5 D4 D3 D2 D1 D0
Nhóm B 1:in
Mode set flag Cửa C(phần thấp) 0: out
1-active Cửa B 1:in
0:out
Chọn chế độ 0:mode 0
1: mode 1
NhómA
Cửa C 1:in
(phần cao) 0:out
Cửa A 1: in
0: out
00: mode 0
Chọn mode 01: mode 1
1X: mode 2
Hình 3.2
Khi chọn mode cho port A, các bit D3, D4, D5 không còn ý nghóa nữa. Lúc
đó cửa A là hai chiều, còn phần cao cửa C sẽ làm tín hiệu điều khiển và trạng thái
cho cửa A. (Bitset và reset flag), phần còn lại của điều khiển có ý nghóa như sau:
D7 D6 D5 D4 D3 D2 D1 D0
x x x Bit set / Reset
0: Reset
1:set
Bit select
Bit set / Reset fleg
0 - active 01010101
00110011

00001111
01234567
Hình 3.3
Mỗi lần xuất ra một từ điều khiển đến 8255 với D7 = 0, chỉ tác động đến 1
bit của cửa C (được chọn bởi Bit select).
3 – Chức năng kiểm soát ngắt quãng:
Khi 8255 được lập trình ở mode 1 hay 2, các tín hiệu điều khiển được cung
cấp có thể được dùng để yêu cầu ngắt quãng CPU. Tín hiệu yêu cầu ngắt quãng
phát ra từ cửa C có thể bò cấm hay cho phép bằng cách set hay reset flip-flop INTE
tương ứng, dùng chức năng set/reset bit của cửa C.
Chức năng này cho phép CPU cấm hay cho phép các thiết bò I/O đã xác đònh
ngắt quãng CPU mà không làm ảnh hưởng các thiết bò khác trong cấu trúc ngắt
quãng.
III – CHẾ ĐỘ HOẠT ĐỘNG:
1 – Mode 0 (Vào/ra cơ bản)
Không có “bắt tay”, dữ kiện được ghi và đọc một cách dơn giản đến phức
tạp hay từ 1 cửa đã chỉ ra. Các đặc tính cơ bản ở mode 0:
• 2 cửa 8 bits và 2 cửa 4 bits
• Bất kỳ cửa nào cũng có thể là ra hay vào
• Ngõ ra được cài
• Ngõ vào không cài
• Cho phép 16 dạng vào / ra ở mode
Ví dụ : Từ điều khiển 83h xáx đònh cửa A ra, B vào.
Phần cao của C : ra, phần thấp của C : vào.
2 – Mode 1 (Vào/ra có bắt tay):
Ở mode 1, cửa A và B dùng những đường ở cửa C để phát hay nhận các tín
hiệu bắt tay.
Đònh nghóa các tín hiệu bắt tay cho phần nhập:
• STB (Strobe Input): mức thấp ở ngõ vào này nạp dữ liệu vào 8255.
• IBF (Input Buffer Full): ngõ ra =1 để thông báo dữ kiện đã được nạp vào mạch

cài nhập
Nói cách khác, mức thấp của STB sẽ thiết lập IBF = 1, và IBF bò xóa bởi
cạnh lên RD.
* INTR (Interput Request): ngõ ra = 1 để yêu cầu ngắt khoảng CPU, INTR
được set bởi STB = 1 và IBF = 1, INTR = 1.
INTR bò reset bởi cạnh xuống RD
INTR A kiểm soát bởi bit set / reset PC 4
INTR B kiểm soát bởi bit set / reset PC 2
Hình 3.4
Đònh nghóa tín hiệu điều khiển phần xuất:
• OBF (Output Buffer Full FF)
Ngã ra xuống 0 để báo là CPU đã ghi thông tin ra cửa xác đònh. OBF FF được
set bởi cạnh lên của xung WR từ CPU và bò reset bởi ACK = 0 do ngoại vi (tức
là ở mức không tích cực).
*ACK (Acknowledge Input)
Mức thông báo cho 8255 biết thông tin từ cửa A hay B đã nhận bởi ngoại vi.
*INTR (Interput Request)
Mức 1 ở ngõ ra dùng để yêu cầu ngắt quãng CPU khi ngoại vi đã nhận dữ kiện
phát bởi CPU.
INTR set bởi ACK = 1, OBF = 1 và INTE = 1
INTR bò xóa bởi cạnh xuống xung WR
INTE A kiểm soát bởi bit set / reset PC 6
INTE B kiểm xoát bởi bit set / reset PC

×