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:
[email protected]
Tài liệu tham khảo
1.
2.
3.
4.
5.
6.
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
1
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 bài toán
1.
2.
3.
4.
5.
6.
7.
8.
9.
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í bằng đèn LED
Thiết kế mạch nhận dạng điểm phục vụ (thêm ít nhất 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 các 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ị bằng 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 cơ DC
Thiết kế mạch điều khiển góc quay của môtơ, ổn tốc cho motor.
2
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 và kiểm soát lỗi
n
Bộ lệnh và trả lời
n
Kịch bản
1.1 Tín hiệu
Khi thiết kế, xây dựng ghép nối máy tính, cần
chú ý đặc biệt tới các tín hiệu theo yêu cầu:
n Analog/Digital
n Digital:
Trạng thái của sự vật, hiện tượng,…
format, mức logic,…
Áp/dòng, dải đo, độ phân ly, thời gian
tác động, độ chính xác, độ lặp lại,… giá trị đo
n Analog:
n Hơn
một thiết bị? => bus/mạng hay không?
=> dùng bit (trường) địa chỉ - tùy từng người
1
1.1 Tín hiệu (tiếp)
n
Nếu dùng bus => Standard bus hay không (ISA, I2C,
USB, … hay các bus trên chuẩn RS485)?
n
IDE và LPT – Mode 0 cables là 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 hoặc 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 các thiết bị có khoảng cách từ vài đến vài chục m,
output của port (modul) thứ i nối với input của i+1. Đặc
biệt ở các Field Buses, có thể lên tới km
n Dùng cho cả tín hiệu \\ và nối tiếp, nguồn cấp,
handshaking,…
n
……
CPU
IO_0
IO_1
……
IO_n
2
1.1 Tín hiệu (tiếp)
n
Tính chất vật lý của tín hiệu: là hàm của thời gian,
mức U/I
n
Direction: In/Out, chú ý về chiều của 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 một điện thế chuẩn, thường là GND (0 Volt)
n
Ví dụ: Các tín hiệu trên bus (data, add, control)
n
Có n tín hiệu => có ít nhất n+1 dây dẫn
n
Nhạy cảm với nhiễu, tốc độ thấp hơn so với cùng 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ó cùng kích thước, độ dài, trở kháng,… và gần
nhau, thì mọi trên h được loại trừ => chịu được nhiễu rất tốt vì phía
thu
n
n
n
n
(Va – Vb)>100mV=> logic 1, tùy thuộc vào chuẩn được áp dụng
(Va – Vb)<100mV=> logic 0
Uin = k(Va – Vb) => những thành phần giống nhau được loại bỏ
Khoảng cách lớn, tốc độ cao.
IC: SN75176 của TI là ví dụ
Địa chỉ ứng dụng: USB cable, Profibus,…
Đơn cực
Đơn cực
A
B
+
-
C
Vc = k(Va – Vb)
3
1.1 Tín hiệu (tiếp)
n
Khả năng 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: 3 state, Mux, Switch.
Hot swap – hot plugible: yêu cầu Vcc và 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
4
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 hoặc
nguồn cấp
n
Twisted Pair: 5, 6
n
Vi sai
n
Optical Fiber
Hình: Connecter
5
1.2 Format
n
Thông tin được định dạng theo: binary/hex (ASCII)
VD: 1 số đo nhiệt độ 12 bits, dải giá trị 0 đến 9990 C. Khi lưu
trong CSDL, truyền tin:
n
n
12 bits (1,5 byte) tiết kiệm bộ nhớ, thời gian truyền
n
ASCII: 3 characters: Dễ quản lý, kiểm soát sai, hiển thị
Lượng tin lớn => khi 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 trong 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)
8 bits
0 – 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): được định dạng thành 1
frame:
n
1 start bit = 0
n
5/6/7/8 data bit, D0 first
n
[parity: Even/odd]
n
1/1.5/2 stop bit = 1
6
1.3 Tốc độ In/Out
n
Xuất phát từ: Nhu cầu trao đổi thông tin của hệ (tốc độ và
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ỉ ra các “bottle_neck”, khắc phục được => xuất hiện các “bottle
neck” ở mức độ thấp hơn
n
Phụ thuộc vào khoảng cách – tích số (k/c và tốc độ)
n
Nhiễu: theo công thức của 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 độ bao nhiêu kbps/kBps?
VD: LPT: SPP mode: 50…100kBps;
RS-232: 2400/4800/9600/19200/…bps
1.4 Lỗi và kiểm soát lỗi
n
Khi trao đổi thông tin thường gây ra 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 của
tất cả các ký tự, các byte. Kết quả có thể lấy 1 byte
n
VD: ROM BIOS, Ext BIOS started @ chẵn 2K, 2 ô đầu là
mã 0x55 và 0xAA, độ dài của mảng ROM là 512 byte;
checksum bù 2 sao cho tổng của tất cả các byte và mã
checksum luôn bằng zero
n
CRC, ECC,… vi mạch/software – subroutine
n
Parity, 1 hoặc 2 chiều
n
Redundancy (RAID), thừa dư
7
1.5 Bộ lệnh và 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 bộ lệnh
(command set) và thông tin trả về (response set)
n Các câu lệnh phần mềm => bớt tín hiệu và cổng phần
cứng
n
Tập hợp các yêu cầu từ CS – command set
n Tập hợp các 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 bản
n
Liệt kê các trường
hợp rồi có thể áp các
phép toán 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,…
n
Thường xây dựng
theo liểu Step List
hoặc chart
n
Timeout
n
…
Slave
Master
ACK
ACK
NACK
t
Hình: Scenario Chart
8
Ví dụ: giao thức giữa PC và VĐK trong việc trao
đổi dữ liệu (U, I, t0,…)
n
Tín hiệu?
n
Format?
n
Tốc độ?
n
Lỗi?
n
Lệnh và trả lời?
n
Kịch bản?
n
….
1.7 Bài tập
1. Viết chương trình giả lập RS-232
2. Viết chương trình để nhập ký tự trên máy tính rồi
hiển thị ký tự lên LCD
3. Đo giá trị nhiệt độ (độ ẩm, U, I,…) rồi hiển thị lên
máy tính (gtrị và dạng biểu đồ).
9
Chương 2: Giao diện Bus
n
Khái niệm về Bus ghép nối - In/Out Buses
n
ISA Bus
n
USB
n
Philips I2C
2.1 Khái niệm về Bus ghép nối
n
n
n
n
n
Là PCB (Printed Circuit Board), Cable
(Copper/Optic), Slot, Connector…
Nối nhiều thiết bị slave [master], dùng chung: trong
một thời điểm chỉ có một talker – 1 hoặc nhiều
listener
Bus song song (n bit) hoặc nối tiếp (I2C, USB,
Profi,…)
IO Buses, Mem, CPU, Local Buses
Thành phần (physical lines/time sharing:
n
n
n
n
Address
Data
Control/Status/Handshake/datacheck
Power susply
1
2.2 Industry Small Architecture Bus
n
n
n
n
n
n
n
ISA, 1984, IBM, PC-104 bus
Để ghép thêm các card/ thiết bị I/O chuẩn với
Mother Board, 1…12Slots, hiện tại các máy thông
thường không dùng.
8/16 bits for data transfers
4,77=>8,33 MHz/11.1MHz =>
2.75MWps/5.5MWps max, DMA 16
Only 1 BusMaster, CPU hoặc DMAC, w AEN
No data integrity, không kiểm tra parity
Dùng để ghép nối với các thiết bị chậm, kiểu ký tự:
keyboard, mouse,…
2.2 Industry Small Architecture Bus (tiếp)
(http://pinouts.ru/Slots/ISA_pinout.shtml)
Hình: ISA Bus
2
2.2 USB
Hình: USB logo
2.2 USB (tiếp)
n
Chia thành nhiều
Tiers
n
Các Tiers nối với
các thiết bị: Hub
hoặc chức năng
n
Mỗi Tier có
Hub(s)
Hình: USB topology
3
2.2 USB (tiếp)
n
n
Chỉ có một USB host (USB controller trong hệ
Devices, có 2 loại
n
n
n
Hub, mở rộng thêm thiết bị nối vào USB
Các thiết bị chức năng JoyStick, KeyBoard, Printer,
Digital Camera,…
Các thiết bị chuẩn interface USB theo:
n
n
n
USB Protocol
Chuẩn Hđ của USB: config và reset
Communication Standard
2.2 USB (tiếp)
n
Thông số kỹ thuật:
n
1.5Mbps – Low speed moade và 12 Mbps (Revision 1.1)
n
Nguồn cấp +5V, vài metre
n
Power management
Revision 2.0: 480Mbps
Ưu điểm:
n Tín hiệu vi sai phát/thu, bọc kim, chống nhiễu
n CRC Protection đối với data & control fields
n 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
n TimeOut đối với trường hợp mất tin/gói tin lỗi
n
n
4
2.2 USB – connecter (tiếp)
2.2 USB – signal (tiếp)
Hình: Signal
5
2.2 USB – signal (tiếp)
Token Packet Format
Start-Of-Frame (SOF) Packet Format
Data Packet Format
Handshake Packet Format
2.3 Philips I2C Bus
n
n
n
n
n
n
n
Dùng nhiều trong các hệ thống
nhúng (embeded system) như:
mobil phone, TV, ATM,…
Không cần dùng bus interface chip(s), built-in
Intergrated addressing & data transfer, cho phép
dùng phần mềm để định cấu hình
Đơn giản để ghép nối, nhiều µC hỗ trợ I2C
Đơn giản tìm lỗi, khoanh cùng lỗi nhanh
Giảm thiểu kích thước: 2 wire serial, không cần
dùng các mạch addr decoder và “glue logic”, dùng
phần mềm
Truyền đồng bộ, 100Kbps standard mode, 400Kps
Fast mode, 3,4Mbps HiSpeed mode
6
2.3 Philips I2C Bus (tiếp)
SCL
SDA
Device_0
Device_1
Device_2
Device_3
Device_4
Device_5
Device_6
Hình: I2C Topology
2.3 Philips I2C Bus (tiếp)
SCL
SDA
Slave_0
Có thể có nhiều
Masters, trong một
thời điểm chỉ có
1 Master hoạt động
Master_0
Slave_1
Slave_2
Master_1
Slave_3
Slave4
Hình: Configuration with 2 masters
7
2.3 Philips I2C Bus (tiếp)
Hình: Start and stop
2.3 Philips I2C Bus (tiếp)
Hình: Data transfer
8
2.3 Philips I2C Bus (tiếp)
5V
Hình: Open collecter
2.3 Philips I2C Bus – một số chip(tiếp)
Atmega, PIC,…
n EEPROM, RAM,…
n RTC,…
n
9