Đề tài Nghiên cứu hệ thống nhúng trên SOPC BUILDER và ứng dụng

Hệ thống Quartus II bao gồm đầy đủ tất cảcông thức thông thường đểmô tảyêu cầu mạch vào trong một hệ thống CAD. Người dùng có thể chỉ định yêu cầu mạch vào trong ngôn ngữ mô tả phần cứng Verilog hoặc VHDL. Và cái khác là dựa trên nội dung yêu cầu mạch trong mẫu của một sơ đồ biểu đồ. Bước cuối cùng trong quá trình thiết kế cần phải cấu hình mạch thiết kế trong thiết bị Nios II thật.

pdf91 trang | Chia sẻ: vietpd | Lượt xem: 1910 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu hệ thống nhúng trên SOPC BUILDER và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Mục lục Chương I ..................................................................................................3 Giới Thiệu Về Phần Mềm.......................................................................3 I.1. Phần Mềm Quartus II.......................................................................................................... 3 I.2. SOPC BUILDER............................................................................................................... 11 I.2.1 Khái niệm về SOPC: .................................................................................................... 11 I.2.2 Thiết Kế SOPC Builder Dùng Mã Verilog.................................................................. 15 I.3 Phần Mềm NIOS II IDE.................................................................................................... 21 I.3.1 Tổng quan các tính năng của bộ vi xử lý NIOS II:.................................................... 22 I.3.2 Cấu Trúc Thanh Ghi ................................................................................................... 23 I.3.3. Truy Xuất Bộ Nhớ Và Thiết Bị I/O ............................................................................ 26 I.3.4. Địa Chỉ......................................................................................................................... 27 I.3.5. Tập Lệnh ..................................................................................................................... 28 I.4 Board DE2 .......................................................................................................................... 29 I.4.1. Tính năng của mạch DE2 .......................................................................................... 29 I.4.2. Thông số kỹ thuật........................................................................................................ 30 I.4.3. Những Ví Dụ Về Những ứng Dụng Cao Cấp ........................................................... 34 Chương II................................................................................................36 Audio Codec W8731/L ...........................................................................36 II.1 Giới Thiệu Về AUDIO CODEC W8731/L ..................................................................... 36 II.1.1 Đường Dẫn Line Input............................................................................................... 38 II.1.2 Ngõ Vào Microphone ................................................................................................. 41 II.1.3 MICROPHONE BIAS................................................................................................ 41 II.1.4 Bộ Lọc ADC................................................................................................................ 41 II.1.5 Bộ Lọc DAC................................................................................................................ 43 II.1.6 Line Ngõ Ra. ............................................................................................................... 44 II.1.7 HEADPHONE AMPLIFIER .................................................................................... 45 II.2 Các Chế Độ Hoạt Động .................................................................................................... 47 II.2.1 SYPASS MODE.......................................................................................................... 47 II.2.2 SIDETONE MODE.................................................................................................... 49 II.3 Hoạt Động Của Thiết Bị .................................................................................................. 50 II.3.1 Cài Đặt Lại Thiết Bị ................................................................................................... 50 II.3.2 Lược Đồ CLOCKING................................................................................................. 50 II.3.3 LÕI XUNG CLOCK. .................................................................................................. 51 II.3.4 Máy Tạo Dao Động CRYSTAL.................................................................................. 51 II.3.5 CLOCKOUT ............................................................................................................... 52 II.3.6 Giao Diện Phần Mềm................................................................................................. 53 II.3.7 Chế Độ Năng Lượng ................................................................................................. 55 II.3.8 Bản Đồ Thanh Ghi ..................................................................................................... 59 II.3.9 Nét Đặc Trưng Của Đầu Lọc Kỹ Thuật Số ............................................................... 59 II.3.10 Sự Hoạt Động Ở Chế Độ Master/Slave. .................................................................. 61 II.4 Mô tả tổng quát về SD CARD ....................................................................................... 62 II.4.1 Tính Năng................................................................................................................... 63 II.4.2 Ứng dụng .................................................................................................................... 63 II.4.3 Mô Tả Port Của SD Card........................................................................................... 63 II.5 Định Dạng FAT ................................................................................................................ 64 II.6 Khái Niệm Về Tập Tin Wave .......................................................................................... 68 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 1 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Chương 3 Hệ Thống Tổng Quát ..........................................................70 III.1 Thiết Kế Mô Hình SD Music Player. ............................................................................ 70 III.2 Chương Trình Demo....................................................................................................... 71 III.2.1 Các Định Nghĩa Thiết Lập ....................................................................................... 71 III.2.2 Các Chương Trình Con Và Các Hàm Con.............................................................. 73 III.2.3 Chương Trình Chính................................................................................................ 85 Tài liệu tham khảo ................................................................................89 Phụ Lục ..................................................................................................90 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 2 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Chương I Giới Thiệu Về Phần Mềm I.1. Phần Mềm Quartus II Hệ thống Quartus II bao gồm đầy đủ tất cả công thức thông thường để mô tả yêu cầu mạch vào trong một hệ thống CAD. Người dùng có thể chỉ định yêu cầu mạch vào trong ngôn ngữ mô tả phần cứng Verilog hoặc VHDL. Và cái khác là dựa trên nội dung yêu cầu mạch trong mẫu của một sơ đồ biểu đồ. Bước cuối cùng trong quá trình thiết kế cần phải cấu hình mạch thiết kế trong thiết bị Nios II thật. Mỗi mạch logic, hay mạch phụ, thiết kế bằng phần mềm Quartus II được gọi là một Project. Phần mềm làm việc trên một project tại một thời điểm và giữ thông tin cho project trong một thư mục trên file hệ thống. Để bắt đầu thiết kế một mạch logic mới, trước tiên phải tạo một thư mục để chứa các file của nó. Hình 1.1.1. Hiển thị chính Quartus II. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 3 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hầu hết các lệnh cung cấp bởi Quartus II có thể được truy xụất bằng cách dùng một thiết lập của menu được xác định dưới dạng thanh tiêu đề. Hình 1.1.2. ví dụ file menu Để bắt đầu một thiết kế mới trước tiên phải định nghĩa một thiết kế project mới. Tạo một project mới như sau: ¾ Chọn File > New Project Wizard để được cửa sổ như hình 1.1.3. Có thể bỏ qua cửa sổ này trong project sau bằng cách đánh dấu check vào hộp SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 4 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN thoại Don’t show me this introduction again. Nhấn next sẽ thấy cửa sổ như hình 1.1.4. Hình 1.1.3. Thao tác thực hiện bằng Wizard Tasks SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 5 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.4. Tạo một project mới. ¾ Nhấn next. Từ đây chúng ta đã tạo ra một thư mục introtutorial hay chưa, phần mềm Quartus II hiện ra một hộp trong hình 1.1.5 hỏi nó sẽ tạo ra một thư mục mong muốn. click Yes, hiện ra cửa sổ trong hình 1.1.6 Hình 1.1.5. Phần mềm Quartus II sẽ tạo ra một thư mục cho project SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 6 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.6. Wizard có thể bao gồm file thiết kế lý thuyết. ¾ Nếu không có file nào tồn tại, Click next, sẽ thấy cửa sổ trong hình 7. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 7 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.7. Chọn một họ thiết bị và một thiết bị cụ thể ¾ Chúng ta có kiểu thiết bị cụ thể, mà mạch được thiết kế sẽ được thực thi đầy đủ. Chọn Cyclone II làm họ thiết bị mục tiêu. Chúng ta có thể cho phép phần mềm Quartus II chọn họ thiết bị cụ thể, hay chúng ta có thể chọn thiết bị rõ ràng. Từ danh sách thiết bị cho phép chọn thiết bị EP2C35F672C6, mà được SOPC Builder dùng trên board DE2. nhấn next mở cửa sổ trong hình 1.1.8. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 8 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.8. Công cụ EDA khác ¾ Người dùng có thể chỉ định bất kỳ công cụ EDA nào. Phổ biến là dùng phần mềm CAD cho mạch điện là các công cụ EDA. Thuật ngữ này được dùng trong thông báo Quartus II đề cập đến ba công cụ. từ đây chúng ta sẽ dựa vào các công cụ của Quartus II, không chọn công cụ nào khác. ¾ Nhấn next. Tóm tắt của những chọn lựa trên là xuất hiện màn hình như hình 1.1.9. nhấn finish, trở về cửa sổ chính Quartus II, nhưng với light được định nghĩa như project mới trong thanh tiêu đề như hình 1.1.10 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 9 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.9. Tóm tắt của việc cài đặt project. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 10 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.1.10. Quartus II sau khi project được tạo I.2. SOPC BUILDER I.2.1 Khái niệm về SOPC: System on Programmable chip (SOC) là một ý tưởng về sự tích hợp tất cả mọi thành phần của một hệ thống vào một mạch tich hợp (IC). Mạch này có thể bao gồm cả các chức năng số, tương tự, hoặc cả hai- tất cả trên một chip. Ứng dụng điển hình cho ý tưởng này là các hệ thống nhúng. Các SOC có ưu điểm là giá thành thấp và đơn giản. Thiết bị logic khả trình (PLD: Programmable logic device) là một thiết bị được tạo ra từ các cổng logic, có khả năng lập trình được để tạo các ứng dụng khác nhau. Từ ý tưởng trên, thuật ngữ SOPC-system on programmable chip ra đời. Toàn bộ thiết kế hệ thống sẽ được tạo trên một thiết bị logic khả trình (PLD). Lĩnh vực này thường ứng dụng để thử nghiệm các hệ thống trước khi chế tạo các IC. Một sơ đồ ví dụ về hệ thống SOPC được được trình bày trong hình 1.1. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 11 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.1: Sơ đồ ví dụ về hệ thống SOPC tích hợp trên PLD của Altera Các thư viện của SOPC builder thường bao gồm các thành phần sau: ¾ Vi xử lý ¾ Các IP và các kết nối ngoại vi ¾ Các giao diện với bộ nhớ ¾ Các thiết bị liên lạc ngoại vi ¾ Các giao diện và các bus, bao gồm cả giao diện Avalon ¾ Các lõi DSP Ta có thể sử dụng SOPC builder để xây các hệ thống nhúng bao gồm CPU, giao tiếp bộ nhớ, và các module I/O. Ta cũng có thể dùng nó chỉ để tạo ra một hệ thống tạo luồng dữ liệu mà không bao gồm CPU. SOPC sử dụng một giao diện người dùng gồm các nhãn dán (Tab). Các tác vụ được phân chia theo chức năng và các tác vụ có liên quan với nhau sẽ được trình bày trên cùng một nhãn. Nhãn system contents được hiển thị khi ta mở SOPC Builder. Hình 1.2.2 trình bày giao diện của nhãn này (và cũng là giao diện mặc định của SOPC Builder). Với nhãn systemm contents ta có thể: SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 12 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN ¾ Thêm vào hoặc loại ra các component trong hệ thống. ¾ Cấu hình các component. ¾ Chỉ định các đường kết nối giữa các component. Hình 1.2.2: Các thành phần trong nhãn system contents Bảng 1.1: Các thành phần giao diện người dùng trên nhãn system contents Thành phần Chức năng Các nhãn (Tabs) Phân loại các điều khiển giao diện người dùng dựa trên tác vụ Danh sách các thành phần sẵn có (List of Liệt kê thư viện các thành phần sẵn có theo từng loại. Mỗi thành phần xuất hiện kèm một chấm màu ngay bên tên của SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 13 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Available Component) nó. Chấm màu này có ý nghĩa sau: • Chấm xanh lá: các thành phần đầy đử và có bản quyền đã được cài đặt • Chấm vàng: thành phần không đầy đủ, chỉ là bản đánh giá (evaluation version). • Chấm trắng: thành phần chưa cài đặt Lọc các thành phần (component filters) Lọc các thành phần theo loại Bảng các thành phần đã kích hoạt (Table of Active Components) Liệt kê các thành phần đã được cài đặt trên hệ thống, cho phép ta chỉ định: • Tên của từng thành phần • Địa chỉ cơ bản cho mỗi cổng slave • Nguồn xung clock cho mỗi thành phần • Ưu tiên ngắt (nếu có) cho mỗi cổng slave Bảng kết nối (Connection Panel) Trình bày các liên kết giữa những thành phần, cho phép ta: Chỉ định liên kết giữa cổng master và cổng slave Chỉ định các chia sẻ thỏa hiệp cho các cổng slave được nhiều cổng master truy cập. Các thiết lập bo mạch (Board Settings) Cho phép ta chỉ định chi tiết nền phần cứng: Ví dụ ta có thể chỉ định board cụ thể sử dụng cho thiết kế này, nhờ đó SOPC Builder sẽ tự động hỗ trợ kết nối các chân ra các thiết bị ngoài chip (nhưng vẫn trên board). Điều này giảm đáng kể thời gian phải nối chân cho thiết kế. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 14 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Bảng thiết lập xung clock (Clock Settings Table) Cho phép định nghĩa các tín hiệu clock được sử dụng trong hệ thống bao gồm: tên, nguồn, tần số, và tùy chọn pipeline cho các thiết kế có tốc độ cao Cửa sổ thông báo (Messages Window) Hiển thị các cảnh báo, lỗi hay thông tin liên quan đến hệ thống hiện tại. I.2.2 Thiết Kế SOPC Builder Dùng Mã Verilog I.2.2.1. Bắt Đầu Một SOPC Builder: Sao khi hoàn thành xong chương trình chính việc xây một project mới của Quartus II, góc phải của giao diện ta thấy biểu tượng SOPC Builder, click vào đó sẽ cho phép chúng thiết kế một hệ thống SOPC Builder có thể lập trình được bằng Nios II IDE. Giao diện được thể hiện ở hình 1.2.3. Hình 1.2.3. tạo mới một SOPC Builder. I..2.2.2 Thiết Kế Hệ Thống: sao khi tạo mới một SOPC Builder, chúng ta thiết kế các đường kết nối bằng cách click vào Nios II processor để add một cpu_0 được thể hiện ở hình 1.2.4. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 15 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.4. add cpu_0 vào để tạo kết nối. Nhấn finish là chúng ta đã hoàn thành việc thiết kế một kết nối cpu_0 cơ bản. Giao diện được thể hiện ở hình 1.2.5. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 16 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.5. thiết kế module cpu_0. Tương tự, trong cửa sổ SOPC Builder này cũng cho phép chúng ta add thêm các module kết nối cần thiết cho việc kế một hệ thống cần thiết. Minh họa trong hình 1.2.6 sẽ cho chúng ta nhìn rõ hơn quá trình này. Hình 1.2.6. add các module cần thiết Để kết nối cpu_0 với onchip_memory2_0 lại với nhau, ta cần chỉ ra đường dẫn cho cpu_0 đi đến. đường dẫn này được thể hiện trong hình 1.2.7. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 17 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.7. liên kết cpu_0 với onchip_memory2_0 Xong công việc thiết kế một hệ thống, chúng ta biên dịch lại chương trình bằng cách click vào button Generate để biết xem trong quá trình thiết kế có sai xót gì không. Quá trình biên dịch thành công được thể hiện ở hình 1.2.8. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 18 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.8. biên dịch thành công Biên dịch thành công, để tiếp tục chương trình thiết kế hệ thống chúng ta quay lại với cửa sổ chính của Quartus II trong hình 1.1.1 và gán pin cho hệ thống theo hình 1.2.9. Hình 1.2.9. Gán pin SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 19 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Sao khi gán pin xong, chúng ta biên dịch lại chương trình một lần nữa trong Quartus II để hệ thống liên kết lại với nhau. Quá trình biên dịch thành công được thể hiện trong hình 1.2.10. Hình 1.2.10. Quartus II biên dịch thành công Xong quá trình thiết phần cứng. Để điều khiển được hệ thống trên, Nios II IDE sẽ cho phép chúng ta lập trình điều khiển toàn bộ hệ thống mà chúng ta vừa thiết kế. Quay lại với SOPC Builder sao khi biên dịch thành công, click vào button Nios II IDE để thực hiện việc lập trình. Hình 1.2.11 sẽ cho chúng ta được nhìn rõ hơn vấn đề này. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 20 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.2.11. lập trình Nios II IDE I.3 Phần Mềm NIOS II IDE Đây là chương trình biên dịch ngôn ngữ lập trình C và download chúng vào trong chip Nios II. Nó chọn hệ thống SOPC gồm có: bộ nhớ, bộ đếm và nhiều lựa chọn khác để biên dịch, debug và chạy chương trình C. JTAG UARC dùng để download file C tới chip NIOS II. NIOS II IDE có một new project wizard dùng để tự động cài đặt project ứng dụng C/C++ và project thư viện hệ thống. hơn nữa, NIOS II IDE cung cấp mã phần mềm ví dụ( trong dạng project khuôn mẫu) để hỗ trợ các kỹ sư phần mềm làm việc với hệ thống nhanh nhất có thể. Mỗi khuôn mẫu là lựa chọn file phần mềm và thiết lập project. Người thiết kế có thể thêm mã nguồn của riêng họ vào project bằng cách thay thế code vào trong thư mục project hoặc import file vào trong project. Dựa trên chuẩn công nghiệp chuỗi công cụ JNU, NIOS II cung cấp giao diện người dùng để biên soạn. Môi trường xây dựng NIOSS II IDE được thiết kế để thuận tiện phát triển phần mềm cho bộ xử lý NIOS II của ALTERA miễn là dễ dùng Push- Button. Mặc dù cũng cho phép người thiết kế xây dựng các thiết lập cao cấp bằng tay. Môi trường xây dựng NIOS II IDE cung cấp một make file dựa trên cấu hình hệ thống cụ thể(file SOPC Builder GENERATE PTF). Thay đổi thiết lập trình biên dịch/mối liên kết trong NIOS II IDE được làm tự động trong make file này. Thiết lập này có thể SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 21 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN bao gồm tùy chọn cho file khởi tạo bộ nhớ(MIF), nội dung flash, file khởi tạo mô phỏng(DAT/HEX), và file tóm tắt profile. NIOS II IDE chứa debug phần mềm dựa trên debug GNU, GDP. Debug cung cấp nhiều tính năng debug cơ bản, cũng như các tính năng debug khác thường là không có sẵn trong các kit phát triển bộ xử lý giá thấp. Hoặt động chạy debug được cung cấp sẵn bằng cách click phải vào project. NIOS II IDE cho phép bạn chạy hoặc debug project trên board mục tiêu hoặc tập lệnh mô phỏng NIOS II(ISS). Mỗi ứng dụng có thư viện riêng của nó. Thư viện này chứa file liên quan tới hệ thống xây dựng của SOPC Builder. Nó có thể thực hiện lựa chọn bộ nhớ ngõ vào, ngõ ra và bộ đếm cho ứng dụng. Có nhiều tùy chọn của biên dịch