1. Trang chủ
  2. » Công Nghệ Thông Tin

Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx

28 633 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,16 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Mô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 2

Chươ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 4

H.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 8

o 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 9

Khi 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 11

HLT ; 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 12

Chươ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 14

Có 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

Ngày đăng: 08/08/2014, 13:20

HÌNH ẢNH LIÊN QUAN

Hình 2.1.a.LPT  handshake Signal - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 2.1.a. LPT handshake Signal (Trang 5)
Hình 2.1.b. CommPort Handshake Signals - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 2.1.b. CommPort Handshake Signals (Trang 5)
Sơ đồ cách ly quang học đ/v tín hiệu In/Out: - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Sơ đồ c ách ly quang học đ/v tín hiệu In/Out: (Trang 6)
Hình 3.1. Lưu đồ PP IO interface polling - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 3.1. Lưu đồ PP IO interface polling (Trang 8)
Hình 4.16. Một số PC's GPIB interface cards - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 4.16. Một số PC's GPIB interface cards (Trang 15)
Hình 4.18. IEEE-488 Instrumentation &amp; connector - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 4.18. IEEE-488 Instrumentation &amp; connector (Trang 16)
Hình 5.10c. Tín hiệu và giản đồ thời gian ghi LCD panel - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 5.10c. Tín hiệu và giản đồ thời gian ghi LCD panel (Trang 19)
Hình 5.12a. Step Motor - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 5.12a. Step Motor (Trang 20)
Hình 5.12b. Symbolic Diagram of Step Motor - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 5.12b. Symbolic Diagram of Step Motor (Trang 20)
Hình 5.23. Cấu trúc RS-232 Frame trên đường truyền - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 5.23. Cấu trúc RS-232 Frame trên đường truyền (Trang 22)
Hình 6.02a. Mô hình ghép nối tín hiệu analog - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 6.02a. Mô hình ghép nối tín hiệu analog (Trang 24)
Hình 6.04. Thiết bị 2 'cửa' - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 6.04. Thiết bị 2 'cửa' (Trang 25)
Hình 6.05k                                                                                      Hình 6.05l - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 6.05k Hình 6.05l (Trang 26)
Hình 6.15. DAC Symbolic Diagram - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 6.15. DAC Symbolic Diagram (Trang 27)
Hình 6.24. Multi IO card: DI/ DO/ AI/ AO - Môn học Thiết bị ngoại vi và kỹ thuật ghép nối (Peripherals & Interfacing Technique) pptx
Hình 6.24. Multi IO card: DI/ DO/ AI/ AO (Trang 28)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w