Đồ án Phân tích phần mềm quartus II

Tài liệu Đồ án Phân tích phần mềm quartus II: ĐỒ Á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:.......................................

pdf91 trang | Chia sẻ: hunglv | Lượt xem: 1940 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Phân tích phần mềm quartus II, để tải tài liệu gốc về máy 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 và chạy chương trình. Nó thì rất hữu ích cho luận điểm project này ”tùy chọn thư viện C nhỏ”. Khi “tùy chọn thư viện C nhỏ” được chọn, thư viện hệ thống dùng bổ xung giảm bớt của thư viện chuẩn Newlib ANSI C. đặt biệt, họ prinf() của thủ tục(prinf(), fprinf(), sprinf()) giá trị con trỏ thay đổi khi tùy chọn này được check. I.3.1 Tổng quan các tính năng của bộ vi xử lý NIOS II: NIOS II là một bộ vi xử lý mềm có một số tính năng có thể cấu hình phù hợp với người dùng để tạo ra một hệ thống mong muốn được xử lý có thể cung cấp công cụ trong ba cách có thể cấu hình khác nhau. NIOS II/“fax” được thiết kế cho việc thực thi mạnh. Nó có nhiều tùy chọn để cấu hình, có thể được sử dụng để tối ưu cho bộ xử lý thực thi. NIOS II/S là một phiên bản “chuẩn”, phiên bản này yêu cầu nguồn tài nguyên thấp trong một thiết bị FPGA thích hợp cho các thực thi đơn giản. NIOS II/E là một phiên bản “kinh tế”, phiên bản này yêu cầu nguồn tài nguyên thấp nhất của thiết bị FPGA nhưng nó cũng có nhiều giới hạn nhất để thiết lập các tính năng mà người sử dụng có thể dùng. Bộ xử lý NIOS II là kiến trúc máy tính thiết lập các tập lệnh đơn giản(RISC), các hoạt động số học logic của nó được thi hành trên các toán hạn trong các thanh ghi SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 22 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN đa năng. Dữ liệu được di chuyển giữa bộ nhớ và các thanh ghi này theo mục đích của lệnh load và store. Độ dài của bộ xử lý NIOS II là 32 bit. Tất cả các thanh ghi có độ dài là 32 bit, các byte địa chỉ trong 32 bit có thể được gán trong kiểu little-endian hoặc kiểu bit- endian. Các kiểu gán này là một trong những tùy chọn mà người sử dụng có thể lựa chọn để cấu hình thời gian. Kiến trúc NIOS II dùng để tách rời các bus tập lệnh và dữ liệu. cái này thường liên quan tới kiến trúc phần cứng. Một bộ xử lý NIOS II có thể hoạt động trong ba chế độ sau: ¾ Chế độ giám sát: cho phép bộ xử lý thi hành tất cả các tập lệnh và thực hiện tất cả các hàm có sẵn. khi bộ xử lý reset, nó sẽ đi vào chế độ này. ¾ Chế độ người dùng: ngăn ngừa việc thực hiện một vài tập lệnh dùng cho hệ thống mục tiêu. Một vài tính năng của bộ xử lý không sử dụng được trong chế độ này. ¾ Chế độ debug: được sử dụng bởi các công cụ debug để thực hiện các tính năng như điểm ngắt và điểm theo dõi. Các chương trình ứng dụng có thể chạy trong chế độ người dùng hoặc chế độ giám sát. Các phiên bản có sẵn hiện giờ của bộ xử lý NIOS II không hổ trợ chế độ người dùng. I.3.2 Cấu Trúc Thanh Ghi Bộ xử lý NIOS II có 32 thanh ghi đa năng có 32 bit, một vài thanh ghi được giành cho một mục đích cụ thể và có tên riêng. Nó được thừa nhận bởi chương trình dịch hợp ngữ. ¾ Thanh ghi R0 được xem như là thanh ghi zero luôn luôn chứa giá trị không đổi là 0. ¾ Thanh ghi R1 được sử dụng bởi chương trình hợp ngữ như một thanh ghi tạm thời. Nó không được sử dụng cho chương trình người dùng. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 23 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN ¾ Thanh ghi R24 và R29 được sử dụng xử lý các ngoại lệ. chúng không có sẵn trong chế độ người dùng. ¾ Thanh ghi R25 và R30 được sử dụng giành riêng cho chế độ debug JTAG. ¾ Thanh ghi R27 và R28 dùng để điều khiển Stack. ¾ Thanh ghi R31 được sử dụng để giữ giá trị trả về khi một chương trình con được gọi. Thanh ghi Tên Chức năng r0 zero 0x00000000 r1 at Chương trình dịch hợp ngữ tạm thời r2 r3 . . . . . . . . . r23 r24 et phản đối tạm thời (1) r25 bt điểm ngắt tạm thời (2) r26 gb con trỏ tòan cục r27 sp con trỏ stack r28 fp con trỏ khung r29 ea địa chỉ trả về ngoại lệ (1) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 24 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN r30 ba địa chỉ trả về điểm ngắt (2) r31 ra địa chỉ trả về (1) thanh ghi không có sẵn trong chế độ người dùng (2) thanh ghi chỉ dùng trong chế độ debug JTAG Bảng 1 Các Thanh Ghi Đa Năng Các thanh ghi này được sử dụng tự động cho mục đích điều khiển. chúng có thể đọc và ghi bằng các lệnh riêng biệt rdctl và wrdctl, cái này chỉ có thể thực hiện cho mục đích giám sát. Các thanh ghi được sử dụng như sau: ¾ Thanh ghi ctl0 tương ứng với trạng thái hoạt động của bộ xử lý. Chỉ có 2bit của thanh ghi này có ý nghĩa: • U là bit chế độ người dùng/giám sát. U=1 là chế độ người dùng, U=0 là chế độ giám sát. • PIE là bit xử lý enable ngắt. PIE=1, bộ xử lý có thể chấp nhận ngắt bên ngoài. PIE=0, bộ xử lý bỏ qua ngắt bên ngoài. ¾ Thanh ghi ctl1 giữ bản sao lưu trữ của thanh ghi trang thái trong quá trình xử lý ngoại lệ. bit EU và EPIE dùng để lưu trữ các bít trạng thái U và PIE. ¾ Thanh ghi ctl2 lưu giữ bản sao của thanh ghi trạng thái trong quá trình xử lý ngắt debug. Bit BU và BPIE lưu giá trị của bit trạng thái U và PIE. ¾ Thanh ghi ctl3 dùng để enable riêng ngắt bên ngoài. Mỗi bit tương ứng một ngắt irq0 tới irq31. Giá trị là 1 có nghĩa là ngắt enable, là 0 thì nó disable. ¾ Thanh ghi ctl4 chỉ ra ngắt đang chờ. Giá trị của bit nhận được, ctl4, được set là 1 nếu ngắt irqk thì cả 2 active và enable bởi bit ngắt enable, ctl3, set đến 1. ¾ Thanh ghi ctl5 giử giá trị nhận biết xử lý duy nhất trong hệ thống đa xử lý. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 25 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Thanh ghi Tên b31…….b2 b1 b0 ctl0 status Dành riêng U PIE ctl1 estatus Dành riêng EU EPIE ctl2 bstatus Dành riêng BU BPIE ctl3 ienable Bit enable ngắt ctl4 ipending Bit chờ đợi ngắt ctl5 cpuid Nhận biết bộ xử lý duy nhất Bảng 2 Thanh Ghi Điều Khiển I.3.3. Truy Xuất Bộ Nhớ Và Thiết Bị I/O Để thực thi tốt nhất, bộ xử lý NIOS II/F có thể bao gồm cả hai bộ nhớ đệm tập lệnh và dữ liệu. bộ nhớ đệm được thực hiện trong khối bộ nhớ FPGA, cách sử dụng của chúng là tùy ý và chúng được chỉ định (bao gồm kích thước của chúng) ở thời gian khởi tạo hệ thống bằng cách sử dụng SOPC Builder. Phiên bản NIOS II/S có thể có bộ nhớ đệm tập lệnh nhưng không có bộ nhớ đệm dữ liệu. phiên bản NIOS II/E không có bộ nhớ đệm tập lệnh và dữ liệu, nói cách khác để bộ xử lý truy xuất nhanh đến bộ nhớ trên chip bằng cách sử dụng kết hợp chặt chẽ cả hai bộ nhớ, trong trường hợp này bộ xử lý truy xuất bộ nhớ qua đường dẫn chỉ ra tốt hơn qua mạng lưới Evelon. Truy xuất đến bộ nhớ kết hợp chặt chẽ bỏ qua bộ nhớ đệm. có thể có một hoặc nhiều bộ nhớ tập lệnh và dữ liệu kết hợp. Nếu bộ nhớ đệm tập lệnh không bao gồm trong hệ thống, khi đó phải có ít nhất một bộ nhớ kết hợp được cung cấp cho bộ xử lý NIOS II/F và NIOS II/S. Bộ nhớ onchip cũng có thể được truy xuất qua mạng lưới Evelon. Thiết bị bộ nhớ offchip như chip SRAM, SDRAM và bộ nhớ flash có thể được truy xuất bằng giao diện thích hợp. Thiết bị I/O được Map bộ nhớ có thể truy xuất như xác định truy xuất bộ nhớ. Dữ liệu truy xuất tới vị trí bộ nhớ và giao diện I/O được thực hiện giành cho lệnh load và store, dữ liệu được chuyển đổi bộ nhớ và thanh ghi đa năng. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 26 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.3.1 Tổ Chức Bộ Nhớ Và I/O I.3.4. Địa Chỉ. Bộ xử lý NIOS II đưa ra địa chỉ 32bit. Không gian bộ nhớ là 32 địa chỉ cho phép. Các lệnh có thể đọc và ghi dữ liệu word(32bit), halfword(16bit), hoặc byte 8bit. Việc đọc và ghi một địa chỉ không tương ứng với một bộ nhớ đang tồn tại hoặc vị trí I/O cho ra một kết quả không xác định. Có năm chế độ địa chỉ được đưa ra: SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 27 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN ¾ Chế độ tức thời: một toán hạn 16bit được ghi vào tập lệnh. Giá trị này có thể mở rộng để cho ra một toán hạn 32bit trong tập lệnh mà thực hiện các phép toán số học. ¾ Chế độ thanh ghi: toán hạn trong thanh ghi xử lý. ¾ Chế độ thay thế: địa chỉ đang tồn tại của toán hạn được cộng vào nội dung của một thanh ghi vào một giá trị thay thế 16bit ghi vào trong tập lệnh. ¾ Chế độ thanh ghi gián tiếp: địa chỉ đang tồn tại của một toán hạn là nội dung của một thanh ghi được chỉ định trong tập lệnh. ¾ Chế độ tuyệt đối: một địa chỉ tuyệt đối 16bit của một toán hạn có thể được chỉ định bằng cách dùng chế độ thay thế với thanh ghi R0 luôn luôn có giá trị bằng 0. I.3.5. Tập Lệnh Tất cả các lệnh của NIOS II có độ dài 32bit. Các lệnh này được thực hiện trực tiếp bởi bộ xử lý. Các lệnh NIOS II bao gồm một số các lệnh giả có thể được dùng trong ngôn ngữ lập trình hợp ngữ. chương trình biên dịch hợp ngữ thay thế các lệnh giả bằng một hoặc nhiều các lệnh máy. Có ba lệnh có thể định dạng: kiểu I, kiểu R và kiểu J. Trong tất cả các trường hợp B[5:0] dùng cho OP code. Các bit còn lại được sử dụng cho thanh ghi chỉ định, toán hạn tức thời hoặc OP code mở rộng. ¾ kiểu I: 5 bit A và B được sử dụng để chỉ định thanh ghi đa năng 16bit IMM16 đưa ra dữ liệu tức thời có thể mở rộng cho ra toán hạn 32bit. ¾ Kiểu R: 5 bit A, B và C chỉ định thanh ghi đa năng. 11bit OPX dùng để mở rộng OP code. ¾ Kiểu J: 26 bit IMM26 chứa giá trị Unsign tức thời. định dạng này chỉ được dùng trong gọi lệnh. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 28 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.3.2 các định dạng của các tập lệnh NIOS II I.4 Board DE2 I.4.1. Tính năng của mạch DE2 Tính năng của mạch DE2 là chip Cyclone® II 2C35 FPGA trong gói pin 672. Tất cả các thành phần quan trọng trên mạch được kết nối với các pin của con chip này, cho phép người sử dụng điều kiển tất cả các bộ phận bên ngoài của quá trình hoạt động của mạch. Cuộc thử nghiệm đơn giản, mạch DE2 bao gồm một số khả năng của switches, LEDs và hiển thị 7 đoạn. Cuộc thí nghiệm cao hơn có SRAM, SDRAM, và chip bộ nhớ Flash, cũng như hiển thị ký tự 16x2. Những cuộc thí nghiệm phụ thuộc vào bộ xử lý và giao diện I/O đơn giản. Điều này thì dễ để diễn giải cho bộ xử lý Altera’s Nios II và sử dụng giao diện chuẩn như giao diện chuẩn RS-232 và PS/2. Cuộc thí nghiệm bao gồm tính hiệu âm thanh và video, có bộ kết nối chuẩn như là microphone, line-in, line-out (24-bit audio CODEC), video –in (TV Decoler), và VGA (10-bit DAC); Những tính năng này có thể được sử dụng để tạo ra ứng dụng audio CD- quality. Dự án thiết kế DE2 lớn hơn cung cấp kết nối USB 2.0 (cả máy chủ và thiết bị), 10/100 Ethernet, và cổng hồng ngoại (IrDA) và một kết nối thẻ nhớ SD. Nói tóm lại, nó có thể kết nối khác do người dùng qui định tới mạch DE2 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 29 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.4.1 Board DE2 I.4.2. Thông số kỹ thuật SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 30 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.4.2 Biểu Đồ Khối Của Board DE2 FPGA ¾ Cyclone II EP2C35F672C6 FPGA và EPCF16 và thiết bị cấu hình serial Thiết bị I/O ¾ Được xây dựng trên USB Blaster cho FPGA ¾ Cổng Ethenet10/100 RS-232, cổng hồng ngoại ¾ Video-out (VGA 10- bit DAC) ¾ Video-in (NTSC/PAL/ Multi format) ¾ USB 2.0 kiểu A kiểu B ¾ Cổng PS/2 cho chuột và bàn phiếm ¾ Line-in, line-out, microphone-in, 24bit audio CODEC ¾ Mở rộng phần đầu(76 chân tín hiệu) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 31 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Memory ¾ 8 MB SDRAM, 512 KB SRAM, 4 MB Flash ¾ Khe cắm thẻ nhớ SD Switches, LEDs, Displays, and Clocks ¾ 18 switch ¾ 4 nút ấn debuonced switch ¾ 18 LED đỏ, 9 LED xanh ¾ 8 hiển thị 7 đoạn ¾ Hiển thị LCD 16x2 ¾ Bộ tạo dao động 27MHz và 50 MHz , ngõ vào clock SMA bên ngoài. Hình 1.4.3 của board DE2 chỉ ra cách bố trí va vị trí chỉ định của các thành phần trên board DE2. Hình 1.4.2. Board DE2 của Altera. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 32 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Board DE2 có nhiều đặc điểm cho phép người sử dụng có thể thiết kế và thực thi các mạch từ đơn giản đến phức tạp. Sau đây là các phần cứng được board DE2 cung cấp: ¾ Altera Cyclone II 2C35 FPGA. ¾ Altera Serial Configuration device-EPCS-16. ¾ Các cổng USB. ¾ SRAM 512 Kbyte. ¾ SDRAM 8 Mbyte. ¾ Flash memory 4 Mbyte. ¾ SD card socket. ¾ 4 SW nhấn. ¾ 18 SW đẩy. ¾ 18 LEDs đỏ. ¾ 9 LEDs xanh. ¾ Clock source dao động 50MH và 27 MHz. ¾ 24 bit CD-quality audio CODEC vói các jack line-in,line- out,microphone. ¾ VGA DAC với đầu kết nối VGA-out. ¾ TV Decoder và đầu kết nối TV-in. ¾ Cổng Ethenet 10/100. ¾ Cổng RS232 9 pin. ¾ Cổng SP/2. ¾ Cổng hồng ngoại IrDA. ¾ 2 Expension Heard 40 pin. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 33 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN I.4.3. Những Ví Dụ Về Những ứng Dụng Cao Cấp Mạch DE2 có thể được sử dụng để thực thi những phân loại rộng của những dự án thiết kế. Ứng dụng TV box Hình 1.4.3 Ứng Dụng TV Box ¾ Giải mã TV chất lượng cao ¾ Chất lượng CD âm thanh 24 bit ¾ Màn hình VGA ¾ Đúng tiêu chuẩn cho ứng dụng cho video ¾ Tất cả mã nguồn driver phần mềm cho Nios® II USB Mouse Paintbrush ¾ Sử dụng cổng USB 2.0 trên mạch DE2 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 34 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 1.4.4 USB Chuột Paintbrush ¾ Phần mềm USB máy chủ và thiết bị cho Nios II ¾ Cung cấp ví dụ của bộ đệm video SRAM Karaoke Machine và SD music player Hình 1.4.5 Karaoke Machine và SD Music Player ¾ CD chất lượng âm thanh 24 bit ¾ Đúng tiêu chuẩn cho ứng dụng audio ¾ Tất cả mã nguồn driver phần mềm cho Nios® II SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 35 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Chương II Audio Codec W8731/L II.1 Giới Thiệu Về AUDIO CODEC W8731/L WM8731 là một audio CODEC công suất thấp được thiết kế đặc biệt cho sản phẩm audio linh động. Nó tiện lợi và tiêu thụ điện áp thấp phù hợp cho ý tưởng tạo ra những sản phẩm MP3 Player và Mini-disc Player. CODEC bao gồm những đường và ngõ vào microphone tới ADC on-board, đường và ngõ ra headphone từ DAC on board, một máy tạo dao động, định cấu hình giao diện digital audio và lựa chọn giao diện điều khiển 2 hay 3 dây MPU. Nó hoàn toàn tương thích là một ý tưởng kết hợp cho một phần của bộ vi xử lý, mạch điều khiển, và DSP chuẩn công nghiệp. CODEC bao gồm 3 loại tín hiệu vào – mono microphone và stereo line. Line tín hiệu vào có thể điều chỉnh cấp độ âm thanh từ +12dB tới -34dB và mute. Tín hiệu vào microphone có thể điều chỉnh từ -6dB đến 34dB. Tất cả quy định bộ lọc tín hiệu vào được chứa vào trong thiết bị không có thành phần bên ngoài quy định. Bộ chuyển đổi tín hiệu tương tự sang tín hiệu số trên âm thanh nổi on-board là chất lượng cao dùng nhiều bit bậc cao trên việc mẫu cấu trúc phân phối thực thi tốt nhất mà tiêu thụ năng lượng thấp. Tín hiệu ngõ ra từ ADC có sẵn trên giao diện audio tín hiệu số. ADC bao gồm một tín hiệu số tùy chọn cao qua bộ lọc tới ADC bao gồm một tùy chọn số dùng gỡ bỏ phần không cần thiết từ tín hiệu audio. Bộ chuyển đổi tín hiệu số sang tương tự on-board chấp nhận tín hiệu số audio từ giao diện tín hiệu số audio. Bộ lọc tín hiệu số ở 32 kHz, 44.1 kHz, 48 kHz có thể áp dụng dữ liệu tín hiệu số dưới dạng phần mềm điều khiển. DAC tận dụng kiểu cấu trúc oversampling đa tầng - khá cao- có chất lượng tốt để thực hiện công việc với hiệu suất tốt nhất mà lại tiêu thụ ít năng lượng SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 36 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Tín hiệu ra DAC, microphone (SIDETONE) và Line ngõ vào (BYPASS) được cung cấp sẵn cả 2 mức line và một bộ khuếch đại âm thanh headphone. Âm lượng tín hiệu ra headphone có thể điều chỉnh trong tín hiệu tương tự ở mức +6dB đến -73dB và có thể mute. Thiết kế WM8731/L phải chú ý nhiều đến tiêu thụ điện năng mà không ảnh hưởng đến hiệu suất. Nó bao gồm việc khéo léo trong lựa chọn tắt điện năng của mạch dưới dạng phần mềm điều khiển, làm như thế để bảo tồn điện năng. Cách lưu năng lượng khác là định dạng trong phần mềm điều khiển bao gồm chế độ standby và tắt nguồn. Kỹ thuật đặc biệt cho phép audio có thể bị mute và thiết bị đặt trong tình trang standby một cách an toàn, phần thiết bị được tắt nguồn và mức âm thanh được tự điều chỉnh. Vì thế chế độ standby và power off có thể được tận dụng trong phần mềm điều khiển, bất cứ khi nào đang ghi âm hay đang nghe mà không cần đến. Thiết bị phục vụ cho tốc độ mẫu khác nhau bao gồm các chuẩn 8kHz, 32kHz, 44.1 kHz, 48 kHz, 88.2 kHz và 96 kHz. Ngoài ra, thiết bị có một ADC và DAC có thể hoạt động ở tốc độ mẫu khác nhau. Có 2 sự phối hợp duy nhất đặc trưng trong tốc độ mẫu được lập trình của WM8731/L. Chuẩn thông thường là tốc độ 256/384fs có thể được dùng, với khả năng thêm vào tốc độ lấy mẫu khác. Hơn nữa chế độ USB đặc biệt được bao gồm bên trong, nhờ đó tất cả tốc độ mẫu audio có thể được tạo ra từ xung clock USB 12.00MHZ. Theo cách đó, ví dụ, DAC có thể ghi vào DSP ở tốc độ 44.1kHz và chạy lại từ CODEC với tốc độ 8kHz mà không cần phụ thuộc vào tiến trình xử lý tín hiệu số bên ngoài. Bộ lọc kỹ thuật số sử dụng ghi và nghe lại khách quan cho mỗi tốc độ được sử dụng. Ngõ ra ký số hóa sẵn có trong một số định dạng dữ liệu audio chế độ I2S, DSP, MSB-First, left justified và MSB-First, right justified. Giao diện audio số có thể hoạt động cả 2 chế độ Master hoặc Slave. Phần mềm điều khiển sử dụng giao diện MPU 2 hoặc 3- Wire. Máy tạo dao động được bao gồm trên board của thiết bị. Thiết bị có thể tạo ra hệ thống master clock hoặc nó có thể chấp nhận một master clock bên ngoài từ hệ thống audio. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 37 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.1.1 Sơ Đồ Khối Chức Năng WM8731/L II.1.1 Đường Dẫn Line Input WM8731/L cung cấp 2 line tín hiệu vào trái và phải (RLINEIN và LLINEIN). Những tín hiệu ngõ vào có trở kháng cao và có điện dung thấp. điều này phù hợp với nhận tín hiệu ở mức Line từ thiết bị hi-fi hay audio bên ngoài. Cả hai Line ngõ vào có thể lập trình độc lập điều chỉnh mức độ âm thanh và ngõ vào ADC mute. Lược đồ được mô tả trong hình 2. Bộ lọc bị động RF và bộ lọc tích cực Anti-Alias thì kết hợp chặt chẽ với nhau trong Line ngõ vào. Điều này ngăn cản alias tần số cao vào trong băng tần audio hay làm giảm giá trị thực hiện. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 38 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.1.2 Lược Đồ Line Ngõ Vào. Kết quả thu được giữa Line ngõ vào và ADC là có thể điều chỉnh từ +12dB đến -34.5dB. ADC làm giảm ngõ vào AVDD từ 3.3V xuống 1V. Bất kỳ điện thế lớn hơn làm giảm xuống sẽ có thể làm tràn ADC và vì thế không chính xác. Chú ý việc làm giảm ngõ vào phải kiểm tra AVDD ngay lập tức. Tuy nhiên, bằng cách đặt bit INBOTH trong khi lập trình điều khiển âm thanh, cả 2 kênh được cập nhật đồng thời với giá trị tương tự. Line ngõ vào đến ADC có thể mute trong vùng tín hiệu tương tự dưới dạng điều khiển phần mềm. Chú ý Line ngõ vào Mute chỉ Mute ngõ vào đến ADC, điều này cho phép tín hiệu Line ngõ vào đi qua ngõ ra trong chế độ ByPass. Register address Bit Nhãn Mặc Định Phần Mô Tả 4:0 LINVOL[4:0] 10111 ( 0dB ) Left Channel Line Input Volume Control 11111 = +12dB . . 1.5dB steps down to 00000 = -34.5dB 0000000 Left Line In 7 LINMUTE 1 Left Channel Line Input Mute to ADC 1 = Enable Mute 0 = Disable Mute SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 39 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN 8 LRINBOTH 0 Left to Right Channel Line Input Volume and Mute Data Load Control 1 = Enable Simultaneous Load of LINVOL[4:0] and LINMUTE to RINVOL[4:0] and RINMUTE 0 = Disable Simultaneous Load 4:0 LINVOL[4:0] 10111 ( 0dB ) Right Channel Line Input Volume Control 11111 = +12dB . .1.5dB steps down to 00000 = -34.5dB 7 LINMUTE 1 Right Channel Line Input Mute to ADC 1 = Enable Mute 0 = Disable Mute 0000001 Right Line In 8 LRINBOTH 0 Right to Left Channel Line Input Volume and Mute Data Load Control 1 = Enable Simultaneous Load of RINVOL[4:0] and RINMUTE to LINVOL[4:0] and LINMUTE 0 = Disable Simultaneous Load Bảng 3 Điều Khiển Phần Mềm Line Ngõ Vào Những tín hiệu Line ngõ vào thế hiệu dịch bên trong suốt quá trình máy khuếch đại hoạt động đến VMID. Bất cứ khi nào các Line ngõ vào bị mute thiết bị dịch chuyển vào chế độ Standby, các Line ngõ vào được giữ lại thế hiệu dịch đến VMID SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 40 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN dùng chống lại va đập của mạch. Việc làm giảm bất kỳ tạp âm nào mà có thể nghe được khi ngõ vào hoạt động trở lại. II.1.2 Ngõ Vào Microphone MICIN là một ngõ vào trở kháng cao và có điện dung thấp phù hợp kết nối diện rộng của Microphone chỉ dùng 1 kênh âm thanh có độ nhạy và động. MICIN bao gồm lập trình điều chỉnh âm thanh và chức năng mute. Điều khiển phần mềm cho MICIN được trình bày trong bảng 3. Chú ý Microphone chỉ Mute tín hiệu đến ADC. Điều này cho phép tín hiệu vào Microphone Đi qua ngõ ra trong chế độ Sidetone. Register address Bit Nhãn Mặc Định Phần Mô Tả 0 MICBOOST 0 Microphone Input Level Boot 1 = enable Boost 0= disable Boost 00000100 Analogue Audio path control 1 MUTEMIC 1 Line Input Mute to ADC 1= enable MUTE 0= disable Mute Bảng 4 Điều Khiển Phần Mềm Ngõ Vào Microphone. Ngõ vào Microphone bị thế hiệu dịch bên trong suốt quá trình máy khuếch đại hoạt động đến VMID. Khi nào Line ngõ vào bị mute ngõ vào MICIN bị giữ lại hiệu dịch đến VMID dùng chống lại tiếng ồn của mạch. Điều này làm giảm tạp âm mà có thể nghe thấy khi ngõ vào hoạt động trở lại. II.1.3 MICROPHONE BIAS Ngõ ra MICBIAS cung cấp một âm thanh thấp điện thế phù hợp với dòng điện hiệu dịch microphone và kết hợp với điện trở bên ngoài mạng lưới bias. Chú ý rằng nguồn max hiện thời là 3mA. Giới hạn này là giá trị nhỏ nhất của điện trở bias bên ngoài mà có thể sử dụng an toàn. Chú ý ngõ ra MICBIAS không hoạt động trong chế độ standby. II.1.4 Bộ Lọc ADC SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 41 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN WM8731/L sử dụng ADC đa tầng multi-bit oversampled sigma-delta. Sử dụng phản hồi đa bit và tốc độ oversampling cao làm giảm tác động đột ngột và âm thanh tần số cao. ADC làm giảm ngõ vào AVDD từ 3.3V xuống 1.0. Bất kì điện thế cao hơn làm giảm xuông sẽ làm tràn ADC và vì thế không chính xác. Chú ý việc làm giảm ngõ vào phải kiểm tra AVDD ngay lập tức. Thiết bị phụ vụ cho một cặp ADC. Ngõ vào có thể được lựa chọn hoặc từ Line ngõ vào hoặc từ ngõ vào Microphone dưới dạng điều khiển phần mềm. 2 kênh không thề được chọn đồng thời. Register address Bit Nhãn Mặc Định Phần Mô Tả 00000100 Analogue Audio path control 2 INSEL 0 Microphone/Line Input Select To ADC 1= Microphone Input Select to ADC 0 = Line Input Select to ADC Bảng 5 Điều Khiển Phần Mềm ADC Dữ liệu số từ ADC được cấp cho tín hiệu xử lý đến bộ lọc ADC. Bộ lọc ADC thực hiện xử lý tín hiệu 24 bit để chuyển đổi dữ liệu oversampled nhiều bit từ ADC đến tần số mẫu đúng thành ngõ ra trên giao diện audio số. Bộ lọc số ADC chứa một tín hiệu số cao qua bộ lọc, có thể lựa chọn qua điều khiển phần mềm. Bộ lọc high-pass sẽ đáp ứng chi tiết trong trong đặc điểm của bộ lọc số. Khi bộ lọc high-pass được enable offset DC liên tục tính toán và trừ những tín hiệu vào. Bằng cách cài đặt HPOR tính toán cuối cùng giá trị offset dc được lưu trữ khi đó bộ lọc high-pass bị disable và sẽ tiếp tục trừ những tín ngõ vào. Nếu offset dc tahy đổi, việc lưu trữ và giá trị trừ sẽ không thay đổi trừ khi bộ lọc high-pass enable. Register address Bit Nhãn Mặc Định Phần Mô Tả 0000101 Digital Audio 0 ADCHPD 0 ADC High Pass Filter Enable(Digital) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 42 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN 1= disable high pass filter 0 = enable High ass Filter path Control 4 HPOR 0 Store DC offset when high Pass Filter Disable 1= store offset 0 = clear offset Bảng 6 Điều Khiển Phần Mềm ADC Có vài kiểu bộ lọc khác nhau, đáp ứng tần số và đáp ứng pha. Những kiểu bộ lọc sẽ tự động cấu hình phụ thuộc vào chọn tốc độ mẫu. II.1.5 Bộ Lọc DAC Bộ lọc DAC thực hiện xử lý tín hiệu 24 bit để chuyển đổi dữ liệu audio số đến từ giao diện audio số ở tốc độ mẫu lý thuyết đến dữ liệu multi-Bit Oversample để xử lý bằng tín hiệu tương tự ADC. Bộ lọc số DAC cá thể áp dụng dưới dạng điều khiển phần mềm. DAC có thể thực hiện mute mà dữ liệu audio dạng số mang đến mức độ mute. Việc thay đổi này chuyển đổi từng bước trong audio mà có thể cho kết quả khác nhau có thể nghe thấy trong ngõ ra audio. Register address Bit Nhãn Mặc Định Phần Mô Tả 0000101 Digital Audio path Control 2:1 DEEMP[1:0] 00 De-emphasis control(digital) 11= 48 kHz 10 = 44.1 kHz 01= 32 kHz 00 = disable SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 43 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN 3 DACMU 1 DAC Soft Mute Control (digital) 1= enable soft Mute 0= disable soft mute Bảng 7 Điều Khiển Phần Mềm DAC DAC chuyển đổi dòng tín hiệu audio số đa tầng từ bộ lọc số DAC vào trong tín hiệu audio tương tự chất lượng cao. II.1.6 Line Ngõ Ra. WM8731/L cung cấp trở kháng thấp line ngõ ra là LLINEOUT và RLINEOUT, phù hợp với đặc tính load line của trở kháng 10K và điện dung 50pF. Line ngõ ra thường sử dụng có lựa chọn tổng hợp các ngõ ra từ các DAC or/and line ngõ vào trong chế độ bypass. Các ngõ ra LLINEOUT và RLINEOUT chỉ có sẵn ở mức độ Line ngõ ra và không có điều chỉnh cấp độ trong vùng tín hiệu tương tự. Có giá trị gain cố định là 0dB. Mức độ cố định như vậy ở DAC làm giảm mức độ ngõ ra ở AVDD = 3.3V. Chú ý DAC làm giảm mức độ phải kiểm tra ngay lập tức với AVDD. Line ngõ ra bao gồm tín hiệu audio bậc thấp đi qua bộ lọc chuyển tiếp đến băng thành phần bên ngoài từ DAC sigma-delta. Vì thế không lọc thêm ra bên ngoài bị phụ thuộc vào phần lớn các ứng dụng. Ngõ ra DAC, Line ngõ vào microphone được tổng hợp vào trong Line ngõ ra. Trong chế độ DAC chỉ có ngõ ra từ DAC được định tuyến đến line ngõ ra. Trong chế độ bypass Line ngõ vào tổng hợp vào trong Line ngõ ra. Trong chế độ Sidetone ngõ vào microphone được tổng hợp vào trong Line ngõ ra. Những đặc điểm này có thể dùng cho hoặc over-dubbing hoặc nếu DAC bị mute, như một tín hiệu tương tự bypass hay đặc tính của sidetone. Cho nên tránh bất kỳ xử lý tín hiệu số nào. Line ngõ ra bị mute bằng cách mute DAC (tín hiệu tương tự) hay mute mềm (tín hiệu số) và disable đường dẫn BYPASS và SIDETONE. Bất cứ khi nào DAC bị SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 44 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN mute hoặc thiết bị bị đưa vào trong chế độ standby điện thế DC được duy trì ở ngõ ra để ngăn ngừa tạp âm tồn tại hiện thời. Điều khiển phần mềm cho Line ngõ ra được trình bày trong bảng 7. Register address Bit Nhãn Mặc Định Phần Mô Tả 3 BYPASS 1 Bypass Swich 1= enable Bypass 0 = disable Bypass 4 DACSEL 0 DAC Select 1= select DAC 0 = Don’t select DAC 0000100 5 SIDETONE 0 Side Tone Swich 1= enable Side Tone 0 = disable Side Tone Bảng 8 Điều Khiển Phần Mềm Line Output. II.1.7 HEADPHONE AMPLIFIER WM8731/L có ngõ ra headphone âm thanh nổi có sẳn trên LHOUT và RHPOUT. Ngõ ra được thiết kế riêng cho headphone 16 hoặc 32 ohm với hiệu suất tối đa và tiêu thụ năng lượng tối thiểu. ngõ ra headphone bao gồm sự điều chỉnh âm lượng âm thanh cao và chức năng mute. Âm lượng của LHPOUT và RHPOUT có thể được điều chỉnh độc lập dưới sự điều khiển của phần mềm sử dụng LHPVOL [6:0] hoặc RHPVO [6:0] bits tách biệt với sự điều khển thiết bị ngõ ra headphone. Sự điều chỉnh trong khoản 80dB từ +6dB đến -73dB. Ngõ ra headphone có thể mute bởi mã chương trình thấp hơn 0110000 đến LHPVOL [6:0] bits. Bất cứ khi nào ngõ ra headphone mute hoặc thiết bị được đặt trong chế độ standby, điện thế DC được duy trì tại đường dẫn xuất ra để ngăn cản bất kì âm thanh nào có thể nghe thấy trong hiện tại. Một mạch dò tìm giao zero được cung cấp tại ngõ vào đến headphone dưới sự điều kiển của bit LZCEN và RZCEN của sự điều khiển ngõ ra headphone. Khi sử dụng sự điều khiển này âm lượng chỉ được cập nhật khi tín hiệu vào đến cổng Gain thì đóng tới mức độ tín hiệu tương tự. Những âm thanh nhỏ và tiếng ồn như là trị số Gain được thay đổi hoặc im lặng. Chú ý rằng mạch này không có thời gian tạm ngưng chỉ khi SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 45 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN mức DC được chỉ ra tới ngõ vào cổng Gain của nhiều hơn khoảng 20mV, sau đó Gain sẽ không được cập nhật. Chức năng Zero cross thì được làm cho khi bit LZCEN và RZCEN có thiết lập cao trong suốt volume register write . Nếu có sự liên quan rằng mức độ DC có thể bị ngăn cản thay đổi âm lượng sau đó âm lượng được ghi vào cùng 1 giá trị, nhưng với LZCEN hoặc RZCEN bit set low sẽ bắt buộc sự cập nhật âm lượng bất chấp mức độ của DC. Âm lượng của LHPOUT và RHPOUT và cài đặt zero-cross có thể được thay đổi độc lập. Thay vào đó, người sử dụng có thể mở 2 kênh cùng với nhau, cho phép cả hai có thể cập nhật đồng thời, đòi hỏi sự chia đôi số serial writes với điều kiện là cùng Gain được cần cho cả 2 kênh, Điều này là kết quả trong khi điều khiển bit HPBOTH. Cài đặt LRHPBOTH trong khi viết LHPVOL và LZCEN sẽ cập nhật đồng thời The Right Headphone controls. Sự ảnh hưởng phù hợp trên cập nhật RLHPBOTH là kết quả. Register address Bit Nhãn Mặc Định Phần Mô Tả 6:0 LHPVOL[6: 0] 1111001 ( 0dB ) Left Channel Line Input Volume Control 1111111 = +6dB . . 1dB steps down to 0110000 = -73dB 0000000 to 0101111 = MUTE 7 LZCEN 0 Left Channel ZERO Cross detect enable 1 = Enable 0 = Disable 00000010 Left Headphone out 8 LRHPBOTH 0 Left to Right Channel Headphone volume, mute, and zero Cross Data load control 1 = Enable Simultaneous Load of LHPVOL[6:0] and LZCEN to RHPVOL[6:0] and PZCEN 0 = Disable Simultaneous SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 46 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Load 6:0 RHPVOL[6: 0] 1111001 ( 0dB ) Right Channel Headphone Output Volume Control 11111 = +6dB . .1dB steps down to 00000 = -73dB 0000000 to 0101111 = Mute 7 RZCEN 0 Right Channel Zero Cross Detect Enable 1 = Enable 0 = Disable 0000011 Right Headphone Out 8 RLHPBOTH 0 Right to Left Channel Headphone volume, Mute and Zero Cross Data load control 1 = Enable Simultaneous Load of RHPVOL[6:0] and RZCEN to LHPVOL[4:0] and LZCEN 0 = Disable Simultaneous Load Bảng 9 Điều Khiển Phần Mềm Ngõ Ra Headphone II.2 Các Chế Độ Hoạt Động II.2.1 SYPASS MODE WM8731/L bao gồm phương thức vòng do đó đường dẫn nhập vào tín hiệu tương tự được xác định cụ thể để đến đường đẫn xuất ra tín hiệu tương tự và ngõ ra headphone. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 47 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.2.1 Định Tuyến Tín Hiệu Trong Chế Độ Bypass Phương thức vòng được chọn dưới sự điều khiển của phần mềm sử dụng bit BYPASS microphone được thể hiện ở bảng 9. Nói về phương thức vòng , ngõ ra từ DAC (DACSEL) và SIDETONE không nên chọn từ đường dẫn ngõ ra. Tuy nhiên, điều này cũng có thể được sử dụng để tổng hợp ngõ ra DAC, Line ngõ vào và ngõ vào headphone. Điều khiển âm lượng và mute tín hiệu tương tự Line ngõ vào và ngõ ra headphone vẫn được hoạt động trong phương thức vòng. Thiết lập giá trị gain 0dB được yêu cầu cho điều chỉnh âm lượng Line ngõ vào để tránh sự không chính xác. Tín hiệu lớn nhất tại bất kì điểm nào của đường dẫn vòng không được lớn hơn 1.0V rms ở AVDD =3.3V để tránh sự không chính xác. Độ lớn của kiễm tra tuyến tính với AVDD. Điều này có nghĩa là nếu DAC đang phát ra tín hiệu 1Vrms, và nó được tổng hợp với đường dẫn 1Vrms tín hiệu BYBASS, kết quả của tín hiệu LINEOP sẽ bị chia cắt. Register address Bit Nhãn Mặc Định Phần Mô Tả 0000100 Analogue Audio path Control 3 BYPASS 1 Bypass Swich (analogue) 1 = enable Bypass 0 = disable Bypass Bảng 10 Điều Khiển Phần Mềm Trong Chế Độ Bypass SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 48 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN II.2.2 SIDETONE MODE WM8731/L cũng bao gồm chế độ cạnh tín hiệu số nơi mà ngõ vào tai nghe được định hướng đến đường dẫn và ngõ ra tai nghe. Hình ảnh được thể hịên ở hình 24. Chến độ Sidetone cho phép ngõ vào microphone bị yếu đi đến ngõ ra cho ứng dụng telephone và headset. Hình 2.2.2 Lược Đồ Chế Độ Sidetone Register address Bit Nhãn Mặc Định Phần Mô Tả 5 SIDETONE 0 Sidetone Swich (analogue) 1 = enable Side Tone 0 = disable Side Tone 0000100 Analogue Audio path Control 7:6 SIDEATT 00 Side Tone Attenuation 11= -15 dB 10 = -12dB 01= -9 dB 00= - 6 dB Bảng 11 Chế Độ Sidetone Chế độ cạnh tín hiệu số và sự suy giảm được chọn dưới sự điều khiển của phần mềm sử dụng bit SIDETONE được thể hiện ở bảng 10.Tín hiệu cạnh ngõ ra từ DAC và Line ngõ vào (BYBASS) không nên chọn từ khối Line ngõ ra. Tuy nhiên, điều này cũng có thể được sử dụng để tổng hợp ngõ ra DAC, đường dẫn ngõ vào và ngõ vào microphone lại với nhau. Điều khiển microphone boost gain và điều khiển âm lượng SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 49 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN và mute ngõ ra headphone vẫn hoạt động ở chế độ tín hiệu cạnh. Tín hiệu lớn nhất tại bất kì điểm nào trong đường dẫn tín hiệu cạnh phải không lớn hơn 1.0Vrms tại VDD=3.3V, để tránh sự không chính xác. Biên độ này phải kiểm tra ngay lệp tức với AVDD. II.3 Hoạt Động Của Thiết Bị II.3.1 Cài Đặt Lại Thiết Bị WM8731/L chứa đựng năng lượng trên mạch xác lập lại mà xác lập lại trạng thái của thiết bị bên trong. Năng lượng xác lập lại được ứng dụng như là năng lượng DCVDD và phóng điện chỉ sau khi mức độ địên thế của DCVDD giao với ngưỡng thấp nhất. Nếu sau đó DCVDD rơi thấp hơn ngưỡng điện thế nhỏ nhất sau đó năng lượng được xác lập lại được ứng dụng lại. Ngưỡng địên thế và kết hợp hiện tượng trễ được thể hiện trong bảng Electrical Characteristics. Người sử dụng cũng có khả năng xác lập lại thiết bị để biết tình trạng bằng cách điều khiển phần mềm được thể hiện ở hình bên dưới. Register address Bit Nhãn Mặc Định Phần Mô Tả 0001111 Reset Register 8:0 RESET Not reset Reset Register Writing 00000000 to register resets device Bảng 12 Điều khiển phần mềm của reset. Khi sử dụng xác lập lại phần mềm trong chế độ 3-wire, sự xác lập lại được ứng dụng trên sự gia tăng tuổi của CSB và released trên sự gia tăng tuổi tiếp theo của SCLK.In 2-wire mode, sự xác lập lại được ứng dụng trong khoảng thời gian của tín hiệu ACK (khoảng 1 SCLK thời gian) II.3.2 Lược Đồ CLOCKING Trong đặc trưng hệ thống kĩ thuật số audio, chỉ có một nguồn xung clock trung tâm sản xuất xung clock tham chiếu mà tất cả dữ liệu audio đựơc đồng bộ hoá. Xung clock này thường liên hệ với hệ thống xung clock chủ. cho phép WM8731/L sử dụng trong hệ thống khoá trung tâm, WM8731/L có khả năng phát sinh hệ thông khoá này hoặc nhận nó từ nguồn bên ngoài. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 50 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Trong ứng dụng này, WM8671/L được mong muốn là hệ thống xung clock nguồn, sau đó xung clock trung tâm được tiến hành trong quá trình sử dụng tinh thể phù hợp được kết nối giữa ngõ vào XTI/MCLK và ngõ ra pin XTO Trong ứng dụng này, những tính năng khác hơn hẳn WM8731/L sẽ được tạo ra ở xung clock tham chiếu, hệ thống bên ngoài có thể được ứng dụng cụ thể trong ngõ vào XTI/MCLK pin mà không cần sự điều khiển của phần mềm. Chú ý rằng trong tình huống này, máy tạo giao động mạch của WM8731/L giảm năng lượng an toàn để bảo toàn năng lượng. II.3.3 LÕI XUNG CLOCK. Lõi WM8731/L DSP có thể có 1 xung clock MCLK hoặc 2 xung MCLK riêng biệt. Được điều khiễn bởi phần mềm trong bảng 12. Register address Bit Nhãn Mặc Định Phần Mô Tả 0001000 Sampling Control 6 CLKIDIV2 0 Core Clock Divider Select 1= Core Clock Is MCLK Divied By 2 0 = Core Clock is MCLK Bảng 13 Điều Khiển Phần Mềm Của Lõi Clock. Có 1 MCLK chia rẽ có thể lập trình được cho phép thiết bị được dùng trong những ứng dụng xung clock chủ tần số cao có sẵn. Ví dụ thiết bị có thể hỗ trợ xung clock chủ 512fs trong khi hoạt động cơ bản ở chế độ 256fs. II.3.4 Máy Tạo Dao Động CRYSTAL WM8731/L bao gồm một mạch tạo dao động Crystal cho phép xung clock tham chiếu đến hệ thống audio được khởi tạo trên thiết bị. Điều này có sẵn dựa trên hệ thống audio trong bộ nhớ đệm tạo thành CLKOUT. Máy tạo dao động Crystal là một kiểu nhiệt thấp, được thiết kế cho EMI thấp. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 51 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.3.1 Mạch Ứng Dụng Máy Tạo Dao Động Crystal. Miền tần số của Crystal là 12MHz, Cp đề nghị là 10pF. Miền tần số của Crystal là 18MHz, Cp đề nghị là 15pF. Máy tạo dao động Crystal của WM8731/L cung cấp nguồn xung clock thấp cực độ. Nguồn xung clock thấp là một nhu câu cho ADC và DAC audio chất lượng cao không quan tâm cấu trúc máy chuyển đổi. Cấu trúc máy WM8731/L ít bị ảnh hưởng bởi kỹ thuật của máy chuyển đổi hơn tuy nhiên vẫn đòi hỏi các xung điện với tốc độ ít hơn tương đương 1ns dao động để duy trì chương trình. Trong ứng dụng có nhiều hơn một nguồn xung clock master, nó được đề nghị rằng một xung Clock được khởi tạo bởi WM8731/L để giảm rủi ro tới mức tối thiểu. II.3.5 CLOCKOUT Lõi xung clock là bộ nhớ đệm bên trong và được làm sẵn bên ngoài đến một hệ thống audio trên chân ngõ ra CLKOUT. CLKOUT cung cấp mô hình của Core Clock, nhưng bộ nhớ đệm phù hợp cho đường dẫn bên ngoài nhập vào. Không có đảo pha giữa XTI/MCLK, Core Clock và CLOLKOUT nhưng ở đó chắc chắn sẽ bị trễ. Việc delay sẽ phụ thuộc vào việc đưa vào CLOCKOUT. CLKOUT cũng có thể bị chia cắt bởi 2 điều khiển phần mềm bên dưới. Đề cập trong bản 12. Chú ý rằng nếu CLKOUT không yêu cầu khi đó bộ nhớ đệm CLKOUT trên WM8731/L có thể giảm năng lượng an toàn để bảo tồn điện năng. Nếu cấu trúc hệ thống có chọn lựa giữa sử dụng FCLKOUT=FMCLK hoặc FCLKOUT=FMCLK/2 trong giao diện, sau cùng đề nghị để bảo toàn năng lượng. Khi hai lựa chọn CLKOUT thay đổi trên tác động cạnh lên của MCLK, phải đề cập đến thông tin timing. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 52 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Register address Bit Nhãn Mặc Định Phần Mô Tả 0001000 Sampling Control 7 CLKODIV2 0 CLKOUT Divider Select 1= CLOCKOUT Is Core Clock Divied By 2 0 = CLOCKOUT is Core Clock Bảng 14 Lập Trình Của CLKOUT II.3.6 Giao Diện Phần Mềm Giao diện phần mềm có thể được sử dụng hoặc 3-wire (tương thích SPI) hoặc là 2- wire giao diện MPU. Lựa chọn định dạng giao diện được thực hiện bằng cách thiết lập trạng thái của pin MODE. Trong chế độ 3-wire, SDIN được sử dụng cho dữ liệu của chương trình, SCLK được dùng cho clock trong dữ liệu chương trình và CSB được dùng khóa rập ngoài dữ liệu chương trình. Trong chế độ 2-wire SDIN được sử dụng cho dữ liệu serial và SCLK được sử dụng cho clock serial, trong chế độ 2-wire, trạng thái của pin CSB cho phép người dùng lựa chọn 1 trong 2 địa chỉ. II.3.6.1 Sự Lựa Chọn Chế Độ Điều Khiển Serial. Giao diện serial co thể được lựa chọn để họat động trong chế độ 2 hoặc 3-wire. Điều này được thực hiện bằng cách thiết lập trạng thái của pin MODE. MODE Định Dạng Giao Diện 0 2 wire 1 3 wire Bảng 15 Giao Diện Lựa Chọn MODE II.3..6.2 Chế Độ Điều Khiển Serial 3-Wire (Tương Thích SPI) WM8731/L có thể điều khiển dùng giao diện serial 3 wire. SDIN được sử dụng cho dữ liệu chương trình, SCLK được sử dụng để clock dữ liệu chương trình và CSB được dùng khóa rập ngoài dữ liệu chương trình. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 53 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.3.2 Giao Diện Serial 3-Wire Chú ý: ¾ B[15:9] là các bit điều khiển địa chỉ. ¾ B[8:0] là bit điều khiển dữ liệu. ¾ CSB là tích cực cạnh không có cấp độ tích cực. Dữ liệu được hiểu trên cạnh lên của CSB. II.3.6.3 Chế Độ Điều Khiển Serial 2-Wire. WM8731/L hỗ trợ một giao diện serial MPU. Thiết bị hoạt động chỉ như một thiết bị Slave. WM8731/L có một trong hai địa chỉ slave mà được lựa chọn bằng cách thiết lập trạng thái của pin 15, (CSB). Hình 2.3.4 Giao Diện Serial 2 - wire ¾ B[15:9] là các bit điều khiển địa chỉ. ¾ B[8:0] là bit điều khiển dữ liệu. Trạng Thái CSB Địa Chỉ 0 0011010 1 0011011 Bảng 16 Lựa Chọn Địa Chỉ Giao Diện MPU 2 – Wire SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 54 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Để điều khiển WM8731/L trên bus 2-wire thiết bị điều khiển master cần phải chuyển đổi dữ liệu bằng cách thiết lập điều kiện bắt đầu, định nghĩa bởi chuyển tiếp cao hoặc thấp trên SDIN trong khi SCLK còn lại cao. Một địa chỉ và một dữ liệu chuyển đổi sẽ theo sau. Tất cả ngoại vi trên bus 2-wire đáp ứng điều kiện bắt đầu và dịch vào trong 8 bit kế tiếp (7 bit dữ liệu + bit R/W). Chuyển bit MSB trước tiên. 7 bit địa chỉ bao gồm 6 bit địa chỉ cơ bản + 1 bit đơn có thể lập trình để lựa chọn 1 trong 2 thiết bị sẵn sàng cho thiết bị này. Nếu địa chỉ chính xác được nhận và bit R/W là “0”, biểu thị là ghi, sau đó WM8731/L sẽ đáp ứng bằng cách kéo SDIN xuống thấp trên xung clock kế tiếp (ACK). WM8731/L chỉ ghi vào thiết bị và sẽ chỉ đáp ứng lại khi bit R/W biểu thị ghi. Nếu địa chỉ không được chấp nhận thiết bị sẽ trả về điều kiện vô ích và chờ một điều kiện bắt đầu mới và một địa chỉ vững chắc. Mỗi lần WM8731/L thừa nhận một địa chỉ đúng, bộ điều khiển sẽ gởi 8 bit dữ liệu(bit B15-B8). WM8731/L sau đó sẽ thừa nhận dữ liệu đã gởi bằng cách kéo SDIN xuống thấp cho một xung clock. Bộ điều khiển sau đó sẽ gửi 8 bit dữ liệu còn lại (bit B7-B0) và WM8731/L sẽ xác nhận một lần nữa bằng cách kéo SDIN xuống mức thấp. Điều kiện dừng được định nghĩa khi có một chuyển tiếp từ thấp đến cao trên SDIN trong khi SCLK ở mức cao. Nếu điều kiện bắt đầu hoặc kết thúc được phát hiện ra bên ngoài của bất kì điểm nào trong dữ liệu chuyển đổi sau đó thiết bị sẽ nhảy đến điều kiện không hiệu quả. Sau khi nhận được một địa chỉ hoàn tất và dữ liệu liên tiếp WM8731/L sẽ quay lại trạng thái không hiệu quả và chờ một điều kiện bắt đầu khác, địa chỉ thiết bị và và bit R/W theo sau bởi 16 bit thanh ghi địa chỉ và dữ liệu. II.3.7 Chế Độ Năng Lượng WM8731/L chứa chế độ bảo toàn năng lượng trong khối mạch khác nhau có thể hạ năng lượng xuống một cách an toàn trong mức bảo tồn năng lượng. Register address Bit Nhãn Mặc định Phần Mô Tả 0000110 Power Down Control 0 LINEINPD 1 Line Input Power Down 1= Enable Power Down 0 = Disable Power Down SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 55 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN 1 MICPD 1 Microphone Input An Bias Power Down 1= Enable Power Down 0= Disable Power Down 2 ADCPD 1 Adc Power Down 1= Enable Power Down 0= Disable Power Down 3 DACPD 1 DAC Power Down 1= Enable Power Down 0 = Disable Power Down 4 OUTPD 1 Line Output Power Down 1= Enable Power Down 0= Disable Power Down 5 OSCPD 0 Oscillator Power Down 1= Enable Power Down 0= Disable Power Down 6 CLKOUTPD 0 CLKOUT Power Down 1= Enable Power Down 0= Disable Power Down 7 POWEROFF 1 Power Off Device 1= Device Power Off 0 = Device Power On Bảng 17 Điều Khiển Phần Mềm Chế Độ Bảo Tồn Năng Lượng Điều khiển năng lượng hạ xuống có thể được sử dụng hoặc để Cố định chức năng disable khi không có yêu cầu trong ứng dụng nào đó. Hoặc để linh động chức năng tăng và hạ năng lượng phụ thuộc vào chế độ họat động ví dụ trong lúc nghe lại hay ghi âm. LINEINPD : đồng thời hạ năng lượng cả 2 line ngõ vào. Điều này có thể thực hiện linh động không cần bất cứ kết quả có thể nghe thấy nào hoặc trên ADC hoặc trên Line ngõ ra trong chế độ Bypass. Điều này được dùng khi thiết bị nhập vào chế độ PlayBack, Pause hoặc Stop hoặc ngõ vào Microphone được chọn. MICPD: đồng thời hạ năng lượng cả hai ngõ vào Microphone và Microphone Bias. Nếu điều này thực hiện linh động, có thể nghe tiếng pop do ADC mang lại. điều này chỉ có thể nghe thấy nếu ngõ ra Microphone được chọn đến ADC vào thời điểm. Nếu trạng thái của MICPD bị thay đổi sau đó việc điều khiển DSP hoặc vi xử lý sẽ chuyển đến chọn Line ngõ ra như ngõ ra đến ADC (INSEL) trước khi thay đổi MICPD. Điều này dùng khi thiết bị nhập vào chế độ PlayBack, Pause, hoặc Stop hoặc ngõ vào Microphone không được chọn. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 56 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN ADCPD: hạ năng lượng ADC và bộ lọc ADC. Nếu điều này thực hiện linh hoạt sau đó tiếng pop có thể nghe được sẽ cho kết quả bất kỳ tín hiệu ở hiện tại qua ADC. Để khắc phục điều này bất cứ khi nào ADC bị hạ năng lượng, hoặc mute ngõ vào Microphone hoặc MUTELINEIN, sau đó thay đổi ADCPD. Điều này dùng khi thiết bị nhập vào chế độ PlayBack, Pause, Stop không kể là Microphone hay Line ngõ vào được chọn. DACPD: hạ năng lượng DAC và bộ lọc DAC. Nếu điều này thực hiện linh hoạt sau đó tiếng pop có thể nghe được sẽ cho kết quả trừ khi những nguyên tắc sau đây xảy ra. Mục đích để ngăn ngừa tiếng pop, DAC sẽ bị soft-mute trước (DACMU), ngỏ ra sau đó từ line và ngõ ra headphone (DACSEL), sau đó DAC sẽ bị hạ năng lượng. Điều này dùng khi thiết bị nhập vào chế độ ghi âm, Pause, Stop hoặc chế độ Bypass. OUTPD: hạ năng lượng Line ngõ ra và ngõ ra headphone. Nếu điều này thực hiện linh hoạt sau đó tiếng pop có thể nghe được sẽ cho kết quả trừ khi DAC bị soft- mute trước (DACMU). Điều này dùng khi thiết bị nhập vào chế độ ghi âm, Pause, hoặc Stop. OSCPD: tắt năng lượng trên board máy tạo dao động crystal. Ngõ vào MCLK sẽ họat động không phụ thuộc máy tạo dao động bị hạ năng lượng. CLKOUTPD: hạ năng lượng pin CLOCKOUT. Điều này bảo toàn năng lượng, làm giảm âm thanh số và sự phát ra của RF nếu không được yêu cầu. CLKOUT được giữ ở mức thấp khi năng lược hạ. Thiết bị có thể được đặt trong chế độ standby (STANDBY) bằng cách hạ năng lượng tất cả mạch audio dưới dạng điều khiển phần mềm. Nếu máy tạo dao động Crystal and/or pin CLOCKOUT sử dụng sẽ nhận được từ hệ thống clock master, điều này sẽ có thể không bao giờ bị tắt năng lượng trong chế độ standby. PO W ER O FF C LO C K O U TP D O SC PD O U TP D D A C PD A D C PD M IC PD LI N EI N PD Mô Tả 0 0 0 1 1 1 1 1 Standby, nhưng với máy tạo dao động crystal SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 57 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN OS và CLOCKOUT sẵn sàng 0 1 0 1 1 1 1 1 Standby, nhưng với máy tạo dao động crystal OS sẵn sàng và CLOCKOUT không sẵn sàng 0 1 1 1 1 1 1 1 Standby, nhưng với máy tạo dao động crystal OS và CLOCKOUT không sẵn sàng Bảng 18 Chế Độ Stanby Trong chế độ stanby giao diện điều khiển, một phần nhỏ của kỹ thuật số và vùng mạch tương tự tích cực còn lại. Tín hiệu tương tự tích cực bao gồm tín hiệu tương tự VMID chuyển đến vì thế mà Line ngõ vào tương tự, line ngõ ra và ngõ ra headphone vẫn hướng đến VMID. Việc làm giảm này bất cứ kết quả có thể nghe được nguyên nhân bởi glitches DC khi nhập vào hay rời bỏ chế độ standby. Thiết bị có thể bị tắt năng lượng bằng cách ghi đến bit POWEROFF của thanh ghi POWER DOWN. Trong chế độ tắt năng lượng Giao diện và một phần nhỏ của kỹ thật số tích cực còn lại. Tín hiệu tương tự VMID bị disable. Như trong chế độ Standby máy tạo dao động crystal and/or pin CLKOUT có thể không phụ thuộc vào điều khiển. PO W ER O FF C LO C K O U TP D O SC PD O U TP D D A C PD A D C PD M IC PD LI N EI N PD Mô Tả 1 0 0 x x x x x Power off, nhưng với máy tạo dao động crystal OS và CLKOUT sẵn sàng 1 1 0 x x x x x Power off, nhưng với máy tạo dao động crystal OS sẵn sàng và CLKOUT không sẵn sàng 1 1 1 x x x x x Power off, nhưng với máy tạo dao động crystal OS và CLKOUT không sẵn sàng Bảng 19 Chế Độ Poweroff SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 58 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN II.3.8 Bản Đồ Thanh Ghi Có 11 thanh ghi, mỗi thanh ghi 16 bit (7 bit địa chỉ, 9 bit dữ liệu). Điều này có thể điều khiển dùng giao diện hoặc 2 wire hoặc 3 wire. REGISTER B 15 B 14 B 13 B 12 B 11 B 10 B 9 B8 B7 B6 B5 B4 B3 B2 B1 B1 R0(00h) 0 0 0 0 0 0 0 LRIN BOTH LIN MUTE 0 0 LINVOL R1(02h) 0 0 0 0 0 0 1 RLIN BOTH RIN MUTE RINVOL R2(04h) 0 0 0 0 0 1 0 LRHP BOTH LZCEN LHPVOL R3(06h) 0 0 0 0 0 1 1 RLHP BOTH RZCE N RHPVOL R4(08h) 0 0 0 0 1 0 0 0 SIDEATT SIDE TONE DACS EL BYPA SS INS EL MUT EMIC MIC BOOS T R5(0Ah) 0 0 0 0 1 0 1 0 0 0 0 HPQR DAC MU DEEMPH ADC HPD R6(0Ch) 0 0 0 0 1 1 0 0 PWR OFF CLKOU TPD OSCP D OUTP D DACP D AD CPD MICP D LINEI NPD R7(0Eh) 0 0 0 1 1 1 0 BCLK INV MS LRS WAP LRP IWL FORMAT R8(10h) 0 0 0 1 0 0 0 0 CLKO DIV2 CLKI DIV2 SR BOSR USB/ NOM AL R9(12h) 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 ACTI VE R15(1Eh) 0 0 0 1 1 1 1 RESET ĐỊA CHỈ DỮ LIỆU Bảng 20Bản Đồ Thanh Ghi Chương Trình II.3.9 Nét Đặc Trưng Của Đầu Lọc Kỹ Thuật Số Bộ lọc số ADC và DAC làm việc khác nhau. Bộ lọc kỹ thuật số có 4 kiểu, được gọi là kiểu 0,1,2 và kiểu 3. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 59 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Tham Số Kiểm Tra Điều Kiện Min TYP Max Đơn Vị Bộ Lọc Số ADC Loại 1 (chế độ USB, tần số họat động 250fs) +/-0.05dB 0 0.416fs Passband -6dB 0.5fs Passband Ripple +/-0.05 dB Stopband 0.584fs Làm Giảm Stopband f>0.584fs -60 dB Bộ Lọc Số ADC Loại 1 (chế độ USB, 272fs hoặc hoạt động chế độ Normal) +/- 0.05 dB 0 0.4535fs Passband -6dB 0.5fs Passband Ripple +/- 0.05 dB Stopband 0.5465fs Làm Giảm Stopband f > 0.5465fs -60 dB -3dB 3.7 -0.5dB 10.4 High Pass Filter Corner Frequency -0.1dB 21.6 Hz Bộ Lọc Số DAC Loại 0(chế độ USB, 250fs) +/- 0.03 dB 0 0.416 Passband -6dB 0.5fs Passband Ripple +/-0.03 dB Stopband 0.584fs Làm Giảm Stopband f> 0.584fs -50 dB Bộ Lọc Số DAC Loại 1 (chế độ USB, 272fs hoặc hoạt động chế độ Normal) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 60 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN +/- 0.03 dB 0 0.4535 Passband -6dB 0.5fs Passband Ripple +/- 0.03 dB Stopband 0.5465fs Làm Giảm Stopband f > 0.5465 fs -50 dB Bảng 21 Đặt Tính Của Bộ Lọc Số II.3.10 Sự Hoạt Động Ở Chế Độ Master/Slave. WM8731/L có thể được cấu hình như là chia ra 2 chế độ master hoặc slave. Khi thiết bị ở chế độ Master WM8371/L kiểm soát sự sắp xếp theo thứ tự của dữ liệu và xung clock trên giao diện kỹ thuật số. Khi thiết bị Slave ở chế độ WM8731/L trả lời từ dữ liệu tới xung clock, nó sẽ nhận được giao diện kỹ thuật số. Chế độ này được lập ra với bit MSB của thanh ghi điều khiển. Register address Bit Nhãn Mặc định Phần Mô Tả 0000111 Digital Audio interface format 6 MS 0 Master Slave Mode Control 1 = Enable Master Mode 0= Enable Slave Mode Bảng 22 Lập Trình Chế Độ Master/Slave Khi thiết bị ở chế độ Master WM8731/L điều khiển sự sắp xếp của dữ liệu chuyển đổi (ADCDAT, DACDAT) và xung clock ngõ ra (BCLK, SDCLRC, DACLRC) trên giao dịên kỹ thuật số. Nó sử dụng quy trình tạo ra xung clock hoạt động từ mạch hoặc ngõ vào MCLK khi tham chiếu xung clock và trạng thái của dữ liệu. ADCDAT luôn luôn là ngõ ra và DACDAT luôn luôn là ngõ vào. Chế độ master hoặc slave không phụ thuộc vào WM8731/L SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 61 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hình 2.3.5 Chế Độ Master. Khi thiết bị ở chế độ slave WM8731/L biểu diễn sự thay đổi dữ liệu (ADCDAT, DACDAT) trên giao diện kỹ thụât số thông tin ra bên ngoài được áp dụng cho xung clock (BCLK, SDCLRC, DACLRC). Chú ý rằng WM8731/L dựa vào mối quan hệ điều khiển giữa giao diên audio ACLK, DACLRC và master MCLK hoặc CLKOUT. Hình 2.3.6 Chế Độ Slave. II.4 Mô tả tổng quát về SD CARD Lõi SD Bus với giao diện Avalon cho phép truy xuất dễ dàng của hệ thống SOPC Builder đến thiết bị Secure Digital Card chuẩn ( SD Card). Lõi SD Bus dễ dàng SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 62 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN hợp nhất với bất kỳ hệ thống SOPC builder nào được tạo ra. Đễ xử lý Nios II, EL Camino cung cấp driver mức thấp cố định với lõi SD Bus. Driver cung cấp truy xuất phổ biến cho thiết bị nhớ SD. Vì thế không cần phải viết thêm bất kỳ code để đọc hoặc ghi dữ liệu từ hoặc đến SD card. II.4.1 Tính Năng ¾ Hỗ trợ SD card trong chế độ SD Bus (4 bit hay 1 bit). ¾ Hỗ trợ SD Card bộ nhớ năng suất cao (SDHC). ¾ Hỗ trợ chế độ tốc độ cao lên đến tốc độ xung clock là 50 MHz. ¾ Bao gồm driver mức thấp. ¾ File hệ thống có sẵn tuy chọn FAT12/FAT16/FAT32. ¾ Ứng dụng Window cho phép đọc/ghi truy xuất dữ liệu trên nền PC. ¾ Bộ tương thích đầu tiên cho board phát triển Altera và El Camino Nios II . II.4.2 Ứng dụng Lõi SD Bus ứng dụng cho các thiết bị lưu động, chuẩn và có thể trao đổi, lưu trữ truyền thông phụ thuộc vào ứng dụng NIOS II. Khác với ứng dụng cung cấp cho window nó dễ dàng chuyển đổi dữ liệu giữa ứng dụng Nios II và nền PC. II.4.3 Mô Tả Port Của SD Card Thẻ nhớ SD card gồm một số port chính sau : ¾ SD_CLK (ngõ ra) : tín hiệu xung clock đến thẻ nhớ SD card. Xung clock này nhận từ xung hệ thống bởi tham số xung clock phân chia ra. Tần số xác định tốc độ dữ liệu và thiết lập tự động bởi phần mềm driver. Gán vào pin 5 của SD Card. ¾ SD_CMD (ngõ vào/ngõ ra) : tín hiệu 2 chiều câu lệnh/ trã lời. gán vào pin 2 của SD Card. ¾ SD_DAT[3 : 0] (ngõ vào/ ngõ ra): tín hiệu dữ liệu 2 chiều. SD_DAT3 gán vào pin 1. SD_DAT2 gán vào pin 9. SD_DAT1 gán vào pin 8. SD_DAT0 gán vào pin 7. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 63 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN II.5 Định Dạng FAT FAT (File Allocation Table) là hệ thống file được giới thiệu lần đầu tiên vào năm 1981 cùng với sự ra đời của MS-DOS . Mục đích của FAT là cung cấp một bản đồ giữa những Cluster - nó là đơn vị cơ bản của lưu trữ logic trên đĩa với mức độ hệ điều hành , và vị trí vật lí của dữ liệu được xác định bởi Cylinder , Track và Sector được dùng cho đối với phần cứng điều khiển ổ đĩa . Hình 2.5.1 sơ đồ FAT FAT bao gồm đầu vào mọi File được lưu trữ trên phân vùng ổ cứng và là địa chỉ bắt đầu Cluster của File. Mỗi Cluster bao gồm nội dung của File và chỉ tới Cluster tiếp theo chứa nội dung File hoặc thông báo kết thúc File: End-Of-File ( 0xFFFF ) để thông báo Cluster đó là điểm cuối của File . Ví dụ dưới đây có 03 File : File1.txt dùng 03 Cluster . File2.txt là file bị phân mảnh cũng có 03 Cluster ( 5,6 và 8 ) , và File3.txt vừa trong một Cluster (7) . Hình 2.5.2 phân mãnh trong Fat SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 64 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Độ dài của mỗi phần tử của FAT được tính bằng số bit. Độ dài này biểu thị khả năng chỉ thị số đếm của phần tử FAT. Với các đĩa mềm số lượng các cluster là nhỏ nên chỉ cần 12 bit đủ để chỉ thị số đếm này, vì vậy các đĩa mềm dùng FAT 12 bit. Với đĩa cứng có dung lượng từ 1GB trở lại để chỉ thị số Cluster lớn nhất thì phải dùng tới con số có độ dài 16 bit, vì thế hình thành FAT 16 bit. Với các đĩa cứng có dung lượng từ vài GB trở lên, số lượng các sector trên đĩa rất lớn, đồng thời để hạn chế các sector bỏ trống trong mỗi cluster thì người ta qui định số sector trong mỗi cluster ít đi, do đó số lượng Cluster của cả đĩa sẽ rất lớn. Khi ấy phải dùng tới con số có độ dài 32 bit để chỉ thị số đếm này. Đây là lí do hình thành FAT 32 bit. Hiện thân của FAT đầu tiên là FAT12 mà hỗ trợ kích thước Partition lớn nhất là 8MB. Nó bị thay thế bằng FAT16 vào năm 1984 và tăng kích thước của Partition lên 2GB. FAT16 đã trải qua nhiều năm nó cho phép điều khiển tên file dài hơn phiên bản đầu tiên là 8.3 kí tự. Một điểm giới hạn của FAT16 là số Cluster lớn nhất trong một Partition là cố định nên ổ cứng có dung lượng càng lớn thì càng có nhiều khoảng trống không được dùng đến. Một điều thuận lợi của FAT16 là nó hỗ trợ nhiều hệ điều hành khác nhau Windows 95/98/Me, OS/2, Linux và một vài Version của Unix. Phiên bản Windows 95 OEM Service Release 2 (OSR2) hỗ trợ cả FAT16 và FAT32 . FAT32 chia sẻ những giới hạn của FAT16 nhưng lại có một điều những hệ điều hành tương thích với FAT16 lại không làm việc với FAT32. Đối với máy tính chạy 02 hệ điều hành ví dụ Windows NT và một hệ điều hành dùng FAT32 thì Windows NT lại không đọc được trực tiếp FAT32, nhưng vấn đề sẽ được giải quyết thông qua mạng . Cùng với sự xuất hiện của WinXP vào tháng 10 năm 2001 bao gồm cả NTFS . NTFS hoàn toàn khác với hệ thống File của FAT, nó có thiết lập bảo vệ cao, tiết kiệm được khoảng trống trên đĩa đồng thời địa chỉ hoá được nhiều Cluster. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 65 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Sau đây chúng ta sẽ tìm hiểu rõ hơn về các phiên bản của FAT12, FAT16 và FAT32. ¾ FAT12 (File Allocation Table, 12-bit): được dùng cho ổ đĩa mềm, ổ đĩa có dung lượng từ 32MB trở xuống. FAT12 sử dụng 12 bit để đếm nên chỉ có khả năng quản lý các ổ đĩa có dung lượng thấp hơn 32Mb với số lượng cluster thấp. ¾ FAT16 (File Allocation Table, 16-bit): hổ trợ những hệ điều hành DOS, Windows 9x/Me. Với FAT này chỉ hổ trợ những tên tập tin có độ dài là 11 ký tự (8 ký tự dành cho tên tập tin và 3 ký tự dành cho phần mở rộng.) và hổ trợ những HDD hoặc những phân vùng (partition) có dung lượng tối đa là 2 GB, hệ thống tập tin FAT (FAT16 – để phân biệt với FAT32) được công bố vào năm 1981 đưa ra một cách thức mới về việc tổ chức và quản lý tập tin trên đĩa cứng, đĩa mềm. Tuy nhiên, khi dung lượng đĩa cứng ngày càng tăng nhanh, FAT16 đã bộc lộ nhiều hạn chế. Với không gian địa chỉ 16bit, FAT16 chỉ hỗ trợ đến 65.536 liên cung (clusters) trên một partition, gây ra sự lãng phí dung lượng đáng kể (đến 50% dung lượng đối với những ổ đĩa cứng trên 2 GB). ¾ FAT32 (File Allocation Table, 32-bit) : được giới thiệu trong phiên bản Windows 95 Service Pack 2 (OSR 2), được xem là phiên bản mở rộng của FAT16. Do sử dụng không gian địa chỉ 32 bit nên FAT32 hỗ trợ nhiều cluster trên một partition hơn, do vậy không gian đĩa cứng được tận dụng nhiều hơn. Ngoài ra với khả năng hỗ trợ kích thước của phân vùng từ 2GB lên 2TB và chiều dài tối đa của tên tập tin được mở rộng đến 255 ký tự đã làm cho FAT16 nhanh chóng bị lãng quên. Tuy nhiên, FAT 32 có 1 số nhượcc điểm sau: SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 66 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN ™ FAT32 là tính bảo mật và khả năng chịu lỗi (Fault Tolerance) không cao: ™ FAT32 không hỗ trợ các tính năng bảo mật như phân quyền quản lý, mã hoá.. ™ FAT32 có khả năng phục hồi và chịu lỗi rất kém. ™ FAT32 vẫn còn tỏ ra hữu dụng trên các máy tính cấu hình quá yếu, chỉ có thể chạy được Windows 98. Tuy nhiênFAT16 và FAT32 vẫn được dùng để định dạng cho các loại thẻ nhớ, vì các thiết bị chấp nhận thẻ nhớ như máy ảnh số, máy nghe nhạc vẫn chưa thấy loại nào tương thích với NTFS cả. FAT16 luôn là lựa chọn hàng đầu khi bạn muốn copy dữ liệu của mình từ một máy tính chạy Windows sang máy chạy hệ điều hành khác như Mac chẳng hạn. Hầu hết các máy Mac hiện nay đều không thể nhận dạng các thẻ nhớ USB được định dạng bằng FAT 32. Bảng so sánh sau đây sẽ giúp chúng ta nhìn rõ hơn những ưu nhược điểm của phiên bản FAT12, FAT16 và FAT32. FAT 12 FAT 16 FAT 32 Nhà phát triễn Microsoft Tên đầy đủ Phiên bản 12 bit Phiên bản 16 bit Phiên bản 32 bit Cấu trúc Cấu trúc thư mục Bảng Định dạng tập tin Danh sách liên kết Giới hạn Kích thước tập tin tối đa 2MB 2GB 4GB Số lượng các tập 4096 65536 268,435,437 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 67 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN tin tối đa Độ dài tên tập tin tối đa 8.3 hoặc 255 ký tự tùy hệ điều hành Kích thước phân vùng tối đa 32MB 2GB đến 4GB 2TiB Bảng 23. Bảng so sánh các định dạng FAT II.6 Khái Niệm Về Tập Tin Wave Tập tin wave là một dạng tập tin dùng để lưu trữ dữ liệu âm thanh số (dạng sóng) và nó là một trong những định dạng phổ biến nhất của hệ điều hành Windows. Tập tin wave thuộc chuẩn RIFF ( Resource Interchange File Format- dạng tập tin tài nguyên có thể trao đổi) và đặc điểm của những tập tin thuộc chuẩn RIFF đó là nó sẽ nhóm nội dung của tập tin thành các khối riêng biệt và mỗi một khối sẽ gồm một header (dùng để qui định kiểu và kích thước của khối ) và các byte dữ liệu. Tập tin wave có 2 dạng là dạng nén và dạng không nén (dạng chuẩn) vì thế trong đề tài này tôi chỉ đề cập đến dạng chuẩn của tập tin wave tức là dạng không nén. Cấu trúc file wave gồm 3 khối: khối mô tả dạng RIFF,khối thuộc tính “fmt “ và khối dữ liệu “data” trong đó khối thuộc tính “fmt” và khối dữ liệu “data” là 2 khối con của khối mô tả dạng RIFF. Khối mô tả dạng RIFF: Khối này xác định dạng RIFF và có kích thước là 12 byte gồm các trường: ™ ChunkID: Kích thước: 4 byte. Chức năng: chứa chuỗi “RIFF” dưới dạng mã ASCII ™ ChunkSize: Kích thước: 4 byte. Chức năng: cho biết tổng kích thước của các trường sau nó.( ChunkSize=4 + ( 8 + Subchunk1Size ) + ( 8 + Subchunk2Size)). ™ Format: Kích thước: 4 byte Chức năng: chứa chuỗi “WAVE”. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 68 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Khối thuộc tính “fmt ”: Khối này xác định các thuộc tính của dữ liệu âm thanh và có kích thước là 24 byte gồm các trường: ™ Subchunk1ID: Kích thước: 4 byte. Chức năng: chứa chuỗi “fmt ”. ™ Subchunk1Size: Kích thước: 4 byte. Chức năng:cho biết tổng kích thước của các trường thuộc khối thuộc tính đứng phía sau trường này. (đối với tập tin wave không nén thì Subchunk1Size bằng 16). ™ AudioFormat: Kích thước: 2 byte. Chức năng : cho ta biết dạng nén của dữ liệu trong tập tin wave. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 69 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Chương 3 Hệ Thống Tổng Quát III.1 Thiết Kế Mô Hình SD Music Player. Nhiều thiết bị nghe nhạc sử dụng thiết bị lưu trữ bên ngoài , chẳng hạn như là SD card… để chứa các file nhạc. Nhiều thiết bị nghe nhạc có chứa bộ lọc số DAC có thể tạo ra âm thanh chất lượng cao. Board DE2 cung cấp phần cứng và phần mềm cần thiết chuyên thực hiện truy xuất audio trên SD card. Trong phần demo chúng ta sẽ thực hiện một thiết bị nghe nhạc SD card trên board DE2, file nhạc sẽ đựợc lấy từ SD card. Chúng ta sẽ dùng bộ xử lý NIOS II để đọc dữ liệu từ SD card và dùng audio codec WM8731 để chạy file nhạc. Thiết bị Audio Codec WM8731 được cấu hình ở chế độ slave, mạch bên ngòai cung cấp serial ADC/DAC, bit clock và kênh clock trái phải (LRCK) đến thiết bị Audio codec. Hình 3.1 sơ đồ khối của thiết kế SD music player. Để thực thi mạch thiết kế, chúng ta cần cung cấp một bộ điều khiển Audio DAC để hoàn tất khởi tạo xung clock và điều khiển dòng dữ liệu. Bộ điều khiển Audio DAC được tích hợp vào trong cấu trúc Avalon bus vì thế bộ xử lý Nios II có thể điều khiển ứng dụng. Khi bộ xử lý Nios II hoạt động nó sẽ kiểm tra nếu bộ nhớ FIFO của bộ điều khiển Audio DAC bị đầy. Nếu bộ nhớ FIFO còn trống, bộ xử lý sẽ đọc 512-byte sector và gởi dữ liệu đến FIFO của bộ điều khiển Audio DAC qua đường Avalon bus. Bộ SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 70 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN điều khiển Audio DAC dùng tốc độ lấy mẫu là 48kHz để gởi dữ liệu và tín hiệu clock đến thiết bị Audio Codec. Để nghe file nhạc trong thiết kế này, file phải sử dụng tốc độ lấy mẫu là 48kHz và định dạng WAV độ phân giải 16 bit. III.2 Chương Trình Demo. III.2.1 Các Định Nghĩa Thiết Lập III.2.1.1 Cho Ngõ Vào Và Ngõ Ra #ifndef __SD_Card_H__ #define __SD_Card_H__ #define SD_CMD_IN IOWR(SD_CMD_BASE, 1, 0) #define SD_CMD_OUT IOWR(SD_CMD_BASE, 1, 1) #define SD_DAT_IN IOWR(SD_DAT_BASE, 1, 0) #define SD_DAT_OUT IOWR(SD_DAT_BASE, 1, 1 Các ngõ vào và ngõ ra của SD card được đặt tên là SD_CMD_IN, SD_CMD_OUT, SD_DAT_IN, SD_DAT_OUT. Các ngõ này được thiết lập là ngõ vào hay ngõ ra bằng cách ghi vào địa chỉ cơ bản của nó giá trị là bit 1 hoặc bit 0. Nếu giá trị ghi vào là 0 thì có nghĩa là nhập vào, còn giá trị ngõ vào là 1 có nghĩa là xuất ra. III.2.1.2 Định Nghĩa Ngõ Ra SD Card Cao/ Thấp #define SD_CMD_LOW IOWR(SD_CMD_BASE, 0, 0) #define SD_CMD_HIGH IOWR(SD_CMD_BASE, 0, 1) #define SD_DAT_LOW IOWR(SD_DAT_BASE, 0, 0) #define SD_DAT_HIGH IOWR(SD_DAT_BASE, 0, 1) #define SD_CLK_LOW IOWR(SD_CLK_BASE, 0, 0) #define SD_CLK_HIGH IOWR(SD_CLK_BASE, 0, 1) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 71 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Các ngõ ra của SD card được định nghĩa cao hay thấp phụ thuộc vào giá trị ghi vào địa chỉ của nó là 1 hay 0. Nếu giá trị ghi vào địa chỉ là 0 tức là ở mức thấp và nếu giá trị là 1 thì ở mức cao. III.2.1.3 Đọc Ngõ Vào SD Card #define SD_TEST_CMD IORD(SD_CMD_BASE, 0) #define SD_TEST_DAT IORD(SD_DAT_BASE, 0) Để đọc ngõ vào SD card ta đọc trong địa chỉ thanh ghi của chúng nếu đọc trong thanh ghi SD_CMD_BASE là đọc ra câu lệnh còn đọc trong địa chỉ SD_DAT_BASE thì đọc dữ liệu. III.2.1.4 Các Định Nghĩa Khác. #define BYTE unsigned char #define UINT16 unsigned int #define UINT32 unsigned long Định nghĩa BYTE là theo kiểu chuổi. UINIT16 định nghĩa theo kiểu int. UINT32 định nghĩa theo kiểu long. void Ncr(void) void Ncc(void); BYTE response_R(BYTE); BYTE send_cmd(BYTE *); BYTE SD_read_lba(BYTE *,UINT32,UINT32); BYTE SD_card_init(void); BYTE read_status; BYTE response_buffer[20]; BYTE RCA[2]; BYTE cmd_buffer[5]; SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 72 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN const BYTE cmd0[5] = {0x40,0x00,0x00,0x00,0x00}; const BYTE cmd55[5] = {0x77,0x00,0x00,0x00,0x00}; const BYTE cmd2[5] = {0x42,0x00,0x00,0x00,0x00}; const BYTE cmd3[5] = {0x43,0x00,0x00,0x00,0x00}; const BYTE cmd7[5] = {0x47,0x00,0x00,0x00,0x00}; const BYTE cmd9[5] = {0x49,0x00,0x00,0x00,0x00}; const BYTE cmd16[5] = {0x50,0x00,0x00,0x02,0x00}; const BYTE cmd17[5] = {0x51,0x00,0x00,0x00,0x00}; const BYTE acmd6[5] = {0x46,0x00,0x00,0x00,0x02}; const BYTE acmd41[5] = {0x69,0x0f,0xf0,0x00,0x00}; const BYTE acmd51[5] = {0x73,0x00,0x00,0x00,0x00}; Định nghĩa các hàm con trong chương trình như hàm Ncr(void), Ncc(void), response_R(BYTE), send_cmd(BYTE *), SD_read_lba(BYTE *, UINT32, UINT32 ), SD_card_init(void), read_status, response_buffer[20], RCA[2], cmd_buffer[5]. Các giá trị địa chỉ cố định của các lệnh như cmd0[5] = {0x40,0x00,0x00,0x00,0x00} …. III.2.2 Các Chương Trình Con Và Các Hàm Con. III.2.2.1 chương trình void Ncr(void) void Ncr(void) { SD_CMD_IN; SD_CLK_LOW; SD_CLK_HIGH; SD_CLK_LOW; SD_CLK_HIGH; } SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 73 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Hàm đưa câu lệnh vào thanh ghi địa chỉ của SD_CMD_BASE sau đó đưa xung clock vào. Trong này có sự thay đổi giá trị xung clock. III.2.2.2 chương trình void Ncc (void) void Ncc(void) { int i; for(i=0;i<8;i++) { SD_CLK_LOW; SD_CLK_HIGH; } } Hàm Void Ncc(void) chủ yếu dung để đưa xung clock vào. III.2.2.3 Hàm Khởi Tạo SD Card BYTE SD_card_init(void) { BYTE x,y; SD_CMD_OUT; SD_DAT_IN; SD_CLK_HIGH; SD_CMD_HIGH; SD_DAT_LOW; read_status=0; for(x=0;x<40;x++) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 74 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Ncr(); for(x=0;x<5;x++) cmd_buffer[x]=cmd0[x]; y = send_cmd(cmd_buffer); do { for(x=0;x<40;x++); Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd55[x]; y = send_cmd(cmd_buffer); Ncr(); if(response_R(1)>1) //response too long or crc error return 1; Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=acmd41[x]; y = send_cmd(cmd_buffer); Ncr(); } while(response_R(3)==1); Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd2[x]; y = send_cmd(cmd_buffer); SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 75 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Ncr(); if(response_R(2)>1) return 1; Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd3[x]; y = send_cmd(cmd_buffer); Ncr(); if(response_R(6)>1) return 1; RCA[0]=response_buffer[1]; RCA[1]=response_buffer[2]; Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd9[x]; cmd_buffer[1] = RCA[0]; cmd_buffer[2] = RCA[1]; y = send_cmd(cmd_buffer); Ncr(); if(response_R(2)>1) return 1; Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd7[x]; SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 76 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN cmd_buffer[1] = RCA[0]; cmd_buffer[2] = RCA[1]; y = send_cmd(cmd_buffer); Ncr(); if(response_R(1)>1) return 1; Ncc(); for(x=0;x<5;x++) cmd_buffer[x]=cmd16[x]; y = send_cmd(cmd_buffer); Ncr(); if(response_R(1)>1) return 1; read_status =1; //sd card ready return 0; } Khởi tạo một hệ thống SD card gồm các dữ liệu vào, xuất câu lệnh, xung clock… III.2.2.4 Hàm Đọc SD Card BYTE SD_read_lba(BYTE *buff,UINT32 lba,UINT32 seccnt) { BYTE c=0; UINT32 i,j; lba+=101; SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 77 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN for(j=0;j<seccnt;j++) { { Ncc(); cmd_buffer[0] = cmd17[0]; cmd_buffer[1] = (lba>>15)&0xff; cmd_buffer[2] = (lba>>7)&0xff; cmd_buffer[3] = (lba<<1)&0xff; cmd_buffer[4] = 0; lba++; send_cmd(cmd_buffer); Ncr(); } while(1) { SD_CLK_LOW; SD_CLK_HIGH; if(!(SD_TEST_DAT)) break; } for(i=0;i<512;i++) { BYTE j; for(j=0;j<8;j++) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 78 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN { SD_CLK_LOW; SD_CLK_HIGH; c <<= 1; if(SD_TEST_DAT) c |= 0x01; } *buff=c; buff++; } for(i=0; i<16; i++) { SD_CLK_LOW; SD_CLK_HIGH; } } read_status = 1; //SD data next in return 0; } III.2.2.5 Hàm Response BYTE response_R(BYTE s) { BYTE a=0,b=0,c=0,r=0,crc=0; BYTE i,j=6,k; SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 79 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN while(1) { SD_CLK_LOW; SD_CLK_HIGH; if(!(SD_TEST_CMD)) break; if(crc++ >100) return 2; } crc =0; if(s == 2) j = 17; for(k=0; k<j; k++) { c = 0; if(k > 0) //for crc culcar b = response_buffer[k-1]; for(i=0; i<8; i++) { SD_CLK_LOW; if(a > 0) c <<= 1; else SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 80 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN i++; a++; SD_CLK_HIGH; if(SD_TEST_CMD) c |= 0x01; if(k > 0) { crc <<= 1; if((crc ^ b) & 0x80) crc ^= 0x09; b <<= 1; crc &= 0x7f; } } if(s==3) { if( k==1 &&(!(c&0x80))) r=1; } response_buffer[k] = c; } if(s==1 || s==6) { if(c != ((crc<<1)+1)) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 81 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN r=2; } return r; } III.2.2.6 Hàm Gửi Đi Câu Lệnh. BYTE send_cmd(BYTE *in) { int i,j; BYTE b,crc=0; SD_CMD_OUT; for(i=0; i < 5; i++) { b = in[i]; for(j=0; j<8; j++) { SD_CLK_LOW; if(b&0x80) SD_CMD_HIGH; else SD_CMD_LOW; crc <<= 1; SD_CLK_HIGH; if((crc ^ b) & 0x80) crc ^= 0x09; SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 82 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN b<<=1; } crc &= 0x7f; } crc =((crc<<1)|0x01); b = crc; for(j=0; j<8; j++) { SD_CLK_LOW; if(crc&0x80) SD_CMD_HIGH; else SD_CMD_LOW; SD_CLK_HIGH; crc<<=1; } return b; } III.2.2.7 Chương Trình Khởi Tạo LCD #include #include #include #include "system.h" #include "LCD.h" SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 83 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN void LCD_Init() { lcd_write_cmd(LCD_16207_0_BASE,0x38); usleep(2000); lcd_write_cmd(LCD_16207_0_BASE,0x0C); usleep(2000); lcd_write_cmd(LCD_16207_0_BASE,0x01); usleep(2000); lcd_write_cmd(LCD_16207_0_BASE,0x06); usleep(2000); lcd_write_cmd(LCD_16207_0_BASE,0x80); usleep(2000); } III.2.2.8 Chương Trình Hiển Thị Text Lên Trên LCD void LCD_Show_Text(char* Text) { int i; for(i=0;i<strlen(Text);i++) { lcd_write_data(LCD_16207_0_BASE,Text[i]); usleep(2000); } } void LCD_Line2() SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 84 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN { lcd_write_cmd(LCD_16207_0_BASE,0xC0); usleep(2000); } void LCD_Test() { char Text1[16] = "Altera DE2 Board"; char Text2[16] = "SD Music Player."; // Initial LCD LCD_Init(); // Show Text to LCD LCD_Show_Text(Text1); // Change Line2 LCD_Line2(); // Show Text to LCD LCD_Show_Text(Text2); } Hàm xuất chuỗi ký tự lên màn hình LCD. Khởi tạo một LCD sau đó xuất ra chuổi Text1 và Text2 lên màn hình LCD của board DE2. Khai báo hai biến là Text1 và Text2. Ghi từng ký tự của chuỗi lên địa chỉ thanh ghi của LCD. III.2.3 Chương Trình Chính #include "basic_io.h" #include "LCD.h" SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 85 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN #include "SD_Card.h" int main(void) { UINT16 i=0,Tmp1=0,Tmp2=0; UINT32 j=720; BYTE Buffer[512]={0}; while(SD_card_init()) usleep(500000); LCD_Test(); while(1) { SD_read_lba(Buffer,j,1); while(i<512) { if(!IORD(AUDIO_0_BASE,0)) { Tmp1=(Buffer[i+1]<<8)|Buffer[i]; IOWR(AUDIO_0_BASE,0,Tmp1); i+=2; } } SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 86 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN if(j%64==0) { Tmp2=Tmp1*Tmp1; IOWR(LED_RED_BASE,0,Tmp2); IOWR(LED_GREEN_BASE,0,Tmp1); } IOWR(SEG7_DISPLAY_BASE,0,j); j++; i=0; } return 0; } Khởi tạo SD card. Xuất ký tự lên LCD. Đọc SD card từ bộ nhớ đệm buffer. Khi I nhỏ hơn 512. Nếu không đọc được dữ liệu từ thanh ghi AUDIO_0_BASE. Đặt biến Tmp1 là dịch trái 8 bit buffer or với buffer [i]. Ghi Tmp1 vào thanh ghi AUDIO_0_BASE. Tăng i lên 2. Nếu j chia hết cho 64 Tmp2 = Tmp1* Tmp1. Ghi Tmp2 vào thanh ghi LED_RED_BASE. Ghi Tmp1 vào thanh ghi LED_GREEN_BASE. Ghi j vào thanh ghi SEG7_DISPLAY_BASE. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 87 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Kết luận : Lập trình hệ thống nhúng ngày nay rất phổ biến và ngày càng phát triễn mạnh mẽ. Đề tài tập trung nghiên cứu xây dụng hệ thống SD Music Player. Hệ thống có thể áp dụng cho các thiết bị nghe nhạc phổ biến hiện nay như máy nghe nhạc MP3, hay tích hợp vào trong điện thoại di động. Các ứng dụng của SOPC Builder rất rộng. SOPC Builder có thể được sử dụng để tạo ra nhiều hệ thống khác nhau cho những mục đích khác nhau. Tuy nhiên trong giới hạn của đề tài chúng em chỉ có thể trình bày về một phần trong các ứng dụng của SOPC. SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 88 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Tài liệu tham khảo Các sách tham khảo 1) tut_sopc_introduction_verilogDE2.pdf CD DE2 của altera. 2) tut_nios2_introduction.pdf CD DE2 của altera. 3) WM8731.pdf CD DE2 của altera. 4) Introduction to the Altera SOPC Builder Using Verilog Design CD DE2 của Altera. 5) Proof that C can match or beat assembly. 6) The New C Standard, Derek M. Jones, 2005 7) C Programming for Embedded Systems, Kirk Zurell 8) Tự học lập trình Visual C++ MFC qua các ví dụ, Nguyễn Đình Tê, NXB Lao động – Xã Hội. Các website tham khảo 1) www.altera.com 2) www.dientuvienthong.net 3) 4) 5) 6) SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 89 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Danh sách hình Phụ Lục Hình 1.1.1. Hiển thị chính Quartus II. .....................................................3 Hình 1.1.2. ví dụ file menu ......................................................................4 Hình 1.1.3. Thao tác thực hiện bằng Wizard Tasks ................................5 Hình 1.1.4. Tạo một project mới. .............................................................6 Hình 1.1.5. Phần mềm Quartus II sẽ tạo ra một thư mục cho project ......6 Hình 1.1.6. Wizard có thể bao gồm file thiết kế lý thuyết. ......................7 Hình 1.1.7. Chọn một họ thiết bị và một thiết bị cụ thể ...........................8 Hình 1.1.8. Công cụ EDA khác ...............................................................9 Hình 1.1.9. Tóm tắt của việc cài đặt project. .........................................10 Hình 1.1.10. Quartus II sau khi project được tạo ...................................11 Hình 1.2.1: Sơ đồ hệ thống SOPC tích hợp trên PLD của Altera ..........12 Hình 1.2.2: Các thành phần trong nhãn system contents .......................13 Hình 1.2.3. tạo mới một SOPC Builder. ................................................15 Hình 1.2.4. add cpu_0 vào để tạo kết nối. ..............................................16 Hình 1.2.5. thiết kế module cpu_0. ........................................................17 Hình 1.2.6. add các module cần thiết .....................................................17 Hình 1.2.7. liên kết cpu_0 với onchip_memory2_0 ...............................18 Hình 1.2.8. biên dịch thành công ...........................................................19 Hình 1.2.9. Gán pin ................................................................................19 Hình 1.2.10. Quartus II biên dịch thành công ........................................20 Hình 1.2.11. lập trình Nios II IDE .........................................................21 Hình 1.3.1 Tổ Chức Bộ Nhớ Và I/O ......................................................27 Hình 1.3.2 các định dạng của các tập lệnh NIOS II ...............................29 Hình 1.4.1 Board DE2 ...........................................................................30 Hình 1.4.2 Biểu Đồ Khối Của Board DE2 .............................................31 Hình 1.4.2. Board DE2 của Altera .........................................................32 Hình 1.4.3 Ứng Dụng TV Box ...............................................................34 Hình 1.4.5 Karaoke Machine và SD Music Player ................................35 Hình 2.1.1 Sơ Đồ Khối Chức Năng WM8731/L ...................................38 Hình 2.1.2 Lược Đồ Line Ngõ Vào. ......................................................39 Hình 2.2.1 Định Tuyến Tín Hiệu Trong Chế Độ Bypass .......................48 Hình 2.2.2 Lược Đồ Chế Độ Sidetone ...................................................49 Hình 2.3.1 Mạch Ứng Dụng Máy Tạo Dao Động Crystal. ....................52 Hình 2.5.1 sơ đồ FAT ............................................................................64 Hình 2.5.2 phân mãnh trong Fat ............................................................64 Hình 3.1 sơ đồ khối của thiết kế SD music player. ................................70 SVTH: NGUYỄN MINH HIẾU – HUỲNH CÔNG PHÚ Trang 90 ĐỒ ÁN TỐT NGHIỆP GVHD : Th.S HUỲNH HỮU THUẬN Danh sách bảng Bảng 1 Các Thanh Ghi Đa Năng ...........................................................25 Bảng 2 Thanh Ghi Điều Kh

Các file đính kèm theo tài liệu này:

  • pdfNGHIEN CUU HE THONG NHUNG TREN SOPC BUILDER VA CAC UNG DUNG.pdf