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

Ghép Nối Cấu Trúc Máy Tính ppt

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 (587.49 KB, 49 trang )

Thiết bị ngoại vi và kỹ thuật ghép nối
Chương I. TỔNG QUAN VỀ NỐI GHÉP NGOẠI VI
Nội dung
− Nhắc lại và bổ xung các kiến thức về kiến trúc máy tính
− Nhiệm vụ của nối ghép ngoại vi
.I Cấu trúc của hệ thống máy tính
Cấu trúc chung của một hệ thống máy tính như sau:
.1 Central Sub System - CS:
.a CPU: Central Processing Unit:
− Khái niệm: Là bộ điều khiển trung tâm, thực hiện công việc được giao đặt trong
bộ nhớ chương trình bằng cách thực hiện các phép xử lý lên các biến nhị phân và
điều khiển thiết bị ngoại vi.
− Công việc bao gồm:
 Tìm lệnh, giải mã lệnh, [tìm toán hạng, xử lý và cất kết quả],
 In/Out với các port kiểu Interrupt và DMA để điều khiển thiết bị ngoại vi.
− Đặc trưng - Specifications:
 Kích thước toán hạng (bit): 4, 8, 12 , 16, 32, 64
1
Thiết bị ngoại vi và kỹ thuật ghép nối
 Tốc độ xử lý: Mips, clock multiplier,
 Kiến trúc: RISC vs CISC, DSP, Micro Controller
 Pinning/Signalling (Data/Address - Mux, Control bus, IRQ, HRQ,
RD/WR ),
 Register set,
 Instruction set - Addressing Modes,
 Power: Slow/ sleep/ power down modes
 …
.b Memories
 Memories (Semiconductor), ROM
− Khái niệm:
 Lưu thông tin (ch/tr và số liệu) dạng nhị phân,


 Dung lượng lớn, tốc độ truy nhập nhanh (downto ns access time).
− Tính chất vật lý
 ROMs: gồm Mask ROM, PROM, EPROM, EAROM, OTROM,
NonVolatile mem,
 Là bộ nhớ chỉ đọc, vẫn lưu thông tin khi mất điện,
 Package : byte
 Access time:100 120ns
 Ghi/nạp nội dung: T/bị chuyên dùng (ROM Burner/Programmator)
 Memories (Semiconductor), SRAM
− RAMs:
 Lưu thông tin tạm thời, không lưu được khi mất điện, đọc và ghi được,
[Read/Write Mem].
− Static RAM:
 Nhanh (80 3 ns),
 byte/nibble package,
 Mật độ byte/chip nhỏ (upto 64/256 KB/ chip),
 Đắt, tiêu thụ công suất nhiều,
 CMOS RAM: chậm và tiêu thụ cực ít năng lượng, less W. Vdụ: MC
146818 RealTimeClock- CMOS RAM
2
Thiết bị ngoại vi và kỹ thuật ghép nối
 Dùng trong các hệ nhỏ, cache memory.
 Memories (Semiconductor): DRAM
− Dynamic RAM (DRAM):
 Tốc độ/Access time (50-70ns), [1 0 20 ns] Pre-fetched
 Mật độ bit/chip >> (1 Gbit/chip - 1996 , Korea),
 bit package => DRAM bank,
 Tiêu thụ công suất nhỏ.
 Thông tin chỉ lưu được 10ms => refreshing DRAM với chu kỳ @ 7,5ms
=> phức tạp.

 Dùng trong các hệ có dung lượng nhớ lớn: máy tính, máy chủ
 Memories (Semiconductor): FLASH & Others
− Flash memory:
 EAROM typed, đưọc đợc, xoá từng bank, ghi lại được từng byte. Thông
tin lưu được 20 năm, dùng nhiều hiện nay và tương lai: BIOS, diskchip
 Serial EAROM/FLASH: dùng để lưu configuration, dùng bus I2C
(Philips). Ví dụ ứng dụng : thẻ vi mạch, TV,
 Memories (Semiconductor): Logically:
Bộ nhớ chứa thông tin gì?
− Program memory:
 Chứa ch/tr đang được thực hiện
− Data memory:
 Các biến ngẫu nhiên,
 Biến có cấu trúc,
 Số liệu có kiểu truy nhập đặc biệt FIFO, LIFO (Stack memory).
.c Controllers
Vi mạch, nâng hiệu năng (performance) hệ thống, bao gồm:
− Bộ điều khiển ưu tiên ngắt PIC - Priority Interrupt Controller, Intel 8 259A
− Bộ điều khiển truy nhập trực tiếp bộ nhớ DMAC - Direct memory Access
Controller, Intel 8237A. Timer: mạch tạo các khoảng thời gian, PIT-
Programmable Interval Timer, Intel 8254 .
3
Thiết bị ngoại vi và kỹ thuật ghép nối
− Mạch quản trị nhớ: MMU- Memory Management Unit, sau này, thường đợc built
on chip với CPU.
− Bus controller/Arbitor
− …
.d Bus System
− PCB (Printed Circuit Board)/ Cable (Twisted pairs, flat ), slot, connector • Nối
hơn 1 slave device, time sharing

− Thông tin: Address, data, control, status, Power Supply
− Chiều (dir), 3 state (Hi Z), Loading
 Address bus
− Từ các BusMaster (CPU, DMAC, PCI host Controller) đến SlaveDevices (Mem,
Ports) để chọn/chỏ từng IO/ Mem location trong từng chu kỳ bus
− n Addr bit 
n
2
mem mory Locations & 2m IO Locations, m<n.
 Data bus
