HƯỚNG DẪN SỬ DỤNG PHẦN MỀM EDK 7.1i

22 494 2
HƯỚNG DẪN SỬ DỤNG PHẦN MỀM EDK 7.1i

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

EME-ST09 www2.hcmut.edu.vn/~vkchau/ HƯỚNG DẪN SỬ DỤNG PHẦN MỀM EDK 7.1i Giới thiệu : Trong chương trình đào tạo, chắc hẳn thế nào các bạn cũng đã được học môn Vi Xử Lý và thí nghiệm vi xử lý, và các bạn đã làm quen với việc lập trình 89C51 bằng ngôn ngữ Assembly dành cho họ 8051.Tuy nhiên ,bên cạnh đó các bạn cũng có thể lập trình cho họ 8051 bằng ngôn ngữ C(cụ thể là Keil C) , tài liệu có thể đọc cuốn “THIẾT KẾ HỆ THỐNG VỚI HỌ 8051” của thầy Tống Văn On. Vì ngôn ngữ C là ngôn ngữ cấp cao nên việc lập trình cho 8051 dễ dàng hơn so với sử dụng ngôn ngữ Assembly Việc viết chương trình rồi đổ vào 89C51 được gọi là “nhúng” và hệ thống tạo ra được gọi là hệ thống nhúng. Tuy nhiên, 8051 có hạn chế là bộ nhớ nhỏ(cả trong lẫn ngoài), nên ở đây, mình xin giới thiệu một hệ thống nhúng hoàn toàn (không có sẵn Vi đều khiển), vi điều khiển và chương trình điều khiển ở đây cũng sẽ được nhúng vào trong một FPGA( Field Programable Gate Array). Và một trong những chương trình thông dụng được sử dụng hiện nay là chương trình EDK (Embedded Design /Development Kit) được viết bởi hãng Xilinx và sử dụng FPGA của hãng Xilinx Tài liệu này sẽ hướng dẫn các bạn sử dụng phần mềm EDK 7.1i ,là version 2005 của hãng Xilinx. Chương trình EDK 7.1i là một chương trình thân thiện với người sử dụng, giúp chúng ta có thể dễ dàng thiết kế một hệ thống phức tạp mà chỉ thao tác đơn giản, vì thực chất, EDK sử dụng các chương trình VHDL viết sẵn (gọi là các IP) nên ta không cần viết các Ip đó, mà chỉ sử dụng nó, phần quan trọng là chúng ta phải viết phần mềm điều khiển chip nhúng đã được viết sẵn đó, và điều này cũng thực sự không phải là khó khăn vì chúng ta không cần sử dụng tập lệnh Asembly của chip nhúng ( được đặ tên là MicroBlaze) mà chúng ta sẽ sử dụng ngôn ngữ Standard C hay C++ để viết chương trình điều khiển MicroBlaze (tương đương với một vi xử lý 32 bit, đối với version 4.0 còn có thêm FPU/đơn vị xử lý dấu chấm động) và các thư viên hỗ trợ sẵn với các hàn điều khiển ngoại vi rất nhiều) Sau đây xin đi vào chi tiết hướng dẫn sử dụng ,xin lưu ý , file này sẽ đi kèm theo file hướng dẫn hình ảnh + âm thanh và kết quả minh họa Chương trình được viết với sự hướng dẫn tận tình của thầy Võ Kỳ Châu Lưu ý :chương trình EDK 7.1i chỉ có thể chạy được khi các bạn đã cài phần mềm Xilinx ISE 7.1 CÁC BƯỚC TẠO MỘT PROJECT : Bước 1 :tạo hệ thống phần cứng cơ bản trong XPS (Xilinx Platform Studio): khi các bạn cho chạy chương trình EDK thì một cửa sổ xuất hiên gọi là cửa sổ XPS, chúng ta sẽ bắt đầu tạo Project ở đây, màn hình khởi đông chương trình như sau : EME-ST09 www2.hcmut.edu.vn/~vkchau/ Trong hôp thoại đầu tiên xuất hiện, cho phép chúng ta thao tác cơ bản : - Base System Builder Wizard :hộp thoại này sẽ cho phép chúng ta tao một Project mới - Open A Recent Project : mở một Project đã có sẵn Ơû đây sẽ bắt đầu với bước tạo một Project mới: nhấn Ok khi hôp chọn ở Base System… , hộp thoại tiếp theo sẽ hiện ra: EME-ST09 www2.hcmut.edu.vn/~vkchau/ Ơû hôp thoại này, phần mềm sẽ yêu cầu đặt tên cho thư mục chứa Project và các thư mục liên quan, nhần Browse và tạo một thư mục với một đường dẫn cụ thể ,ở đây, mình sẽ đặt tên cho thư mục là vidu, lưu ý nhấn Open 2 lần, chương trình sẽ tự động tạo ra file system.xmp trong thư mục chúng ta vừa tạo : Nhấn OK để đi đến bước tiếp theo , ở bước này chúng ta sẽ tạo một hệ thống với sự hỗ trợ sẵn của phần mềm: EME-ST09 www2.hcmut.edu.vn/~vkchau/ Nhấn Next để đi đến bước tiếp theo: Ơû bước này sẽ cho phép chúng ta tạo xây dựng một hệ thống dựa trên các Kit hỗ trợ sẵn của Xilinx hoặc chúng ta sẽ tạo ra một hệ thống riêng dựa trên các hỗ trợ có sẵn của phầm mềm : - I would like to creat a system for the folloeing development Board: tạo hệ thống dựa tr6n các Kit Development của Xilinx, ví dụ như AFX Virtex II Pro fg456 Proto Board , Spartan 3_Starter Board… - I would like to creat a system for a custom Board :tạo một board riêng với các phần cứng và ngoại vi được hỗ trợ trong phần mềm, Lưu ý đây chỉ là chương trình chạy trên Kit Development chứ không phải chương trình nạp trực tiếp để tạo sản phẩn chuyên dụng EME-ST09 www2.hcmut.edu.vn/~vkchau/ Ơû đây chúng ta sẽ tạo ra hệ thống mà được hỗ trợ sẵn, mà cụ thể là sử dụng Kit Spartan 3-Starter, ta chon như sau : EME-ST09 www2.hcmut.edu.vn/~vkchau/ Hình sau là mặt trên và dưới với các ngoại vi của KIT Spartan_3 Starter Phần này sẽ gởi các bạn qua File kèm theo :ug130.pdf Chúng ta cũng có thể sử dụng Kit Development khác nếu có( ví dụ Kit Virtex II Pro) Nhấn Next để qua bước tiếp theo EME-ST09 www2.hcmut.edu.vn/~vkchau/ Kit Spartan 3 Starter với các thông số có sẵn ở phần trên, còn phần dưới trong ô chọn MicroBlaze hoặc Power PC thì chỉ có thể chọn MicroBlaze vì nó là một vi xử lý mềm, tức là nó cũng được nhúng vào FPGA trên Kit, còn Power PC là chip cứng , tức là chip này đã có sẵn trên Kit( Vd Virtex II Pro hay Virtex IV), do vậy, chúng ta sẽ không tốn tài nguyên trên FPGA khi sử dụng Power PC (nếu dùng các Kit trên mà sử dụng MicroBlaze thì sẽ tốn thêm tài nguyên trên FPGA),nghĩa là đối với các Kit có hỗ trợ Power PC ta chỉ cần nhúng phần mềm điều khiển mà không cần nhúng vi xử lý. Do vậy đối với các thiết kế lớn hoặc cần viết thêm các ngoại vi thì chúng ta mới sử dụng Power PC, còn bình thường chúng ta sử dụng MicroBlaze vì tính linh động của nó Nhấn Next để qua bước tiếp theo EME-ST09 www2.hcmut.edu.vn/~vkchau/ : Ơû hộp thoại này cho phép chúng ta chọn tần số (với điều liện là Kit phải hỗ trợ nhiều tần số, nếu không chúng ta cứ để mặc định), và chọn kích thước BRAM(Block RAM:là RAM ở trong chip, tốc độ cao và do chip quản lý trực tiếp), kích thước này tùy thuộc vào số lượng cổng của FPGA được sử dụng,đối với Spartan 3 được sử dụng trong Kit Spartan 3 Starter thì kích thước tối đa của BRAM là 16KB. Phần debug thì cứ để mặc định vì phần đó liên qua đến tập lệnh Debug mà ở đây không đề cập, nếu bạn nào có nhu cầu tìm hiểu về phần Debug này thì xin hãy tìm trong phần tài liệu gởi kèm Nhấn Next để tiếp tục quá trình thiết kế Bước tiếp theo, chương trình sẽ cho phép chúng ta lựa chọn các ngoại vi : EME-ST09 www2.hcmut.edu.vn/~vkchau/ Đầu tiên là cổng truyền bất đồng bộ UART,giao thức truyền của nó được hỗ trợ sẵn và gọi là OPB UARTLITE ,thường thì chúng ta dùng nó để giao thiếp với máy tính hay bất kì thiết bị nào sử dụng cổng truyền bất đồng bộ, tốc độ truyền chúng ta có thể lưạ chọn được, vấn đề lưu ý là không nên chọn quá lớn ,vì một lệnh xử lý của C tương đương với nhiều chu kì máy,mà xung cung cấp là 50MHz(có thể cao hơn đối với các Board khác hay chúng ta có mạch tạo dao động gắn thêm) hơn nữa thường thì chúng ta truyền lương data rất lớn nên nếu các bạn chọn tốc độ cao thì d64 gây hiểu nhầm mức dẫn đến truyền sai dữ liệu, ở đây xin chọn tốc độ là 38600b bps,chúng ta cũng có thể chọn số bit cho data truyền đi, tối đa là 32 bit , và chọn truyền bit Parity(kiểm tra lỗi) hoặc không, các bạn nhớ tốc độ truền và các phần đã chọn để sau này giao tiếp với máy tính hoặc các các thiết bị mà chúng ta muốn giao tiếp với hệ thống chúng ta vừa tạo ra Phần tiếp là Led_8 bit, được gọi tên là OPB GPIO,cũng được hỗ trợ để sử dụng 8 LED đơn trên Kit, DataSheet đi kèm,các bạn có thể tham khảo để tìm hiểu các thông số, ở thiết kế trong phần ví dụ này, mình chọn cả cổng RS232 và Led_8 bit trong hộp thoại đầu tiên này Nhấn Next để chọn các ngoại vi khác : EME-ST09 www2.hcmut.edu.vn/~vkchau/ Ơû hộp thoại này cho phép chọn ngoại vi là Led 7 đoạn và 4 nút nhấn trên kit, thực chất 4 nút nhấn này chúng ta chỉ được sử dụng 3 nút nhấn, vì chương trình đã sử dụng nút User Reset hay Button 3 làm nút khởi động người dùng, nút này khác với nút Reset hệ thống (RESET), khi nhấn nút này, chương trình sẽ được thực thi lại từ đầu một lần nữa, còn nút reset hệ thống sẽ RESET toàn bộ hệ thống lại,trong chương trình này sẽ không sử dụng 2 ngoại vi này (đánh dấu không chọn vào các ô tương ứng) Nhấn Next : Hộp thoại tiếp theo sẽ cho phép chúng ta chọn các Dip switch và SRAM(8 nút trượt trên Board): trong thiết kế này sẽ không sử dụng Dip Switch , nhưng sử dụng SRAM vì đây là thiết bị lưu trữ ngoài có kích thước lớn (1 MB), dùng để lưu trữ dữ liệu rất tốt, một kỳ Read/Write của nó tương đương từ 5->7 chu kỳ lệnh [...]... quản lý ứng dụng tại cửa sổ này Ở Tab System ,bạn có thể chỉnh sửa lại thiết kế, nếu muốn chỉnh sửa , bổ xung hay bỏ bớt ngoại vi ,các bạn nhấn chột phải vào CPU-microblaze_0 ,sẽ có các thẻ Tab hiện ra tương ứng Mục Add/ Edit Core cho phép chúng ta thêm bớt, chỉnh sửa phần cứng :ngoại vi địa chỉ ,Port, thông số…: Nếu muốn thêm phần nào, ta chọn ở bên cửa sổ phải ,nhấn Add, muốn bớt ta chọn phần cần bớt... có ngoại vi tương ứng thì chúng ta sẽ không lựa chọn chỉnh sửa.Hơn nữa, địa chỉ và các Port …là do hệ thống quy định, có trong bảng datasheet tương ứng với mỗi Kit, nên nếu không cần thiết thì ta không chỉnh sửa phần này Tương ứng với Platform Setting cũng vậy,trong hộp thoại này chỉ có phần nên quan tâm là các thư viện bổ xung, nếu muốn sử dụng các bạn nên tìm hiểu các tập lệnh của các thư viện này... bàn phím qua cổng PS2 có sẵn trên Kit, tuy nhiên, muốn viết được giao tiếp này thì các bạn phải nắm vững ngôn ngữ VHDL hoặc Verilog HDL, sử dụng phần mềm ISE để thiế kế, và vấn đề là các bạn phải viết toàn bộ các giao thức , các thư viện cho ngoại vi mới tạo ra, EDK 7.1i không hỗ trợ viết bằng C, bạn nào quan tâm thì xin tìm hiểu mục :Craet and Import Peripheral Wizard trong File est_rm.pdf Đây là chương... đến hệ thống chúng ta tạo ra thì phần mềm đã tự động tạo ra cho chúng ta ,ngoài ra còn hỗ trợ thêm thư viện chuẩn của C nên nếu không có nhu cầu thì không nên thêm vào các thư viện này Ở Tab Application ,ứng dụng mà chúng ta tạo ra đã dược tự động đánh dấu chọn để khi dịch chương trình ,thì chương trình này sẽ là chương trình điều khiển của chúng ta Ở phần này có hai phần rất quan trọng mà chúng ta... thể quay ngược lại để chỉnh sửa hoặc nhấn Generate để hoàn tất thiết kế: Một hôp thoại thông báo các bước thiết kế đã thành công, nhấn Finish hoàn thành EME-ST09 www2.hcmut.edu.vn/~vkchau/ Hộp thoại của bước thứ hai sẽ xuất hiện, cho phép chúng ta chỉnh sửa(1), dịch chương trình và Download xuống Board (3),chỉnh sửa chương trình TestMemory_Application(4) hay xem lại và chỉnh sửa cho thiết kế vừa mới tạo... UART của MicroBlaze mà chúng ta đã chọn từ đầu: Như vậy là Kit của chúng ta đã có thể giao tiếp với máy tính qua cổng truyền bất đồng bộ Nối dây truyền dữ liệu (sử dụng cổng 25 chân trên máy tính) và cổng nối tiếp để tryền chương trình từ phần mềm xuống Kit và giao tiếp giữa Kit và máy tính,lưu ý phải đúng chân ,nếu không muốn Kit có thể hư thì chúng ta đã có một hệ Sau đó , nạp (nhúng) toàn bộ hệ thống... ta cần chỉnh sửa một ít trong chương trình ứng dụng và một số chương trình phụ trợ khác Sau khi hoàn chỉnh các tất cả các bước trên,màn hình XPS hiện ra như sau : EME-ST09 www2.hcmut.edu.vn/~vkchau/ Ở trên cùng là các thanh công cụ với các công cụ hỗ trợ như dịch ra chỗi bit, nạp vào Kit, mô phỏng… Ở bên trái màn hình là cửa sổ quản lý hệ thống và quản lý ứng dụng, các bạn có thể chỉnh sửa bổ xung hệ... trong phần Driver, các bạn nhấn chuột phải ,chọn View API Doc để xem thư viện các hàm viết sẵn, một điều lưu ý là không phải tất cả các ngoại vi đều có hàm viết sẵn Như vậy chúng ta đã xong phần hệ thống và chương trình điều khiển, tiếp theo, các bạn cho dịch chương trình , nhấn vào nút trên thanh công cụ để dịch,lưu ý thời gian dịch là rất lâu, có thể gần 10 phút, và trong khi dịch, máy sẽ tận dụng. .. phép tạo ra File Test chương trình, file test này chúng ta sẽ chỉnh sửa lại tùy ý, đây là chương trình sẽ điều khiển Chip nhúng MicroBlaze EME-ST09 www2.hcmut.edu.vn/~vkchau/ Nhấn Next để đến bước tiếp theo, bước này sẽ cho phép chúng ta đặt chương trình ,dữ liệu và vùng stack trong BRAM hoặc SRAM Nhấn Next vì phần này chúng ta sẽ chỉnh sửa sau Chương trình sẽ hiên hộp thoại hoàn tất thiết kế, ở hộp thoại... này, mình sẽ tạo một ứng dụng để nhập dữ liệu từ bàn phím(chẳng hạn 100 ký tự), lưu trong SRAM và cho hiển thị giá trị nhị phân theo bảng mã ASCII lên LED 8 bit, do vậy mình chọn vùng data đặt trong SRAM, tuy nhiên vùng bss_stack cuối cùng cũng nên đặt trong SRAM, khai báo như trên thì chúng ta đã có thể đặt dữ liệu vào trong SRAM Và file TestApp_Memery chưa chỉnh sữa(do phần mềm tự tạo) : #include "xutil.h"

Ngày đăng: 25/05/2014, 04:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan