SlideShare una empresa de Scribd logo
1 de 87
Descargar para leer sin conexión
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
----------------------------------
NGUYỄN TRUNG TIẾN
NGHIÊN C U TH C THI B I N ROBOT
Ứ Ự Ộ Đ ỀU KHIỂ
CÔNG NGHI P TRÊN N N T NG FPGA
Ệ Ề Ả
Chuyên ngành: Kỹ thuật Điện tử
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN:
PGS.TS. Đỗ Trọng Tuấn
Hà N - 2017
ội
i
M C
ỤC LỤ
DANH MỤ Ẽ
C CÁC HÌNH V ................................................................................. iii
DANH M NG
Ụ Ả
C CÁC B ........................................................................................v
DANH M VI
Ụ Ừ
C CÁC T Ế Ắ
T T T.........................................................................vi
LỜI CAM ĐOAN .................................................................................................. viii
M U
Ở ĐẦ ....................................................................................................................1
CHƯƠNG I: TỔ Ệ Ố
NG QUAN H TH NG ..............................................................3
1.1. u v Robot ..........................................................................................3
Giới thiệ ề
1.1.1. Giới thiệ ề ệ ệ
u v công ngh Robot hi n nay..........................................................3
1.1.2. Các lo c s d ng trong công ngh ..................................5
ạ ộng cơ đượ
i đ ử ụ ệ Robot
1.1.3. Các lo u khi ..............................................................11
ại module điề ển động cơ
1.1.4. N n t u khi n Robot................................................22
ề ảng FPGA/DSP trong điề ể
1.2. Các gi nh bài toán.................................................................33
ải pháp và xác đị
1.2.1. Phân tích và l n gi .....................................................................33
ựa chọ ải pháp
1.2.2. K .............................................................................................34
ết luận chương
CHƯƠNG II: THIẾ Ế Ệ Ố
T K H TH NG................................................................35
2.1. kh ng th c ng...................................................................35
Sơ đồ ối tổ ể ủa hệ thố
2.2. c t h ng.....................................................................................35
Sơ đồ đặ ả ệ thố
2.3. nguyên lý và các module c a h ng................................................37
Sơ đồ ủ ệ thố
2.3.1. Sơ đồ ổ
nguyên lý t ng thê................................................................................37
2.3.2. u khi ............................................................................37
Module điề ển động cơ
2.3.3. u khi n h ng...........................................................................38
Module điề ể ệ thố
2.3.4. ng...........................................................................................41
Module dò đườ
2.4. L n c u hình h ng...........................................................................42
ựa chọ ấ ệ thố
2.4.1. u khi n h ng ...............................................................................43
Khố ề
i đi ể ệ thố
2.4.2. n khi ................................................................................44
Khố ề
i đi ển động cơ
2.4.3. ng................................................................................................45
Khố ờ
i dò đư
CHƯƠNG III: XÂY DỰ Ệ Ố
NG H TH NG............................................................46
3.1. Xây d ng ph n c ng ......................................................................................46
ự ầ ứ
3.1.1. D n.....................................................................................46
ự án Quartus cơ bả
ii
3.1.2. Phát tri n trên n n t ng d n.............................................................47
ể ề ả ự án cơ bả
3.1.3. Biên d ch và ch .....................................................................53
ị ạy chương trình
3.2. Xây d ng ph n m m ......................................................................................66
ự ầ ề
3.2.1. u khi n vi tích phân t l (PID).................................................66
Giải thuật điề ể ỉ ệ
3.2.2. ng d ng gi u khi n robot ..............................................67
Ứ ụ ải thuật PID vào điề ể
3.2.3. Biên d ch và ch .....................................................................71
ị ạy chương trình
3.3. K mô ph ng và ki ......................................................................73
ết quả ỏ ểm thử
3.3.1. K mô ph ng ..........................................................................................73
ết quả ỏ
3.3.2. K ki ............................................................................................73
ết quả ểm thử
K N
ẾT LUẬ ..............................................................................................................77
TÀI LIỆ Ả
U THAM KH O………………………………………………………..78
iii
DANH MỤC CÁC HÌNH VẼ:
Hình 1. 1 Robot Công nghiệp .....................................................................................4
Hình 1. 2 Robot y tế ố
và an ninh qu c phòng...............................................................4
Hình 1. 3 Động cơ mộ ề
t chi u......................................................................................5
Hình 1. 4 Cấ ạo động cơ DC
u t ....................................................................................6
Hình 1. 5 Động cơ Servo.............................................................................................6
Hình 1. 6 Cấ ạo động cơ Servo
u t ................................................................................7
Hình 1. 7 Động cơ bước..............................................................................................8
Hình 1. 8 Sơ đồ ắ ề ể ả ử ụ
nguyên t c đi u khi n t i s d ng PWM........................................11
Hình 1. 9 Mạch nguyên lý điề ể ả ằ
u khi n t i b ng PWM...............................................12
Hình 1. 10 Sơ đồ xung PWM....................................................................................13
Hình 1. 11 Tạ ằng phương pháp so sánh
o xung vuông b ...........................................14
Hình 1. 12 Sơ đồ ạch L298 điề ển động cơ mộ ề
m u khi t chi u....................................16
Hình 1. 13 Sơ đồ ố ứ ủ
kh i ch c năng c a DRV8833......................................................17
Hình 1. 14 Sơ đồ ạ
m ch FET+relay ...........................................................................18
Hình 1. 15 Chu kỳ xung PWM tr ................................................19
ong động cơ Servo
Hình 1. 16 Module Driver A4988.............................................................................20
Hình 1. 17 Sơ đồ ế ố
k t n i ...........................................................................................21
Hình 1. 18 Sơ đồ ự ệ ố
th c thi h th ng DSP...................................................................26
Hình 1. 19 Kiến trúc bên trong FPGA ......................................................................27
Hình 1. 20 Cấ ộ
u trúc m t Logic Block.......................................................................27
Hình 1. 21 Sơ đồ ợ ứ
tích h p c ng ................................................................................29
Hình 1. 22 Sơ đồ ố ợ ề
kh i tích h p m m ........................................................................30
Hình 2. 1 Sơ đồ ấ ủ ệ ố
c u chúc c a h th ng.....................................................................35
Hình 2. 2 Sơ đồ ố ệ ố
kh i h th ng ..................................................................................36
Hình 2. 3 Sơ đồ ế
thi t k th
ế ầ ứng điề ể ệ
ph n c u khi n h ống..........................................37
Hình 2. 4 Mạ ề ể
ch đi u khi n motor .............................................................................38
Hình 2. 5 Sơ đồ ố ủ
kh i c a Kit DE0 Nano...................................................................40
Hình 2. 6 Sơ đồ ạch module dò đườ
m ng ..................................................................42
Hình 2. 7 Mô hình hệ ố
th ng ......................................................................................42
iv
Hình 2. 8 Khố ề ể
i đi u khi n Kit DE0 Nano.................................................................43
Hình 2. 9 Khố ề ển động cơ L298
i đi u khi ..................................................................44
Hình 2. 10 Khối dò đường ........................................................................................45
Hình 3. 1 Thành phầ ệ ố
n HPS hps_0 trong h th ng Qsys ...........................................46
Hình 3. 2 Cổ ủ ầ
ng AXI Master c a thành ph n HPS ....................................................47
Hình 3. 3 Tìm và thêm thành phần PIO ....................................................................48
Hình 3. 4 Cấ ầ
u hình thành ph n PIO..........................................................................49
Hình 3. 5 Tạ ế ố ữ ầ
o k t n i gi a HPS và thành ph n PIO.................................................50
Hình 3. 6 giao diệ ủ
n pio_led c a hệ ố
th ng .................................................................51
Hình 3. 7 ban đầu hóa .pio_led_external_connection_export trong u0 soc_system.51
Hình 3. 8 các thành phần cơ bản trong Qys c ng.........................................52
ủa hệ thố
Hình 3. 9 Các thành ph n trong Qys c ng ...................................................52
ầ ủa hệ thố
Hình 3. 10 Thêm vào một thành phần trong Qys......................................................53
Hình 3. 11 file TCL cho SDRAM DDR3 của HPS ..................................................66
Hình 3. 12 Sơ đồ ố ả ậ
kh i gi i thu t PID........................................................................67
Hình 3. 13 Sơ đồ ố ứ ụ ả ật PID vào robot dò đườ
kh i ng d ng gi i thu ng.......................68
Hình 3. 14 Lưu đồ ậ ệ ỉ
thu t toán hi u ch nh PID...........................................................70
Hình 3. 15 Biên dị ẻ ớ
ch và copy file vào th nh .......................................72
trên Sockit
Hình 3. 16 Thực thi chương trình trên Putty.............................................................72
Hình 3. 17 Kết quả đầ ỏ
u ra mô ph ng qua SignalTap................................................73
Hình 3. 18 V n t c c a robot khi hi u ch nh Kp (v i: Kd=0; Ki=0)........................75
ậ ố ủ ệ ỉ ớ
Hình 3. 19 Vậ ố ủ ệ ỉ ớ
n t c c a robot khi hi u ch nh Kd (v i: Kp=30; Ki=0)......................76
Hình 3. 20 Vậ ố ủ ệ ỉ ớ
n t c c a robot khi hi u ch nh Ki (v i: Kp=30; Kd=5)......................76
v
DANH MỤC CÁC BẢNG
B ng 1. 1 B u khi c ........................................................22
ả ảng chân điề ển động cơ bướ
B ng 1. 2 Tóm t t các ng d ng s d ng c a DSP...................................................25
ả ắ ứ ụ ử ụ ủ
B ng 3. 1 K m hi u ch nh PID ...... 75
ả ết quả thực nghiệ ệ ỉ ………………………………
vi
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Nghĩa Anh
tiếng Nghĩa Việt
tiếng
SoC system-on-a-chip H ng trên m t vi m
ệ thố ộ ạch
FPGA Field-programmable gate array
M p các ph n t m ng
ạch tích hợ ầ ử ả
logic có thể ập trình đượ
l c
DSP Digital Signal Processing X u s
ử lý tín hiệ ố
PWM Pulse-width modulation điề ế độ ộ
u ch r ng xung
IC integrated circuit Vi mạch
ADC Analog- -digital converter
to M ch chuy
ạ ển đổi tương tự ra số
HPS hard processor system H ng x lý ph n c ng
ệ thố ử ầ ứ
DC Direct Current dòng điệ ộ ề
n m t chi u
PID Proportional Integral Derivative Cơ chế ả ồi vòng điề ể
ph n h u khi n
RAM Random Access Memory B nh truy c p ng u nhiên
ộ ớ ậ ẫ
SRAM Static Random Access Memory B nh truy c p ng
ộ ớ ậ ẫu nhiên tĩnh
CPLD
Complex Programmable Logic
Device
vi m ch có th l p trình c
ạ ể ậ đượ
PLA Programmable Logic Array m ng logic l c
ả ập trình đượ
HDL Hardware Description Language ngôn ng mô t ph n c ng
ữ ả ầ ứ
vii
LỜI NÓI ĐẦU
Hiện nay, công nghệ phát triển robot đã vô cùng mạnh mẽ và được ứng dụng
rất nhiều trong thực tế, ứng dụng robot trong sản xuất công nghiệp, các cánh tay lắp
ráp, vận tải hàng hóa theo vạch đường đi có sẵn Ứng dụng robot trong y tế
. , các
cánh tay thao tác phẫu thuật cho người bệnh…. Ứng dụng robot trong an ninh quốc
phòng, robot chiến đầu, xe tăng tự vận hành, thiết bị bay tự động…. Ứng dụng
trong ngành vũ trụ … công nghệ robot còn được dùng trong các ứng
. Ngoài ra,
dụng xử lý các tình huống trong các môi trường đặc biệt và rất nhiều các hướng
phát triển khác đã được phát triển.
Trên cở sở đã được học tôi đã thiết kế và thử nghiệm một robot công nghiệp
di chuyển theo vạch đường định trước trên nền tảng công nghiệp FPGA/DSP ử
. S
d r u khi t toán PID
ụng phương pháp tạo độ ộng xung PWM để điề ể ộng cơ và thuậ
n đ
để thay đổi hướng đi theo kế ả ả ề ừ ộ dò đườ
t qu tr v t b ng.
Do kiến thức còn hạn hẹp và thời gian thực hiện không nhiều nên đề tài của
tôi còn nhiều hạn chế. Mặc dù đã phần thiết kế và tính toán chi tiết các mạch
nào và
thiết kế phần cứng trên nền tảng FPGA, lập trình phần mềm trên công nghệ SoC,
các thông số nhưng đôi khi còn mang tính lý thuyết và thiên về lập trình, chưa có
tính ứng dụng cao. Tôi mong sự đóng góp và sửa chữa để đề tài này mang tính khả
thi hơn.
Tôi xin chân thành cảm ơn thầy Đỗ Trọng Tuấn đã hướng dẫn
PGS.TS
chúng tôi hoàn thành luận văn này.
viii
LỜI CAM ĐOAN
Tôi xin cam đoan các kế ả ứ ận văn là củ
t qu nghiên c u trong lu a riêng tôi và
chưa đượ ố ấ ứ
c công b trong b t kì công trình nghiên c u nào.
Hà nội, ngày tháng năm
H c viên
ọ
(Ký ghi rõ họ tên)
1
MỞ ĐẦU
1. p thi
Tính cấ ết của đề tài
Công ngh robot là m t ngành khoa h c m i m so v i nhi u ngành khác
ệ ộ ọ ớ ẻ ớ ề
nhưng tốc độ ể ủ ấ ả năng ứ ụ ớ
phát tri n c a nó r t nhanh, kh ng d ng vô cùng to l n. Các
ứ ụ ổ ậ ủ ệ robot như: Robot công nghiệ ể
ng d ng n i b t c a công ngh p giúp phát tri n
nhanh n n công nghi p, robot chi u, robot t hành, robot c
ề ệ ến đấ ự ảnh sát,… đã đem lại
nhi u l i ích to l n trong nhi c khác nhau t gi i trí, h c t ng,
ề ợ ớ ều lĩnh vự ừ ả ọ ập, lao độ
quân sự, v.v…
Trong ứ ụ ệp, robot đã tự độ ậ ự ệ ấ ề
ng d ng công nghi ng v n hành th c hi n r t nhi u
công vi c n ng nh i c n m t r t nhi u th i gian và công s
ệ ặ ọc mà con ngườ ầ ấ ấ ề ờ ức để thực
hi n.
ệ
T nh nghiên c u xây d ng mô hình phát tri n robot
ừ suy nghĩ đó, tôi quyết đị ứ ự ể
mang tính th c ti n cao. Mô hình robot này s d ng n n t ng FPGA/DSP và công
ự ễ ử ụ ề ả
ngh m c phát tri n r t th nh hành ngày
ệ SoC đó là nhưng công nghệ ới và đang đượ ể ấ ị
nay Do v y tôi ch n nghiên c u và th c hi
. ậ ọ ứ ự ện đề tài: “Nghiên c u th c thi b i
ứ ự ộ đ ều
khiể ệ ề ả
n Robot công nghi p trên n n t ng FPGA”, và đối tượng đượ ử ụ
c s d ng trong
nghiên c chính xác c .
ứu để xác định độ ủa các tính toán đã đặt ra
2. M c tiêu nghiên c
ụ ứu
M :
ụ ề
c tiêu đ tài là
- c thi b u khi n chuy
Thự ộ điề ể ển độ ử ụ ứ ụ ề ả
ng s d ng Kit SoC ng d ng n n t ng FPGA
c xây d ng mô hình robot.
ủa Altera để ự xe
- m th t qu c thi b u khi n trên mô hình gi
Kiể ử và đánh giá kế ả thự ộ điề ể đối tượng ả
l p
ậ
3. ng và ph m vi nghiên c u
Đố ợ
i tư ạ ứ
- u lý thuy t v n n t ng FPGA và DSP.
Nghiên cứ ế ề ề ả
- u k
Nghiên cứ ỹ p trình trên công ngh .
thuật lậ ệ SoC
- u thu ng PID.
Nghiên cứ ật toán dò đườ
- u ch r ng xung PWM
Nghiên cứu phương pháp điề ế độ ộ
2
4. u
Phương pháp nghiên cứ
- p và phân tích các tài li
Thu thậ ệu và thông tin liên quan đến đề tài
- Phân tích và l n h ng d ng.
ựa chọ ệ thống chương trình ứ ụ
- n khai xây d ng d ng.
Triể ựng chương trình ứ ụ
- m tra, th nghi nh giá k .
Kiể ử ệm và đá ết quả
5. B c
ố ụ ề
c đ tài
B c c k u thành 3
ố ục luận văn đượ ết cấ chương:
Chương 1: ổ ệ ố
T ng quan h th ng
Chương 2: ế ế ệ ố
Thi t k h th ng
Chương 3: ự ệ ố
Xây d ng h th ng
Trong chương 1 ớ ệ ề
ss, gi i thi u v nguyên t c ho ng chung c
ắ ạt độ ủa động cơ,
m ch, công ngh FPGA và c c u trúc c a h t b s c x d ng.
ạ ệ đưa ra đượ ấ ủ ệ thiế ị ẽ đượ ử ụ
Trong chương 2 ớ ệ ề ệ ố ủ ệ ố
, gi i thi u v h th ng và các module chính c a h th ng. Còn
trong chương 3, đây là chương trọ ả ự
ng tâm nêu ra gi i pháp và quá trình xây d ng mô
hình xe d a vào các lý thuy iên c u.
robot ự ết đã ngh ứu trong hai chương đầ Và đưa ra
k c nghi t lu n.
ết qua thự ệm thu được và kế ậ
6. T ng quan tài li u nghiên c u
ổ ệ ứ
Tài li u ph c v cho vi c nghiên c tài này bao g m các tài li n
ệ ụ ụ ệ ứu đề ồ ệu cơ bả
như ở
DE0_Nano_User_Manual_v1.9 phát hành b i Terasic. -
DS
5+SoCkit+WorkshopUSA phát hành b Terasic.
ở Speed Control of Dc Motor By
PWM Method Using Microcontroller của Tran Quoc Cuong, Tran Thanh Phong
3
CHƯƠNG I: TỔNG QUAN HỆ THỐNG
1.1. u v Robot
Giới thiệ ề
1.1.1. u v công ngh Robot hi n nay
Giới thiệ ề ệ ệ
Thuật ngữ robot được sinh ra từ trên sân khấu, không phải trong phân xưởng
sản xuất. Những robot xuất hiện lần đầu tiên trên ở trên NewYork vào ngày
9/10/1922 trong vở “Rossum’s Universal Robot” của nhà soạn kịch người Tiệp
Karen Kapek viết năm 1921, còn từ robot là cách gọi tắt của từ robota theo tiếng
-
Tiệp có nghĩa là công việc lao dịch.
Robot hay người máy là một loại máy có thể thực hiện những công việc một
cách tự động bằng sự điều khiển của máy tính. Robot là một tác nhân cơ khí, nhân
tạo, thường là một hệ thống cơ khí-điện tử.
Với sự xuất hiện và chuyển động của mình, robot gây cho người ta cảm giác
rằng nó giác quan giống như con người. Từ "robot" (người máy) thường được hiểu
với hai nghĩa: rô bốt cơ khí và phần mềm tự hoạt động. Về lĩnh vực người máy,
Nhật Bản là nước đi đầu thế giới về lĩnh vực này.
Ngày nay robot đang là tâm điểm của một cuộc cách mạng lớn sau Internet.
Robot ngày càng được sử dụng rộng rãi trong lĩnh vực công nghiệp, y tế, giáo dục
đào tạo, giải trí, an ninh quốc phòng, thám hiểm không gian. Robot là sản phẩm
công nghệ có độ phức tạp cao, chứa hàm lượng tri thức vô cùng phong phú về tất cả
các lĩnh vực của khoa học và công nghệ.
Theo dự đoán trong vòng 20 năm nữa mỗi người sẽ có nhu cầu sử dụng một
robot cá nhân như nhu cầu một máy tính PC hiện nay và robot sẽ là tâm điểm của
một cuộc cách mạng lớn sau Internet. Với xu hướng này, cùng các ứng dụng truyền
thống khác của robot trong công nghiệp, y tế, giáo dục đào tạo, giải trí và đặc biệt là
trong an ninh quốc phòng thì thị trường robot sẽ vô cùng to lớn. Robot đã có những
bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên được ứng dụng trong
công nghiệp vào những năm 60 để thay thế con người làm những công việc nặng
nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử dụng ngày càng nhiều
trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khả năng
thích ứng linh hoạt và thông minh hơn. Ngày càng nhiều các phát minh tiên tiên cho
4
ngành công nghiệp phát triển cánh tay robot cũng như robot tự hành vận chuyển
hàng hóa trong các khu công nghiệp. Hình 1.1 minh họa một số hình ảnh về robot
công nghiệp ngày nay [Nguồn sản xuất oto của toyota]
Hình 1. 1 Robot Công nghi p
ệ
Ngày nay, ngoài ứng dụng sơ khai ban đầu của robot trong chế tạo máy thì
các ứng dụng khác như trong y tế, chăm sóc sức khỏe, nông nghiệp, đóng tàu, xây
dựng, an ninh quốc phòng đang là động lực cho sự phát triển của ngành công
nghiệp robot. Hình 1.2 minh họa cho những cánh tay robot ý tế đang thực hiện ca
phẫu thuật cho bệnh nhân và Robot chiến đấu được phát triển bởi Nhật Bản.
Hình 1. 2 Robot y t và an ninh qu c phòng
ế ố
5
Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là:
tay máy robot (Robot Manipulators), robot di động (Mobile Robots), robot phỏng
sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots). Robot di động
được nghiên cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided
Vehicles), robot tự hành dưới nước AUV (Autonomous Underwater Vehicles), robot
tự hành trên không UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots).
Với robot phỏng sinh học, các nghiên cứu trong thời gian qua tập trung vào hai loại
chính là robot đi bộ (Walking robot) và robot dáng người (Humanoid robot). Bên
cạnh đó các loại robot phỏng sinh học như cá dưới nước, các cấu trúc chuyển động
phỏng theo sinh vật biển cũng được nhiều nhóm nghiên cứu, phát triển.
1.1.2. d ng trong công ngh Robot
Các loạ ộng cơ đượ
i đ c sử ụ ệ
a) Động cơ một chiều DC
Hình 1. 3 t chi u
Động cơ mộ ề
Động cơ một chiều DC ( DC là từ viết tắt của "Direct Current Motors") là
động cơ điều khiển trực tiếp có cấu tạo gồm hai dây (dây nguồn và dây tiếp đất).
DC motor là một động cơ một chiều với cơ năng quay liên tục.
Khi chúng ta cung cấp năng lượng, động cơ DC sẽ bắt đầu quay, chuyển điện
năng thành cơ năng. Hầu hết các động cơ DC sẽ quay với cường độ RPM rất cao (
số vòng quay/ phút), và các động cơ DC đều được ứng dụng để làm quạt làm mát
máy tính, hoặc kiểm soát tốc độ quay của bánh xe..
6
Để điều khiển tốc độ quay của động cơ DC, người ta dùng điều biến độ rộng
xung (kí hiệu là PWM), đây là kỹ thuật điều khiển tốc độ vận hành bằng việc bật và
tắt các xung điện. Tỷ lệ phần trăm vận tốc với thời gian của thiết bị được điều khiển
bằng cơ chế bật tắt một mức độ cơ số vòng quay xác định của động cơ.
Hình 1. 4 Cấu tạo động cơ DC
Ví dụ, một động cơ có nguồn điện xoay chiều ở mức 50% ( tức 50% tắt và
50% bật), thì mô tơ sẽ quay một nửa số vòng quay ở mức 100% (tổng số). Mục đích
là để khi các xung nối tiếp nhau với tốc độ rất nhanh thì động cơ vẫn có thể quay
liên tục với tần số cao mà không bị vấp lỗi.
b) Động cơ servo
Hình 1. 5 Động cơ Servo
7
Một động cơ servo (Servo Motors) là một tổ hợp chung cơ bản của bốn bộ
phận: một động cơ điều khiển tốc độ DC, một bánh răng, một vi điều khiển và một
cảm biến.
Khả năng định vị của động cơ servo thường được tính toán để kiểm soát
được chính xác hơn so với những động cơ DC thông thường khác. Động cơ servo
thường cấu tạo gồm 3 dây: dây nguồn, dây tiếp đất và dây điều khiển. Không giống
như động cơ DC hoạt động trên cơ chế xoay chiều bật tắt nguồn, năng lượng (nguồn
điện) của động cơ servo được nạp vào liên tục. Động cơ servo hoạt động bằng việc
kiểm soát dòng điện, giúp động cơ định hướng chính xác hướng hoạt động của
mình.
Động cơ servo được thiết kế để dừng tại một vị trí cụ thể. Các vị trí này cần
được tính toán chính xác để khiến máy móc hoạt động được đúng với mục tiêu đề ra
theo ý đồ của người thiết kế. Ví dụ như kiểm soát các bánh lái trên một chiếc
thuyền hoặc cần khiến một cánh tay robot hay chân robot di chuyển trong một phạm
vi nhất định.
Động cơ servo sẽ không quay như động cơ DC thông thường vốn hoạt động
xoay qua lại với góc quay đạt tới mốc 360 độ (hoặc hơn). Trong khi đó, động cơ
servo sẽ hoạt động bằng việc nhận một tín hiệu lệnh quyết định góc vị trí ở đầu ra
và sử dụng sức mạnh (cơ năng) của một động cơ DC cấu tạo bên trong sẽ quay trục
quay đến đúng vị trí. Vị trí này được xác định bởi các vi cảm biến.
Hình 1. u t
6 Cấ ạo động cơ Servo
8
PWM được sử dụng cho các tín hiệu lệnh của động cơ servo. Tuy nhiên,
không giống như động cơ DC được PWM điều khiển bằng biến độ rộng xung để
kiểm soát tốc độ quay, động cơ servo dùng điều biến độ rộng xung đó để xác định
vị trí của trục động cơ, chứ không chỉ đơn thuần là tốc độ.
Trung bình một đơn vị xung được tính dựa trên vị trí trục (thường là khoảng
1,5ms), mục đích làm sao để giữ trục luôn ở đúng vị trí. Mỗi khi giá trị xung tăng
lên, sẽ khiến cho trục motor lần lượt chuyển động theo chiều kim đồng hồ, và luôn
sẽ có một xung ngắn hơn để đảo trục ngược lại chiều kim đồng hồ. Xung điều khiển
serco thường được lặp đi lặp lại khoảng 20 mm/s. Có thể nói đơn giản, trục servo di
chuyển đến đâu rồi cũng quay về lại vị trí ban đầu.
Khi động cơ được lệnh di chuyển, nó sẽ điều khiển trục di chuyển đến vị trí
cần đến và giữ nguyên ở vị trí đó, cho dù ngay cả khi có ngoại lực tác động lực đẩy
lên nó, các trục động cơ sẽ từ chối di chuyển khỏi vị trí đã thiết lập bởi bộ điều
khiển.
c) Động cơ bước
Hình 1. 7 c
Động cơ bướ
Động cơ bước (hay còn có tên là động cơ bước từ tính, động cơ hỗ trợ việc
bước), thực chất là một động cơ tăng lực sử dụng một phương pháp khác trong việc
lái hướng chuyển động. Cụ thể, động cơ bước vận hành bằng việc sử dụng một
9
động cơ quay liên tục DC, tích hợp cùng mạch điều khiển cùng một động cơ bước
hoạt động bằng nam châm từ tính có nhiều răng được sắp xung quanh một bánh
răng trung tâm để xác định vị trí.
Động cơ bước đòi hỏi phải có một mạch điều khiển bên ngoài hoặc một bộ vi
điều khiển (ví dụ như Raspberry Pi or Ardunio) để tiếp thêm năng lượng cho từng
nam châm điện và khiến các trục động cơ lần lượt xoay. Khi nam châm từ tính ‘A’
được cung cấp nguồn điện, nó sẽ tác động lực từ tính lên các bánh răng và căn chỉnh
chúng hơi xô lệch đến nam châm điện tiếp theo ‘B’. Khi ‘A’ tắt, và ‘B’ bật, các
bánh răng theo lực từ tính sẽ hơi lệch một chút so với ‘B’, và thế là các răng xếp
quây lại thành vòng tròn quanh bánh răng nguồn và ngắt mạch để quay về chỗ ngoặt
ban đầu nhằm tạo dựng một vòng xoay. Mỗi vòng xoay tính từ một nam châm điện
tiếp theo được gọi là “bước”, và thế là, động cơ có thể được quay bằng góc bước;
góc bước được xác định chính xác từ trước thông qua một vòng xoay hoàn chỉnh
với 360 độ.
Động cơ bước phổ biến với hai loại: động cơ đơn cực và động cơ lưỡng cực.
Động cơ lưỡng cực là loại mạnh nhất của động cơ bước và thường có 4 hoặc 8
chuỗi dây dẫn. Chúng có hai bộ cuộn dây điện từ cấu tạo bên trong, và bước vận
hành bằng việc thay đổi hướng của các bánh rang với các dây dẫn bên trong.
Động cơ bước đơn cực, được nhận dạng bởi cấu tạo gồm tới 5,6 hoặc 8
đường dây dẫn. Mặc dù chỉ có 2 cuộn cảm biến, nhưng mỗi cuộn lại là một tập hợp
trung tâm phức tạp. Động cơ bước đơn cực có thể bước mà không cần phải đảo
ngược chiều hiện tại trong các cuộn dây. Tuy nhiên, do cuộn trung tâm lại được sử
dụng như để tiếp thêm một nửa lực từ cho mỗi cuộn dây tại một thời điểm xác định,
nên chúng thường có ít mô men xoắn hơn loại động cơ lưỡng cực.
-
Các thiết kế của một động cơ bước thường cung cấp một mô men xoắn giữ
-
liên tục mà không cần động cơ để được hỗ trợ, đồng thời cũng cung ứng luôn một
động cơ khác có chức năng nhất định phù hợp với cấu tạo của nó. Dĩ nhiên, tuy
phức tạp như vậy nhưng lỗi định vị lại không xảy ra miễn chỉ cần động cơ bước có
tụ cơ năng được xác lập từ trước.
10
d) Kết luận
Sau đây là cái nhìn tổng kết chung về những đặc trưng cơ bản của một lĩnh
vực động cơ khá phức tạp, vốn luôn gây tranh cãi nhất là khi luận về những ưu điểm
và khuyết điểm của động cơ bước và động cơ tăng lực. Nhưng dù sao đi nữa, cũng
mong rằng với những nhận định sau sẽ giúp lựa chọn được đúng loại động
chúng ta
cơ phù hợp để biến thiết kế thêm hoàn thiện.
Động cơ điện một chiều DC
- Tốc độ nhanh, động cơ xoay vòng liên tục.
-Được sử dụng cho các thiết kế cần phải có một thiết bị quay với tốc độ RPM, ví dụ
như trục bánh xe ô tô, cánh quạt máy,vv...
Động cơ servo
- -
Tốc độ nhanh, mô đen xoắn cao, luân chuyển chính xác trong một góc giới hạn.
- Nói chung, đây là một động cơ có hiệu suất cao để thay thế cho động cơ bước,
nhưng có thiết lập phức tạp hơn với PWM điều khiển. Động cơ này thích hợp để
ứng dụng cho các cánh tay/ chân robot hoặc ứng dụng để điều khiển các loại bánh
lái,vv...
Động cơ bước
-Tốc độ chậm nhưng xác định chính xác hướng khi xoay, dễ dàng thiết lập và kiểm
soát.
- Ưu điểm vượt trội của động cơ bước là ở khả năng kiểm soát vị trí chính xác.
Trong trường hợp động cơ trợ lực yêu cầu cần có một cơ chế xoay chiều và mạch
dẫn trong việc xác lập định vị vị trí, hướng hoạt động của động cơ, một động cơ
bước hoàn hảo có thể kiểm soát và giải quyết các yêu cầu này thông qua tính chất
đặc trưng của mình khi quay bởi các “bước” ngắt mạch thiết kế bên trong.
- Động cơ bước được ứng dụng rộng rãi cho các máy in 3D và các thiết bị in ấn
tương tự, hoặc các máy móc khác hoạt động bằng việc cần xác định cơ bản vị trí
đầu ra…
11
1.1.3. u khi
Các loại module điề ể ộng cơ
n đ
Trong khuân kh tài này chúng tôi ch t c n nguyên lý
ổ đề ỉ ập trung đề ấp đế
điề ể ại động cơ bằng phương pháp điề
u khi n các lo u xung PWM (Pulse Width
Modulation). PWM là phương pháp điề ỉnh điệ ả
u ch n áp ra t i, hay nói cách khác, là
phương pháp điề ế ự ự thay đổi độ ộ ủ ỗ ẫn đế
u ch d a trên s r ng c a chu i xung vuông, d n
s n áp ra.
ự thay đổ ệ
i đi
Các PWM khi bi i thì có cùng 1 t n s và khác nhau v r ng c
ến đổ ầ ố ề độ ộ ủa
sườn dương hay sườn âm.
Ứng dụng của PWM trong điều khiển
PWM được ứng dụng nhiều trong điều khiển. Điển hình nhất mà chúng ta
thường hay gặp là điều khiển động cơ và các bộ xung áp, điều áp... Sử dụng PWM
điều khiển độ nhanh chậm của động cơ hay cao hơn nữa, nó còn được dùng để điều
khiển sự ổn định tốc độ động cơ.
Ngoài lĩnh vực điều khiển hay ổn định tải thì PWM còn tham gia và điều chế
các mạch nguồn như : boot, buck, nghịch lưu 1 pha và 3 pha...
PWM còn gặp nhiều trong thực tế ở các mạch điện điều khiển. Điều đặc biệt là
PWM chuyên dùng để điều khiển các phần tử điện tử công suất có đường đặc tính là
tuyến tính khi có sẵn 1 nguồn 1 chiều cố định .
Như vậy PWM được ứng dụng rất nhiều trong các thiết bị đi điện tử.
ện-
PWM cũng chính là nhân tố mà các đội Robocon sử dụng để điều khiển động cơ
hay ổn định tốc độ động cơ.
Hình 1. i s
8 nguyên t u khi n t
Sơ đồ ắc điề ể ả ử ụ
d ng PWM
12
Hình 1.8 d u khi n b ng PWM. V r ng xung
là đồ thị ạng xung khi điề ể ằ ới độ ộ
đầu ra tương ứng và đượ ằng %. Tùy thích do chúng ta điề ể
c tính b u khi n.
Nguyên lý hoạt động của PWM
Đây là phương pháp được thực hiện theo nguyên tắc đóng ngắt nguồn của tải
một cách có chu kì theo luật điều chỉnh thời gian đóng cắt. Phần tử thực hiện nhiện
vụ đó trong mạch các van bán dẫn.
Hình 1. i b
9 M u khi n t
ạch nguyên lý điề ể ả ằng PWM
Xét ho t c a m t van bán d t b ng
ạt động đóng cắ ủ ộ ẫn. Dùng van đóng cắ ằ
Mosfet IRF540 (Mosfet là Transistor hi u ng- Metal Oxide Semiconductor
ệ ứng trườ
Field Effect Transistor)
13
Hình 1. 10 xung PWM
Sơ đồ
Giả ồ ủa chân điề ể ạng điện áp đầ
n đ xung c u khi n và d u ra khi dùng PWM
Nguyên lý 0 -
: Trong khoảng thời gian t0, ta cho van G mở, toàn bộ điện áp nguồn
Ud được đưa ra tải. Còn trong khoảng thời gian , cho van G khóa, cắt nguồn
t0 - T
cung cấp cho tải. Vì vậy với thay đổi từ cho đến , ta sẽ cung cấp toàn bộ , một
t0 0 T
phần hay khóa hoàn toàn điện áp cung cấp cho tải.
Công thức tính giá trị trung bình của điện áp ra tải :
Gọi t1 là thời gian xung ở sườn dương (khóa mở ) còn là thời gian của cả sườn
T
âm và dương, là điện áp nguồn cung cấp cho tải. Ta có:
Umax
Ud = Umax.( t1/T) (V)
hay Ud = Umax.D
(Với là hệ số điều chỉnh và được tính bằng % tức là PWM)
D = t1/T
Như vậy ta nhìn trên hình đồ thị dạng điều chế xung thì ta có : Điện áp trung bình
trên tải sẽ là :
Ud = 12x20% = 2.4V ( với D = 20%)
Ud = 12x40% = 4.8V (Vói D = 40%)
Ud = 12x90% = 10.8V (Với D = 90%)
14
Các cách để tạo ra được PWM để điều khiển
Để tạo được ra PWM thì hiện nay có hai cách thông dụng : Bằng phần cứng và
bằng phần mềm.
Trong phần cứng có thể tạo bằng phương pháp so sánh hay là từ trực tiếp từ các IC
dao động tạo xung vuông như : 555, LM556...
Trong phần mền được tạo bằng các chip có thể lập trình được. Tạo bằng phần mền
thì độ chính xác cao hơn là tạo bằng phần cứng. Nên người ta hay sử dụng phần
mền để tạo PWM.
Ở đây tham khảo 2 cách điều chế PWM phổ biến: bằng phương pháp so
chúng ta
sánh và tạo xung vuông bằng phần mềm.
- Cách 1: Tạo xung vuông bằng phương pháp so sánh
Để tạo được bằng phương pháp so sánh ta cần 2 điều kiện sau đây :
+ Tín hiệu răng cưa : Xác định tần số của PWM
+ Tín hiệu tựa (Ref) là tín hiệu xác định mức công suất điều chế (Tín hiệu DC).
Xét sơ đồ mạch sau :
Hình 1. 11 T o xung vuông b
ạ ằng phương pháp so sánh
15
V i t n s c là nên ch c u ch nh R2 là có
ớ ầ ố xác định đượ f = 1/(ln.C1.(R1+2R2) ỉ ần điề ỉ
thể thay đổi độ ộ ễ ấ ề ạ
r ng xung d dàng. Ngoài 555 ra còn r t nhi u các IC t o xung
vuông khác.
- Cách 2: Tạo xung vuông bằng phần mềm
Đây là cách tối ưu trong các cách để tạo được xung vuông. Việc tạo bằng phần mền
cho độ chính xác cao về tần số và PWM. Và mạch đơn giản hơn rất nhiều. Xung
này được tạo dựa trên xung của CPU.
Lấy 1 đoạn ví dụ tạo PWM trong chip 8501 :
a) Module u khi t chi u
điề ể ộng cơ mộ
n đ ề
Để điều khiển tốc độ và cả chiều của động cơ điện 1 chiều khá đơn giản. Để
điều khiển chiều chỉ cần đảo chiều điện áp cấp vào phần ứng của động cơ.
chúng ta
Còn muốn điều khiển vận tốc thì thay đổi điện áp phần ứng cấp vào động cơ.
Mạch điều khiển sử dụng cũng có rất nhiều loại:
M ch Công Su u Khi Dung Ir2184, M ch c u H n hình là
ạ ất Điề ển Động Cơ Sử ạ ầ (điể
DRV8833).
Còn với động cơ có dòng lớn nhất là 2A thì nên dùng l298 để điều khiển.
16
Mạch như sau:
Hình 1. 12 m u khi t chi u
Sơ đồ ạch L298 điề ể ộng cơ mộ
n đ ề
Trong sơ đồ mạch L298 hình 1.12, gồm đầ
4 chân u vào INPUT: IN1, IN2,
IN3, IN4 đượ ố ần lượ ớ ủa L298. Đây là các chân
c n i l t v i các chân 5, 7, 10, 12 c
nh n tín hi u khi n. Và g 4 chân u ra OUTPUT:
ậ ệu điề ể ồm đầ OUT1, OUT2, OUT3,
OUT4 (tương ứ ới các chân INPUT) đượ ố ớ ủ
ng v c n i v i các chân 2, 3, 13, 14 c a
L298. Các chân này sẽ được nối với động cơ.
- Hai chân và dùng u khi n các m ch c u H trong L298. N u
ENA ENB để điề ể ạ ầ ế ở
m i v i ngu n 5V) thì cho phép m
ức logic “1” (nố ớ ồ ạ ầ ạt độ ế ở ứ
ch c u H ho ng, n u m c
logic “0” thì m t đ
ạ ầ ạ
ch c u H không ho ộng.
Đ ề ể ề ớ
i u khi n chi u quay v i L298:
-Khi ENA = 0: Động cơ không quay vớ ọi đầ
i m u vào .
-Khi ENA = 1:
17
+ INT1 = 1; INT2 = 0: động cơ quay thuân.
+ INT1 = 0; INT2 = 1: động cơ quay nghịch.
+ INT1 = INT2: động cơ dừ ứ
ng ngay t c thì.
(tương tự ớ
v i các chân ENB, INT3, INT4).
Hình 1. 13 i ch a DRV8833
Sơ đồ khố ức năng củ
Hoặc còn 1 loại nữa vẫn thường hay sử dụng với robocon là mạch kết hợp
fet+relay. Trong đó FET có ưu điểm đóng mở với tần số cao dùng để khuếch đại tín
hiệu điều khiển tốc độ. Còn relay có tác dụng đảo chiều.
18
Hình 1. 14 m ch FET+relay
Sơ đồ ạ
Trong 2 loại mạch FET+relay và cầu H thì FET+relay dễ làm hơn nhưng mà
không có tác dụng hãm tốt như mạch cầu H. Mạch cầu H thì có ưu điểm về hãm,
nếu thiết kế tốt thì bền hơn và có thể đảo chiều được liên tục, tuy nhiên việc thiết kế
phải đảm bảo chống dòng ngược và trùng dẫn.
b) Module điề ể ộng cơ Servo
u khi n đ
Động cơ Servo ại động cơ
là lo có góc quay c c k r ng
ự ỳ chính xác, nó quay theo độ ộ
c a xung PWM. Chính vì v y mà chúng ta ch c n m u khi n có th t o ra
ủ ậ ỉ ầ ột vi điề ể ể ạ
các độ ộ ể điề ển được động cơ
r ng xung khác nhau là có th u khi Servo RC. Góc quay
cơ học được xác đị ở ề ộ ủ ộ ng điện phát lên dây điề ể
nh b i chi u r ng c a m t xu u khi n.
Đây là mộ ứ điề ế độ ộ ấ ộ ỗ
t hình th c u ch r ng xung. Servo RC th y m t xung m
sau i 20
ms, tuy u này có th i trong m t ph m vi r ng khác nhau t servo
nhiên điề ể thay đổ ộ ạ ộ ừ
này sang servo khác. Chi u r ng c a xung s c t c
ề ộ ủ ẽ xác định đượ ốc độ ủa động cơ. Ví
d , trong nhi u Servo RC m t xung 1,5 ms s v
ụ ề ộ ẽ làm cho động cơ quay về ị trí 90 độ
(vị ờ ủ ị ấ ổ ờ ể thay đổ
trí trung tính). Th i gian c a giá tr th p (và t ng th i gian) có th i trong
ph m vi r
ạ ộng, và thay đổ ừ ế ế ảnh hưởng đế
i t xung này sang xung k ti p, mà không n
vị trí củ ộng cơ servo.
a đ
Vị trí của servo C không được xác định bởi chu kỳ làm việc PWM (nghĩa
R
là, thời gian ON, OFF) mà chỉ bằng chiều rộng của xung. (Điều này rất khác so với
PWM từng được sử dụng trong một số hệ thống khác. Đặc biệt, điều khiển tốc độ
động cơ PWM DC hoạt động theo cách thức khác hoàn to Hầu hết các động cơ
àn).
19
Servo RC di chuyển chính xác đến cùng vị trí khi chúng nhận được một xung 1,5
ms mỗi 6 ms (một chu kỳ làm việc là 25%) như khi chúng nhận được một xung 1,5
ms mỗi 25 ms (chu kỳ làm việc là 6%) trong cả hai trường hợp, chúng chuyển
-
sang vị trí trung tâm (vị trí trung tính). Với nhiều servo C, miễn là tốc độ làm mới
R
(số lần mỗi giây mà xung được gửi đi, tức là tốc độ lặp lại xung) nằm trong khoảng
40 Hz đến 200 Hz, giá trị chính xác của tốc độ làm mới là không cần thiết.
Hình 1. 15 Chu kỳ xung PWM trong động cơ Servo
c) Module điề ể ộng cơ bướ
u khi n đ c
-Động cơ bướ ều cách điề ể ể điề ể
c có nhi u khi n. Có th u khi n các dây tr c ti
ự ếp
qua 4 c m công su
ổng qua MCU thông qua driver đệ ất. cách này hơi phứ ạ ộ
c t p m t
chút, cầ ả
n ph i hiểu rõ bên trong động cơ và thườ ỉ điề ển được full bướ
ng ch u khi c
-Cách thông d ng nh t là dùng các IC chuyên d u khi
ụ ấ ụng điề ển động cơ bước.
Các IC hay g p nh t là TB6560, TB6600, L297, A4988, DRV8825, MA860H...
ặ ấ
Việc l a ch
ự ọ ạ
n dùng lo i driver nào phụ ộ ạ ộng cơ và công suấ ộng cơ
thu c vào lo i đ t đ
định điề ể ụ như A4988, DRV8825 dùng để điề ể ại động cơ
u khi n. Ví d u khi n các lo
nh có công su t bé ví d
ỏ ấ ụ như trong máy photo hoặc máy in 3d, TB6560 hoặc
TB6600 thì l u khi n các lo t chút ví d
ại dùng để điề ể ại động cơ lớn hơn mộ ụ như
trong các lo i máy cnc mini. Các lo i ta hay dùng MA860H
ạ ại động cơ to thì ngườ
ho a
ặc các driver khủng hơn nữ
20
-Nhìn chung cách giao ti p v
ế ới các module Driver này tương đố ố
i gi ng nhau.
Chúng đều có 3 port cơ bản là DIR ( để điể ển hướng quay động cơ), EN ( để
u khi
điề ể ậ ắt động cơ), ất xung để ị ể ừ ộ ố ạ
u khi n b t t CLK ( xu d ch chuy n t ng step). M t s lo i
module như tb6560 tb6600 hoặ ỗi port đề ụ như
c MA860H thì m u có 2 pin. Ví d
EN+ EN- CW+ CW- CLK+ CLK-. vì th i dùng có th tùy ch u khi
ế ngườ ể ọn điề ển
theo m c 0 ho c m ng kéo 3 chân xu ng th u khi n b ng 3
ứ ặ ức 1. Mình thườ ố ấp và điề ể ằ
chân còn lại
-Điề ọ ấ ể điề ển đượ
u quan tr ng nh t là các module này là chúng có th u khi c vi
bước như 1/16 step, 1/8 step, 1/2 step và full step. nế ạ ầ
u full step thì b n c n 200 step
để ết 1 vòng đố ớ ại 1.8 độ ế ế độ vi bướ
quay h i v i lo 1step. Còn n u dùng ch c 1/16 step
thì m d ch chuy . T c là b n ph i c n 200*16=3200
ột xung động cơ chỉ ị ển 1,8/16 độ ứ ạ ả ầ
xung để quay h t m phân gi chính xác
ế ột vòng. điều này làm tăng độ ải và tăng độ
cho step
-Cách k t n i: v
ế ố ới động cơ 4 dây thì bạn tìm các dây xem dây nào là kênh A-
A+ B- B+ và n i vào driver. v
ố ới động cơ 5 dây 6 dây hoặ ạ ắ ỏ ế
c 8 dây thì b n c t b h t
những dây chung đi và chỉ ử ụ ở 2 đầ ộn dây để điề ể
s d ng 4 dây u cu u khi n
Gi i thi
ớ ệu module Driver A4988
 H u h u dùng IC u khi n vì máy in 3d t i tr ng
ầ ết các máy in 3d đề A4988 điề ể ả ọ
nh .
ỏ
Hình 1. 16 Module Driver A4988
21
 Tính năng:
- u khi n
Điề ển đơn giả
- u khi ng v n áp lên t i 35V dòng lên t
Điề ển đượ ộng cơ hoạ ộ
c đ t đ ới điệ ớ ới 2A
- Có 5 ch c
ế độ: full bước, 1/2 bước, 1/4 bước, 1/8 bướ ớ
c, 1/16 bư
- u ch nh dòng ra b ng tri t áp (bé xíu) n m bên trên Current Limit =
Điể ỉ ằ ế ằ
VREF × 2.5
- T ng Shutdown thì quá nóng
ự độ
 Sơ đồ ế ố
k t n i
Hình 1. 17 k t n i
Sơ đồ ế ố
L a ch n ch full hay 1/2 hay 1/4.. s c thông qua 3 pin MS1 MS2
ự ọ ế độ ẽ đượ
MS3. Thông ng n i th ng 3 pin này v i công t d thi t l p t trên
thườ ố ẳ ớ ắc bit 3p để ễ ế ậ ừ
ph n c u th n i 3 pin này t c là mode full step.
ầ ứng. Lưu ý là nế ả ổ ứ
22
B 1 B c
ảng 1. ảng chân điều khiể ộng cơ bướ
n đ
 B t t m c LOW là b t module, m
ậ ắt động cơ thì thông qua pin ENABLE, ứ ậ ức
HIGH là tắt module
 Điề ể ề ủ ộng cơ thông qua pin DIR
u khi n chi u quay c a đ
 Điề ển bướ ủa động cơ thông qua pin STEP, mỗi xung là tương ứ
u khi c c ng
v c ( ho
ớ ớ
i 1 bư ặc vi bước)
 Hai chân Sleep vớ ố ớ
