BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
TRƯỜNG ĐẠI HỌC THỦY LỢI
Khoa: Điện – Điện tử
========================
BÁO CÁO
ĐỀ TÀI: TRUYỀN THÔNG USB QUA PIC18F2550
Giáo viên hướng dẫn: Nguyễn Đăng Khoa
Nhóm: 19
Sinh viên thực hiện:
Nguyễn Văn Phương : 1651122689
Lê Quyết Thắng
: 1651121749
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Hà Nội, tháng 11 năm 2019
Mục lục
Chương 1: Tổng quan về PIC18F2550.............................................................4
I. Tổng quan về PIC......................................................................................4
II.
VI ĐIỀU KHIỂN PIC18F2550..............................................................8
Chương 2: Giao tiếp UART và USB...............................................................13
I. Giao tiếp UART.......................................................................................13
II.
Giao tiếp USB.......................................................................................16
Chương 3: Truyền thông USB dùng PIC18F2550.........................................22
I. Mô tả.........................................................................................................22
II.
Phần mềm và mạch nạp.......................................................................22
III. Tạo nguồn cho vi điều khiển...............................................................26
IV.
Lập trình...............................................................................................27
V. Mô phỏng.................................................................................................29
VI.
Thực tế...................................................................................................30
VII. Kết luận.................................................................................................31
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
2
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Lời nói đầu:
Universal serial Bus(USB) được phát triển để đơn giản hóa và cải
thiện giao diện giữa máy tính cá nhân và thiết bị ngoại vi, khi so sánh với
các giao diện độc quyền tiêu chuẩn hoặc đặc biệt hiện có trước đây.
Từ quan điểm của người dùng máy tính, giao diện USB được cải thiện
dễ sử dụng theo nhiều cách. Giao diện USB tự cấu hình, do đó người
dùng không cần điều chỉnh cài đặt trên thiết bị và giao diện cho tốc độ
hoặc định dạng dữ liệu hoặc định cấu hình ngắt , địa chỉ đầu vào / đầu ra
hoặc kênh truy cập bộ nhớ trực tiếp.
Tiêu chuẩn USB loại bỏ yêu cầu phát triển giao diện độc quyền cho các
thiết bị ngoại vi mới. Phạm vi tốc độ truyền rộng có sẵn từ giao diện USB
phù hợp với các thiết bị khác nhau, từ bàn phím và chuột cho đến phát
trực tiếp giao diện video. Giao diện USB có thể được thiết kế để cung cấp
độ trễ khả dụng tốt nhất cho các chức năng quan trọng về thời gian hoặc
có thể được thiết lập để thực hiện chuyển nền dữ liệu hàng loạt mà ít ảnh
hưởng đến tài nguyên hệ thống. Giao diện USB được khái quát hóa
không có đường tín hiệu chỉ dành riêng cho một chức năng của một thiết
bị.
Bộ vi điều khiển PIC là một trong những bộ điều khiển phổ biến nhất từ
Microchip. Vi điều khiển PIC18F2550 có 1 mô-đun truyền thông USB
(Universal serial Bus). Chủ đề này cho thấy cách sử dụng PIC18F2550
làm USB HID (Thiết bị giao diện con người) để gửi và nhận dữ liệu giữa
vi xử lý PIC với máy tính.
Thiết bị USB HID không cần bất kỳ trình điều khiển bổ sung nào vì nó
đã được cài đặt trong hầu hết các hệ điều hành hiện đại. Trong bài viết
chúng tôi sẽ mô tả cách sử dụng bộ điều khiển vi mô PIC18F2550 để
phát triển một sản phẩm dựa trên USB.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
3
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Chương 1: Tổng quan về PIC18F2550
I.
Tổng quan về PIC
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip
Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi
Microelectronics Division thuộc General_Instrument. PIC bắt nguồn từ
chữ viết tắt của “Programmable Intelligent Computer” (Máy tính khả
trình thông minh) là một sản phẩm của hãng General Instruments đặt cho
dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC 1650 được
dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì
vậy, người ta cũng gọi PIC với tên “Peripheral Interface Controller” (Bộ
điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về
các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng
năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng
microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được
sử dụng thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến
trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).
Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở
hữu mới hủy bỏ hầu hết các dự án – lúc đó quá lỗi thời. Tuy nhiên, PIC
được bổ sung EPROM để tạo thành 1 bộ điều khiển vào ra khả trình.
Ngày
nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các
module ngoại vi tích hợp sẵn (như USART, PWM, ADC…), với bộ nhớ
chương trình từ 512 Word đến 32K Word.
1. Một số đặc tính của PIC
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần
cứng, nhưng chúng ta có thể điểm qua một vài nét như sau:
8/16 bit CPU, xây đựng theo kiến trúc Harvard có sửa đổi.
Flash và Rom có thể tùy chọn từ 256 byte đến 256 Kbyte
Các cổng xuất/nhập (I/O) (mức logic thường từ 0V đến
5.5V, ứng với logic 0 và logic 1).
8/16 bit timer.
Các chuẩn giao tiếp nối tiếp đồng bộ/ khung đồng bộ
USART.
Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit.
Bộ so sánh điện áp (Voltage Comparator).
Các module Capture/Compare/PWM.
LCD
MSSP peripheral dựng cho các giao tiếp I2C, SPI.
Bộ nhớ nội EPROM – Có thể ghi/xóa tới 1 triệu lần.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
4
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Module điều khiển động cơ, đọc encoder.
Hỗ trợ giao tiếp USB.
Hỗ trợ giao tiếp CAN.
Hỗ trợ giao tiếp LIN.
Hỗ trợ giao tiếp IrDA.
Một số dòng có tích hợp bộ RF (PIC16f639 và RFPIC).
Các đặc điểm đặc biệt:
Có thể ghi/ xoá 100.000 lần với kiểu bộ nhớ chương trình
Enhanced Flash.
EPROM có thể lưu trữ dữ liệu hơn 40 năm.
Có thể tự lập trình lại dưới sự điều khiển của phần mềm.
Mạch lập trình nối tiếp qua 2 chân.
Nguồn đơn 5V cấp cho mạch lập trình nối tiếp.
Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên
Chip cho hoạt động đáng tin cậy.Có thể lập trình mờ bảo vệ.
Tiết kiệm năng lượng với chế độ Sleep.
Có thể lựa chọn bộ dao động.
2. Phân loại
Tiêu chuẩn để phân nhóm dựa trên sự khác nhau về kiến trúc bộ xử lý
bên trong vi điều khiển.
Số các thanh ghi có thể truy cập được.
Có hay không có ngắt, số lượng ngắt.
Số lượng các phần cứng có chức năng đặc biệt.
Độ dài từ lệnh.
Dựa vào những đặc điểm đó, vi điều khiển Pic được chia làm 4 họ:
a) Họ cấp thấp (Low_end)
Gồm các loại được kí hiệu 12C5xx, 16C5x, 16C505,
16HV540:
Độ dài từ lệnh 12 bit
Bố trí các thanh ghi: có 32 thanh ghi trên một bank, tối đa
có bốn bank.
Đặc điểm chung:
Rất thích hợp trong cac ứng dụng giao diện đơn giản
với ngoại vi.
Bộ nhớ chương trình kiểu OTP hoặc EPROM xóa
được bằng tia cực tím.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
5
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Tốc độ cao, thực hiện được năm triệu chỉ thị/s với tần
số xung nhịp 20MHz.
Chỉ có một bộ đếm Timer.
Không có các ngắt cứng.
Không có các lối ra tang cường.
Nạp trình song song, trừ PIC12C5xx và PIC16C505
được nạp trình nối tiếp theo giao thực ICSP.
a) Họ cấp trung (Mid-range)
Bao gồm 12C6xx, 14C000, 16C55x, 16C6x, 16C62x,
16F62x, 16C67x, 16C8x, 16F87x và 16C9xx.
Độ dài từ lệnh 14 bit.
Là họ vi điều khiển Pic thông dụng nhất hiện nay.
Bố trí các thanh ghi: 128 byte trên một bank, tối đa 4
bank.
Là vi điều khiển vạn năng tính năng mạnh.
Có rất nhiều biến thể khác nhau, với các kiểu đóng
vỏ đa dạng: DIP, PLCC, SSOP,…
Đặc điểm:
Tốc độ cao, thực hiện được năm triệu chỉ thị/s với tần
số xung nhịp 20MHz.
Có các ngắt phần cứng.
Có từ 1 đến 3 bộ đếm Timer.
Có rất nhiều kiểu khác nhau về chân vào/ra tăng
cường bao gồm các vào ra tương tự, giao diện truyền
thông nối tiếp: đồng bộ, không đồng bộ, I2C, SPI,
CAN,.. bộ điều khiển LCD.
Bộ nhớ chương trình flash ở hầu hết các vi mạch.
Khả năng nạp trình nối tiếp ICSP.
Có khả năng tự ghi vào bộ nhớ chương trình (seflprogramming).
Có phần cứng gỡ rối chương trình ICD ở một số loại.
b) Họ cao cấp(High-end).
Gồm các loại 17Cxxx
Độ dài từ lệnh 16 bit.
Bố trí các thanh ghi: 224 byte trên một bank, tối đa 8
bank, 48 thanh ghi chức năng đặc biệt (SFR).
Đặc điểm:
Kiến trúc khác so với Pic cấp trung, cấp thấp.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
6
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Có các lẹnh tăng cường và nhiều khả năng định địa
chỉ.
Vi điều khiển giao tiếp bus, truy cập các thiết bị song
song trực tiếp.
Có một số lối vào/ra tăng cường.
Bộ nhớ chương trình OTP.
Nạp trình kiểu song song.
c) Họ cấp cao (High-performance).
Gồm những loại có ký hiệu 18Cxxx và 18Fxxx:
Độ dài từ lệnh 16 bit.
Bố trí các thanh ghi 156 byte trên 1 bank, tối đa có
16 bank.
Đặc điểm:
Kiến trúc nâng cao, dựa trên nền tảng của họ cấp
trung, then xu hướng thừa kế những tính năng của các
loại cấp trung đồng thời bổ xung các tính năng mới.
Do đó dần dần có khả năng thay thế toàn bộ Pic cấp
trung.
Có các lệnh tăng cường và nhiều khả năng định địa
chỉ.
Có khả năng truy nhập tới 2Mbyte bộ nhớ chương
trình, 4Kbyte bộ nhớ Ram.
Có thể lập trình được mức độ ưu tiên các nguồn ngắt.
Khả năng vào/ra tương tự họ cấp trung.
Tần số hoạt động tối đa 40MHz, có bộ nhân tần số
PLL.
Có bộ nhớ chương trình flash.
Nạp nối tiếp, có khả năng tự ghi vào bộ nhớ chương
trình.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
7
Truyền Thông USB qua PIC18F2550
II.
GVHD : Nguyễn Đăng Khoa
VI ĐIỀU KHIỂN PIC18F2550.
1. Tổng quan về pic18f2550.
Lý tưởng cho các ứng dụng năng lượng thấp
(nanoWatt) và kết nối được hưởng lợi từ sự sẵn có của ba
cổng nối tiếp: FS-USB (12 Mbit / s), I²C ™ và SPI ™ (tối
đa 10Mbit / s) và nối tiếp không đồng bộ (có khả năng
LIN) cổng (EUSART).
Một lượng lớn bộ nhớ RAM để đệm và bộ nhớ chương
trình FLASH nâng cao làm cho nó lý tưởng cho các ứng
dụng giám sát và điều khiển nhúng yêu cầu kết nối định
kỳ với Máy tính cá nhân (miễn phí) qua USB để tải lên /
tải xuống dữ liệu và / hoặc cập nhật chương trình cơ sở.
Trong khi hoạt động lên đến 48 MHz, PIC18F2550
cũng chủ yếu là phần mềm và phần cứng tương thích với
các
thiết
bị
OTP
USB
tốc
độ
thấp
PIC16C745. PICSTART® Plus hiện KHÔNG hỗ trợ thiết
bị này nhưng có thể hỗ trợ thiết bị này trong tương lai.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
8
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
2. Sơ đồ chân.
Sơ đồ chân của PIC18F2550 dạng DIP có 28 chân.
Chức năng chân PIC18F25550
STT
1
Tên chân
/VPP/RE3
2
RA0/AN0
3
RA1/AN1
4
RA2/AN2/VREF-/CVREF
5
RA3/AN3/VRFF+
6
RA4/T0CKI/C1OUT/RCV
Chức năng chân
: Hoạt động Reset ở mức thấp
VPP : ngõ vào áp lập trình
RA0 : xuất/nhập số
AN0 : ngõ vào tương tự
RA1 : xuất/nhập số
AN1 : ngõ vào tương tự
RA2 : xuất/nhập số
AN2 : ngõ vào tương tự
VREF-: ngõ vào điện áp chuẩn (thấp) của bộ
A/D
CVREF: đầu ra so sánh tương tự
RA3 : xuất/nhập số
AN3 : ngõ vào tương tự
VREF+ : ngõ vào điện áp chuẩn (cao) của bộ
A/D
RA4 : xuất/nhập số
TOCKI : ngõ vào xung clock bên ngoài cho
timer0
C1OUT : Ngõ ra bộ so sánh 1
RCV: đầu vào RCV thu phát ngoài USB
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
9
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
7
RA5/AN4/SS/HLVDIN/C2OUT
8
9
VSS
OSC1/CLKI
10
OSC2/CLKO/RA6
11
RC0/T1OSO/T13CKI
12
RC1/T1OSI/CCP2(1)/UOE
13
RC2/CCP1
14
VUSB
15
RC4/D-/VM
16
RC5/D+/VP
17
RC6/TX/CK
18
RC7/RX/DT/SDO
RA5 : xuất/nhập số
AN4 : ngõ vào tương tự 4
SS : ngõ vào chọn lựa SPI phụ
HLVDIN: đầu vào phát hiện điện áp cao/ thấp
C2OUT : ngõ ra bộ so sánh 2
Chân nối đất
Ngõ vào dao động thạch anh hoặc xung
clock bên ngoài.
- OSC1 : ngõ vào dao động thạch anh
hoặc xung clock bên ngoài. Ngõ vào
Schmit trigger khi được cấu tạo ở chế
độ RC ; một cách khác của CMOS.
- CLKI : ngõ vào nguồn xung bên ngoài.
Luôn được kết hợp với chức năng OSC1.
Ngõ vào dao động thạch anh hoặc xung
clock
- OSC2 : Ngõ ra dao động thạch anh.
Kết nối đến thạch anh hoặc bộ cộng
hưởng.
- CLKO : ở chế độ RC, ngõ ra của OSC2,
bằng tần số của OSC1 và chỉ ra tốc độ của
chu kỳ lệnh.
RC0 : xuất/nhập số
T1OCO : ngõ vào bộ dao động Timer 1
T13CKI : ngõ vào xung clock bên ngoài
Timer1/Timer3
RC1 : xuất/nhập số
T1OSI : ngõ vào bộ dao động Timer 1
CCP2 : ngõ vào Capture 2, ngõ ra compare 2,
ngõ ra PWM2
UOE: bộ thu USB ngoài OE
RC2 : xuất/nhập số
CCP1 : ngõ vào Capture 1, ngõ ra compare
1, ngõ ra PWM1
Đẩu ra bộ điều chỉnh điện áp USB 3.3V bên
trong
RC4 : xuất/nhập số
D- : giao tiếp USB
VM: đầu vào VM thu phát ngoài USB
RC5: xuất/nhập số
D+: giao tiếp USB
VP: đầu vào VP thu phát ngoài USB
RC6 : xuất/nhập số
TX : truyền bất đồng bộ USART
CK : xung đồng bộ USART
RC7 : xuất/nhập số
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
10
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
19
20
21
VSS
VDD
RB0/AN12/INT0/FLT0/SDI/SDA
22
RB1/AN10/INT1/SCK/SCL
23
RB2/ AN8/INT2/VMO
24
RB3/ AN9/CCP2(1)/VPO
25
RB4/AN11/KBI0
26
RB5/KBI1/PGM
27
RB6/KBI2/PGC
RX : nhận bất đồng USART
DT : dữ liệu đồng bộ USART
SDO : dữ liệu ra SPI
Chân nối đất
Chân nguồn của PIC.
RB0: xuất/nhập số
AN12: đầu vào tương tự
INT0: ngắt ngoài 0
FLT0:đầu vào PWM
SDI: dữ liệu trong SPI
SDA: dữ liệu vào/ra I2C
RB1: xuất/nhập số
AN10: đầu vào tương tự
INT1: ngắt ngoài 1
SCK: vào/ra nối tiếp đồng bộ cho SPI
SCL: vào/ra nối tiếp đồng bộ cho I2C
RB2: xuất/nhập số
AN8: đầu vào tương tự
INT2: ngắt ngoài 2
VMO: đầu ra VMO thu phát ngoài USB
RB3: xuất/nhập số
AN9: đầu vào tương tự
CCP2(1): đầu ra bộ so sánh 2/ đầu ra PWM2
VPO: đầu ra VPO thu phát ngoài USB
RB4: xuất/nhập số
AN11: đầu vào tương tự
KBI0: Interrupt-on-change pin.
RB5: xuất/nhập số
KBI1: Interrupt-on-change pin
PGM: cho phép lập trình ICSP điện áp thấp
RB6: xuất/nhập số
KBI2: Interrupt-on-change pin
PGC: mạch vi sai và xung clock lập trình
ICSP
28
RB7/KBI3/PGD
RB7: xuất/nhập số
KBI3: Interrupt-on-change pin
PGD: mạch vi sai và dữ liệu lập trình ICSP
3. Đặc điểm kỹ thuật.
24 chân I / O với điều khiển hướng riêng
Bộ tạo dao động 8 MHz bên trong hoặc Bộ tạo dao động
48 MHz bên ngoài
Bộ chuyển đổi A / D 10 ch, 10 bit
1 x A / E / USART
1 x MSSP (SPI / I2C)
2 x ĐCSTQ (Caputure / So sánh / PWM)
Hẹn giờ 1 x 8 bit
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
11
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Hẹn giờ 3 x 16 bit
Bộ nhớ chương trình 32 KB
RAM 2.048 byte
EEPROM 256 byte
Dải điện áp hoạt động - 2.0V đến 5.5V
25mA Nguồn / I / O hiện tại chìm
Chế độ gỡ lỗi trong mạch (ICD)
Giao diện USB 2.0 tốc độ đầy đủ (12Mbit / s):
RAM cổng kép 1K byte + RAM GP 1K byte
Máy thu phát tốc độ tối đa
16 Điểm cuối (IN / OUT)
Điện trở kéo lên bên trong (D + / D-)
Hiệu suất 48 MHz (12 MIPS)
Đặc biệt: ta có thể nhận ra chân D+ và D- từ kết nối USB ( chân 16 và
chân 15).
4. Thông số.
Tần suất hoạt động
Kính thước bộ nhớ chương trình(Flash)
Tốc độ CPU (MIPS / DMIPS)
SRAM (byte)
EEPROM (byte)
Thiết bị ngoại vi truyền thông kỹ thuật số
Thiết bị ngoại vi Capture / So sánh /
PWM
Timer
Bộ so sánh
Số lượng mô-đun USB
Phạm vi nhiệt độ
Dải điện áp hoạt động (V)
DC – 48MHz
32 (Kbyte)
12
2048
256
1 –UART, 1-SPI, 1-I2CMSSP(SPI/I2C)
2 Chụp đầu vào, 2 ĐCSTQ,
1x8bit, 3x16bit
2
1
-40 đến 85℃
2 đến 5,5
Chương 2: Giao tiếp UART và USB
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
12
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
I. Giao tiếp UART.
1. Khái quát UART.
Các tên đầy đủ UART là “Universal Asynchronous Receiver /
Transmitter”, và nó là một vi mạch sẵn có trong một vi điều khiển nhưng
không giống như một giao thức truyền thông (I2C & SPI). Chức năng
chính của UART là truyền dữ liệu nối tiếp. Trong UART, giao tiếp giữa
hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối
tiếp và giao tiếp dữ liệu song song.
Nếu chúng ta nhớ các bộ phận máy tính cũ như máy in, chuột, bàn phím
được liên kết với sự trợ giúp của các đầu nối. Quá trình giao tiếp giữa
máy tính và các bộ phận này có thể được thực hiện bằng UART.
Universal serial Bus (USB) đã thay đổi tất cả các loại nguyên tắc giao
tiếp trên máy tính. Nhưng UART vẫn được sử dụng trong các ứng dụng
được khai báo ở trên. Tất cả các loại kiến trúc vi điều khiển đều có phần
cứng UART tích hợp do giao tiếp nối tiếp và chỉ sử dụng hai cáp để liên
lạc.
2. UART (PIC18F2550)
Một số thiết bị như GPS, GSM, RFID, cảm biến, vv cần phải giao tiếp
với vi điều khiển PIC để truyền hoặc nhận thông tin. Để giao tiếp với vi
điều khiển PIC, một số giao thức truyền thông được sử dụng như RS232,
SPI, I2C, CAN vv Về cơ bản, một giao thức là một tập hợp các quy tắc
được cả người gửi và người nhận đồng ý.
PIC18F2550 có một mô-đun USART được tích hợp sẵn, rất hữu ích cho
giao tiếp nối tiếp. Với sự giúp đỡ của USART, chúng tôi có thể gửi / nhận
dữ liệu đến máy tính hoặc các thiết bị khác.
USART cũng được sử dụng trong giao tiếp PIC với các mô-đun khác
nhau như Wi-Fi (ESP8266), Bluetooth, GPS, GSM, v.v. Chúng ta sẽ thấy
cách giao tiếp được thiết lập giữa vi điều khiển PIC và PC thông qua
USART bằng giao thức RS232.
Chúng ta hãy bắt đầu với giao tiếp nối tiếp sử dụng PIC18F2550.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
13
Truyền Thông USB qua PIC18F2550
2.1.
GVHD : Nguyễn Đăng Khoa
Truyền thông không đồng bộ.
PIC18F2550 có bộ thu phát không đồng bộ tích hợp. Không đồng bộ
nghĩa là mỗi ký tự (byte dữ liệu) được đặt ở giữa các bit bắt đầu và dừng.
Bit bắt đầu luôn luôn là 0 (thấp) và bit dừng luôn luôn là 1 (cao).
Như hình các bạn có thể thấy. Khi ở trạng thái chờ mức điện thế ở mức
1 (high). Khi bắt đầu truyền START bit sẻ chuyển từ 1 xuống 0 để báo
hiệu cho bộ nhận là quá trình truyền dữ liệu sắp xảy ra. Sau START bit là
đến các bit dữ liệu D0-D7 (Theo hình vẽ các bit này có thể ở mức High or
Low tùy theo dữ liệu). Sau khi truyền hết dữ liệu thì đến Bit Parity để bộ
nhận kiểm tra tính đúng đắn của dữ liệu truyền (vấn đề này mình sẽ giải
thích rõ hơn trong tài liệu CRC trong thời gian tới). Cuối cùng là STOP
bit là 1 báo cho thiết bị rằng các bit đã được gửi xong. Thiết bị nhận sẽ
tiến hành kiểm tra khung truyền nhằm đảm báo tính đúng đắn của dữ liệu.
Các thông số cơ bản trong truyền nhận UART:
- Baund rate (tốc độ baund ): Khoảng thời gian dành cho 1 bit được
truyền. Phải được cài đặt giống nhau ở gửi và nhận.
- Frame (khung truyền ): Khung truyền quy định về số bit trong mỗi lần
truyền.
- Start bit : là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết
bị nhận có một gói dữ liệu sắp đc truyền đến. Bit bắt buộc.
- Data : dữ liệu cần truyền. Bit có trọng số nhỏ nhất LSB được truyền
trước sau đó đến bit MSB.
- Parity bit : kiểm tra dữ liệu truyền có đúng không.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
14
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
- Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi
xong. Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo
tính đúng đắn của dữ liệu. Bit bắt buộc.
2.2.
Tốc độ bit và tốc độ truyền.
Tốc độ truyền dữ liệu trong giao tiếp dữ liệu nối tiếp được biểu thị bằng
bps (bit trên giây). Một thuật ngữ được sử dụng rộng rãi khác cho bps là
tốc độ truyền; có nghĩa là, số lần thay đổi tín hiệu mỗi giây. Ở đây tín
hiệu ở dạng bit, do đó tốc độ bit bằng tốc độ truyền.
2.3.
Chuyển đổi cấp độ.
Mặc dù có nhiều chân trong đầu nối DB9, chúng ta không cần tất cả.
Chúng ta chỉ cần sử dụng các chân RX, TX và GND.
Chuyển đổi mức PIC18F TTL(logic) thành mức RS232 và ngược lại :
PC có mức RS232 trong khi vi điều khiển PIC có mức TTL. RS232 có
mức điện áp khác nhau cho logic 0 và 1. Để làm cho nó tương thích với
các mức điện áp PIC TTL, chúng ta phải sử dụng MAX232 IC.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
15
Truyền Thông USB qua PIC18F2550
II.
GVHD : Nguyễn Đăng Khoa
Giao tiếp USB.
1. Khái quát giao tiếp USB
USB (Universal Serial Bus) là một giải pháp nhanh chóng và linh động
hiện nay để thực hiện giao tiếp giữa máy tính và thiết bị ngoại vi. Hầu hết
các máy tính thế hệ mới đều được hỗ trợ giao tiếp USB, thích hợp cho
việc giao tiếp với các thiết bị ngoại vi thông dụng như mouse,
keyboard,... cũng như các thiết bị ngoại vi khác được phát triển bởi người
sử dụng. USB được thiết kế ngày càng hoàn thiện, giúp tạo nhiều thuận
lợi cho người sử dụng.
Ưu điểm :
Dễ sử dụng :Người sử dụng thiết bị ngoại vi giao tiếp qua USB chỉ việc
cắm thiết bị vào cổng USB của máy tính mà không cần quan tâm nhiều
đến các thao tác cài đặt, khai báo thiết bị. Khi không còn muốn sử dụng
chỉ việc rút thiết bị ra. Các thao tác còn lại đều được thực hiện bởi máy
tính và thiết bị. Ngoài ra nguồn cung cấp cho thiết bị cũng được hỗ trợ,
trong nhiều trường hợp thiết bị không cần thêm nguồn, giúp giảm thiểu
được độ phức tạp và cồng kềnh của thiết bị.
Giá thành hợp lý: mặc dù độ phức tạp của thiết bị cao hơn, tuy nhiên
giá thành của thiết bị không quá cao, nhất là trong trường hợp sử dụng
giao tiếp USB phiên bản 1.x. Bên cạnh đó cấu trúc truyền dẫn đơn giản
cũng cho phép tiết kiệm chi phí của thiết bị.
Cho phép nhiều thiết bị trên cùng một đường truyền: USB cho phép
tối đa 127 thiết bị giao tiếp với máy tính trong cùng một thời điểm.
Nhiều sự hỗ trợ cho người phát triển sản phẩm: người phát triển sản
phẩm được hỗ trợ mọi công cụ cần thiết, từ hệ điều hành, phần mềm trên
máy tính đến phần cứng và phần mền cho thiết bị. Rất nhiều hãng sản
xuất đã hỗ trợ giao tiếp này.USB được phát triển không ngừng và mang
lại nhiều thuận lợi hơn cho người sử dụng cũng như người phát triển sản
phẩm.
Nhược điểm :
Tuy nhiên, bên cạnh đó USB còn có một số hạn chế nhất định như:
+Khoảng cách truyền nhận giữa thiết bị ngoại vi và máy tính không lớn
khoảng 5m.
+Yêu cầu nhiều sự hỗ trợ từ hệ điều hành và phần mềm trên máy tính.
+Tốc độ dữ liệu thực ra vẫn còn hạn chế.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
16
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
+Chỉ thực hiện được giao tiếp giữa máy tính (host) và ngoại vi, không
hỗ trợ chức năng giao tiếp giữa các ngoại vi với nhau. Điều này là một
phần do mục đích phát triển của USB, bên cạnh đó sự cải tiến không
ngừng sẽ dần khắc phục các nhược điểm này.
+Khi thiết bị gặp sự cố thì khả năng sửa chữa rất khó.
+Nhiều trở ngại cho người phát triển sản phẩm: do cấu trúc protocol
phức tạp, cần có nhiều kiến thức về các lĩnh vực khác nhau, bên cạnh đó
khó phát hiện ra sai sót trong quá trình phát triển sản phẩm.
2. Tốc độ báo hiệu (tốc độ truyền).
Chế độ
Viết tắt
Tốc độ tổng dữ liệu
Được giới thiệu
trong
Tốc độ thấp
LS
1,5 Mbit / s (187,5 KB /
giây)
USB 1.0
Hết tốc độ
FS
12 Mbit / s (1,5 MB / s)
USB 1.0
Tốc độ cao, tốc
độ cao
HS
480 Mbit / s (60 MB /
giây)
USB 2.0
Siêu tốc
SS
5 Gbit / s (625 MB / s)
USB 3.0
Siêu tốc độ +
SS +
10 Gbit / s (1,25 GB /
giây)
USB 3.1
Siêu tốc độ +
SS +
20 Gbit / s (2,5 GB /
giây)
USB 3.2
3. Các thành phần.
Một mạng USB có thẻ bao gồm các thành phần:
+Host: thông thường là một máy tính, đóng vai trò là trung tâm của
mạng. Một mạng USB chỉ có duy nhất một host.
+Device: là thiết bị giao tiếp với máy tính, có nhiệm vụ thực hiện một
chức năng ngoại vi nào đó và được hỗ trợ giao tiếp USB.
+Hub: có thể hiểu đây là thiết bị trung gian giữa host và device. Hub
có vai trò mở rộng số lượng cổng giao tiếp với host, đồng thời điều chỉnh
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
17
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
tốc độ dữ liệu giữa device và host trong nhiều trường hợp có nhiều device
gắn vào host với các tốc độ dữ liệu khác nhau.
4. Cấu trúc truyền dẫn của USB.
USB truyền dữ liệu và nguồn điện qua 4 dây, bao gồm dây VUSB,
GND, và hai dây truyền dữ liệu là D+,D-.
Điện áp VUSB trên đường dây thông thường là 5V. Tùy thuộc vào chế
độ hoạt động của thiết bị mà giá trị điện áp và dòng điện trên đường
truyền có thể thay đổi.
Dữ liệu truyền trên đường dây có dạng tín hiệu vi sai trên hai dây D+ và
D- và được mã hóa dưới dạng ZRZI. Dạng mã hóa này cho phép truyền
được cả xung clock trên đường truyền. Bên cạnh đó cũng có các khung
đồng bộ được phát đi để đồng xung clock ở đầu phát và đầu thu trước khi
dữ liệu được truyền.
Cực tính của hai dây D+ và D- trên đường truyền luôn ngược nhau khi
hoạt động bình thường.
Ngoài ra tốc độ dữ liệu còn được xác định thông qua các điện trở kéo
lên trên hai dây D+ và D-.
Hai loại jack kết nối thường được sử dụng là USB connector Type A và
Type B:
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
18
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
Cáp truyền dẫn là loại cáp 4 dây có màu sắc được quy định như sau:
5. Các dạng truyền nhận dữ liệu của USB
Để theo sát được nhu cầu trong việc sử dụng giao tiếp USB, có 4 dạng
truyền nhận dữ liệu được hỗ trợ, bao gồm:
+Control transfer: dạng truyền này thường được sử dụng cho việc
truyền lệnh hay trạng thái, được sử dụng trong quá trình trao đổi các
thông tin về cấu hình và cái đặt device khi device được gắn vào một cổng
USB của host.
+Interrupt transfer: khi device cần truyền dữ liệu với host, device sẽ
tạo ra một yêu cầu ngắt. Khi host xử lý các device theo quá trình hỏi
vòng, host sẽ đọc được yêu cầu này và tiến hành các thao tác trao đổi dữ
liệu với device. Kích thước tối đa của gói dữ liệu của dạng truyền này
thay đổi tùy theo chế độ truyền nhận dữ liệu (8 byte đối với low speed, 64
byte đối với full speed, 1024 byte đối với high speed).
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
19
Truyền Thông USB qua PIC18F2550
GVHD : Nguyễn Đăng Khoa
+Isochronous transfer: dữ liệu được truyền liên tục và phù hợp với
các dạng dịch vụ dữ liệu có yêu cầu khắc khe về thời gian thực như dong
dữ liệu audio hay video. Dạng truyền này không được hỗ trợ cao khả
năng kiểm soát lỗi dữ liệu hay thứ tự gói dữ liệu, cho phép một mức độ
mất dữ liệu thích hợp, và chỉ cho phép ở chế độ high speed.
+Bulk transfer: thích hợp cho việc truyền nhận gói tin dung lượng
lớn, yêu cầu đọ chính xác cao về dữ liệu truyền nhận như truyền nhận dữ
liệu giữa máy in, máy scan và máy tính, có cơ chế khắc phục và sửa lỗi
tốt. Dạng truyền này chỉ thức hiện được ở chế độ full speed và high
speed.
6. Quy trình kết nối giữa device và host.
Khi một device được gắn vào một port của host, để thiết lập một kết nối
với host, device phải tiến hành một quy trình kết nối được điều khiển bởi
host. Quy trình này được gọi là enumeration và được thực hiện giữa
device và host, điều đó có nghĩa là người sử dụng không cần thực hiện
các thao tác cài đặt cho device mới. Quy trình này sẽ được tiến hành
thông qua các bước:
+Bước 1: Host phát hiện có một device mới thông qua điện trở kéo lên
trên cặp dây D+/D-. Host đợi ít nhất 100ms để chờ cho nguồn điện cung
cấp cho device đi vào trạng thái ổn định.
+Bước 2: Host yêu cầu reset device vad đặt device vào trạng thái mặc
định. Device trả lời bằng cách chuyển qua trạng thái địa chỉ zero.
+Bước 3: Hệ điều hành yêu cầu 64 byte device descriptor.
+Bước 4: Sau khi nhận được 8 byte đầu tiên của device descriptor,
host lập tức yêu cầu device reset một lần nữa.
+Bước 5: Host set địa chỉ cho device, đưa device đến trạng thái đã
được định địa chỉ.
+Bước 6: Host yêu cầu 18 byte device descriptor tiếp theo.
+Bước 7: Host tiếp tục yêu cầu configuration descriptor.
+Bước 8: Host tiếp tục yêu cầu endpoint descriptor.
+Bước 9: Host yêu cầu string descriptor.
Sau đó host tự động tìm driver cho device, sau đó yêu cầu gửi lại tất cả
các descriptor trước khi yêu cầu device thiết lập cấu hình hoạt động thông
qua set configuration request.
SVTH: NGUYỄN VĂN PHƯƠNG – LÊ QUYẾT THẮNG
20
- Xem thêm -