− Số bit (thường) phù hợp với kích thước ALU (8/16/32/64 bit)
− Chuyển Op-code (mã lệnh) trong chu kỳ máy M1, - CPU <= Program Memory,
trong các bus cycle M1
− Vận chuyển data:
 CPU <=> Data memory,
 CPU <=> IO Ports và
 Data Memory <=> IO Ports, DMA.
 Control/Status bus:
− Gồm các tín hiệu:
 Control/ Response: CPU to Others (MEMR, MEMW, IOR, IOW, INTA,
HLDA, BHE ), from CPU
 Status/Request to CPU: IRQ, HRQ, Ready, to CPU
 Power Supply:
− +5V
±
5%, 10 đến 20 Amp, cấp cho các Vi mạch số, RedWire. (3.3V and less)
− Ground, Gnd, 0V, signal reference ground, chassis, BlackWire.
− +12V
±
10%, 1Amp, cấp cho các mạch analog, motors, RS232, YellowWire.

4
Thiết bị ngoại vi và kỹ thuật ghép nối
− -12 V
±
10%, 1Amp, (nh trên), BlueWire.
− - 5 V
±
5%, 0.5 Amp, analog circuitries, WhiteWire.
− Power good: OrangeWire.
Nguồn thông minh: AXT
.II Thiết bị ngoại vi
Các thiết bị ngoại vi nói chung đều được kết nối với hệ thống thông qua bộ ghép nối
(BGN) hay còn gọ là các Controller.
Ngoài các thiết bị ngoại vi thông dụng, chúng ta còn có thể kết nối với các hệ thống
điều khiển khác như: Hệ thống đo nhiệt độ, áp xuất, điện áp … thông qua các cổng giao
tiếp.
.1 Phân loại thiết bị ngoại vi
.a Các thiết bị giao tiếp (Communication devices)
Các thiết bị nhập dữ liệu (Data Input Devices)
− Key board/ Key pad, Touch SCR: số phím, công nghệ phím, kiểu dò phím, output
code, ghép nối CS
− Mouse, track ball
− Scanner, Camera, Camcoder: Colors, resolution, f, công nghệ CCD - Charge
Couple Device, graphics, file bmp
− Digitizer, nhập graphics file vector - bản đồ
− Light Pen, Joy stick (Games)
− Demodulator (MODEM): Kiểu điều chế, tốc độ bps, kiểu nén
− Microphone,
− Barcode reader: máy đọc mã vạch Laser/ LED,
− Sensor, Transducers, Transmitters: Vật liệu, thiết bị, độ nhậy, độ tuyến tính, dải

đo
Các thiết bị xuất dữ liệu ra (Data Output Devices)
− Displays: Kiểu hiển thị: Point/ 7 Seg/ Text/ Graphics; Mono Chrome/Color
(color numbers); Size, Resolution, Rate of Refreshing
− Công nghệ:
5
Thiết bị ngoại vi và kỹ thuật ghép nối
 LED (Light Emitting Diodes): point, 7(16) Segment, Matrix character box
(Bill Board), Outdoor, LED Screen
 LCD (Liquid Crystal Display): single color, color, active, TFT (thin film
transistor)
 Organic LED (Preliminary),
 CRT (Cathode Ray Tube).
− Printers:
 Spec: Text-Graphics, Mono-Color, Resolution, ppm - page per minute,
Size, Line-PostScript, media :
 Pin Printer,
 Jet Printer,
 Laser Printer,
 Thermal Transfer Printer, barcode Printer.
 High Speed Text Printer,
Các thiết bị vào ra (Data Output Devices)
− Plotter, jet
− Modulator (MODEM)
− Speaker
− Actuator: Motor (dc/ac, Step), Relay, Valve,
.b Các thiết bị lưu trữ (Storage devices)
− input/output (disk, tape)
− input only (CD-ROM)
.2 Giao diện ghép nối ngoại vi (Interface)

.a Tại sao cần giao diện ghép nối:
Vì có sự khác nhau về: Tín hiệu (dòng, áp), tốc độ làm việc/tốc độ trao đổi số liệu,
không đồng bộ giữ hệ thống máy tính và thiết bị ngoại vi
Do đó ta cần có mạch điện tử để thích ứng hoá (Adapting) và cấn có chương trình điều
khiển các thiết bị phần cứng đó (Hardware Circuitries), còn được gọi là Adaptors:
 Input/Output Ports: (Parallel/Serial): ghep nối với Computerized devices
(KB, Printer, Mouse, Scanner, Modem )
6
Thiết bị ngoại vi và kỹ thuật ghép nối
 Controllers: để ghép nối với những thiết bị chuyên dùng FDC, HDC (IDE,
EIDE), CRTC (EGA, VGA, SVGA )
 Converter: để chuyển đổi tín hiệu số thành tương tự và ngược lại: ADC,
