1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E

80 1,3K 6
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nghiên cứu và triển khai hệ thống nhúng trên kit Spartan-3E
Tác giả Nguyễn Ngọc Vũ, Võ Xuân Văn
Người hướng dẫn Th.S. Phạm Trần Bích Thuận
Trường học Trường Đại Học Công Nghiệp TP. HCM
Chuyên ngành Công Nghệ Điện Tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 80
Dung lượng 1,35 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E

Trang 1

BỘ CÔNG THƯƠNG

KHOA CÔNG NGHỆ ĐIỆN TỬ

Trang 2

LỜI MỞ ĐẦU

Để đơn giản trong việc thiết kế số, người thiết kế cần một ngôn ngữ chuẩn để mô

tả các mạch điện Từ đó Hardware Description Languages (HDLs) hay còn gọi là ngôn ngữ mô tả phần cứng ra đời Ngôn ngữ mô tả phần cứng (HDL) là một loại ngôn ngữ

để thể hiện các thiết kế phần cứng thông qua bằng các phát biểu bằng lời

Có 2 ngôn ngữ thông dụng: Verilog HDL và VHDL Ngôn ngữ mô tả phần cứng ngày càng thông dụng được đánh dấu sự phát triển mạnh mẽ của hệ thống nhúng Nắm được tầm quan trọng của vấn đề cùng với định hướng giáo viên hướng dẫn

đề ra nhóm chúng em tiến hành nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E, với mong muốn là xây dựng được mô hình “Giám sát và điều khiển thiết

bị theo nhiệt độ phòng ” và lấy đó làm đề tài tốt nghiệp cho mình

Nội dung đề tài bao gồm những phần sau:

Tìm hiểu về cấu trúc kít

Vi điều khiển nhúng Microblaze

Tìm hiểu về phần mềm EDK

Thiết kế ứng dụng nhúng trên kit

Mặc dù đã cố gắng để hoàn thành tập đề tài, nhưng không tránh khỏi những thiếu sót mong quí thầy cô thông cảm Rất mong được sự góp ý của thầy cô

Nhóm sinh viên thực hiện Nguyễn Ngọc Vũ

Võ Xuân Văn

Trang 3

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn đến các thầy cô trong khoa Công Nghệ Điện Tử trường đại học Công Nghiệp Thành Phố Hồ Chí Minh, đã tạo điều kiện cho mượn phòng thí nghiệm và giúp đỡ động viên để em có thể hoàn thành được đề tài này

Chúng em xin chân thành cảm ơn Cô Phạm Trần Bích Thuận, đã hướng dẫn tận tình và tạo điều kiện cho chúng em trong suốt thời gian làm đề tài

Nhóm sinh viên thực hiện Nguyễn Ngọc Vũ

Võ Xuân Văn

Trang 4

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Giáo viên hướng dẫn: PHẠM TRẦN BÍCH THUẬN

CHỮ KÝ CỦA GIẢNG VIÊN HƯỚNG DẪN

……….,Ngày … Tháng …Năm 2010

Phạm Trần Bích Thuận

Trang 5

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

Giáo viên phản biện:

Nhóm SVTH: NGUYỄN NGỌC VŨ MSSV: 06055861 VÕ XUÂN VĂN MSSV: 06052721 Lớp: DHDT2B

CHỮ KÝ CỦA GIẢNG VIÊN PHẢN BIỆN

.…….,Ngày … Tháng …Năm 2010

Trang 6

MỤC LỤC

Trang

Chương 1: GIỚI THIỆU VỀ CHIP FPGA VÀ NGÔN NGỮ ĐẶC TẢ P HẦN

CỨNG VHDL 1

1.1 KHÁI QUÁT VỀ CHIP FPGA: 1

1.1.1 Khái niệm: 1

1.1.2 Ứng dụng: 2

1.2 NGÔN NGỮ ĐẶC TẢ P HẦN CỨNG VHDL: 2

1.2.1 Giới thiệu: 2

1.2.2 Cấu trúc một file VHDL: 3

1.2.3 Cấu trúc từ vựng: 4

1.2.4 Các đối tượng dữ liệu trong VHDL: .5

1.2.5 Kiểu dữ liệu: 6

1.2.6 Các lệnh tuần tự: 10

Chương 2: CẤU TRÚC KIT SP ARTANT-3E, VI ĐIỀU KHIỂN MICROB LAZE VÀ PHẦN MỀM EDK CỦA HÃNG XILINK 14

2.1 CẤU TRÚC KIT SPARTANT–3E CỦA XILINX: 14

2.1.1 Các thành phần chính của kit SPARTANT – 3E: 14

2.1.2 Bộ tạo xung clock cho FPGA: .15

2.1.3 Các nút chuyển nút nhấn và Led: 15

2.1.4 Khối LCD: 17

2.1.5 Bộ biến đổi tương tự sang số: 18

2.2 VI ĐIỀU KHIỂN NHÚNG MICROBLAZE: 23

2.2.1 Giới thiệu về vi điều khiển Microblaze: 23

2.2.2 Kiến trúc cơ bản của MicrroBlaze: 24

2.2.3 Kiến trúc Pipeline của vi điều khiển MicroBlaze: 25

2.2.4 Giao tiếp tính hiệu trong MicroBlaze: .25

2.3 PHẦN MỀM EDK: 27

2.3.1 Giới thiệu Phần mềm EDK: 27

2.3.2 Các tập lệnh trong EDK: 27

2.3.3 Cách tạo Project với phần mềm EDK: 32

Chương 3: PHẦN MỀM VB VÀ G IAO DIỆN ĐIỀU KHIỂN 39

3.1 GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH VB.NET: 39

3.2 LẬP TRÌNH GIAO TIẾP CỔNG NỐI TIẾP VB.NET: 39

Trang 7

3.2.1 Tự động dò tìm cổng COM: 39

3.2.2 Đóng mở cổng COM: 39

3.2.3 Nhận dữ liệu từ cổng COM: 40

3.2.4 Gửi dữ liệu ra cổng COM: 40

3.2.5 Cài đặt tham số cho cổng COM: 41

3.2.6 Viết chương trình: 41

Chương 4: TRIỂN KHAI XÂY DỰNG HỆ THỐNG NHÚNG TRÊN KIT SP ARTANT 3E 53

4.1 SƠ ĐỒ TỔNG QUÁT VỀ ỨNG DỤNG NHÚNG: 53