i Reset n i v i nhau luôn.
1.1.4. N n Robot
ền tảng FPGA/DSP trong điều khiể
FPGA là công ngh vi m ch tích h p kh trình (PLD - Programmable Logic
ệ ạ ợ ả
Device) mớ ấ ế ấ ệ ậ ữ ỉ
i nh t và tiên ti n nh t hi n nay. Thu t ng Field Programmable ch quá
trình tái c u trúc IC có th c th c hi n b i dùng cu u ki n
ấ ể đượ ự ệ ởi ngườ ối, trong điề ệ
thông t ng, hay nói m i k
hường thườ ột cách khác là ngườ ỹ p trình IC có th d
sư lậ ể ễ
dàng hi n th c hóa thi t k c a mình s d ng FPGA mà không l c vào m
ệ ự ế ế ủ ử ụ ệ thuộ ột
quy trình s n xu t hay c u trúc ph n c ng ph p nào trong nhà máy bán d
ả ấ ấ ầ ứ ức tạ ẫn. Đây
chính là m t trong nh ng m làm FPGA tr thành m t công ngh IC kh
ộ ữ đặc điể ở ộ ệ ả trình
đượ ứ ể ề ấ ện nay. Để có đượ ả năng đó, FPGA
c nghiên và c u phát tri n nhi u nh t hi c kh
ra đờ ộ ệ ớ ứ ả ộ ạ ở ộ ủ
i hoàn toàn là m t công ngh m i ch không ph i là m t d ng m r ng c a các
chip kh trình ki khác bi nh t n tái c
ả ểu như PAL, PLA... Sự ệt đó thứ ấ ằm ở cơ chế ấu
trúc FPGA, toàn b c u hình c t b nh truy c p
ộ ấ ủa FPGA thường được lưu trong mộ ộ ớ ậ
ng ng SRAM), quá trình tái c c th c hi n b ng cách
ẫu nhiên (thông thườ ấu trúc đượ ự ệ ằ
23
đọ ừ RAM để ậ ạ ế ố ức năng logic trong IC. Có
c thông tin t l p trình l i các k t n i và ch
thể so sánh cơ chế đó làm việ ống như phầ ềm máy tính cũng được lưu trữ
c gi n m
trong RAM và khi th c thi s c n p l t vi x lý, nói cách khác vi c l p
ự ẽ đượ ạ ần lượ ử ệ ậ
trình l p trình l i ph n m m trên máy tín
ại cho FPGA cũng dễ dàng như lậ ạ ầ ề h. Như
v y v m t nguyên t c thì quá trình kh ng c a FPGA không di n ra t c thì mà
ậ ề ặ ắ ởi độ ủ ễ ứ
c u hình t SRAM ph i di n ra quá trình tái c u trúc
ấ ừ ải được đọc trước sau đó mớ ễ ấ
theo n i dung thông tin ch a trong SRAM. D u ch a trong b nh RAM ph
ộ ứ ữ liệ ứ ộ ớ ụ
thuộ ồ ấ ậy để lưu giữ ấu hình cho FPGA thườ ả
c vào ngu n c p, chính vì v c ng ph i dùng
thêm m t ROM ngo n nh ng dòng s n ph m FPGA g
ộ ại vi. Đế ữ ả ẩ ần đây thì FPGA được
thiế ế để ể ế ớ ấ ề ạ ặc FPGA thườ
t k có th giao ti p v i r t nhi u d ng ROM khác nhau ho ng
đượ ế ế kèm CPLD để ạ ữ ầ ố đị ệ ợ
c thi t k n p nh ng thành ph n c nh, vi c tích h p này làm
FPGA n p c n c u hình v n không
ạ ấu hình nhanh hơn nhưng cơ chế ạp và lưu trữ ấ ẫ
thay đổ ả năng đó điể ứ ệ ớ ế ệ
i. Ngoài kh m th hai làm FPGA khác bi t v i các PLD th h
trướ ả năng tích hợ ớ ật độ ớ ố ổng logic tương
c là FPGA có kh p logic v i m cao v i s c
đương lên tới hàng trăm nghìn, hàng triệ ổ ả năng đó có đượ ờ ự độ
u c ng. Kh c nh s t
phá trong ki n trúc c a FPGA. N ng m r ng c a CPLD tích h p nhi u m ng
ế ủ ếu hướ ở ộ ủ ợ ề ả
PAL, PLA lên m n thân các m c l n và
ột chip đơn, trong khi bả ảng này có kích thướ ớ
c n nên s ng m ng tích h p nhanh chóng b h n ch , dung
ấu trúc không đơn giả ố lượ ả ợ ị ạ ế
lượ ủ ề ất cũng chỉ đạt đượ ố trăm nghìn cổng tương
ng c a CPLD nhi u nh c con s
đương. Đố ớ ầ ử logic cơ bả ả
i v i FPGA thì ph n t n không còn là m ng PAL, PLA mà
thườ ố ậ rình đượ 6 bit đầu vào và 1 đầu ra ( thườ
ng là các kh i logic l p t c cho 4- ng
đượ ọ ệ ỏ đơn vị ạ
c g i là LUT). Vi c chia nh logic cho phép t o mộ ấ ả
t c u trúc kh trình
linh ho c nhi ng c ng logic trên m t kh i bán
ạt hơn và tích hợp đượ ều hơn số lượ ổ ộ ố
d n. Bên c u qu làm vi c và t làm vi c c t tr i so
ẫ ạnh đó hiệ ả ệ ốc độ ệ ủa FPGA cũng vượ ộ
v i các IC kh tích h p l n và t làm vi c cao nên
ớ ả trình trước đó. Vì có mật độ ợ ớ ốc độ ệ
FPGA có th ng d ng cho l p nh ng bài toán x lý s ph c t i hi
ể được ứ ụ ớ ữ ử ố ứ ạp đòi hỏ ệu
suấ ệ ớ ệ ớc đó không đáp ứ g đượ ế ế
t làm vi c l n mà các công ngh trư n c. Thi t k trên
FPGA thường đượ ự ệ ở ữ ầ ế
c th c hi n b i các ngôn ng HDL và h u h t các dòng FPGA
hi n t i h t k theo hai ngôn ng chính là Verilog và VHDL, t t c nh ng
ệ ạ ỗ trợ thiế ế ữ ấ ả ữ
thiế ế ở ững chương trước đề ể ệ ự ằ ộ
t k nh u có th hi n th c hóa trên FPGA b ng m t quy
24
t n. Ngoài HDL, thi t k trên FPGA còn có th c th c hi n thông
rình đơn giả ế ế ể đượ ự ệ
qua h ng ngôn ng ph n m
ệ nhúng nghĩa là bằ ữ ầ ềm (thườ ột phương
ng là C/C++). M
pháp n ng dùng trong các bài toán x lý s tín hi u là s d ng System
ữa thườ ử ố ệ ử ụ
Generator một chương trình kế ợ ủ ớ ầ ề ế ế ủ
t h p c a Matlab v i ph n m m thi t k FPGA c a
Xilinx.
Sự đột phá mạnh mẽ trong công nghệ bán dẫn và nhu cầu cao về ứng dụng
đa phương tiện trên mạng không dây đã thúc đẩy việc nghiên cứu và phát triển các
phép toán xử lý tín hiệu mạnh cho hệ thống viễn thông trên FPGA cũng như trên
các mạch tích hợp chuyên dụng (ASIC).
Những bước tiến này cũng dẫn đến một loạt các giải pháp mới cho vấn đề về
xử lý tín hiệu, mở ra thị trường cơ hội và xu hướng mới. Thông thường thì các ứng
dụng đặc trưng cho xử lý tín hiệu có sẵn trong các bộ xử lý tin hiệu số (DSP). Song
song đó, các giải thuật dùng trên những bộ xử lý có tập lệnh phức tạp (VLIW) khá
khô khan và thường không mang lại một giải pháp tối ưu. Và thêm vào đó là những
đột phá gần đây về tốc độ, mật độ, và giá thành của các bộ xử lý FPGA dẫn đến có
thêm một lựa chọn rất hấp dẫn cho việc xử lý tín hiệu tốc độ cao. So sánh trong
nhiều thiết kế, sự kết hợp DSP vào FPGA cho kết quả vượt trội so với các bộ xử lý
với tập lệnh phức tạp.
1.3.4.1. DSP (Digital Signal Processing)
Xử lý tín hiệu số (DSP) là sử dụng các biến đổi hoặc điều khiển tín hiệu số
trong suốt thời gian dài. DSP đã trở thành một nền tảng công nghệ và đã thay thế
cho hệ thống xử lý tín hiệu truyền thống trong nhiều ứng dụng. DSP có nhiều điểm
mạnh, chẳng hạn như không thay đổi theo nhiệt độ, tuổi thọ, và thêm vào đó, các
thiết kế số có hiệu suất cao, công suất thấp, giá thành rẻ hơn so với các thiết kế
tương tự.
Chúng ta dễ dàng bắt gặp một hệ thống có sử dụng DSP ở hầu hết các thiết bị
công nghệ bây giờ, PC hoặc điện thoại di động chẳng hạn. DSP được sử dụng khá
rộng rãi trong nhiều lĩnh vực đời sống cũng như khoa học kỹ thuật. Ta có thể tự rút
ra tầm quan trọng của DSP trong các hệ thống ứng dụng. Khó mà tưởng tượng được
25
nếu thế giới không tồn tại DSP, công nghệ sẽ không thể phát triển được như hiện
tại, cũng như sự không tồn tại của khá nhiều tiện ích cuộc sống vì không có gì hỗ
trợ để tạo nên các ứng dụng khá quen thuộc với chúng ta. Bảng tóm lược dưới đây
sẽ cho chúng ta cái nhìn tổng quan về các ứng dụng của DSP.
Lĩnh Vực Giải thuật DSP
Mục đích tổng quát
Lọc và nhân chập, lọc thích nghi, nhận diện và so
sánh, đánh giá phổ, phân tích phổ và biến đổi
Fourier.
Xử lý tiếng nói
Mã hoá và giải mã, nhận dạng và tổng hợp tiếng nói,
nhận diện người nói, loại bỏ tiếng vọng, xử lý tín
hiện trong cấy tai.
Xử lý âm thanh
Mã hoá và giải mã Hi-Fi, loại bỏ nhiễu, cân bằng âm
thanh, mô phỏng âm thanh xung quanh, trộn và hiệu
chỉnh âm thanh, tổng hợp âm thanh.
Xử lý hình ảnh
Nén và giải nén ảnh, xoay, truyền và phân giải ảnh,
nhận dạng ảnh, nâng cấp ảnh, xử lý tín hiệu trong
cấy võng mạc.
Các hệ thống thông tin
Thư âm thanh, fax, bộ điều hoà, mạng điện thoại,
điều chế và giải điều chế, cân bằng đường dây, mã
hoá và giải mã dữ liệu, truyền thông số và mạng
LAN, mạng không dây, vô tuyến và truyền hình, y
sinh.
Điều khiển
Điều khiển Server, đĩa, máy in, động cơ, điều khiển
định hướng, điều khiển dao động, điều khiển hệ
thống công suất, robot.
Thiết bị đo
ống dẫn chùm, máy quan sát sóng, phân tích điện áp,
phân tích trạng thái bền vững, hệ thống định vị.
B 2 Tóm t t các ng s d a DSP
ảng 1. ắ ứng dụ ử ụng củ
26
Hình 1. 18 c thi h ng DSP
Sơ đồ thự ệ thố
Hình 1.18 trình bày một ứng dụng đặc trưng của hệ thống DSP dùng để thực
thi một ứng dụng tương tự. tín hiệu vào tương tự đi qua bộ tiền lọc khử nhiễu cho
tín hiệu thô ban đầu, ta có được tín hiệu tương tự trơn tru, với tần số lấy mẫu fs ta
thu được các mẫu tín hiệu rời rạc, tín hiệu đã được lấy mẫu qua bộ biến đổi tín hiệu
tương tự sang số (ADC Analog to Digital Converter) để thu được tín hiệu số. Lúc
-
này, tín hiệu sẽ qua hệ thống DSP và tín hiệu ra có thể ở dạng số hoặc qua bộ biến
đổi số sang tương tự (DAC - Digital to Analog Converter) để có được tín hiệu ra
tương tự.
1.3.4.2. FPGA (Field Programmalbe Gate Arrays)
FPGA là một thiết bị logic lập trình được. FPGA hình dung như một mảng 2
chiều các khối logic và flip flop kết hợp với những liên kết điện tử khả trình giữa
-
các khối logic đó. Khác với liên kết cứng dùng kết nối kim loại trong những IC,
những liên kết trong FPGA là tổng hợp các chuyển mạch điện tử khả trình. Chính vì
vậy mà FPGA có khả năng sử dụng để tạo nên hầu hết các thiết kế phần cứng.
27
Hình 1. Ki
19 ến trúc bên trong FPGA
Hình 1.19 mô tả kiến trúc bên trong một FPGA thông thường, ta có thể thấy
gồm có 3 thành phần: I/O Cell (I/O pads), Logic Block, và Wire Segments (Routing
Channels). Routing Channels có thể được xem như độ rộng, số đường dây. Các lối
vào I/O khớp với chiều cao của một dòng hoặc độ rộng của một cột trong mảng, có
nhiệm vụ kết nối theo ý muốn bất kỳ một đường dây nào với kênh bên cạnh. Cấu
trúc một Logic Block được xem xét ở hình 1.20.
Hình 1. 20 C u trúc m t Logic Block
ấ ộ
28
1.3.4.3. K p a FPGA và DSP
ết hợ giữ
Các phần trên chúng ta đã thấy được sự nổi trội của 2 công nghệ , tuy nhiên
ch chúng
úng vẫn có những hạn chế riêng. Vì vậy mà chúng ta vẫn cần kết hợp lại,
sẽ tạo nên một công nghệ vượt trội hơn, khắc phục được các khuyết điểm khi chúng
nằm riêng lẻ.
Một bộ DSP thực chất là một Chip hoặc cả một mạch được thiết kế sẳn. Khi
kết hợp chúng vào trong một hệ thống, vấn đề về kết nối là một trở ngại, vì một bộ
DSP không hổ trợ toàn bộ các giao tiếp mà thông thường chỉ có một số giao tiếp mà
thôi. Thí dụ, hôm nay bạn kết nối một bộ DSP vào một Vi Xử Lý sử dụng giao tiếp
RS232, ngày mai vì một lý do nào đó, bạn bắt buộc phải kết nối theo giao tiếp USB,
mà nếu Vi Xử Lý hoặc DSP không hổ trợ thì vấn đề này trở nên nan giải. Với một
FPGA kết hợp thêm, bạn có thể dùng FPGA để thực hiện một giao tiếp bất kỳ bằng
cách thay đổi đoạn mã chương trình của FPGA. Sự kết hợp DSP với FPGA loại bỏ
rào cản về giao tiếp, chỉ cần board có các cổng, việc giao tiếp có thể không cần
được hổ trợ, chỉ cần người lập trình nắm rõ được cách thức truyền dữ liệu là có thể
thực hiện được.
khi chúng ta
Ví dự với nhiều DSP trên hệ thống thiết kế một hệ thống điều
khiển sử dụng tất cả DSP đó điều này sẽ tốn kém thời gian và tiền bạc nếu như
rất
chúng ta này
muốn thêm một DSP nữa vào hệ thống , và do đó sẽ phải chọn lại Vi
Xử Lý khác hoặc sẽ thiết kế lại hệ thống cho phù hợp. Nếu dùng kết hợp FPGA,
công việc này chỉ đơn thuần là cấu hình lại từ đoạn mã khác do viết,
chính chúng ta
không cần phải thay đổi các kết nối phần cứng.
DSP rất quan trọng nhưng cứng về mặt thiết kế truyền thống, với một hệ
thống DSP FPGA, ta được một sự kết hợp hiệu quả, mềm mại trong thiết kế với khả
năng cấu hình lại mà không cần thay đổi phần cứng. Các hệ thống SOPC (System
on progammablechip) trước đã có các Vi Xử Lý, Vi Điều Khiển bên trong hệ thống,
với sự kết hợp thêm DSP đã mở rộng và đẩy mạnh phát triển hơn nữa. Như đã tìm
hiểu về phạm vi của DSP ở phần đầu,việc kết hợp này cũng tạo nên một bước ngoặt
quan trọng trong thiết kế, ứng dụng DSP.
29
Chính vì những lý do trên mà làm cho việc kết hợp DSP FPGA trở nên khá
-
hấp dẫn với nhiều người, là một hướng nghiên cứu nhận được nhiều sự quan tâm,
và là đề tài được nêu lên khá nhiều trong các diễn đàn kỹ thuật.
Chúng có hai -
ta cách tiếp cận với DSP FPGA, đó là dùng các khối DSP đã
được tích hợp sẵn trên FPGA (tạm gọi là tích hợp cứng) hoặc tạo một nhân DSP
bằng cách lập trình trên FPGA (tạm gọi là tích hợp mềm).
a) Tích h p c ng
ợ ứ
DSP tích hợp cứng trên FPGA nghĩa là một chip DSP được tích hợp lên hệ
thống FPGA.
Hình 1.21 cho thấy một cách trực quan hệ thống gồm 2 thành phần FPGA và
DSP, DSP được tích hợp lên FPGA như một ngoại vi của FPGA. Tất nhiên trong hệ
thống ứng dụng không chỉ có 2 thành phần này thôi.
Hình 1. 21 tích h
Sơ đồ ợp cứng
Altera DSP Development Kit Stratix II, hỗ trợ một FPGA Stratix II
EP2S60F1020C4, bộ DSP có tên DK 2S60N (với phiên bản Professional có
- -
DSP
thêm DK- - -VIDEO-
DSP 2S180N), một DC TVP5146 ngõ vào xử lý video,….
Việc tích hợp cứng DSP trên hệ thống FPGA cho một hiệu quả làm việc tốt.
Tốc độ xử lý, tính toán sẽ tăng hơn nhiều lần so với một hệ thống không có DSP.
Nhược điểm của việc tích hợp cứng là DSP bị đốt chết trong hệ thống nên khó có
khả năng cập nhật, hệ thống xử lý phụ thuộc nhiều vào DSP này, hạn chế về khả
năng nâng cấp ứng dụng. ta không thể mong muốn thay đổi một chip xử lý âm
thanh đã được hổ trợ cứng thay vào đó bằng một chip xử lý ảnh mà board không hổ
trợ.
30
b) Tích h p m m
ợ ề
Một DSP tích hợp mềm thật chất là một IP viết bằng ngôn ngữ HDL và công cụ
thiết kế sẽ triển khai IP đó xuống FPGA. Với Altera đó chính là Nios, Nios II, còn
trong Xilinx là Picoblaze, Microblaze. Hình 1.22 chỉ ra một DSP nằm trong FPGA,
đồng nghĩa với DSP là một IPcore được nhúng trên FPGA.
Hình 1. 22 kh i tích h p m m
Sơ đồ ố ợ ề
Với một DSP được tích hợp mềm, hạn chế lớn nhất của nó chính là tiêu tốn
khá nhiều tài nguyên FPGA, nếu có một hệ thống DSP phức tạp thì vấn đề
chúng ta
sử dụng
tài nguyên cần phải được tính toán hợp lý sao cho tối ưu nhất cho ứng dụng đó. Để
hổ trợ cho việc thực hiện các ứng dụng lớn được thuận tiện hơn, đỡ tốn thời gian
viết nhân hơn, các hãng cũng cung cấp một số IP core về xử lý tín hiệu số, đó là các
thự viện, ví dụ như: Xilinx FFT Library, Polyphase DFT, FIR Filters,….
Tất nhiên việc tích hợp mềm cũng có ưu điểm nổi trội của nó, đó chính là
khả năng cập nhật. Đây sẽ là lựa chọn tốt cho các ứng dụng mà thường có sự thay
đổi nhanh trong thuật toán xử lý (hoặc nâng cấp thường xuyên). Bây giờ, nếu chúng
ta có một ứng dụng cần thử nghiệm, với một DSP tích hợp mềm, hiện chúng ta đang
làm DSP này, nhưng sau này chúng ta cảm thấy DSP khác hiệu quả hơn và muốn
thay đổi nó, việc cấu hình lại FPGA sẽ cho phép thực hiện điều đó một
chúng ta
cách dễ dàng.
Ví dụ chúng ta thiết kế một hệ thống cửa nhận diện chủ nhà và tự động mở
khoá khi xác định đúng là chủ. dùng DSP xử lý ảnh để nhận diện được đối
Chúng ta
tượng, một thiết kế DSP mềm được sử dụng và phần FPGA làm công việc điều
31
khiển. Nếu chỉ có vậy thì những hệ thống trước kia vẫn có thể làm được, nhưng nếu
chúng ta muốn thiết kế thêm tính năng điều khiển cửa tự khoá bằng giọng nói thì
lúc này v chúng ta
ới thiết kế truyền thống, phải thay đổi hầu như toàn bộ phần cứng
cực kỳ gian nan, nhưng với Kết hợp FPGA và DSP tích hợp mềm việc nạp thêm
thì
một IPcore DSP xử lý tiếng nói và thêm một số module điều khiển vào FPGA rất dễ
dàng, do vậy thiết kế tích hợp này tỏ ra vượt trội hơn hẳn.
1.3.4.4. So sánh FPGA/DSP v i ASIC/DSP
ớ
Một công nghệ đưa ra sự lựa chọn cạnh trang với DSP FPGA, đó chính là
DSP ASIC, hay còn gọi là DSP chuyên dụng. Mọi hoạt động xử lý của ASIC cũng
giống như FPGA, hoàn toàn chỉ thực hiện trên phần cứng vì vậy tốc độ xử lý tăng
đáng kể so với CPU. Các Chip chuyên dụng có tốc độ rất nhanh, nhanh hơn cả
FPGA, vì thực chất FPGA chính là một ASIC lập trình được. Chưa kể đến giá thành
của DSP ASIC rẻ hơn DSP FPGA khá nhiều.
Công nghệ ASIC gần như tuyệt vời về mọi mặt, tuy nhiên công nghệ không
bao giờ hoàn hảo tuyệt đối. Nhược điểm lớn nhất của ASIC đó chính là thiếu tính đa
dụng. ASIC như nhiều chip truyền thống khác, đó là một chip được chế tạo cứng
hoàn toàn, chỉ thực hiện được một nhiệm vụ duy nhất với mỗi chip, ta không thể tuỳ
biến được. Ngược lại, FPGA làm rất tốt chuyện này, với khả năng cấu hình lại phần
cứng đã làm cho FPGA trở nên hấp dẫn hơn ASIC ở một số ứng dụng cụ thể.
Ví dụ như một hệ thống điều khiển nhà thông minh, với công nghệ ASIC,
thật khó tìm ra một Chip đáp ứng yêu cầu xử lý nhiều loại DSP cùng một lúc để
điều khiển tất cả các thiết bị trong gia đình. Nếu việc thêm một thiết bị
có đi nữa, thì
mới vào ngôi nhà, cũng sẽ kéo theo việc hay đổi hệ thống tốn nhiều chi phí và rất
mất thời gian. Giải pháp hiệu quả hơn được nghĩ đến, đó là , với nhiều
FPGA/DSP
DSP tích hợp vào FPGA và một hệ thống điều khiển được cấu hình thành phần
cứng với khả năng nâng cấp bất kỳ khi nào người dùng muốn, việc thêm vào các
thiết bị mới vào ngôi nhà trở nên đơn giản hơn rất nhiều.
Thêm một lợi thế của FPGA so với ASIC. xét trong các trường hợp
Chúng ta
nghiên cứu khoa học hoặc quân sự chẳng hạn, ASIC không còn là sự lựa chọn ưu
32
tiên nữa. Đơn giản là vì đòi hỏi về một giải thuật mới hoặc một cải tiến đột phá mới
sẽ loại bỏ suy nghĩ về ASIC, vì họ cần sự mới mẻ hoàn toàn, và họ sẽ nhờ đến một
sự sáng tạo trên FPGA. Dù ASIC đa dạng đến đâu thì cũng sẽ có giới hạn, còn
FPGA tuy là chip trắng, nhưng có khả năng biến chuyển vô cùng.
1.3.4.5. Đánh giá
Ưu điểm:
Kết hợp được khả năng của cả FPGA và DSP tạo nên một hệ thống ưu thế về
tốc độ xử lý so với các thiết kế trên các vi xử lý thông thường. Các thiết kế thông
thường, chẳng hạn như việc viết mã xử lý trên các vi xử lý, công việc này hạn chế
bởi bản thân chip không hổ trợ bất cứ DSP nào để tối ưu hoá tốc độ.
Tiết kiệm về hao phí thời gian, công suất khi thiết kế ra hệ thống có sử dụng
DSP. Với những DSP tích hợp sẵn, ta không phải thực hiện thao tác kết nối một bộ
DSP ngoài vào hệ thống như trước đây, hoặc viết một chương trình xử lý trên chip
thông thường, mà DSP đã trở thành một phần trong hệ thống.
Với khả năng cấu hình lại, chúng rất linh động trong thiết kế. Khá tiện lợi
cho nghiên cứu phát triển ứng dụng.
Nhược điểm:
Vì đặc điểm của FPGA là tái cấu hình lại mỗi khi reset, dù rằng hiện đã có
một số FPGA hổ trợ tự cấu hình, nhưng đây vẫn là một nhược điểm đáng nói của
hướng phát triển DSP-FPGA.
Tính linh động trong thiết kế làm cho DSP FPGA trở nên khó tiếp cận với
-
người dùng bình thường. Chúng chỉ phù hợp với giới nghiên cứu, dân kỹ thuật.
Vì linh động nên cũng sinh ra mộ ạ ế, đó là không chuyên dụ
t h n ch ng.
Người thiết kế phải am hiểu về ngôn ngữ HDL cũng như nhiều kiến thức
khác, mới có thể thực hiện được.
Giá thành khá cao, nên s p c n DSP- n ch ph n nào.
ự tiế ậ FPGA cũng hạ ế ầ
33
1.2. nh bài toán
Các giải pháp và xác đị
1.2.1. a ch n gi i pháp
Phân tích và lự ọ ả
a) o sát và phân tích bài toán
Khả
Hiện nay trong th c t thì vi c u khi t nhi
ự ế ệ điề ển động cơ có rấ ều phương pháp,
tùy vào m d ng, tùy vào yêu c i ta có nh u
ục đích sử ụ ầu mà ngườ ững phương pháp điề
khi p v i yêu c u công ngh a s n
ển động cơ sao cho phù hợ ớ ầ ệ cũng như tối ưu hóa củ ả
ph m. Trên th ng hi t nhi u c u khi c thi
ẩ ị trườ ện nay cũng có rấ ề ác modul điề ển đượ ết
k s n, chuyên bi t phù h p cho t ng s n ph m riêng.
ế ẵ ệ ợ ừ ả ẩ
D a vào nguyên lý ho t k
ự ạt động và các đặc tính động cơ, người ta đã thiế ế
s n các m ch s , các IC chuyên d u khi t h p v i các modul
ẵ ạ ố ụng để điề ển động cơ, kế ợ ớ
khác để ệ ả ẩ ớ
hoàn thi n s n ph m. V i các IC chuyên d i ta thi t k các
ụng thì ngườ ế ế
m u khi chính xác cao. Tuy nhiên ngoài
ạch điề ển động cơ nhanh gọn, đơn giản, độ
vi c s d ng các vi m ch chuyên d u khi
ệ ử ụ ạ ụng để điề ển động cơ, chúng ta hoàn toàn
có th s d ng các Bo m ch phát tri n trên n n t l u
ể ử ụ ạ ể ề ảng FPGA để ập trình và điề
khi u và m d u này làm cho chúng ta
ển động cơ tùy theo yêu cầ ục đích sử ụng. Điề
chủ động hơn trong việ ế ế ệ ố ế ế ầ ề ầ ứ
c thi t k h th ng và thi t k các ph n m n, ph n c ng phù
h p. V i vi c s d ng bo m u khi thì có th tích h p thêm
ợ ớ ệ ử ụ ạch SoC để điề ển động cơ ể ợ
nhi u ch ng ng d ng c mà không c n ph i thêm nhi
ề ức năng khác cho từ ứ ụ ụ thể ầ ả ều
modul khác để ự ệ ứ
th c hi n ch c năng khác.
V i m t bo m ch SoC thì ngoài vi u khi ng
ớ ộ ạ ệc dùng nó làm modul điề ển độ cơ
chúng ta hoàn toàn có th u k n modul khác cùng ho ng song
ể dùng nó đề điề hiể ạt độ
song mà không c n t n thêm nhi c p cho bo m ch
ầ ố ều modul khác. Năng lượng để ấ ạ
SoC cũng rấ ỏ ả năng xử lý đạ ốc độ ả ết đượ ề ầ
t nh , kh t t nhanh, gi i quy c nhi u yêu c u
của bài toán.
b) L a ch i pháp
ự ọn giả
- i pháp công ngh : Qua phân tích
Giả ệ ở trên chúng tôi đã đưa ra giải pháp điều
khi d ng bo m ch SoC thông qua vi c s d ng các chu i xung PWM
ển động cơ sử ụ ạ ệ ử ụ ỗ
đưa đến modul điề ển động cơ để tăng công xuấ ủa xung và đưa đế ộ
u khi t c n các cu n
dây của động cơ để động cơ quay theo các yêu cầ toán trướ ấ ả ệ
u tính c. T t c các l nh
34
thực thi đượ ử ừ ớ ạch SoC sau đó bo mạ ực thi và điề
c g i t máy tính t i bo m ch th u
khi n.
ể
- i pháp thi t k : s d ng bo m t n các
Giả ế ế ử ụ ạch SoC để ạo xung PWM đưa đế
cuộn dây v i t n s h quay v i t h p lý, và theo yêu c
ớ ầ ố ợp lý thì động cơ sẽ ớ ốc độ ợ ầu
thi th
ế ế. Qua đó, ta xác định đượ ốc độ
t k c t ự ế ủa động cơ. Chúng ta có thể điề
c t c u
khi n tho i thông minh b ng cách xây d ng ph
ển động cơ qua Máy tính hoặc điệ ạ ằ ự ần
m m k t n i v i SoC qua m ng ho g i l nh yêu c
ề ế ố ớ ạ ặc qua bluetooth để ử ệ ầu động cơ
quay theo t ng khác nhau.
ố ộ
c đ và hướ
1.2.2. Kết luận chương
a) Các yêu c u bài toán
ầ
Yêu cầu đặt ra cho bài toán là:
- c thi b u khi n chuy ng s d ng Kit SoC ng d ng n n
Thự ộ điề ể ển động đối tượ ử ụ ứ ụ ề
t ng FPGA c a Altera xây d ng mô hình g p xe robot.
ả ủ để ự ải lậ
- m th c thi trên mô hình xe robot gi l p
Kiể ử và đánh giá kêt quả thự ả ậ
b) n c tài
Giới hạ ủa đề
Bài toán ch d ng l i robot mô hình nh , không ch ng l
ỉ ừ ạ ỏ ịu được tải trọ ớn, chưa
đầy đủ ện điệ ử để ế ế ỉ ầ
các linh ki n t thi t k hoàn ch nh theo yêu c u bài toán. Và các
tính toán ở đây chỉ ấ ệm chưa đả ảo đượ
mang tính ch t thí nghi m b c tính chính xác
cao.
35
CHƯƠNG II: THIẾT KẾ HỆ THỐNG
2.1. Sơ đồ ố ổ ể ủ ệ ố
kh i t ng th c a h th ng
Hình 2. 1 c u chúc c a h
Sơ đồ ấ ủ ệ thống
H c xây d 4 module l n: g m module m u
ệ thống đượ ựng trên cơ sở ớ ồ ạch điề
khi e ph n c ng c a bo m u khi n trung tâm, ph n m
ển động cơ, modul ầ ứ ủ ạch điề ể ầ ềm
ch cu
ạy trên linux arm để điề ể ự ế ớ ầ ứ
u khi n tr c ti p t i ph n c ng, module ố ầ
i cùng là ph n
m m xây d ng trên Máy tính PC ho n tho
ề ự ặc trên điệ ạ ể
i đ tương tác vớ ờ
i ngư i dùng.
2.2. c t h
Sơ đồ đặ ả ệ thống
H ng ch y c th u khi n. D
ệ thố ủ ếu đượ ực thi trên module điề ể ự án này cũng chủ
y u l p trình FPGA và l p trình code C trên module này. Module này g m 2 ph
ế ậ ậ ồ ần
chính đó là thiế ế ầ ứ ế ế ầ ề ự
t k ph n c ng và thi t k ph n m m. D án robot có các file chính
là lo i FPGA Bitstream: soc_system.rbf y trên Linux.
ạ và chương trình smart_car chạ
Chức năng chính củ ấ ộ điề ển PWM để điề
a FPGA Bitstream là cung c p b u khi u
khi t chi u c c ch y trên
ển quay 2 động cơ mộ ề ủa robot. Chương trình smart_car đượ ạ
Linux nhúng trong Altera SoC. Ch u khi n
ức năng chính của chương trình này là điề ể
thông qua yêu c u c i dùng t a ch c liên k t t ph n c ng
ầ ủa ngườ ới các thanh đị ỉ đượ ế ừ ầ ứ
t a robot.
ới các chức năng làm quay động cơ củ
36
Hình 2. 2 i h
Sơ đồ khố ệ thống
Trong hình 2.2 th hi n r t rõ các ch t c a h ng. T
ể ệ ấ ức năng và liên kế ủ ệ thố rong
đó phần HPS/ARM là nơi hệ điều hành linux được nhúng trên đó, từ đó ngườ ế
i thi t
k có th l p trình các ng d c thi các l u khi n các ch
ế ể ậ ứ ụng để thự ệnh điề ể ức năng thiết
k t ph n c ng. Các ph n c ng này c thi t k và th c thi trên ph
ế ừ ầ ứ ầ ứ đượ ế ế ự ần
FPGA/QSYS và thông qua b u khi u khi
ộ điề ển PWM để điề ển động cơ. Đây chính
là phiên b n r t nhi t tr i s d ng công ngh k t h p gi a FPGA
ả ấ ều tính năng vượ ộ ử ụ ệ ế ợ ữ
v n 1.1.4.
ới DSP như đã trình bày trong chương I, phầ
37
2.3. nguyên odule c a h
Sơ đồ lý và các m ủ ệ thống
2.3.1. nguyên lý t ng thê
Sơ đồ ổ
Hình 2. 3 thi t k n c u khi
Sơ đồ ế ế phầ ứ ề
ng đi ển hệ thống
Hình 2.3 th i c a d án Quartus FPGA c a d
ể hiện sơ đồ khố ủ ự ủ ự án điều khiển
robot dò đường. Dự án này đượ ạ
c t o trong Qsys. B u khi c thi t k
ộ điề ển PWM đượ ế ế
trong Qsys đượ ử ụng để ề
c s d đi u khi a robot. B u khi
ển 2 động cơ củ ộ điề ển PIO cho
LED[6:0] và KEY[1:0] trong Qsys đượ ồ
c bao g m và k t n i v i HPS. Vì v y mà
ế ố ớ ậ
HPS/ARM có th truy c
ể ập các thiế ị
t b ngoại vi. LED[7] được k t n
ế ối để đếm như một
xung clock. Khi FPGA đượ ấ
c c u hình với dự án Quartus này thì đèn LED[7] sẽ sáng.
2.3.2. Module u khi n
điề ể động cơ
u khi m v chuy i tín hi u khi n t kh
Khối điề ển động cơ có nhiệ ụ ển đổ ệu điề ể ừ ối
điề ể ệu điện áp để thay đổ ốc độ ề ủ
u khi n trung tâm thành tín hi i t và chi u quay c a
động cơ. Trên thự ế ấ ề
c t , r t nhi u mạch điề ển động cơ có thể đả ậ ả
u khi m nh n c hai
nhi m v ch c u H dùng BJT ho c FET, m ch 1 FET + 1 relay, IC 298,
ệ ụ này như: mạ ầ ặ ạ
IC TD18200… Tùy vào ứ ụ ụ ể ớ ị
ng d ng c th , v i các giá tr dòng áp theo yêu c u mà
ầ
l a ch n m u khi p m ch nguyên lý c a kh
ự ọ ạch điề ển động cơ cho phù hợ . Sơ đồ ạ ủ ối
điề ển động cơ đượ ế ế như hình 2.4
u khi c thi t k
38
Hình 2. 4 M u khi n motor
ạch điề ể
2.3.3. u khi
Module điề ển hệ thống
Các thi t b SoC FPGA có c nhau, vì v y trong ph n này s
ế ị ấu trúc tương tự ậ ầ ẽ
mô t c v ki n trúc c a thi t b Altera Cyclone V SoC. Thi t b SoC bao g
ả ụ thể ề ế ủ ế ị ế ị ồm
hai ph n riêng bi t, m t là b x lý c ng (HPS) lõi kép ARM Cortex A9 và hai là
ầ ệ ộ ộ ử ứ
ph n FPGA. B x lý HPS tích h p nhi u lo i thi t b ngo i vi cho phép gi m kích
ầ ộ ử ợ ề ạ ế ị ạ ả
thư t đ
ớ ạch và tăng hiệu năng hoạ
c bo m ộ ủ ệ ố Trong đó:
ng c a h th ng.
FPGA:
 Altera Cyclone® V SE 5CSEMA4U23C6N
