Nội dung bài giảng môn Thiết bị ngoại vi và ghép nối nội dung chương 2: Giao thức ghép nối

Nội dung bài giảng môn Thiết bị ngoại vi và ghép nối nội dung chương 2: Giao thức ghép nối của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

lOMoARcPSD|10435767
CHƯƠNG 2 GIAO THC GHÉP NI LT3
2.1 GIAO THỨC GHÉP NỐI
2.1.1 Tín hiu và các mô hình kết ni thiết bị vi máy tính
Tín hiu các biu hin vt của thông tin. Trong kthut, tín hiu hai dạng
tín hiệu iện tín hiệu phi iện. Các tín hiệu iện thường dưới dạng như: dòng iện, iện áp,
mức iện áp ặc trưng cho các logic s0,1, xung dòng iện iện áp. Các tín hiệu phi iện khá
phong phú tuỳ thuc vào ng dụng, thiết bị và môi trường hoạt ộng. Mt stín hiệu phi
iện thkến như: nhiệt , áp sut, m, cao, tốc quay, khoảng cách, âm thanh,
hành trình …. Để thu nhn xtrong các hthng iều khin, các tín hiu phi iện
thông thường cn phải ưc biến ổi thành tín hiu iện, bng các bbiến i hoc các cảm
biến. Để cung cp cho các hthng máy tính vi xhay các hthống iều khin s
khác, các tín hiệu iện cần ược shoá bng các vi mạch biến ổi tương tự sang s. Các tín
hiu stừ các hthng vi xử lý cung cp ra bên ngoài có thể ược cung cp trc tiếp,
thược biến i sang dạng tương tthphải khuếch i cho phù hp vi các thiết
bị.
Hình 2.1: Quá trình biến ổi tín hiu vào hthng vi xử lý
Trong các hthng vi xử lý y tính, các thiết bị sẽ giao tiếp qua các cng giao
tiếp chuẩn như: COM, LPT, USB, IEEE1394, LAN, MODEM, …, hoc thông qua h
thng bus giao tiếp thc hin trên các cng hoc hthng khe cm. Các cng giao tiếp
chun thường các cng giao tiếp tín hiu s, khi thc hin các thiết bị giao tiếp qua
các cng y cn phải quan tâm ti các thông scủa cổng như: Mc tín hiu vt lý,
khuôn dạng dliu truyn, tốc truyn dliu chế hỏi áp khi truyn nhn dliu.
lOMoARcPSD|10435767
Khi giao tiếp vi các bus hthống (PCI, ISA …), cần phi thc hin các bo mạch iện
t. Các bo mạch này có ththc hin chức năng của mt cng chun, có thể là hthng
mạch iện ttruyn nhn trc tiếp các tín hiu ON/OFF dưới dạng s, shoá các tín hiệu
tương tự, hoc thm chí nhn trc tiếp các tín từ cảm biến, hoc các tín hiệu phi iện.
Hình 2.1 tả quá trình biến i các tín hiu ở các dạng khác nhau cung cp vào h
thng vi xử lý. Các tín hiệu phi iện ược biến i qua các cảm biến thành tín hiệu iện thông
thường ngưỡng rt nhỏ. Các tín hiu y, hoc các tín hiu dòng iện iện áp ngưỡng
nhỏ cung cp trc tiếp tthiết bị, sẽ ược khuếch ại cho ra mc dòng iện hoặc iện áp
mc tiêu chun. Các mạch khuếch i y cn trkháng vào rt ln chng nhiu
cao, thường s dụng c mạch khuếch ại o lường (Instrumentation Amplifier). Hin nay
trong công nghip thường sdụng các bkhuếch i chun, ược các hãng chế tạo cung
cp sn, ược gọi các bbiến i (transducer). Các bbiến i y thnhn tín hiu
nhỏ ngõ vào, hoc có u vào chun có các cảm biến, và cho ra tín hiu chun 4- 20 mA
hoc 0 10V. nhiu loại bbiến i tích hp sn nhiu ngõ vào cho nhiu loại tín
hiu, nhiu loại cảm biến, hoc u vào thông minh có thlp trình chọn loại tín hiu
hoc cảm biến ngõ vào.
Tín hiu ngõ ra bbiến i, hoc các tín hiu mc ln cung cp t thiết bị sẽ ược biến
ổi tương tự sang s, m mc scung cp vào hthng vi x. Các tín hiu s
ON/OFF cung cp tthiết bị thì không cn biến i mà cung cp trc tiếp vào hthng
vi xử lý. Phn mm trong hthng vi xử lý sẽ thc hin vic tạo khuôn dạng dliu,
chế hỏi áp truyn nhn và cung cp tín hiu ti các vi mạch tạo mc tín hiu lp vt
ể có thgiao tiếp vi các cng tiêu chun của máy tính.
Hình 2.2: Quá trình biến ổi tín hiu ra hthng vi xử lý
Đối vi các tín hiu ra, sẽ bao gm các tín hiệu óng mthiết bị, các mc tín hiu
tương tự, các tín hiu hin thị, các tín hiu cảnh báo. Tu theo công sut yêu cu tthiết
bị, các ngõ ra sóng m, hoặc tương tự sẽ sử dụng các mạch hoc các thiết bị khuếch i
lOMoARcPSD|10435767
khác nhau. Vi các mạch giao tiếp qua bus hthng bng các khe cm, tín hiệu iều khiển
óng m thường cung cp thông qua các bm sưa ra các bkhuếch i công sut
bên ngoài. Để cung cp tín hiệu iều khiển tương tự ngõ ra, cn sdng các bbiến i
số sang tương tự. Ngày nay các mạch khuếch ại iện tcông sut thường nm trong các
thiết bị iều khin chuyên dụng, Ngoài vic khuếch ại tín hiu cung cp ththng vi x
, các thiết bị iều khin y còn thêm các tính năng chọn chế hoạt ng, chọn các
nh năng bảo v, hin thị trạng thái hoạt ộng …, chúng thường ược gọi các bi
(driver) hay các bộ kích (actuator). Và ể có thêm các tính năng thông minh trong các b
iều khin y thường tích hp các hthng vi xvi các phn mm chuyên dụng cho
việc iều khin mt thiết bị cụ thnhư: iều khin tốc ộng DC, ng AC, nhiệt , áp
suất, …. Hình 2.2 tả vic biến i các tín hiu cung cp các tín hiệu iều khin ngõ
ra trên bo mạch giao tiếp qua khe cm máy tính.
Đối vi các thiết bị nhn tín hiu trc tiếp tc cng ra chun máy tính, thì cn phải
tích hp mt hthng vi x vi cng giao tiếp phn cng phn mm giao tiếp
tương thích. Chúng sẽ nhận thông tin iều khin sty tính, sử dụng các vi mạch biến
i và khuếch ại tín hiu ể iều khiển cơ cấu chp hành. Tt cảc tính năng kể trên ng
có thể ược tích hp trong mt thiết bị iều khin chuyên dụng.
Hình 2.3 mô tả vic xtín hiu ra tc cng chun máy tính.
Hình 2.3: Quá trình biến ổi tín hiu ra giao tiếp vi cng chun y tính
Như vậy, có ththc hin các hthng mạch iện tvi các chng năng vào ra thích
hp, giao tiếp vi bus hthng trc tiếp iều khin các thiết bị từ máy tính. Khi ó toàn
bộ chương trình iều khin u hoạt ng trên máy tính. Tng phn hoc toàn bc chc
năng iều khin ng có ththc hin trong các thiết bị chuyên dụng ược iều khin bng
mt hthng vi x . Các thiết bị iều khiển nvậy sẽ giao tiếp vi máy tính thông qua
các cng vào ra chun, hoc các bo mạch tạo ra các bus chun. Khi ó chương trình iều
lOMoARcPSD|10435767
khin sẽ nm ngay trong thiết bị iều khin, máy tính óng vai trò là thiết bị giao tiếp vi
người sdụng, sẽ thc hin các chc năng như: thiết lp tham shoạt ộng, theo dõi
trạng thái hoạt ng, u trữ c thông shoạt ộng . c nhà máy công nghip, c
công oạn sản xut sẽ ược iều khin bng các hthống iều khin lp trình chuyên dụng,
chúng ược gọi các hthống iều khin con (Sub Control). Nhiu hthống iều khiển
con như thế ược ni mạng vi nhau ể ưa về hthng máy tính tại phòng iều khin trung
tâm (CCR Central Control Room). c chương trình giao tiếp vi người sử dụng, trên
các y tính tại phòng iều khin trung m, sthc hin vic truyn nhn dliu vi
các hthng iều khin con, ể giám sát và iều khin tt cả hoạt ộng của toàn nhà máy.
2.1.2 Khuôn dạng dữ liệu Tại các cng vào ra y tính, thun tin cho vic truyn
nhn dliu, dliu svào ra thường ược óng gói thành các khung truyn theo tiêu
chun của các tchc chun hoá quc tế, hoc theo thiết kế của người sdụng. Các
khung truyền ơn giản ththc hin tng bng các vi mạch phn cng, các khung
truyn phc tạp ược thc hin bng phn mm. Khi khung truyền ược thc hin bng
phn cng, phn mm người sử dụng có thsử dụng các lnh truyn dliu trc tiếp ti
cng, các thông tin khác của khung truyn sẽ ưc t ng thêm vào theo thiết lp phn
cng ttrước. Khi khung truyền ược chun hoá theo phn mm, các chương trình người
sdụng cn lp trình ể tạo ra khung truyền tương ứng, hoc sdụng các htrợ của phn
mm trong hthng, nếu mun kết ni vi c thiết bị ng chun. Mt gói tin thông
thường bao gm các thành phần như:
- Tiêu (Header): mang các thông tin tên bản tin, tên gói, stht, tbt
tay, ký tng b, s tsbyte trong gói tin …. Tiêu không mang thông
tin cn truyn, chỉ bao gm các thông tin s dụng cho vic kết ni các
thông tin cn thiết khác cho vic truyn dliu.
- Ni dung (Content): là thông tin cn truyn.
- Mã kết thúc (Trailer): cha các thông tin v mã kim tra li, mã thông báo kết
thúc gói tin ….
TxD
Hình 2.4: Khung truyn dliu theo chun RS232
Hình 2.4 mô tả khung truyn dliệu ược tạo ra bng vi mạch phn cng truyền i trên
cng truyn theo chun RS232. Bình thường, ường truyn d liu ni tiếp của cng
trạng thái logic cao. Khi chương trình ghi mt dliu ti cng truyền i, trước hết vi
mạch phn cng o ưng truyn xung mc thp trong khoảng thi gian của mt bit,
Stop bit
Start bit
c bit d
li
u
ượ
c l
p
trình tr
ướ
Bit chăn
lẻ
Making
làm d
u
lOMoARcPSD|10435767
giá trị này ược gọi bit bắt u (start bit). Tiếp theo các bit dliu ln lượt ược dịch
ra trên ường truyn theo tốc ộ ịnh trước.
Khi dliệu ã truyn hết, vi mạch phn cng tng tính toán thêm vào bit kim
tra chn lẻ (parity bit). Và cui cùng nó duy trì ường truyn mc cao sau mt khoảng
thi gian na gọi bit dng (stop bit). Nếu không dliu truyn tiếp, ường truyn
sẽ tiếp tục ược duy trì mc cao, nếu mt dliu mới ưc ghi ti thì mt khung
truyn mi lại tiếp tục truyn ra. Để thc hin các thiết bị có cng giao tiếp theo khung
truyn phn cứng như trên, cn phải sử dụng các vi mạch cùng chun, và thc hin vic
thiết lp các tham s hoạt ộng cho hai vi mạch hai bên truyn nhn ging nhau.
Hình 2.5 mô tả gói dliệu ược thc hin bng phn mm trên cng truyn USB, gói
dliu sẽ ược bắt u bng nhn dạng i 8 bit (PID Packet Identification), sau ó
là ni dung dliu truyn t0 ến 1023 byte, và cui cùng là mã kim tra li vòng 16
bit (CRC16 Cyclic Redundancy Code 16).
Hình 2.5: Gói dliu theo chun USB
Trên máy tính các cng vào ra chuẩn như: RS232, USB, LAN, IEEE1394 u có các
khung truyn dliu chun. Người sdụng ng có thsử dụng các cng này và phn
mm của mình tạo nên các khung truyn riêng. dụ, phn dliu trong khung truyn
RS232 có ths dụng làm ký tự ồng b, a chỉ, loại dliệu …, hay chỉnh là dliu cn
truyn, và khung truyn ln sẽ bao gm nhiu khung truuyn RS232 như trên.
2.1.3 Tốc ộ trao ổi thông tin
Tốc ộ truyn dliu thường ược tính bng slượng bit truyn nhn trong mt ơn vị
thi gian, hoc slượng bit thông tin cn truyn trong một ơn vị thi gian (bỏ qua các
trường khác trong khung truyn). Đơn vị tốc ộ truyn thường là kilo bit trên giây (Kbps
Kilo Bit Per Second), hoc KB trên giây (Kilo Byte Per Second). Thông thường tốc ộ
truyn nhn trên các cng có ththiết lp bng phn mm, truyn nhn dliu thì
tốc ộ truyn của hai bên truyn nhn phải ược thiết lp ging nhau.
Ngoài ra, cn chú ý ti các yếu tố làm nh hưởng ti tốc ộ truyn dliệu như:
- Khoảng các truyn càng xa tốc truyn nhn càng giảm do nhiu suy hao
trên ường truyn lớn hơn. Các chun truyn vt lý khác nhau ng cho khoảng
cách truyn cực i khác nhau. dụ RS232C vi logic ± 12V truyn cực ại ược
lOMoARcPSD|10435767
100 mét, RS485 vi mc 1 vi sai lớn hơn 0.35V thtruyn cực ại ược
1000 mét.
- Môi trường truyn dliệu như tuyến, cáp quang, p ng trục, cáp xon cp
ng nh hưởng ti tốc truyn dliệu do c tính suy hao khả năng
chống nhiu của chúng khác nhau.
- Phương pháp iều chế n hiu truyn ng nh hưởng ti tốc ộ truyn dliu.
Ví dụ, tốc truyn trên các cng y tính n: Cng RS232 tốc truyn có th
thay ổi là: 1200, 2400, 4800, 9600 hoc 19200 Baud. Cng LPTchế ộ SPP có tốc ộ 50
100 Kbps, chế ECP tốc 2 4 Mbps. Cng LAN có tốc 10, 100 hoc 1000
Mbps ….
2.1.4 Kiểm tra, sửa lỗi, nâng cao ộ tin cậy
Khi truyn dliu, trên mt kênh truyn o ó, rt thường hay xảy ra li do c
nguyên nhân như: môi truyn truyn thay ổi như truyn vô tuyến khi mây mưa, nhiu
c hthng bên ngoài c ng vào, nhiu ty ra trong hthng truyn nhn. Các
li xảy ra sẽ làm sai i một hoc nhiu bit của d liu truyn, làm dliu ti bên nhn sẽ
không sdụng ược na, dliu y cần ược sa lại hoc truyn lại. Để dliu truyn
nhn tt gia hai bên thông thường các hthng sử dụng cơ chế sa lỗi như sau:
- Trước tiên bên nhn phát hin ra li, bên truyn sẽ thêm vào mã sa sai truyn ti
bên nhn cùng vi dliu cn truyn. nhiu loại sa sai khác nhau,
chỉ xác nh li, thsdụng bên nhn tsa sai các li mt bit,
mã có thsửa sai ược li nhiu bit.
- Bên nhn da vào sa sai xác nh dliu nhận ược li hay không. Thông
thường mã sửa sai ược tạo ra từ chính dliu cn truyn theo mt quy lut nhất ịnh,
và bên nhn sẽ sử dụng úng quy luật ó ể xác ịnh li.
- Tiếp theo nếu có li, bên nhn sẽ da vào mã sa sai sa lại dliệu ã nhn ược.
- Nếu vic sa li không thành công hoc hthng không chế sa li, hthng
thhoạt ộng úng, chương trình phn mm cn xây dựng chế hỏi áp, bên nhn
có thyêu cu bên truyn thc hin vic truyn lại dliu bị li.
Mt số mã sa sai thường ược sử dụng trong các hthng vi xử lý như:
- chn lẻ: bên truyn sẽ da vào sbit 1 của dliu truyn, xác nh giá trị ca
bit chn lẻ, m bảo sao cho sbit 1 trong gói dliu truyền i luôn là mt schn,
hoc luôn là mt số lẻ.
- vòng (CRC): bên truyn sẽ tạo ra sa sai bằng a thức sinh theo bc quy
nh gia bên truyn và bên nhn (tham khảo thêm vquy tc tao mã CRC). Mã này
có thsửa ược các lỗi bit ơn.
lOMoARcPSD|10435767
- Mã kim tra tng (BCC Block Check Sum): sau khi truyn xong mt khi dliu,
bên truyn sẽ thc hin mt phép tính (ví dụ XOR) tt cả các dliệu ã truyn, ể tạo
thành mã kin tra tng (BCC) truyn ti bên nhn. Bên nhn ng sẽ thc hin phép
nh tương tự vi các dliệu ã nhận ược, so sánh vi BCC của bên truyn xác
nh có li trong khi dliệu ã truyn hay không.
- Phương pháp ghi dự phòng (RAID - Redundant Arrays of Inexpensive Disks): trong
phương pháp này dliệu ược ghi ng thi lên nhiều ĩa, thông tin chn lẻ phát
sinh ược ghi lên một ĩa riêng bit hoặc ồng thi nhiều ĩa, sa sai khi cn thiết.
2.1.5 B lệnh hỏi áp
Blnh hỏi áp, ược xây dng bng c chương trình phn mm chạy trên máy tính
và thiết bị, kết ni thông minh các thiết bvi máy tính, chúng xác ịnh các tham số và
chế ộ hoạt ng khác nhau của thiết bị. Mt blnh hỏi áp ưc xây xng riêng cho tng
thiết bị, có thược tích hp trong hệ iều hành, hoc cn cài t riêng. Nó bao gm tp các
lnh hỏi (command set), các yêu cu ththng trung m, tp các trả li (response)
các thông báo trạng thái tthiết bị. Các câu lnh câu trả lời ược y dng cu
trúc cú pháp riêng. Thông thường mt câu lnh hoc trả li thường bao gm các thành
phần như:
- Mã bắt ầu bng mt ký tự riêng như: @, $, AT, #, …
- Mã lnh: t1 ến 3 byte xác ịnh loại lnh.
- Tham số của lnh t1- n byte là ni dung của lnh.
- Mã sa li cho lnh, thường sử dụng mã CRC
- Mã kết thúc lnh, thường sử dụng các ký triêng.
Ngoài ra các câu lnh và trả li còn dùng thêm các ký tự ối thoại, sử dụng các ký t
iều khiển ASCII như: ENQ (End Question), ACK (Acknowledge), NACK (Non
ACK), BELL, OK, ERROR, BUSY ….
2.1.6 Kịch bản i thoại Kịch bản i thoại tp hp các câu hỏi áp gia máy tính
thiết bị ược sp xếp theo mt kịch bản nh trước. Thông thường, kịch bản i thoại ược
xây dng cho các hthng mạng vi máy tính là chủ (Master) và thiết bị t(Slaver).
Kịch bản i thoại xây dng các bcâu hỏi và câu trả li cho các trường hp cụ thể khác
nhau, hthng thc hin các phép x tương ứng, , bảo vic kết ni gia Master và
các Slaver sao cho không xảy ra các trường hp: mt tin, tha tin, treo hthng, hỏi áp
quẩn …, hay xác ịnh hư hỏng tại các slaver.
Hình 2.6 tả mt kịch bản i thoại gia Master mt Slaver. Master ưa ra câu
lnh hỏi kết thúc câu hỏi chưa (ENQ), Slaver có thể trả li khác nhau như: ACK chp
nhn kết thúc u hỏi theo yêu cu t Master. NAK không chp nhn yêu cu t
lOMoARcPSD|10435767
Master, khi ó thMaster tiếp tc chcâu hỏi tSlaver. Hoc Slaver không trả li
(nothing), khi ó thslaver ang bận hoc bị hỏng, Master có thnh thi gian ch
(time out) chuyn qua thc hin công vic khác hoc thông o hư hỏng slaver cho
người sử dụng.
Hình 2.6: M
t kịch bản i thoại gia Master
Slaver
2.2 LỆNH ĐIỀU KHIỂN VÀO RA
2.2.1 Bản ồ vào ra - I/O Mapping
Trong hthng vi x, CPU sdụng bus a chỉ xác nh vị trí bnhhay vào ra
sẽ mun truy cp. Mt trạng thái CPU cung cấp ra bus a chỉ sẽ xác nh ti
mt vi trí duy nht trong hthng. Bus a chỉ ược sử dụng chung cho cả bnhvào
ra của hthng, nên thông thường CPUthêm mt tín hiệu iều khin ngõ ra chọn b
nhhoc vào ra. Ví dụ trong hthng CPU 8088 có 20 ường ịa chỉ, nếu
CPU cp 20 bit 0 ra trên các ường dây này tín hiu IO/M mc 0, CPU sẽ truy cp
ô nh0, còn nếu tín hiu IO/M mc 1, CPU sẽ truy cp vào ra có a chỉ 0.
lOMoARcPSD|10435767
Hình 2.7: Giải mã bnhtrong hthng 8088
Phn cng giảia chỉ phảim bảo sao cho ô nhhoc cng vào ra ược cho phép
hoạt ng truyn dliu vi CPU. Do ó, trong các hthng không sdụng hết không
gian ịa chỉ bnh, không phải thc hin mạch giải mã vào ra, người sdụng có ths
dụng tín hiu cho phép bnhcho phép cng vào ra, khi ó o ra có thtruy cp
bình thường bng các lệnh ọc ghi bnh.
Hình 2.7 mô tả vic giải mã kết ni vi bnhtrong hthng 8088. Trong hthng
này, c ưng dliệu ưc ni tCPU ti tt cả các vi mạch nh. c ường A
17
A
0
của
bus a chỉ ng ni tCPU ti tt cả c vhi mạch nh. c a chỉ A19 A18 ni ti
bn cng NAND, ể tương ứng vi mt trạng thái của hai ường này sẽ mt trong bn
ngõ vào CS của bn vi mạch nhớ ở mc thp, vi mạch ó sẽ hoạt ng, còn ba bnhcòn
lại sẽ ở trạng thái không ưc chọn. Khi vi mạch nho có CS = 0, nó sẽ hoạt ộng, các
a chỉ A
17
A
0
sẽ xác ịnh mt ô nhduy nht trong nó.
Hình 2.8 mô tả vic giải mã chọn mt cổng ra cơ bản iều khin các LED ơn. Bus d
liu của CPU sẽ ược ni ti bm s74LS245, và dliu sẽ ược chuyn tbus ra LED
khi ngõ vào cho phép (E Enable) của bộ ệm tác ộng mc thp. Các tín hiu A15 A0
IOW ược ni ti cng NAND cho phép cng m. Khi A
15
A
12
= 1111, A
11
A
0
=
0 …0 IOW = 0 cổng m sẽ ược m, nga ây sẽ mt cng ra a chỉ bng
lOMoARcPSD|10435767
F000H. Như vậy, bng cách giải a chỉ tương tự có ththc hiện ược nhiu cng vào
ra với ịa chỉ khác nhau.
Hình 2.8: Giải mã cổng ra cơ bản trong hthng 8088
Do các vào ra có nhu cu vi slượng gii hạn hơn so với bnh, nên khi truy cp
vào ra mt sa chỉ sẽ không sdụng mà luôn giá trị bng 0. Như trong hệ thng
8088, khi s dụng các lnh vào ra, CPU chỉ cung cp các a chỉ A
15
A
0
, các ịa chỉ A
19
A
16
luôn có giá trị bng 0. Tuy nhiên, a chỉ F000H của cng vào ra trên hình
2.8 sẽ không trùng vi ô nh0F000H, vì ể mcng ra này IOW phải giá trị bng 0,
trong khi ó MEMRD, MEMWR bng 1. Còn khi truy cp ô nh0F000H thì MEMRD
hoc MEMWR sẽ bng 0, trong khi IOW bng 1.
Ngoài ra nếu trên nh 2.7, nếu bnhs4 không sdụng, tín hiu cho phép
bnhy ng ths dụng cho phép cng o ra trong 2.7. Khi ó, bt ca
chỉ o hai bit A
19
A
18
= 11 u cho phép cng vào ra y, tuy nhiên mun truy cp
vào ra này cn phải sdụng các lnh truy cp bnh.
Hình 2.9 tả bản bnh vào ra trong mt hthng vi x , không gian a
chỉ bnhớ và vào ra có thchung nhau (hình 2.9a), và có thsử dụng riêng (hình
2.9b).
2.2.2 Lệnh truy cập vào ra
Các họ vi xkhác nhau sẽ tp lnh khác nhau, thế chúng ng các lnh
truy cp bnh o ra khác nhau. Các máy tính nhân thương mại phbiến trên
lOMoARcPSD|10435767
thế gii, sdụng các bvi xhọ Intel, do nh tương thích gia các thế hy tính,
nên chúng sử dụng các lệnh ọc lệnh ọc ghi bnhớ và vào ra ging nhau.
Các bvi xIntel sdụng lnh MOV (move) di chuyn dliu gia các thanh
ghi bên trong CPU các ô nhbên ngoài. Lệnh khi c dliu tbnhlênh MOV
ược vit vi cú pháp như sau:
MOV REG,MEM_ADDRESS
Trong ó REG là tên thanh ghi bên trong CPU, còn MEM_ADDRESS là a chỉ của ô
nh. Địa chỉ ô nhthcung cp theo nhiu cách khác nhau tutheo chế a chỉ cụ
th. th mt gtrị trc tiếp, thcha trong một thanh ghi a chỉ, hay ược
tính toán theo
một quy nh
trước.
(b)
Hình 2.9: Bản ồ bnh và vào ra trong hthng vi xử lý
Khi thc hin lnh, a chỉ trong lệnh ược CPU cung cấp ra bus ịa ch kèm theo tín
hiệu ọc bnhMEMR, dliu sẽ ược ược bnhcung cp ra bus dliu và ly vào
thanh ghi của CPU. Nếu có cng vào ược mkhi CPU cung cấp ịa chỉ bnh, cng s
cp dliu vào bus và ly vào thanh ghi nên trong CPU. Như vậy CPU không phân
biết vic ly dliu là tbnhhay vào ra, vic xử lý dliu ly vào như thế nào là
do chương trình người s dụng quyết ịnh.
Tương tự, lnh ghi bnhớ sẽ viết: MOV MEM_ADDRESS,REG
Địa chỉ trong lnh cũng ược cung cp ra bus a chỉ xác nh ti ô nhcn ghi kèm theo
tín hiệu iều khin ghi bnhMEMW, dliệu trong thanh ghi ược cung cp ra bus d
liu và sẽ ược ghi vào trong ô nhã ược chỉ ịnh. Và nếu c ịa chỉ do CPU cung cấp ược
giải mã ể mcng vào ra, thì dliu sẽ ược truyn qua cng vào ra cung cp cho thiết
bị.
Như vậy, các cng vào ra có thtruy cp bng cách lệnh ọc ghi bnhtrong vùng a
chỉ bnhkết hp vi vic giải mã a chỉ phn cng. Để truy cp tốt hơn các CPU sẽ s
(
a)
lOMoARcPSD|10435767
dụng các lnh vào ra riêng. Đối vi các CPU họ Intel, khi ọc dliu tvào ra có ths
dụng lnh IN (Input) vi cú pháp:
IN REG,IO_ADDRESS
Theo quy ịnh, a chỉ o ra có thxác ịnh trc tiếp bng mt giá trị trong lnh, hoc
cha trong thanh ghi DX. Khi sdụng a chỉ trc tiếp, thah ghi cha dliu phải
thanh ghi cha (Acc Accumulator), còn nếu ịa chỉ cung cp tthanh ghi DX thì có th
sử dụng thanh ghi bt kỳ khác.
Khi thc hin lnh IN, a chỉ trong lệnh ược cấp ra bus ịa chỉ cùng tín hiệu iều khiển
c bnhIOR. Giải mã phn cng sẽ cho phép mcng vào dliu tthiết bị ngoại
vi cung cp vào bus dliu và ược ly vào thanh ghi bên trong CPU. Tương t như dối
vi vào ra, nếu giải mã phn cng ược thc hin thích hp, thì ng có thsử dụng lnh
IN ể ọc dliu tmt ô nh.
Mun ghi dliu ti cng vào ra CPU thc hin lnh OUT (output) vi cú pháp:
OUT IO_ADRESS,REG
Khi thc hin lnh, a chỉ trong lnh cũng ược cung cp tới bus a chỉ m theo tín
hiu ghi vào ra IOW. Giải mã phn cng sẽ làm cho cng ra mở ể dliu do CPU cung
cp tbus dliệu ưa ra ngoài thiết bị ngoại vi.
Bảng 2.1 cung cp ng a chỉ cụ thcho các thiết bị vào ra của hthng máy tính
nhân tương thích IBM PC.
Bảng 2.1: Phn vùng ịa chỉ vào ra trong máy tính cá nhân tương thích IBM - PC
Vùng ịa
chỉ (Hex)
Thiết bị trong hệ thống
000-00F
Master DMA Controller, iều khin truy nhập trực tiếp bộ nhkếnh 1
4, 4 kênh (8 bit)
020-02F
Master PIC 8259A bộ iều khiển ưu tiên ngắt chính (IRQ0 IRQ7)
040-05F
PIT, (Programmable Interval Timer)- bộ ịnh thi
060-06F
Keyboard Port Cng bàn phím
070-071
Real Time Clock and 64 byte CMOS-RAM: Đồng hthi gian thc và
RAM CMOS
080-083
DMA Page Register các thanh ghi giữ ịa chỉ cao của DMA
0A0-0AF
PIC #2, Bộ iều khiển ưu tiên ngắt số 2, IRQ8 – IRQ15
0C0-0CF
DMAC #2, Bộ iều khin DMA s2 có 3 kênh DRQ 16 bit
0E0-0EF
Reserved dự phòng
110-16F
AVAILABLE sn sàng sử dụng
2F0-2F7
Reserved dự phòng
2F8-2FF
Serial Port COM2 cng ni tiếp COM2
lOMoARcPSD|10435767
300-31F
Prototype Adapter ng ịa chỉ cho người sử dụng phát triển
320-32F
AVAILABLE sn sàng sử dụng
340-35F
AVAILABLE sn sàng sử dụng
360-36F
Network, LAN adaptor card mạng ni b
370-377
Floppy Disk Controller ĩa mm
378-37F
Parallel Port 1, LPT1 Cng máy in s1
380-38F
SDLC Adapter
390-39F
Cluster Adapter
3A0-3AF
Reserved dự phòng
3B0-3BF
Monochrome Adapter a chỉ màn hình mono
3BC-3BF
Parallel Port 3 Cng máy in s3
3C0-3CF
EGA/VGA card màn hình màu loại EGA/VGA
3D0-3DF
Color Graphics Adapter Các màn hình ồ hoạ màu
3E8-3EF
Serial Port COM3 cng ni tiếp s3
3F0-3F7
Floppy Disk Controller Bộ iều khiển ĩa mm
3F8-3FF
Serial Port COM1 cng ni tiếp s1
220-22F
Soundblaster cards a chỉ thường sử dụng cho các card âm thanh
300-31F
Data acquisition cards Địa chỉ thường sdụng cho các card thu thp d
liu
| 1/13