DAC
.b Chương trình điều khiển thiết bị - Device Driver:
Để liên kết chương trình chạy trên hệ thống và phần cứng điều khiển vào ra (SPIs và
APIs). Các hàm của thiết bị, BIOS, OS hoặc theo ứng dụng: SLLs, DLLs, DRVs,
.III Ghép nối các thiết bị ngoại vi
Đối với các máy tính thế hệ cũ (thế hệ thứ nhất và thứ hai), CPU phải trực tiếp điều
khiển việc trao đổi dữ liệu của các thiết bị ngoại vi.
Bắt đầu từ máy tính thế hệ thứ 3 thì CPU chỉ phải thực hiện một số công việc còn lại nó
chỉ đóng vai trò tổ chức thực hiện. CPU không còn trực tiếp điều khiển thiết bị ngoại vi
nữa mà thay vào đó nó điều khiển một module gọi là module điều khiển vào ra
(Controll Devices - CD) hay còn gọi là controller còn việc điều khiển các thiết bị ngoại
vi là nhiệm vụ của các module điều khiển vào ra. Một module điều khiển vào ra có thể
điều khiển được nhiều thiết bị ngoại vi. Để hiểu thêm về Controll Devices có thể tìm
hiểu thêm về DMAC - Direct Memory Access Controller.
.1 Nhiệm vụ của bộ ghép nối
.a Phối hợp về mức và công xuất tín hiệu
− Mức tín hiệu của máy vi tính thường là 0v hoặc 5v trong khi mức của thiết bị
ngoại vi có mức điện thoại (

±
15V,
±
48V).
− Công xuất của máy tính rất nhỏ trong khi công xuất của thiết bị ngoại vi có thể rất
lớn
Do đó bộ ghép nối phải chịu trách nhiệm biến đổi điện áp và khuếch đại công xuất cho
phù hợp với máy tính và thiết bị ngoại vi.
.b Phối hợp về dạng dữ liệu
− Dữ liệu trong máy vi tính là tín hiệu số thường được xử lý song song 8bit, 16bít,
32bít… Nhưng dữ liệu trong thiết bị ngoại vi có thể là số hoặc tương tự cũng có
thể được xử lý song song hoặc tuần tự.
.c Phối hợp về tốc độ trao đổi dữ liệu
Tốc dộ máy tính rất lớn so với tốc độ thiết bị ngoại vi do vậy cần có bô ghép nối
để không ảnh hưởng tới tốc độ của máy tính. Bộ ghép nối nhận dữ liệu từ máy tính rồi
chuyển cho thiết bị ngoại vi theo tốc độ chậm của thiết bị ngoại vi. Ngược lại, bộ ghép
nối nhận dữ liệu từ thiết bị ngoại vi và chờ được máy tính xử lý.
7
Thiết bị ngoại vi và kỹ thuật ghép nối
.d Phối hợp về phương thức trao đổi dữ liệu
Phần này ta sẽ nghiên cứu kỹ ở mục 2
.2 Các phương pháp điều khiển vào ra
.a Vào ra bằng chương trình có vòng kiểm xoát (Programmed I/O with Polling)
Phương pháp này còn được gọi là phương pháp vào ra không đồng bộ hay có đối thoại.
− CPU chịu trách nhiệm các công việc sau:
 Chuyển dữ liệu tới và từ bộ nhớ đệm của module điều khiển thiết bị
(controller buffer)
 Kiểm tra trạng thái của quá trình vào ra dữ liệu
− Hình vẽ dưới đây mô tả giao thức để nhập một ký tự:
Programmed I/O with Polling

 1: CPU gửi các tham số cho module khiển thiết bị.
 2: CPU gửi mã lệnh cho module điều khiển thiết bị (read/ write…)

− Giải thuật
i = 0;
do {
write_reg(opcode, read);
while (busy_flag == true) {…};
mm_in_area[i] = data_buffer;
increment i;
compute;
} while (…)
.b Vào ra bằng chương trình có sử dụng ngắt (Programmed I/O Interrupts)
− CPU chịu trách nhiệm các công việc sau:
8
Thiết bị ngoại vi và kỹ thuật ghép nối
 moving characters to/from controller buffer, but
 Interrupt informs CPU when I/O op completes
− Hình vẽ dưới đây mô tả giao thức để nhập một ký tự:
Programmed I/O Interrupts
 1: CPU gửi các tham số cho module khiển thiết bị.
 2: CPU gửi mã lệnh cho module điều khiển thiết bị (read/ write…). Sau đó
CPU có thể xử lý các công việc khác.
 .
− Giải thuật
Compare Polling with Interrupts:
Polling Interrupts
i = 0;
do { write_reg(opcode, read);
while (busy_flag == true) {…};

mm_in_area[i] = data_buffer;
increment i;
compute;
} while (…)
i = 0;
do { write_reg(opcode, read);
block to wait for interrupt;
mm_in_area[i] = data_buffer;
increment i;
compute;
} while (…)
.c Vào ra bằng DMA
9
Thiết bị ngoại vi và kỹ thuật ghép nối
10
Thiết bị ngoại vi và kỹ thuật ghép nối
Chương II. MỘT SỐ MẠCH GHÉP NỐI CƠ BẢN
Thông thường bộ ghép nối có thanh chốt dữ liệu, bộ đệm 3 trạng thái để với BUS và
các mạch lật tạo tín hiệu đối thoại.
.I Các mạch logic cơ bản
.1 Mạch AND
− SN7408
− SN7409

Bảng trạng thái
A B Y
0 0 0
1 0 0
0 1 0
1 1 1

.2 Mạch OR
− SN7432

Bảng trạng thái
A B Y
0 0 0
1 0 1
0 1 1
1 1 1
.3 Mạch NOT
− SN7404
− SN7405
− SN7406

