L ỜI CAM ĐOAN
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à:
- Thực thi b ộ điều khi n chuyể ển động đối tượng s d ng Kit SoC ng d ng n n ử ụ ứ ụ ề
t ng FPGA c a Altera xây d ng mô hình gả ủ để ự ải lập xe robot.
- Kiểm th ử và đánh giá kêt quảthực thi trên mô hình xe robot gi l p ả ậ b) Giới hạn của đề tài
Bài toán ch d ng l i robot mô hình nh , không chỉ ừ ạ ỏ ịu được tải trọng lớn, chưa đầy đủ các linh kiện điệ ử để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ỉ mang tính ch t thí nghiấ ệm chưa đảm bảo được tính chính xác cao.
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 Sơ đồ ấ c u chúc c a h ủ ệthống
H ệ thống được xây dựng trên cơ sở 4 module l n: g m module mớ ồ ạch điều khiển động cơ, module ph n c ng c a bo mầ ứ ủ ạch điều khi n trung tâm, ph n mể ầ ềm chạy trên linux arm để điều khi n tr c ti p t i ph n c ng, module ể ự ế ớ ầ ứ cuối cùng là ph n ầ
m m xây d ng trên Máy tính PC hoề ự ặc trên điện thoạ ểi đ tương tác với người dùng.
2.2. Sơ đồ đặ ả ệ c t h thống
H ệthống ch yủ ếu được thực thi trên module điều khi n. D ể ự á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 ạ và chương trình smart_car chạy trên Linux. Chức năng chính của FPGA Bitstream là cung c p b ấ ộ điều khiển PWM để điều khiển quay 2 động cơ một chi u cề ủa robot. Chương trình smart_car được ch y trên ạ
Linux nhúng trong Altera SoC. Chức năng chính của chương trình này là điều khi n ể
thông qua yêu c u cầ ủa người dùng tới các thanh địa ch ỉ được liên k t t ph n c ng ế ừ ầ ứ
Hình 2. 2 Sơ đồkhố ệi h thống
Trong hình 2.2 th hi n r t rõ các chể ệ ấ ức năng và liên kế ủt c a h ệthống. Trong
đó 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ế ể ậ ứ ụng đểthực thi các lệnh điều khi n các chể ứ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 ộ điều khiển PWM để điều khiển động cơ. Đây chính
là phiên b n r t nhiả ấ ều tính năng vượt tr i s d ng công ngh k t h p gi a FPGA ộ ử ụ ệ ế ợ ữ
2.3. Sơ đồ nguyên lý và các module c a h ủ ệthống2.3.1. Sơ đồ nguyên lý t ng thê ổ 2.3.1. Sơ đồ nguyên lý t ng thê ổ
Hình 2. 3 Sơ đồ thi t k ế ếphần cứng điều khiển hệthống
Hình 2.3 th ể hiện sơ đồ khố ủi c a d án Quartus FPGA c a d ự ủ ự án điều khiển
robot dò đường. D ự án này đượ ạc t o trong Qsys. B ộ điều khiển PWM được thi t k ế ế trong Qsys đượ ử ụng để ềc s d đi u khiển 2 động cơ của robot. B ộ điều khiể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 khi n trung tâm thành tín hiể ệu điện áp để thay đổ ốc đội t và chi u quay c a ề ủ động cơ. Trên thự ế ấc t , r t nhi u mề ạch điều khiển động cơ có thể đả m nh n c hai ậ ả
nhi m v ệ ụ này như: mạch c u H dùng BJT ho c FET, m ch 1 FET + 1 relay, IC 298, ầ ặ ạ 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ự ọ ạch điều khiển động cơ cho phù hợ . Sơ đồp m ch nguyên lý c a khạ ủ ối
Hình 2. 4 Mạch điều khi n motor ể
2.3.3. Module điều khiển hệthống
Các thi t b SoC FPGA có cế ị ấu trúc tương tự nhau, vì v y trong ph n này s ậ ầ ẽ
mô t c ả ụ thể ề ế v ki n trúc c a thi t b Altera Cyclone V SoC. Thi t b SoC bao gủ ế ị ế ị ồ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ước bo mạch và tăng hiệu năng hoạt động c a h th ng. ủ ệ ố Trong đó:
FPGA:
Thiết bị Altera Cyclone® V SE 5CSEMA4U23C6N Thiết vị ấ c u hình c ng Serial EPCS128ổ –
C ng USB-Blaster II onboard nổ để ạp chương trình; JTAG Mode 2 Nút ấn
4 Công tắc gạt
8 đèn LEDs màu xanh
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ộ ể ết nối với Arduino shields.
Một bộ chân c m 10-pin Analog input expansion header. (chia s v i Arduino ắ ẻ ớ
Analog input)
B chuyộ ển đổi A/D, 4-wire SPI giao ti p v i FPGA ế ớ HPS (Hard Processor System, H ệthống x ửlý cứ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ổ ộ ết nối USB Micro-AB Chân cắm thẻ nh ớ 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ột nút cho ngườ ử ụi s d ng và một nút điều khi n LED ể cho người sử ụ d ng Giao tiếp chân căm LTC 2x7
Tất cảcác kế ối đã đượt n c thiết lập theo thiết bị Cyclone V SoC FPGA để cung c p ấ
tối đa các tiện dụng cho người dùng. Người dùng có th cể ấu hình FPGA để phù h p ợ
với thiết kế ủ c a mình.
Sơ đồ kh i Kit DE0-ố Nano đượ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
Configuration and Debug
Serial configuration device EPCS128 on FPGA–
Onboard USB-Blaster II (Mini-B USB connector)
Hình 2. 5 Sơ đồkhố ủi c a Kit DE0 Nano Memory Device (Thiết bị ộ b nhớ)
1GB (2x256Mx16) DDR3 SDRAM trên HPS
M t khe c m th ộ ắ ẻnhớ Micro SD trên HPS
Communication (Kết nố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 (Bộ ế k 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 )
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 (Cảm biến)
G-Sensor on HPS
Power (Nguồn)
5V DC input
Trên Board này người dùng có th thi t k ph n c ng theo mể ế ế ầ ứ ục đích yêu cầu c a d ủ ự
án trên ph n FPGA, và l p trình ph n mầ ậ ầ ềm trên h ệ điều hành Linux ch y trên chip ạ
ARM của Board điều khi n các thành ph n FPGA theo thi t k thông qua các kể ầ ế ế ết nối của hệthống.
2.3.4. Module dò đường
Nguyên lý hoạt động c a m ch c m bi n thu phát quang d a trên s h p th ủ ạ ả ế ự ự ấ ụ
và ph n x ánh sáng c a các màu s c khác nhau c a nả ạ ủ ắ ủ ền và đường đi. Vạch màu trắng có kh ả năng phản x ánh sáng tạ ốt hơn vạch màu đen. Khi đó, quang tr s ở ẽ
nhận được các tia sáng ph n x ả ạ có cường độ ớ l n làm cho giá tr ị điện tr gi m khá ở ả
nhi u, dề ẫn đến điện áp trên quang tr là Vmin s ở ẽthấp. Ngượ ạc l i, vạch màu đen có
kh ả năng phản x ạ ánh sáng kém hơn vạch màu trắng. Khi đó, quang trở nhận được các tia sáng ph n x ả ạ có cường độ thấp làm cho giá tr ị điện tr c a quang tr giở ủ ở ả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 thể ện sơ đồ ạ hi m ch nguyên lý của cảm bi n. ế (1)
Điện áp trên bi n tr Vế ở ref, được tính theo công thức (1), dùng để so sánh v i ớ điện áp t quang tr chuyừ ở để ển đổi thành các mức logic 0 tương ứng v i 0Vdc ho c ớ ặ
Hình 2. 6 Sơ đồ m ch modulạ e dò đường 2.4. L a chự ọn cấu hình h ệthống
Để ự l a chọn đượ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ều các h ệ thông như trong phần 2.3 đã phân tích, và sau đó đưa ra các lựa chọn phù hợp để thi t kế ế thành mô hình như trong hình 2.7 dưới đây:
H ệ thống g m có các khồ ối như trong hình 2.7 được phân làm 3 kh i chính: ố
khối điều khi n h ể ệ thống; Khối điều khiển động cơ; khối dò đường. Và nhi u các ề
khối khác như khối ngu n, khồ ối động cơ. Tuy nhiên trong bài luận văn này chúng
tôi ch ỉ đi sâu và tìm hiều 3 kh i chínhố , và đặc biệt đi sâu phân tích khối điều khiển h ệ thống, vì t t c ấ ả nhưng thao tác thiết k , l p trình FPGA và l p trình ph n mế ậ ậ ầ ềm b ng ngôn ng ằ ữ C đều n m trên khằ ối điều khi n. ể Khối điều khi n trung tâm này là ể
m t Kit DE0-Nano s ộ ẽ được trình bày chi tiết trong ph n 2.4.1 ầ 2.4.1. Khối điều khiển hệthống
Hình 2. Kh8 ối điều khi n Kit DE0 Nano ể
Khối điều khi n h th ng là m t board DE0-ể ệ ố ộ Nano-SoC. Nó s d ng chip ử ụ
ARM/HPS ch y h ạ ệ điều hành linux. H ệ thống được c u hình sao cho khấ ởi động t ừ
thẻ nh MicroSD trên DE0-ớ Nano-SoC. Hệ điề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). Để chế độ Linux boot v i MSEL[4:0]=00000 thì bootloader s ớ ẽ được c u hình FPGA khi khấ ở ội đ ng v i file soc_system.rbf. ớ
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ực ti p và các thành ph n khác c a h ế ầ ủ ệthống và đã được thi t k lế ế ập trình đểthực thi các nhi m v theo yêu c u bài toán. Thành phệ ụ ầ ần HPS được đánh dấu và chú thích màu Cam, các thành phần này được thi t k c ng c ế ế ứ ố định để ế ố k t n i gi a các ữ
thiết k FPGA v i h ế ớ ệ thống (System). Thành ph n h ầ ệ thống (System) được đánh
dấu và chú thích màu xanh nước bi n g m có m t lõi x ể ồ ộ ử lý ARM trung tâm để tính toán và xử lý bài toán.
2.4.2. Khối điền khiển động cơ
Trong d án này, tác gi s dự ả ử ụng IC L298 để thiết k và ch t o cho mế ế ạ ạch
điều khiển động cơ. IC này được tích h p 2 m ch c u H, có th hoợ ạ ầ ể ạt động ở điện áp tối đa 46Vdc và dòng điện định m c t ng cứ ổ ộng là 5A. Hơn nữa, L298 có kh ả năng đảo chiều quay và thay đổ ốc đội t quay của động cơ một cách d dàng b ng cách s ễ ằ ử
dụng phương pháp PWM. L298 được thiết kế và lắp đặt như hình 2.9
Trên hình 2.9: Các chân cắm đầu vào INA, INB, INC, IND được n i v i dây ố ớ
d n sang chân c m GPIO c a SoCKit khẫ ắ ủ ối điều khi n h ể ệ thống. Các chân OUTA, 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ò đường s d ng mử ụ ạch dò đường New Way với điện áp vào 5 V và
dòng điện 100mA, s dử ụng IC 74HC14D để ử x lý các thông tin của 5 đèn cảm bi n ế
màu s c và 1 cắ ảm biển gần đưa ra đầu ra là các tín hi u s ệ ố 0 và 1 đểthể ệ hi n k t qu ế ả
c a c m biủ ả ến. Khi các đèn cảm bi n màu s c tr v giá tr 1 là lúc g p dế ắ ả ề ị ặ ải màu đen
của vạch chỉ đường. Được thể ện như hình 2.10 hi
Hình 2. Kh10 ối dò đường
Trên hình 2.10: Các chân đầu ra c a c m bi n t ủ ả ế ừs1 -> s7 được n i v i dây ố ớ
d n nẫ ối đến các chân c m GPIO c a SoCkit bên khắ ủ ối điều khi n h ể ệthống. Trong đó
chân s1- 5 là chân c a các c m bi n h ng ngo>s ủ ả ế ồ ại tương ứng với các đèn LED từ U1
CHƯƠNG III: XÂY DỰNG HỆ THỐNG
3.1. Xây d ng phự ần cứng 3.1.1. Dự án Quartus cơ bản
D án Quartus my_first_hps-fpga_base là có sự ẵn trong thư mục DE0-Nano-
SoC trong đĩa CD đi kèm với Kit:
CD-Rom: \Demonstration\SOC_FPGA\my_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 ẩ ự án này cũng bao gồm các h ệ thống Qsys cơ bản và các thành ph n ầ
c a HPS. Các thành ph n củ ầ ủa HPS đã được thi k và c u hình chu n trong thi t k ết ế ấ ẩ ế ế
ph n c ng c a HPS DE0-ầ ứ ủ Nano-SoC.
Hình 3. 1 Thành ph n HPS hps_0 trong h ầ ệthống Qsys
Để phát tri n chúng ta có th m h thể ể ở ệ ống Qsys trong khi đang mở ự d án Quartus, và nhấn chọn vào menu “Tools >Qsys” trong Quartus II. Khi cử- a s Qsys ổ
xu t hi n, nó s hấ ệ ẽ ỏi người dùng ch n m t file h ọ ộ ệthống Qsys. Trong trường h p này ợ
Hình 3.2 minh h a các c ng ligthweight HPS- -FPGA AXI Master cọ ổ to ủa thành phần HPS. Người phát tri n có th k t n i c ng này t i m i c ng memory-ể ể ế ố ổ ớ ọ ổ
mapped slave c a các thành phủ ần mà người phát tri n s truy xuể ẽ ất từ HPS/ARM.
Hình 3. 2 C ng AXI ổ Master của thành phần HPS 3.1.2. Phát triển trên nền tảng dự án cơ bản
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 ế nào để ế ố k t n i thành ph n PIO này v i thành ph n HPS. Thành ph n PIO ầ ớ ầ ầ
này s dử ụng để điều khiển đèn LED kế ố ới FPGA. Đầt n i v u tiên hãy sao chép d ựá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ộp thư viện c a công c Qsys, nh n t ủ ụ ậ ừ khóa ‘pio’ nhấn tìm ki m s ế ẽ
xu t hi n c a s ấ ệ ử ổ như hình 3.3. Khi “PIO (Parallel I/O)” xuất hi n, ch n nó và sau ệ ọ đó nhấn vào “Add …” để thêm thành ph n PIO vào h th ng Qsys. ầ ệ ố
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ủ ổ ấ ệ ần thay đổi độ ộng Width là 8, và đả r m b o ch c ch n rả ắ ắ ằng “Output” trong thẻ Direction đượ ực l a chọn, và thay đổi giá tr ị