4.2 XÂY DỰNG CÁC CHIP NHÚNG: 54

4.2.1 Khối cảm biến nhiệt: 54

4.2.2 Khối điều khiển Camera: 58

4.3 XÂY DỰNG CÁC ỨNG DỤNG NHÚNG: 61

4.3.1 Sơ đồ giải thuật: 61

KẾT LUẬN 70

PHỤ LỤC CÁC TỪ VIẾT TẮC 71

DANH MỤC TÀI LIỆU THAM KHẢO 72

Trang 8

DANH MỤC CÁC BẢNG,SƠ ĐỒ, HÌNH

Hình 1.1: Cấu trúc một file VHDL 3

Hình 2.1: Bộ tạo xung trên kít Spartan 3e .15

Hình 2.2: Khối SW trên kit Spartan 3e .16

Hình 2.3: Dạng xung Encoder .16

Hình 2.4: Khối Led trên kit Spartan 3e .17

Hình 2.5: Khối LCD trên kit Spartan 3e .17

Hình 2.4: Khối ADC trên kit Spartan 3e 18

Hình 2.5: Sơ Đồ chân khối ADC 19

Hình 2.6: Tám bit ra LTC6912 20

Hình 2.7: Cấu trúc IC LTC6912 21

Hình 2.8: Giản đồ thời gian ghi nhận dữ liệu 22

Hình 2.9: Giản đồ giao tiếp LTC1407A 23

Hình 2.10: Kiến trúc cơ bản của vi điều khiển MicroBlaze .24

Hình 2.11: Kiến trúc Pipeline của vi điều khiển MicroBlaze 25

Hình 2.12: một hệ thống Bus điển hình 26

Hình 2.10: Cửa sổ XPS 32

Hình 2.11: Hộp tho ại Create New XPS Project 33

Hình 2.12: Hộp tho ại Select Board 34

Hình 2.13: Hộp tho ại Select Processor 34

Hình 2.14: Hộp tho ại Configure MicroBlaze Processor 35

Hình 2.15: Hộp tho ại Configure IO Interfaces 35

Hình 2.16: Hộp tho ại Software Setup 36

Hình 2.17: Hộp tho ại Configure Memory Test Application 36

Hình 2.18: Hộp tho ại System Created 37

Hình 2.19: Cửa sổ System Assembly View 37

Hình 2.20: Block Diagram View of the Generated Project 38

Hình 3.1: Giao diện điều khiển và giám sát trên máy tính 42

Hình 3.2: Giao diện form setting Com 52

Hình 4.1: Sơ đồ tổng quát về ứng dụng nhúng 53

Hình 4.2: Sơ đồ giải thuật Khối cảm biến nhiệt 54

Hình 4.3: Sơ đồ giải thuật khối điều khiển Camera 58

Hình 4.4: Sơ đồ giải thuật khối điều khiển camera giao tiếp vb .61

Hình 4.5: Sơ đồ giải thuật khiển điều khiển nhiệt độ giao tiếp vb .61

Trang 9

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 1

Chương 1: GIỚI THIỆU VỀ CHIP FPGA VÀ NGÔN NGỮ ĐẶC TẢ

Các kết nối khả trình cho phép các khối logic có thể nối với nhau theo thiết kế của người xây dựng hệ thống, giống như một bảng mạch khả trình Một kiến trúc khác tương tự nhưng đơn giản hơn FPGA, là CPLD (Complex Programmable Logic Device) Thực chất đây là tiền thân của FPGA Năm 1984, Ross Freeman, một đồng sáng lập của Xilinx đã phát minh ra FPGA FPGA và CPLD đều bao gồm một số lượng khá lớn các phần tử logic khả trình Mật độ cổng logic (Logic Gate) của CPLD nằm trong khoảng từ vài nghìn cho đến 10 nghìn cổng Trong khi đó FPGA thông thường chứa từ 10 nghìn cho đến vài triệu cổng

Khác biệt cơ bản giữa FPGA và CPLD là ở kiến trúc của chúng CPLD có một kiến trúc bị giới hạn trong một hoặc một vài dãy logic khả trình cùng với một lượng nhỏ thanh ghi định thời Do đó nó kém linh hoạt hơn, nhưng lại có ưu điểm là khả năng dự đoán trễ lớn hơn và tỉ lệ logic-kết nối cao hơn Ngược lại, trong kiến trúc của FPGA lại có sự trội hơn về số lượng kết nối Điều này làm cho nó trở nên linh hoạt hơn (về số lượng thiết kế được thực thi bên trong) nhưng cũng đồng nghĩa với việc phức tạp hơn trong quá trình thiết kế

Một khác biệt đáng chú ý nữa giữa FPGA và CPLD là: hầu hết các FPGA hiện nay đều bao có các phần tử chức năng tích hợp cao hơn (như bộ cộng, nhân tích hợp),

và bộ nhớ tích hợp Một số kiến trúc FPGA hiện nay còn có thể cho phép cấu hình lại từng phần (partial re-configuration) Có nghĩa là cho phép một phần của thiết kế được cấu hình lại trong khi những thiết kế khác vẫn tiếp tục hoạt động

Trang 10

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 2

Một ưu điểm khác của FPGA, là người thiết kế có thể tích hợp vào đó các bộ xử

lý mềm (soft processor) hay vi xử lý nhúng (embedded processor) Các vi xử lý này có thể được thiết kế như các khối logic thông thường, mà mã nguồn do các hãng cung cấp, thực thi các lệnh theo chương trình được nạp riêng biệt, và có các ngoại vi được thiết kế linh động (khối giao tiếp UART, vào/ra đa chức năng GPIO, ethernet ) Các

vi xử lý này cũng có thể được lập trình lại (re-configurable computing) ngay trong khi đang chạy

1.1.2 Ứng dụng:

FPGA được ứng dụng điển hình trong các lĩnh vực như: xử lý tín hiệu số, xử lý ảnh, thị giác máy, nhận dạng giọng nói, mã hóa, mô phỏng (emulation) FPGA đặc biệt mạnh trong các lĩnh vực hoặc ứng dụng mà kiến trúc của nó yê u cầu một lượng rất lớn xử lý song song, đặc biệt là mã hóa và giải mã FPGA cũng được sử dụng trong những ứng dụng cần thực thi các thuật toán như FFT, nhân chập (convolution), thay thế cho vi xử lý