Bảng trạng thái
A Y
0 1
1 0
11
Thiết bị ngoại vi và kỹ thuật ghép nối
.4 Mạch NAND
− SN7400
− SN7401
− SN7403

Bảng trạng thái
A B Y
0 0 1
1 0 1
0 1 1

1 1 0
.5 Mạch NOR
− SN7402
− SN7428

Bảng trạng thái
A B Y
0 0 1
1 0 0
0 1 0
1 1 0
.6 Mạch đệm 3 trạng thái kích hoạt mức thấp
− SN74125
− SN74425

Bảng trạng thái
C A Y
1 x

Z
0 0 0
0 1 1

Z
: Trạng thái trở
kháng cao
.7 Mạch đệm 3 trạng thái kích hoạt mức cao
− SN74126
− SN74426
12

Thiết bị ngoại vi và kỹ thuật ghép nối

Bảng trạng thái
C(G) A Y
0 x

Z
1 0 0
1 1 1

Z
: Trạng thái trở
kháng cao

13
Thiết bị ngoại vi và kỹ thuật ghép nối
GIAO THỨC GHÉP NỐI
.I Giao trức ghép nối (Interface Protocols)
− Khái niệm: Là các qui định về
 Tín hiệu (Signals)
 Định dạng dữ liệu (Data format )
 Tốc độ (Rate)
 Phát hiện và sửa lỗi (Error detection & correction)
 Lệnh và tập kết quả thực hiện lệnh (Command & Response set)
 Kịch bản (Scenario)
.1 Signals:
Khi thiết kế, xây dựng ghép nối máy tính, cần chú ý đặc biệt tới tín hiệu theo các yêu
cầu:
− Có dùng bus hay không?
− Truyền dữ liệu tuần tự hay song song

− Có khả năng kết nối liên tiếp (Daisy chain) cho tín hiệu hoặc nguồn cấp
− Các tín hiệu điều khiển và trạng thái:
 Control signals
 Status signals
 Handshaking signals - bắt tay
 Tính chất vật lý của tín hiệu
− Mức điện áp: Voltage ? (TTL, 12V/ 24V/48V ) In/Out, Single End, Differential
(vi sai)
− Mức dòng điện: (Fan Out, Loading):
 Number of Standard TTL/ LS TTL loads,
 Sink: dòng chảy vào - LowLevel, mA,
 Source: dòng chảy ra - HighLevel, mA/
µ
A. (H. 2.1.c)
 Cable & Connectors:
− Connectors:
 D shell: DB9, DB25,
14
Thiết bị ngoại vi và kỹ thuật ghép nối
 DIN,
− Cable:
 Flat,
 Coaxial,
 Shield,
 Twisted Pair
 Normal
 Optical Fiber
.2 Tốc độ trao đổi thông tin:
Xuất phát từ nhu cầu trao đổi thông tin của thiết bị ngoại vi ta phải chọn chọn môi
trường truyền thích hợp. Các vấn đề liên quan đến tốc độ trao đổi thông tin.

− Môi trường, đường truyền (cáp đồng, quang, wireless (radio, infrared)…)
− Hiện tượng ngẽn cổ trai (Bottle-neck)
− Khoảng cách, tích số k/c và tốc độ => Song song (Word/ Byte/ nibble)/ nối tiếp
(bit)
− Truyền đồng bộ hay bất đồng bộ (Synchronous/Asynchronous)?
− Điều chế và giải điều chế (Modulation/Demodulation)
Ví dụ:
LPT: SPP mode: 50 100kBps - software, ECP: 2 4 MBps - DMA
LAN Ethernet - IEEE 802.3: 10/100 Mbps dual spee
RS232: 2400/ 4800/ 9600/ 19200 bps
.3 Kiểm tra, sửa lỗi, nâng cao độ tin cậy
Khi trao đổi thông tin thường hay gây ra lỗi, đặc biệt truyền với khoảng cách xa hoặc
phải chuyển đổi loại tín hiệu. Nhiều phương pháp bằng cả phần cứng lẫn phần mềm hỗ
trợ để kiểm tra và sửa lỗi:
− [Block] check sum - BCC, phần mềm,
− CRC, ECC, vi mạch/ software - subroutine
− Parity, 1 hoặc 2 chiều
− Redundancy (RAID), thừa dl, trao đổi nội dung số liệu hơn 1 lần và so sánh.
15
Thiết bị ngoại vi và kỹ thuật ghép nối
.4 Command & Response (Result/Reaction) set
Intelligent Devices (Computerized devices - mouse, KB, Printer, modem, FDC, HDC,
RTU ) có nhiều tham số, chế độ hoạt động => xây dựng bộ lệnh (command set) và
thông tin trả về (response set).
Dùng phần mềm để xử lý => bớt tín hiệu.
o Tập hợp các yêu cầu từ CS - command set,
o Tập hợp các trả lời, trạng thái - result/response/ reaction set.
Các câu lệnh và trả lời có syntax riêng (cấu trúc và ngữ pháp).
Case Studies: lệnh AT và Response Hayes MODEMs:
Lệnh: ATDT 1260  ' Với nhiều Options