Preview text:

lOMoARcPSD| 10435767
CHƯƠNG 2 – GIAO THỨC GHÉP NỐI LT3
2.1 GIAO THỨC GHÉP NỐI
2.1.1 Tín hiệu và các mô hình kết nối thiết bị với máy tính
Tín hiệu là các biểu hiện vật lý của thông tin. Trong kỹ thuật, tín hiệu ở hai dạng là
tín hiệu iện và tín hiệu phi iện. Các tín hiệu iện thường dưới dạng như: dòng iện, iện áp,
mức iện áp ặc trưng cho các logic số 0,1, xung dòng iện iện áp. Các tín hiệu phi iện khá
phong phú tuỳ thuộc vào ứng dụng, thiết bị và môi trường hoạt ộng. Một số tín hiệu phi
iện có thể kể ến như: nhiệt ộ, áp suất, ộ ẩm, ộ cao, tốc ộ quay, khoảng cách, âm thanh,
hành trình …. Để thu nhận và xử lý trong các hệ thống iều khiển, các tín hiệu phi iện
thông thường cần phải ược biến ổi thành tín hiệu iện, bằng các bộ biến ổi hoặc các cảm
biến. Để cung cấp cho các hệ thống máy tính – vi xử lý hay các hệ thống iều khiển số
khác, các tín hiệu iện cần ược số hoá bằng các vi mạch biến ổi tương tự sang số. Các tín
hiệu số từ các hệ thống vi xử lý cung cấp ra bên ngoài có thể ược cung cấp trực tiếp, có
thể ược biến ổi sang dạng tương tự và có thể phải khuếch ại cho phù hợp với các thiết bị.
Hình 2.1: Quá trình biến ổi tín hiệu vào hệ thống vi xử lý
Trong các hệ thống vi xử lý và máy tính, các thiết bị sẽ giao tiếp qua các cổng giao
tiếp chuẩn như: COM, LPT, USB, IEEE1394, LAN, MODEM, …, hoặc thông qua hệ
thống bus giao tiếp thực hiện trên các cổng hoặc hệ thống khe cắm. Các cổng giao tiếp
chuẩn thường là các cổng giao tiếp tín hiệu số, khi thực hiện các thiết bị giao tiếp qua
các cổng này cần phải quan tâm tới các thông số của cổng như: Mức tín hiệu vật lý,
khuôn dạng dữ liệu truyền, tốc ộ truyền dữ liệu và cơ chế hỏi áp khi truyền nhận dữ liệu. lOMoARcPSD| 10435767
Khi giao tiếp với các bus hệ thống (PCI, ISA …), cần phải thực hiện các bo mạch iện
tử. Các bo mạch này có thể thực hiện chức năng của một cổng chuẩn, có thể là hệ thống
mạch iện tử truyền nhận trực tiếp các tín hiệu ON/OFF dưới dạng số, số hoá các tín hiệu
tương tự, hoặc thậm chí nhận trực tiếp các tín từ cảm biến, hoặc các tín hiệu phi iện.
Hình 2.1 mô tả quá trình biến ổi các tín hiệu ở các dạng khác nhau ể cung cấp vào hệ
thống vi xử lý. Các tín hiệu phi iện ược biến ổi qua các cảm biến thành tín hiệu iện thông
thường ở ngưỡng rất nhỏ. Các tín hiệu này, hoặc các tín hiệu dòng iện iện áp ngưỡng
nhỏ cung cấp trực tiếp từ thiết bị, sẽ ược khuếch ại ể cho ra mức dòng iện hoặc iện áp ở
mức tiêu chuẩn. Các mạch khuếch ại này cần trở kháng vào rất lớn và ộ chống nhiễu
cao, thường sử dụng các mạch khuếch ại o lường (Instrumentation Amplifier). Hiện nay
trong công nghiệp thường sử dụng các bộ khuếch ại chuẩn, ược các hãng chế tạo cung
cấp sẵn, ược gọi là các bộ biến ổi (transducer). Các bộ biến ổi này có thể nhận tín hiệu
nhỏ ngõ vào, hoặc có ầu vào chuẩn có các cảm biến, và cho ra tín hiệu chuẩn 4- 20 mA
hoặc 0 – 10V. Có nhiều loại bộ biến ổi tích hợp sẵn nhiều ngõ vào cho nhiều loại tín
hiệu, nhiều loại cảm biến, hoặc có ầu vào thông minh có thể lập trình ể chọn loại tín hiệu
hoặc cảm biến ngõ vào.
Tín hiệu ngõ ra bộ biến ổi, hoặc các tín hiệu mức lớn cung cấp từ thiết bị sẽ ược biến
ổi tương tự sang số, ệm mức số và cung cấp vào hệ thống vi xử lý. Các tín hiệu số
ON/OFF cung cấp từ thiết bị thì không cần biến ổi mà cung cấp trực tiếp vào hệ thống
vi xử lý. Phần mềm trong hệ thống vi xử lý sẽ thực hiện việc tạo khuôn dạng dữ liệu, cơ
chế hỏi áp truyền nhận và cung cấp tín hiệu tới các vi mạch tạo mức tín hiệu lớp vật lý
ể có thể giao tiếp với các cổng tiêu chuẩn của máy tính.
Hình 2.2: Quá trình biến ổi tín hiệu ra hệ thống vi xử lý
Đối với các tín hiệu ra, sẽ bao gồm các tín hiệu óng mở thiết bị, các mức tín hiệu
tương tự, các tín hiệu hiển thị, các tín hiệu cảnh báo. Tuỳ theo công suất yêu cầu từ thiết
bị, các ngõ ra số óng mở, hoặc tương tự sẽ sử dụng các mạch hoặc các thiết bị khuếch ại lOMoARcPSD| 10435767
khác nhau. Với các mạch giao tiếp qua bus hệ thống bằng các khe cắm, tín hiệu iều khiển
óng mở thường cung cấp thông qua các bộ ệm số và ưa ra các bộ khuếch ại công suất
bên ngoài. Để cung cấp tín hiệu iều khiển tương tự ngõ ra, cần sử dụng các bộ biến ổi
số sang tương tự. Ngày nay các mạch khuếch ại iện tử công suất thường nằm trong các
thiết bị iều khiển chuyên dụng, Ngoài việc khuếch ại tín hiệu cung cấp từ hệ thống vi xử
lý, các thiết bị iều khiển này còn có thêm các tính năng chọn chế ộ hoạt ộng, chọn các
tính năng bảo vệ, hiển thị trạng thái hoạt ộng …, chúng thường ược gọi là các bộ lái
(driver) hay các bộ kích (actuator). Và ể có thêm các tính năng thông minh trong các bộ
iều khiển này thường tích hợp các hệ thống vi xử lý với các phần mềm chuyên dụng cho
việc iều khiển một thiết bị cụ thể như: iều khiển tốc ộ ộng cơ DC, ộng AC, nhiệt ộ, áp
suất, …. Hình 2.2 mô tả việc biến ổi các tín hiệu ể cung cấp các tín hiệu iều khiển ngõ
ra trên bo mạch giao tiếp qua khe cắm máy tính.
Đối với các thiết bị nhận tín hiệu trực tiếp từ các cổng ra chuẩn máy tính, thì cần phải
tích hợp một hệ thống vi xử lý với cổng giao tiếp phần cứng và phần mềm giao tiếp
tương thích. Chúng sẽ nhận thông tin iều khiển số từ máy tính, sử dụng các vi mạch biến
ổi và khuếch ại tín hiệu ể iều khiển cơ cấu chấp hành. Tất cả các tính năng kể trên cũng
có thể ược tích hợp trong một thiết bị iều khiển chuyên dụng.
Hình 2.3 mô tả việc xử lý tín hiệu ra từ các cổng chuẩn máy tính.
Hình 2.3: Quá trình biến ổi tín hiệu ra giao tiếp với cổng chuẩn máy tính
Như vậy, có thể thực hiện các hệ thống mạch iện tử với các chứng năng vào ra thích
hợp, giao tiếp với bus hệ thống ể trực tiếp iều khiển các thiết bị từ máy tính. Khi ó toàn
bộ chương trình iều khiển ều hoạt ộng trên máy tính. Từng phần hoặc toàn bộ các chức
năng iều khiển cũng có thể thực hiện trong các thiết bị chuyên dụng ược iều khiển bằng
một hệ thống vi xử lý. Các thiết bị iều khiển như vậy sẽ giao tiếp với máy tính thông qua
các cổng vào ra chuẩn, hoặc các bo mạch tạo ra các bus chuẩn. Khi ó chương trình iều lOMoARcPSD| 10435767
khiển sẽ nằm ngay trong thiết bị iều khiển, máy tính óng vai trò là thiết bị giao tiếp với
người sử dụng, nó sẽ thực hiện các chức năng như: thiết lập tham số hoạt ộng, theo dõi
trạng thái hoạt ộng, lưu trữ các thông số hoạt ộng …. Ở các nhà máy công nghiệp, các
công oạn sản xuất sẽ ược iều khiển bằng các hệ thống iều khiển lập trình chuyên dụng,
chúng ược gọi là các hệ thống iều khiển con (Sub Control). Nhiều hệ thống iều khiển
con như thế ược nối mạng với nhau ể ưa về hệ thống máy tính tại phòng iều khiển trung
tâm (CCR – Central Control Room). Các chương trình giao tiếp với người sử dụng, trên
các máy tính tại phòng iều khiển trung tâm, sẽ thực hiện việc truyền nhận dữ liệu với
các hệ thống iều khiển con, ể giám sát và iều khiển tất cả hoạt ộng của toàn nhà máy.
2.1.2 Khuôn dạng dữ liệu Tại các cổng vào ra máy tính, ể thuận tiện cho việc truyền
nhận dữ liệu, dữ liệu số vào ra thường ược óng gói thành các khung truyền theo tiêu
chuẩn của các tổ chức chuẩn hoá quốc tế, hoặc theo thiết kế của người sử dụng. Các
khung truyền ơn giản có thể thực hiện tự ộng bằng các vi mạch phần cứng, các khung
truyền phức tạp ược thực hiện bằng phần mềm. Khi khung truyền ược thực hiện bằng
phần cứng, phần mềm người sử dụng có thể sử dụng các lệnh truyền dữ liệu trực tiếp tới
cổng, các thông tin khác của khung truyền sẽ ược tự ộng thêm vào theo thiết lập phần
cứng từ trước. Khi khung truyền ược chuẩn hoá theo phần mềm, các chương trình người
sử dụng cần lập trình ể tạo ra khung truyền tương ứng, hoặc sử dụng các hỗ trợ của phần
mềm trong hệ thống, nếu muốn kết nối với các thiết bị cùng chuẩn. Một gói tin thông
thường bao gồm các thành phần như: -
Tiêu ề (Header): mang các thông tin tên bản tin, tên gói, số thứ tự, ký tự bắt
tay, ký tự ồng bộ, số ký tự số byte trong gói tin …. Tiêu ề không mang thông
tin cần truyền, mà chỉ bao gồm các thông tin sử dụng cho việc kết nối và các
thông tin cần thiết khác cho việc truyền dữ liệu. -
Nội dung (Content): là thông tin cần truyền. -
Mã kết thúc (Trailer): chứa các thông tin về mã kiểm tra lỗi, mã thông báo kết thúc gói tin …. TxD Bit chăn
Making Start bit Cá c bit d ữ li ệ u ượ c l ậ p lẻ Stop bit làm d ấ u trình tr ướ c
Hình 2.4: Khung truyền dữ liệu theo chuẩn RS232
Hình 2.4 mô tả khung truyền dữ liệu ược tạo ra bằng vi mạch phần cứng truyền i trên
cổng truyền theo chuẩn RS232. Bình thường, ường truyền dữ liệu nối tiếp của cổng ở
trạng thái logic cao. Khi chương trình ghi một dữ liệu tới cổng ể truyền i, trước hết vi
mạch phần cứng kéo ường truyền xuống mức thấp trong khoảng thời gian của một bit, lOMoARcPSD| 10435767
giá trị này ược gọi là bit bắt ầu (start bit). Tiếp theo là các bit dữ liệu lần lượt ược dịch
ra trên ường truyền theo tốc ộ ịnh trước.
Khi dữ liệu ã truyền hết, vi mạch phần cứng tự ộng tính toán và thêm vào bit kiểm
tra chẵn lẻ (parity bit). Và cuối cùng nó duy trì ường truyền ở mức cao sau một khoảng
thời gian nữa gọi là bit dừng (stop bit). Nếu không có dữ liệu truyền tiếp, ường truyền
sẽ tiếp tục ược duy trì ở mức cao, nếu có một dữ liệu mới ược ghi tới thì một khung
truyền mới lại tiếp tục truyền ra. Để thực hiện các thiết bị có cổng giao tiếp theo khung
truyền phần cứng như trên, cần phải sử dụng các vi mạch cùng chuẩn, và thực hiện việc
thiết lập các tham số hoạt ộng cho hai vi mạch ở hai bên truyền nhận giống nhau.
Hình 2.5 mô tả gói dữ liệu ược thực hiện bằng phần mềm trên cổng truyền USB, gói
dữ liệu sẽ ược bắt ầu bằng mã nhận dạng gói 8 bit (PID – Packet Identification), sau ó
là nội dung dữ liệu truyền từ 0 ến 1023 byte, và cuối cùng là mã kiểm tra lỗi dư vòng 16
bit (CRC16 – Cyclic Redundancy Code 16).
Hình 2.5: Gói dữ liệu theo chuẩn USB
Trên máy tính các cổng vào ra chuẩn như: RS232, USB, LAN, IEEE1394 … ều có các
khung truyền dữ liệu chuẩn. Người sử dụng cũng có thể sử dụng các cổng này và phần
mềm của mình ể tạo nên các khung truyền riêng. Ví dụ, phần dữ liệu trong khung truyền
RS232 có thể sử dụng làm ký tự ồng bộ, ịa chỉ, loại dữ liệu …, hay chỉnh là dữ liệu cần
truyền, và khung truyền lớn sẽ bao gồm nhiều khung truuyền RS232 như trên.
2.1.3 Tốc ộ trao ổi thông tin
Tốc ộ truyền dữ liệu thường ược tính bằng số lượng bit truyền nhận trong một ơn vị
thời gian, hoặc số lượng bit thông tin cần truyền trong một ơn vị thời gian (bỏ qua các
trường khác trong khung truyền). Đơn vị tốc ộ truyền thường là kilo bit trên giây (Kbps
– Kilo Bit Per Second), hoặc KB trên giây (Kilo Byte Per Second). Thông thường tốc ộ
truyền nhận trên các cổng có thể thiết lập bằng phần mềm, và ể truyền nhận dữ liệu thì
tốc ộ truyền của hai bên truyền nhận phải ược thiết lập giống nhau.
Ngoài ra, cần chú ý tới các yếu tố làm ảnh hưởng tới tốc ộ truyền dữ liệu như: -
Khoảng các truyền càng xa tốc ộ truyền nhận càng giảm do nhiễu và suy hao
trên ường truyền lớn hơn. Các chuẩn truyền vật lý khác nhau cũng cho khoảng
cách truyền cực ại khác nhau. Ví dụ RS232C với logic ± 12V truyền cực ại ược lOMoARcPSD| 10435767
100 mét, RS485 với mức 1 là vi sai lớn hơn 0.35V có thể truyền cực ại ược 1000 mét. -
Môi trường truyền dữ liệu như vô tuyến, cáp quang, cáp ồng trục, cáp xoắn cặp
… cũng ảnh hưởng tới tốc ộ truyền dữ liệu do ặc tính suy hao và khả năng
chống nhiễu của chúng khác nhau. -
Phương pháp iều chế tín hiệu truyền cũng ảnh hưởng tới tốc ộ truyền dữ liệu.
Ví dụ, tốc ộ truyền trên các cổng máy tính như: Cổng RS232 có tốc ộ truyền có thể
thay ổi là: 1200, 2400, 4800, 9600 hoặc 19200 Baud. Cổng LPTở chế ộ SPP có tốc ộ 50
– 100 Kbps, ở chế ộ ECP có tốc ộ 2 – 4 Mbps. Cổng LAN có tốc ộ 10, 100 hoặc 1000 Mbps ….
2.1.4 Kiểm tra, sửa lỗi, nâng cao ộ tin cậy
Khi truyền dữ liệu, trên một kênh truyền nào ó, rất thường hay xảy ra lỗi do các
nguyên nhân như: môi truyền truyền thay ổi như truyền vô tuyến khi có mây mưa, nhiễu
ở các hệ thống bên ngoài tác ộng vào, nhiễu tự gây ra trong hệ thống truyền nhận. Các
lỗi xảy ra sẽ làm sai i một hoặc nhiều bit của dữ liệu truyền, làm dữ liệu tới bên nhận sẽ
không sử dụng ược nữa, và dữ liệu này cần ược sửa lại hoặc truyền lại. Để dữ liệu truyền
nhận tốt giữa hai bên thông thường các hệ thống sử dụng cơ chế sửa lỗi như sau: -
Trước tiên ể bên nhận phát hiện ra lỗi, bên truyền sẽ thêm vào mã sữa sai truyền tới
bên nhận cùng với dữ liệu cần truyền. Có nhiều loại mã sửa sai khác nhau, có mã
chỉ ể xác ịnh có lỗi, có mã có thể sử dụng ể bên nhận tự sửa sai các lỗi một bit, có
mã có thể sửa sai ược lỗi nhiều bit. -
Bên nhận dựa vào mã sửa sai ể xác ịnh dữ liệu nhận ược có lỗi hay không. Thông
thường mã sửa sai ược tạo ra từ chính dữ liệu cần truyền theo một quy luật nhất ịnh,
và bên nhận sẽ sử dụng úng quy luật ó ể xác ịnh lỗi. -
Tiếp theo nếu có lỗi, bên nhận sẽ dựa vào mã sửa sai ể sửa lại dữ liệu ã nhận ược. -
Nếu việc sửa lỗi không thành công hoặc hệ thống không có cơ chế sửa lỗi, ể hệ thống
có thể hoạt ộng úng, chương trình phần mềm cần xây dựng cơ chế hỏi áp, ể bên nhận
có thể yêu cầu bên truyền thực hiện việc truyền lại dữ liệu bị lỗi.
Một số mã sửa sai thường ược sử dụng trong các hệ thống vi xử lý như: -
Mã chẵn lẻ: bên truyển sẽ dựa vào số bit 1 của dữ liệu truyền, ể xác ịnh giá trị của
bit chẵn lẻ, ể ảm bảo sao cho số bit 1 trong gói dữ liệu truyền i luôn là một số chẵn,
hoặc luôn là một số lẻ. -
Mã dư vòng (CRC): bên truyền sẽ tạo ra mã sửa sai bằng a thức sinh theo bậc quy
ịnh giữa bên truyền và bên nhận (tham khảo thêm về quy tắc tao mã CRC). Mã này
có thể sửa ược các lỗi bit ơn. lOMoARcPSD| 10435767 -
Mã kiểm tra tổng (BCC – Block Check Sum): sau khi truyền xong một khối dữ liệu,
bên truyền sẽ thực hiện một phép tính (ví dụ XOR) tất cả các dữ liệu ã truyền, ể tạo
thành mã kiển tra tổng (BCC) truyền tới bên nhận. Bên nhận cũng sẽ thực hiện phép
tính tương tự với các dữ liệu ã nhận ược, và so sánh với BCC của bên truyền ể xác
ịnh có lỗi trong khối dữ liệu ã truyền hay không. -
Phương pháp ghi dự phòng (RAID - Redundant Arrays of Inexpensive Disks): trong
phương pháp này dữ liệu ược ghi ồng thời lên nhiều ĩa, và thông tin chẵn lẻ phát
sinh ược ghi lên một ĩa riêng biệt hoặc ồng thời nhiều ĩa, ể sửa sai khi cần thiết.
2.1.5 Bộ lệnh hỏi áp
Bộ lệnh hỏi áp, ược xây dựng bằng các chương trình phần mềm chạy trên máy tính
và thiết bị, ể kết nối thông minh các thiết bị với máy tính, chúng xác ịnh các tham số và
chế ộ hoạt ộng khác nhau của thiết bị. Một bộ lệnh hỏi áp ược xây xựng riêng cho từng
thiết bị, có thể ược tích hợp trong hệ iều hành, hoặc cần cài ặt riêng. Nó bao gồm tập các
lệnh hỏi (command set), là các yêu cầu từ hệ thống trung tâm, và tập các trả lời (response)
là các thông báo trạng thái từ thiết bị. Các câu lệnh và câu trả lời ược xây dựng có cấu
trúc và cú pháp riêng. Thông thường một câu lệnh hoặc trả lời thường bao gồm các thành phần như: -
Mã bắt ầu bằng một ký tự riêng như: @, $, AT, #, … -
Mã lệnh: từ 1 ến 3 byte xác ịnh loại lệnh. -
Tham số của lệnh từ 1- n byte là nội dung của lệnh. -
Mã sửa lỗi cho lệnh, thường sử dụng mã CRC -
Mã kết thúc lệnh, thường sử dụng các ký tự riêng.
Ngoài ra các câu lệnh và trả lời còn dùng thêm các ký tự ối thoại, sử dụng các ký tự
iều khiển ASCII như: ENQ (End Question), ACK (Acknowledge), NACK (Non
ACK), BELL, OK, ERROR, BUSY ….
2.1.6 Kịch bản ối thoại Kịch bản ối thoại là tập hợp các câu hỏi áp giữa máy tính và
thiết bị ược sắp xếp theo một kịch bản ịnh trước. Thông thường, kịch bản ối thoại ược
xây dựng cho các hệ thống mạng với máy tính là chủ (Master) và thiết bị là tớ (Slaver).
Kịch bản ối thoại xây dựng các bộ câu hỏi và câu trả lời cho các trường hợp cụ thể khác
nhau, ể hệ thống thực hiện các phép xử lý tương ứng, ả, bảo việc kết nối giữa Master và
các Slaver sao cho không xảy ra các trường hợp: mất tin, thừa tin, treo hệ thống, hỏi áp
quẩn …, hay xác ịnh hư hỏng tại các slaver.
Hình 2.6 mô tả một kịch bản ối thoại giữa Master và một Slaver. Master ưa ra câu
lệnh hỏi kết thúc câu hỏi chưa (ENQ), Slaver có thể trả lời khác nhau như: ACK – chấp
nhận kết thúc câu hỏi theo yêu cầu từ Master. NAK – không chấp nhận yêu cầu từ lOMoARcPSD| 10435767
Master, khi ó có thể Master tiếp tục chờ câu hỏi từ Slaver. Hoặc Slaver không trả lời
(nothing), khi ó có thể slaver ang bận hoặc bị hư hỏng, Master có thể ịnh thời gian chờ
(time out) ể chuyển qua thực hiện công việc khác hoặc thông báo hư hỏng slaver cho người sử dụng. Hình 2.6: M
ột kịch bản ối thoại giữa Master và Slaver
2.2 LỆNH ĐIỀU KHIỂN VÀO RA
2.2.1 Bản ồ vào ra - I/O Mapping
Trong hệ thống vi xử lý, CPU sử dụng bus ịa chỉ ể xác ịnh vị trí bộ nhớ hay vào ra
sẽ mà nó muốn truy cập. Một trạng thái mà CPU cung cấp ra bus ịa chỉ sẽ xác ịnh tới
một vi trí duy nhất trong hệ thống. Bus ịa chỉ ược sử dụng chung cho cả bộ nhớ và vào
ra của hệ thống, nên thông thường CPU có thêm một tín hiệu iều khiển ngõ ra ể chọn bộ
nhớ hoặc vào ra. Ví dụ trong hệ thống CPU 8088 có 20 ường ịa chỉ, nếu
CPU cấp 20 bit 0 ra trên các ường dây này và tín hiệu IO/M ở mức 0, CPU sẽ truy cập
ô nhớ 0, còn nếu tín hiệu IO/M ở mức 1, CPU sẽ truy cập vào ra có ịa chỉ 0. lOMoARcPSD| 10435767
Hình 2.7: Giải mã bộ nhớ trong hệ thống 8088
Phần cứng giải mã ịa chỉ phải ảm bảo sao cho ô nhớ hoặc cổng vào ra ược cho phép
hoạt ộng ể truyền dữ liệu với CPU. Do ó, trong các hệ thống không sử dụng hết không
gian ịa chỉ bộ nhớ, ể không phải thực hiện mạch giải mã vào ra, người sử dụng có thể sử
dụng tín hiệu cho phép bộ nhớ ể cho phép cổng vào ra, và khi ó vào ra có thể truy cập
bình thường bằng các lệnh ọc ghi bộ nhớ.
Hình 2.7 mô tả việc giải mã kết nối với bộ nhớ trong hệ thống 8088. Trong hệ thống
này, các ường dữ liệu ược nối từ CPU tới tất cả các vi mạch nhớ. Các ường A17 – A0 của
bus ịa chỉ cũng nối từ CPU tới tất cả các vhi mạch nhớ. Các ịa chỉ A19 và A18 nối tới
bốn cổng NAND, ể tương ứng với một trạng thái của hai ường này sẽ có một trong bốn
ngõ vào CS của bốn vi mạch nhớ ở mức thấp, vi mạch ó sẽ hoạt ộng, còn ba bộ nhớ còn
lại sẽ ở trạng thái không ược chọn. Khi vi mạch nhớ nào có CS = 0, nó sẽ hoạt ộng, các
ịa chỉ A17 – A0 sẽ xác ịnh một ô nhớ duy nhất trong nó.
Hình 2.8 mô tả việc giải mã chọn một cổng ra cơ bản iều khiển các LED ơn. Bus dữ
liệu của CPU sẽ ược nối tới bộ ệm số 74LS245, và dữ liệu sẽ ược chuyển từ bus ra LED
khi ngõ vào cho phép (E – Enable) của bộ ệm tác ộng mức thấp. Các tín hiệu A15 – A0
và IOW ược nối tới cổng NAND ể cho phép cổng ệm. Khi A15 – A12 = 1111, A11 – A0 =
0 …0 và IOW = 0 cổng ệm sẽ ược mở, có nghĩa là ây sẽ là một cổng ra có ịa chỉ bằng lOMoARcPSD| 10435767
F000H. Như vậy, bằng cách giải mã ịa chỉ tương tự có thể thực hiện ược nhiều cổng vào
ra với ịa chỉ khác nhau.
Hình 2.8: Giải mã cổng ra cơ bản trong hệ thống 8088
Do các vào ra có nhu cầu với số lượng giới hạn hơn so với bộ nhớ, nên khi truy cập
vào ra một số ịa chỉ sẽ không sử dụng mà luôn có giá trị bằng 0. Như trong hệ thống
8088, khi sử dụng các lệnh vào ra, CPU chỉ cung cấp các ịa chỉ A15 – A0, các ịa chỉ A19
– A16 luôn có giá trị bằng 0. Tuy nhiên, ịa chỉ F000H của cổng vào ra trên hình
2.8 sẽ không trùng với ô nhớ 0F000H, vì ể mở cổng ra này IOW phải có giá trị bằng 0,
trong khi ó MEMRD, và MEMWR bằng 1. Còn khi truy cập ô nhớ 0F000H thì MEMRD
hoặc MEMWR sẽ bằng 0, trong khi IOW bằng 1.
Ngoài ra nếu trên sơ ồ hình 2.7, nếu bộ nhớ số 4 không sử dụng, tín hiệu cho phép
bộ nhớ này cũng có thể sử dụng cho phép cổng vào ra trong sơ ồ 2.7. Khi ó, bất cứ ịa
chỉ nào có hai bit A19A18 = 11 ều cho phép cổng vào ra này, tuy nhiên muốn truy cập
vào ra này cần phải sử dụng các lệnh truy cập bộ nhớ.
Hình 2.9 mô tả bản ồ bộ nhớ và vào ra trong một hệ thống vi xử lý, không gian ịa
chỉ bộ nhớ và vào ra có thể chung nhau (hình 2.9a), và có thể sử dụng riêng (hình 2.9b).
2.2.2 Lệnh truy cập vào ra
Các họ vi xử lý khác nhau sẽ có tập lệnh khác nhau, vì thế chúng cũng có các lệnh
truy cập bộ nhớ và vào ra khác nhau. Các máy tính cá nhân thương mại phổ biến trên lOMoARcPSD| 10435767
thế giới, sử dụng các bộ vi xử lý họ Intel, do tính tương thích giữa các thế hệ máy tính,
nên chúng sử dụng các lệnh ọc lệnh ọc ghi bộ nhớ và vào ra giống nhau.
Các bộ vi xử lý Intel sử dụng lệnh MOV (move) ể di chuyển dữ liệu giữa các thanh
ghi bên trong CPU và các ô nhớ bên ngoài. Lệnh khi ọc dữ liệu từ bộ nhớ lênh MOV
ược việt với cú pháp như sau: MOV REG,MEM_ADDRESS
Trong ó REG là tên thanh ghi bên trong CPU, còn MEM_ADDRESS là ịa chỉ của ô
nhớ. Địa chỉ ô nhớ có thể cung cấp theo nhiều cách khác nhau tuỳ theo chế ộ ịa chỉ cụ
thể. Nó có thể là một giá trị trực tiếp, có thể chứa trong một thanh ghi ịa chỉ, hay ược tính toán theo một quy ịnh trước. ( a) (b)
Hình 2.9: Bản ồ bộ nhớ và vào ra trong hệ thống vi xử lý
Khi thực hiện lệnh, ịa chỉ trong lệnh ược CPU cung cấp ra bus ịa chỉ kèm theo tín
hiệu ọc bộ nhớ MEMR, dữ liệu sẽ ược ược bộ nhớ cung cấp ra bus dữ liệu và lấy vào
thanh ghi của CPU. Nếu có cổng vào ược mở khi CPU cung cấp ịa chỉ bộ nhớ, cổng sẽ
cấp dữ liệu vào bus và lấy vào thanh ghi nên trong CPU. Như vậy CPU không phân
biết việc lấy dữ liệu là từ bộ nhớ hay vào ra, việc xử lý dữ liệu lấy vào như thế nào là
do chương trình người sử dụng quyết ịnh.
Tương tự, lệnh ghi bộ nhớ sẽ viết: MOV MEM_ADDRESS,REG
Địa chỉ trong lệnh cũng ược cung cấp ra bus ịa chỉ xác ịnh tới ô nhớ cần ghi kèm theo
tín hiệu iều khiển ghi bộ nhớ MEMW, dữ liệu trong thanh ghi ược cung cấp ra bus dữ
liệu và sẽ ược ghi vào trong ô nhớ ã ược chỉ ịnh. Và nếu các ịa chỉ do CPU cung cấp ược
giải mã ể mở cổng vào ra, thì dữ liệu sẽ ược truyền qua cổng vào ra ể cung cấp cho thiết bị.
Như vậy, các cổng vào ra có thể truy cập bằng cách lệnh ọc ghi bộ nhớ trong vùng ịa
chỉ bộ nhớ kết hợp với việc giải mã ịa chỉ phần cứng. Để truy cập tốt hơn các CPU sẽ sử lOMoARcPSD| 10435767
dụng các lệnh vào ra riêng. Đối với các CPU họ Intel, khi ọc dữ liệu từ vào ra có thể sử
dụng lệnh IN (Input) với cú pháp: IN REG,IO_ADDRESS
Theo quy ịnh, ịa chỉ vào ra có thể xác ịnh trực tiếp bằng một giá trị trong lệnh, hoặc
chứa trong thanh ghi DX. Khi sử dụng ịa chỉ trực tiếp, thah ghi chứa dữ liệu phải là
thanh ghi chứa (Acc – Accumulator), còn nếu ịa chỉ cung cấp từ thanh ghi DX thì có thể
sử dụng thanh ghi bất kỳ khác.
Khi thực hiện lệnh IN, ịa chỉ trong lệnh ược cấp ra bus ịa chỉ cùng tín hiệu iều khiển
ọc bộ nhớ IOR. Giải mã phần cứng sẽ cho phép mở cổng vào ể dữ liệu từ thiết bị ngoại
vi cung cấp vào bus dữ liệu và ược lấy vào thanh ghi bên trong CPU. Tương tự như dối
với vào ra, nếu giải mã phần cứng ược thực hiện thích hợp, thì cũng có thể sử dụng lệnh
IN ể ọc dữ liệu từ một ô nhớ.
Muốn ghi dữ liệu tới cổng vào ra CPU thực hiện lệnh OUT (output) với cú pháp: OUT IO_ADRESS,REG
Khi thực hiện lệnh, ịa chỉ trong lệnh cũng ược cung cấp tới bus ịa chỉ kèm theo tín
hiệu ghi vào ra IOW. Giải mã phần cứng sẽ làm cho cổng ra mở ể dữ liệu do CPU cung
cấp từ bus dữ liệu ưa ra ngoài thiết bị ngoại vi.
Bảng 2.1 cung cấp vùng ịa chỉ cụ thể cho các thiết bị vào ra của hệ thống máy tính
cá nhân tương thích IBM PC.
Bảng 2.1: Phần vùng ịa chỉ vào ra trong máy tính cá nhân tương thích IBM - PC Vùng ịa
Thiết bị trong hệ thống chỉ (Hex) 000-00F
Master DMA Controller, iều khiển truy nhập trực tiếp bộ nhớ kếnh 1 – 4, 4 kênh (8 bit) 020-02F
Master PIC 8259A – bộ iều khiển ưu tiên ngắt chính (IRQ0 – IRQ7) 040-05F
PIT, (Programmable Interval Timer)- bộ ịnh thời 060-06F
Keyboard Port – Cổng bàn phím 070-071
Real Time Clock and 64 byte CMOS-RAM: Đồng hồ thời gian thực và RAM CMOS 080-083
DMA Page Register – các thanh ghi giữ ịa chỉ cao của DMA
0A0-0AF PIC #2, Bộ iều khiển ưu tiên ngắt số 2, IRQ8 – IRQ15 0C0-0CF
DMAC #2, Bộ iều khiển DMA số 2 có 3 kênh DRQ 16 bit 0E0-0EF Reserved – dự phòng 110-16F
AVAILABLE – sẵn sàng sử dụng 2F0-2F7 Reserved – dự phòng 2F8-2FF
Serial Port COM2 – cổng nối tiếp COM2 lOMoARcPSD| 10435767 300-31F
Prototype Adapter – vùng ịa chỉ cho người sử dụng phát triển 320-32F
AVAILABLE – sẵn sàng sử dụng 340-35F
AVAILABLE – sẵn sàng sử dụng 360-36F
Network, LAN adaptor – card mạng nội bộ 370-377
Floppy Disk Controller – ĩa mềm 378-37F
Parallel Port 1, LPT1 – Cổng máy in số 1 380-38F SDLC Adapter 390-39F Cluster Adapter
3A0-3AF Reserved – dự phòng 3B0-3BF
Monochrome Adapter – ịa chỉ màn hình mono
3BC-3BF Parallel Port 3 – Cổng máy in số 3 3C0-3CF
EGA/VGA – card màn hình màu loại EGA/VGA
3D0-3DF Color Graphics Adapter – Các màn hình ồ hoạ màu 3E8-3EF
Serial Port COM3 – cổng nối tiếp số 3 3F0-3F7
Floppy Disk Controller – Bộ iều khiển ĩa mềm 3F8-3FF
Serial Port COM1 – cổng nối tiếp số 1 220-22F
Soundblaster cards – ịa chỉ thường sử dụng cho các card âm thanh 300-31F
Data acquisition cards – Địa chỉ thường sử dụng cho các card thu thập dữ liệu