Hiện nay công nghệ FPGA đang được sản xuất và hỗ trợ phần mềm bởi các hãng như: Xilinx, Altera, Actel, Atmel Trong đó Xilinx và Altera là 2 hãng hàng đầu Xilinx cung cấp phần mềm miễn phí trên nền Windows, Linux, trong khi Altera cung cấp những công cụ miễn phí trên nền Windows, Linux, Solaris

1.2 NGÔN NGỮ ĐẶC TẢ PHẦN CỨNG VHDL:

1.2.1 Giới thiệu:

VHDL là tên viết tắt của ngôn ngữ đặc tả phần cứng mạch tích hợp ở tốc độ rất

cao (Very high speed integrated circuit Hardware Description Language) Đây là một ngôn ngữ dùng để mô tả các hệ thống điện tử số, bao gồm nhữ ng đặc điểm của các ngôn ngữ lập trình thông thường như Pascal, C, hay của các ngôn ngữ mô tả logic như ABEL – HDL VHDL cũng bao gồm cả những đặc điểm quản lí thiết kế, và những đặc điểm mà cho phép nó mô hình hóa một cách chính xác các biến cố xảy ra VH DL ra đời nhằm hoàn thiện một số yêu cầu về quy trình thiết kế, hỗ trợ cho sự phát triển, hiệu chỉnh, tổng hợp và kiểm tra của việc thiết kế phần cứng, cũng như hỗ trợ cho sự liên kết dữ liệu trong thiết kế, và cho sự duy trì, thay đổi, cải tiến phần cứng Thứ nhất,

nó cho phép mô tả cấu trúc của một thiết kế, đó là cách thức phân chia ra thành những cấp độ thấp hơn, và các mức chi tiết này liên kết với nhau theo phương thức nào Thứ

Trang 11

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 3

hai, nó cho phép đặc tả theo chức năng những thiết kế được viết theo bất kì dạng ngôn ngữ lập trình thông thường nào Thứ ba, nó cho phép thiết kế được mô phỏng lại, nhằm kiểm tra hoạt động của sản phẩm trước khi sản xuất

entity NAME_OF_ENTITY is [ generic generic_declarations);]

port (signal_names: mode type;

signal_names: mode type;

signal_names: mode type);

end [NAME_OF_ENTITY] ;

Một entity bắt đầu bằng từ khóa entity và sau đó là tên của nó và từ khóa is, tiếp

theo là khai báo các port sử dụng từ khóa port Một entity luôn kết thúc bằng từ khóa end [tên entity]

Khai báo entity mô tả giao diện của một thực thẻ thiết kế, qua đó thực thể này truyền thông với các thực thể khác trong cùng một môi trường Giao diện điển hình bao gồm tất cả các tín hiệu ngõ vào(input) và ngõ ra(output) và hai chiều (bidirectional) được định nghĩa trong phần khai báo port, các thông số của mô hình được định nghĩa bằng cách sử dụng các khai báo chung (generic)

Trang 12

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 4

dụng kiểu dữ liệu chung chứa trong một package

Chứa mã VHDL, mà mô tả sự hoạt động (chức năng) của mạch

1.2.3 Cấu trúc từ vựng:

Tên định nghĩa: là những từ được người dùng sử dụng để đặc tên cho những đối tượng, khi sử dụng một tên định nghĩa cần tuân theo qui tắc cơ bản sau:

Chỉ sử dụng các ký tự :A tới Z hoặc a tới z hoặc 0 tới 9 và kí tự gạch dưới ( _ )

Kí tự đầu tiên phải là một chữ cái và kí tự cuối cùng không được là kí tự ( _ )

Một tên định nghĩa không thể bao gồm hai dấu ( _ ) liên tiếp

Tên định nghĩa trong ngôn ngữ VHDL không phân biệt chữ hoa hay chữ thường và không qui định chiều dài

Ví dụ:

Tên định nghĩa hợp lệ X10, x_10, My_gate1

Tên định nghĩa không hợp lệ: _X10, x_@10, My-gate1

Từ khóa (keywords ): là những tên định nghĩa được hệ thống sử dụng cho những cấu trúc cụ thể Từ khóa không thể trùng với tên định nghĩa của tín hiệu hay của đối

tượng Sau đây là một số từ khóa thường gặp in, out, or, end, port map, and

Số : mặc định là chữ số thập phân, trong VHDL cho phép dùng số nguyên và số thực Số nguyên bao gồm tất cả các số không có dấu chấm thập phân, số thực là những

số bao gồm cả những số có dấu chấm thập phân

Trang 13

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 5

Ví dụ :

Số nguyên: 12 10 25E3 12e+6

Số thực: 1.2 10 2.5E3 1.2e+6

Biểu diển số theo những hệ khác ta tuân theo qui tắc sau hệ số#số#

Hệ nhị phân : 2#10010# (là con số “18” trong hệ thập phân )

Octal: O”311”, o”113”

1.2.4 Các đối tƣợng dữ liệu trong VHDL:

Bao gồm ba đối tượng dưz liệu chính: tín hiệu - signal, biến - variable, hằng - constant, mỗi đối tượng được khai báo dựa vào từ khóa tương ứng

1.2.4.1 Hằng (constant):

Một hằng lưu dữ một giá trị cụ thể có kiểu dữ liệu được chỉ rõ Một hằng được khai báo như sau:

constant list_of_name_of_constant: type [ := initial value];

Một khi đã khai báo giá trị của một hằng không thể thay đổi

Ví dụ:

constant DATA_BUS: integer:= 16;

1.2.4.2 Biến: (variable):

Một biến lưu dữ một giá trị bất kỳ có kiểu được chỉ rõ, thường được sử dụng để

lưu trữ giá trị tạm thời trong một process Không giông như hằng giá trị của biến có

thể bị thay đổi trong quá trình miêu tả thiết kế Khác với tín hiệu, biến không miêu tả kết nối hoặc các phần tử của bộ nhớ Không giống với tín hiệu các giá trị được định

Trang 14

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 6

thời, tất cả các phép gán cho các biến xảy ra tức thời.Biến thường được sử dụng trong tính toán Biến được khai báo như sau

variable list_of_variable_names: type [ := initial value] ;

ví dụ:

variable CNTR_BIT: bit :=0;

variable VAR1: boolean :=FALSE;

variable SUM: integer range 0 to 256 :=16;

variable STS_BIT: bit_vector (7 downto 0);