Trả lời (reaction) OK [Error] . . . Connect @1 9200 (result)
Lệnh FX Printer: Esc * m, n1, n2; Sel Graph Mode
Tham khảo các bộ lệnh của các thiết bị chuyên dùng: GPS,
Gyrocompass, Digital Oscilloscope, SAGEM, TelSat, Programmer
(Hi-Lo System All-11P2)
Một command/response thường có cấu trúc:
o mã bắt đầu ký tự riêng nh @ / # / $/ AT
o mã lệnh, 1 3 bytes/ char,
o tham số lệnh, 1 n bytes,
o mã kiểm tra lỗi check sum, CRC (dễ xử lý)
o mã kết thúc, ký tự riêng.
Có thêm các mã (ký tự) đối thoại/ reaction, [dùng] ký tự điều khiển của ASCII như:
ENQ, ACK, NACK, Bell,
OK, ERR, BUSY
2.1.6. Kịch bản đối thoại - Scenario:
Liệt kê các trường hợp có thể rồi áp các phép xử lý tương ứng để đảm bảo việc
ghép nối: không mất tin, thừa tin, quẩn, treo
Thường xây dựng: Step List hoặc Chart:
Time Out !
Master ENQ
Slave
ACK
NAK
16
Thiết bị ngoại vi và kỹ thuật ghép nối
nothing
17
Thiết bị ngoại vi và kỹ thuật ghép nối
GHÉP NỐI TRAO ĐỔI DỮ LIỆU NỐI TIẾP
.I Khái quát chung về trao đổi dữ liệu nối tiếp (Serial)

Trao đổi dữ liệu nối tiếp là trao đổi từng bít trên một đường dây duy nhất. Do đó ít tốn
kém cho việc chi phí đường truyền nhưng tốc độ trao đổi thường chậm. Khi một bộ vi
xử lý giao tiếp với thiết bị ngoại vi thì nó cấp dữ liệu dưới dạng từng 8,16… bít một.
Trong một số trường hợp chẳng hạn như các máy in thì thông tin đơn giản được lấy từ
đường bus dữ liệu 8 bít và được gửi đi tới bus dữ liệu 8 bít của máy in. Điều này có thể
làm được chỉ khi đường cáp bus không quá dài vì các đường cáp dài làm suy giảm thậm
chí làm sai lệch tín hiệu. Ngoài ra, đường dữ liệu 8 bít giá thường đắt. Vì những lý do
này, việc truyền thông nối tiếp được dùng để truyền dữ liệu giữa hai hệ thống ở cách xa
nhau. Hãy so sánh hai kiểu truyền nối tiếp và song song
Ta dùng phương pháp trao đổi dữ liệu tuần tự này khi:
− Thiết bị phát (nhận) dữ liệu từng bít.
− Khoảng cách truyền lớn (hàng ngàn km) do vậy việ sử dụng nhiều đường dây cho
việc trao đổi dữ liệu song song là rất tốn kém. Người ta có thể truyền dữ liệu kiểu
này thông qua bộ điều chế và giải điều chế (Modem).
Điều khiển nối tiếp này có hai kiểu truyền dữ liệu
− Truyền dữ liệu đồng bộ (Tốc độ truyền nhanh)
− Truyền dữ liệu không đồng bộ (Tốc độ truyền chậm)
.1 Trao đổi dữ liệu đồng bộ
Dữ liệu được truyền 1 lần gồm 1 khối nhiều byte được bắt đầu và kết thúc bằng ký tự
SYNC (Mã ASCII là 16). Mối khối có thể chứa 1 byte cho đến hàng trăm Kbyte.
…. SYNC …… Dữ liệu … SYNC ….
Để truyền được dữ liệu cần có sự đồng bộ về tốc độ của máy phát và máy thu tránh
trường hợp máy thu chưa kịp nhận dữ liệu cũ thì máy phát đã truyền đi dữ liệu mới. Có
hai cách để đồng bộ:
18
Sender Receiver
Serial Transfer
Sender Receiver
Parallel Transfer
Thiết bị ngoại vi và kỹ thuật ghép nối

 Cách 1: Đặt một bộ phát xung ở phía máy phát và truyền tín hiệu xung
sang phía máy thu bằng một đường tín hiệu khác đường truyền dữ liệu. Xung
tín hiệu có nhiệm vụ đồng bộ giữa máy phát và máy thu.
 Cách 2: Bộ phát tín hiệu đồng bộ được đặt ở phía máy thu. Khi có tín hiệu
đồng bộ SYNC thì bộ phát xung nhịp trong máy thu bật lên và chuyển sang
chế độ thu xung đồng bộ được kích hoạt bởi SYNC.
.2 Trao đổi dữ liệu không đồng bộ (Dị bộ)
Truyền thông dữ liệu nối tiếp dị bộ được sử dụng rộng rãi cho các phép truyền hướng
kỹ tự, còn các bộ truyền dữ liệu theo khối thì sử dụng phương phát đồng bộ. Trong
phương pháp dị bộ. Các byte dữ liệu được đặt trong một khung (frame) và truyền độc
lập với nhau. Dạng dữ liệu được truyền có cấu trúc: Start – Dữ liệu – parity – Stop.
Trong đó phần dữ liệu truyền có thể là 5,6,7 bít. Thông thường là 7 bít nếu truyền dữ
liệu ký tự dạng mã ascii, và là 8 bít nếu truyền các ký tự điều khiển.
Ví dụ, xem hình dưới đây trong đó ký tự đóng khung một ký tự “A” của mã ASCII (7
bít nhị phân là 100 0001) đóng gói khung giữa một bít bắt đầu và một bít dừng. Lưu ý
rằng bít thấp nhất LSB được gửi ra đầu tiên
Trong truyền thông nối tiếp dị bộ thì các chíp IC ngoại vi và các modem có thể được
lập trình cho dữ liệu với kích thước theo 7 bít hoặc 8 bít. Đây là chưa kể các bít dừng
stop có thể là 1 hoặc 2 bít. Trong khi các hệ ASCII cũ hơn (trước đây) thì các ký tự là 7
19
Phát Thu
Đồng bộ
Phát Thu
Đồng bộ
0
0
0
0
0
Stop

