1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng

91 789 1

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 91
Dung lượng 4,61 MB

Nội dung

Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng

Trang 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

Hình 1.1.9 Tóm tắt của việc cài đặt project

Trang 11

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

Trang 12

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ể:

Trang 13

¾ 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

Trang 14

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

• Đị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

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ế

Trang 15

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

Trang 16

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

Trang 17

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

Trang 18

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

Trang 19

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

Trang 20

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

Trang 21

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ể

Trang 22

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

Trang 23

đ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ế

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

Trang 24

¾ 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

Trang 25

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ý

Trang 26

Thanh ghi Tên b31…….b2 b1 b0

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

Trang 27

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:

Trang 28

¾ 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

Trang 29

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

Trang 30

Hình 1.4.1 Board DE2

I.4.2 Thông số kỹ thuật

Trang 31

Hình 1.4.2 Biểu Đồ Khối Của Board DE2

¾ 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

Trang 32

Hình 1.4.2 Board DE2 của Altera

Trang 33

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

¾ Clock source dao động 50MH và 27 MHz

¾ 24 bit CD-quality audio CODEC vói các jack out,microphone

line-in,line-¾ VGA DAC với đầu kết nối VGA-out

¾ TV Decoder và đầu kết nối TV-in

Trang 34

¾ 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

Trang 35

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

Trang 36

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

Trang 37

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

Trang 38

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

Trang 39

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

Trang 40

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

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

Ngày đăng: 09/04/2014, 20:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
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 Sách, tạp chí
Tiêu đề: học lập trình Visual C++ MFC qua các ví dụ
Nhà XB: NXB Lao động – Xã Hội. Các website tham khảo 1) www.altera.com
1) tut_sopc_introduction_verilogDE2.pdf CD DE2 của altera Khác
2) tut_nios2_introduction.pdf CD DE2 của altera Khác
3) WM8731.pdf CD DE2 của altera Khác
4) Introduction to the Altera SOPC Builder Using Verilog Design CD DE2 của Altera Khác
5) Proof that C can match or beat assembly Khác
6) The New C Standard, Derek M. Jones, 2005 Khác
7) C Programming for Embedded Systems, Kirk Zurell Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1.1. Hiển thị chính Quartus II. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.1. Hiển thị chính Quartus II (Trang 3)
Hình 1.1.4. Tạo một project mới. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.4. Tạo một project mới (Trang 6)
Hình 1.1.6. Wizard có thể bao gồm file thiết kế lý thuyết. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.6. Wizard có thể bao gồm file thiết kế lý thuyết (Trang 7)
Hình 1.1.7. Chọn một họ thiết bị và một thiết bị cụ thể - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.7. Chọn một họ thiết bị và một thiết bị cụ thể (Trang 8)
Hình 1.1.8. Công cụ EDA khác - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.8. Công cụ EDA khác (Trang 9)
Hình 1.1.9. Tóm tắt của việc cài đặt project. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.9. Tóm tắt của việc cài đặt project (Trang 10)
Hình 1.1.10. Quartus II sau khi project được tạo  I.2. SOPC BUILDER - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.1.10. Quartus II sau khi project được tạo I.2. SOPC BUILDER (Trang 11)
Hình 1.2.1: Sơ đồ ví dụ về hệ thống SOPC tích hợp trên PLD của Altera - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.1 Sơ đồ ví dụ về hệ thống SOPC tích hợp trên PLD của Altera (Trang 12)
Hình 1.2.2: Các thành phần trong nhãn system contents - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.2 Các thành phần trong nhãn system contents (Trang 13)
Bảng thiết lập xung - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng thi ết lập xung (Trang 15)
Hình 1.2.4. add cpu_0 vào để tạo kết nối. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.4. add cpu_0 vào để tạo kết nối (Trang 16)
Hình 1.2.7. liên kết cpu_0 với onchip_memory2_0 - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.7. liên kết cpu_0 với onchip_memory2_0 (Trang 18)
Hình 1.2.10. Quartus II biên dịch thành công - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.10. Quartus II biên dịch thành công (Trang 20)
Hình 1.2.11. lập trình Nios II IDE  I.3 Phần Mềm NIOS II IDE - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.2.11. lập trình Nios II IDE I.3 Phần Mềm NIOS II IDE (Trang 21)
Hình 1.3.1 Tổ Chức Bộ Nhớ Và I/O - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.3.1 Tổ Chức Bộ Nhớ Và I/O (Trang 27)
Hình 1.4.1 Board DE2 - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.4.1 Board DE2 (Trang 30)
Hình 1.4.2 Biểu Đồ Khối Của Board DE2 - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.4.2 Biểu Đồ Khối Của Board DE2 (Trang 31)
Hình 1.4.3 Ứng Dụng TV Box - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 1.4.3 Ứng Dụng TV Box (Trang 34)
Hình 2.1.1 Sơ Đồ Khối Chức Năng WM8731/L - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 2.1.1 Sơ Đồ Khối Chức Năng WM8731/L (Trang 38)
Bảng 6 Điều Khiển Phần Mềm ADC - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng 6 Điều Khiển Phần Mềm ADC (Trang 43)
Bảng 9 Điều Khiển Phần Mềm Ngõ Ra Headphone - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng 9 Điều Khiển Phần Mềm Ngõ Ra Headphone (Trang 47)
Hình 2.2.1 Định Tuyến Tín Hiệu Trong Chế Độ Bypass - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 2.2.1 Định Tuyến Tín Hiệu Trong Chế Độ Bypass (Trang 48)
Bảng 17 Điều Khiển Phần Mềm Chế Độ Bảo Tồn Năng Lượng - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng 17 Điều Khiển Phần Mềm Chế Độ Bảo Tồn Năng Lượng (Trang 56)
Bảng 22 Lập Trình Chế Độ Master/Slave - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng 22 Lập Trình Chế Độ Master/Slave (Trang 61)
Hình 2.3.5 Chế Độ Master. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 2.3.5 Chế Độ Master (Trang 62)
Hình 2.5.1 sơ đồ FAT - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 2.5.1 sơ đồ FAT (Trang 64)
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 - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
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 (Trang 67)
Bảng 23. Bảng so sánh các định dạng FAT - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Bảng 23. Bảng so sánh các định dạng FAT (Trang 68)
Hình 3.1 sơ đồ khối của thiết kế SD music player. - Nghiên cứu hệ thống nhúng trên SoPC builder và các ứng dụng
Hình 3.1 sơ đồ khối của thiết kế SD music player (Trang 70)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w