1.2.4.3 Tín hiệu( signal ):

Một tín hiệu lưu trữ một danh sách giá trị bao gồm các giá trị hiện hành và tập các giá trị tương lai có thể có, sẽ xuất hiện trên tín hiệu Tín hiệu miêu tả dây và có thể kết nối các thành phần linh kiện khai báo một tín hiệu như sau:

signal list_of_signal_names: type [:= initial value];

Ví dụ:

signal SUM, CARRY: std_logic;

signal CLOCK: bit;

signal TRIGGER: integer :=0;

signal DATA_BUS: bit_vector (0 to 7);

signal VALUE: integer range 0 to 100;

1.2.5 Kiểu dữ liệu:

Mỗi đối tượng dữ liệu có một kiểu tương ứng của nó, định dạng giá trị và các phép toán mà đối tượng có thể có

1.2.5.1 Kiểu dữ liệu liệt kê:

Chứa một tập các giá trị được người sử dụng định nghĩa Mỗi một giá trị có thể là

một định danh (identifier) Cú pháp khai báo kiểu liệt kê là:

type type_name is (identifier list or character literal);

Ví dụ:

type my_3values is („0‟, „1‟, „Z‟);

type PC_OPER is (load, store, add, sub, div, mult, shiftl, shiftr);

type hex_digit is („0‟, „1‟, „2‟, „3‟, „4‟, „5‟, „6‟, „7‟, 8‟, „9‟, „A‟, „B‟, „C‟,

„D‟, „E‟, „F‟);

type state_type is (S0, S1, S2, S3);

Kiểu liệt kê phải được định nghĩa trong phần khai báo kiến trúc hoặc trong khai báo gói

Trang 15

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 7

1.2.5.2 Kiểu dữ liệu nguyên:

Để định nghĩa một tầm các số nguyên từ (2-31+1) đến (231

-1) cú pháp khai báo

type type_name _identifier is range integer_range;

Ví dụ:

type small_int is range 0 to 1024;

type my_word_length is range 31 downto 0;

subtype data_word is my_word_length range 7 downto 0;

Một kiểu con (subtype) là một định dạng con của kiểu được khai báo trước đó

type array_name is array (indexing scheme) of element_type;

Ví dụ:

type MY_WORD is array (15 downto 0) of std_logic;

type YOUR_WORD is array (0 to 15) of std_logic;

type VAR is array (0 to 7) of integer;

type STD_LOGIC_1D is array (std_ulogic) of std_logic

Kiểu bản ghi: thường hữu dụng với việc mô hình các gói dữ liệu một bản ghi có thể chứa các giá trị cùng kiểu hoặc khác kiểu, cú pháp khai báo là:

SIZE : integer range 0 to 200;

DATA : bit_vector (15 downto 0);

end record;

Trang 16

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 8

Toán tử:

VHDL hỗ trợ các lớp toán tử khác nhau, được thực thi trên tín hiệu, biến, hằng

số các lớp toán tử được miêu tả bên dưới:

Toán tử logic: Bao gồm : and, or, nand, no, xor, xnor được định nghĩa cho kiểu bit

boolean, std_logic và std_ulogic và các vector của chúng

Chú ý: X nand Y nand Z sẽ lỗi cấu trúc bạn nên viết (X nand Y) nand Z

Chú ý: toán tử “<= “ ( nhỏ hơn bằng ) giống với toán tử gán được sử dụng trong phép

gán giá trị cho tín hiệu hoặc cho biến

Toán tử dịch

sll Dịch trái logic (thêm

vào các bit 0 phía bên

phải)

Toán hạng trái: kiểu mảng một chiều với các phần tử là bit hoặc Boolean; Toán hạng phải: integer

Giống như toán hạng bên trái