Thiết bị
 c u hình c ng Serial EPCS128
Thiết vị ấ ổ –
C ng USB-Blaster II onboard n ; JTAG Mode
ổ để ạp chương trình
2 n
Nút ấ
39
4 t
Công tắc gạ
8 LEDs màu xanh
đèn
Ba ngu n xung clock 50MHz t b t o xung
ồ ừ ộ ạ clock
Hai bộ ắ
chân c m GPIO 40-pin expansion header
M t Arduino expansion header (Uno R3 compatibility), có th k i
ộ ể ết nối vớ
Arduino shields.
M chân c m 10-pin Analog input expansion header. (chia s v i Arduino
ột bộ ắ ẻ ớ
Analog input)
B chuy
ộ ển đổ ế ớ
i A/D, 4-wire SPI giao ti p v i FPGA
HPS (Hard Processor System lý c
, H ng x
ệ thố ử ứng):
B vi x lý 925MHz Dual-core ARM Cortex-
ộ ử A9
1GB DDR3 SDRAM (32-bit data bus)
1 Gigabit Ethernet PHY V i b k t n i RJ45
ớ ộ ế ố
C ng USB OTG, B k i USB Micro-
ổ ộ ết nố AB
Chân c nh
ắm thẻ ớ Micro SD card
Accelerometer (I2C interface + interrupt)
C ng k t n i UART to USB, USB Mini-B
ổ ế ố
Nút reset nóng và nút reset ngu i
ộ
M i s d ng và m u khi n LED d ng
ột nút cho ngườ ử ụ ột nút điề ể cho người sử ụ
Giao tiếp chân căm LTC 2x7
T t n p theo thi
ất cả các kế ối đã được thiết lậ ết bị Cyclone V SoC FPGA để ấ
cung c p
t n d i dùng. i dùng có th c phù h p
ố ệ
i đa các ti ụng cho ngườ Ngườ ể ấu hình FPGA để ợ
v c a mình.
ới thiết kế ủ
Sơ đồ ố Nano đượ ả ồ ế ị
kh i Kit DE0- c mô t trong hình 2.5 bao g m các thi t b sau:
FPGA Device
Cyclone V SoC 5CSEMA4U23C6N Device
Dual-core ARM Cortex-A9 (HPS)
40K programmable logic elements
2,460 Kbits embedded memory
5 fractional PLLs
2 hard memory controllers
40
Configuration and Debug
Serial configuration device EPCS128 on FPGA
–
Onboard USB-Blaster II (Mini-B USB connector)
Hình 2. i c
5 Sơ đồ khố ủa Kit DE0 Nano
Memory Device (Thi b )
ết bị ộ nhớ
1GB (2x256Mx16) DDR3 SDRAM HPS
trên
M t khe c m th Micro SD
ộ ắ ẻ nhớ trên HPS
Communication t n
(Kế ối)
One USB 2.0 OTG (ULPI interface with USB Micro-AB connector)
UART to USB (USB Mini-B connector)
10/100/1000 Ethernet
Connectors k
(Bộ ết nối)
Two 40-pin expansion headers
Arduino expansion header
One 10-pin ADC input header
One LTC connector (one Serial Peripheral Interface (SPI) Master ,one I2C and
one GPIO interface )
41
ADC
12-Bit Resolution, 500Ksps Sampling Rate. SPI Interface.
8-Channel Analog Input. Input Range : 0V ~ 4.096V.
Switches, Buttons, and Indicators (Công tác, nút nhấn)
3 user Keys (FPGA x2, HPS x1)
4 user switches (FPGA x4)
9 user LEDs (FPGA x8, HPS x 1)
2 HPS reset buttons (HPS_RESET_n and HPS_WARM_RST_n)
Sensors m bi
(Cả ến)
G-Sensor on HPS
Power (Nguồn)
5V DC input
Trên Board này ngườ ể ế ế ầ ứ ục đích yêu cầ ủ ự
i dùng có th thi t k ph n c ng theo m u c a d
án trên ph n FPGA, và l p trình ph n m
ầ ậ ầ ề ệ điề ạ
m trên h u hành Linux ch y trên chip
ARM c u khi n các thành ph n FPGA theo thi t k thông qua các k
ủa Board điề ể ầ ế ế ết
n ng.
ối của hệ thố
2.3.4. Module dò đường
Nguyên lý ho ng c a m ch c m bi n thu phát quang d a trên s h p th
ạt độ ủ ạ ả ế ự ự ấ ụ
và ph n x ánh sáng c a các màu s c khác nhau c a n ch màu
ả ạ ủ ắ ủ ền và đường đi. Vạ
trắ ả năng phả ạ ốt hơn vạch màu đen. Khi đó, q ở ẽ
ng có kh n x ánh sáng t uang tr s
nh c các tia sáng ph n x l n làm cho giá tr n tr gi m khá
ận đượ ả ạ có cường độ ớ ị điệ ở ả
nhi u, d n áp trên quang tr là Vmin s c l i, v
ề ẫn đến điệ ở ẽ thấp. Ngượ ạ ạch màu đen có
kh n x ch màu tr
ả năng phả ạ ánh sáng kém hơn vạ ắng. Khi đó, quang trở nhận được
các tia sáng ph n x p làm cho giá tr n tr c a quang tr gi
ả ạ có cường độ thấ ị điệ ở ủ ở ảm
không đáng kể ẫn đến điệ ở ẽ
, d n áp trên quang tr lúc này là Vmax s cao (hình 2.6).
Hình 2.6 hi m ch nguyên lý c m bi n.
thể ện sơ đồ ạ ủa cả ế
(1)
Điệ ế ở ref, đượ ức (1), dùng để ớ
n áp trên bi n tr V c tính theo công th so sánh v i
điệ ừ ở để ển đổ ức logic 0 tương ứ ớ ặ
n áp t quang tr chuy i thành các m ng v i 0Vdc ho c
m ng v u khi n có th
ức logic 1 tương ứ ới 5Vdc mà vi điề ể ể hiểu được.
42
Hình 2. 6 m ch modul
Sơ đồ ạ e dò đường
2.4. L a ch u hình h
ự ọn cấ ệ thống
Để ự ọn đượ ấ ệ ố ợ ớ ầ
l a ch c c u hình h th ng phù h p v i yêu c u bài toán, chúng tôi
đã tìm hiề ệ thông như trong phần 2.3 đã phân tích, và sau đó đưa ra các lự
u các h a
chọ ợp để ế
n phù h thi t kế thành mô hình như trong hình 2.7 dưới đây:
Hình 2. 7 Mô hình hệ thống
43
H ng g m có các kh 2.7 c phân làm 3 kh i chính:
ệ thố ồ ối như trong hình đượ ố
kh u khi n h ng; Kh u khi . Và nhi u các
ối điề ể ệ thố ối điề ển động cơ; khối dò đường ề
kh i ngu n, kh y nhiên trong bài lu
ối khác như khố ồ ối động cơ. Tu ận văn này chúng
tôi ch u 3 kh i chính c bi u khi
ỉ đi sâu và tìm hiề ố , và đặ ệt đi sâu phân tích khối điề ển
h ng, vì t t c t k , l p trình FPGA và l p trình ph n m
ệ thố ấ ả nhưng thao tác thiế ế ậ ậ ầ ềm
b ng ngôn ng u n m trên kh u khi n. u khi n trung tâm này là
ằ ữ C đề ằ ối điề ể Khối điề ể
m t Kit DE0-Nano s t trong ph n 2.4.1
ộ ẽ được trình bày chi tiế ầ
2.4.1. Khố ề
i đi u khiển hệ thống
Hình 2. Kh
8 ối điề ể
u khi n Kit DE0 Nano
Kh Nano
ối điề ể ệ ố ộ
u khi n h th ng là m t board DE0- -SoC. Nó s d ng chip
ử ụ
ARM/HPS ch y h u hành linux. H c c u hình sao cho kh ng t
ạ ệ điề ệ thống đượ ấ ởi độ ừ
thẻ ớ ệ điề
nh MicroSD trên DE0- -SoC. H
Nano u hành linux và các file FPGA
bitstream được lưu trữ ẻ ớ
trên th nh MicroSD (file soc_system.rbf; socfpga.dtb; u-
boot.scr; zImage) x boot v i MSEL[4:0]=00000 thì bootloader s
. Để chế độ Linu ớ ẽ
đượ ấ ở ộ ớ
c c u hình FPGA khi kh i đ ng v i file soc_system.rbf.
44
Trong c u t o kh i hình 2.8, chúng ta th y có thành ph n chính: thành ph
ấ ạ ố ấ ầ ần
FPGA được đánh dấu và chú thích màu xanh lá cây, các thành ph n này giao ti p
ầ ế
tr th th
ự ế ầ ủ ệ
c ti p và các thành ph n khác c a h ống và đã đượ ế ế ập trình để
c thi t k l ực
thi các nhi m v theo yêu c u bài toán. Thành ph u và chú
ệ ụ ầ ần HPS được đánh dấ
thích màu Cam, các thành phần này đượ ế ế ứ ố định để ế ố ữ
c thi t k c ng c k t n i gi a các
thi th th
ế ế ớ ệ
t k FPGA v i h ố ầ ệ
ng (System). Thành ph n h ống (System) được đánh
d c bi n g m có m t lõi x tính
ấu và chú thích màu xanh nướ ể ồ ộ ử lý ARM trung tâm để
toán và xử lý bài toán.
2.4.2. Khố ề
i đi n khiể ộng cơ
n đ
Trong d án này, tác gi s d t k và ch t o cho m
ự ả ử ụng IC L298 để thiế ế ế ạ ạch
điề ển động cơ. IC này đượ ợ ạ ầ ể ạt độ ở điệ
u khi c tích h p 2 m ch c u H, có th ho ng n áp
t nh m c t ng c a, L298 có kh
ối đa 46Vdc và dòng điện đị ứ ổ ộng là 5A. Hơn nữ ả năng
đả ều quay và thay đổ ốc độ ủa động cơ mộ ễ ằ ử
o chi i t quay c t cách d dàng b ng cách s
d g pháp PWM. và l
ụng phươn L298 được thiết kế ắp đặt như hình 2.9
Hình 2. Kh
9 ối điề ể ộng cơ L298
u khi n đ
45
Trên hình 2.9: Các chân c c n i v i dây
ắm đầu vào INA, INB, INC, IND đượ ố ớ
d n sang chân c m GPIO c a SoCKit kh u khi n h ng. Các chân OUTA,
ẫ ắ ủ ối điề ể ệ thố
OUTB, OUTC, OUTD t ng c
ừ ặp được nối với 2 động cơ.
2.4.3. Khối dò đường
Khối dò đườ ử ụ ạch dò đườ
ng s d ng m ng New Way v n áp vào 5 V và
ới điệ
dòng điệ ử ụng IC 74HC14D để ử ủa 5 đèn cả ế
n 100mA, s d x lý các thông tin c m bi n
màu s c và 1 c u ra là các tín hi u s hi n k t qu
ắ ảm biển gần đưa ra đầ ệ ố 0 và 1 để thể ệ ế ả
c a c m bi m bi n màu s c tr v giá tr 1 là lúc g p d
ủ ả ến. Khi các đèn cả ế ắ ả ề ị ặ ải màu đen
c ng. hi
ủa vạch chỉ đườ Được thể ện như hình 2.10
Hình 2. Kh
10 ối dò đường
Trên hình 2.10: Các u ra c a c m bi n t - c n i v i dây
chân đầ ủ ả ế ừ s1 > s7 đượ ố ớ
d n n n các chân c m GPIO c a SoCkit bên kh u khi n h ng. T
ẫ ối đế ắ ủ ối điề ể ệ thố rong đó
chân s1- 5 là chân c a các c m bi n h ng ngo ng v U1
>s ủ ả ế ồ ại tương ứ ới các đèn LED từ
– ủ ả ế ạ ầ
, còn s6 là chân c
U5 a c m bi n va ch m g n.
46
CHƯƠNG III: XÂY DỰNG HỆ THỐNG
3.1. Xây d ng ph c
ự ần ứng
3.1.1. Dự án Quartus cơ bản
D án Quartus my_first_hps-fpga_base là có s c DE0- -
ự ẵn trong thư mụ Nano
SoC trong đĩa CD đi kèm với Kit:
CD-Rom: DemonstrationSOC_FPGAmy_first_hps_fpga_base
D án quartus này bao g m t t c các chân khai báo c n thi t cho c HPS và
ự ồ ấ ả ầ ế ả
FPGA. Chú ý chân khai báo c a HPS c n ph i ch rõ t i tr c ti p các chân và
ủ ầ ả ỉ ớ ự ế chân
IO chu n. D m các h
ẩ ự án này cũng bao gồ ệ thống Qsys cơ bả ầ
n và các thành ph n
c a HPS. Các thành ph n c c thi k và c u hình chu n trong thi t k
ủ ầ ủa HPS đã đượ ết ế ấ ẩ ế ế
ph n c ng c a HPS DE0- -SoC.
ầ ứ ủ Nano
Hình 3. 1 Thành ph n HPS hps_0 trong h ng Qsys
ầ ệ thố
Để ể ể ở ệ ống Qsys trong khi đang mở ự
phát tri n chúng ta có th m h th d án
Quartus, và nhấ ọn vào menu “Tools >Qsys” trong Quartus II. Khi cử ổ
n ch - a s Qsys
xu t hi n, nó s h i dùng ch n m t file h ng h p này
ấ ệ ẽ ỏi ngườ ọ ộ ệ thống Qsys. Trong trườ ợ
chọn file Qsys là “soc_system.qsys”. Hình 3.1 thể ệ ộ ủ ệ ố
hi n n i dung c a file h th ng
Qsys, nó ch n HPS hps_0.
ứa các thành phầ
47
Hình 3.2 minh h a các c ng ligthweight HPS- -FPGA AXI Master c
ọ ổ to ủa
thành ph i phát tri n có th k t n i c ng này t i m i c ng memory-
ần HPS. Ngườ ể ể ế ố ổ ớ ọ ổ
mapped slave c a các thành ph i phát tri n s truy xu HPS/ARM.
ủ ần mà ngườ ể ẽ ất từ
Hình 3. 2 C ng AXI a thành ph
ổ Master củ ần HPS
3.1.2. n trên n n
Phát triể ền tảng dự án cơ bả
Phầ ẽ ọ ứ ộ ầ
n này s minh h a cách th c thêm vào m t thành ph n PIO trong Qsys,
và làm th k t n i thành ph n PIO này v i thành ph n HPS. Thành ph n PIO
ế nào để ế ố ầ ớ ầ ầ
này s d u khi t n i v u tiên hãy sao chép d
ử ụng để điề ển đèn LED kế ố ới FPGA. Đầ ự án
Quartus my_first_hps_fpga_base tới thư mục trên máy tính. M d án và m file
ở ự ở
Qsys “soc_system.qsys”.
Trong h n c a công c Qsys, nh n t n tìm ki m s
ộp thư việ ủ ụ ậ ừ khóa ‘pio’ nhấ ế ẽ
xu t hi n c a s t hi n, ch n nó và sau
ấ ệ ử ổ như hình 3.3. Khi “PIO (Parallel I/O)” xuấ ệ ọ
đó nhấn vào “Add …” để ầ ệ ố
thêm thành ph n PIO vào h th ng Qsys.
48
Hình 3. 3 Tìm và thêm thành ph n PIO
ầ
Khi c a s PIO xu t hi n, chúng ta c r
ủ ổ ấ ệ ần thay đổi độ ộng Width là 8, và đảm
b o ch c ch n r c l a ch
ả ắ ắ ằng “Output” trong thẻ Direction đượ ự ọn, và thay đổ ị
i giá tr
trong Output Port Reset Value thành 0xff như trong hình 3.4
49
Hình 3. 4 C u hình thành ph
ấ ần PIO
Khi thành ph c thêm vào h ng, c n thi t ph i k t n i c ng
ần PIO đượ ệ thố ầ ế ả ế ố ổ
h2f_lw_axi_master AXI master v i c ng s1 slave c a thành ph
ớ ổ ủ ần PIO như hình
3.5. Hãy thay đổ ần PIO thành pio_led, thay đổ
i tên thành ph i Clock Input thành
clk_0, xu t tín hi
ấ ệu đường dân Conduit như là pio_led_external_connection, và
k t n u vào Reset Input t i h a ch Base c a thành ph
ế ối đầ ớ ệ thống reset. Chú ý, đị ỉ ủ ần
PIO pio_led là c c k quan tr ng cho vi c l p trình ph n m m nhúng sau này.
ự ỳ ọ ệ ậ ầ ề
Chương trình ARM sẽ ấ ần thông qua đị ỉ Base. Thườ
truy xu t vào thành ph a ch ng
thì chúng ta s t o ra m t file header có tên hps_0.h, file này có ch a ch
ẽ ạ ộ ứa các đị ỉ
Base c a các thành ph n trong thi t k FPGA, t i phát tri n ph n m m có
ủ ầ ế ế ừ đó ngườ ể ầ ề
thể ử ụng đị ỉ đó để ấ ổ ự ện đọ ị
s d a ch truy xu t vào các c ng và th c hi c ghi các giá tr
vào thanh ghi đó.
50
Hình 3. 5 T o k i gi a HPS và thành ph
ạ ết nố ữ ần PIO
Trong công cụ Qsys, nhấn vào menu Generate->HDL Example…“có thể tìm
tín hiệu giao diện mới pio_led_external_connection_export cho vi c thêm thành ph
ệ ần
PIO pio_led như trong hình 3.6. Người phát tri n có th nh
ể ể ấn “Copy” để sao chép nội
dung t i b
ớ ộ nhớ đệm, sau đó dán vào tín hiệu pio_led_external_connection_export
Quartus top và k t n
ế ối nó với cổng LEDR như hình 3.7. trước khi đóng công cụ Qsys,
hãy nhớ nhấn vào menu “Generate->Generate…” để ạ
t o ra ngu n mã code cho h
ồ ệ
thống.
51
Hình 3. 6 giao di n pio_led c a h
ệ ủ ệ thống
Hình 3. 7 u hóa .pio_led_external_connection_export trong u0
ban đầ
soc_system
Cách thêm m t thành ph ng s n t code HDL: Hình 3.8 và 3.9 là
ộ ần đã xây dự ẵ ừ
các thành ph n trong Qys c a h ng, Hình 3.10 cách th c thêm vào 1 thành ph
ầ ủ ệ thố ứ ần
m a Qys t m t file HDL thi t k t
ới củ ừ ộ ế ế ừ người dùng.
52
Hình 3. 8 các thành ph n trong Qys c a h
ần cơ bả ủ ệ thống
Hình 3. 9 Các thành ph n trong Qys c a h
ầ ủ ệ thống
53
Hình 3. 10 Thêm vào m t thành ph n trong Qys
ộ ầ
3.1.3. Biên d ch và ch
ị ạy chương trình
Các thành phần khác chúng ta cũng xây dựng các bướ ột cách tương tự
c m
như các bướ ế ế pio_led như các bướ
c thi t k c trên, sau khi xây dựng xong chương
trình s t o ra m t file *top.v, t file này chúng ta có th vi l p trình
ẽ ạ ộ ừ ể ết code HDL để ậ
theo ý đồ ủ ự
c a d án.
Nội dung file HDL như sau:
`define ENABLE_HPS
module DE0_Nano_SoC_golden_top(
///////// ADC /////////
output ADC_CONVST,
output ADC_SCK,
output ADC_SDI,
input ADC_SDO,
///////// ARDUINO /////////
inout [15:0] ARDUINO_IO,
inout ARDUINO_RESET_N,
54
///////// FPGA /////////
input FPGA_CLK1_50,
input FPGA_CLK2_50,
input FPGA_CLK3_50,
///////// GPIO /////////
inout [35:0] GPIO_0,
output [35:0] GPIO_1,
`ifdef ENABLE_HPS
///////// HPS /////////
inout HPS_CONV_USB_N,
output [14:0] HPS_DDR3_ADDR,
output [2:0] HPS_DDR3_BA,
output HPS_DDR3_CAS_N,
output HPS_DDR3_CKE,
output HPS_DDR3_CK_N,
output HPS_DDR3_CK_P,
output HPS_DDR3_CS_N,
output [3:0] HPS_DDR3_DM,
inout [31:0] HPS_DDR3_DQ,
inout [3:0] HPS_DDR3_DQS_N,
inout [3:0] HPS_DDR3_DQS_P,
output HPS_DDR3_ODT,
output HPS_DDR3_RAS_N,
output HPS_DDR3_RESET_N,
input HPS_DDR3_RZQ,
output HPS_DDR3_WE_N,
output HPS_ENET_GTX_CLK,
t HPS_ENET_INT_N,
inou
output HPS_ENET_MDC,
inout HPS_ENET_MDIO,
55
input HPS_ENET_RX_CLK,
input [3:0] HPS_ENET_RX_DATA,
input HPS_ENET_RX_DV,
output [3:0] HPS_ENET_TX_DATA,
output HPS_ENET_TX_EN,
inout HPS_GSENSOR_INT,
inout HPS_I2C0_SCLK,
inout HPS_I2C0_SDAT,
inout HPS_I2C1_SCLK,
2C1_SDAT,
inout HPS_I
inout HPS_KEY,
inout HPS_LED,
inout HPS_LTC_GPIO,
output HPS_SD_CLK,
inout HPS_SD_CMD,
inout [3:0] HPS_SD_DATA,
output HPS_SPIM_CLK,
input HPS_SPIM_MISO,
output HPS_SPIM_MOSI,
inout HPS_SPIM_SS,
input HPS_UART_RX,
output HPS_UART_TX,
input HPS_USB_CLKOUT,
ut [7:0] HPS_USB_DATA,
ino
input HPS_USB_DIR,
input HPS_USB_NXT,
output HPS_USB_STP,
//DC MOTOR CONTROL
output MTRL_P,
output MTRL_N,
56
output MTRR_P,
output MTRR_N,
MTR_Fault_n,
input
output MTR_Sleep_n,
`endif /*ENABLE_HPS*/
///////// KEY /////////
input [1:0] KEY,
///////// LED /////////
output [7:0] LED,
SW /////////
/////////
input [3:0] SW,
///////// SENSOR EXT//////
input s1,
input s2,
input s3,
input s4,
input s5,
input clp,
near
input
);
//======================================================
=
// REG/WIRE declarations
//======================================================
=
wire [17:0] pwm;
//////////LegRF//////////
assign GPIO_1[9] = pwm[0];
assign GPIO_1[10] = pwm[1];
assign GPIO_1[11] = pwm[2];
57
//////////LegRM////////////
assign GPIO_1[17] = pwm[3];
assign GPIO_1[16] = pwm[4];
assign GPIO_1[15] = pwm[5];
//////////LegRB////////////
assign GPIO_1[14] = pwm[6];
assign GPIO_1[13] = pwm[7];
assign GPIO_1[12] = pwm[8];
//////////LegLF////////////
assign GPIO_1[2] = pwm[9];
assign GPIO_1[1] = pwm[10];
assign GPIO_1[0] = pwm[11];
//////////LegLM////////////
assign GPIO_1[18] = pwm[12];
assign GPIO_1[19] = pwm[13];
assign GPIO_1[20] = pwm[14];
//////////LegLB////////////
assign GPIO_1[21] = pwm[15];
assign GPIO_1[22] = pwm[16];
assign GPIO_1[23] = pwm[17];
//don't sleep
assign MTR_Sleep_n = 1'b1;
//======================================================
=
// Structural coding
//======================================================
soc_system u0 (
//Clock&Reset
.clk_clk (FPGA_CLK1_50 ), //
clk.clk
58
.reset_reset_n (1'b1 ), //
reset.reset_n
S ddr3
//HP
.memory_mem_a ( HPS_DDR3_ADDR),
// memory.mem_a
.memory_mem_ba ( HPS_DDR3_BA), //
.mem_ba
.memory_mem_ck ( HPS_DDR3_CK_P),
// .mem_ck
.memory_mem_ck_n ( HPS_DDR3_CK_N),
// .mem_ck_n
.memory_mem_cke ( HPS_DDR3_CKE),
// .mem_cke
.memory_mem_cs_n ( HPS_DDR3_CS_N),
// .mem_cs_n
.memory_mem_ras_n ( HPS_DDR3_RAS_N),
// .mem_ras_n
.memory_mem_cas_n ( HPS_DDR3_CAS_N),
// .mem_cas_n
.memory_mem_we_n ( HPS_DDR3_WE_N),
// .mem_we_n
.memory_mem_reset_n ( HPS_DDR3_RESET_N),
// .mem_reset_n
.memory_mem_dq ( HPS_DDR3_DQ), //
.mem_dq
.memory_mem_dqs ( HPS_DDR3_DQS_P),
// .mem_dqs
.memory_mem_dqs_n ( HPS_DDR3_DQS_N),
// .mem_dqs_n
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf
Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf

Más contenido relacionado

Similar a Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf

Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENS
Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENSThiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENS
Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENSNhận Viết Đề Tài Trọn Gói ZALO 0932091562
 
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Viết thuê trọn gói ZALO 0934573149
 
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...nataliej4
 
Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Pham Hoang
 
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...Man_Ebook
 
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdfKỹ thuật lập trình, Nguyễn Thúy Loan.pdf
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdfMan_Ebook
 
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...PinkHandmade
 
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...nataliej4
 
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...Man_Ebook
 
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdf
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdfMột số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdf
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdfMan_Ebook
 
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạo
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạoXây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạo
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạoMan_Ebook
 
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Tranghoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 TrangHọc Cơ Khí
 
Tailieu.vncty.com he dieu hanh unix va linux
Tailieu.vncty.com   he dieu hanh unix va linuxTailieu.vncty.com   he dieu hanh unix va linux
Tailieu.vncty.com he dieu hanh unix va linuxTrần Đức Anh
 

Similar a Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf (20)

Thiết kế anten vi dải sử dụng trong hệ thống thông tin vô tuyến
Thiết kế anten vi dải sử dụng trong hệ thống thông tin vô tuyếnThiết kế anten vi dải sử dụng trong hệ thống thông tin vô tuyến
Thiết kế anten vi dải sử dụng trong hệ thống thông tin vô tuyến
 
Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENS
Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENSThiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENS
Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX của SIEMENS
 
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
Đề tài: Thiết kế xây dựng hệ thống cân định lượng sử dụng loadcell SIWAREX củ...
 
Lập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.docLập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.doc
 
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...
TÍNH TOÁN, PHÂN TÍCH VÀ ĐỀ XUẤT GIẢI PHÁP GIẢM TỔN THẤT ĐIỆN NĂNG LƢỚI ĐIỆN P...
 
Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335Tìm hiểu về bộ điều khiển số TMS320F28335
Tìm hiểu về bộ điều khiển số TMS320F28335
 
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...
Nghiên cứu và xây dựng bộ bù áp nhanh cho lưới điện trung áp sử dụng nghịch l...
 
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdfKỹ thuật lập trình, Nguyễn Thúy Loan.pdf
Kỹ thuật lập trình, Nguyễn Thúy Loan.pdf
 
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...
LUẬN VĂN NGHIÊN CỨU, ỨNG DỤNG CÔNG NGHỆ HYBRID ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT ROBO...
 
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...
Nghiên cứu, ứng dụng công nghệ hybrid để điều khiển và giám sát robot công ng...
 
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...
Sử dụng phương pháp mạng noron nhân tạo để tối ưu hóa chế độ cắt, ứng dụng để...
 
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdf
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdfMột số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdf
Một số giải pháp chống quá điện áp trong máy biến áp truyền tải.pdf
 
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạo
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạoXây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạo
Xây dựng Robot tự hành dạng Nonholonomic và tổng hợp bộ điều khiển bám quỹ đạo
 
Bài giảng excel 2010
Bài giảng excel 2010Bài giảng excel 2010
Bài giảng excel 2010
 
Luận văn_Phan Hoàng Anh.pdf
Luận văn_Phan Hoàng Anh.pdfLuận văn_Phan Hoàng Anh.pdf
Luận văn_Phan Hoàng Anh.pdf
 
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Tranghoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
hoccokhi.vn Lý Thuyết Điều Khiển Tự Động - Nhiều Tác Giả, 79 Trang
 
Giao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unixGiao trinh he dieu hanh linux va unix
Giao trinh he dieu hanh linux va unix
 
Giao trinh he dieu hanh linux va unix 2
Giao trinh he dieu hanh linux va unix 2Giao trinh he dieu hanh linux va unix 2
Giao trinh he dieu hanh linux va unix 2
 
Giao trinh he dieu hanh linux va unix 3
Giao trinh he dieu hanh linux va unix 3Giao trinh he dieu hanh linux va unix 3
Giao trinh he dieu hanh linux va unix 3
 
Tailieu.vncty.com he dieu hanh unix va linux
Tailieu.vncty.com   he dieu hanh unix va linuxTailieu.vncty.com   he dieu hanh unix va linux
Tailieu.vncty.com he dieu hanh unix va linux
 

Más de Man_Ebook

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfMan_Ebook
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docMan_Ebook
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfMan_Ebook
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfMan_Ebook
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfMan_Ebook
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfMan_Ebook
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfMan_Ebook
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdfMan_Ebook
 

Más de Man_Ebook (20)

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdf
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdf
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdf
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdf
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdf
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
 

Último

10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......thoa051989
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfLinh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfXem Số Mệnh
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hardBookoTime
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem Số Mệnh
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaThiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaAnhDngBi4
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfXem Số Mệnh
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...Nguyen Thanh Tu Collection
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Xem Số Mệnh
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 

Último (20)

10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdfLinh kiện điện tử - Điện tử số sáng tạo VN.pdf
Linh kiện điện tử - Điện tử số sáng tạo VN.pdf
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
2第二课:汉语不太难.pptx. Chinese lesson 2: Chinese not that hard
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
50 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaThiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 

Nghiên cứu thực thi bộ điều khiển robot công nghiệp trên nền tảng FPGA.pdf

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ---------------------------------- NGUYỄN TRUNG TIẾN NGHIÊN C U TH C THI B I N ROBOT Ứ Ự Ộ Đ ỀU KHIỂ CÔNG NGHI P TRÊN N N T NG FPGA Ệ Ề Ả Chuyên ngành: Kỹ thuật Điện tử LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN: PGS.TS. Đỗ Trọng Tuấn Hà N - 2017 ội
  • 2. i M C ỤC LỤ DANH MỤ Ẽ C CÁC HÌNH V ................................................................................. iii DANH M NG Ụ Ả C CÁC B ........................................................................................v DANH M VI Ụ Ừ C CÁC T Ế Ắ T T T.........................................................................vi LỜI CAM ĐOAN .................................................................................................. viii M U Ở ĐẦ ....................................................................................................................1 CHƯƠNG I: TỔ Ệ Ố NG QUAN H TH NG ..............................................................3 1.1. u v Robot ..........................................................................................3 Giới thiệ ề 1.1.1. Giới thiệ ề ệ ệ u v công ngh Robot hi n nay..........................................................3 1.1.2. Các lo c s d ng trong công ngh ..................................5 ạ ộng cơ đượ i đ ử ụ ệ Robot 1.1.3. Các lo u khi ..............................................................11 ại module điề ển động cơ 1.1.4. N n t u khi n Robot................................................22 ề ảng FPGA/DSP trong điề ể 1.2. Các gi nh bài toán.................................................................33 ải pháp và xác đị 1.2.1. Phân tích và l n gi .....................................................................33 ựa chọ ải pháp 1.2.2. K .............................................................................................34 ết luận chương CHƯƠNG II: THIẾ Ế Ệ Ố T K H TH NG................................................................35 2.1. kh ng th c ng...................................................................35 Sơ đồ ối tổ ể ủa hệ thố 2.2. c t h ng.....................................................................................35 Sơ đồ đặ ả ệ thố 2.3. nguyên lý và các module c a h ng................................................37 Sơ đồ ủ ệ thố 2.3.1. Sơ đồ ổ nguyên lý t ng thê................................................................................37 2.3.2. u khi ............................................................................37 Module điề ển động cơ 2.3.3. u khi n h ng...........................................................................38 Module điề ể ệ thố 2.3.4. ng...........................................................................................41 Module dò đườ 2.4. L n c u hình h ng...........................................................................42 ựa chọ ấ ệ thố 2.4.1. u khi n h ng ...............................................................................43 Khố ề i đi ể ệ thố 2.4.2. n khi ................................................................................44 Khố ề i đi ển động cơ 2.4.3. ng................................................................................................45 Khố ờ i dò đư CHƯƠNG III: XÂY DỰ Ệ Ố NG H TH NG............................................................46 3.1. Xây d ng ph n c ng ......................................................................................46 ự ầ ứ 3.1.1. D n.....................................................................................46 ự án Quartus cơ bả
  • 3. ii 3.1.2. Phát tri n trên n n t ng d n.............................................................47 ể ề ả ự án cơ bả 3.1.3. Biên d ch và ch .....................................................................53 ị ạy chương trình 3.2. Xây d ng ph n m m ......................................................................................66 ự ầ ề 3.2.1. u khi n vi tích phân t l (PID).................................................66 Giải thuật điề ể ỉ ệ 3.2.2. ng d ng gi u khi n robot ..............................................67 Ứ ụ ải thuật PID vào điề ể 3.2.3. Biên d ch và ch .....................................................................71 ị ạy chương trình 3.3. K mô ph ng và ki ......................................................................73 ết quả ỏ ểm thử 3.3.1. K mô ph ng ..........................................................................................73 ết quả ỏ 3.3.2. K ki ............................................................................................73 ết quả ểm thử K N ẾT LUẬ ..............................................................................................................77 TÀI LIỆ Ả U THAM KH O………………………………………………………..78
  • 4. iii DANH MỤC CÁC HÌNH VẼ: Hình 1. 1 Robot Công nghiệp .....................................................................................4 Hình 1. 2 Robot y tế ố và an ninh qu c phòng...............................................................4 Hình 1. 3 Động cơ mộ ề t chi u......................................................................................5 Hình 1. 4 Cấ ạo động cơ DC u t ....................................................................................6 Hình 1. 5 Động cơ Servo.............................................................................................6 Hình 1. 6 Cấ ạo động cơ Servo u t ................................................................................7 Hình 1. 7 Động cơ bước..............................................................................................8 Hình 1. 8 Sơ đồ ắ ề ể ả ử ụ nguyên t c đi u khi n t i s d ng PWM........................................11 Hình 1. 9 Mạch nguyên lý điề ể ả ằ u khi n t i b ng PWM...............................................12 Hình 1. 10 Sơ đồ xung PWM....................................................................................13 Hình 1. 11 Tạ ằng phương pháp so sánh o xung vuông b ...........................................14 Hình 1. 12 Sơ đồ ạch L298 điề ển động cơ mộ ề m u khi t chi u....................................16 Hình 1. 13 Sơ đồ ố ứ ủ kh i ch c năng c a DRV8833......................................................17 Hình 1. 14 Sơ đồ ạ m ch FET+relay ...........................................................................18 Hình 1. 15 Chu kỳ xung PWM tr ................................................19 ong động cơ Servo Hình 1. 16 Module Driver A4988.............................................................................20 Hình 1. 17 Sơ đồ ế ố k t n i ...........................................................................................21 Hình 1. 18 Sơ đồ ự ệ ố th c thi h th ng DSP...................................................................26 Hình 1. 19 Kiến trúc bên trong FPGA ......................................................................27 Hình 1. 20 Cấ ộ u trúc m t Logic Block.......................................................................27 Hình 1. 21 Sơ đồ ợ ứ tích h p c ng ................................................................................29 Hình 1. 22 Sơ đồ ố ợ ề kh i tích h p m m ........................................................................30 Hình 2. 1 Sơ đồ ấ ủ ệ ố c u chúc c a h th ng.....................................................................35 Hình 2. 2 Sơ đồ ố ệ ố kh i h th ng ..................................................................................36 Hình 2. 3 Sơ đồ ế thi t k th ế ầ ứng điề ể ệ ph n c u khi n h ống..........................................37 Hình 2. 4 Mạ ề ể ch đi u khi n motor .............................................................................38 Hình 2. 5 Sơ đồ ố ủ kh i c a Kit DE0 Nano...................................................................40 Hình 2. 6 Sơ đồ ạch module dò đườ m ng ..................................................................42 Hình 2. 7 Mô hình hệ ố th ng ......................................................................................42
  • 5. iv Hình 2. 8 Khố ề ể i đi u khi n Kit DE0 Nano.................................................................43 Hình 2. 9 Khố ề ển động cơ L298 i đi u khi ..................................................................44 Hình 2. 10 Khối dò đường ........................................................................................45 Hình 3. 1 Thành phầ ệ ố n HPS hps_0 trong h th ng Qsys ...........................................46 Hình 3. 2 Cổ ủ ầ ng AXI Master c a thành ph n HPS ....................................................47 Hình 3. 3 Tìm và thêm thành phần PIO ....................................................................48 Hình 3. 4 Cấ ầ u hình thành ph n PIO..........................................................................49 Hình 3. 5 Tạ ế ố ữ ầ o k t n i gi a HPS và thành ph n PIO.................................................50 Hình 3. 6 giao diệ ủ n pio_led c a hệ ố th ng .................................................................51 Hình 3. 7 ban đầu hóa .pio_led_external_connection_export trong u0 soc_system.51 Hình 3. 8 các thành phần cơ bản trong Qys c ng.........................................52 ủa hệ thố Hình 3. 9 Các thành ph n trong Qys c ng ...................................................52 ầ ủa hệ thố Hình 3. 10 Thêm vào một thành phần trong Qys......................................................53 Hình 3. 11 file TCL cho SDRAM DDR3 của HPS ..................................................66 Hình 3. 12 Sơ đồ ố ả ậ kh i gi i thu t PID........................................................................67 Hình 3. 13 Sơ đồ ố ứ ụ ả ật PID vào robot dò đườ kh i ng d ng gi i thu ng.......................68 Hình 3. 14 Lưu đồ ậ ệ ỉ thu t toán hi u ch nh PID...........................................................70 Hình 3. 15 Biên dị ẻ ớ ch và copy file vào th nh .......................................72 trên Sockit Hình 3. 16 Thực thi chương trình trên Putty.............................................................72 Hình 3. 17 Kết quả đầ ỏ u ra mô ph ng qua SignalTap................................................73 Hình 3. 18 V n t c c a robot khi hi u ch nh Kp (v i: Kd=0; Ki=0)........................75 ậ ố ủ ệ ỉ ớ Hình 3. 19 Vậ ố ủ ệ ỉ ớ n t c c a robot khi hi u ch nh Kd (v i: Kp=30; Ki=0)......................76 Hình 3. 20 Vậ ố ủ ệ ỉ ớ n t c c a robot khi hi u ch nh Ki (v i: Kp=30; Kd=5)......................76
  • 6. v DANH MỤC CÁC BẢNG B ng 1. 1 B u khi c ........................................................22 ả ảng chân điề ển động cơ bướ B ng 1. 2 Tóm t t các ng d ng s d ng c a DSP...................................................25 ả ắ ứ ụ ử ụ ủ B ng 3. 1 K m hi u ch nh PID ...... 75 ả ết quả thực nghiệ ệ ỉ ………………………………
  • 7. vi DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Nghĩa Anh tiếng Nghĩa Việt tiếng SoC system-on-a-chip H ng trên m t vi m ệ thố ộ ạch FPGA Field-programmable gate array M p các ph n t m ng ạch tích hợ ầ ử ả logic có thể ập trình đượ l c DSP Digital Signal Processing X u s ử lý tín hiệ ố PWM Pulse-width modulation điề ế độ ộ u ch r ng xung IC integrated circuit Vi mạch ADC Analog- -digital converter to M ch chuy ạ ển đổi tương tự ra số HPS hard processor system H ng x lý ph n c ng ệ thố ử ầ ứ DC Direct Current dòng điệ ộ ề n m t chi u PID Proportional Integral Derivative Cơ chế ả ồi vòng điề ể ph n h u khi n RAM Random Access Memory B nh truy c p ng u nhiên ộ ớ ậ ẫ SRAM Static Random Access Memory B nh truy c p ng ộ ớ ậ ẫu nhiên tĩnh CPLD Complex Programmable Logic Device vi m ch có th l p trình c ạ ể ậ đượ PLA Programmable Logic Array m ng logic l c ả ập trình đượ HDL Hardware Description Language ngôn ng mô t ph n c ng ữ ả ầ ứ
  • 8. vii LỜI NÓI ĐẦU Hiện nay, công nghệ phát triển robot đã vô cùng mạnh mẽ và được ứng dụng rất nhiều trong thực tế, ứng dụng robot trong sản xuất công nghiệp, các cánh tay lắp ráp, vận tải hàng hóa theo vạch đường đi có sẵn Ứng dụng robot trong y tế . , các cánh tay thao tác phẫu thuật cho người bệnh…. Ứng dụng robot trong an ninh quốc phòng, robot chiến đầu, xe tăng tự vận hành, thiết bị bay tự động…. Ứng dụng trong ngành vũ trụ … công nghệ robot còn được dùng trong các ứng . Ngoài ra, dụng xử lý các tình huống trong các môi trường đặc biệt và rất nhiều các hướng phát triển khác đã được phát triển. Trên cở sở đã được học tôi đã thiết kế và thử nghiệm một robot công nghiệp di chuyển theo vạch đường định trước trên nền tảng công nghiệp FPGA/DSP ử . S d r u khi t toán PID ụng phương pháp tạo độ ộng xung PWM để điề ể ộng cơ và thuậ n đ để thay đổi hướng đi theo kế ả ả ề ừ ộ dò đườ t qu tr v t b ng. Do kiến thức còn hạn hẹp và thời gian thực hiện không nhiều nên đề tài của tôi còn nhiều hạn chế. Mặc dù đã phần thiết kế và tính toán chi tiết các mạch nào và thiết kế phần cứng trên nền tảng FPGA, lập trình phần mềm trên công nghệ SoC, các thông số nhưng đôi khi còn mang tính lý thuyết và thiên về lập trình, chưa có tính ứng dụng cao. Tôi mong sự đóng góp và sửa chữa để đề tài này mang tính khả thi hơn. Tôi xin chân thành cảm ơn thầy Đỗ Trọng Tuấn đã hướng dẫn PGS.TS chúng tôi hoàn thành luận văn này.
  • 9. viii LỜI CAM ĐOAN Tôi xin cam đoan các kế ả ứ ận văn là củ t qu nghiên c u trong lu a riêng tôi và chưa đượ ố ấ ứ c công b trong b t kì công trình nghiên c u nào. Hà nội, ngày tháng năm H c viên ọ (Ký ghi rõ họ tên)
  • 10. 1 MỞ ĐẦU 1. p thi Tính cấ ết của đề tài Công ngh robot là m t ngành khoa h c m i m so v i nhi u ngành khác ệ ộ ọ ớ ẻ ớ ề nhưng tốc độ ể ủ ấ ả năng ứ ụ ớ phát tri n c a nó r t nhanh, kh ng d ng vô cùng to l n. Các ứ ụ ổ ậ ủ ệ robot như: Robot công nghiệ ể ng d ng n i b t c a công ngh p giúp phát tri n nhanh n n công nghi p, robot chi u, robot t hành, robot c ề ệ ến đấ ự ảnh sát,… đã đem lại nhi u l i ích to l n trong nhi c khác nhau t gi i trí, h c t ng, ề ợ ớ ều lĩnh vự ừ ả ọ ập, lao độ quân sự, v.v… Trong ứ ụ ệp, robot đã tự độ ậ ự ệ ấ ề ng d ng công nghi ng v n hành th c hi n r t nhi u công vi c n ng nh i c n m t r t nhi u th i gian và công s ệ ặ ọc mà con ngườ ầ ấ ấ ề ờ ức để thực hi n. ệ T nh nghiên c u xây d ng mô hình phát tri n robot ừ suy nghĩ đó, tôi quyết đị ứ ự ể mang tính th c ti n cao. Mô hình robot này s d ng n n t ng FPGA/DSP và công ự ễ ử ụ ề ả ngh m c phát tri n r t th nh hành ngày ệ SoC đó là nhưng công nghệ ới và đang đượ ể ấ ị nay Do v y tôi ch n nghiên c u và th c hi . ậ ọ ứ ự ện đề tài: “Nghiên c u th c thi b i ứ ự ộ đ ều khiể ệ ề ả n Robot công nghi p trên n n t ng FPGA”, và đối tượng đượ ử ụ c s d ng trong nghiên c chính xác c . ứu để xác định độ ủa các tính toán đã đặt ra 2. M c tiêu nghiên c ụ ứu M : ụ ề c tiêu đ tài là - c thi b u khi n chuy Thự ộ điề ể ển độ ử ụ ứ ụ ề ả ng s d ng Kit SoC ng d ng n n t ng FPGA c xây d ng mô hình robot. ủa Altera để ự xe - m th t qu c thi b u khi n trên mô hình gi Kiể ử và đánh giá kế ả thự ộ điề ể đối tượng ả l p ậ 3. ng và ph m vi nghiên c u Đố ợ i tư ạ ứ - u lý thuy t v n n t ng FPGA và DSP. Nghiên cứ ế ề ề ả - u k Nghiên cứ ỹ p trình trên công ngh . thuật lậ ệ SoC - u thu ng PID. Nghiên cứ ật toán dò đườ - u ch r ng xung PWM Nghiên cứu phương pháp điề ế độ ộ
  • 11. 2 4. u Phương pháp nghiên cứ - p và phân tích các tài li Thu thậ ệu và thông tin liên quan đến đề tài - Phân tích và l n h ng d ng. ựa chọ ệ thống chương trình ứ ụ - n khai xây d ng d ng. Triể ựng chương trình ứ ụ - m tra, th nghi nh giá k . Kiể ử ệm và đá ết quả 5. B c ố ụ ề c đ tài B c c k u thành 3 ố ục luận văn đượ ết cấ chương: Chương 1: ổ ệ ố T ng quan h th ng Chương 2: ế ế ệ ố Thi t k h th ng Chương 3: ự ệ ố Xây d ng h th ng Trong chương 1 ớ ệ ề ss, gi i thi u v nguyên t c ho ng chung c ắ ạt độ ủa động cơ, m ch, công ngh FPGA và c c u trúc c a h t b s c x d ng. ạ ệ đưa ra đượ ấ ủ ệ thiế ị ẽ đượ ử ụ Trong chương 2 ớ ệ ề ệ ố ủ ệ ố , gi i thi u v h th ng và các module chính c a h th ng. Còn trong chương 3, đây là chương trọ ả ự ng tâm nêu ra gi i pháp và quá trình xây d ng mô hình xe d a vào các lý thuy iên c u. robot ự ết đã ngh ứu trong hai chương đầ Và đưa ra k c nghi t lu n. ết qua thự ệm thu được và kế ậ 6. T ng quan tài li u nghiên c u ổ ệ ứ Tài li u ph c v cho vi c nghiên c tài này bao g m các tài li n ệ ụ ụ ệ ứu đề ồ ệu cơ bả như ở DE0_Nano_User_Manual_v1.9 phát hành b i Terasic. - DS 5+SoCkit+WorkshopUSA phát hành b Terasic. ở Speed Control of Dc Motor By PWM Method Using Microcontroller của Tran Quoc Cuong, Tran Thanh Phong
  • 12. 3 CHƯƠNG I: TỔNG QUAN HỆ THỐNG 1.1. u v Robot Giới thiệ ề 1.1.1. u v công ngh Robot hi n nay Giới thiệ ề ệ ệ Thuật ngữ robot được sinh ra từ trên sân khấu, không phải trong phân xưởng sản xuất. Những robot xuất hiện lần đầu tiên trên ở trên NewYork vào ngày 9/10/1922 trong vở “Rossum’s Universal Robot” của nhà soạn kịch người Tiệp Karen Kapek viết năm 1921, còn từ robot là cách gọi tắt của từ robota theo tiếng - Tiệp có nghĩa là công việc lao dịch. Robot hay người máy là một loại máy có thể thực hiện những công việc một cách tự động bằng sự điều khiển của máy tính. Robot là một tác nhân cơ khí, nhân tạo, thường là một hệ thống cơ khí-điện tử. Với sự xuất hiện và chuyển động của mình, robot gây cho người ta cảm giác rằng nó giác quan giống như con người. Từ "robot" (người máy) thường được hiểu với hai nghĩa: rô bốt cơ khí và phần mềm tự hoạt động. Về lĩnh vực người máy, Nhật Bản là nước đi đầu thế giới về lĩnh vực này. Ngày nay robot đang là tâm điểm của một cuộc cách mạng lớn sau Internet. Robot ngày càng được sử dụng rộng rãi trong lĩnh vực công nghiệp, y tế, giáo dục đào tạo, giải trí, an ninh quốc phòng, thám hiểm không gian. Robot là sản phẩm công nghệ có độ phức tạp cao, chứa hàm lượng tri thức vô cùng phong phú về tất cả các lĩnh vực của khoa học và công nghệ. Theo dự đoán trong vòng 20 năm nữa mỗi người sẽ có nhu cầu sử dụng một robot cá nhân như nhu cầu một máy tính PC hiện nay và robot sẽ là tâm điểm của một cuộc cách mạng lớn sau Internet. Với xu hướng này, cùng các ứng dụng truyền thống khác của robot trong công nghiệp, y tế, giáo dục đào tạo, giải trí và đặc biệt là trong an ninh quốc phòng thì thị trường robot sẽ vô cùng to lớn. Robot đã có những bước tiến đáng kể trong hơn nửa thế kỷ qua. Robot đầu tiên được ứng dụng trong công nghiệp vào những năm 60 để thay thế con người làm những công việc nặng nhọc, nguy hiểm trong môi trường độc hại. Do nhu cầu sử dụng ngày càng nhiều trong quá trình sản xuất phức tạp nên robot công nghiệp cần có những khả năng thích ứng linh hoạt và thông minh hơn. Ngày càng nhiều các phát minh tiên tiên cho
  • 13. 4 ngành công nghiệp phát triển cánh tay robot cũng như robot tự hành vận chuyển hàng hóa trong các khu công nghiệp. Hình 1.1 minh họa một số hình ảnh về robot công nghiệp ngày nay [Nguồn sản xuất oto của toyota] Hình 1. 1 Robot Công nghi p ệ Ngày nay, ngoài ứng dụng sơ khai ban đầu của robot trong chế tạo máy thì các ứng dụng khác như trong y tế, chăm sóc sức khỏe, nông nghiệp, đóng tàu, xây dựng, an ninh quốc phòng đang là động lực cho sự phát triển của ngành công nghiệp robot. Hình 1.2 minh họa cho những cánh tay robot ý tế đang thực hiện ca phẫu thuật cho bệnh nhân và Robot chiến đấu được phát triển bởi Nhật Bản. Hình 1. 2 Robot y t và an ninh qu c phòng ế ố
  • 14. 5 Có thể kể đến những loại robot được quan tâm nhiều trong thời gian qua là: tay máy robot (Robot Manipulators), robot di động (Mobile Robots), robot phỏng sinh học (Bio Inspired Robots) và robot cá nhân (Personal Robots). Robot di động được nghiên cứu nhiều như xe tự hành trên mặt đất AGV (Autonomous Guided Vehicles), robot tự hành dưới nước AUV (Autonomous Underwater Vehicles), robot tự hành trên không UAV (Unmanned Arial Vehicles) và robot vũ trụ (Space robots). Với robot phỏng sinh học, các nghiên cứu trong thời gian qua tập trung vào hai loại chính là robot đi bộ (Walking robot) và robot dáng người (Humanoid robot). Bên cạnh đó các loại robot phỏng sinh học như cá dưới nước, các cấu trúc chuyển động phỏng theo sinh vật biển cũng được nhiều nhóm nghiên cứu, phát triển. 1.1.2. d ng trong công ngh Robot Các loạ ộng cơ đượ i đ c sử ụ ệ a) Động cơ một chiều DC Hình 1. 3 t chi u Động cơ mộ ề Động cơ một chiều DC ( DC là từ viết tắt của "Direct Current Motors") là động cơ điều khiển trực tiếp có cấu tạo gồm hai dây (dây nguồn và dây tiếp đất). DC motor là một động cơ một chiều với cơ năng quay liên tục. Khi chúng ta cung cấp năng lượng, động cơ DC sẽ bắt đầu quay, chuyển điện năng thành cơ năng. Hầu hết các động cơ DC sẽ quay với cường độ RPM rất cao ( số vòng quay/ phút), và các động cơ DC đều được ứng dụng để làm quạt làm mát máy tính, hoặc kiểm soát tốc độ quay của bánh xe..
  • 15. 6 Để điều khiển tốc độ quay của động cơ DC, người ta dùng điều biến độ rộng xung (kí hiệu là PWM), đây là kỹ thuật điều khiển tốc độ vận hành bằng việc bật và tắt các xung điện. Tỷ lệ phần trăm vận tốc với thời gian của thiết bị được điều khiển bằng cơ chế bật tắt một mức độ cơ số vòng quay xác định của động cơ. Hình 1. 4 Cấu tạo động cơ DC Ví dụ, một động cơ có nguồn điện xoay chiều ở mức 50% ( tức 50% tắt và 50% bật), thì mô tơ sẽ quay một nửa số vòng quay ở mức 100% (tổng số). Mục đích là để khi các xung nối tiếp nhau với tốc độ rất nhanh thì động cơ vẫn có thể quay liên tục với tần số cao mà không bị vấp lỗi. b) Động cơ servo Hình 1. 5 Động cơ Servo
  • 16. 7 Một động cơ servo (Servo Motors) là một tổ hợp chung cơ bản của bốn bộ phận: một động cơ điều khiển tốc độ DC, một bánh răng, một vi điều khiển và một cảm biến. Khả năng định vị của động cơ servo thường được tính toán để kiểm soát được chính xác hơn so với những động cơ DC thông thường khác. Động cơ servo thường cấu tạo gồm 3 dây: dây nguồn, dây tiếp đất và dây điều khiển. Không giống như động cơ DC hoạt động trên cơ chế xoay chiều bật tắt nguồn, năng lượng (nguồn điện) của động cơ servo được nạp vào liên tục. Động cơ servo hoạt động bằng việc kiểm soát dòng điện, giúp động cơ định hướng chính xác hướng hoạt động của mình. Động cơ servo được thiết kế để dừng tại một vị trí cụ thể. Các vị trí này cần được tính toán chính xác để khiến máy móc hoạt động được đúng với mục tiêu đề ra theo ý đồ của người thiết kế. Ví dụ như kiểm soát các bánh lái trên một chiếc thuyền hoặc cần khiến một cánh tay robot hay chân robot di chuyển trong một phạm vi nhất định. Động cơ servo sẽ không quay như động cơ DC thông thường vốn hoạt động xoay qua lại với góc quay đạt tới mốc 360 độ (hoặc hơn). Trong khi đó, động cơ servo sẽ hoạt động bằng việc nhận một tín hiệu lệnh quyết định góc vị trí ở đầu ra và sử dụng sức mạnh (cơ năng) của một động cơ DC cấu tạo bên trong sẽ quay trục quay đến đúng vị trí. Vị trí này được xác định bởi các vi cảm biến. Hình 1. u t 6 Cấ ạo động cơ Servo
  • 17. 8 PWM được sử dụng cho các tín hiệu lệnh của động cơ servo. Tuy nhiên, không giống như động cơ DC được PWM điều khiển bằng biến độ rộng xung để kiểm soát tốc độ quay, động cơ servo dùng điều biến độ rộng xung đó để xác định vị trí của trục động cơ, chứ không chỉ đơn thuần là tốc độ. Trung bình một đơn vị xung được tính dựa trên vị trí trục (thường là khoảng 1,5ms), mục đích làm sao để giữ trục luôn ở đúng vị trí. Mỗi khi giá trị xung tăng lên, sẽ khiến cho trục motor lần lượt chuyển động theo chiều kim đồng hồ, và luôn sẽ có một xung ngắn hơn để đảo trục ngược lại chiều kim đồng hồ. Xung điều khiển serco thường được lặp đi lặp lại khoảng 20 mm/s. Có thể nói đơn giản, trục servo di chuyển đến đâu rồi cũng quay về lại vị trí ban đầu. Khi động cơ được lệnh di chuyển, nó sẽ điều khiển trục di chuyển đến vị trí cần đến và giữ nguyên ở vị trí đó, cho dù ngay cả khi có ngoại lực tác động lực đẩy lên nó, các trục động cơ sẽ từ chối di chuyển khỏi vị trí đã thiết lập bởi bộ điều khiển. c) Động cơ bước Hình 1. 7 c Động cơ bướ Động cơ bước (hay còn có tên là động cơ bước từ tính, động cơ hỗ trợ việc bước), thực chất là một động cơ tăng lực sử dụng một phương pháp khác trong việc lái hướng chuyển động. Cụ thể, động cơ bước vận hành bằng việc sử dụng một
  • 18. 9 động cơ quay liên tục DC, tích hợp cùng mạch điều khiển cùng một động cơ bước hoạt động bằng nam châm từ tính có nhiều răng được sắp xung quanh một bánh răng trung tâm để xác định vị trí. Động cơ bước đòi hỏi phải có một mạch điều khiển bên ngoài hoặc một bộ vi điều khiển (ví dụ như Raspberry Pi or Ardunio) để tiếp thêm năng lượng cho từng nam châm điện và khiến các trục động cơ lần lượt xoay. Khi nam châm từ tính ‘A’ được cung cấp nguồn điện, nó sẽ tác động lực từ tính lên các bánh răng và căn chỉnh chúng hơi xô lệch đến nam châm điện tiếp theo ‘B’. Khi ‘A’ tắt, và ‘B’ bật, các bánh răng theo lực từ tính sẽ hơi lệch một chút so với ‘B’, và thế là các răng xếp quây lại thành vòng tròn quanh bánh răng nguồn và ngắt mạch để quay về chỗ ngoặt ban đầu nhằm tạo dựng một vòng xoay. Mỗi vòng xoay tính từ một nam châm điện tiếp theo được gọi là “bước”, và thế là, động cơ có thể được quay bằng góc bước; góc bước được xác định chính xác từ trước thông qua một vòng xoay hoàn chỉnh với 360 độ. Động cơ bước phổ biến với hai loại: động cơ đơn cực và động cơ lưỡng cực. Động cơ lưỡng cực là loại mạnh nhất của động cơ bước và thường có 4 hoặc 8 chuỗi dây dẫn. Chúng có hai bộ cuộn dây điện từ cấu tạo bên trong, và bước vận hành bằng việc thay đổi hướng của các bánh rang với các dây dẫn bên trong. Động cơ bước đơn cực, được nhận dạng bởi cấu tạo gồm tới 5,6 hoặc 8 đường dây dẫn. Mặc dù chỉ có 2 cuộn cảm biến, nhưng mỗi cuộn lại là một tập hợp trung tâm phức tạp. Động cơ bước đơn cực có thể bước mà không cần phải đảo ngược chiều hiện tại trong các cuộn dây. Tuy nhiên, do cuộn trung tâm lại được sử dụng như để tiếp thêm một nửa lực từ cho mỗi cuộn dây tại một thời điểm xác định, nên chúng thường có ít mô men xoắn hơn loại động cơ lưỡng cực. - Các thiết kế của một động cơ bước thường cung cấp một mô men xoắn giữ - liên tục mà không cần động cơ để được hỗ trợ, đồng thời cũng cung ứng luôn một động cơ khác có chức năng nhất định phù hợp với cấu tạo của nó. Dĩ nhiên, tuy phức tạp như vậy nhưng lỗi định vị lại không xảy ra miễn chỉ cần động cơ bước có tụ cơ năng được xác lập từ trước.
  • 19. 10 d) Kết luận Sau đây là cái nhìn tổng kết chung về những đặc trưng cơ bản của một lĩnh vực động cơ khá phức tạp, vốn luôn gây tranh cãi nhất là khi luận về những ưu điểm và khuyết điểm của động cơ bước và động cơ tăng lực. Nhưng dù sao đi nữa, cũng mong rằng với những nhận định sau sẽ giúp lựa chọn được đúng loại động chúng ta cơ phù hợp để biến thiết kế thêm hoàn thiện. Động cơ điện một chiều DC - Tốc độ nhanh, động cơ xoay vòng liên tục. -Được sử dụng cho các thiết kế cần phải có một thiết bị quay với tốc độ RPM, ví dụ như trục bánh xe ô tô, cánh quạt máy,vv... Động cơ servo - - Tốc độ nhanh, mô đen xoắn cao, luân chuyển chính xác trong một góc giới hạn. - Nói chung, đây là một động cơ có hiệu suất cao để thay thế cho động cơ bước, nhưng có thiết lập phức tạp hơn với PWM điều khiển. Động cơ này thích hợp để ứng dụng cho các cánh tay/ chân robot hoặc ứng dụng để điều khiển các loại bánh lái,vv... Động cơ bước -Tốc độ chậm nhưng xác định chính xác hướng khi xoay, dễ dàng thiết lập và kiểm soát. - Ưu điểm vượt trội của động cơ bước là ở khả năng kiểm soát vị trí chính xác. Trong trường hợp động cơ trợ lực yêu cầu cần có một cơ chế xoay chiều và mạch dẫn trong việc xác lập định vị vị trí, hướng hoạt động của động cơ, một động cơ bước hoàn hảo có thể kiểm soát và giải quyết các yêu cầu này thông qua tính chất đặc trưng của mình khi quay bởi các “bước” ngắt mạch thiết kế bên trong. - Động cơ bước được ứng dụng rộng rãi cho các máy in 3D và các thiết bị in ấn tương tự, hoặc các máy móc khác hoạt động bằng việc cần xác định cơ bản vị trí đầu ra…
  • 20. 11 1.1.3. u khi Các loại module điề ể ộng cơ n đ Trong khuân kh tài này chúng tôi ch t c n nguyên lý ổ đề ỉ ập trung đề ấp đế điề ể ại động cơ bằng phương pháp điề u khi n các lo u xung PWM (Pulse Width Modulation). PWM là phương pháp điề ỉnh điệ ả u ch n áp ra t i, hay nói cách khác, là phương pháp điề ế ự ự thay đổi độ ộ ủ ỗ ẫn đế u ch d a trên s r ng c a chu i xung vuông, d n s n áp ra. ự thay đổ ệ i đi Các PWM khi bi i thì có cùng 1 t n s và khác nhau v r ng c ến đổ ầ ố ề độ ộ ủa sườn dương hay sườn âm. Ứng dụng của PWM trong điều khiển PWM được ứng dụng nhiều trong điều khiển. Điển hình nhất mà chúng ta thường hay gặp là điều khiển động cơ và các bộ xung áp, điều áp... Sử dụng PWM điều khiển độ nhanh chậm của động cơ hay cao hơn nữa, nó còn được dùng để điều khiển sự ổn định tốc độ động cơ. Ngoài lĩnh vực điều khiển hay ổn định tải thì PWM còn tham gia và điều chế các mạch nguồn như : boot, buck, nghịch lưu 1 pha và 3 pha... PWM còn gặp nhiều trong thực tế ở các mạch điện điều khiển. Điều đặc biệt là PWM chuyên dùng để điều khiển các phần tử điện tử công suất có đường đặc tính là tuyến tính khi có sẵn 1 nguồn 1 chiều cố định . Như vậy PWM được ứng dụng rất nhiều trong các thiết bị đi điện tử. ện- PWM cũng chính là nhân tố mà các đội Robocon sử dụng để điều khiển động cơ hay ổn định tốc độ động cơ. Hình 1. i s 8 nguyên t u khi n t Sơ đồ ắc điề ể ả ử ụ d ng PWM
  • 21. 12 Hình 1.8 d u khi n b ng PWM. V r ng xung là đồ thị ạng xung khi điề ể ằ ới độ ộ đầu ra tương ứng và đượ ằng %. Tùy thích do chúng ta điề ể c tính b u khi n. Nguyên lý hoạt động của PWM Đây là phương pháp được thực hiện theo nguyên tắc đóng ngắt nguồn của tải một cách có chu kì theo luật điều chỉnh thời gian đóng cắt. Phần tử thực hiện nhiện vụ đó trong mạch các van bán dẫn. Hình 1. i b 9 M u khi n t ạch nguyên lý điề ể ả ằng PWM Xét ho t c a m t van bán d t b ng ạt động đóng cắ ủ ộ ẫn. Dùng van đóng cắ ằ Mosfet IRF540 (Mosfet là Transistor hi u ng- Metal Oxide Semiconductor ệ ứng trườ Field Effect Transistor)
  • 22. 13 Hình 1. 10 xung PWM Sơ đồ Giả ồ ủa chân điề ể ạng điện áp đầ n đ xung c u khi n và d u ra khi dùng PWM Nguyên lý 0 - : Trong khoảng thời gian t0, ta cho van G mở, toàn bộ điện áp nguồn Ud được đưa ra tải. Còn trong khoảng thời gian , cho van G khóa, cắt nguồn t0 - T cung cấp cho tải. Vì vậy với thay đổi từ cho đến , ta sẽ cung cấp toàn bộ , một t0 0 T phần hay khóa hoàn toàn điện áp cung cấp cho tải. Công thức tính giá trị trung bình của điện áp ra tải : Gọi t1 là thời gian xung ở sườn dương (khóa mở ) còn là thời gian của cả sườn T âm và dương, là điện áp nguồn cung cấp cho tải. Ta có: Umax Ud = Umax.( t1/T) (V) hay Ud = Umax.D (Với là hệ số điều chỉnh và được tính bằng % tức là PWM) D = t1/T Như vậy ta nhìn trên hình đồ thị dạng điều chế xung thì ta có : Điện áp trung bình trên tải sẽ là : Ud = 12x20% = 2.4V ( với D = 20%) Ud = 12x40% = 4.8V (Vói D = 40%) Ud = 12x90% = 10.8V (Với D = 90%)
  • 23. 14 Các cách để tạo ra được PWM để điều khiển Để tạo được ra PWM thì hiện nay có hai cách thông dụng : Bằng phần cứng và bằng phần mềm. Trong phần cứng có thể tạo bằng phương pháp so sánh hay là từ trực tiếp từ các IC dao động tạo xung vuông như : 555, LM556... Trong phần mền được tạo bằng các chip có thể lập trình được. Tạo bằng phần mền thì độ chính xác cao hơn là tạo bằng phần cứng. Nên người ta hay sử dụng phần mền để tạo PWM. Ở đây tham khảo 2 cách điều chế PWM phổ biến: bằng phương pháp so chúng ta sánh và tạo xung vuông bằng phần mềm. - Cách 1: Tạo xung vuông bằng phương pháp so sánh Để tạo được bằng phương pháp so sánh ta cần 2 điều kiện sau đây : + Tín hiệu răng cưa : Xác định tần số của PWM + Tín hiệu tựa (Ref) là tín hiệu xác định mức công suất điều chế (Tín hiệu DC). Xét sơ đồ mạch sau : Hình 1. 11 T o xung vuông b ạ ằng phương pháp so sánh
  • 24. 15 V i t n s c là nên ch c u ch nh R2 là có ớ ầ ố xác định đượ f = 1/(ln.C1.(R1+2R2) ỉ ần điề ỉ thể thay đổi độ ộ ễ ấ ề ạ r ng xung d dàng. Ngoài 555 ra còn r t nhi u các IC t o xung vuông khác. - Cách 2: Tạo xung vuông bằng phần mềm Đây là cách tối ưu trong các cách để tạo được xung vuông. Việc tạo bằng phần mền cho độ chính xác cao về tần số và PWM. Và mạch đơn giản hơn rất nhiều. Xung này được tạo dựa trên xung của CPU. Lấy 1 đoạn ví dụ tạo PWM trong chip 8501 : a) Module u khi t chi u điề ể ộng cơ mộ n đ ề Để điều khiển tốc độ và cả chiều của động cơ điện 1 chiều khá đơn giản. Để điều khiển chiều chỉ cần đảo chiều điện áp cấp vào phần ứng của động cơ. chúng ta Còn muốn điều khiển vận tốc thì thay đổi điện áp phần ứng cấp vào động cơ. Mạch điều khiển sử dụng cũng có rất nhiều loại: M ch Công Su u Khi Dung Ir2184, M ch c u H n hình là ạ ất Điề ển Động Cơ Sử ạ ầ (điể DRV8833). Còn với động cơ có dòng lớn nhất là 2A thì nên dùng l298 để điều khiển.
  • 25. 16 Mạch như sau: Hình 1. 12 m u khi t chi u Sơ đồ ạch L298 điề ể ộng cơ mộ n đ ề Trong sơ đồ mạch L298 hình 1.12, gồm đầ 4 chân u vào INPUT: IN1, IN2, IN3, IN4 đượ ố ần lượ ớ ủa L298. Đây là các chân c n i l t v i các chân 5, 7, 10, 12 c nh n tín hi u khi n. Và g 4 chân u ra OUTPUT: ậ ệu điề ể ồm đầ OUT1, OUT2, OUT3, OUT4 (tương ứ ới các chân INPUT) đượ ố ớ ủ ng v c n i v i các chân 2, 3, 13, 14 c a L298. Các chân này sẽ được nối với động cơ. - Hai chân và dùng u khi n các m ch c u H trong L298. N u ENA ENB để điề ể ạ ầ ế ở m i v i ngu n 5V) thì cho phép m ức logic “1” (nố ớ ồ ạ ầ ạt độ ế ở ứ ch c u H ho ng, n u m c logic “0” thì m t đ ạ ầ ạ ch c u H không ho ộng. Đ ề ể ề ớ i u khi n chi u quay v i L298: -Khi ENA = 0: Động cơ không quay vớ ọi đầ i m u vào . -Khi ENA = 1:
  • 26. 17 + INT1 = 1; INT2 = 0: động cơ quay thuân. + INT1 = 0; INT2 = 1: động cơ quay nghịch. + INT1 = INT2: động cơ dừ ứ ng ngay t c thì. (tương tự ớ v i các chân ENB, INT3, INT4). Hình 1. 13 i ch a DRV8833 Sơ đồ khố ức năng củ Hoặc còn 1 loại nữa vẫn thường hay sử dụng với robocon là mạch kết hợp fet+relay. Trong đó FET có ưu điểm đóng mở với tần số cao dùng để khuếch đại tín hiệu điều khiển tốc độ. Còn relay có tác dụng đảo chiều.
  • 27. 18 Hình 1. 14 m ch FET+relay Sơ đồ ạ Trong 2 loại mạch FET+relay và cầu H thì FET+relay dễ làm hơn nhưng mà không có tác dụng hãm tốt như mạch cầu H. Mạch cầu H thì có ưu điểm về hãm, nếu thiết kế tốt thì bền hơn và có thể đảo chiều được liên tục, tuy nhiên việc thiết kế phải đảm bảo chống dòng ngược và trùng dẫn. b) Module điề ể ộng cơ Servo u khi n đ Động cơ Servo ại động cơ là lo có góc quay c c k r ng ự ỳ chính xác, nó quay theo độ ộ c a xung PWM. Chính vì v y mà chúng ta ch c n m u khi n có th t o ra ủ ậ ỉ ầ ột vi điề ể ể ạ các độ ộ ể điề ển được động cơ r ng xung khác nhau là có th u khi Servo RC. Góc quay cơ học được xác đị ở ề ộ ủ ộ ng điện phát lên dây điề ể nh b i chi u r ng c a m t xu u khi n. Đây là mộ ứ điề ế độ ộ ấ ộ ỗ t hình th c u ch r ng xung. Servo RC th y m t xung m sau i 20 ms, tuy u này có th i trong m t ph m vi r ng khác nhau t servo nhiên điề ể thay đổ ộ ạ ộ ừ này sang servo khác. Chi u r ng c a xung s c t c ề ộ ủ ẽ xác định đượ ốc độ ủa động cơ. Ví d , trong nhi u Servo RC m t xung 1,5 ms s v ụ ề ộ ẽ làm cho động cơ quay về ị trí 90 độ (vị ờ ủ ị ấ ổ ờ ể thay đổ trí trung tính). Th i gian c a giá tr th p (và t ng th i gian) có th i trong ph m vi r ạ ộng, và thay đổ ừ ế ế ảnh hưởng đế i t xung này sang xung k ti p, mà không n vị trí củ ộng cơ servo. a đ Vị trí của servo C không được xác định bởi chu kỳ làm việc PWM (nghĩa R là, thời gian ON, OFF) mà chỉ bằng chiều rộng của xung. (Điều này rất khác so với PWM từng được sử dụng trong một số hệ thống khác. Đặc biệt, điều khiển tốc độ động cơ PWM DC hoạt động theo cách thức khác hoàn to Hầu hết các động cơ àn).
  • 28. 19 Servo RC di chuyển chính xác đến cùng vị trí khi chúng nhận được một xung 1,5 ms mỗi 6 ms (một chu kỳ làm việc là 25%) như khi chúng nhận được một xung 1,5 ms mỗi 25 ms (chu kỳ làm việc là 6%) trong cả hai trường hợp, chúng chuyển - sang vị trí trung tâm (vị trí trung tính). Với nhiều servo C, miễn là tốc độ làm mới R (số lần mỗi giây mà xung được gửi đi, tức là tốc độ lặp lại xung) nằm trong khoảng 40 Hz đến 200 Hz, giá trị chính xác của tốc độ làm mới là không cần thiết. Hình 1. 15 Chu kỳ xung PWM trong động cơ Servo c) Module điề ể ộng cơ bướ u khi n đ c -Động cơ bướ ều cách điề ể ể điề ể c có nhi u khi n. Có th u khi n các dây tr c ti ự ếp qua 4 c m công su ổng qua MCU thông qua driver đệ ất. cách này hơi phứ ạ ộ c t p m t chút, cầ ả n ph i hiểu rõ bên trong động cơ và thườ ỉ điề ển được full bướ ng ch u khi c -Cách thông d ng nh t là dùng các IC chuyên d u khi ụ ấ ụng điề ển động cơ bước. Các IC hay g p nh t là TB6560, TB6600, L297, A4988, DRV8825, MA860H... ặ ấ Việc l a ch ự ọ ạ n dùng lo i driver nào phụ ộ ạ ộng cơ và công suấ ộng cơ thu c vào lo i đ t đ định điề ể ụ như A4988, DRV8825 dùng để điề ể ại động cơ u khi n. Ví d u khi n các lo nh có công su t bé ví d ỏ ấ ụ như trong máy photo hoặc máy in 3d, TB6560 hoặc TB6600 thì l u khi n các lo t chút ví d ại dùng để điề ể ại động cơ lớn hơn mộ ụ như trong các lo i máy cnc mini. Các lo i ta hay dùng MA860H ạ ại động cơ to thì ngườ ho a ặc các driver khủng hơn nữ
  • 29. 20 -Nhìn chung cách giao ti p v ế ới các module Driver này tương đố ố i gi ng nhau. Chúng đều có 3 port cơ bản là DIR ( để điể ển hướng quay động cơ), EN ( để u khi điề ể ậ ắt động cơ), ất xung để ị ể ừ ộ ố ạ u khi n b t t CLK ( xu d ch chuy n t ng step). M t s lo i module như tb6560 tb6600 hoặ ỗi port đề ụ như c MA860H thì m u có 2 pin. Ví d EN+ EN- CW+ CW- CLK+ CLK-. vì th i dùng có th tùy ch u khi ế ngườ ể ọn điề ển theo m c 0 ho c m ng kéo 3 chân xu ng th u khi n b ng 3 ứ ặ ức 1. Mình thườ ố ấp và điề ể ằ chân còn lại -Điề ọ ấ ể điề ển đượ u quan tr ng nh t là các module này là chúng có th u khi c vi bước như 1/16 step, 1/8 step, 1/2 step và full step. nế ạ ầ u full step thì b n c n 200 step để ết 1 vòng đố ớ ại 1.8 độ ế ế độ vi bướ quay h i v i lo 1step. Còn n u dùng ch c 1/16 step thì m d ch chuy . T c là b n ph i c n 200*16=3200 ột xung động cơ chỉ ị ển 1,8/16 độ ứ ạ ả ầ xung để quay h t m phân gi chính xác ế ột vòng. điều này làm tăng độ ải và tăng độ cho step -Cách k t n i: v ế ố ới động cơ 4 dây thì bạn tìm các dây xem dây nào là kênh A- A+ B- B+ và n i vào driver. v ố ới động cơ 5 dây 6 dây hoặ ạ ắ ỏ ế c 8 dây thì b n c t b h t những dây chung đi và chỉ ử ụ ở 2 đầ ộn dây để điề ể s d ng 4 dây u cu u khi n Gi i thi ớ ệu module Driver A4988  H u h u dùng IC u khi n vì máy in 3d t i tr ng ầ ết các máy in 3d đề A4988 điề ể ả ọ nh . ỏ Hình 1. 16 Module Driver A4988
  • 30. 21  Tính năng: - u khi n Điề ển đơn giả - u khi ng v n áp lên t i 35V dòng lên t Điề ển đượ ộng cơ hoạ ộ c đ t đ ới điệ ớ ới 2A - Có 5 ch c ế độ: full bước, 1/2 bước, 1/4 bước, 1/8 bướ ớ c, 1/16 bư - u ch nh dòng ra b ng tri t áp (bé xíu) n m bên trên Current Limit = Điể ỉ ằ ế ằ VREF × 2.5 - T ng Shutdown thì quá nóng ự độ  Sơ đồ ế ố k t n i Hình 1. 17 k t n i Sơ đồ ế ố L a ch n ch full hay 1/2 hay 1/4.. s c thông qua 3 pin MS1 MS2 ự ọ ế độ ẽ đượ MS3. Thông ng n i th ng 3 pin này v i công t d thi t l p t trên thườ ố ẳ ớ ắc bit 3p để ễ ế ậ ừ ph n c u th n i 3 pin này t c là mode full step. ầ ứng. Lưu ý là nế ả ổ ứ
  • 31. 22 B 1 B c ảng 1. ảng chân điều khiể ộng cơ bướ n đ  B t t m c LOW là b t module, m ậ ắt động cơ thì thông qua pin ENABLE, ứ ậ ức HIGH là tắt module  Điề ể ề ủ ộng cơ thông qua pin DIR u khi n chi u quay c a đ  Điề ển bướ ủa động cơ thông qua pin STEP, mỗi xung là tương ứ u khi c c ng v c ( ho ớ ớ i 1 bư ặc vi bước)  Hai chân Sleep vớ ố ớ i Reset n i v i nhau luôn. 1.1.4. N n Robot ền tảng FPGA/DSP trong điều khiể FPGA là công ngh vi m ch tích h p kh trình (PLD - Programmable Logic ệ ạ ợ ả Device) mớ ấ ế ấ ệ ậ ữ ỉ i nh t và tiên ti n nh t hi n nay. Thu t ng Field Programmable ch quá trình tái c u trúc IC có th c th c hi n b i dùng cu u ki n ấ ể đượ ự ệ ởi ngườ ối, trong điề ệ thông t ng, hay nói m i k hường thườ ột cách khác là ngườ ỹ p trình IC có th d sư lậ ể ễ dàng hi n th c hóa thi t k c a mình s d ng FPGA mà không l c vào m ệ ự ế ế ủ ử ụ ệ thuộ ột quy trình s n xu t hay c u trúc ph n c ng ph p nào trong nhà máy bán d ả ấ ấ ầ ứ ức tạ ẫn. Đây chính là m t trong nh ng m làm FPGA tr thành m t công ngh IC kh ộ ữ đặc điể ở ộ ệ ả trình đượ ứ ể ề ấ ện nay. Để có đượ ả năng đó, FPGA c nghiên và c u phát tri n nhi u nh t hi c kh ra đờ ộ ệ ớ ứ ả ộ ạ ở ộ ủ i hoàn toàn là m t công ngh m i ch không ph i là m t d ng m r ng c a các chip kh trình ki khác bi nh t n tái c ả ểu như PAL, PLA... Sự ệt đó thứ ấ ằm ở cơ chế ấu trúc FPGA, toàn b c u hình c t b nh truy c p ộ ấ ủa FPGA thường được lưu trong mộ ộ ớ ậ ng ng SRAM), quá trình tái c c th c hi n b ng cách ẫu nhiên (thông thườ ấu trúc đượ ự ệ ằ
  • 32. 23 đọ ừ RAM để ậ ạ ế ố ức năng logic trong IC. Có c thông tin t l p trình l i các k t n i và ch thể so sánh cơ chế đó làm việ ống như phầ ềm máy tính cũng được lưu trữ c gi n m trong RAM và khi th c thi s c n p l t vi x lý, nói cách khác vi c l p ự ẽ đượ ạ ần lượ ử ệ ậ trình l p trình l i ph n m m trên máy tín ại cho FPGA cũng dễ dàng như lậ ạ ầ ề h. Như v y v m t nguyên t c thì quá trình kh ng c a FPGA không di n ra t c thì mà ậ ề ặ ắ ởi độ ủ ễ ứ c u hình t SRAM ph i di n ra quá trình tái c u trúc ấ ừ ải được đọc trước sau đó mớ ễ ấ theo n i dung thông tin ch a trong SRAM. D u ch a trong b nh RAM ph ộ ứ ữ liệ ứ ộ ớ ụ thuộ ồ ấ ậy để lưu giữ ấu hình cho FPGA thườ ả c vào ngu n c p, chính vì v c ng ph i dùng thêm m t ROM ngo n nh ng dòng s n ph m FPGA g ộ ại vi. Đế ữ ả ẩ ần đây thì FPGA được thiế ế để ể ế ớ ấ ề ạ ặc FPGA thườ t k có th giao ti p v i r t nhi u d ng ROM khác nhau ho ng đượ ế ế kèm CPLD để ạ ữ ầ ố đị ệ ợ c thi t k n p nh ng thành ph n c nh, vi c tích h p này làm FPGA n p c n c u hình v n không ạ ấu hình nhanh hơn nhưng cơ chế ạp và lưu trữ ấ ẫ thay đổ ả năng đó điể ứ ệ ớ ế ệ i. Ngoài kh m th hai làm FPGA khác bi t v i các PLD th h trướ ả năng tích hợ ớ ật độ ớ ố ổng logic tương c là FPGA có kh p logic v i m cao v i s c đương lên tới hàng trăm nghìn, hàng triệ ổ ả năng đó có đượ ờ ự độ u c ng. Kh c nh s t phá trong ki n trúc c a FPGA. N ng m r ng c a CPLD tích h p nhi u m ng ế ủ ếu hướ ở ộ ủ ợ ề ả PAL, PLA lên m n thân các m c l n và ột chip đơn, trong khi bả ảng này có kích thướ ớ c n nên s ng m ng tích h p nhanh chóng b h n ch , dung ấu trúc không đơn giả ố lượ ả ợ ị ạ ế lượ ủ ề ất cũng chỉ đạt đượ ố trăm nghìn cổng tương ng c a CPLD nhi u nh c con s đương. Đố ớ ầ ử logic cơ bả ả i v i FPGA thì ph n t n không còn là m ng PAL, PLA mà thườ ố ậ rình đượ 6 bit đầu vào và 1 đầu ra ( thườ ng là các kh i logic l p t c cho 4- ng đượ ọ ệ ỏ đơn vị ạ c g i là LUT). Vi c chia nh logic cho phép t o mộ ấ ả t c u trúc kh trình linh ho c nhi ng c ng logic trên m t kh i bán ạt hơn và tích hợp đượ ều hơn số lượ ổ ộ ố d n. Bên c u qu làm vi c và t làm vi c c t tr i so ẫ ạnh đó hiệ ả ệ ốc độ ệ ủa FPGA cũng vượ ộ v i các IC kh tích h p l n và t làm vi c cao nên ớ ả trình trước đó. Vì có mật độ ợ ớ ốc độ ệ FPGA có th ng d ng cho l p nh ng bài toán x lý s ph c t i hi ể được ứ ụ ớ ữ ử ố ứ ạp đòi hỏ ệu suấ ệ ớ ệ ớc đó không đáp ứ g đượ ế ế t làm vi c l n mà các công ngh trư n c. Thi t k trên FPGA thường đượ ự ệ ở ữ ầ ế c th c hi n b i các ngôn ng HDL và h u h t các dòng FPGA hi n t i h t k theo hai ngôn ng chính là Verilog và VHDL, t t c nh ng ệ ạ ỗ trợ thiế ế ữ ấ ả ữ thiế ế ở ững chương trước đề ể ệ ự ằ ộ t k nh u có th hi n th c hóa trên FPGA b ng m t quy
  • 33. 24 t n. Ngoài HDL, thi t k trên FPGA còn có th c th c hi n thông rình đơn giả ế ế ể đượ ự ệ qua h ng ngôn ng ph n m ệ nhúng nghĩa là bằ ữ ầ ềm (thườ ột phương ng là C/C++). M pháp n ng dùng trong các bài toán x lý s tín hi u là s d ng System ữa thườ ử ố ệ ử ụ Generator một chương trình kế ợ ủ ớ ầ ề ế ế ủ t h p c a Matlab v i ph n m m thi t k FPGA c a Xilinx. Sự đột phá mạnh mẽ trong công nghệ bán dẫn và nhu cầu cao về ứng dụng đa phương tiện trên mạng không dây đã thúc đẩy việc nghiên cứu và phát triển các phép toán xử lý tín hiệu mạnh cho hệ thống viễn thông trên FPGA cũng như trên các mạch tích hợp chuyên dụng (ASIC). Những bước tiến này cũng dẫn đến một loạt các giải pháp mới cho vấn đề về xử lý tín hiệu, mở ra thị trường cơ hội và xu hướng mới. Thông thường thì các ứng dụng đặc trưng cho xử lý tín hiệu có sẵn trong các bộ xử lý tin hiệu số (DSP). Song song đó, các giải thuật dùng trên những bộ xử lý có tập lệnh phức tạp (VLIW) khá khô khan và thường không mang lại một giải pháp tối ưu. Và thêm vào đó là những đột phá gần đây về tốc độ, mật độ, và giá thành của các bộ xử lý FPGA dẫn đến có thêm một lựa chọn rất hấp dẫn cho việc xử lý tín hiệu tốc độ cao. So sánh trong nhiều thiết kế, sự kết hợp DSP vào FPGA cho kết quả vượt trội so với các bộ xử lý với tập lệnh phức tạp. 1.3.4.1. DSP (Digital Signal Processing) Xử lý tín hiệu số (DSP) là sử dụng các biến đổi hoặc điều khiển tín hiệu số trong suốt thời gian dài. DSP đã trở thành một nền tảng công nghệ và đã thay thế cho hệ thống xử lý tín hiệu truyền thống trong nhiều ứng dụng. DSP có nhiều điểm mạnh, chẳng hạn như không thay đổi theo nhiệt độ, tuổi thọ, và thêm vào đó, các thiết kế số có hiệu suất cao, công suất thấp, giá thành rẻ hơn so với các thiết kế tương tự. Chúng ta dễ dàng bắt gặp một hệ thống có sử dụng DSP ở hầu hết các thiết bị công nghệ bây giờ, PC hoặc điện thoại di động chẳng hạn. DSP được sử dụng khá rộng rãi trong nhiều lĩnh vực đời sống cũng như khoa học kỹ thuật. Ta có thể tự rút ra tầm quan trọng của DSP trong các hệ thống ứng dụng. Khó mà tưởng tượng được
  • 34. 25 nếu thế giới không tồn tại DSP, công nghệ sẽ không thể phát triển được như hiện tại, cũng như sự không tồn tại của khá nhiều tiện ích cuộc sống vì không có gì hỗ trợ để tạo nên các ứng dụng khá quen thuộc với chúng ta. Bảng tóm lược dưới đây sẽ cho chúng ta cái nhìn tổng quan về các ứng dụng của DSP. Lĩnh Vực Giải thuật DSP Mục đích tổng quát Lọc và nhân chập, lọc thích nghi, nhận diện và so sánh, đánh giá phổ, phân tích phổ và biến đổi Fourier. Xử lý tiếng nói Mã hoá và giải mã, nhận dạng và tổng hợp tiếng nói, nhận diện người nói, loại bỏ tiếng vọng, xử lý tín hiện trong cấy tai. Xử lý âm thanh Mã hoá và giải mã Hi-Fi, loại bỏ nhiễu, cân bằng âm thanh, mô phỏng âm thanh xung quanh, trộn và hiệu chỉnh âm thanh, tổng hợp âm thanh. Xử lý hình ảnh Nén và giải nén ảnh, xoay, truyền và phân giải ảnh, nhận dạng ảnh, nâng cấp ảnh, xử lý tín hiệu trong cấy võng mạc. Các hệ thống thông tin Thư âm thanh, fax, bộ điều hoà, mạng điện thoại, điều chế và giải điều chế, cân bằng đường dây, mã hoá và giải mã dữ liệu, truyền thông số và mạng LAN, mạng không dây, vô tuyến và truyền hình, y sinh. Điều khiển Điều khiển Server, đĩa, máy in, động cơ, điều khiển định hướng, điều khiển dao động, điều khiển hệ thống công suất, robot. Thiết bị đo ống dẫn chùm, máy quan sát sóng, phân tích điện áp, phân tích trạng thái bền vững, hệ thống định vị. B 2 Tóm t t các ng s d a DSP ảng 1. ắ ứng dụ ử ụng củ
  • 35. 26 Hình 1. 18 c thi h ng DSP Sơ đồ thự ệ thố Hình 1.18 trình bày một ứng dụng đặc trưng của hệ thống DSP dùng để thực thi một ứng dụng tương tự. tín hiệu vào tương tự đi qua bộ tiền lọc khử nhiễu cho tín hiệu thô ban đầu, ta có được tín hiệu tương tự trơn tru, với tần số lấy mẫu fs ta thu được các mẫu tín hiệu rời rạc, tín hiệu đã được lấy mẫu qua bộ biến đổi tín hiệu tương tự sang số (ADC Analog to Digital Converter) để thu được tín hiệu số. Lúc - này, tín hiệu sẽ qua hệ thống DSP và tín hiệu ra có thể ở dạng số hoặc qua bộ biến đổi số sang tương tự (DAC - Digital to Analog Converter) để có được tín hiệu ra tương tự. 1.3.4.2. FPGA (Field Programmalbe Gate Arrays) FPGA là một thiết bị logic lập trình được. FPGA hình dung như một mảng 2 chiều các khối logic và flip flop kết hợp với những liên kết điện tử khả trình giữa - các khối logic đó. Khác với liên kết cứng dùng kết nối kim loại trong những IC, những liên kết trong FPGA là tổng hợp các chuyển mạch điện tử khả trình. Chính vì vậy mà FPGA có khả năng sử dụng để tạo nên hầu hết các thiết kế phần cứng.
  • 36. 27 Hình 1. Ki 19 ến trúc bên trong FPGA Hình 1.19 mô tả kiến trúc bên trong một FPGA thông thường, ta có thể thấy gồm có 3 thành phần: I/O Cell (I/O pads), Logic Block, và Wire Segments (Routing Channels). Routing Channels có thể được xem như độ rộng, số đường dây. Các lối vào I/O khớp với chiều cao của một dòng hoặc độ rộng của một cột trong mảng, có nhiệm vụ kết nối theo ý muốn bất kỳ một đường dây nào với kênh bên cạnh. Cấu trúc một Logic Block được xem xét ở hình 1.20. Hình 1. 20 C u trúc m t Logic Block ấ ộ
  • 37. 28 1.3.4.3. K p a FPGA và DSP ết hợ giữ Các phần trên chúng ta đã thấy được sự nổi trội của 2 công nghệ , tuy nhiên ch chúng úng vẫn có những hạn chế riêng. Vì vậy mà chúng ta vẫn cần kết hợp lại, sẽ tạo nên một công nghệ vượt trội hơn, khắc phục được các khuyết điểm khi chúng nằm riêng lẻ. Một bộ DSP thực chất là một Chip hoặc cả một mạch được thiết kế sẳn. Khi kết hợp chúng vào trong một hệ thống, vấn đề về kết nối là một trở ngại, vì một bộ DSP không hổ trợ toàn bộ các giao tiếp mà thông thường chỉ có một số giao tiếp mà thôi. Thí dụ, hôm nay bạn kết nối một bộ DSP vào một Vi Xử Lý sử dụng giao tiếp RS232, ngày mai vì một lý do nào đó, bạn bắt buộc phải kết nối theo giao tiếp USB, mà nếu Vi Xử Lý hoặc DSP không hổ trợ thì vấn đề này trở nên nan giải. Với một FPGA kết hợp thêm, bạn có thể dùng FPGA để thực hiện một giao tiếp bất kỳ bằng cách thay đổi đoạn mã chương trình của FPGA. Sự kết hợp DSP với FPGA loại bỏ rào cản về giao tiếp, chỉ cần board có các cổng, việc giao tiếp có thể không cần được hổ trợ, chỉ cần người lập trình nắm rõ được cách thức truyền dữ liệu là có thể thực hiện được. khi chúng ta Ví dự với nhiều DSP trên hệ thống thiết kế một hệ thống điều khiển sử dụng tất cả DSP đó điều này sẽ tốn kém thời gian và tiền bạc nếu như rất chúng ta này muốn thêm một DSP nữa vào hệ thống , và do đó sẽ phải chọn lại Vi Xử Lý khác hoặc sẽ thiết kế lại hệ thống cho phù hợp. Nếu dùng kết hợp FPGA, công việc này chỉ đơn thuần là cấu hình lại từ đoạn mã khác do viết, chính chúng ta không cần phải thay đổi các kết nối phần cứng. DSP rất quan trọng nhưng cứng về mặt thiết kế truyền thống, với một hệ thống DSP FPGA, ta được một sự kết hợp hiệu quả, mềm mại trong thiết kế với khả năng cấu hình lại mà không cần thay đổi phần cứng. Các hệ thống SOPC (System on progammablechip) trước đã có các Vi Xử Lý, Vi Điều Khiển bên trong hệ thống, với sự kết hợp thêm DSP đã mở rộng và đẩy mạnh phát triển hơn nữa. Như đã tìm hiểu về phạm vi của DSP ở phần đầu,việc kết hợp này cũng tạo nên một bước ngoặt quan trọng trong thiết kế, ứng dụng DSP.
  • 38. 29 Chính vì những lý do trên mà làm cho việc kết hợp DSP FPGA trở nên khá - hấp dẫn với nhiều người, là một hướng nghiên cứu nhận được nhiều sự quan tâm, và là đề tài được nêu lên khá nhiều trong các diễn đàn kỹ thuật. Chúng có hai - ta cách tiếp cận với DSP FPGA, đó là dùng các khối DSP đã được tích hợp sẵn trên FPGA (tạm gọi là tích hợp cứng) hoặc tạo một nhân DSP bằng cách lập trình trên FPGA (tạm gọi là tích hợp mềm). a) Tích h p c ng ợ ứ DSP tích hợp cứng trên FPGA nghĩa là một chip DSP được tích hợp lên hệ thống FPGA. Hình 1.21 cho thấy một cách trực quan hệ thống gồm 2 thành phần FPGA và DSP, DSP được tích hợp lên FPGA như một ngoại vi của FPGA. Tất nhiên trong hệ thống ứng dụng không chỉ có 2 thành phần này thôi. Hình 1. 21 tích h Sơ đồ ợp cứng Altera DSP Development Kit Stratix II, hỗ trợ một FPGA Stratix II EP2S60F1020C4, bộ DSP có tên DK 2S60N (với phiên bản Professional có - - DSP thêm DK- - -VIDEO- DSP 2S180N), một DC TVP5146 ngõ vào xử lý video,…. Việc tích hợp cứng DSP trên hệ thống FPGA cho một hiệu quả làm việc tốt. Tốc độ xử lý, tính toán sẽ tăng hơn nhiều lần so với một hệ thống không có DSP. Nhược điểm của việc tích hợp cứng là DSP bị đốt chết trong hệ thống nên khó có khả năng cập nhật, hệ thống xử lý phụ thuộc nhiều vào DSP này, hạn chế về khả năng nâng cấp ứng dụng. ta không thể mong muốn thay đổi một chip xử lý âm thanh đã được hổ trợ cứng thay vào đó bằng một chip xử lý ảnh mà board không hổ trợ.
  • 39. 30 b) Tích h p m m ợ ề Một DSP tích hợp mềm thật chất là một IP viết bằng ngôn ngữ HDL và công cụ thiết kế sẽ triển khai IP đó xuống FPGA. Với Altera đó chính là Nios, Nios II, còn trong Xilinx là Picoblaze, Microblaze. Hình 1.22 chỉ ra một DSP nằm trong FPGA, đồng nghĩa với DSP là một IPcore được nhúng trên FPGA. Hình 1. 22 kh i tích h p m m Sơ đồ ố ợ ề Với một DSP được tích hợp mềm, hạn chế lớn nhất của nó chính là tiêu tốn khá nhiều tài nguyên FPGA, nếu có một hệ thống DSP phức tạp thì vấn đề chúng ta sử dụng tài nguyên cần phải được tính toán hợp lý sao cho tối ưu nhất cho ứng dụng đó. Để hổ trợ cho việc thực hiện các ứng dụng lớn được thuận tiện hơn, đỡ tốn thời gian viết nhân hơn, các hãng cũng cung cấp một số IP core về xử lý tín hiệu số, đó là các thự viện, ví dụ như: Xilinx FFT Library, Polyphase DFT, FIR Filters,…. Tất nhiên việc tích hợp mềm cũng có ưu điểm nổi trội của nó, đó chính là khả năng cập nhật. Đây sẽ là lựa chọn tốt cho các ứng dụng mà thường có sự thay đổi nhanh trong thuật toán xử lý (hoặc nâng cấp thường xuyên). Bây giờ, nếu chúng ta có một ứng dụng cần thử nghiệm, với một DSP tích hợp mềm, hiện chúng ta đang làm DSP này, nhưng sau này chúng ta cảm thấy DSP khác hiệu quả hơn và muốn thay đổi nó, việc cấu hình lại FPGA sẽ cho phép thực hiện điều đó một chúng ta cách dễ dàng. Ví dụ chúng ta thiết kế một hệ thống cửa nhận diện chủ nhà và tự động mở khoá khi xác định đúng là chủ. dùng DSP xử lý ảnh để nhận diện được đối Chúng ta tượng, một thiết kế DSP mềm được sử dụng và phần FPGA làm công việc điều
  • 40. 31 khiển. Nếu chỉ có vậy thì những hệ thống trước kia vẫn có thể làm được, nhưng nếu chúng ta muốn thiết kế thêm tính năng điều khiển cửa tự khoá bằng giọng nói thì lúc này v chúng ta ới thiết kế truyền thống, phải thay đổi hầu như toàn bộ phần cứng cực kỳ gian nan, nhưng với Kết hợp FPGA và DSP tích hợp mềm việc nạp thêm thì một IPcore DSP xử lý tiếng nói và thêm một số module điều khiển vào FPGA rất dễ dàng, do vậy thiết kế tích hợp này tỏ ra vượt trội hơn hẳn. 1.3.4.4. So sánh FPGA/DSP v i ASIC/DSP ớ Một công nghệ đưa ra sự lựa chọn cạnh trang với DSP FPGA, đó chính là DSP ASIC, hay còn gọi là DSP chuyên dụng. Mọi hoạt động xử lý của ASIC cũng giống như FPGA, hoàn toàn chỉ thực hiện trên phần cứng vì vậy tốc độ xử lý tăng đáng kể so với CPU. Các Chip chuyên dụng có tốc độ rất nhanh, nhanh hơn cả FPGA, vì thực chất FPGA chính là một ASIC lập trình được. Chưa kể đến giá thành của DSP ASIC rẻ hơn DSP FPGA khá nhiều. Công nghệ ASIC gần như tuyệt vời về mọi mặt, tuy nhiên công nghệ không bao giờ hoàn hảo tuyệt đối. Nhược điểm lớn nhất của ASIC đó chính là thiếu tính đa dụng. ASIC như nhiều chip truyền thống khác, đó là một chip được chế tạo cứng hoàn toàn, chỉ thực hiện được một nhiệm vụ duy nhất với mỗi chip, ta không thể tuỳ biến được. Ngược lại, FPGA làm rất tốt chuyện này, với khả năng cấu hình lại phần cứng đã làm cho FPGA trở nên hấp dẫn hơn ASIC ở một số ứng dụng cụ thể. Ví dụ như một hệ thống điều khiển nhà thông minh, với công nghệ ASIC, thật khó tìm ra một Chip đáp ứng yêu cầu xử lý nhiều loại DSP cùng một lúc để điều khiển tất cả các thiết bị trong gia đình. Nếu việc thêm một thiết bị có đi nữa, thì mới vào ngôi nhà, cũng sẽ kéo theo việc hay đổi hệ thống tốn nhiều chi phí và rất mất thời gian. Giải pháp hiệu quả hơn được nghĩ đến, đó là , với nhiều FPGA/DSP DSP tích hợp vào FPGA và một hệ thống điều khiển được cấu hình thành phần cứng với khả năng nâng cấp bất kỳ khi nào người dùng muốn, việc thêm vào các thiết bị mới vào ngôi nhà trở nên đơn giản hơn rất nhiều. Thêm một lợi thế của FPGA so với ASIC. xét trong các trường hợp Chúng ta nghiên cứu khoa học hoặc quân sự chẳng hạn, ASIC không còn là sự lựa chọn ưu
  • 41. 32 tiên nữa. Đơn giản là vì đòi hỏi về một giải thuật mới hoặc một cải tiến đột phá mới sẽ loại bỏ suy nghĩ về ASIC, vì họ cần sự mới mẻ hoàn toàn, và họ sẽ nhờ đến một sự sáng tạo trên FPGA. Dù ASIC đa dạng đến đâu thì cũng sẽ có giới hạn, còn FPGA tuy là chip trắng, nhưng có khả năng biến chuyển vô cùng. 1.3.4.5. Đánh giá Ưu điểm: Kết hợp được khả năng của cả FPGA và DSP tạo nên một hệ thống ưu thế về tốc độ xử lý so với các thiết kế trên các vi xử lý thông thường. Các thiết kế thông thường, chẳng hạn như việc viết mã xử lý trên các vi xử lý, công việc này hạn chế bởi bản thân chip không hổ trợ bất cứ DSP nào để tối ưu hoá tốc độ. Tiết kiệm về hao phí thời gian, công suất khi thiết kế ra hệ thống có sử dụng DSP. Với những DSP tích hợp sẵn, ta không phải thực hiện thao tác kết nối một bộ DSP ngoài vào hệ thống như trước đây, hoặc viết một chương trình xử lý trên chip thông thường, mà DSP đã trở thành một phần trong hệ thống. Với khả năng cấu hình lại, chúng rất linh động trong thiết kế. Khá tiện lợi cho nghiên cứu phát triển ứng dụng. Nhược điểm: Vì đặc điểm của FPGA là tái cấu hình lại mỗi khi reset, dù rằng hiện đã có một số FPGA hổ trợ tự cấu hình, nhưng đây vẫn là một nhược điểm đáng nói của hướng phát triển DSP-FPGA. Tính linh động trong thiết kế làm cho DSP FPGA trở nên khó tiếp cận với - người dùng bình thường. Chúng chỉ phù hợp với giới nghiên cứu, dân kỹ thuật. Vì linh động nên cũng sinh ra mộ ạ ế, đó là không chuyên dụ t h n ch ng. Người thiết kế phải am hiểu về ngôn ngữ HDL cũng như nhiều kiến thức khác, mới có thể thực hiện được. Giá thành khá cao, nên s p c n DSP- n ch ph n nào. ự tiế ậ FPGA cũng hạ ế ầ
  • 42. 33 1.2. nh bài toán Các giải pháp và xác đị 1.2.1. a ch n gi i pháp Phân tích và lự ọ ả a) o sát và phân tích bài toán Khả Hiện nay trong th c t thì vi c u khi t nhi ự ế ệ điề ển động cơ có rấ ều phương pháp, tùy vào m d ng, tùy vào yêu c i ta có nh u ục đích sử ụ ầu mà ngườ ững phương pháp điề khi p v i yêu c u công ngh a s n ển động cơ sao cho phù hợ ớ ầ ệ cũng như tối ưu hóa củ ả ph m. Trên th ng hi t nhi u c u khi c thi ẩ ị trườ ện nay cũng có rấ ề ác modul điề ển đượ ết k s n, chuyên bi t phù h p cho t ng s n ph m riêng. ế ẵ ệ ợ ừ ả ẩ D a vào nguyên lý ho t k ự ạt động và các đặc tính động cơ, người ta đã thiế ế s n các m ch s , các IC chuyên d u khi t h p v i các modul ẵ ạ ố ụng để điề ển động cơ, kế ợ ớ khác để ệ ả ẩ ớ hoàn thi n s n ph m. V i các IC chuyên d i ta thi t k các ụng thì ngườ ế ế m u khi chính xác cao. Tuy nhiên ngoài ạch điề ển động cơ nhanh gọn, đơn giản, độ vi c s d ng các vi m ch chuyên d u khi ệ ử ụ ạ ụng để điề ển động cơ, chúng ta hoàn toàn có th s d ng các Bo m ch phát tri n trên n n t l u ể ử ụ ạ ể ề ảng FPGA để ập trình và điề khi u và m d u này làm cho chúng ta ển động cơ tùy theo yêu cầ ục đích sử ụng. Điề chủ động hơn trong việ ế ế ệ ố ế ế ầ ề ầ ứ c thi t k h th ng và thi t k các ph n m n, ph n c ng phù h p. V i vi c s d ng bo m u khi thì có th tích h p thêm ợ ớ ệ ử ụ ạch SoC để điề ển động cơ ể ợ nhi u ch ng ng d ng c mà không c n ph i thêm nhi ề ức năng khác cho từ ứ ụ ụ thể ầ ả ều modul khác để ự ệ ứ th c hi n ch c năng khác. V i m t bo m ch SoC thì ngoài vi u khi ng ớ ộ ạ ệc dùng nó làm modul điề ển độ cơ chúng ta hoàn toàn có th u k n modul khác cùng ho ng song ể dùng nó đề điề hiể ạt độ song mà không c n t n thêm nhi c p cho bo m ch ầ ố ều modul khác. Năng lượng để ấ ạ SoC cũng rấ ỏ ả năng xử lý đạ ốc độ ả ết đượ ề ầ t nh , kh t t nhanh, gi i quy c nhi u yêu c u của bài toán. b) L a ch i pháp ự ọn giả - i pháp công ngh : Qua phân tích Giả ệ ở trên chúng tôi đã đưa ra giải pháp điều khi d ng bo m ch SoC thông qua vi c s d ng các chu i xung PWM ển động cơ sử ụ ạ ệ ử ụ ỗ đưa đến modul điề ển động cơ để tăng công xuấ ủa xung và đưa đế ộ u khi t c n các cu n dây của động cơ để động cơ quay theo các yêu cầ toán trướ ấ ả ệ u tính c. T t c các l nh
  • 43. 34 thực thi đượ ử ừ ớ ạch SoC sau đó bo mạ ực thi và điề c g i t máy tính t i bo m ch th u khi n. ể - i pháp thi t k : s d ng bo m t n các Giả ế ế ử ụ ạch SoC để ạo xung PWM đưa đế cuộn dây v i t n s h quay v i t h p lý, và theo yêu c ớ ầ ố ợp lý thì động cơ sẽ ớ ốc độ ợ ầu thi th ế ế. Qua đó, ta xác định đượ ốc độ t k c t ự ế ủa động cơ. Chúng ta có thể điề c t c u khi n tho i thông minh b ng cách xây d ng ph ển động cơ qua Máy tính hoặc điệ ạ ằ ự ần m m k t n i v i SoC qua m ng ho g i l nh yêu c ề ế ố ớ ạ ặc qua bluetooth để ử ệ ầu động cơ quay theo t ng khác nhau. ố ộ c đ và hướ 1.2.2. Kết luận chương a) Các yêu c u bài toán ầ Yêu cầu đặt ra cho bài toán là: - c thi b u khi n chuy ng s d ng Kit SoC ng d ng n n Thự ộ điề ể ển động đối tượ ử ụ ứ ụ ề t ng FPGA c a Altera xây d ng mô hình g p xe robot. ả ủ để ự ải lậ - m th c thi trên mô hình xe robot gi l p Kiể ử và đánh giá kêt quả thự ả ậ b) n c tài Giới hạ ủa đề Bài toán ch d ng l i robot mô hình nh , không ch ng l ỉ ừ ạ ỏ ịu được tải trọ ớn, chưa đầy đủ ện điệ ử để ế ế ỉ ầ các linh ki n t thi t k hoàn ch nh theo yêu c u bài toán. Và các tính toán ở đây chỉ ấ ệm chưa đả ảo đượ mang tính ch t thí nghi m b c tính chính xác cao.
  • 44. 35 CHƯƠNG II: THIẾT KẾ HỆ THỐNG 2.1. Sơ đồ ố ổ ể ủ ệ ố kh i t ng th c a h th ng Hình 2. 1 c u chúc c a h Sơ đồ ấ ủ ệ thống H c xây d 4 module l n: g m module m u ệ thống đượ ựng trên cơ sở ớ ồ ạch điề khi e ph n c ng c a bo m u khi n trung tâm, ph n m ển động cơ, modul ầ ứ ủ ạch điề ể ầ ềm ch cu ạy trên linux arm để điề ể ự ế ớ ầ ứ u khi n tr c ti p t i ph n c ng, module ố ầ i cùng là ph n m m xây d ng trên Máy tính PC ho n tho ề ự ặc trên điệ ạ ể i đ tương tác vớ ờ i ngư i dùng. 2.2. c t h Sơ đồ đặ ả ệ thống H ng ch y c th u khi n. D ệ thố ủ ếu đượ ực thi trên module điề ể ự án này cũng chủ y u l p trình FPGA và l p trình code C trên module này. Module này g m 2 ph ế ậ ậ ồ ần chính đó là thiế ế ầ ứ ế ế ầ ề ự t k ph n c ng và thi t k ph n m m. D án robot có các file chính là lo i FPGA Bitstream: soc_system.rbf y trên Linux. ạ và chương trình smart_car chạ Chức năng chính củ ấ ộ điề ển PWM để điề a FPGA Bitstream là cung c p b u khi u khi t chi u c c ch y trên ển quay 2 động cơ mộ ề ủa robot. Chương trình smart_car đượ ạ Linux nhúng trong Altera SoC. Ch u khi n ức năng chính của chương trình này là điề ể thông qua yêu c u c i dùng t a ch c liên k t t ph n c ng ầ ủa ngườ ới các thanh đị ỉ đượ ế ừ ầ ứ t a robot. ới các chức năng làm quay động cơ củ
  • 45. 36 Hình 2. 2 i h Sơ đồ khố ệ thống Trong hình 2.2 th hi n r t rõ các ch t c a h ng. T ể ệ ấ ức năng và liên kế ủ ệ thố rong đó phần HPS/ARM là nơi hệ điều hành linux được nhúng trên đó, từ đó ngườ ế i thi t k có th l p trình các ng d c thi các l u khi n các ch ế ể ậ ứ ụng để thự ệnh điề ể ức năng thiết k t ph n c ng. Các ph n c ng này c thi t k và th c thi trên ph ế ừ ầ ứ ầ ứ đượ ế ế ự ần FPGA/QSYS và thông qua b u khi u khi ộ điề ển PWM để điề ển động cơ. Đây chính là phiên b n r t nhi t tr i s d ng công ngh k t h p gi a FPGA ả ấ ều tính năng vượ ộ ử ụ ệ ế ợ ữ v n 1.1.4. ới DSP như đã trình bày trong chương I, phầ
  • 46. 37 2.3. nguyên odule c a h Sơ đồ lý và các m ủ ệ thống 2.3.1. nguyên lý t ng thê Sơ đồ ổ Hình 2. 3 thi t k n c u khi Sơ đồ ế ế phầ ứ ề ng đi ển hệ thống Hình 2.3 th i c a d án Quartus FPGA c a d ể hiện sơ đồ khố ủ ự ủ ự án điều khiển robot dò đường. Dự án này đượ ạ c t o trong Qsys. B u khi c thi t k ộ điề ển PWM đượ ế ế trong Qsys đượ ử ụng để ề c s d đi u khi a robot. B u khi ển 2 động cơ củ ộ điề ển PIO cho LED[6:0] và KEY[1:0] trong Qsys đượ ồ c bao g m và k t n i v i HPS. Vì v y mà ế ố ớ ậ HPS/ARM có th truy c ể ập các thiế ị t b ngoại vi. LED[7] được k t n ế ối để đếm như một xung clock. Khi FPGA đượ ấ c c u hình với dự án Quartus này thì đèn LED[7] sẽ sáng. 2.3.2. Module u khi n điề ể động cơ u khi m v chuy i tín hi u khi n t kh Khối điề ển động cơ có nhiệ ụ ển đổ ệu điề ể ừ ối điề ể ệu điện áp để thay đổ ốc độ ề ủ u khi n trung tâm thành tín hi i t và chi u quay c a động cơ. Trên thự ế ấ ề c t , r t nhi u mạch điề ển động cơ có thể đả ậ ả u khi m nh n c hai nhi m v ch c u H dùng BJT ho c FET, m ch 1 FET + 1 relay, IC 298, ệ ụ này như: mạ ầ ặ ạ IC TD18200… Tùy vào ứ ụ ụ ể ớ ị ng d ng c th , v i các giá tr dòng áp theo yêu c u mà ầ l a ch n m u khi p m ch nguyên lý c a kh ự ọ ạch điề ển động cơ cho phù hợ . Sơ đồ ạ ủ ối điề ển động cơ đượ ế ế như hình 2.4 u khi c thi t k
  • 47. 38 Hình 2. 4 M u khi n motor ạch điề ể 2.3.3. u khi Module điề ển hệ thống Các thi t b SoC FPGA có c nhau, vì v y trong ph n này s ế ị ấu trúc tương tự ậ ầ ẽ mô t c v ki n trúc c a thi t b Altera Cyclone V SoC. Thi t b SoC bao g ả ụ thể ề ế ủ ế ị ế ị ồm hai ph n riêng bi t, m t là b x lý c ng (HPS) lõi kép ARM Cortex A9 và hai là ầ ệ ộ ộ ử ứ ph n FPGA. B x lý HPS tích h p nhi u lo i thi t b ngo i vi cho phép gi m kích ầ ộ ử ợ ề ạ ế ị ạ ả thư t đ ớ ạch và tăng hiệu năng hoạ c bo m ộ ủ ệ ố Trong đó: ng c a h th ng. FPGA:  Altera Cyclone® V SE 5CSEMA4U23C6N Thiết bị  c u hình c ng Serial EPCS128 Thiết vị ấ ổ – C ng USB-Blaster II onboard n ; JTAG Mode ổ để ạp chương trình 2 n Nút ấ
  • 48. 39 4 t Công tắc gạ 8 LEDs màu xanh đèn Ba ngu n xung clock 50MHz t b t o xung ồ ừ ộ ạ clock Hai bộ ắ chân c m GPIO 40-pin expansion header M t Arduino expansion header (Uno R3 compatibility), có th k i ộ ể ết nối vớ Arduino shields. M chân c m 10-pin Analog input expansion header. (chia s v i Arduino ột bộ ắ ẻ ớ Analog input) B chuy ộ ển đổ ế ớ i A/D, 4-wire SPI giao ti p v i FPGA HPS (Hard Processor System lý c , H ng x ệ thố ử ứng): B vi x lý 925MHz Dual-core ARM Cortex- ộ ử A9 1GB DDR3 SDRAM (32-bit data bus) 1 Gigabit Ethernet PHY V i b k t n i RJ45 ớ ộ ế ố C ng USB OTG, B k i USB Micro- ổ ộ ết nố AB Chân c nh ắm thẻ ớ Micro SD card Accelerometer (I2C interface + interrupt) C ng k t n i UART to USB, USB Mini-B ổ ế ố Nút reset nóng và nút reset ngu i ộ M i s d ng và m u khi n LED d ng ột nút cho ngườ ử ụ ột nút điề ể cho người sử ụ Giao tiếp chân căm LTC 2x7 T t n p theo thi ất cả các kế ối đã được thiết lậ ết bị Cyclone V SoC FPGA để ấ cung c p t n d i dùng. i dùng có th c phù h p ố ệ i đa các ti ụng cho ngườ Ngườ ể ấu hình FPGA để ợ v c a mình. ới thiết kế ủ Sơ đồ ố Nano đượ ả ồ ế ị kh i Kit DE0- c mô t trong hình 2.5 bao g m các thi t b sau: FPGA Device Cyclone V SoC 5CSEMA4U23C6N Device Dual-core ARM Cortex-A9 (HPS) 40K programmable logic elements 2,460 Kbits embedded memory 5 fractional PLLs 2 hard memory controllers
  • 49. 40 Configuration and Debug Serial configuration device EPCS128 on FPGA – Onboard USB-Blaster II (Mini-B USB connector) Hình 2. i c 5 Sơ đồ khố ủa Kit DE0 Nano Memory Device (Thi b ) ết bị ộ nhớ 1GB (2x256Mx16) DDR3 SDRAM HPS trên M t khe c m th Micro SD ộ ắ ẻ nhớ trên HPS Communication t n (Kế ối) One USB 2.0 OTG (ULPI interface with USB Micro-AB connector) UART to USB (USB Mini-B connector) 10/100/1000 Ethernet Connectors k (Bộ ết nối) Two 40-pin expansion headers Arduino expansion header One 10-pin ADC input header One LTC connector (one Serial Peripheral Interface (SPI) Master ,one I2C and one GPIO interface )
  • 50. 41 ADC 12-Bit Resolution, 500Ksps Sampling Rate. SPI Interface. 8-Channel Analog Input. Input Range : 0V ~ 4.096V. Switches, Buttons, and Indicators (Công tác, nút nhấn) 3 user Keys (FPGA x2, HPS x1) 4 user switches (FPGA x4) 9 user LEDs (FPGA x8, HPS x 1) 2 HPS reset buttons (HPS_RESET_n and HPS_WARM_RST_n) Sensors m bi (Cả ến) G-Sensor on HPS Power (Nguồn) 5V DC input Trên Board này ngườ ể ế ế ầ ứ ục đích yêu cầ ủ ự i dùng có th thi t k ph n c ng theo m u c a d án trên ph n FPGA, và l p trình ph n m ầ ậ ầ ề ệ điề ạ m trên h u hành Linux ch y trên chip ARM c u khi n các thành ph n FPGA theo thi t k thông qua các k ủa Board điề ể ầ ế ế ết n ng. ối của hệ thố 2.3.4. Module dò đường Nguyên lý ho ng c a m ch c m bi n thu phát quang d a trên s h p th ạt độ ủ ạ ả ế ự ự ấ ụ và ph n x ánh sáng c a các màu s c khác nhau c a n ch màu ả ạ ủ ắ ủ ền và đường đi. Vạ trắ ả năng phả ạ ốt hơn vạch màu đen. Khi đó, q ở ẽ ng có kh n x ánh sáng t uang tr s nh c các tia sáng ph n x l n làm cho giá tr n tr gi m khá ận đượ ả ạ có cường độ ớ ị điệ ở ả nhi u, d n áp trên quang tr là Vmin s c l i, v ề ẫn đến điệ ở ẽ thấp. Ngượ ạ ạch màu đen có kh n x ch màu tr ả năng phả ạ ánh sáng kém hơn vạ ắng. Khi đó, quang trở nhận được các tia sáng ph n x p làm cho giá tr n tr c a quang tr gi ả ạ có cường độ thấ ị điệ ở ủ ở ảm không đáng kể ẫn đến điệ ở ẽ , d n áp trên quang tr lúc này là Vmax s cao (hình 2.6). Hình 2.6 hi m ch nguyên lý c m bi n. thể ện sơ đồ ạ ủa cả ế (1) Điệ ế ở ref, đượ ức (1), dùng để ớ n áp trên bi n tr V c tính theo công th so sánh v i điệ ừ ở để ển đổ ức logic 0 tương ứ ớ ặ n áp t quang tr chuy i thành các m ng v i 0Vdc ho c m ng v u khi n có th ức logic 1 tương ứ ới 5Vdc mà vi điề ể ể hiểu được.
  • 51. 42 Hình 2. 6 m ch modul Sơ đồ ạ e dò đường 2.4. L a ch u hình h ự ọn cấ ệ thống Để ự ọn đượ ấ ệ ố ợ ớ ầ l a ch c c u hình h th ng phù h p v i yêu c u bài toán, chúng tôi đã tìm hiề ệ thông như trong phần 2.3 đã phân tích, và sau đó đưa ra các lự u các h a chọ ợp để ế n phù h thi t kế thành mô hình như trong hình 2.7 dưới đây: Hình 2. 7 Mô hình hệ thống
  • 52. 43 H ng g m có các kh 2.7 c phân làm 3 kh i chính: ệ thố ồ ối như trong hình đượ ố kh u khi n h ng; Kh u khi . Và nhi u các ối điề ể ệ thố ối điề ển động cơ; khối dò đường ề kh i ngu n, kh y nhiên trong bài lu ối khác như khố ồ ối động cơ. Tu ận văn này chúng tôi ch u 3 kh i chính c bi u khi ỉ đi sâu và tìm hiề ố , và đặ ệt đi sâu phân tích khối điề ển h ng, vì t t c t k , l p trình FPGA và l p trình ph n m ệ thố ấ ả nhưng thao tác thiế ế ậ ậ ầ ềm b ng ngôn ng u n m trên kh u khi n. u khi n trung tâm này là ằ ữ C đề ằ ối điề ể Khối điề ể m t Kit DE0-Nano s t trong ph n 2.4.1 ộ ẽ được trình bày chi tiế ầ 2.4.1. Khố ề i đi u khiển hệ thống Hình 2. Kh 8 ối điề ể u khi n Kit DE0 Nano Kh Nano ối điề ể ệ ố ộ u khi n h th ng là m t board DE0- -SoC. Nó s d ng chip ử ụ ARM/HPS ch y h u hành linux. H c c u hình sao cho kh ng t ạ ệ điề ệ thống đượ ấ ởi độ ừ thẻ ớ ệ điề nh MicroSD trên DE0- -SoC. H Nano u hành linux và các file FPGA bitstream được lưu trữ ẻ ớ trên th nh MicroSD (file soc_system.rbf; socfpga.dtb; u- boot.scr; zImage) x boot v i MSEL[4:0]=00000 thì bootloader s . Để chế độ Linu ớ ẽ đượ ấ ở ộ ớ c c u hình FPGA khi kh i đ ng v i file soc_system.rbf.
  • 53. 44 Trong c u t o kh i hình 2.8, chúng ta th y có thành ph n chính: thành ph ấ ạ ố ấ ầ ần FPGA được đánh dấu và chú thích màu xanh lá cây, các thành ph n này giao ti p ầ ế tr th th ự ế ầ ủ ệ c ti p và các thành ph n khác c a h ống và đã đượ ế ế ập trình để c thi t k l ực thi các nhi m v theo yêu c u bài toán. Thành ph u và chú ệ ụ ầ ần HPS được đánh dấ thích màu Cam, các thành phần này đượ ế ế ứ ố định để ế ố ữ c thi t k c ng c k t n i gi a các thi th th ế ế ớ ệ t k FPGA v i h ố ầ ệ ng (System). Thành ph n h ống (System) được đánh d c bi n g m có m t lõi x tính ấu và chú thích màu xanh nướ ể ồ ộ ử lý ARM trung tâm để toán và xử lý bài toán. 2.4.2. Khố ề i đi n khiể ộng cơ n đ Trong d án này, tác gi s d t k và ch t o cho m ự ả ử ụng IC L298 để thiế ế ế ạ ạch điề ển động cơ. IC này đượ ợ ạ ầ ể ạt độ ở điệ u khi c tích h p 2 m ch c u H, có th ho ng n áp t nh m c t ng c a, L298 có kh ối đa 46Vdc và dòng điện đị ứ ổ ộng là 5A. Hơn nữ ả năng đả ều quay và thay đổ ốc độ ủa động cơ mộ ễ ằ ử o chi i t quay c t cách d dàng b ng cách s d g pháp PWM. và l ụng phươn L298 được thiết kế ắp đặt như hình 2.9 Hình 2. Kh 9 ối điề ể ộng cơ L298 u khi n đ
  • 54. 45 Trên hình 2.9: Các chân c c n i v i dây ắm đầu vào INA, INB, INC, IND đượ ố ớ d n sang chân c m GPIO c a SoCKit kh u khi n h ng. Các chân OUTA, ẫ ắ ủ ối điề ể ệ thố OUTB, OUTC, OUTD t ng c ừ ặp được nối với 2 động cơ. 2.4.3. Khối dò đường Khối dò đườ ử ụ ạch dò đườ ng s d ng m ng New Way v n áp vào 5 V và ới điệ dòng điệ ử ụng IC 74HC14D để ử ủa 5 đèn cả ế n 100mA, s d x lý các thông tin c m bi n màu s c và 1 c u ra là các tín hi u s hi n k t qu ắ ảm biển gần đưa ra đầ ệ ố 0 và 1 để thể ệ ế ả c a c m bi m bi n màu s c tr v giá tr 1 là lúc g p d ủ ả ến. Khi các đèn cả ế ắ ả ề ị ặ ải màu đen c ng. hi ủa vạch chỉ đườ Được thể ện như hình 2.10 Hình 2. Kh 10 ối dò đường Trên hình 2.10: Các u ra c a c m bi n t - c n i v i dây chân đầ ủ ả ế ừ s1 > s7 đượ ố ớ d n n n các chân c m GPIO c a SoCkit bên kh u khi n h ng. T ẫ ối đế ắ ủ ối điề ể ệ thố rong đó chân s1- 5 là chân c a các c m bi n h ng ngo ng v U1 >s ủ ả ế ồ ại tương ứ ới các đèn LED từ – ủ ả ế ạ ầ , còn s6 là chân c U5 a c m bi n va ch m g n.
  • 55. 46 CHƯƠNG III: XÂY DỰNG HỆ THỐNG 3.1. Xây d ng ph c ự ần ứng 3.1.1. Dự án Quartus cơ bản D án Quartus my_first_hps-fpga_base là có s c DE0- - ự ẵn trong thư mụ Nano SoC trong đĩa CD đi kèm với Kit: CD-Rom: DemonstrationSOC_FPGAmy_first_hps_fpga_base D án quartus này bao g m t t c các chân khai báo c n thi t cho c HPS và ự ồ ấ ả ầ ế ả FPGA. Chú ý chân khai báo c a HPS c n ph i ch rõ t i tr c ti p các chân và ủ ầ ả ỉ ớ ự ế chân IO chu n. D m các h ẩ ự án này cũng bao gồ ệ thống Qsys cơ bả ầ n và các thành ph n c a HPS. Các thành ph n c c thi k và c u hình chu n trong thi t k ủ ầ ủa HPS đã đượ ết ế ấ ẩ ế ế ph n c ng c a HPS DE0- -SoC. ầ ứ ủ Nano Hình 3. 1 Thành ph n HPS hps_0 trong h ng Qsys ầ ệ thố Để ể ể ở ệ ống Qsys trong khi đang mở ự phát tri n chúng ta có th m h th d án Quartus, và nhấ ọn vào menu “Tools >Qsys” trong Quartus II. Khi cử ổ n ch - a s Qsys xu t hi n, nó s h i dùng ch n m t file h ng h p này ấ ệ ẽ ỏi ngườ ọ ộ ệ thống Qsys. Trong trườ ợ chọn file Qsys là “soc_system.qsys”. Hình 3.1 thể ệ ộ ủ ệ ố hi n n i dung c a file h th ng Qsys, nó ch n HPS hps_0. ứa các thành phầ
  • 56. 47 Hình 3.2 minh h a các c ng ligthweight HPS- -FPGA AXI Master c ọ ổ to ủa thành ph i phát tri n có th k t n i c ng này t i m i c ng memory- ần HPS. Ngườ ể ể ế ố ổ ớ ọ ổ mapped slave c a các thành ph i phát tri n s truy xu HPS/ARM. ủ ần mà ngườ ể ẽ ất từ Hình 3. 2 C ng AXI a thành ph ổ Master củ ần HPS 3.1.2. n trên n n Phát triể ền tảng dự án cơ bả Phầ ẽ ọ ứ ộ ầ n này s minh h a cách th c thêm vào m t thành ph n PIO trong Qsys, và làm th k t n i thành ph n PIO này v i thành ph n HPS. Thành ph n PIO ế nào để ế ố ầ ớ ầ ầ này s d u khi t n i v u tiên hãy sao chép d ử ụng để điề ển đèn LED kế ố ới FPGA. Đầ ự án Quartus my_first_hps_fpga_base tới thư mục trên máy tính. M d án và m file ở ự ở Qsys “soc_system.qsys”. Trong h n c a công c Qsys, nh n t n tìm ki m s ộp thư việ ủ ụ ậ ừ khóa ‘pio’ nhấ ế ẽ xu t hi n c a s t hi n, ch n nó và sau ấ ệ ử ổ như hình 3.3. Khi “PIO (Parallel I/O)” xuấ ệ ọ đó nhấn vào “Add …” để ầ ệ ố thêm thành ph n PIO vào h th ng Qsys.
  • 57. 48 Hình 3. 3 Tìm và thêm thành ph n PIO ầ Khi c a s PIO xu t hi n, chúng ta c r ủ ổ ấ ệ ần thay đổi độ ộng Width là 8, và đảm b o ch c ch n r c l a ch ả ắ ắ ằng “Output” trong thẻ Direction đượ ự ọn, và thay đổ ị i giá tr trong Output Port Reset Value thành 0xff như trong hình 3.4
  • 58. 49 Hình 3. 4 C u hình thành ph ấ ần PIO Khi thành ph c thêm vào h ng, c n thi t ph i k t n i c ng ần PIO đượ ệ thố ầ ế ả ế ố ổ h2f_lw_axi_master AXI master v i c ng s1 slave c a thành ph ớ ổ ủ ần PIO như hình 3.5. Hãy thay đổ ần PIO thành pio_led, thay đổ i tên thành ph i Clock Input thành clk_0, xu t tín hi ấ ệu đường dân Conduit như là pio_led_external_connection, và k t n u vào Reset Input t i h a ch Base c a thành ph ế ối đầ ớ ệ thống reset. Chú ý, đị ỉ ủ ần PIO pio_led là c c k quan tr ng cho vi c l p trình ph n m m nhúng sau này. ự ỳ ọ ệ ậ ầ ề Chương trình ARM sẽ ấ ần thông qua đị ỉ Base. Thườ truy xu t vào thành ph a ch ng thì chúng ta s t o ra m t file header có tên hps_0.h, file này có ch a ch ẽ ạ ộ ứa các đị ỉ Base c a các thành ph n trong thi t k FPGA, t i phát tri n ph n m m có ủ ầ ế ế ừ đó ngườ ể ầ ề thể ử ụng đị ỉ đó để ấ ổ ự ện đọ ị s d a ch truy xu t vào các c ng và th c hi c ghi các giá tr vào thanh ghi đó.
  • 59. 50 Hình 3. 5 T o k i gi a HPS và thành ph ạ ết nố ữ ần PIO Trong công cụ Qsys, nhấn vào menu Generate->HDL Example…“có thể tìm tín hiệu giao diện mới pio_led_external_connection_export cho vi c thêm thành ph ệ ần PIO pio_led như trong hình 3.6. Người phát tri n có th nh ể ể ấn “Copy” để sao chép nội dung t i b ớ ộ nhớ đệm, sau đó dán vào tín hiệu pio_led_external_connection_export Quartus top và k t n ế ối nó với cổng LEDR như hình 3.7. trước khi đóng công cụ Qsys, hãy nhớ nhấn vào menu “Generate->Generate…” để ạ t o ra ngu n mã code cho h ồ ệ thống.
  • 60. 51 Hình 3. 6 giao di n pio_led c a h ệ ủ ệ thống Hình 3. 7 u hóa .pio_led_external_connection_export trong u0 ban đầ soc_system Cách thêm m t thành ph ng s n t code HDL: Hình 3.8 và 3.9 là ộ ần đã xây dự ẵ ừ các thành ph n trong Qys c a h ng, Hình 3.10 cách th c thêm vào 1 thành ph ầ ủ ệ thố ứ ần m a Qys t m t file HDL thi t k t ới củ ừ ộ ế ế ừ người dùng.
  • 61. 52 Hình 3. 8 các thành ph n trong Qys c a h ần cơ bả ủ ệ thống Hình 3. 9 Các thành ph n trong Qys c a h ầ ủ ệ thống
  • 62. 53 Hình 3. 10 Thêm vào m t thành ph n trong Qys ộ ầ 3.1.3. Biên d ch và ch ị ạy chương trình Các thành phần khác chúng ta cũng xây dựng các bướ ột cách tương tự c m như các bướ ế ế pio_led như các bướ c thi t k c trên, sau khi xây dựng xong chương trình s t o ra m t file *top.v, t file này chúng ta có th vi l p trình ẽ ạ ộ ừ ể ết code HDL để ậ theo ý đồ ủ ự c a d án. Nội dung file HDL như sau: `define ENABLE_HPS module DE0_Nano_SoC_golden_top( ///////// ADC ///////// output ADC_CONVST, output ADC_SCK, output ADC_SDI, input ADC_SDO, ///////// ARDUINO ///////// inout [15:0] ARDUINO_IO, inout ARDUINO_RESET_N,
  • 63. 54 ///////// FPGA ///////// input FPGA_CLK1_50, input FPGA_CLK2_50, input FPGA_CLK3_50, ///////// GPIO ///////// inout [35:0] GPIO_0, output [35:0] GPIO_1, `ifdef ENABLE_HPS ///////// HPS ///////// inout HPS_CONV_USB_N, output [14:0] HPS_DDR3_ADDR, output [2:0] HPS_DDR3_BA, output HPS_DDR3_CAS_N, output HPS_DDR3_CKE, output HPS_DDR3_CK_N, output HPS_DDR3_CK_P, output HPS_DDR3_CS_N, output [3:0] HPS_DDR3_DM, inout [31:0] HPS_DDR3_DQ, inout [3:0] HPS_DDR3_DQS_N, inout [3:0] HPS_DDR3_DQS_P, output HPS_DDR3_ODT, output HPS_DDR3_RAS_N, output HPS_DDR3_RESET_N, input HPS_DDR3_RZQ, output HPS_DDR3_WE_N, output HPS_ENET_GTX_CLK, t HPS_ENET_INT_N, inou output HPS_ENET_MDC, inout HPS_ENET_MDIO,
  • 64. 55 input HPS_ENET_RX_CLK, input [3:0] HPS_ENET_RX_DATA, input HPS_ENET_RX_DV, output [3:0] HPS_ENET_TX_DATA, output HPS_ENET_TX_EN, inout HPS_GSENSOR_INT, inout HPS_I2C0_SCLK, inout HPS_I2C0_SDAT, inout HPS_I2C1_SCLK, 2C1_SDAT, inout HPS_I inout HPS_KEY, inout HPS_LED, inout HPS_LTC_GPIO, output HPS_SD_CLK, inout HPS_SD_CMD, inout [3:0] HPS_SD_DATA, output HPS_SPIM_CLK, input HPS_SPIM_MISO, output HPS_SPIM_MOSI, inout HPS_SPIM_SS, input HPS_UART_RX, output HPS_UART_TX, input HPS_USB_CLKOUT, ut [7:0] HPS_USB_DATA, ino input HPS_USB_DIR, input HPS_USB_NXT, output HPS_USB_STP, //DC MOTOR CONTROL output MTRL_P, output MTRL_N,
  • 65. 56 output MTRR_P, output MTRR_N, MTR_Fault_n, input output MTR_Sleep_n, `endif /*ENABLE_HPS*/ ///////// KEY ///////// input [1:0] KEY, ///////// LED ///////// output [7:0] LED, SW ///////// ///////// input [3:0] SW, ///////// SENSOR EXT////// input s1, input s2, input s3, input s4, input s5, input clp, near input ); //====================================================== = // REG/WIRE declarations //====================================================== = wire [17:0] pwm; //////////LegRF////////// assign GPIO_1[9] = pwm[0]; assign GPIO_1[10] = pwm[1]; assign GPIO_1[11] = pwm[2];
  • 66. 57 //////////LegRM//////////// assign GPIO_1[17] = pwm[3]; assign GPIO_1[16] = pwm[4]; assign GPIO_1[15] = pwm[5]; //////////LegRB//////////// assign GPIO_1[14] = pwm[6]; assign GPIO_1[13] = pwm[7]; assign GPIO_1[12] = pwm[8]; //////////LegLF//////////// assign GPIO_1[2] = pwm[9]; assign GPIO_1[1] = pwm[10]; assign GPIO_1[0] = pwm[11]; //////////LegLM//////////// assign GPIO_1[18] = pwm[12]; assign GPIO_1[19] = pwm[13]; assign GPIO_1[20] = pwm[14]; //////////LegLB//////////// assign GPIO_1[21] = pwm[15]; assign GPIO_1[22] = pwm[16]; assign GPIO_1[23] = pwm[17]; //don't sleep assign MTR_Sleep_n = 1'b1; //====================================================== = // Structural coding //====================================================== soc_system u0 ( //Clock&Reset .clk_clk (FPGA_CLK1_50 ), // clk.clk
  • 67. 58 .reset_reset_n (1'b1 ), // reset.reset_n S ddr3 //HP .memory_mem_a ( HPS_DDR3_ADDR), // memory.mem_a .memory_mem_ba ( HPS_DDR3_BA), // .mem_ba .memory_mem_ck ( HPS_DDR3_CK_P), // .mem_ck .memory_mem_ck_n ( HPS_DDR3_CK_N), // .mem_ck_n .memory_mem_cke ( HPS_DDR3_CKE), // .mem_cke .memory_mem_cs_n ( HPS_DDR3_CS_N), // .mem_cs_n .memory_mem_ras_n ( HPS_DDR3_RAS_N), // .mem_ras_n .memory_mem_cas_n ( HPS_DDR3_CAS_N), // .mem_cas_n .memory_mem_we_n ( HPS_DDR3_WE_N), // .mem_we_n .memory_mem_reset_n ( HPS_DDR3_RESET_N), // .mem_reset_n .memory_mem_dq ( HPS_DDR3_DQ), // .mem_dq .memory_mem_dqs ( HPS_DDR3_DQS_P), // .mem_dqs .memory_mem_dqs_n ( HPS_DDR3_DQS_N), // .mem_dqs_n