Central Sub System – CS: + 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
Trang 1Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) Giáo viên: Bùi Quốc Anh,
Bộ môn Kỹ thuật Máy tính
• Introduction: The purpose of this course is to provide student with technical knowledge of each major
subsystem of Interface, including processors, memories, IO bus, especially Nonstandard zed Input
Output via ports and applies to industry architectures across a wide range of hardware vendors
• This document could contain technical inaccuracies or typographical errors Author believes the
statements contained herein are accurate as of the date of editing of this doc However, the Author
makes no warranty of any kind with respect to the accuracy of the contents hereof
Tài liệu tham khảo:
Publications:
- Microprocessor Interfacing techniques, R Zaks & A Lease, Sybex
- Micro Processor and Interfacing, D Hall, McGraw Hill;
- IBM PC AT Technical Reference (Buses, Ports), IBM;
- Introduction to the PC Architecture Course, IBM PC Institute, 1997
- Interfacing to IBM PC – L C Eggebrecht, IBM Corp
- Parallel Port Complete, J.Axelson, LakeViewResearch
- Mastering Serial Communication, P.W Gofton, Sybex
- PC Intern (System Programming), M Tischer, Abacus
- Programming & Interfacing the 8051 MC, S Yeralan, Addison-Wesley
-
Software:
- TechHelp Ver 4.0 / 6.0
- MSDN, Online Help
- Design tools: OrCAD, Protel, Cadence
- Programming Languages (C, Pascal, MASM, C++, VB, Delphi, VC++ )
-
Websites, pdf files:
- IBM, Microsoft, Intel, Motorola
- ATMEL: atmel.com/product/microcontrollers 89Cxx (51/52/2051/8252, AVR - RISC, MSC51)
- National Semiconductor: ns.com/products: ADC 0809, DAC0800/1210, S&H LM198)
- INTERSIL: intersil.com/products/ICL7109, 7135
- Analog Devices Inc.: adi.com/products/adc, S&H : AD574, AD1674
- USB: usb.org (pdf files for version 1.x & 2.x)
- Cypress – EZ USB, Developing Kit
rs,
Wide world
Computerized Dev:
KB, Printer, Scanner, Mouse
Specific Devices:
HDD, CRT,
Industry Objects:
Scale, Furnace, GenSet, Tanks,
Adaptor
Ports
Controllers HDC, CRTC
ADC, DAC Central Sys
Trang 2Chương.1 Kiến trúc hệ VXL – MT
§ Kiến trúc thiết bị hệ kinh điển,
§ Kiến trúc hệ máy tính ‘Hi Performance’
1.1.1 a Central Sub System – CS:
+ 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
• 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
•
Memories (Semiconductor): K/n & 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 (upto 100s Mega bit), tốc độ truy nhập nhanh (downto ns access time)
Physically: tính chất vật lý như thế nào?
– 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
• 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, less µW Vdụ: MC 146818 CMOS RAM
RealTimeClock-• Dùng trong các hệ nhỏ, cache memory
Memories (Semiconductor): DRAM
Dynamic RAM: DRAM:
§ Tốc độ/Access time (50-70ns), [10 20ns] 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
Memories (Semiconductor): Logically:
Bộ nhớ chứa thông tin gì?
§ số liệu có kiểu truy nhập đặc biệt FIFO, LIFO (Stack memory)
+ Controllers: [Optional], 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 8259A
§ 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
§ 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
§
Bus System: K/n & Addr bus
• 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 è 2n Mem Locations & 2m IO Locations, m<n
Bus System: Data bus
§ Data bus:
§ Số bit (thường) phù hợp với kích thước ALU (8/16/32/64 bit)
Trang 3§ 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
Bus System: 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
Bus System: 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
§ -12V ± 10%, 1Amp, (nh trên), BlueWire
§ - 5 V ±5%, 0.5 Amp, analog circuitries, WhiteWire
§ Power good: OrangeWire
Nguồn thông minh: AXT
1.1.1.b Thiết bị Ngoại vi: 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
1.1.1.b T/bị Ngoại vi: Data Output Devices:
- Displays: Kiểu hiển thị: Point/ 7Seg/ Text/ Graphics; Mono Chrome/Color (color numbers); Size,
Resolution, Rate of Refreshing
- Công nghệ:
- 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)
- Thermal Transfer Printer, barcode Printer
- High Speed Text Printer,
- Actuator: Motor (dc/ac, Step), Relay, Valve,
1.1.1.b T/bị Ngoại vi: Data Massive Storages:
- Magnetic devices: FDD, HDD, RAID, Tape backup drive
- Optical devices: CD [Writer] Drives, Magnetic Optic disk drive
- Semiconductor devices: FlashChip, PCMCIA Card
Nên cần có mạch điện tử để thích ứng hoá (Adapting) và ch/tr điều khiển, gồm:
- Thiết bị (Hardware Circuitries), so called Adaptors:
- Input/Output Ports: (Parallel/Serial): ghep nối với Computerized devices (KB, Printer, Mouse, Scanner, Modem )
- 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
1.1.1.c Interface:
Ch/tr điều khiển – Device Driver:
- K/n: Hardware or Software?
- để liên kết System Programs and/or Application Programs với IO hardware (SPIs và APIs)
Các hàm của thiết bị, BIOS, OS hoặc theo ứng dụng: SLLs, DLLs, DRVs,
1.1.2 Kiến trúc máy tính hiệu năng cao - hi performance architecture
1.1.2 Hi-Per Architecture:
1.1.2.a Local Buses:
Ví dụ VESA VL-Bus 2.0 [late 1993], Memory [1985]
Also called system/host/processor bus
Chỉ liên kết CPU, MMU (Cache & DRAM) và PCI Host [Bridge],
ít, gần, unbuffered (direct connected to Processor);
33, 66, 100, 133, 200, 400, 800 MHz clock
32 bit A/D (16 bit support also), burst mode, max 132 MBps,
Trang 4H.1.3 Ví dụ burst mode
1.1.2.b Hi Speed Bus:
- Peripheral Component Interconnect – PCI
- 5/1993, Intel Ver 2.0, Open Standard,
- Local bus, mức trung gian giữa Local và các bus chuẩn khác (ISA, MC, EISA) thông qua PIC
Bridge/Controller
- Có kiểm tra parity cho Addr và Data
- Auto configuration of all PCI devices, share the same IRQ Disabling IRQ => cấm toàn bộ PCI devices
- No DMA, device on PCI bus là bus master (Tốt cho việc dùng MultiTasking OS)
- Burst mode: 32 bit @33MHz > 96 132MBps, tuỳ thuộc số byte (từ 32 byte đến 4KB) Option 64bit
@33MHz > 264MBps
- Most Platforms use:Intel, DEC Alpha, PowerPC, Spark
- Modern OS: ‘Block Typed Devices’: tần suất vận chuyển cao, nhanh, data block
1.1.2.c Expansion Bus:
So called: standard buses, expansion bus, slots, IO bus, IO system, channel bus): ISA, EISA, MC
- MC bus: 32 bit, 10MHz, 20 40MBps, 15 BusMaster, Auto config, 1987, IBM
- EISA bus: 32 bit, 8MHz, 33MBps, 4 BMs, AutoConfig (EISA card only), 1989, Compaq
- ISA (Industry Standard Architecture), AT bus:
- Spec 8/16 bit (data), 8MHz, 5MBps max, 1 BM, no PnP, 1984, IBM
- Rất phổ biến, còn tồn tại lâu, Espec @ iPC,
- Hạn chế số IRQs, 4 DRQs,
- Dùng DIP switch/jumper để config
- No data integrity features (no party checking)
- Modern OS: ‘Character Typed Devices’
(PC-(Sau khi reset, CPU sẽ tìm và t/h lệnh – với các thủ tục sau)
• Warm Start: do lệnh gọi, (Int 19h, Ctrl_Alt_Del)
• POST (Power On Self Test – ch/tr monitor/ BIOS) để kiểm tra mọi thiết bị theo nguyên tắc ghi và đọc lại (Registers, RAM) hoặc đọc và kiểm tra Check Sum (ROM)
• Initializing: đặt các tham số => configuring
• [Máy tính - Nạp hệ điều hành ]
1.2.3 DMA: (Xem Ch 3.2.) 1.2.4 Interrupt: (Xem Ch 3.3.) 1.2.5 Tìm và thực hiện lệnh :
Diễn ra chủ yếu trong thời gian hoạt động
Ch/tr ngôn ngữ máy: tập hợp các lệnh có cấu trúc, có nghĩa, thực hiện 1 thuật toán
Chu kỳ lệnh (Instruction Cycle): Khoảng thời gian CPU thực hiện xong 1 lệnh, gồm: tìm lệnh, giải mã
lệnh, [tìm toán hạng và thực hiện lệnh (thực hiện các phép xử lý hoặc vào-ra)]
độ dài lệnh: 1 hay nhiều byte, CISC Thời gian t/h: 1 hay nhiều chu kỳ máy (chu kỳ bus)
Chu kỳ máy (Bus/Machine Cycle): thời gian BusMaster thực hiện thao tác trên bus
Clock cycle: Chu kỳ máy: 4 12 chu kỳ clock, tuỳ CPU
1.2.5.1 Hoạt động của hệ thống: Có 8 CPU’s BusCycles:
• M1, opcode fetching, Addr =>Program mem, -MEMR
• Data mem Reading, Addr=>Data mem, -MEMR
• Data mem Writing, Addr=>Data mem, -MEMW
• Input Port Reading, Addr=> IO space, -IOR
• Out Port Writing, Addr => IO space, -IOW
• Interrupt Acknowledge, -INTA,
• Halt, waiting for Ext Intr hoặc reset
• Bus Idle
• 2 DMAC’s bus (machine) cycles: IOR-MemW vµ MemR-IOW
1.2.6 Wait State (Ready):
Trang 5• Thường dùng để ghép nối: bộ nhớ, ngoại vi tốc độ chậm
• Hoạt động Khi BusMaster phát địa chỉ & tín hiệu đọc/ghi (thêm các tín hiệu khác) để thực hiện 1 chu kỳ
bus, MMU/IO port [Controller] chủ động phát ra tín hiệu Ready=0 (not Ready) để yêu cầu BusMaster
giữ nguyên trạng thái bus thêm 1 [vài] nhịp clock
Case Study: IOW bus cycles w/o and w 1 wait state:
Chương 2 Giao thức ghép nối (Interfacing Protocols)
- Giao thức ghép nối
- Đặc điểm lập trình I/O 2.1 Interface Protocols:
• K/n: Là các qui định: Signals - Data format - Rate - Error detection & correction - Command & Response set - Scenario (kịch bản)
ISO 7 layer Model (Ref Computer networks)
Có thể phân chia thành 2 nhóm chính (Siemens) :
• Transport-Oriented Protocols (1 4) (!!!)
• PhysicAL (wire, cable, connector), DataLink (CRC, CS, Token), NetWork (Comm 2 networks ),
Transport (Err-protected raw infor),
• Application-Oriented Protocols (5 7) :
• Session (Opening, End), Presentation (Common Language) và Application (Read/Write,
Start/Stop, FileTransfer)
2.1.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:
• bus hay không? => có dùng bit (trường) địa chỉ, Standard bus?
?: IDE và LPT cable có phải là bus? tại sao?
• Data: Serial vs Parallel Interface, format?
• Daisy chain cho t/h 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
Ví dụ 1: PC-LPT handshaking:
Hình 2.1.a.LPT handshake Signal
• Phương pháp biến đổi tín hiệu: biên, tần, pha, dòng, quang (cáp quang, Ir)
Port
Trang 6§ 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)
Nối chung các tín hiệu ra: 3 state, open collector, (Open Drain), Mux - dồn kênh, Switch - khóa
Hot swap – hot plugible: Y/c Vcc và t/h
Cách ly (isolation): Relay, Opto Coupler, IrLED
Bus Slot, Connector, chuẩn, số chân (pin)
Sơ đồ cách ly quang học đ/v tín hiệu In/Out:
Cable & Connectors:
Mỗi gói tin (packet) gồm 3 phần:
- Header: [có thể có: tên bản tin, tên gói, số thứ tự, ký tự bắt tay, ký tự đồng bộ, số ký tự/ byte trong gói tin ], không mang tin
- Content: nội dung tin – mang thông tin
- Tailer: Mã bắt tay kết thúc, [mã kiểm tra lỗi] – không mang tin
Ví dụ: HDC, FDC: Full Sector: gap - 5 byte ID field - 2 byte ID CRC - gap - data field: 512 byte - 2 byte CRC
FTP, Kermit, X-Modem Protocols: 128[256] B/pack
Hình 2.3.d USB data packet format
Byte số liệu/character/frame: (truyền không đồng bộ, RS-232, RS-485, RS-422 ): ký tự hay byte được định dạng thành 1 frame:
Trang 7- 1 start bit = 0,
- 5/6/7/8 data bit, D0 first,
- [parity: Even/ Odd],
- 1 / [1.5 / 2] stop bit = 1(s)
2.1.3 Tốc độ trao đổi thông tin:
Xuất phát từ: Nhu cầu trao đổi thông tin của T/b ngoại vi (nhanh như LED Board, ADC ), => chọn môi trường
truyền thích hợp, có liên quan tới t/h:
Xem Bottle-neck?
Khoảng cách - tích số k/c và tốc độ => Song song (Word/ Byte/ nibble)/ nối tiếp (bit)
Môi trường, đường truyền (cáp đồng, quang, wireless (radio, infrared)
Synchronous/Asynchronous?
Modulation/Demodulation
=> tốc độ bao nhiêu kbps/kBps, tốc độ chuẩn?
Ví dụ: LPT: SPP mode: 50 100kBps - software, ECP: 2 4 MBps - DMA
LAN Ethernet – IEEE 802.3: 10/100 Mbps dual speed
RS232: 2400/ 4800/ 9600/ 19200 bps
2.1.4 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 xa/ chuyển đổi t/h Nhiều phương pháp (Hardware,
Software) hỗ trợ để kiểm tra:
• [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
• Case study: Barcode Phơng pháp mã hóa, giải mã và kiểm tra lỗi
Bar Code: EAN 13, CODE 39 (Intermec), CODE 128 (Zebra), UPC
• EAN 13 (European article numbering)
• Encoding: AAA BBBBB CCCC D; 4 độ dày vạch, 6 vạch/digit (b&w)
• CODE 128, Zebra, check sum modulo 103
2.1.5 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 @19200 (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 !
Hình 2.4 Scenario Chart
Hình 2.5 USB Interlayer Interconnection Model
2.2.1 IO Mapping:
Hình 2.6 Phân miền các cổng I/O
- Memory Mapped IOs:
o IOs chung với Mem trong MemSpace => chiếm vùng nhớ, tốn vùng nhớ
o CPU xử lý các cổng IO bằng các lệnh nh đ/v mem
- IO Mapped IOs: (Z80, x86 ):
Master ENQ Slave
ACK
NAK
nothing
Trang 8o Không chiếm không gian nhớ,
o CPU chỉ thực hiện 2 lệnh: IN và OUT
• x86 CPU’s IO map: IO mapped IOs, 16 Addr bit IO => 64Kilo IO locations
- PC’s IO map:
o IO Mapped IOs,
o Chỉ dùng 10 lowest addr bit, A0 A9 => 1 kilo IO locations
Soi gương – 1st kilo Mirrored với 63 kilo còn lại,
Mỗi IO port chiếm nhiều địa chỉ (nh PIC, PIT, PPI )
=> thiếu IO space Sẽ dùng thêm kiểu Mem Mapped IOs
2.2.2 Lệnh In/Out: (x86) :
Lệnh IN và OUT: chỉ dùng các thanh ghi Accumulator: 8 bit: AL, 16 bit: AX và 32 bit: EAX
Chế độ địa chỉ:
o Direct: for IO space: 0 0FFh
Ví dụ: in al,60h ; Read KB port
out 23Eh, ax ; lệnh sai, IOaddr>255 out 61h,al ; beep, set/reset key flag
o Indirect: for IO space 0 0FFFFh, via dx register
Ví dụ: mov dx,378h ; PLT port Addr
mov al, ‘A’ ;41h/ 65d out dx,al ; 'A' ==> Printer mov dx,3F8h ;Comm 1 port
in al,dx;
Chương 3 Các phương pháp trao đổi thông tin
•Polling - Thăm dò
•Interrupt - ngắt &
•DMA - truy nhập trực tiếp mem - IO
3.1 Phương pháp thăm dò (polling)
• K/n Polling: Dùng phần mềm để kiểm tra các cờ trạng thái @ IO Ports => quyết định trao đổi số liệu hay không
– Nhanh, đơn giản, hay dùng trong các hệ nhỏ hoặc đơn nhiệm – ít thiết bị IO, – Không phù hợp với ‘đa nhiệm’
N
Device #2 Y Request ?
N
Device #n Y Request ?
N
Device #1 Service Routine
Device #2 Service Routine
Device #n Service Routine
Quit
Hình 3.1 Lưu đồ PP IO interface polling
Trang 9Khi CPU đang thực hiện CTC, đến dòng lệnh thứ n, ngẫu nhiên, ngoại vi thứ i xin phục vụ bằng cách phát
ra tín hiệu IRQ(i) (Interrupt Request) đến CPU
Nói chung, CPU sẽ ngừng xử lý CTC và cất ngữ cảnh vào Stack Mem, rồi tìm địa chỉ của ctc phục vụ
ngắt tương ứng (Interrupt Service Routine - ISR) để thực hiện
Sau khi thực hiện xong ISR, gặp lệnh iret (reti ), CPU khôi phục lại ngữ cảnh của CTC và tiếp tục thực
hiện
Đặc điểm:
• Là phương pháp Vào/ra kết hợp tín hiệu và phần mềm, để thực hiện đa nhiệm
• Khái niệm ngắt: CTC bị dừng xử lý để gọi ctc
• Là chế độ hoạt động riêng cho các Vi xử lý/ máy tính kiểu ON-LINE,
• Nguồn ngắt: chủ yếu từ ngoại vi, CPU (exceptions, internal),
• Xảy ra ngẫu nhiên,
• Nhiều IOs, ngẫu nhiên => Tranh chấp => Giải quyết ưu tiên ngắt
Ưu tiên ngắt – Interrupt Priority:
• T/bị ưu tiên cao có thể dừng ISR của t/bị ưu tiên thấp
• Hệ lớn, nhiều IOs thường dùng PIC (Intel PIC8259A)
• Chỉ số ưu tiên do nhà sx qui định cho các t/bị ngoại vi, cố định, mức 0 là cao nhất
• Theo hình trên: Level (j) > Level(i),
i>j
• Ưu tiên phân định do các tín hiệu ngắt trong CPU (Intel 8085: INTR, 5.5, 6.5, 7.5 và TRAP),
• Z80 CPU & others: ưu tiên theo kiểu Daisy Chain
3.2.2 Phân loại:
Gồm: Hardware, software, internal, exception, NMI
a Software Interrupt:
Là việc gọi 1 ctc (Subroutine) được xây dựng riêng mà ctc này còn có thể được gọi bởi thiết bị ngoại vi
Các lệnh gọi như INT n; (Intel x86) hay SWI n; (Moto)
Tuy nhiên, việc thực hiện lệnh ngắt mềm giống như gọi thủ tục, và đôi khi đợc hiểu là TRAP
Ngắt mềm không phải là ngắt
b Hardware:
- Do Ports phát tín hiệu NMI/ IRQ đến CPU
- Chia thành 2: Maskable (có thể cấm được) và Non Maskable (không cấm được) :
Maskable Interrupt: là các ngắt thông thường, có thể cấm (disable) hay cho phép (enable) bởi các lệnh
CLI và STI (Intel vs Moto!), so called mask – che
Các ngắt sẽ bị cấm - IF disable: sau khi CPU reset, trước đó đã có IRQ khác, sau khi th/h lệnh CLI
Non Maskable Interrupt, NMI là ngắt có mức ưu tiên cao nhất, thường cho các việc: mất điện, sai số
liệu (DRAM parity) PC hiện nay, thường không dùng NMI
c Internal:
Hình 3.2 K/n ngắt
Trong một số CPU, để bẫy/ để xử lý các sự kiện trong khi thực hiện, như Intel x86:
- Divide by zero: tương ứng thực hiện lệnh, Int 0,
- Trap – Single Step: thực hiện từng lệnh, debug- ger, Int 1, dùng cùng với Trap Flag (Trace)
- Break Point: tạo điểm dừng, debugger, Int 3,
• Exception giống Interrupt, thực hiện lệnh riêng
• Trong PC, Exp khác Intr qua 2 điểm:
- Liên quan tới việc thực hiện chương trình,
- Có ưu tiên cao để dừng ch/tr
- Ví dụ: Math Processor Exception
(Apple Macintosh Computers): các Error, thay đổi điều kiện, kể cả ngắt, được CPU phát hiện trong khi chương trình đang hoạt động
3.2.3 Case study: tổ chức ngắt của các hệ VXL/Máy tính
a Intel 8x51 Micro Controllers:
Họ Intel 8x51 có 6 vectors ngắt:
02 Ext Interrupts: Int0 và Int1,
03 Timer Interrupts: Timer 0, 1, 2 và
01 Serial port Interrupt (phát/thu char)
ứng với các ngắt này, có các địa chỉ đầu cho ISR tương ứng tại trang zero @ Prog Memory: 0003, 000Bh, 0013h, 001Bh, 0023h và 002Bh
Tại các địa chỉ này thường đặt lệnh LJMP nnnn và được đặt lệnh RETI nếu không có ISR
b Z80 system:
• Z80-CPU, 3 modes ngắt: Các lệnh ReStart (như Intel 8085), NMI và Daisy Chain Kiểu Daisy Chain:
• Ghép nối với các Z80-Ports: Z80-PIO, Z80-SIO, Z80-CTC
• IRQs từ các ports là Open Drain,
• Khi CPU: M1 & IO Request => INTA đến port1,
• Nếu Port1 Resq, sẽ phát mã ‘Addr’ lên data bus, nếu không
• Chuyển INTA đến Port 2
• Ưu tiên cố định/ jumper
c x86 & PC interrupt
Bảng vector ngắt IVT Interrupt Vector Table– Real mode:
CPU x86: 1st kilo byte (RAM) bảng vector ngắt 1st KB = 256 elements of 4 bytes Chứa địa chỉ đầu của ISR tơng ứng Khi khởi tạo, BIOS nạp vào IVT đcđ của các ISR ứng với IO
Trang 10Đổi vector ngắt: đổi nội dung các vector này
Các ngắt cứng, NMI và Internal đều tương ứng với 1 lệnh ngắt mềm có cùng vector type, tức có vector
trong bảng IVT
Software Interrupt:
Lệnh Int n, n=0 FFh
Mô tả lệnh:
Trước khi thực hiện lệnh, phải có chtr khởi tạo ngắt (Intr house-keeping): định vị ISR và đổi vector ngắt,
Khi gặp lệnh Int n, CPU sẽ cất Flag Reg, CS và IP vào Stack mem, (n x 4) => IVT, đọc 4 byte tương ứng nạp
vào IP và CS, ISR bắt đầu được thực hiện
Khi gặp lệnh IRET, CPU khôi phục lại từ Stack Mem IP, CS và Flag Reg (LIFO)
Hardware Interrupt, irq:
IRQ trong PC: dùng 2 PICs - Priority Interrupt Controller
Master PIC (20h, 21h), IRQ0 IRQ7 => Int 8 Int 0Fh
Slave PIC (a0h,a1h) = IRQ8 IRQ15 => Int 70h Int 77h
x86 & pc, Hardware Int Priority Interrupt Conteroller Intel 8259A:
§ 8 Channel (8 I/O ports)
§ Ưu tiên cố định, vòng, vòng định trước
§ Nối tầng với Slave PIC(s), mở rộng thêm IOs
§ Nhiều chế độ hoạt động – ICWs & OCWs
§ Dùng với nhiều hệ VXL, IBM-PC
§ Tham khảo VXL của MTV
x86 & pc, Hardware Int:
Hardware Interrupt, IRQ:
Hoạt động Hardware Intr trong PC, xem PIC 8259A Interrupt Housekeeping - chuẩn bị:
files.sys[com], (Vd gmouse.com - cổng comm 1)
Load ISR và xác định địa chỉ vật lý, Enabling IRQi @ PIC’s, Mask Reg (OCW1): b(i) = 0, Thay vector ngắt, cần lưu vector cũ?
Enabling cờ IF trong CPU, lệnh STI, Set Interrupt Enable Flag, cho phép ngắt
Hoạt động:
1 Khi trao đổi số liệu: Ngoại vi <=> với IO port
2 IO port phát tín hiệu IRQ(i) tới PIC 8259A,
3 PIC phát tín hiệu INT => CPU CPU thực hiện nốt lệnh hiện tại
4 Cất ngữ cảnh main prog vào stack mem
5 #1 INTA bus cycle => Prioritizing
6 #2 INTA bus cycle => đọc Vector type của IO port, VectorType = i+8
7 (VectorType x 4) => IVT, đọc đcđ ISR tương ứng, nạp vào IP&CS, IRS bắt đầu được thực hiện
8 ISR: (nếu dùng ASM)
- Realtime Prog Languages: MASM, C, ,
- Enabling Interrupt for Higher priority Levels,
- Cất những thanh ghi-ISR dùngvào STACK Mem,
- T/h nội dung ISR,
- Khôi phục Reg từ STACK Mem, LIFO,
- NN cao Pascal/C: Pointers (for Old Vector) và procedure có chỉ dẫn Interrupt Chú ý cần có thêm các lệnh STI
và CLI hoặc inline mã máy FAh và FBh (En/Dis)
- MASM và OS: thay vector ngắt trực tiếp, lệnh mov các con trỏ vào IVT; int 21h subfunctions: 25h và 35h của DOS
- Case Study: Xây dựng ứng dụng dùng ngắt cứng để ghép nối ngoại vi: IRQ1 (Any key), IRQ4: CommPort, IRQ5 (Option) và IRQ7 (LPT1, Falling Edge of -ACK)
- Thường trú ngắt thời gian Int 1Ch thuộc Int 8 ISR, Timer
80x86 Interrupt in Protected Mode:
• Int Descriptor Table (IDT) có thể định vị bất kỳ vùng nhớ nào
• Vị trí và kích thước trong bảng IDTR: 32bit addr và 16 bit limit
• Gate, not vector
• 256 gate descriptor: trap/ interrupt/ task - ISR's Addr & Attribute
• Int/ trap cho phép chuyển đến ISR trong current task
Trang 11HLT ; Wait for Ext IRQ or Reset
WAIT ; Wait for -Busy => inactive
3.3 Direct memory access – DMA
3.3.1 Khỏi niệm:
Controlled by DMAC, bus master
Đ In/Out dựng hardware [burst mode] => nhanh, 33/66MBps
Đ Chuyển block/ Single byte
Đ IO ỗố Mem, Mem ỗố Mem (ớt)
Đ Specified Block/ IO Requirement
Đ Stealing cycle (DRAM controller Intel 8208)
3.3.2 Dmac intel 8237a: MTV
Đ Specified block (TC) / IO Requirement (EOP)
Đ Nối tầng để mở rộng số kờnh DMA
Đ
3.3.3 PC’s DMA:
• DMAC#1: 8 bit Channels, 64KB max:, 0h 01fh addr
• Ch0 - DRAM Refresh, Spare
• Ch1 - SDLC, LPT’s ECP mode - Alt., Spare
• Ch2 - FDC, single byte mode
• Ch3 - LPT’s ECP mode, Ir port, Spare
• DMAC #2: 16 bit Channels, 64KW max, 0C0h
• Ch4 - Cascade for DMAC 1
• Ch5 - HDC, spare
• Ch6 - Spare,
• Ch7 - Spare
• Page Registers: 080h 08Fh: Giữ địa chỉ cao
• SysBus in DMA mode, AEN = 1 (AddrEnable)
• DMA House keeping:
– Addr lines (DMAC & Page Reg) input/ Hi-Z – Init: 8bit(Master:0 1F)/ 16bit (Slave:0C0 0DFh)
• Channel (i): DRQi và -DACKi
• Port (IO Addr), AEN = 1 (Address decode)
• IOR-MEMW hay MEMR-IOW
• Hi Addr of data memory => th/ghi trang t/ứng Addr từ Ch0 (hex): 87, 83, 81, 82, 88, 89, 8A, IO space
• Low Addr => BaseAddrRegi, (TechHelp 6.0)
• Kớch thước mảng: BaseCounteri
• Single byte/ block
• Specificed block/ IO Port Requirement
IOR-MEMW bus cycle
• Bắt đầu t/h DMA, ngoại vi chuyển data => IO Port
‚ IO Port phỏt tớn hiệu DRQi tới DMAC Nếu chấp nhận
ƒ DMAC phỏt HRQ tới CPU (CPU logic circuitry)
„ CPU dừng hoạt động @ state T3, Hi Z bus
… CPU Trả lời t/h HLDA => DMAC & goes to sleep
† Thực hiện DMA bus cycle:
- (-DACKi = 0 & -IOR = 0) => IO Port 'nhả' sl lờn bus
- Addr (DMAC & PR) => data mem, -MEMW
=> chuyển 1 byte/word
‡ Tăng CurrentAddrReg, giảm CurrentCounter Nếu CC=0 thỡ phỏt T/C, nếu <>0 => †, next DMA bus cycle
Trang 12Chương 4 I/O Interface bus overview
Giới thiệu bus chuẩn cho ghép nối, mở rộng:
– ISA/ PC-104 – AT bus
– USB (Universal Serial Bus)
– Philips I2C
– PCI (Peripheral Component Interconnect)
– SCSI (Small Computer Systems Interface)
– GBIB (General Purpose Interface Bus)
– Siemens Profibus
– IEEE 1394
–
4.0 Khái niệm về bus:
• PCB (Printed Cirrciut Board), Cable (Copper/ Optic), Slot, Connector
• Nối nhiều thiết bị slave [master], dùng chung
• Nhiều line (bit) hoặc đôi dây (I2C, USB, SSA, Profi)
• Thành phần (physical lines/ time sharing):
– Address
– Data
– Control/ Status/Handshake ~
– [Power supply]
4.1 Industry small architecture (isa) bus:
• ISA/ AT bus, 1984, IBM, PC-104 bus, Available in Pentium, PowerPC Platforms
• Để ghép thêm các thiết bị I/O chuẩn vào Mother Board, 3 8 Slots, Hiện tại các máy có thể không dùng
slot
• 8/ 16 bit for data transfers
• 8,33 MHz => 5 MBps max
• Only 1 BusMaster, CPU hoặc DMAC
• No data integrity, không kiểm tra parity, IO Check
• Dùng để ghép với các thiết bị chậm, kiểu ký tự: ‘character typed devices’ : keyboard, mouse
• Refer ‘AT Technical Reference’ or TechHelp for detail
Hình 4.1 AT/ ISA/ PC 104 bus
4.2 Universal serial bus - usb:
Topology
• Rev.1.1: 23/09/1998
• Chia thành nhiều Tiers
• Các Tiers nối các thiết bị: Hub hoặc chức năng
• Mỗi Tier có Hub(s)
4.3 USB: specifications
• Chỉ có 1 USB host (USB Controller) trong hệ
• Devices, có 2 loại:
• Hub, mở rộng thêm thiết bị nối vào USB
• Các thiết bị chức năng nh ISDN, JoyStick, KB, Printer
• Thiết bị chuẩn interface USB theo:
• Tín hiệu vi sai phát/ thu, bọc kim, chống nhiễu
• CRC Protection đ/v data & control fields
Trang 13• Tự phát hiện attach/ detach, xác định cấu hình các thiết bị tự động ở mức hệ thống
• TimeOut đ/v trường hợp mất gói tin/ gói tin lỗi
4.3 USB: Physical interface
• 1.5 Mbps – Low speed mode và 12Mbps (Revision 1.1)
• Nguồn cấp +5V, vài metre
• Power managment
• Revision 2.0: 480Mb/s
4.4 Philips I2C bus version 2.1 Jan 2000
• Philips, 1992 Ver 1.0; 1998 Ver 2.0, 2000: Ver 2.1, dùng cho các hệ thống nhúng (embeded systems)
• Không cần dùng bus interface chip(s), built-in
• Integrated addressing & data-transfer, cho phép dùng phần mềm để định cấu hình
• Thêm/ bớt IC không ảnh hưởng bus system
• Đơn giản tìm lỗi, khoanh vùng lỗi nhanh
• Giảm thiểu kích thớc: 2-wire serial, không cần các mạch Addr Decoder và ‘glue logic’, dùng phần mềm
• Truyền đồng bộ, 100 kb/s Standard-mode, 400 kb/s Fast-mode, 3.4Mb/s HiSpeed-mode
Trang 14Có thể nối nhiều Masters, trong 1 t/đ chỉ 01 BM’s Active
Start(Rep Start, S) SCL=1, SDA= ↓
Stop (P): SCL=1, SDA= ↑
Multi byte R/W :Addr auto Inc/ Dec;
Master/ Slave :Send A[ck] (=0) hoÆc /A (NACK) (=1) tïy thuéc bit tiÕp theo lµ data hay Stop
Một số vi mạch dùng I 2 C bus:
• Dallas RTC 1307, 1308: 64 byte RAM & Real Time Clock,
• Philips PCF 8593, Low Power Clock/ Calendar
• Atmel 93C46/24C96 EEROM
4.5 PCI - Peripheral Component Interconnect
5/1993, Intel Ver 2.0, Open standard,
• Local bus, trung gian giữa Local và các bus chuẩn khác (ISA, MC, EISA) thông qua PIC Bridge/Controller
• Có kiểm tra parity cho Addr và Data
• Auto configuration of all PCI devices, share the same IRQ Disabling IRQ => cấm toàn bộ PCI devices
• No DMA, device on PCI bus là bus master (Tốt cho việc dùng MultiTasking OS)
• Burst mode: 32 bit @33MHz > 96 132MBps, tuỳ thuộc số byte (từ 32 byte đến 4KB) Option 64bit
@33MHz > 264MBps, 64bit – 66MHz
• Most Platforms use:Intel, DEC Alpha, PowerPC, Spark