srl Dịch phải logic (thêm

vào các bit 0 phía bên

Trang 17

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 9

Dùng để biểu diễn cho các phép toán số học(cộng, trừ) trên các toán hạng thuộc kiểu số

Toán tử Mô tả Toán hạng trái Toán hạng phải Kiểu kết quả

& Nối Kiểu dải hoặc

Gồm các toán tử cộng và trừ được sử dụng để xác định kiểu dấu của một số

Toán tử Nhân:

Toán tử Mô tả Toán hạng trái Toán hạng phải Kiểu kết quả

Số nguyên hoặc số thực

Kiểu physical Cùng kiểu toán

hạng phải / Chia Số nguyên hoặc dấu

chấm động

Số nguyên hoặc dấu chấm động

Cùng Kiểu

Kiểu physical Số nguyên hoặc

số thực

cùng kiểu toán trái

Chú ý:

A rem B = A –(A/B)*B (trong đó A/B là số nguyên)

A mod B = A – B * N (trong đó N là số nguyên)

Toán tử tạp:

Trang 18

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 10

toán hạn trái Dấu chấm động Kiểu số nguyên Cùng kiểu toán

Là một cấu trúc chính trong kiểu behavioral cho phép bạn sử dụng các lệnh tuần

tự để mô tả hành vi của hệ thống theo thời gian Cú pháp như sau:

[process_label:] process [ (sensitivity_list) ] [is]

Trang 19

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 11

Phát biểu if bắt đầu bằng từ khóa if và kết thúc bằng từ khóa end if có hai mệnh

đề tùy chọn: Mệnh đề elseif và else Mệnh đề elseif có thể sử dụng lặp lại nhiều lần

còn mệnh đề else là tùy chọn và chỉ sử dụng một lần Cấu trúc điều kiện trong tất cả các trường hợp làm phát biể u luận lí cho kết quả đúng sai

Khi cho kết quả đúng, chuỗi các phát biểu theo sau được thực thi, nếu kết quả sai chuỗi phát biểu sau mệnh đề else được thực thi

branches are allowed

[w hen others => sequential statements ]

end case;

Phát biểu case gồm từ khóa case được theo sau bởi một biểu thức và từ khóa is biểu thức trả về một giá trị tương thích với một trong các phần phát biểu when hoặc tương thích với mệnh đề other

Trang 20

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 12

Ví dụ: Cấu trúc một con mux 4 sang 1

Một phát biểu Loop được sử dụng khi càn lặp lại thao tác Cú pháp

[ loop_label :]iteration_scheme loop

sequential statements

[next [label] [when condition];

[exit [label] [w hen condition];

end loop [loop_label];

Phát biểu loop có một nhãn tùy chọn, nhãn này có thể sử dụng để nhận biết phát

biểu loop Phát biểu có một iteration_scheme tùy chọn xác định phát biểu loop đang

được lựa chọn Có hai loại phát biểu loop:

Phát biểu while-Loop.cú pháp là:

[ loop_label :] while condition loop

sequential statements

[next [label] [when condition];

[exit [label] [when condition];

end loop[ loop_label ];

Phát biểu for-loop Cú pháp là:

[ loop_label :] for identifier in range loop

sequential statement

[next [label] [when condition];

[exit [label] [when condition];

end loop[ loop_label ];

Trang 21

Chương 1: Giới thiệu về chip FPGA và ngôn ngữ đặc tả phần cứng VHDL 13

1.2.6.3 Phát biểu Next:

Phát biểu Next cho phép người lập trình dừng việc xử lí thao tác lặp này và nhảy sang thao tác lặp kế tiếp, cú pháp là:

next [label] [w hen condition];

Phát biểu next được thực thi, việc xử lí được dừng lại tại điểm hiện tại và chuyển

đến nơi bắt đầu của phát biểu loop Từ khóa when là tùy chọn

Trang 22

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 14

Chương 2: CẤU TRÚC KIT SPARTANT-3E, VI ĐIỀU KHIỂN

MICROBLAZE VÀ PHẦN MỀM EDK CỦA HÃNG XILINK

2.1 CẤU TRÚC KIT SP ARTANT–3E CỦA XILINX:

2.1.1 Các thành phần chính của kit SPARTANT – 3E:

Xilinx XC3S500E Spartan-3E FPGA là con chính của KIT

- Số chân I/O sử dụng lên đến 232

- 320 chân FBGA package

- Trên 10,000 cell logic

Xilinx 4 Mbit Platform Flash configuration PROM

Xilinx 64-macrocell XC2C64A CoolRunner CPLD

64 MByte (512 Mbit) of DDR SDRAM, x16 data interface, 100+ MHz

16 MByte (128 Mbit) of parallel NOR Flash (Intel StrataFlash)

16 Mbits of SPI serial Flash (STMicro)

2-line, 16-character LCD

PS/2 mouse or keyboard port

VGA display port

10/100 Ethernet PHY (requires Ethernet MAC in FPGA)

Two 9-pin RS-232 ports (DTE- and DCE-style)

On-board USB-based FPGA/CPLD download/debug interface

50 MHz clock oscillator

SHA-1 1-wire serial EEPROM for bitstream copy protection

Hirose FX2 expansion connector

Three Digilent 6-pin expansion connectors

Four-output, SPI-based Digital-to-Analog Converter (DAC)

Two-input, SPI-based Analog-to-Digital Converter (ADC) with gain

pre-amplifier

Rotary-encoder with push-button shaft

Eight discrete LEDs

Four slide switches

Trang 23

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 15

2.1.2 Bộ tạo xung clock cho FPGA:

Có ba nguồn cấp xung clock cho chip FPGA: dùng thạch anh 50MH có sẵn trên board, ngỏ ra của thạch anh này nối với chân C9 của chip FPGA Cấp xung thông qua

đế cắm tám chân trên board, ngỏ ra được nối với chân B8 của chip FPGA.Cấp xung clock thông qua chân cắm SMA, chân cắm này chỉ nhận clock từ máy phát clock, không dùngtrực tiếp thạch anh được ngõ ra clock nối với chân A10 của chip

Hình 2.1: Bộ tạo xung trên kít Spartan 3e

2.1.3 Các nút chuyển nút nhấn và Led:

Nút chuyển: theo thứ tự là : SW0, SW1, SW2, SW3 kết nối với chân tương ứng

của chip là: L13, L14, H18, N17 của chip FPGA

Chú ý: đây là các chân ngõ vào của FPGA Trên Chip chỉ có 232 chân I/O tùy

chọn Khi các nút SWx (x =0,3) ON (bật lên) thì chân FPGA tương ứng ở mức ca (3.3V) và ngược lại

Trang 24

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 16

Hình 2.2: Khối SW trên kit Spartan 3e

Nút nhấn: theo thứ tự là BTN_EAST (phải), BTN_NORTH (trên)

BTN_SOUTH (dưới), BTN_WEST (trái) kết nối tương ứng với các chân H13, K14, V17, D18 , là các chân input của FPGA Khi nhấn các nút trên thì chân tương ứng với

nó sẽ lên mức cao Khi không nhấn, cần dùng 1 điện trở nội pull-down để tạo mức thấp

Nút Encoder : có 3 ngõ ra: ROT_A, ROT_B, ROT_CENTER : nối với chân K18, G18, V16 của FPGA Nút Encoder có hai chức năng là nhấn và xoay.Như nút nhấn: nhấn xuống sẽ đưa chân V16 của FPGA lên mức cao Xoay phải hay trái sẽ tạo xung encoder ngõ ra tương ứng Cả 3 chân ngõ ra của encoder điều cần dùng điện trở pull-up nội

Hình 2.3: Dạng xung Encoder

Tám Led (góc dưới cùng bên phải) LD0, …, LD7 nối với 8 chân tương ứng F9,

E9, D11, C11, F11, E11, E12,F12 của FPGA Đầu còn lại của các Led nối với GND thông qua điện trở 290 ohm

Trang 25

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 17

Hình 2.4: Khối Led trên kit Spartan 3e

2.1.4 Khối LCD:

Trên kit Spartan-3E Starter có hổ trợ một LDC với 2 dòng , 16 ký t ự được ghép nối với chip FPGA như sơ đồ sau:

Hình 2.5: Khối LCD trên kit Spartan 3e

Đối với LCD có hai chế độ hoạt động là tám bit dữ liệu hoặc bốn bit dữ liệu Ở đây ta thấy trên kít ghép mối LCD hoạt động ở chế độ bốn bit dữ liệu Quá trình hoạt động được mô tả như sau:

Chân RS = 0 thanh ghi lệnh được chọn cho phép chúng ta gửi một lệnh như xóa màn hình, đưa con trỏ về đầu dòng…, khi chân RS = 1 thanh ghi dữ liệu được chọn cho phép chúng ta gửi dữ liệu lên màn hình LCD

Chân R/W =1 cho phép chúng ta đọc thông tin từ LCD, R/W =0 cho phép chúng ghi thông tin lên LCD

Trang 26

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 18

Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ liệu của nó Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liêu Xung này phải rộng tối thiểu là 450ns

2.1.5 Bộ biến đổi tương tự sang số:

6 Header kết nối đến ADC

LTC1407A_ 2 Kênh A/D

SPI_SCK : U16 AD_CONV : P11 SPI_MOSO : N10

LTC6912_2 Kênh Amp

SPI_MOSI : T4 AMP_CS : N7 SPI_SCK : U16 AMP_SHDN : P7 AMP_DOUT : A18

Hình 2.4: Khối ADC trên kit Spartan 3e

Kit Spartan_3E cung cấp hai kênh tín hiệu Analog, vi mạch LTC1407A là loại biến đổi tưong tự sang số gồm hai bộ biến đổi riêng biệt, vi mạch LTC6912 gồm hai

bộ khuyếch đại có thể thay đổi được hệ số Cả hai vi mạch này đều đuợc điều khiển bởi chip FPGA

Trang 27

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 19

Hình 2.5: Sơ Đồ chân khối ADC

Tín hiệu tương tự được đưa vào VinA và VinB sẽ được biến đổi thành một số nhị phân 14bit D[13:0] với điện áp so sánh 1 65V

D[13:0] =

1.65

8192 1.25

Gain

V

Gain : Độ lợi của bộ khuyếch đại

Vin : Điện áp ngỏ vào

D[13:0] : Số nhị phân 14bit

Cách tạo độ lợi cho vi mạch LTC6912 được cho trong bảng data sheet sau:

Trang 28

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 20

Giao diện kết nối giữa chip FPGA với vi mạch LTC6912 :

Tạo 8bit data điều khiển độ lợi cho LTC6912

Tín hiệu chọn chip LTC6912 hoạt động khi chân này ở mức 0

LTC6912

Dữ liệu 8bit ở ngỏ ra của LTC6912 Tín hiệu hồi tiếp

FPGA sẽ gởi dữ liệu nối tiếp 8 bit ra LTC6912 thông qua chân SPI_MOSI Giữ liệu 8 bit này sẽ được dùng để cài đặt cho hai bộ khuyếch đại A và B mỗi bộ trên cơ sỡ 4bit

Hình 2.6: Tám bit ra LTC6912

2.1.5.2 Giới thiệu hai IC LTC6912 và LTC1407A

IC LTC6912:

Đây là loại IC có thể điều khiển được độ khuyếch đại bằng cách nạp vào thanh

ghi trong nó một giá trị 8bit nối tiếp IC LTC6912 có hai kênh điều khiển độ khuyếch

đại độc lập nhau

Trang 29

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 21

Hình 2.7: Cấu trúc IC LTC6912

Qúa trình ghi nhận dữ liệu của LTC6912

AMP_CS : chân chọn chip

SCK : chân clock khoảng 2.5Mhz

SDI : chận dữ liệu vào

AMO_DO : chân dữ liệu ra

Ta nhận thấy rằng với mổi bit truyền đều t ương xứng với tần số xung clock Với LTC6912 tần số xung clock tối đa cho phép là 10Mhz nếu lớn hơn giá trị này thì hệ thống sẽ bị nhiễu do đó tần số xung clock thích hợp là 2.5MHz Cách điều khiển như

Trang 30

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 22

sau trước tiên chân AMP_CS phải ở mức thấp lúc này thanh ghi trong IC sẽ tiếp nhận

dữ liệu nối tiếp từ FPGA dựa trên cạnh lên của tần số xung clock trong khi đó dữ liệu nhận được sẽ được gởi ngược trở về FPGA kể kiểm tra lúc này dữ liệu bám theo cạnh xuống của xung clock Cách thức giao tiếp được chỉ ra ở giản đồ thời gian ghi nhận

dữ liệu

Hình 2.8: Giản đồ thời gian ghi nhận dữ liệu

LTC1407A:

Đây là IC thực hiện biến đổi tín hiệu tương tự sang tín hiệu số, nó cung cấp cho

ta hai bộ biến đổi riêng biệt tương tự như LTC6912 cả hai bộ biến đổi này hoạt động một cách độc lập Kết nối giao tiếp giữa FPGA và LTC1407A được trình bày ở hình 5, FPGA giao tiếp với LTC1407A thông qua các chân SPI_MOSI, SPI_MISO và SPI_CLK Ý nghĩa của các chân đựơc chú thích ra như sau :

Khi chân AD_CONV ở mức cao thì bộ AD sẽ thực hiện biến đổi các tín hiệu tương tự ở cả hai ngỏ vào của bộ biến đổi nhưng lúc này các kết quả sẽ không được chuyển đến ngỏ ra chỉ khi nào tín hiệu ỏ trên nhân AD_CONV chuyển xuống mức

Trang 31

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 23

thấp Tốc độ lấy mẫu nằm trong khoảng 1.5 Mhz Kết nối được chỉ ra ở giản đồ giao tiếp LTC1407A

Hình 2.9: Giản đồ giao tiếp LTC1407A

Sau khi có tín hiệu ra thì chân SPI_MISO sẽ đưa tín hiệu đến FPGA Tín hiệu được biến đổi được đưa ra dựa trên chu kỳ xung clock Chu kỳ xung clock lúc này vào khoảng 19.6nm

2.2 VI ĐIỀU KHIỂN NHÚNG MICROBLAZE:

2.2.1 Giới thiệu về vi điều khiển Microblaze:

Các bộ vi xử lý có sẵn dùng cho dòng FPGA (Field Programmable Gate Arrays) của Xillinx sử dụng với các công cụ phần mềm có trong phần mềm EDK (Embedded Development kit) được phân thành 2 loại:

Bộ vi xử lý mềm MicrroBlaze

Bộ vi xử lý cứng đã được nhúng sẵn PowerPC

MicrroBlaze là bộ vi xử lý được dùng hầu hết trong FPGA các dòng như

Spartan-II, Spartan-III, Virtex của hãng Xillinx MicroBlaze là một vi điều khiển ảo,

Trang 32

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 24

nó tồn tại dưới dạng phần mềm đã được phát triển của hãng Xillinx, chúng ta có thể thiết lập các thông số để sử dụng đối với vi điều khiển này (UART, các cổng vào ra ngoại vi, ) thông qua phần mềm EDK

MicroBlaze là bộ xử lý mềm nhúng 32-bit của Xillinx Tập lệnh thu gọn RISC

(Reduced Instruction Set Computer), với các bus riêng biệt để truy xuất dữ liệu và

lệnh từ bộ nhớ on-chip và bộ nhớ ngoài tại cùng một thời điểm

2.2.2 Kiến trúc cơ bản của MicrroBlaze:

Kiến trúc của MicroBlaze có các đặc điểm sau:

Từ lệnh 32 bit với 3 toán hạng và 2 chế độ định địa chỉ

Đường bus 32 bit địa chỉ

1 khối ghi dịch

2 cấp độ ngắt

Khối ALU(Arithmetic Logic Unit): gồm các bộ cộng/trừ, ghi dịch/logic, nhân

Hình 2.10: Kiến trúc cơ bản của vi điều khiển MicroBlaze

Trang 33

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 25

Program Counter: bộ đếm chương trình

Add/Sub: khối cộng/trừ; Shift/Logical: khối ghi dịch/lôgic; Multiply: khối nhân

Register File: thanh ghi dữ liệu 32thanh x 32bit

2.2.3 Kiến trúc Pipeline của vi điều khiển MicroBlaze:

Vi điều khiển MicroBlaze xử lý lệnh theo kiến trúc pipeline song song, hầu hết các lệnh của nó, mỗi giai đoạn mất 1 chu kỳ đồng hồ để thực hiện xong Quá

trình xử lý lệnh được chia làm 3 giai đoạn: nhận lệnh (Fetch), giải mã lệnh (Decode), thi hành lệnh (Execute)

Hình 2.11: Kiến trúc Pipeline của vi điều khiển MicroBlaze

Thông thường, nếu bỏ qua thời gian trễ nghỉ “stall” thì mỗi giai đoạn trên

chỉ mất 1 chu kỳ đồng hồ, khi đó 3 lệnh có thể được xử lý cùng một lúc, mỗi lệnh được thi hành trong 1 đường ống gồm 3 giai đoạn MicroBlaze có 1 bộ đệm

tiền nhận lệnh (Instruction Prefetch Buffer) để làm giảm xung đột tiềm ẩn

trong bộ nhớ khi thực hiện các lệnh đa chu kỳ

Khi Pipeline được tạo trễ nghỉ “stall” do thực hiện lệnh đa chu kỳ trong giai đoạn thi hành, bộ đệm tiền nhận lệnh sẽ tiếp tục nhận các lệnh ngay sau đó Và khi Pipeline thi hành trở lại, giai đoạn nhận lệnh có thể lấy lệnh trực tiếp từ bộ đệm tiền nhận lệnh, thay vì đợi cho bộ nhớ lệnh truy cập để thi hành

2.2.4 Giao tiếp tính hiệu trong MicroBlaze:

MicroBlaze cung cấp 3 giao tiếp bộ nhớ:

LMB: Local Memory Bus

PLB: Processor Local Bus

Fetch Decod

e

Execute

e Fetch Decod

e

Execute Execute Execute Fetch Decod

e

Stall Stall Execute

Cycle 1 Cycle 2 Cycle 3 Cycle 4

Trang 34

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 26

OPB (On-Chip Peripheral Bus) và XCL (Xillinx Cache Link)

Hình 2.12: một hệ thống Bus điển hình

Trong đó:

IXC: Instruction side Xillinx Cache Link Interface (cặp liên kết đơn FSL chủ/tớ) DXCL: Data side Xillinx Cache Link Interface (cặp liên kết đơn FSL chủ/tớ) ILMB: Instruction interface, Local Memory Bus: giao tiếp lệnh theo chuẩn bus LMB, chỉ dùng cho giao tiếp BRAM

DLMB: Data interface, Local Memory Bus: giao tiếp dữ liệu theo chuẩn bus LMB, chỉ dùng cho giao tiếp BRAM

IOPB: Instruction interface, On-chip Peripheral Bus: giao tiếp lệnh theo chuẩn bus OPB

DOPB: Data interface, On-chip Peripheral Bus: giao tiếp dữ liệu theo chuẩn bus OPB

Trang 35

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 27

MicroBlaze có kiến trúc kết nối lõi theo chuẩn IBM, chuẩn này cung cấp 3 loại

bus giành cho kết nối liên tục đa lõi, các thư viện macro và logic người dùng:

+ Bus lõi xử lý nội PLB (Processor Local Bus)

+ Bus ngoại vi on-chip OPB (On-chip Peripheral Bus)

+ Bus thanh ghi điều khiển thiết bị DCR (Device Control Register)

2.3 PHẦN MỀM EDK:

2.3.1 Giới thiệu Phần mềm EDK:

EDK là phần mềm của hãng xilinx được thiết kế tương thích với các chip FPGA của hãng

Chương trình EDK là một chương trình thân thiện với người sử dụng, giúp chú ng

ta có thể dễ dàng thiết kế một hệ thống phức tạp mà chỉ thao tác đơn giản, vì thực chất EDK sử dụng các chương trình VHDL viết sẵn (gọi là các IP) nên ta không cần viết các IP đó, mà chỉ sử dụng nó, phần quan trọng là chúng ta phải viết phần mềm điều khiển chip nhúng đã được viết sẵn đó, và điều này cũng thực sự không phải là khó khăn vì chúng ta không cần sử dụng tập lệnh Asembly của chip nhúng ( được đặc tên

là MicroBlaze) mà chúng ta sẽ sử dụng ngôn ngữ Standard C hay C++ để viết chương trình điều khiển MicroBlaze (tương đương với một vi xử lý 32 bit, đối với version 4.0 còn có thêm FPU/đơn vị xử lý dấu chấm động) và các thư viên hỗ trợ sẵn với các hàn điều khiển ngoại vi rất nhiều)

BaseAddress: chứa địa chỉ nền của thiết bị GPIO

Channel: bao gồm 2 kênh (1 hoặc 2)

Data: giá trị để ghi lên thanh ghi dữ liệu

XGpio_SetDataDirection(XGpio * InstancePtr, unsigned Channel,

u32 DirectionMask)

Chức năng:

Định dạng hướng vào hay ra của dữ liệu cho kênh GPIO được xác định

Trang 36

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 28

Các thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc

Channel: bao gồm 2 kênh (1 hoặc 2)

DirectionMask: là một mặt nạ bit, xác định hướng của dữ liệu là hướng vào hay

ra, khi các bit được set lên 1 thì đó là ngõ vào, khi các bit được set về 0 thì đó

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc

Channel: bao gồm 2 kênh (1 hoặc 2)

Chú ý:

Hàm trả về giá trị 32 bits chứa trong thanh ghi mà con trỏ đang chỉ tới

Nếu hàm này không sử dụng kênh 1, thì phần cứng phải được xây dựng ở chế

InstancePtr: là con trỏ chỉ tới một ngoại vi nhất định Vùng nhớ của con trỏ

phải được phân phát bởi người dùng

DeviceId:là tên riêng duy nhất của thiết bị được đặt bởi người dùng để phân

biệt với các thiết bị khác Thiết bị này được điều khiển bởi con trỏ

Chú ý:

Mọi thao tác muốn thực hiện trên thiết bị thì đầu tiên phải khởi động con trỏ, trỏ tới thiết bị đó, nếu không chương trình sẽ báo lỗi

Trang 37

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 29

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc

Channel: bao gồm 2 kênh (1 hoặc 2)

Data: giá trị để ghi lên thanh ghi dữ liệu tạ vị trí con trỏ đang trỏ tới

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc

Channel: bao gồm 2 kênh (1 hoặc 2)

Mask:set các bit ngõ ra lên mức cao, các bit khác của thanh ghi dữ liệu không

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc

Channel: bao gồm 2 kênh (1 hoặc 2)

Mask:set các bit ngõ ra xuống mức thấp, các bit khác của thanh ghi dữ liệu

không bị ảnh hưởng

Trang 38

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 30

XGpio_mGetDataReg(BaseAddress, Channel)

Chức năng:

Lấy dữ liệu của một thanh ghi của một kênh đã được xác định

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO

Channel: bao gồm 2 kênh (1 hoặc 2)

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO

RegOffset: địa chỉ của thanh ghi được đọc cách địa chỉ nền một khoảng

XGpio_mWriteReg(BaseAddress, RegOffset, Data)

Chức năng:

Ghi một giá trị từ thanh ghi GPIO, một dữ liệu 32bits được ghi Nếu thiết bị

hoạt động với độ rộng bit nhỏ hơn 32bits thì chỉ có lấy những bit có trọng số nhỏ hơn mới được ghi

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO

RegOffset: địa chỉ của thanh ghi được ghi cách địa chỉ nền một khoảng

Data: dữ liệu được ghi vào thanh ghi

Trang 39

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 31

Hàm này cho phép các ngắt được hoạt động trong quá trình nhận và truyền dữ

liệu nối tiếp Đối với một thiết bị có chứa 16 byte để truyền nhận dữ liệu theo kiểu FIFO thì bất cứ lúc nào cũng có thể có ngắt được cho phép trong quá trình truyền nhận

Hàm sẽ xác định liệu thiết bị truyền dẫn nối tiếp được chỉ ra có đang gửi dữ liệu

hay không Nếu thanh ghi truyền dẫn không bỏ trống tức là nó đang gửi dữ liệu

Hàm có tác dụng reset bộ nhớ FIFO, việc truyền và nhận dữ liệu sẽ bị xóa Hàm

này có thể được sử dụng trong các ứng dụng nhằm xóa các dữ liệu không mong muốn trong bộ nhớ FIFO

Thông số:

InstancePtr: con trỏ chỉ tới thiết bị truyền dẫn nối tiếp

Trang 40

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 32

Hàm trả lại giá trị byte mong muốn

XUartLite_RecvByte(u32 BaseAddress, u8 Data )

Chức năng:

Hàm gửi đi một byte đơn qua cổng truyền dẫn nối tiếp Hàm sẽ ghi giá trị 8 bits

vào thanh ghi truyền

Thông số:

BaseAddress: là địa chỉ nền của thiết bị được xác định

Data : byte dữ liệu gửi đi

Tạo hệ thống phần cứng cơ bản trong XP S (Xilinx Platform Studio): khi các bạn cho chạy chương trình EDK thì một cửa sổ xuất hiên gọi là cửa sổ XPS, chúng ta sẽ bắt đầu tạo Project ở đây, màn hình khởi đông chương trình như sau :

2.3.3 Cách tạo Project với phần mềm EDK:

Hình 2.10: Cửa sổ XPS

Trong hôp thoại đầu tiên xuất hiện, cho phép chúng ta thao tác cơ bản :

Ngày đăng: 26/04/2013, 10:29

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Bộ tạo xung trên kít Spartan 3e - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.1 Bộ tạo xung trên kít Spartan 3e (Trang 23)
Hình 2.3: Dạng xung Encoder - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.3 Dạng xung Encoder (Trang 24)
Hình 2.2: Khối SW trên kit Spartan 3e - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.2 Khối SW trên kit Spartan 3e (Trang 24)
Hình 2.5: Khối LCD trên kit Spartan 3e - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.5 Khối LCD trên kit Spartan 3e (Trang 25)
Hình 2.4: Khối Led trên kit Spartan 3e - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.4 Khối Led trên kit Spartan 3e (Trang 25)
Hình 2.4: Khối ADC trên kit Spartan 3e - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.4 Khối ADC trên kit Spartan 3e (Trang 26)
Hình 2.5: Sơ Đồ chân khối ADC - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.5 Sơ Đồ chân khối ADC (Trang 27)
Hình 2.7: Cấu trúc IC LTC6912 - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.7 Cấu trúc IC LTC6912 (Trang 29)
Hình 2.8: Giản đồ thời gian ghi nhận dữ liệu - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.8 Giản đồ thời gian ghi nhận dữ liệu (Trang 30)
Hình 2.9: Giản đồ giao tiếp LTC1407A - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.9 Giản đồ giao tiếp LTC1407A (Trang 31)
Hình 2.10: Kiến trúc cơ bản của vi điều khiển MicroBlaze - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.10 Kiến trúc cơ bản của vi điều khiển MicroBlaze (Trang 32)
Hình 2.12: một hệ thống Bus điển hình - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.12 một hệ thống Bus điển hình (Trang 34)
Hình 2.10: Cửa sổ XPS - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.10 Cửa sổ XPS (Trang 40)
Hình 2.11: Hộp thoại Create New XPS Project - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.11 Hộp thoại Create New XPS Project (Trang 41)
Hình 2.12: Hộp thoại Select Board - Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E
Hình 2.12 Hộp thoại Select Board (Trang 42)

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

🧩 Sản phẩm bạn có thể quan tâm

w