Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
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
Nội dung
Page 1 of 56 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 - Interfacing? Page 2 of 56 1. Hardware 2. Software: Device Drivers: SLLs, DLLs, DRVs, VxDs, DCUs, CPU, Mem, Bus, Controlle 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. Page 3 of 56 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’ § Hoạt động của hệ thống. 1.1. Kiến trúc Hệ VXL, Máy tính kinh điển – Embedded systems 1.1.1. Sơ đồ: 3 phần: - CS, - Ngoại vi & - Interface 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 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]. Page 4 of 56 – 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, less µW. Vdụ: MC 146818 RealTimeClock- CMOS RAM • 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 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, Dual [Quad] Ported RAM: Switching Sys., PGA RAM-DAC: VGA, VoiceChip PCMCIA 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). + 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) Page 5 of 56 § 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). - 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, - 1.1.1.b. T/bị Ngoại vi: Data Output Devices: Others - Plotter, jet - Modulator (MODEM) - Speaker - Actuator: Motor (dc/ac, Step), Relay, Valve, Page 6 of 56 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 1.1.1.c. Interface: Lý do: khác nhau: - Tín hiệu (dòng, áp), - Tốc độ làm việc/tốc độ trao đổi số liệu, - Không đồng bộ 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, Page 7 of 56 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’ 1.2. Hoạt động của hệ thống: § Reset, § Opcode fetch and Execute, § Interrupt, § DMA & § Ready (wait state - ws) 1.2.1. Lưu đồ tổng quát: Addr D0 D1 D2 D3 D4 (data 4 byte) Page 8 of 56 1.2.2. Reset : • Cold Start: Nút reset/Power-On =>Xoá trạng thái hiện hành, cấm ngắt, DMA. CPU được khởi tạo (PC- Program Counter (IP), Flags và SP ). Thường các thiết bị trong hệ cùng được reset. (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): reset ProgCounter = ResetAddr/vector DMA? IRQ? DMA? Machine On Halt OpCode Fetch OpCodeDecode Execute PC = Intr. Vector MaskOn n n n n Hình 1.3. Lưu đồ tổng quát của VXL (Motorola), Training courses y y y y Page 9 of 56 • 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: Page 10 of 56 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) Ví dụ 2: PC Comm-Modem handshaking: Hình 2.1.b. CommPort Handshake Signals T/c vật lý của tín hiệu: § Mức điện áp: Voltage ? (TTL, 12V/ 24V/48V ) In/Out, Single End vs Differential (vi sai) PC LPT port Line Printer SLCT SLTC_in RTS CTS DTR DSR PC 1 Comm Port Modem or PC 2 Comm Port Page 11 of 56 § 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: • Connectors: – D shell: DB9, DB25, – DIN, • Cable: – Flat, – Coaxial, – Shield, – Twisted Pair – Normal – Optical Fiber Hình 2.3.a. Connectors Page 12 of 56 Hình 2.3.b. Optical Connector & Sơ đồ: Hình 2.3.c. Sợi cáp quang: 2.1.2. Format số liệu: Đối với file/text: số liệu nhiều => khi trao đổi (với DAS, PLC, Digi-Oscilloscope, GPS, TelSat ) è ‘đóng gói’ số liệu (packaging). 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: Page 13 of 56 - 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) • A(National): VN 893, CN 690-692, JP 45-49, GE 400-440, RU 460-469 • B: com/ org • C: Product • D - Check sum, right most: (right to left): 10 - [(D2*3 + D3*1 + D4*3 + D5*1 + D13*1)mod10] Ví dụ: 893 12345 1234 7 • 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. Page 14 of 56 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 Page 15 of 56 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; Page 16 of 56 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’ Lưu đồ tổng quát: 3.2. Phương pháp ngắt (Interrupt): 3.2.1. Khái niệm Polling Device #1 Y Request ? 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 Page 17 of 56 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 Page 18 of 56 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, - Overflow: (tràn số học), Int 4. - d. Exceptions: Là vấn đề hay điều kiện để CPU dừng công việc đang t/h, tìm địa chỉ và thực hiện 1 ctc, được thiết kế để xử lý sự kiện này. • 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. Page 19 of 56 Đổ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) Page 20 of 56 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, - Depriorotizing: OCW2: Ví dụ: mov al,20h out 20h, al ; Non Specific EOI iret ; Return fron Intr. d. Xây dựng PC ISR: - 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. [...]... PCI devices, share the same IRQ Disabling IRQ => cm ton b PCI devices No DMA, device on PCI bus l bus master (Tt cho vic dựng MultiTasking OS) Burst mode: 32 bit @33MHz > 96 132MBps, tu thuc s byte (t 32 byte n 4KB) Option 64bit @33MHz > 264MBps, 64bit 66MHz Most Platforms use:Intel, DEC Alpha, PowerPC, Spark SCL=1, SDA= SCL=1, SDA= Page 27 of 56 Page 28 of 56 Modern OS: Block Typed Devices:... SCSI Controller & devices: 8 16 devices, 1 as Controller Th t u tiờn ca cỏc thit b, cao nht l 7 (Controller) 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 8 data bit => 1 parity bit K/tra Data: ECC, a ch CRC @ mi sector 4.8 General purpose interface bus - GPIB As known IEEE 488; HPIB (Hewlette-Parkard Interface Bus), IEC 625 bus c thit k kt ni mng mỏy tớnh vi cỏc thit b ngoi vi, o lng - kim... trng thỏi Cỏc tớn hiu bt tay/ trng ti Hóng: Integrated Device Technology Inc & Others; chip IDT 7707, 32Kbyte DPR Kin trỳc phõn nhiu tng m bo tớnh vn hnh c lp vi phn cng: Socket service: Device driver - system manufacturer Card service: Device driver - Operating System Vendor Client Drivers/ Client Enablers, Driver to cỏc y/c ti h thng: do hóng ch to Card cp Enablers/ Point Enablers: Driver chuyờn... Family DSP: Texas Instrument TMS 32 F 240 Ch 8 Device drivers (DD) 8.1 Khỏi nim: MSDN, A Little Device Driver Writer, cỏc mụ hỡnh I/O ca Microsoft 8.2 PC Layers: Next Page 8.3 DOS Device Drivers: BIOS, DOS Functions Writing DOS DD 8.4 Windows DD: MSDN: DLLs for Beginners DRV, DLL, DCU, VxD System's Win32 APIs & SPIs 8.2 PC Layers Hỡnh 6.23 Interfacing to the ADC 0809 ns.com/product/interface/ad-da... polls bus & initiates all data transfer Hỡnh 4.1 AT/ ISA/ PC 104 bus 4.2 Universal serial bus - usb: u im: Tớn hiu vi sai phỏt/ thu, bc kim, chng nhiu CRC Protection /v data & control fields Page 23 of 56 Page 24 of 56 T phỏt hin attach/ detach, xỏc nh cu hỡnh cỏc thit b t ng mc h thng TimeOut /v trng hp mt gúi tin/ gúi tin li 4.3 USB: Physical interface 1.5 Mbps Low speed mode v 12Mbps (Revision... Program-mable Instrumentation 14 devices cú th ni vo GPIB, 1MB/s, couple meters 24 pin connector: 16 lines: 8 data, 3 handsshake, 5 management ( iu khin vic dựng bus), remainders: Twisted/ Logic Gnd, Shield Computer as Controller; cỏc thit b khỏc l Talkers/ Listeners Trg 1 t/: 1 device - Talker, Others Listeners ni mng:GPIB Card,cable,connector(Hỡnh 4-16/17/18) 4.7 Siemens process & field bus profi bus ... thớch vi cỏc mng con Spec.: Token bus: cho nhiu masters (active nodes) Master - Slaves >1km (RS-485) v 9.6km (Optical Fiber) Mó húa Manchester II tin cy v chng nhiu tt Hỡnh 4.17 GPIB connector & signals Page 29 of 56 Page 30 of 56 Chng 5 Digital interface Hỡnh 4.18 IEEE-488 Instrumentation & connector PARALLEL IN/OUT PORTS: principle, PPI, Centronics PCMCIA, Dual ported Ram INTERCACING to devices:... hỡnh 5.1 single 4.9 IEEE 1394 - Firewire IEEE 1394 serial bus, 1997, by Apple & TI, thay th SCSI Upto 63 nodes (devices) connect to a PC, hot plugible High speed: 60 to 400 Mb/s (7.5 to 50 MB/s) Cable: 6 wire (2- power carier lines 8 40Vdc/ 1.5A), 15' Daisy chain extending to over 200' P1394 - PCI bus Audio, Video devices, CD, disk, printer Tree topology: 63 64k nodes (bridge across buses)... cht 74 HC 374, (hỡnh 5.2) Ngoi vi c s liu => phỏt tớn hiu strobe=0 Hỡnh 4.19 S ghộp ni cỏc ngoi vi qua IEEE 1394 bus Page 31 of 56 Out Port: 74 HC 374: CPU phỏt a ch ra IO space => cú t/h CS Phỏt data v -IOW => cú t/h LE = (Rising Edge) => data c cht vo HC374 Port song song cú tớn hiu bt tay/ trng thỏi (outport): Gi 1 packet ra ngoi vi, ng b gia 2 phớa IO device ch c cng khi ó cú s liu (IBF)... buffer Cú th ghộp ni vi cỏc ngoi vi chm khi dựng Rdy Mụ phng h ca SPP, EPP mode R/W: data & commands: OUT -C1 (HostAck); IN -S7 (Per Ack) -C1/ -S7 = 1 (sending data); 0 (command) Command: b7=1, b0 6: channel addr, b7=0, b0 6 run-length count for data compression mode (m cỏc byte ging nhau - graphics, hardware) OUT -C1 (HostAck); IN -S7 (Per Ack) Hỡnh 5.3a Ghộp ni PPI 8255 vi PC qua ISA bus 5.1.3 . Page 1 of 56 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:. 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. Polling Device #1 Y Request ? N Device #2 Y Request ? N Device #n Y Request ? N Device #1 Service Routine Device #2 Service Routine Device #n Service Routine