Bài giảng môn học Thiết kế board giao tiếp cung cấp cho người học các kiến thức: Giao thức ghép nối, giao diện bus, giao diện số, giao diện tương tự, vi điều khiển, bàn phím. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
MÔN HỌC Thiết kế board giao tiếp (Interface Board Design) By Trần Văn Hùng Mechatronics Dept http://www.ntu.edu.vn/ Email: tvh42th@gmail.com Tài liệu tham khảo Microprofessors and microcpmputers hardware and softwware, Ronaid J.Tocci, Frank J.Ambrosio, Prentice Hall, 2003 Interfacing Sensors To The Pc, Willis J.Tompkin, Jonh G.webster, Prentice Hall, 1998 Microprocessor Interfacing techniques, R Zaks & A Lease, Sybex Micro Processor and Interfacing, D Hall, McGraw Hill; Parallel port complete, J.Axelson, LakeViewReseach Mastering Serial Communication, P.W.Gofton, Sybex Nội dung chương trình n n n n n n Ch01: Giao thức ghép nối Ch02: Giao diện bus Ch03: Giao diện số Ch04: Giao diện tương tự Ch05: Vi điều khiển Ch06: Bàn phím Các tốn 10 11 12 13 14 15 Thiết kế mạch điều khiển ánh sáng theo chương trình định trước Thiết kế mạch trang trí đèn LED Thiết kế mạch nhận dạng điểm phục vụ (thêm 2IC) Thiết kế mạch đo lượng mưa Thiết kế mạch điều khiển nhiệt độ khơng khí Thiết kế mạch điều khiển nhiệt độ dung dịch Thiết kế mạch đồng hồ điện tử Thiết kế mạch tính thời gian cho mơn điền kinh Thiết kế bảng quang báo Thiết kế mạch khoá điện tử Thiết kế mạch điều khiển thiết bị remote Kết nối bàn phím máy tính với VXL, hiển thị ký tự lên LCD Thiết kế mạch điều khiển Robot chạy theo qũy đạo (sd motor bước) Thiết kế mạch điều khiển tốc độ động DC Thiết kế mạch điều khiển góc quay mơtơ, ổn tốc cho motor Chương 1: Giao thức ghép nối n Tín hiệu n Format n Tốc độ In/Out n Lỗi kiểm soát lỗi n Bộ lệnh trả lời n Kịch 1.1 Tín hiệu Khi thiết kế, xây dựng ghép nối máy tính, cần ý đặc biệt tới tín hiệu theo yêu cầu: n Analog/Digital n Digital: Trạng thái vật, tượng,… format, mức logic,… Áp/dòng, dải đo, độ phân ly, thời gian tác động, độ xác, độ lặp lại,… giá trị đo n Analog: n Hơn thiết bị? => bus/mạng hay không? => dùng bit (trường) địa - tùy người 1.1 Tín hiệu (tiếp) n Nếu dùng bus => Standard bus hay không (ISA, I2C, USB, … hay bus chuẩn RS485)? n IDE LPT – Mode cables bus? Tại sao? n Khoảng cách: Xa/gần => Serial, Parallel, có liên quan đến tốc độ n Xa: Daisy chain cho tín hiệu nguồn cấp… n Các tín hiệu điều khiển trạng thái n Control signals n Status signals n Handshaking sighals 1.1 Tín hiệu (tiếp) n Daisy chain Nối thiết bị có khoảng cách từ vài đến vài chục m, output port (modul) thứ i nối với input i+1 Đặc biệt Field Buses, lên tới km n Dùng cho tín hiệu \\ nối tiếp, nguồn cấp, handshaking,… n …… CPU IO_0 IO_1 …… IO_n 1.1 Tín hiệu (tiếp) n Tính chất vật lý tín hiệu: hàm thời gian, mức U/I n Direction: In/Out, ý chiều dòng điện n Voltage/Current/Optical/Wave n Chú ý Input Voltage n Mức điện áp: Mức áp? (TTL, CMOS, …) n Single End (đơn cực) Differrential signal: n Single End signed: n Tín hiệu so với điện chuẩn, thường GND (0 Volt) n Ví dụ: Các tín hiệu bus (data, add, control) n Có n tín hiệu => có n+1 dây dẫn n Nhạy cảm với nhiễu, tốc độ thấp so với chuẩn 1.1 Tín hiệu (tiếp) n Differential Signal: Tín hiệu vi sai n n tín hiệu => 2*n dây dẫn phía thu n n n Thu: Nếu có hai dây có kích thước, độ dài, trở kháng,… gần nhau, h loại trừ => chịu nhiễu tốt phía thu n n n n (Va – Vb)>100mV=> logic 1, tùy thuộc vào chuẩn áp dụng (Va – Vb) logic Uin = k(Va – Vb) => thành phần giống loại bỏ Khoảng cách lớn, tốc độ cao IC: SN75176 TI ví dụ Địa ứng dụng: USB cable, Profibus,… Đơn cực Đơn cực A B + - C Vc = k(Va – Vb) 1.1 Tín hiệu (tiếp) n Khả phối hợp tải – dòng điện ra: n n n n n n Số tải Chiều dòng điện Sink hay Source Nối chung/ghép nối bus đơn giản: state, Mux, Switch Hot swap – hot plugible: yêu cầu Vcc tín hiệu Cách ly (isolation): Relay, Opto coupler, IrLED Bus slot, Connecter, chuẩn, số chân (pin) 1.1 Tín hiệu (tiếp) 5V Sourse MCU Outport Buffer R LED Sink R 5V LED Hình: Sink Sourse connection 1.1 Tín hiệu (tiếp) 5V Hình: Open collecter 1.1 Tín hiệu (tiếp) n n Connecter n D shell: DB9, DB25,… n DIN Cable n Flat n Coaxial, n Shield: Cho tín hiệu nguồn cấp n Twisted Pair: 5, n Vi sai n Optical Fiber Hình: Connecter 1.2 Format n Thông tin định dạng theo: binary/hex (ASCII) VD: số đo nhiệt độ 12 bits, dải giá trị đến 9990 C Khi lưu CSDL, truyền tin: n n 12 bits (1,5 byte) tiết kiệm nhớ, thời gian truyền n ASCII: characters: Dễ quản lý, kiểm soát sai, hiển thị Lượng tin lớn => trao đổi (với DAS, PLC, GPS, Digi-Oscillocope,…) n Header: [tên (bản tin, gói), số thứ tự, ktự bắt tay, ktự đồng bộ, số ktự/byte gói,…] – không mang tin n Content: nội dung tin – mang thông tin n Tailer: Mã bắt tay kết thúc, [mã kiểm lỗi] – không mang tin 1.2 Format (tiếp) bits – 1023 bytes 16bits PID Data CRC16 Hình: USB data packet format n Byte số liệu/character/frame: (truyền không đồng bộ, RS-232, RS-485, RS-422): định dạng thành frame: n start bit = n 5/6/7/8 data bit, D0 first n [parity: Even/odd] n 1/1.5/2 stop bit = 1.3 Tốc độ In/Out n Xuất phát từ: Nhu cầu trao đổi thông tin hệ (tốc độ khoảng cách) => chọn kiểu truyền thích hợp, có liên quan đến tín hiệu: n Chỉ “bottle_neck”, khắc phục => xuất “bottle neck” mức độ thấp n Phụ thuộc vào khoảng cách – tích số (k/c tốc độ) n Nhiễu: theo công thức Shannon bps = BW log2(1+P/N) Với BW: bandwidth, P/N: tỷ số cơng suất tín hiệu/nhiễu n Đường truyền: (công nghiệp) cáp đồng trục, cáp quang, wireless,…) n Synchronous/Asynchronous n Modulation/Demodulation…=>Tốc độ kbps/kBps? VD: LPT: SPP mode: 50…100kBps; RS-232: 2400/4800/9600/19200/…bps 1.4 Lỗi kiểm sốt lỗi n Khi trao đổi thơng tin thường gây lỗi, đặc biệt truyền xa/chuyển đổi tín hiệu Nhiều phương pháp (hardware, Software) hỗ trợ để kiểm tra: n [Block] check sum – BCC, phần mềm: tính tổng tất ký tự, byte Kết lấy byte n VD: ROM BIOS, Ext BIOS started @ chẵn 2K, ô đầu mã 0x55 0xAA, độ dài mảng ROM 512 byte; checksum bù cho tổng tất byte mã checksum zero n CRC, ECC,… vi mạch/software – subroutine n Parity, chiều n Redundancy (RAID), thừa dư 1.5 Bộ lệnh trả lời Khi ghép Intelligent Devices (Computerized devices – mouse, KB, Printer, modem, FDC, HDC, RTU…) có nhiều tham số, chế độ hoạt động => xây dựng lệnh (command set) thông tin trả (response set) n Các câu lệnh phần mềm => bớt tín hiệu cổng phần cứng n Tập hợp yêu cầu từ CS – command set n Tập hợp trả lời, trạng thái – result/response/reaction set n Data down/up n Symtax of command and response (structure and grammar) n 1.6 Kịch n Liệt kê trường hợp áp phép toán xử lý tương ứng để đảm bảo việc ghép nối: không tin, thừa tin, quẩn, treo,… n Thường xây dựng theo liểu Step List chart n Timeout n … Slave Master ACK ACK NACK t Hình: Scenario Chart 4.3 Digital to Analog Converters R-2R Ladder DAC: n Mạng R-2R nối kiểu nhị phân n Khi bi = or => ki R or L, Non Inv.Inp of OpAmp grounded => Inv Inp = #0V => ki ln đóng xuống đất bi = x 4.3 Digital to Analog Converters R-2R Ladder DAC: n Nếu muốn thay đổi giá trị? n Ví dụ: Uref = 5,12V, n = 10 => Uout = ? 14 4.3 Digital to Analog Converters R-2R Ladder DAC: Tạo tín hiệu 4.3 Digital to Analog Converters R-2R Ladder DAC: Sóng điều chế 15 4.3 Digital to Analog Converters R-2R Ladder DAC, tham khảo n Tra cứu vi mạch DAC: (pdf files) n www.national.com/product/interface/ad-da n n n n DAC0808 - single pole, bit, 100ns DAC0800 - signed voltage output, bit, 100ns DAC0832 - latched bit dac - bus interface directly, DAC1210 - latched 12 bit dac – 8/16 bit bus interface directly, 200ns 4.3 Digital to Analog Converters R-2R Ladder DAC 16 4.3 Digital to Analog Converters R-2R Ladder DAC 4.3 Analog to Digital Convertors n Là thiết bị có hai chức (lượng tử hóa): n n n Rời rạc hóa tín hiệu thời gian Rời rạc hóa tín hiệu biên độ Phân loại: n n n n Theo ứng dụng: ADC để xử lý tín hiệu đo Chuyển đổi gián tiếp: u(t) => time (đại lượng trung gian) => code Chuyển đổi trực tiếp: u(t) => code Chuyển đổi phi tuyến: CODE (TP3057 – Mitel hay AC’97 Intel) 17 4.3 Analog to Digital Convertors n Chuyển đổi gián tiếp: Tích phân hai sườn dốc n n n n u(t) => Time Interval/f/T => code Chậm, rẻ tiền ($s), độ phân ly xác cao Dùng đo lường, thu thập số liệu công nghiệp… không cần nhanh, loại nhiễu Chuyển đổi trực tiếp: u(t) => code n n n Nhanh, độ phân ly thấp [đắt tiền], dùng để thu thập xử lý tín hiệu biến thiên nhanh Chuyển đổi kiểu xấp xỉ liên tiếp: 10k … 10MSps Chuyển đổi song song: 10M … 500 MSps 4.3 Analog to Digital Convertors n Chuyển đổi gián tiếp: Tích phân hai sườn dốc n n n n u(t) => Time Interval/f/T => code Chậm, rẻ tiền ($s), độ phân ly xác cao Dùng đo lường, thu thập số liệu công nghiệp… không cần nhanh, loại nhiễu Chuyển đổi trực tiếp: u(t) => code n n n Nhanh, độ phân ly thấp [đắt tiền], dùng để thu thập xử lý tín hiệu biến thiên nhanh Chuyển đổi kiểu xấp xỉ liên tiếp: 10k … 10MSps Chuyển đổi song song: 10M … 500 MSps 18 4.3 Analog to Digital Convertors n Ðịnh lý lấy mẫu Shannon - Kochennicov: Tín hiệu u(t) liên tục, có chứa thành phần fmax, (năng lượng tín hiệu fmax = 0) khơi phục lại tín hiệu khơng bị sai từ giá trị gián đoạn, với điều kiện: n n fSAMPLE >= 2fMAX Định lý có tính pháp lý Để kỹ sư hiểu số mẫu tối thiểu đủ, khơng q dày => lãng phí (tốc độ ADC, thời gian xử lý, nhớ); lấy thưa bị sai 4.3 Analog to Digital Convertors n Dual Slope Integration ADC: 19 4.3 Analog to Digital Convertors n Successive Approximation ADC: 4.3 Analog to Digital Convertors n n Successive Approximation ADC, ICs: ICL 7107 n n n n ICL 7135 n n n In: -2V 2V, Out: -1999 => 1999, 4.000 counts 12 bit, LED Seg drive directly w current soursers for display Converssion time: 20 40ms Inp: -0.2V… +02.V ho.c -2V +2V, 40.000 count > 15bit, Out: -19999 => +19999, 400 ms converssion time De-Multiplexed Out BCD for digits of Seg, scanned ICL 7109, w REF & Clock n Inp: -2V +2V, Out: 12 bin + pole, 8/16 bit interface to CS 20 4.3 Analog to Digital Convertors n Interfacing to the ICL - 7135 ADC: 4.3 Analog to Digital Convertors n Successive Approximation ADC: 21 Bài tập Viết chương trình tạo tín hiệu (vng, cưa, sin, tam giác,…) Giả lập DAC phần mềm Thiết kế mạch đo nhiệt độ … 22 Chương 6: Bàn phím n Keypad n Keyboard 6.1 Keypad – bàn phím 4x4 S901 S902 K0 S903 K1 S904 K2 K3 K4 S911 S912 S913 S914 S921 S922 S923 S924 S931 S932 S933 S934 K5 K6 K7 6.1 Keypad – bàn phím 4x4 n Đọc bàn phím Qt vịng? n Sử dụng ngắt? n n Chống rung Kiểm tra thời gian bit trạng thái (0 or 1) đủ “dài” n Dùng tụ để lọc nhiễu đầu vào n 6.1 Keypad – bàn phím 4x4 6.1 Keypad – bàn phím 4x4 #define keypad_out PORTA #define keypad_in PINA flash char row[4] = {0xEF, 0xDF, 0xBF, 0x7F}; DDRA = 0xF0; for(i=0; i