bit
1
1
Start
bit
Parity
bit
Mark
Space
D0D6
Thiết bị ngoại vi và kỹ thuật ghép nối
bít thì ngay nay do việc mở rộng các ký tự ASCII nên dữ liệu nhìn chung là 8 bít. Trong
các hệ cũ hơn do tốc độ chậm của các thiết bị thu thì phải sử dụng hai bít dừng để đảm
bảo thời gian tổ chức truyền byte kế tiếp. Tuy nhiên, trong các máy tính PC hiện tại chỉ
sử dụng 1 bít stop như là chuẩn.
Giả sử rằng chúng ta đang truyền một tệp văn bản các ký tự ASCII sử dụng 1 bít stop
thì ta có tổng cộng là 10 bít cho mỗi ký tự gồm: 8 bít cho ký tự ASCII chuẩn và 1 bít
start cùng 1 bít stop. Do vậy, đối với mỗi ký tự 8 bít thì cần thêm 2 bí vị chi là mất 25%
tổng phí.
Trong một số hệ thống để nhằm duy trì tính toàn vẹn của dữ liệu thì người ta còn thêm
một bít lẻ (parity bít). Điều này có nghĩa là đối với mỗi ký tự (7 hoặc 8 bít tuỳ từng hệ)
ta có thêm một bít ngoài các bít start và stop. Bít chẵn lẻ là bít chẵn hoặc bít lẻ. Nếu là
bít lẻ có nghĩa là số bít của dữ liệu bao gồm cả bít chẵn lẻ sẽ là một số lẻ các sô 1.
Tương tự như vậy đối với trường hợp bít chẵn thì số bít của dữ liệu bao gồm cả bít chẵn
- lẻ sẽ là một số chẵn của các số 1. Ví dụ, ký tự “A” của mã ASCII ở dạng nhị phân là
0100 0001, có bít 0 là bít chẵn. Các chíp UART đều cho phép việc lập trình bít chẵn - lẻ
về chẵn, lẻ hoặc không phân biệt chẵn lẻ.
.3 Tốc độ truyền dữ liệu nối tiếp
Tốc độ truyền dữ liệu trong truyền thông dữ liệu nối tiếp được tính bằng số bít trong 1
giây (bps - bít per second). Ngoài ra, còn được sử dụng một thuật ngữ rộng rãi nữa là

tốc độ baud. Tuy nhiên, các tốc baud và bps là hoàn toàn không bằng nhau. Điều này là
do tốc baud là thuật ngữ của modem và được định nghĩa như là sô lần thay đổi của tín
hiệu trong một giây. Trong các modem có những trường hợp khi một sự thay đổi của tín
hiệu thì nó truyền vài bít dữ liệu. Nhưng đối với một dây dẫn thì tốc độ baud và bps là
như nhau.
.4 Các chuẩn RS232.
Để cho phép tương thích giữa các thiết bị truyền thông dữ liệu được sản xuất bởi các
hãng khác nhau thì một chuẩn giao diện được gọi là RS232 đã được thiết lập bởi hiệp
hội công nghiệp điện tử EIA vào năm 1960. Năm 1963 nó được sửa chỉnh và được gọi
là RS232A và vào các năm 1965 và 1969 thì được đổi thành RS232B và RS232C. Ở
đây chúng ta đơn giản chỉ nói đến RS232.
Ngày nay RS232 là chuẩn giao diện I/O vào - ra nối tiếp được sử dụng rộng rãi. Chuẩn
này được sử dụng trong máy tính PC và hàng loạt các thiết bị khác nhau. Tuy nhiên, vì
nó được thiết lập trước họ lô-gíc TTL rất lâu do vậy điện áp đầu vào và đầu ra của nó
không tương thích với mức TTL. Trong RS232 thì mức 1 được biểu diển bởi - 3v đến
-25v trong khi đó mức 0 thì ứng với điện áp + 3v đến +25v làm cho điện áp - 3v đến +
3v là không xác định. Vì lý do này để kết nối một RS232 bất kỳ đến một hệ vi điều
20
Thiết bị ngoại vi và kỹ thuật ghép nối
khiển thì ta phải sử dụng các bộ biến đổi điện áp như MAX232 để chuyển đổi các mức
lô-gíc TTL về mức điện áp RS232 và ngược lại. Các chíp IC MAX232 nhìn chung được
coi như các bộ điều khiển đường truyền. Kết nối RS232 đến MAX232 được xem xét ở
phần sau.
.a Các chân của RS232.
Bảng 10.1 cung cấp sơ đồ chân của cáp RSE232 và các tên gọi của chúng thường được
gọi là đầu nối DB - 25. Trong lý hiệu thì đầu nối cắm vào (đầu đực) gọi là DB - 25p và
đầu nối cái được gọi là DB - 25s
21
Thiết bị ngoại vi và kỹ thuật ghép nối
LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ

