Môn học cung cấp cho sinh viên những kiến thức cơ bản về kỹ thuật giao tiếp giữa máy tính với thiết bị ngoại vi thông qua các giao diện như ISA, LPT, PCI, COM, USB... qua đó đưa ra cách thiết kế các modul ghép nối giao tiếp với máy tính, xây dựng các chương trình điều khiển thiết bị cho các modul ứng dụng trong dân dụng và điều khiển các quá trình công nghiệp. Tổng quan kỹ thuật ghép nối máy tính; Các phương pháp trao đổi thông tin; Giới thiệu về các chuẩn giao tiếp cơ bản; Ghép nối tín hiệu tương tự; Ghép nối bus và khe cắm mở rộng; Ghép nối song song; Ghép nối nối tiếp; Các thiết bị ngoại vi cơ bản, các loại card ghép nối như: modem, net card, AD/DA card, card đo tần số, … Một số ví dụ ứng dụng cụ thể.
Trang 1Chương 1
TỔNG QUAN VỀ TỔ CHỨC
MÁY TÍNH
Trang 2DCE - Lecture Notes Computer Interfacing 2 10/2005
Quan niệm của người dùng
Quan niệm của người lập trình
Những lợi ích của các ngôn ngữ lập trình bậc cao
Tại sao chương trình lại dịch
Trang 3DCE - Lecture Notes Computer Interfacing 3 10/2005
Sơ đồ khối máy tính đơn giản
Các phần chính: CPU, Memory, I/O
Buses: address bus, data bus, và control bus.
Trang 4DCE - Lecture Notes Computer Interfacing 4 10/2005
Cấu trúc máy tính theo mô hình Von Neumman
Các thế hệ máy tính điện tử đầu tiên, việc “lập trình”
ứng với việc đấu dây và thiết lập mạch cứng -> Không
có chương trình được lưu trữ
Cấu trúc máy tính Von Neumman có 3 đặc trưng
chính:
(1) Gồm 3 hệ thống phần cứng: một bộ xử lý trung tâm (CPU);
một hệ thống bộ nhớ chính (main memory) và một hệ thống vào ra (I/O system)
(2) Có khả năng lưu trữ một dãy các câu lệnh xử lý
(3) Có một luồng đơn (có thể là vật lý hoặc logic) nối giữa các thành phần hệ thống
Bộ xử lý trung tâm bao gồm có một đơn vị điều khiển (control unit), một đơn vị xử lý toán học (ALU), một tập các thanh ghi
và một bộ đếm chương trình (program counter)
Trang 5DCE - Lecture Notes Computer Interfacing 5 10/2005
Cấu trúc máy tính theo mô hình Von Neumman
Trang 6DCE - Lecture Notes Computer Interfacing 6 10/2005
Chu kỳ thực hiện lệnh
(1) Đơn vị điều khiển nạp lệnh kế tiếp từ bộ nhớ, sử dụng bộ đếm chương trình
để xác định lệnh đó được đặt ở đâu
(2) Lệnh được giải mã thành ngôn ngữ mà ALU có thể hiểu được
(3) Bất kỳ toán hạng nào cần để thực hiện câu lệnh đều được nạp vào từ bộ
nhớ và đặt vào các thanh ghi trong CPU
(4) ALU thực thi các câu lệnh và đặt kết quả vào thanh ghi hoặc bộ nhớ
Trang 7DCE - Lecture Notes Computer Interfacing 7 10/2005
Central Processing Unit (CPU)
Giải mã lệnh
Thực hiện lệnh tuần tự
Bao gồm
CU – Control Unit
ALU – Arithmetic and Logic Unit
Bus Interface Unit - Bus nội bộ
Trang 8DCE - Lecture Notes Computer Interfacing 8 10/2005
Khối điều khiển (CU - Control Unit)
Điều khiển hoạt động của CPU và các thành phần khác
Đọc lệnh từ chương trình trong bộ nhớ chính (instruction fetch)
Giải mã lệnh (instruction decode)
Thực thi lệnh đã giải mã một cách tuần tự (instruction excution)
Trang 9DCE - Lecture Notes Computer Interfacing 9 10/2005
Khối tính toán (ALU - Arithmetic Logic Unit)
Thực hiện các phép toán số học và logic
Số dấu phảy tĩnh (fixed point number)
Số dấu phảy động (floating point number)
Trang 10DCE - Lecture Notes Computer Interfacing 10 10/2005
Tập thanh ghi (Registers)
Là bộ nhớ nhỏ, tốc độ nhanh
Lưu trữ toán hạng, kết quả và các thông số khác trong quá trình tính toán của CPU
Con trỏ chương trình (PC - Program Counter)
Các thanh ghi đa chức năng
Thanh ghi chỉ số (index register)
Thanh ghi cờ (flag register)
Trang 11DCE - Lecture Notes Computer Interfacing 11 10/2005
Bộ nhớ chính (main memory)
Chứa chương trình và dữ liệu đang xử lý
Được kết nối và có thể trao đổi dữ liệu trực tiếp với CPU
Được tổ chức thành các ngăn nhớ, đánh địa chỉ trực tiếp bởi CPU
ROM (Read Only Memory)
‐ CPU chỉ đọc bộ nhớ này
‐ Chứa các chương trình, dữ liệu cơ bản của máy tính
RAM (Random Access Memory)
‐ CPU có thể đọc và ghi bộ nhớ này
‐ Chứa dữ liệu, chương trình được nạp, đang thực hiện
Trang 12DCE - Lecture Notes Computer Interfacing 12 10/2005
Memory
Là một chuỗi có thứ tự của các byte
Số thứ tự trong chuỗi gọi là địa chỉ nhớ (memory address)
Bộ nhớ định địa chỉ theo byte
‐ Mỗi byte có một địa chỉ riêng
‐ Hầu hết các vi xử lý hỗ trợ chế độ này
Không gian nhớ
Xác định bởi độ rộng bus dữ liệu
Pentium có bus dữ liệu 32 bit
‐ Không gian địa chỉ = 4GB (2 32)
Itanium hỗ trợ bus địa chỉ 64-bit
‐ Không gian địa chỉ 2 64 byte
Trang 13DCE - Lecture Notes Computer Interfacing 13 10/2005
Memory (cont’d)
Trang 14DCE - Lecture Notes Computer Interfacing 14 10/2005
Trang 15DCE - Lecture Notes Computer Interfacing 15 10/2005
Memory (cont’d)
Chu kỳ đọc
1 Đặt địa chỉ lên bus địa chỉ
2 Kích hoạt tín hiệu điều khiển đọc địa chỉ (/MEMR)
3 Chờ bộ nhớ đọc xong dữ liệu
‐ Introduce wait states if using a slow memory
4 Đọc dữ liệu trên bus dữ liệu
Trang 16DCE - Lecture Notes Computer Interfacing 16 10/2005
Memory (cont’d)
1 Đặt địa chỉ lên bus địa chỉ
2 Đặt dữ liệu lên bus dữ liệu
3 Kích hoạt tín hiệu ghi bộ nhớ (/MEMW)
4 Chờ bộ nhớ gị xong dữ liệu
‐ Introduce wait states if necessary
5 Xoá tín hiệu ghi bộ nhớ
Với VXL Pentium, một lần ghi bộ nhớ chiếm 3 chu kỳ đồng hồ
‐ Clock 1: bước 1 và 3
‐ Clock 2: bước 2
‐ Clock 3 : bước 4 và 5
Trang 17DCE - Lecture Notes Computer Interfacing 17 10/2005
Trang 18DCE - Lecture Notes Computer Interfacing 18 10/2005
Di chuyển dữ liệu trong hệ thống
Từ:
Thiết bị vào tới CPU
CPU tới bộ nhớ
Từ bộ nhớ tới thiết bị ra
Giống như hệ thống đường cao tốc
Các bit được di chuyển trên đường
Tốc độ và độ rộng bus
Buses operate at different speeds and have different widths
‐ Original PC had buses at 4.77 MHz
8 bits wide
‐ Became a standard, called ISA
‐ Improved over time
Became 16 bits wide and 8 MHz
‐ 1990’s Intel introduced the PCI bus
Originally 32 bits wide
Now, 64 bits and runs at 133 MHz
Bus
Trang 19Chương 2
C ác phương pháp trao đổi
tin
Trang 20DCE - Lecture Notes Computer Interfacing 20 10/2005
Các vấn đề trong trao đổi tin
Các thiết bị ngoài rất đa dạng
Lượng dữ liệu trao đổi khác nhau rất nhiều (keyboard x disk drive)
Khác nhau về tốc độ – Thời gian truy cập, tốc độ truyền dữ liệu
Khác nhau về định dạng dữ liệu
Khác nhau về phương thức truyền tin
Hầu như tất cả các các thiết bị ngoài có thời gian truy cập ( access time )
chậm hơn CPU và RAM, nhưng một số có tốc độ truyền dữ liệu ( transfer
rates ) rất cao
Cần có một khối ghép nối để giao tiếp giữa thiết bị với CPU và bộ nhớ
Cần các chương trình điều khiển thiết bị ( device drivers ) – Là phần mềm làm nhiệm vụ điều khiển truyền thông giữa CPU và thiết bị
Trang 21DCE - Lecture Notes Computer Interfacing 21 10/2005
Các phương pháp vào/ra
Mục đích:
Tối thiểu hoá thời gian sử dụng của CPU với chi phí chấp nhận được
Đảm bảo tốc độ truyền dữ liệu mà không mất mát dữ liệu
Các phương pháp chính:
Hỏi vòng (Programmed I/O – Polling)– Hoàn toàn do CPU điều khiển
Ngắt vi xử lý (Interrupt-driven I/O)– CPU điều khiển truyền dữ liệu nhưng
do thiết bị ngoài khở xướng
Trực tiếp khối nhớ (Direct Memory Access - DMA) – Không sử dụng CPU nhằm tối ưu tốc độ truyền dữ liệu giữa TBN và bộ nhớ
Kênh vào ra (I/O Channels - Dedicated Peripheral Computers)- CPU chỉ đưa ra các lệnh vào ra ở mức cao, điều khiển truyền dữ liệu sẽ do một thiết bị chuyên dụng đảm nhiệm
Trang 22DCE - Lecture Notes Computer Interfacing 22 10/2005
Kiểm tra trạng thái sẵn sàng
Nếu chưa, MVT lại đọc và kiểm tra trạng thái sẵn sàng.
3 MVT trao đổi tin với TBN.
Chương trình
TBN đã sẵn sàng ?
Trao đổi tin
Đ S
Trang 23DCE - Lecture Notes Computer Interfacing 23 10/2005
Ngắt vi xử lý (Interrupt)
1 MVT đang thưc hiện chuỗi lệnh
của một chương trình nào đó
2 TBN có yêu cầu trao đổi tin, sẽ gửi
tín hiệu yêu cầu trao đổi tin ( yêu cầu ngắt INTR)
5 Chương trình chính lai tiếp tục
Trang 24DCE - Lecture Notes Computer Interfacing 24 10/2005
Ngắt trong máy PC
Ngắt cứng: còn gọi là ngắt ngoài vì do nguyên nhân bên ngoài
‐ Ngắt NMI ( Non maskable Interrupt) - Ngắt không che được
‐ Ngắt INTR
‐ Ngắt reset
Ngắt mềm: (hay ngắt bên trong do lệnh của chương trình)
‐ Ngắt do lệnh: đó là ngắt khi thực hiện các lệnh CALL, HLT, INT
‐ Ngắt logic hay các ngoại trừ
‐ Ngắt của hệ điều hành (INT 10, INT 16, INT 21, v.v .)
Trang 25DCE - Lecture Notes Computer Interfacing 25 10/2005
Các ngắt cứng trong máy PC
08 Hardware IRQ0 System Timer
09 Hardware IRQ1 Keyboard 0A Hardware IRQ2 Redirected 0B Hardware IRQ3 Serial Comms COM2/COM4 0C Hardware IRQ4 Serial Comms COM1/COM3 0D Hardware IRQ5 Reserved/Sound Card
0E Hardware IRQ6 Floppy Disk Controller 0F Hardware IRQ7 Parallel Comms
70 Hardware IRQ8 Real Time Clock
71 Hardware IRQ9 Redirected IRQ2
72 Hardware IRQ10 Reserved
73 Hardware IRQ11 Reserved
74 Hardware IRQ12 PS/2 Mouse
75 Hardware IRQ13 Math's Co-Processor
76 Hardware IRQ14 Hard Disk Drive
77 Hardware IRQ15 Reserved
Trang 26DCE - Lecture Notes Computer Interfacing 26 10/2005
Thủ tục xử lý (đáp ứng) ngắt cứng
Khi có một tin hiệu yêu cầu ngắt chương chình đưa vào chân yêu cầu ngắt (INTR), quá trình ngắt chương trình được diễn ra theo các bước sau:
Lưu giữ tin về trạng thái của VXL lúc có tín hiệu yêu cầu ngắt và nơi
chương trình bị gián đoạn.
VXL gửi tín hiệu xác nhận hay cho phép ngắt – INTA và đọc vector ngắt.
Chuyển sang chương trình phục vụ ngắt.
Trở về chỗ chương trình chính bị ngắt và tiếp tục thực hiện chương trình đó.
Trang 27DCE - Lecture Notes Computer Interfacing 27 10/2005
Cơ chế thực hiện ngắt cứng
RAM
KGN1VXL
System bus
.
Trang 28DCE - Lecture Notes Computer Interfacing 28 10/2005
Sơ đồ khối PIC 8259
Bộ đệm
dữ liệu
Logic đọc/ghi
Bộ so sánh
và nối tầng
Logic điều khiển
Thanh ghi phục
vụ (ISR)
Giải quyết ưu tiên (PR)
Thanh ghi yêu cầu ngắt
Thanh ghi che ngắt (IMR)
D0 – D7
A0
/RD /WR
/CS
/SP
IR0 .
Trang 29DCE - Lecture Notes Computer Interfacing 29 10/2005
Sơ đồ ghép nối nối tầng PIC trong IBM - PC
MPU
IR0 IR1 IR2 IR3 IR7
INT
/INTA
IR0 IR1 IR2
IR7
INT
/INTA CAS0-2
IRQ7
IRQ8 IRQ9 IRQ10
Trang 30DCE - Lecture Notes Computer Interfacing 30 10/2005
Cấu trúc chương trình vào ra bằng ngắt
{Chương trình con phục vụ ngắt)
Program ISR;
uses Crt, Dos;
const {PIC Constants}
MasterPIC = $20;
MasterOCW1 = $21;
var OldVector: procedure;
{$F+}
procedure MyISR; interrupt;
var InputLetter: Char;
begin {Thân chương trình con ngắt}
Port[MasterOCW1] and $EF;
{Put the old ISR vector back in}
SetIntVec($0C,@OldVector);
Port[MasterOCW1] :=
Port[MasterOCW1] or $10;
END
Trang 31DCE - Lecture Notes Computer Interfacing 31 10/2005
Cơ chế hoạt động DMA
Trang 32DCE - Lecture Notes Computer Interfacing 32 10/2005
Hoạt động của DMAC
Disk Controller
HOLD
HLDA
DACK DREQ
Data Bus
Address Bus Control Bus (IOR, IOW, MEMR, MEMW)
Trang 33DCE - Lecture Notes Computer Interfacing 33 10/2005
Truyền một khối dữ liệu từ bộ nhớ ra TBN
1 Bước 1 : TBN yêu cầu DMA bằng cách đặt tín hiệu DREQ lên mức cao
2 Bước 2 : DMAC đặt tín hiệu mức cao vào chân HRQ (Hold Request) gửi tín hiệu yêu cầu treo bus cho VXL, báo cho VXL biết DMAC cần sử
dụng bus.
3 Bước 3 : VXL kết thúc chu kỳ bus hiện tại, chuyển các cổng ghép nối với bus sang mức trở kháng cao và trả lời yêu cầu DMA bằng tín hiệu mức cao ở chân HDLA ( Hold Acknoledge) báo cho DMAC được quyền
sử dụng bus
4 Bước 4 : DMAC kích hoạt tín hiệu DACK báo cho TBN biết nó sẽ bắt đầu điều khiển việc truyền dữ liệu.
5 Bước 5 : DMAC bắt đầu truyền dữ liệu từ bộ nhớ tới TBN như sau:
DMAC đặt địa chỉ của byte đầu tiên của khối dữ liệu lên bus địa chỉ
Kích hoạt tín hiệu /MEMR để đọc byte dữ liệu từ bộ nhớ lên bus dữ liệu
Đặt địa chỉ của cổng TBN lên bus địa chỉ
Kích hoạt tín hiệu IOW để ghi byte dữ liệu đang có trên bus dữ liệu ra TBN
Giảm giá trị đếm và tăng giá trị địa chỉ
6 Lặp lại quá trình trên cho tới khi giá trị đếm bằng 0.
7 Sau khi quá trình DMA kết thúc, DMAC xoá giá trị HRQ xuống mức thấp, trả quyền điều khiển bus cho VXL.
Trang 34Kỹ thuật ghép nối máy tính
Chương 3:
Ghép nối tín hiệu tương tự
Trang 35Chương 2: Ghép nối tín hiệu tương tự
Tín hiệu tương tự?
Các đặc trưng của một bộ chuyển đổi Chuyển đổi tín hiệu số thành tương tự Chuyển đổi tín hiệu tương tự thành số
Trang 36Giới thiệu chung
Việc sử dụng phương pháp số trong xử lý thông tin và điều khiển đang ngày càng hiệu quả và thuận lợi
Hầu hết các tín hiệu trong thực tế là tín hiệu dạng tương tự.
Các thiết bị số muốn giao tiếp với thế giới thực phải xử lý được các tín hiệu tương tự
Phải có khả năng chuyển đổi các thông tin tương tự thành dạng số và ngược lại
Trang 37Tín hiệu tương tự là gì?
Tín hiệu tương tự là các tín hiệu “liên tục”
Được thể hiện bằng sự thay đổi liên tục của các đại lương vật lý
Độ chênh lệch giữa các mức của tín hiệu là không xác định
rõ ràng
Ví dụ: Nhiệt độ, áp suất, sức căng, điện áp, lưu lượng, …
Trang 38Tín hiệu số là gì?
Tín hiệu số là các tín hiệu “rời rạc”
Các mức của tín hiệu được phân biệt rõ ràng và cố định
Các đơn vị được biểu diễn bằng các “bit” (BInary digiT)
Các bit được biểu diễn bởi một trong hai trạng thái xác định: on/off, true/false, “1” / ”0”
Trang 39Các thành phần cơ bản của một hệ thống xử lý tín hiệu tương tự bằng phương pháp số
Trích, giữ
mẫu
Chuyển đổi tín hiệu tương tự -
Chuyển đổi số - tương tự
Điều khiển logic Đầu vào
Trang 40Digital to Analog Converter (D/A)
Bộ chuyển đổi D/A chuyển đổi dữ liệu số thành dạng tín hiệu liên tục (điện áp tương tự) để phục vụ cho mục đích hiển thị hoặc điều khiển
Đầu ra của DAC có thể được sử dụng để điều khiển các thiết
bị ngoài cần tín hiệu điều khiển dạng tương tự
Trang 41Các thông số chính của một DAC
Độ phân giải và độ tuyến tính
– Xác định bởi số lượng các bit
Được cho bởi điện áp tương ứng với bước nhỏ nhất– Độ tuyến tính cho biết mức độ lệch của điện áp ra với đường thẳng nối giữa 0 và Vmax
Thời gian ổn định
– Thời gian để ổn định trong khoảng ± ½ LSB
Trang 42Độ tuyến tính
Trang 43Digital to Analog Converter DAC
NMAX bit DAC
Input code = n 0110001
0100010 0100100 0101011 :
: :
Output voltage = Vout(n)
V+ref
V-ref
Trang 44Chuyển đổi số / tương tự
Điều hoà tín hiệu Đầu ra tương tự
Trang 45D/A chia điện trở
Trang 46 Tín hiệu số đầu vào xác định tín hiệu điện áp nào được nối với bộ khuếch đại thông qua các các bộ chuyển mạch.
Đơn giản, dễ hiểu
Kém hiệu quả với các bộ DAC có độ phân giải cao
Mỗi bit thêm vào cho độ phân giải của DAC đòi hỏi tăng gấp đôi số điện trở và công tắc
VD: DAC 12 bit thì phải cần tới 4095 điện trở và 4096 công tắc
Trang 48DAC trọng số nhị phân
AnalogOutput
6.25K
Cần một dải rộng giá trị điện trở
Trang 49DAC thang điện trở
Trang 50 Khi độ phân giải của DAC đạt tới 6 hay 7 bit, kiến trúc thang điện trở thường cho một
phương pháp hiệu quả hơn
Không cần sử dụng nhiều điện trở và công tắc
Chỉ sử dụng 2 loại điện trở là R và 2R
Trang 51DAC điều biến độ rộng xung
Trang 52DAC điều biến độ rộng xung
Là phương pháp rất đơn giản và hầu như hoàn toàn
sử dụng phương pháp số,
sử dụng rất ít mạch tương tự
PWM điều chỉnh điện áp đầu
ra sử dụng chuỗi xung tần số cao với độ rộng xung có thể thay đổi được để thay đổi giá trị điện áp đầu ra
Trang 53DAC0808
Trang 55Sơ đồ mạch ứng dụng DAC0808
Trang 56Chuyển đổi tín hiệu tương tự - số
Đầu vào tương tự - đầu ra số
– Chuyển đổi tín hiệu điện áp hoặc dòng điện
Tín hiệu gì cần được chuyển đổi?
– Điện áp (Voltage), dòng điện (Current) , áp lực, thời gian (Time), …
– Xử lý đầu vào tương tự để …
Biến đổi các giá trị đo của các bộ cảm biến
Trang 57Chuyển đổi tín hiệu tương tự - số
Các đặc trưng chính
– Độ phân giải (Resolution)
– Dải động (Dynamic range)
– Băng thông (Bandwidth)
– Thời gian chuyển đổi (Conversion time)
Độ tuyến tính
– Tích phân (tương đối)
– Vi phân (Differential)
Kiểu chuyển đổi
– Xấp xỉ tiệm cận (Successive approximation)
– Tích phân sườn dốc (Slope integration)
– Flash
– Sigma Delta
Trang 58Độ phân giải
Mỗi ADC có khả năng xử lý n bit
Xác định sự thay đổi nhỏ nhất mà ADC có thể nhận ra
Bit có ý nghĩa thấp nhất thể hiện đô phân giải của ADC
Tương ứng với giá trị toàn thang nếu ADC là tuyến tính là
Trang 59Ví dụ các mức đầu ra tương ứng với độ phân giải
1-bit A/D Converter
1
0 +10v
Trang 60Ví dụ các mức đầu ra tương ứng với độ phân giải
4-bit A/D Converter +10v
0v
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000
12-bit A/D Converter