Phần này ta sẽ tìm hiểu về truyền tin nối tiếp và lập trình phối ghép với các thiết bị
UART 8250A, bàn phím, màn hình và một công cụ hỗ trợ người lập trình hệ thống trên
windowsRadASM.
.I TRUYỀN THÔNG TIN NỐI TIẾP VỚI BỘ ĐIỀU HỢP UART
Việc truyền thông tin giữa các thành phần nằm gần nhau như các bộ phận của một hệ vi
xử lý đĩa cứng, màn hình, CPU…có thể thực hiện thông qua bus song song mở rộng
hoặc qua các mạch phối ghép song song. Trong đó một nhóm bít (8, 16 , 32 hoặc 64)
được truyền từ bộ phận này sang bộ phận khác trên 1 tập các đường truyền tín hiệu cáp.
Ngược lại, trong trường hợp phải truyền tín hiệu giữa các đối tượng ở xa nhau thì không
thể dùng nhiều dây tín hiệu đồng thời vì lý do kinh tế. Phương thức truyền tin nối tiếp
phù hợp với yêu cầu thực tế này. Trong phương thức truyền tin nối tiếp thì ở đầu phát,
dữ liệu dưới dạng song song được chuyển thành dữ liệu dạng nối tiếp, tín hiệu nối tiếp
sau đó được truyền đi liên tiếp theo từng bít trên một đường dây đến đầu thu. Tại đầu
thu, tín hiệu nối tiếp sẽ được biến đổi ngược lại thành dạng song song để truyền cho các
thành phần đứng gần nhau.
.1 Cơ bản về truyền tin nối tiếp
Có hai kiểu truyền thông nối tiếp: đồng bộ và không đồng bộ (dị bộ). Trong phương
thức đồng bộ thì dữ liệu được truyền đi theo từng bản tin (một đoạn văn bản) với một
tốc độ xác định. Tuỳ theo giao thức truyền thông mà mỗi bản tin truyền đi có các cấu
trúc khác nhau. Chẳng hạn, nếu dùng giao thức truyền thông tin hệ 2 đồng bộ
(BISYNC: Binary Synchronous Communication Protocol) thì cấu trúc một bản tin như
sau:
SYN SYN SOH HEADE
R
STX TEXT ETX BCC
Kí tự
đồng
bộ
Kí tự
đồng

bộ
Bắt
đầu
phần
header
phần
header
Bắt đầu
phần
nội
dung
Phần
nội
dung
bản tin
Kêt
thúc
phần
nội
dung
Kí tự
kiểm
tra
khối
Ngược lại, trong phương thức truyền không đồng bộ, dữ liệu được truyền đi theo từng
kí tự. Kí tự cần truyền đi được gắn thêm bít đánh dấu ở đầu để đánh dấu bắt đầu kí tự. 1
hoặc 2 bít cuối cùng để đánh dấu kết thúc kí tự. Vì mỗi kí tự được nhận dạng riêng biệt
22
Thiết bị ngoại vi và kỹ thuật ghép nối
nên nó có thể truyền đi bất cứ khi nào. Dưới đây là cấu trúc của một khung truyền

(frame) theo phương pháp không đồng bộ.
Start D0 D1 D2 D3 D4 D5 D6 Parit
y
Stop Stop
Mã ký tự cần truyền
Tuỳ theo loại mã ta sử dụng để mã hoá kí tự (baudot, ASCII, EBCDIC) mà độ dài cho
mã kí tự có thể là 5,6,7,8 bit. Tuỳ theo hệ thống truyền tin, bên cạch các bít mã dữ liệu
còn có thể có bit parity dùng để kiểm tra lỗi khi truyền.
Việc truyền tin không đồng bộ được thực hiện nhờ một UART (Universal
Asynchronous Receiver Transmitter) ở đầu phát và một UART ở đầu thu. Khi có kí tự
phát, mạch 8251A sẽ tạo ra khung cho kí tự bằng cách thêm vào các bít start, parity và
stop, rồi gửi liên tiếp từng bít ra đường truyền. Bên phía thu, một mạch 8251A khác sẽ
nhận kí tự, tháo bỏ khung truyền, kiểm tra parity, rồi chuyển sang dạng song song để
CPU đọc.
.2 Các thanh ghi của UART 8250A/16450
Mạch 8250A là một mạch thu phát dị bộ vạn năng (UART) được sử dụng rất phổ biến
để phối ghép với cổng thông tin nối tiếp như cổng COM theo chuẩn RS 232C. Dưới đây
ta tìm hiểu về các thanh ghi bên trong của UART 8250A.
Dưới đây là bảng liệt kê tổ hợp chân tín hiệu có thể chọn ra các thanh ghi bên trong của
UART 8250A.
DLA A2 A1 A0 Chọn ra các thanh ghi
0 0 0 0 Thanh ghi đệm thu (RBR), thanh ghi giữ phát (THR)
0 0 0 1 Thanh ghi cho phép tạo yêu cầu ngắt (IER)
1 0 0 0 Thanh ghi cho số chia phần thấp (LSB)
1 0 0 1 Thanh ghi cho số chia phần cao (MSB)
X 0 1 0 Thanh ghi nhận dạng nguồn gốc yêu cầu ngắt (HR)
X 0 1 1 Thanh ghi điều khiển đường truyền (LCR)
X 1 0 0 Thanh ghi điều khiển modem (MCR)
X 1 0 1 Thanh ghi trạng thái đường dây (LSR)
X 1 1 0 Thanh ghi trạng thái modem (MSR)

X 1 1 1 Thanh ghi nháp
Bảng này cũng có thể được mô tả như sau;
Base Address DLAB Read/Write Abr. Register Name
+ 0 =0 Write - Transmitter Holding Buffer
=0 Read - Receiver Buffer
=1 Read/Write - Divisor Latch Low Byte
23
Thiết bị ngoại vi và kỹ thuật ghép nối
+ 1 =0 Read/Write IER Interrupt Enable Register
=1 Read/Write - Divisor Latch High Byte
+ 2 - Read IIR Interrupt Identification Register
- Write FCR FIFO Control Register
+ 3 - Read/Write LCR Line Control Register
+ 4 - Read/Write MCR Modem Control Register
+ 5 - Read LSR Line Status Register
+ 6 - Read MSR Modem Status Register
+ 7 - Read/Write - Scratch Register
 DLAB là gì ?
Chú ý cột DLAP. Khi DLAP được thiết lập giá trị 0 hoặc 1, một số thanh ghi sẽ thay
đổi. Đây cũng là nguyên nhân của việc UART có tới 12 thanh ghi (bao gồm cả thanh
ghi nháp) với chỉ 8 cổng địa chỉ. DLAB dùng để phân chia “Divisor Latch Access Bit”.
Khi DLAB được thiết lập là 1 qua thanh ghi điều khiển đường truyền (line control
register-LCR), sẽ có hai thanh ghi được cấp để ta có thể thiết lập tốc độ của đường
truyền (bít/ giây).
UART sẽ có tinh thể dao động với tần số khoảng 1.8432 MHZ. UART có 16 bộ đếm do
đó tần số dao động trên được chia đều cho 16 bộ đếm. Điều đó có nghĩa là tốc độ truyền
tín hiệu giảm 16 lần so với tần số dao động của tinh thể. Giả sử ta có một tinh thể dao
động với tần số 1.8432 MHZ (1842300 HZ), sẽ cho ta tần số tín hiệu tối đa là
1842300/16=115200 HZ signal. Tần số này sẽ tạo cho UART khả năng truyền và nhận
tín hiệu với tốc độ 115200 bít/giây (bps).

Giả sử chúng ta muốn truyền dữ liệu ở tốc độ 2400 bps. Ta nhận thấy rằng
115200/48=2400. 48 ở đây được gọi là hệ số chia. 48 sẽ được lưu trong hai thanh ghi.
Hai thanh ghi này lại được điều khiển bởi DLAB bít (Divisor Latch Access Bit). Hệ số
chia này được lưu trữ bởi 16 bít (có giá trị từ 0 đến 65535). Bus địa chỉ của UART lại
chỉ có độ rộng 8, như vậy sẽ có hai thanh ghi được sử dụng để lưu trữ hệ số chia này
(mỗi thanh ghi 8 bít). Thanh ghi đầu tiên có địa chỉ Base + 0 (khi DLAB = 1) chứa phần
bít thấp của hệ số chia ("Divisor latch low byte"). Thanh ghi thứ hai có địa chỉ Base + 1
( khi DLAB = 1) chứa phần bít cao của hệ số chia ("Divisor latch high byte").
 Thanh ghi điều khiển đường truyền (Line Control Register)
Thanh ghi này còn có tên khác là thanh ghi định khuôn dạng dữ liệu vì nó quyết định
khuôn dạng dữ liệu trên đường truyền. Cấu trúc của thanh ghi LCR được biểu diên như
sau:
D7 D6 D5 D4 D3 D2 D1 D0
DLAB SBCB SP EPS PEN STB WLS1 WLS1
− Bít D7 (DLAB): Bit truy nhập số chia
24
Thiết bị ngoại vi và kỹ thuật ghép nối
1: truy nhập số chia
0: truy nhập IER,THR và RBR
− Bít D6 (SBCB): Bit điều khiển gián đoạn
1: buộc Sout =0
0: không hoạt động
− Bít D5 (SP): Đảo parity
1: parity chẵn
0: không hoạt động
− Bít D4 (ESP): chọn tạo/kiểm tra parity chẵn
1: parity chẵn
0: parity lẻ
− Bít D3 (PEN): cho phép tạo/kiểm tra parity
1: cho phép

0: cấm
− Bít D2 (STB): số bit stop
1: 1,5 hoặc 2 bít
0: 1bít
− Bít D1, D0 (WLS1, WLS0): Chọn độ dài từ
00: 5 bít
01: 6 bít
10: 7 bít
11: 8 bít
 Thanh ghi đệm giữ phát (Transmitter Holding Register- THR)
Ký tự cần phát đi phải được ghi từ CPU vào thanh ghi này trong khi bít DLAB=0. Sau
đó khi truyền 8250A lấy kí tự từ đây, đóng khung cho nó như đã định và đưa từng bít ra
chân Sout.
 Thanh ghi đệm thu (Receiver Buffer Register- RBR)
Khi 8250A nhận được một ký tự qua chân Sin, nó tháo bỏ khung truyền cho kí tự và
giữa kí tự tại thanh ghi đệm thu để chờ CPU đọc vào. CPU chỉ đọc được kí tự trong
thanh ghi này khi bít DLAB=0.
 Thanh ghi cho phép tạo yêu cầu ngắt (Interrupt Enable Register- IER)
Thanh ghi này dùng để cho phép/ cấm các nguyên nhân gây ra ngắt rkhác nhau. Trong
khi mạch 8250A hoạt động có thể tác động đượctới CPU thông qua chân INTRPT của
25

×