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

thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa

125 555 2
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 đề Thiết kế hệ thống IP camera hỗ trợ chuẩn MJPEG trên nền FPGA ứng dụng trong giám sát và điều khiển từ xa
Tác giả Vũ Hữu Tiệp, Đỗ Tiến Thành
Người hướng dẫn Tiến sỹ Phạm Ngọc Nam
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Hệ thống điện tử viễn thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 125
Dung lượng 3,09 MB

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

Nội dung

Từ ý tưởng muốn xây dựng một hệ thống Camera có khả năng truyền hình ảnh tại nhiều nơi quan sát tới người dùng, cho phép người dùng có thể điều khiển các thiết bị điện từ xa và có thể th

Trang 1

LỜI NÓI ĐẦU

Ngày nay, các camera giám sát có kèm theo chức năng điều khiển có mặt ở khắp mọi nơi Chúng được sử dụng trong gia đình, bảo tàng, các điểm nóng giao thông hay các

vị trí mà con người ít khi đặt chân tới Ngoài các chức năng giám sát thông thường, các camera loại này còn có khả năng giúp người dùng điều khiển các thiết bị điện tại nơi theo dõi Tuy nhiên, các hệ thế này hoặc được nhập khẩu toàn bộ từ nước ngoài,

có chi phí cao và khả năng cấu hình lại thấp Ngoài ra, tốc độ truyền hình ảnh cũng là một trong những nhược điểm của các hệ thống này

Kỹ thuật nén dữ liệu trước khi truyền đi là vấn đề cốt lõi của các sản phẩm IP camera Thông thường, có hai cách nén dữ liệu: một là nén bằng phần mềm, hai là nén bằng IC chuyên dụng Với giải pháp thứ nhất, giá thành của sản phẩm có thể được giảm bớt nhưng tốc độ truyền hình ảnh sẽ rất thấp hoặc chất lượng hình ảnh không được đảm bảo Với giải pháp thứ hai, ngoài việc có giá thành cao thì việc cấu hình lại sẽ rất khó khăn

Từ ý tưởng muốn xây dựng một hệ thống Camera có khả năng truyền hình ảnh tại nhiều nơi quan sát tới người dùng, cho phép người dùng có thể điều khiển các thiết bị điện từ xa và có thể thay đổi chức năng hoặc nâng cấp hệ thống, kết hợp với các kiến thức thu được trong suốt thời gian học Đại học, chúng em nhận thấy rằng công nghệ FPGA có thể đáp ứng được các yêu cầu trên Cộng với việc một hệ thống tương tự đã được thực hiện và có các kết quả khả quan trên phòng Nghiên cứu Hệ thống nhúng

và Tính toán khả cấu hình (ESRC Lab) của Viện Điện Tử Viễn Thông, chúng em

quyết định chọn đề tài “Thiết kế hệ thống IP camera hỗ trợ chuẩn MJPEG trên

nền FPGA ứng dụng trong giám sát và điều khiển từ xa” làm Đồ án tốt nghiệp

Đại học của mình

Sau ba tháng phân tích và thiết kế, nhóm đã thu được các kết quả đang chú ý: lõi nén ảnh MJPEG đã được thực hiện thành công, phần mềm cho người dùng cũng đã được xây dựng hoàn chỉnh, việc giao tiếp với các thiết bị bên ngoài qua một mạch mở rộng cũng đang đi vào giai đoạn cuối Để có được các kết quả này, nhóm tác giả xin được

Trang 2

gửi lời cảm ơn chân thành tới Tiến sỹ Phạm Ngọc Nam, người đã hướng dẫn trực tiếp

và cung cấp trang thiết bị cho nhóm Nhóm tác giả cũng xin cảm ơn các tổ chức, các

cá nhân:

 Phòng Nghiên cứu Hệ thống nhúng và Tính toán khả cấu hình

 Tập thể lớp KSTN – ĐTVT – K52, Đại học Bách Khoa Hà Nội

 Thạc sỹ Nguyễn Minh Tiến

 Kỹ sư Phạm Văn Hà

 Kỹ sư Nguyễn Chu Tiến Mạnh

 Kỹ sư Nguyễn Minh Dũng

Trang 3

TÓM TẮT ĐỒ ÁN

Mục tiêu chính của hệ thống là thiết kế được một IP Camera giúp người dùng theo dõi và điều khiển các thiết bị điện tại nơi quan sát thông qua mạng Internet dựa trên nền tảng FPGA của Xilinx Hình ảnh sau khi thu được từ một Camera truyền hình tương tự chuẩn PAL sẽ đi qua một IC giải mã tương tự - số, trước khi được nén lại theo chuẩn MJPEG Dữ liệu nén này được lưu tạm thời trong DDR SDRAM trước khi được gửi đến người dùng mỗi khi có yêu cầu Người dùng mỗi khi muốn xem thông tin về nơi cần quan sát, họ cần được admin phân quyền và có thể sử dụng các trình duyệt web thông thường như Firefox, Chrome hoặc một phần mềm chuyên biệt Tại nơi đặt camera, một mạch ngoài có các cảm biến về nhiệt độ, độ ẩm, khói,… kết hợp với chức năng điều khiển các thiết bị điện được nối với mạch chính IP camera qua chuẩn giao tiếp RS485 Các thiết bị điện này có thể được điều khiển tự động hoặc thực hiện các chức năng mà người dùng yêu cầu

Trang 4

ABSTRACT

The main purpose of this project is to design and implement a Xilinx FPGA platform based IP camera which has ability to capture images from the supervising place by an analog camera and control some electrical devices in the field Images captured from

a camera go through an ADC integrated circuit before being compressed by hardware (based on JPEG baseline standard) and transmitted to DDR SDRAM Users, who have been decentralized by admin, can monitor by accessing to IP address of system through web-browsers such as Firefox, Chrome or a specialized software Additionally, a external board which has ability to mesure environment parameters

by sensors and control devices such as fan, air conditioning, fire alarm,… is connected to the IP Camera board through RS485 protocol

Trang 5

MỤC LỤC

LỜI N I Đ U i

T M TẮT ĐỒ N iii

ABSTRACT iv

M C L C v

DANH M C C C H NH V ix

DANH S CH C C ẢNG IỂU xi

DANH SÁCH CÁC TỪ VIẾT TẮT xiii

PH N MỞ Đ U 1

Chương 1 GIỚI THIỆU CHUNG 3

1.1 Giới thiệu 3

1.2 Tính khả thi của đề tài 4

1.2.1 Tính khả thi về mặt kỹ thuật 4

1.2.2 Khả thi về mặt kinh tế 4

1.2.3 Khả thi về mặt vận hành 5

1.2.4 Khả thi về mặt thời gian 5

1.3 Phân tích yêu cầu 5

1.3.1 Phân tích yêu cầu chức năng của hệ thống 5

1.3.2 Phân tích yêu cầu phi chức năng của hệ thống 8

1.4 Giới thiệu về công nghệ sử dụng 9

1.4.1 Công nghệ FPGA [6] 9

1.5 Các phần mềm sử dụng trong đề tài 9

1.6 Kết luận chương 10 Chương 2 HỆ THỐNG NHÚNG VỚI MICROBLAZE VÀ HỆ ĐIỀU HÀNH XILKERNEL 11

Trang 6

2.1 Vi xử lý Microblaze [9] 11

2.1.1 Kiến trúc 11

2.1.2 Giao diện tín hiệu 20

2.1.3 Giao diện ứng dụng 24

2.1.4 Kiến trúc tập lệnh 27

2.2 Kiến trúc hệ thống nhúng với Microblaze 29

2.3 Hệ điều hành Xilkernel [10] 30

2.3.1 Tổng quan 30

2.3.2 Tổ chức của hệ điều hành Xilkernel 31

2.3.3 Xây dựng ứng dụng cho Xilkernel 31

2.4 Kết luận chương 32

Chương 3 THIẾT KỂ HỆ THỐNG 33

3.1 Sơ đồ khối nền tảng cứng cho hệ thống 33

3.2 Cấu hình nền tảng phần cứng 35

3.3 Khối nén ảnh MJPEG 36

3.4 Thiết kế phần mềm cho hệ thống 38

3.4.1 Cấu hình thư viện phần mềm cho hệ thống 38

3.4.2 Thiết kế phần mềm cho hệ thống 43

3.5 Kết luận chương 48

Chương 4 THIẾT KẾ LÕI M-JPEG 49

4.1 Khối Lẫy mẫu dữ liệu 50

4.1.1 Phân tích chức năng 50

4.1.2 Thiết kế chi tiết 54

4.1.3 Kết quả tổng hợp khối 57

4.2 Khối Biến đổi Cosin rời rạc (DCT) 58

Trang 7

4.2.1 Phân tích chức năng 58

4.2.2 Thiết kế chi tiết 59

4.2.3 Kết quả tổng hợp khối 60

4.3 Khối Lượng tử hóa 61

4.3.1 Phân tích chức năng 61

4.3.2 Thiết kế chi tiết 62

4.3.3 Kết quả tổng hợp khối 63

4.4 Khối Quét zigzag 63

4.4.1 Phân tích chức năng 63

4.4.2 Thiết kế chi tiết 64

4.4.3 Kết quả tổng hợp khối 65

4.5 Khối RLE và Delta DC 65

4.5.1 Phân tích chức năng 65

4.5.2 Thiết kế chi tiết 67

4.5.3 Kết quả tổng hợp khối 68

4.6 Khối Mã hóa Huffman 69

4.6.1 Phân tích chức năng 69

4.6.2 Thiết kế 71

4.6.3 Kết quả tổng hợp khối 73

4.7 Khối AddHeader 74

4.7.1 Phân tích chức năng 74

4.7.2 Thiết kế 75

4.7.3 Kết quả tổng hợp khối 75

4.8 Khối FIFO2750 75

4.8.1 Phân tích chức năng 75

Trang 8

4.8.2 Thiết kế 76

4.8.3 Kết quả tổng hợp khối 76

4.9 Kết quả tổng hợp khối nén ảnh JPEG 77

4.10 Kết luận chương 77

Chương 5 THIẾT KẾ PH N MỀM DÀNH CHO NGƯỜI SỬ D NG 78

5.1 Thiết kế cơ sở dữ liệu 78

5.1.1 Chuẩn hóa 78

5.1.2 Chuẩn hóa các bảng dữ liệu 79

5.2 Phần mềm người sử dụng 89

5.2.1 Chức năng giám sát hệ thống 89

5.2.2 Chức năng quản trị hệ thống 95

5.3 Kết luận chương 98

KẾT LUẬN 99

TÀI LIỆU THAM KHẢO 100

BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH VIỆT 102

PH L C 1

Phụ lục 1: Code VHDL cho khối Quét zigzag 1

Phụ lục 2: Hồ sơ sinh viên 5

Trang 9

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Tổng quan về hệ thống IP Camera đã thiết kế 3

Hình 1.2 Kế hoạch thực hiện đề tài 5

Hình 2.1 Sơ đồ khối chức năng của MicroBlaze [9] 12

Hình 2.2 Pipeline ba trạng thái của MicroBlaze 13

Hình 2.3 Pipeline năm trạng thái của MicroBlaze 14

Hình 2.4 Mô hình quản lí bộ nhớ ảo [9] 15

Hình 2.5 Xử lí cache lệnh 17

Hình 2.6 Xử lí cache dữ liệu 19

Hình 2.7 Giao diện tín hiệu của MicroBlaze 20

Hình 2.8 Sơ đồ chân của một liên kết FSL 22

Hình 2.9 Khối IDCT liên kết với MicroBlaze qua FSL 23

Hình 2.1 Lệnh loại A 29

Hình 2.11 Lệnh loại B 29

Hình 2.12 Kiến trúc hệ nhúng với MicroBlaze [9] 30

Hình 2.13 Các mô đun của Xilkernel 31

Hình 3.1 Sơ đồ khối của Hệ thống IP Camera 33

Hình 3.2 Sơ đồ giao tiếp khối MJPEG core với các khối khác 37

Hình 3.3 Các tín hiệu vào ra khối MJPEG core 38

Hình 3.4 Cửa sổ chọn Hệ điều hành Xilkernel 39

Hình 3.5 Cửa sổ cấu hình cho Xilkernel 40

Hình 3.6 Tùy chọn sử dụng giao thức Lwip 41

Hình 3.7 Chương trình server cho máy chủ 44

Hình 3.8 Giải thuật truyền dữ liệu lên Internet 47

Hình 4.1 Quy trình nén ảnh JPEG 49

Hình 4.2 Tín hiệu vào/ra khối Lấy mẫu dữ liệu 51

Hình 4.3 Cấu trúc dữ liệu của một dòng theo chuẩn ITU-601 52

Hình 4.4 Xác định tín hiệu SAV và EAV mành 0 55

Hình 4.5 ố trí dữ liệu trong mỗi thanh RAM 56

Hình 4.6 Tín hiệu vào/ra khối Biến đổi DCT 58

Trang 10

Hình 4.7 Ma trận A 59

Hình 4.8 Ma trận AT sau khi nhân các hệ số với 216 60

Hình 4.9 Tín hiệu vào/ra khối Lượng tử hóa 62

Hình 4.1 Sơ đồ quét zigzag 8*8 64

Hình 4.11 Tín hiệu vào/ra khối Quét zigzag 64

Hình 4.12 Tín hiệu vào/ra khối RLE và Delta DC 67

Hình 4.13 Thuật toán tìm phần tử cuối cùng khác không trong một block 68

Hình 4.14 Tín hiệu vào/ra khối Mã hóa Huffman 71

Hình 4.15 Code VHDL tìm SSSS của các số dương 72

Hình 4.16 Code VHDL tìm SSSS của các số âm 73

Hình 4.17 Các tín hiệu vào/ra khối AddHeader 74

Hình 4.18 Tín hiệu vào ra khối FIFO2750 76

Hình 5.1 Sơ đồ thực thể liên kết 89

Hình 5.2 Sử dụng thread trong C# [19] 90

Hình 5.3 Sơ đồ thuật toán việc nhận và hiển thị dữ liệu 92

Hình 5.4 Giao diện chính theo dõi các camera 94

Hình 5.5 Giao diện chỉnh sửa các thông số của camera 95

Hình 5.6 Giao diện chương trình thêm vào một hệ thống IP Camera 95

Hình 5.7 Giao diện đăng nhập của người quản trị hệ thống 96

Hình 5.8 Giao diện phát lại Video 97

Hình 5.9 Giao diện tìm kiếm các hệ thống IP Camera 97

Hình 5.1 Giao diện kiểm tra tác động của User lên cơ sở dữ liệu 98

Trang 11

DANH SÁCH CÁC BẢNG BIỂU

ảng 2.1 Địa chỉ vector ngắt, ngoại lệ và break 16

ảng 2.2 Mô tả bus cục bộ LMB 21

ảng 2.3 Mô tả tín hiệu của FSL chủ 22

ảng 2.4 Mô tả tín hiệu của FSL tớ 22

ảng 2.5 Mô tả loại dữ liệu 24

ảng 2.6 Quy ước dùng thanh ghi 25

ảng 2.7 Địa chỉ ngắt và ngoại lệ 27

ảng 2.8 Kí hiệu của kiến trúc tập lệnh 27

ảng 3.1 Cấu hình nền tảng phần cứng 35

ảng 3.2 Mô tả các tín hiệu và ra khối MJPEG core 38

ảng 3.3 Hiệu suất tối đa hoạt động của lwip 3.00.a 42

ảng 3.4 Hiệu suất hoạt động tối đa của lwip 1.3.0 42

ảng 3.5 Thanh ghi giá trị cho ADV7183B hoạt động đầu vào CVBS 45

ảng 3.6 Địa chỉ ADV7183B slave 46

ảng 3.7 Tín hiệu điều khiển từ phần mềm hệ thống 48

ảng 4.1 Chi tiết tín hiệu vào/ra khối lẫy mẫu dữ liệu 51

ảng 4.2 ngh a các bit biểu diễn byte thứ tư của SAV và EAV 52

ảng 4.3 yte thứ tư của SAV và EAV 53

ảng 4.4 ảng mã SAV và EAV 53

ảng 4.5 Kết quả tổng hợp khối lấy mẫu dữ liệu 57

ảng 4.6 Kết quả tổng hợp khối DCT 60

ảng 4.7 ảng lượng tử cho tín hiệu chói 61

ảng 4.8 ảng lượng tử cho tín hiệu màu 62

ảng 4.9 Kết quả tổng hợp khối Lượng tử hóa 63

ảng 4.1 Kết quả tổng hợp khối Quét zigzag 65

ảng 4.11 Kết quả tổng hợp khối RLE và Delta DC 68

ảng 4.12 ảng phân lớp các giá trị DC [12] 69

Trang 12

ảng 4.13 ảng phân lớp các giá trị AC [12] 70

ảng 4.14 iểu diễn giá trị của các số nhị phân 11 bit 72

ảng 4.15 Kết quả tổng hợp khối Mã hóa Huffman 73

ảng 4.16 Kết quả tổng hợp khối AddHeader 75

ảng 4.17 Kết quả tổng hợp khối FIFO2750 76

ảng 4.18 Kết quả tổng hợp khối nén ảnh JPEG 77

ảng 5.1 Thông tin vị trí hệ thống ip camera (UNF) 80

ảng 5.2 Thông tin vị trí (3NF) 80

ảng 5.3 Thông tin vị trí camera (2NF) 80

ảng 5.4 Thông tin vị trí camera (3NF) 81

ảng 5.5 Thông tin camera 3NF 81

ảng 5.6 Thông tin lưu trữ IP Camera (UNF) 82

ảng 5.7 Thông tin IP Camera 3NF 82

ảng 5.8 Thông tin bản ghi (2NF) 83

ảng 5.9 Thông tin bản ghi IP Camera (3NF) 83

ảng 5.1 Thông tin bản ghi (3NF) 83

ảng 5.11 Thông tin hoạt động người dùng (UNF) 84

ảng 5.12 Thông tin người dùng (3NF) 84

ảng 5.13 Thông tin hoạt động người dùng (2NF) 85

ảng 5.14 Thông tin hoạt động người dùng (3NF) 85

ảng 5.15 Thông tin hoạt động (2NF) 86

ảng 5.16 Thông tin hoạt động (3NF) 86

ảng 5.17 Thông tin bản ghi (3NF) 86

ảng 5.18 Thông tin mã 3NF 87

ảng 5.19 Danh sách các bảng dữ liệu ở dạng chuẩn 3NF 87

ảng 5.2 ảng các bảng trùng nhau 88

ảng 5.21 Các bảng dữ liệu chuẩn 88

ảng 5.22 Hàm và biến chính được sử dụng trong việc nhận/hiển thị 93

Trang 13

DANH SÁCH CÁC TỪ VIẾT TẮT

AC Alternative Coefficient

ADC Analog – Digital Converter

API Application Programming Interface

ARP Address Resolution Protocol

ASIC Application Specic Integrated Circuit

ASMBL Advanced Silicon Modular Block

ASSP Application Specific Standard Product

BTR Branch Target Register

CLB Configurable Logic Block

CPLD Complex Programmable Logic Device

DC Direct Coefficient

DCM Digital Clock Manager

DCT Discrete Cosin Transform

DDR Double Data Rate

DHCP Dynamic Host Configuration Protocol

DLL Delay-Locked Loop

DLMB Data interface, Local Memory Bus (BRAM only)

DOPB Data interface, On-chip Peripheral Bus

DPLB Data interface, Processor LocalBus

DRFSL FSL slave direct connection interfaces

DWFSL FSL master direct connection interfaces

DXCL Data side Xilinx CacheLink interface

EAR Exception Address Register

EAV End Active Video

EDK Embedded Development Kit

EDR Exception Data Registe

EEPROM Electrically Erasable Programmable Read-Only Memory

EOB End OF Block

EPROM Erasable Programmable Read-Only Memory

Trang 14

ESR Exception Status Registe

FPGA Field-programmable gate array

FPU Floating Point Unit

FSL Fast Simplex Link

FSR Floating Point Status Register

GNU General Public License

HSTL High-Speed Transceiver Logic

ICMP Internet Control Message Protocol

IE Interrupt Enable

ILMB Instruction interface, Local Memory Bus

IOB Input Output Block

IP Intellectual Property

IPC Inter-Process Communication

IPLB Instruction interface, Processor LocalBus

IXCL Instruction side Xilinx CacheLink interface

JPEG Joint Photographic Experts Group

LMB Local Memory Bus

LUT LookUp Table

LVCMOS Low Voltage Complementary Metal Oxide Semiconductor

LVDS Low Voltage Differential Signaling

LVTTL Low Voltage Transistor-Transistor Logic

MB-GCC MicroBlaze GNU Compiler Collection

MFSL FSL master interfaces

MJPEG Motion Joint Photographic Experts Group

MMU Memory Management Unit

MPMC Multi-Port Memory Controller

MSR Machine Status Register

NIST National Institute of Standard and Technology

NPI Native Port Interface

OPB On-chip Peripheral Bus

OS Operating System

Trang 15

PAL Phase Alternating Lines

PC Program Counter

PID Process Identifier Register

PLA Programmable Logic Array

PLB Processor Local Bus

PLD Programmable Logic Device

POSIX Portable Operating System Interface

PVR Processor Version Register

RAM Random Access Memory

RISC Reduced Instructions Set Computer

RSDS Reduced Swing Differential Signaling

RTOS Real-Time Operating Systems

RTP Real-time Transport Protocol

SAV Start Active Video

SDRAM Synchronous Dynamic RAM

SFSL FSL slave interfaces

SLICEL Slice- Logic

SLICEM Slice- Memory

SPLD Simplex PLD

SSTL Stub Series-Terminated Logic

TCP Transmission Control Protocol

TLBHI Translation Look-Aside Buffer High Register

TLBLO Translation Look-Aside Buffer Low Register

TLBSX Translation Look-Aside Buffer Search Index

TLBX Translation Look-Aside Buffer Index Register

UDP User Datagram Protocol

VHDL VHSIC Hardware Description Language

XCL Xilinx Cache Link

XSI X/Open System Interface

ZPR Zone Protection Register

Trang 16

PHẦN MỞ ĐẦU

Hệ thống Intellectual Protocol IP camera đã được Phòng nghiên cứu Hệ thống nhúng và Tính toán khả cấu hình (Embeded System and Reconfigurable Computing Labolatory – ESRC Lab) triển khai từ năm 2 11 và đã thu được một vài kết quả khả quan Cụ thể, hệ thống này đã có thể nén ảnh theo chuẩn Joint Photographic Experts Group (JPEG) và ghép lại thành luồng Motion – JPEG (MJPEG) đúng trong một số trường hợp, có thể gửi và nhận tín hiệu tới/ từ người dùng qua mạng Ethernet Nhóm tác giả trước cũng đã xây dựng được giao diện web để quan sát và điều khiển khá hoàn chỉnh Tuy nhiên, hệ thống trước đây vẫn chưa hoàn thành và còn một vài hạn chế Một là, phương pháp lưu ảnh ở bộ First In, First Out (FIFO) trung gian giữa phần cứng và phần mềm dẫn đến việc FIFO bị tràn, chỉ hiện thị được một vài khung ảnh (frame) do việc điều khiển đọc dữ liệu từ phần mềm mất khá nhiều thời gian Hai

là, giao diện web hiện tại chỉ có thể quan sát được một IP camera một lúc và chưa có chức năng lưu trữ cũng như phân quyền cho người dùng

Để giải quyết các vấn đề trên, nhóm tác giả, gồm có hai thành viên: Vũ Hữu Tiệp và

Đỗ Tiến Thành, đã phân công công việc và giải quyết từng vấn đề, cụ thể như sau:

 Vũ Hữu Tiệp:

o Chuẩn hóa và tối ưu khối nén ảnh JPEG

o Sử dụng bộ nhớ Double Data Rate (DDR) Synchronous Dynamic Random Access Memory SDRAM có kích thước lớn và tốc độ truy cập dữ liệu nhanh hơn FIFO để giải quyết vấn đề tràn bộ nhớ và chỉ hiện thị được một vài frame ảnh

Trang 17

phần mềm có thể lưu trữ và chạy lại các video mỗi khi được người dùng yêu cầu

Đồ án này bao gồm 5 chương, mục đích và tác giả của từng chương như sau:

 Chương 1 Giới thiệu chung – Vũ Hữu Tiệp Giới thiệu các hệ thống IP

camera hiện thời, báo cáo khả thi, công nghệ và các phần mềm được sử dụng

 Chương 2 Hệ thống nhúng với MicroBlaze và Hệ điều hành Xilkernel –

Đỗ Tiến Thành Trình bày kiến trúc của vi xử lý MicroBlaze và Hệ điều hành

Xilkernel

 Chương 3 Thiết kế hệ thống – Vũ Hữu Tiệp, Đỗ Tiến Thành Trình bày các

khối chức năng chính của hệ thống

 Chương 4 Thiết kế lõi MJPEG – Vũ Hữu Tiệp Trình bày chi tiết phương

pháp thiết kế khối nén hình ảnh thu được theo chuẩn JPEG rồi chuyển thành luông MJPEG bằng ngôn ngữ mô tả phần cứng VHDL (VHSIC Hardware Description Language)

 Chương 5 Thiết kế phần mềm dành cho người sử dụng – Đỗ Tiến Thành

Trình bày các bước thiết kế phần mềm cho người dùng

Sau đây là nội dung của từng chương:

Trang 18

Chương 1 GIỚI THIỆU CHUNG

Sinh viên thực hiện: Vũ Hữu Tiệp

Trong chương đầu tiên này, nhóm tác giả giới thiệu về hệ thống IP Camera đã được thiết kế trước đây tại ESRC Lab, báo cáo khả thi và phạm vi của đề tài Đồng thời chương này cũng giới thiệu công nghệ FPGA (Field-Programmable Gate Array), các công cụ sử dụng trong đề tài và phân tích các yêu cầu chức năng, phi chức năng của

H nh 1.1 Tổng quan về hệ thống IP Camera đã thiết kế

Trong đồ án này, nhóm tác giả sử dụng lại các mạch của hệ thống trên và thiết kế lại lõi nén ảnh MJPEG [1], thiết kế phần mềm cho người dùng và cách giao tiếp giữa phần cứng và phần mềm

Trang 19

1.2 Tính khả thi của đề tài

1.2.1 Tính khả thi về mặt kỹ thuật

Để thiết kế hệ thống, ta cần một số yêu cầu cơ bản sau:

 Phần cứng:

o Camera CMOS (Complementary Metal-Oxide-Semiconductor)

o IC (Intergrated Circuit) giải mã ADV7181B: chuyển tín hiệu tương tự PAL [2] (Phase Alternative Line) thu được từ Camera thành tín hiệu số

o Mạch FPGA Spartan 3E 1600 [3] của Xilinx

o Mạch ngoài sử dụng vi điều khiển trung tâm PIC16F877A [4], giao tiếp với mạch chính qua cap RS485 [5]

o Máy tính cá nhân (Personal Computer – PC) có cấu hình:

 Bộ vi xử lý: từ Pentium III trở lên

 RAM: 512MB hoặc cao hơn

 Có Internet

 Phần mềm:

o Hệ điều hành Window XP/ Vista/ 7

o Bộ phần mềm Xilinx ISE (Intergrated Sotware Environment), EDK

(Embedded Development Kit), ChipScope Pro 10.1

o Visual Studio 2010

1.2.2 Khả thi về mặt kinh tế

Với việc đã có đầy đủ các thiết bị từ nhóm nghiên cứu trước, đề tài này có thể được thực hiện với chi phí không cao

Trang 20

1.2.3 Khả thi về mặt vận hành

Với việc hầu hết mọi người đều biết sử dụng Internet cũng như các phần mềm thông thường khác, việc sử dụng phần mềm do nhóm thiết kế sẽ không gặp nhiều khó khăn

1.2.4 Khả thi về mặt thời gian

Trong ba tháng thực hiện đề tài, nhóm đã lên kế hoạch và thực hiện như Hình 1.2

H nh 1.2 Kế hoạch thực hiện đề tài

Trong đồ án này, nhóm tác giả dụng kit FPGA sẵn có Spartan 3E của Xilinx làm nền tảng Việc này giúp nhóm có thể rút ngắn thời gian thiết kế và có thể dễ dàng kiểm thử, bắt lỗi bằng các công cụ phần mềm mà hãng hỗ trợ

1.3 Phân tích yêu cầu

1.3.1 Phân tích yêu cầu chức năng của hệ thống

Đề tài của nhóm được thiết kế với hai chức năng chính là giám sát và điều khiển Sau khi phân tích các điều kiện khả thi và các chức năng của hệ thống một cách chi tiết, nhóm tác giả chia hệ thống cần xây dựng thành 3 khối chức năng chính như sau:

 Mạch điều khiển chính cho IP camera

 Phần mềm cho hệ thống giám sát và điều khiển từ xa, hoạt động trên hệ điều hành Windows XP, Windows Vista, Windows 7

 Mạch điều khiển các thiết bị ngoài

Trang 21

1.3.1.1 Mạch điều khiển chính cho IP Camera

Mạch IP Camera hoàn chỉnh cuối cùng có các yêu cầu về chức năng như sau:

 Có khả năng nén ảnh theo chuẩn MJPEG với tốc độ ảnh truyền đi từ 1 đến 15 frame/s

 Có khả năng gửi và nhận thông tin tới/ từ người dùng qua cồng Ethernet

 Có khả năng nhận thông tin từ mạch mở rộng và gửi các tín hiệu điều khiển xuống mạch đó

1.3.1.2 Phần mềm cho hệ thống giám sát và điều kiển từ xa

Đi kèm theo hệ thống là một phần mềm được thiết kế giành riêng cho ứng dụng của

hệ thống Trên màn hình người quan sát có thể nhìn các hình ảnh thu được từ camera, quan sát nhiều màn hình và các chức năng điều khiển thông qua các nút bấm Trong trường hợp người dùng chưa cài phần mềm thì có thể sử dụng thong qua trình duyệt web browses để truy nhập và hệ thống

Dưới đây nhóm xin trình bày về các yêu cầu chức năng của phần mềm được thiết kết cho hệ thống:

 Cung cấp chức năng phân quyền cho người sử dụng: khi truy nhập vào hệ

thống, người sử dụng sẽ phải nhập Username và Password để có thể truy nhập

được vào hệ thống Thông tin người dùng sẽ được lưu vào cơ sở dữ liệu SQL

cài đặt trên máy chủ Chỉ Admin mới có quyền quản lý các user, cấp phát quyền cho các User: quyền tác động vào dữ liệu các file ảnh hay video đã lưu

trữ lại (xóa, copy), quyền điều khiển các thiết bị ngoại vi

 Cung cấp giao diện đồng hồ: trên cửa sổ phần mềm cho phép hiển thị thời gian hiện tại được lấy từ thời gian của máy tính đang chạy Khi người dùng muốn chụp ảnh hoặc ghi lại hình ảnh thu được từ camera thì hệ thống sẽ chèn giá trị thời gian này vào để người dùng có thể biết thời gian quay và tự động chèn

vào tên của hình ảnh thu được Thời gian sẽ được hiển thị trên Status Bar

Trang 22

 Cung cấp khả năng cho phép người sử dụng lựa chọn xem một hay nhiêu màn hình một lúc và xem các camera mình đã cấu hình Chức năng này được thực

hiện bằng tab View trên Menu chính và chọn Camera Sau đó, giao diện được thể hiện bên Panel thi hành, gồm có:

o Camera: liệt kê các camera đã cấu hình với các thuộc tính cấu hình được lưu lại tạo thuân tiện cho việc giám sát camera lần sau

o Chức năng hiển thị: Chọn lựa hiển thị một, hai, bốn hoặc nhiều hơn các camera

 Cung cấp giao diện điều khiển: khi người dùng muốn điều khiển các thiết bị thủ công, người sử dụng sẽ tick vào nút bấm thiết bị điều khiển Sau khi chọn

xong người dùng ấn Submit để truyền tín hiệu điều khiển tới chip điều khiển

trung tâm

 Chương trình cho phép cấu hình các thông số của từng camera cần quan sát bao gồm: địa chỉ IP của camera người dùng muốn quan sát, độ lớn buffer sử dụng, kích thước ảnh hay video sau khi lưu trữ (kích thước video trên giao diện chính là dạng preview, phụ thuộc vào số camera cần quan sát, không thay đổi được)

o Hệ thống có phiên bản dành cho bảo mật cao, sử dụng chuẩn mã hóa bảo mật nâng cao [7] (Advance Encription Standard – AES), do đó trên chương trình phải có giao diện cho phép thay đổi khóa mã: khóa mã sẽ

do Admin nhập vào dưới dạng số Hexa Để tăng tính bảo mật, hệ thống

sẽ tự động đưa ra cảnh báo nếu khóa mã không được thay đổi trong ba tháng từ lần gần nhất thay đổi của admin Việc này sẽ được thực hiện

bằng một Form cảnh báo nhỏ

 Nhằm tăng khả năng quản lý của Admin, chỉ duy nhất Admin có quyền kiểm

tra hoạt động của mười user truy cập gần đây nhất và các tác vụ họ đã làm

Trang 23

1.3.2 Phân tích yêu cầu phi chức năng của hệ thống

Bên cạnh các yêu cầu chức năng của hệ thống là các yêu cầu phi chức năng của hệ thống Các yêu cầu này quyết định tính hiệu năng của hệ thống, môi trường hoạt động, các yêu cầu về bảo mật… p dụng các yêu cầu đó vào trong đề tài này, các yêu cầu phi chức năng của hệ thống bao gồm:

 Môi trường hoạt động:

o Sử dụng trong nhà, môi trường làm việc trong phòng thông thường, các trạm TS (Base Transceive Station) [8]

o Sử dụng nguồn 12V – 2A cho hệ thống camera

o Giao diện người dùng thân thiện, dễ sử dụng

o Kích thước hệ thống nhỏ gọn, kết nối đơn giản

o Cho phép người dùng có thể dễ dàng chọn sử dụng tùy chức năng yêu cầu

Trang 24

1.4 Giới thiệu về công nghệ sử dụng

1.4.1 Công nghệ FPGA [6]

Công nghệ FPGA được sử dụng rộng rãi trong các l nh vực bao gồm: xử lý tín hiệu

số DSP, các hệ thống hàng không, vũ trụ, quốc phòng, tiền thiết kế mẫu vi mạch tích hợp chuyên dụng (ASIC prototyping), các hệ thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính, Tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài ra nhờ mật

độ cổng logic lớn, FPGA được ứng dụng cho những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực

Đặc tính nổi trội nhất của FPGA là khả năng tái cấu hình của nó Các hệ thống sử dụng FPGA hoàn toàn có thể cấu hình lại tùy thuộc vào mục đích sử dụng, ngay cả khi sản phẩm đã được giao cho người dùng

1.5 Các phần mềm sử dụng trong đề tài

Chip FPGA dùng để phát triển hệ thống trong đề tài là chip của hãng Xilinx cung cấp, do đó toàn bộ môi trường phát triển và công cụ phát triển hệ thống logic trên FPGA là phần mềm của hãng Xilinx, bao gồm:

Xilinx EDK (Embedded Development Kit): Công cụ phát triển hệ thống

nhúng trên FPGA Công cụ này được coi là công cụ thiết kế và phát triển hệ thống logic trên FPGA, cho phép công cấp một hệ vi xử lý hoàn chỉnh trên

FPGA gồm các IP logic và vi xử lý

Xilinx ISE (Integrated Software Environment): công cụ phần mềm môi

trường tích hợp Công cụ này được coi là công cụ thiết kế và phát triển các IP logic người dùng, các IP logic này đã được định ngh a khi đưa ra thiết kế hệ

thống logic với Xilinx EDK

Xilinx ChipScope Pro: công cụ phần mềm tích hợp các bộ phân tích các khối

logic chính, kiểm tra và tính toán các thành phần phần cứng bên trong hệ

Trang 25

thống thiết kế, là công cụ được sử dụng để giao tiếp giữa các thành phần và

cung cấp một giải pháp để phân tích các thành phần ở bên trong hệ thống

Phần mềm chuyên dụng cho người dùng sử dụng các công cụ phát triển sau:

Visual C# : công cụ giúp hỗ trợ thiết kế phần mềm người sử dung Công cụ

cho phép người sử dụng có thể thiết kế giao diện, liên kết cơ sở dữ liệu và cung cấp thư viện cơ bản cho người dùng tạo hệ thống phần mềm có khả năng

truyền nhận dữ liệu qua Ethernet

SQL server 2008 : công cụ phát triển của Microsoft giúp người sử dụng tạo và

quản lí cơ sở dữ liệu của cá nhân

Bên cạnh đó, quá trình thiết kế và phát triển các IP logic đòi hỏi công cụ mô phỏng logic để kiểm tra các đặc tính, dạng sóng của tín hiệu vào ra của khối logic đang được phát triển có đúng theo đặc tả thiết kế hay không Trong đề tài này, công cụ mô phỏng được sử dụng là phần mềm ModelSimXE, phần mềm này hãng ModelSim cung cấp dành riêng cho việc mô phỏng thiết kế FPGA với các công cụ của Xilinx

1.6 Kết luận chương

Như vậy, chương này đã phân tích tính khả thi của hệ thống, xác định rõ các chức năng cần đạt được của hệ thống cũng như các công cụ sử dụng để phát triển hệ thống trong đề tài Phần chi tiết về các công cụ phát triển cũng như triển khai thiết kế các chức năng cho hệ thống sẽ được trình bày ở các chương tiếp theo

Trang 26

Chương 2 HỆ THỐNG NHÚNG VỚI MICROBLAZE

VÀ HỆ ĐIỀU HÀNH XILKERNEL

Sinh viên thực hiện: Đỗ Tiến Thành

Các bộ vi xử lý có sẵn dùng cho dòng FPGA của Xillinx sử dụng với các công cụ phần mềm có trong phần mềm EDK được phân thành 2 loại: bộ vi xử lý mềm MicroBlaze và bộ vi xử lý cứng đã được nhúng sẵn trong các chip FPGA của Xilinx PowerPC

Chương này trình bày các kiến thức cơ bản về vi xử lý mềm MicroBlaze, một 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 xử lý ảo, 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 – Universal Asynchronous Receiver Transmitter, các cổng vào ra ngoại vi, ) thông qua phần mềm EDK

2.1 Vi xử lý Microblaze [9]

MicroBlaze là bộ xử lý mềm 32 bit được nhúng trong FPGA của Xilinx Lõi có cấu trúc Harvard, 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 Chúng ta có thể tạo ra nhiều vi xử lý mềm trên một chip FPGA tùy vào tài nguyên của chip FPGA ( theo khuyến cáo của xilinx là 8), bên cạnh đó nó còn

hỗ trợ các ghép nối với các giao diện (bộ nhớ, uart, cổng I O… tạo thành một hệ thống nhúng trong thiết kế và xây dựng các ứng dụng

2.1.1 Kiến trúc

Vi xử lý MicroBlaze là một vi xử lí RISC dạng lõi vi xử lý mềm, được thiết kế tối ưu cho chip FPGA của Xilinx với tập lênh 32 bit và bus dữ liệu chạy riêng rẽ cho phép

chạy chương trình và truy nhập dữ liệu tốc độ cao từ cả bộ nhớ On-chip và bộ nhớ

ngoài cùng 1 thời điểm Dưới đây là sơ đồ khối chức năng của lõi MicroBlaze

Trang 27

H nh 2.1 Sơ đồ khối chức năng của MicroBlaze [9]

MicroBlaze có cấu trúc tương tự như các vi xử lý RISC 32 bit thông thường, bao gồm các khối chức năng chính như: Khối logic số học (ALU), giải mã lệnh, các thanh ghi đặc biệt, tệp thanh ghi, bộ đếm chương trình, bus lệnh và bus địa chỉ Bên cạnh những khối chức năng cố định thì với đặc tính mềm, MicroBlaze cho phép tùy chọn các khối chức năng: đệm lệnh, đệm dữ liệu, bộ nhân, bộ chia, bộ dịch, bộ xử lý dấu phẩy động (FPU) Điều này cho phép cấu hình linh động MicroBlaze theo các thiết kế có yêu cầu, đặc trưng riêng

Trang 28

Dạng dữ liệu: Micro laze dùng định dạng dữ liệu kiểu Big-Endian Dữ liệu hỗ trợ

cho kiểu word, half-word và byte

Lệnh

Tất cả các lệnh của MicroBlaze là 32-bit và chia làm hai loại A và B Lệnh loại A có tối đa hai thanh ghi toán hạng nguồn và một thanh ghi toán hạng đích Lệnh loại B có một thanh ghi toán hạng nguồn và một toán hạng tức thì 16-bit và một thanh ghi toán hạng đích đơn

o Pipeline ba trạng thái: Khi C_AREA_OPTIMIZED = 1, pipeline chia làm

ba trạng thái để tối thiểu phần cứng: nạp lệnh, giải mã và thực thi Hình 2.2

mô tả pipeline ba trạng thái

Instruction 1

Instruction 2

Instruction 3

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7

Fetch Decode Stall Stall Execute Fetch Decode Execute Execute Execute

Decode Execute Fetch

H nh 2.2 Pipeline ba trạng thái của MicroBlaze

o Pipeline năm trạng thái: Khi C_AREA_OPTIMIZED = 0, pipeline chia làm năm trạng thái cho việc tối đa hiệu năng: nạp lệnh (IF), giải mã (OF),

Trang 29

thực thi (EX), truy cập bộ nhớ (MEM), ghi trở lại (WB) Hình 2.3 mô tả các pipeline năm trạng thái

OF EX IF

IF OF EX MEM MEM MEM WB

IF OF EX Stall Stall MEM WB

H nh 2.3 Pipeline năm trạng thái của MicroBlaze Kiến trúc bộ nhớ

MicroBlaze xây dựng với kiến trúc bộ nhớ kiểu Harvard; truy cập dữ liệu và địa chỉ ở những vùng không gian địa chỉ phân biệt Mỗi địa chỉ có giải 32-bit Vùng bộ nhớ lệnh và dữ liệu có thể trùng nhau bởi việc ánh xạ chúng trên cùng bộ nhớ vật lý MicroBlaze không chia tách truy cập dữ liệu tới I/O hay bộ nhớ Vi xử lý có tối đa 3 giao diện cho truy cập bộ nhớ: Bus bộ nhớ cục bộ (LMB), Bus cục bộ vi xử lí (PLB) hay bus ngoại vi trên chip (OPB), liên kết đệm Xilinx (XCL)

Quản lí bộ nhớ ảo

Chương trình chạy trên Micro laze dùng địa chỉ có khả năng truy cập vùng nhớ 4GB Vi xử lý có thể hiểu vùng địa chỉ này theo 1 trong 2 cách, tùy vào chế độ dịch:

o Ở chế độ thực, địa chỉ hiệu quả dùng để truy cập trực tiếp bộ nhớ vật lý

o Ở chế độ ảo, địa chỉ hiệu quả được dịch sang địa chỉ vật lí nhờ phần cứng quản lí bộ nhớ ảo và vi xử lý

Chế độ ảo cung cấp việc điều khiển nhiều hơn qua bảo vệ bộ nhớ Các khối của bộ nhớ nhỏ 1KB có thể bảo vệ riêng lẻ từ quyền truy cập Ở MicroBlaze, chế độ này thực hiện bởi đơn vị quản lý bộ nhớ MMU - khi C_USE_MMU = 3 và C_AREA_OPTIMIZED = MMU điều khiển và ánh xạ từ địa chỉ hiệu quả sang địa chỉ vật lí Hình 2.4 mô tả mô hình quản lý bộ nhớ ảo

Trang 30

H nh 2.4 Mô hình quản lí bộ nhớ ảo [9]

Reset, ngắt, ngoại lệ và break

Thứ tự ưu tiên từ cao đến thấp như sau: reset, ngoại lệ cứng, break không che được, break, ngắt, vectơ người dùng

o Reset: khi reset hay debug_rst xảy ra MicroBlaze làm sạch pipeline và bắt

đầu nạp lệnh từ vectơ reset Tín hiệu reset ngoài ở mức cao và giữ trong tối thiểu là 16 chu kì

o Ngoại lệ cứng: MicroBlaze có thể cấu hình để bắt các lỗi nội: lệnh trái phép,

lỗi bus lệnh và dữ liệu, truy cập không hợp lệ Ngoại lệ chia cho 0 có thể dùng khi cấu hình C_USE_DIV = 1 Khi cấu hình đơn vị dấu phẩy động C_USE_FPU = 1, nó cũng bắt các ngoại lệ của đơn vị dấu phẩy động: tràn dấu, tràn, chia cho 0, thực thi không hợp lệ, lỗi chuẩn toán hạng Khi cấu hình với 1 đơn vị quản lí bộ nhớ, nó cũng bắt các ngoại lệ: lệnh không hợp lệ, lưu

dữ liệu không hợp lệ, lưu lệnh không hợp lệ, mất dữ liệu TLB, mất lệnh TLB

Địa chỉ của các vector ngắt, ngoại lệ và break được cho trong ảng 2.1

Trang 31

ảng 2.1 Địa chỉ vector ngắt, ngoại lệ và break

Sự kiện Vectơ địa chỉ Thanh ghi trả về

reak mềm

Ngoại lệ cứng 0x00000020- 0x00000024 R17 hay BTR

Đặt trước của Xilinx 0x00000028- 0x0000004F -

Break: có 2 loại break cứng và mềm Break cứng thực thi khi xác định tín

hiệu break ngoài Trong 1 break, lệnh trong trạng thái thực thi hoàn thành trong khi lệnh trong trạng thái giải mã được thay thế bởi nhánh tới vectơ break 0x18 Break trả về địa chỉ được nạp tự động vào thanh ghi R16 Micro laze cũng đặt cờ IP trong MSR Để thực hiện break mềm, dùng lệnh brk và brki

Ngắt: MicroBlaze hỗ trợ 1 nguồn ngắt ngoài Vi xử lý ngắt nếu bit IE của

MSR đặt bằng 1 Trong 1 ngắt, lệnh trong trạng thái thực thi hoàn thành trong khi lệnh trong trạng thái giải mã bị thay bởi nhánh tới vectơ ngắt 0x10 Ngắt trả về địa chỉ nạp tự động vào thanh ghi R14 Đồng thời vi xử

lý xóa bit IE trong MSR Bit IE lại đặt tự động trở lại khi thực thi lệnh

RTID

Trang 32

Cache lệnh

MicroBlaze có thể dùng với tùy chọn cache lệnh để tăng cường hiệu năng khi thực thi lệnh mà nằm ở ngoài vùng địa chỉ LMB, cache lệnh bao gồm các đặc tính:

 Ánh xạ trực tiếp

 Dải địa chỉ có khả năng chọn, có khả năng cache

 Cấu hình được kích thước cache và tag

 Đệm qua giao diện XCL

 Tùy chọn dòng cache 4 hay 8 từ

 Cho phép/không cho phép cache qua 1 bit của MSR

 Tùy chọn WIC để xác nhận dòng cache lệnh

Khi cache lệnh cho phép sử dụng, vùng nhớ chia làm 2 vùng: một vùng có khả năng cache và một không có khả năng cache Vùng có khả năng cache xác định bởi 2 thông số: C_ICACHE_ ASEADDR và C_ICACHE_HIGHADDR Kích thước vùng này là 2N (N>0) Dải địa chỉ xác định với C_ICACHE_BASEADDR và C_ICACHE_HIGHADDR phải có kích thước bằng 2N Địa chỉ có khả năng cache gồm 2 phần: địa chỉ cache và địa chỉ tag Cache lệnh của MicroBlaze có thể cấu hình

từ 64-byte tới 64-K tương ứng với địa chỉ cache từ 6 đến 16-bit Địa chỉ tag cũng phù hợp với địa chỉ toàn phần của bộ nhớ cache Sơ đồ xử lý cache lệnh được cho trên Hình 2.5

H nh 2.5 Xử lí cache lệnh

Trang 33

Với mỗi lệnh được nạp, cache lệnh nhận ra nếu địa chỉ của lệnh đó thuộc vùng cache Nếu địa chỉ không trong vùng cache, bộ điều khiển cache bỏ qua lệnh và gọi PLB, OPB, LMB hoàn thành yêu cầu Nếu địa chỉ là có khả năng cache, một phép tìm

được thực thi trên tag nhớ để kiểm tra nếu địa chỉ yêu cầu đang được cache

Cache dữ liệu

MicroBlaze có thể dùng với tùy chọn cache dữ liệu để tăng cường hiệu năng Vùng cache phải không bao gồm vùng địa chỉ LMB Cache dữ liệu có các đặc tính sau:

 Ánh xạ trực tiếp

 Dải địa chỉ có khả năng chọn, có khả năng cache

 Cấu hình được kích thước cache và tag

 Đệm qua giao diện XCL

 Tùy chọn dòng cache 4 hay 8 từ

 Cho phép/không cho phép cache qua 1bit của MSR

 Tùy chọn WIC để xác nhận dòng cache dữ liệu

Khi cache dữ liệu cho phép sử dụng, vùng nhớ chia làm 2 vùng: một vùng có khả năng cache và một không có khả năng cache Vùng có khả năng cache xác định bởi hai thông số: C_DCACHE_ ASEADDR và C_DCACHE_HIGHADDR Kích thước vùng này là 2N (N>0) Dải địa chỉ xác định với C_DCACHE_BASEADDR và C_DCACHE_HIGHADDR phải có kích thước bằng 2N Địa chỉ có khả năng cache gồm hai phần: địa chỉ cache và địa chỉ tag Cache lệnh của MicroBlaze có thể cấu hình từ 64-byte tới 64-K tương ứng với địa chỉ cache từ 6 đến 16-bit Địa chỉ tag cuãng phù hoẹp với địa chỉ toàn phần của bộ nhớ cache Sơ đồ xử lý cache lệnh được cho trên Hình 2.6

Trang 34

H nh 2.6 Xử lí cache dữ liệu Đơn vị dấu phẩy động (FPU)

Đơn vị dấu phẩy động dựa trên chuẩn IEEE 754:

 Dùng định dạng IEEE 754 cho dấu phẩy động chính xác đơn, bao gồm định ngh a cho số không xác định, không là số và 0

 Hỗ trợ cộng, trừ, nhân, chia, so sánh, chuyển đổi và căn

 Làm tròn tới giá trị gần nhất

 Tạo bit trạng thái mềm dẻo cho: tràn, chia cho 0 và phép tính không hợp lệ

Liên kết nhanh đơn giản (FSL)

MicroBlaze có thể cấu hình tối đa 16 giao diện FSL, mỗi giao diện bao gồm một cổng vào và một cổng ra Các kênh FSL là các giao diện truyền dữ liệu đơn hướng điểm - điểm Các giao diện FSL trên MicroBlaze rộng 32-bit 1 bit chia tách xác định đâu là từ gửi/nhận của dạng điều khiển hay dạng dữ liệu Lệnh get dùng để truyền thông tin từ một cổng FSL tới 1 thanh ghi đa năng Lệnh put dùng để truyền thông tin theo hướng ngược lại

Mỗi FSL cung cấp 1 giao diện trễ nhỏ cho pipeline và vi xử lí Do đó FSL lý tưởng cho việc mở rộng đơn vị xử lí thực thi với bộ gia tốc cứng của người dùng

Trang 35

2.1.2 Giao diện tín hiệu

Lõi Micro laze được tổ chức theo kiến trúc Harvard với giao diện bus phân tách cho

dữ liệu và lệnh Có ba giao diện bộ nhớ được hỗ trợ: Bus bộ nhớ cục bộ LMB, bus cục bộ vi xử lý PLB hay bus ngoại vi trên chip OPB, liên kết đệm Xilinx XCL LMB cung cấp truy cập đơn xung nhịp tới block RAM cổng đôi trên chip PL và OP cung cấp một kết nối cho các ngoại vi trên chip và ngoài chip cũng như bộ nhớ XCL dùng cho bộ điều khiển bộ nhớ ngoài đặc biệt Hình 2.7 mô tả giao diện tín hiệu của MicroBlaze

H nh 2.7 Giao diện tín hiệu của MicroBlaze

 DPLB: giao diện dữ liệu, PLB

 DOPB: giao diện dữ liệu, OPB

 DLMB: giao diện dữ liệu, LMB

 IPLB: giao diện lệnh, PLB

 IOPB: giao diện lệnh, OPB

 ILMB: giao diện lệnh, LMB

Trang 36

 MFSL 0 15: giao diện FSL chủ

 DWFSL 0 15: giao diện chủ điều khiển liên kết FSL

 SFSL 0 15: giao diện FSL tớ

 DRFSL 0 15: giao diện tớ điều khiển liên kết FSL

 IXCL: giao diện liên kết đệm lệnh

 DXCL: giao diện liên kết đệm dữ liệu

 Core: tín hiệu tổng hợp: đồng hồ, reset, debug và trace

us bộ nhớ cục bộ LM

LMB là một bus đồng bộ dùng chủ yếu để truy cập block RAM trên chip Nó dùng các tín hiệu điều khiển với số lượng ít nhất và giao thức đơn giản để đảm bảo block RAM cục bộ được truy cập trong một xung nhịp Tất cả tín hiệu của LMB tích cực mức cao Các tín hiệu của bus cục bộ LM được mô tả chi tiết trong ảng 2.2

ảng 2.2 Mô tả bus cục bộ LMB

Tín hiệu Giao diện dữ liệu Giao diện lệnh Kiểu Mô tả

Addr[0:31] Data_Addr[0:31] Instr_Addr[0:31] O us địa chỉ Byte_Enable[0:3] Byte_Enable[0:3] Không dùng O Cho phép byte Data_Write[0:31] Data_Write[0:31] Không dùng O us dữ liệu ghi

Data_Read[0:31] Data_Read[0:31] Instr[0:31] us dữ liệu đọc

tiếp

Trang 37

Bus nhanh- đơn giản FSL

FSL cung cấp kênh tryền điểm – điểm giữa một FIFO ra và một FIFO vào MicroBlaze có thể có tối đa 16 giao diện FSL chủ và 16 giao diện FSL tớ Hình 2.8

và ảng 2.3 mô tả sơ đồ và ý ngh a các chân vào ra của một liên kết FSL ảng 2.4

mô tả các tín hiệu của một FSL tớ

H nh 2.8 Sơ đồ chân của một liên kết FSL ảng 2.3 Mô tả tín hiệu của FSL chủ

FSLn_M_Data Giá trị dữ liệu ghi std_logic_vector Ra FSLn_M_Control it điều khiển ghi ra FSL std_logic Ra FSLn_M_Full it xác định đầy FIFO std_logic vào

ảng 2.4 Mô tả tín hiệu của FSL tớ

Trang 38

Ngoại vi của FSL có thể là chủ hay tớ của bus Một ngoại vi kết nối tới cổng chủ của FSL đặt tín hiệu dữ liệu và điều khiển lên FSL Một ngoại vi kết nối tới cổng tớ của FSL đọc và lấy dữ liệu và tín hiệu điều khiển từ FSL Đây là một ví dụ về sử dụng FSL để kết nối một khối logic của người dùng tới MicroBlaze Khối IDCT được thực hiện bằng phần cứng để đảm bảo tốc độ tính toán nhanh và tối ưu Micro laze làm chủ của FSL0 và làm tớ của FSL1, khối IDCT làm tớ của FSL0 và làm chủ của FSL1 MicroBlaze gửi dữ liệu và điền khiển IDCT qua FSL0, khi IDCT thực hiện xong, nó gửi dữ liệu lại MicroBlaze qua FSL1 Hình 2.9 mô tả liên kết giữa khối IDCT và MicroBlaze thông qua FSL

H nh 2.9 Khối IDCT liên kết với MicroBlaze qua FSL Liên kết đệm Xilinx XCL

Đây là giải pháp hiệu năng cao cho việc truy cập bộ nhớ ngoài XCL thiết kế để kết nối trực tiêp tới bộ điều khiển bộ nhớ với bộ đệm FSL tích hợp, ví dụ như MPMC Phương thức này có độ trế thấp nhất

Giao diện này chỉ được phép trên Micro laze khi cache được chọn Bao nhiêu vùng

bộ nhớ được truy cập phụ thuộc vào thông số C_ICACHE_ALWAYS_USED cho cache lệnh và C_DCACHE_ALWAYS_USED cho cache dữ liệu Nếu thông số là 1, dải bộ nhớ đệm luôn luôn được truy cập qua liên kết đệm Nếu thông số bằng 0, dải

bộ nhớ đệm được truy cập qua PLB hay OPB

Trang 39

2.1.3 Giao diện ứng dụng

Giao diện ứng dụng quan trọng cho phát triển phần mềm trên ngôn ngữ hợp ngữ cho

vi xử lý mềm Trình biên dịch MicroBlaze GNU tuân theo những quy tức của giao diện này, bao gồm:

o Loại dữ liệu

o Các quy ước dùng thanh ghi

o Quy ước ngăn xếp

ảng 2.5 Mô tả loại dữ liệu

Loại dữ liệu MicroBlaze Loại dữ liệu ANSI C tương ứng Kích thước(byte)

Trang 40

Các quy ước dùng thanh ghi

Các quy ước dùng thanh ghi trình bày như ảng 2.6 dưới đây:

ảng 2.6 Quy ước dùng thanh ghi

Thanh ghi Loại Tuân theo Mục đích

R0 Chuyên dụng Phần cứng Giá trị

R1 Chuyên dụng Phần mềm Con trỏ ngăn xếp

R2 Chuyên dụng Phần mềm Vùng dữ liệu nhỏ chỉ đọc

R3-R4 Thay đổi Phần mềm Trả giá trị nháp

R5-R10 Thay đổi Phần mềm Duyệt thông số nháp

R11-R12 Thay đổi Phần mềm Nháp

R13 Chuyên dụng Phần mềm Vùng dữ liệu nhỏ đọc-ghi

R14 Chuyên dụng Phần cứng Trả về địa chỉ cho ngắt

R15 Chuyên dụng Phần mềm Trả về địa chỉ chương trình con

R16 Chuyên dụng Phần cứng Trả về địa chỉ trap

R17 Chuyên dụng Phần Cứng mềm Trả về địa chỉ ngoại lệ

Đặt trước cho chứa con trỏ tới bảng lệch toàn cục và vị trí mã không lệ thuộc

R21-R31 Không thay

đổi Phần mềm Phải lưu theo lời gọi hàm RPC Đặc biệt Phần cứng ộ đếm chương trình

RMSR Đặc biệt Phần cứng Thanh ghi trạng thái máy

REAR Đặc biệt Phần cứng Thanh ghi địa chỉ ngoại lệ

RESR Đặc biệt Phần cứng Thanh ghi trạng thái ngoại lệ

RFSR Đặc biệt Phần cứng Thanh ghi trạng thái số phẩy động

Ngày đăng: 21/04/2014, 08:22

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Texas Instruments, Application Report, (2010, May), RS-422 and RS-485 Standards Overview and System Configurations. [Online]. Available:http://www.ti.com/lit/an/slla070d/slla070d.pdf Sách, tạp chí
Tiêu đề: RS-422 and RS-485 Standards Overview and System Configurations
Tác giả: Texas Instruments
Nhà XB: Application Report
Năm: 2010
[9] Xilinx (2011, Nov) MicroBlaze Processor Reference Guide (v11.1). [Online]. Available:http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_2/mb_ref_guide.pdf Sách, tạp chí
Tiêu đề: MicroBlaze Processor Reference Guide (v11.1)
Tác giả: Xilinx
Năm: 2011
[10] Xilinx (2006, Dec). Xilkernel (v3.00.a). [Online]. Available: http://Www.Xilinx.Com/Ise/Embedded/Edk91i_Docs/Xilkernel_V3_00_A.Pdf Sách, tạp chí
Tiêu đề: Xilkernel (v3.00.a)
Tác giả: Xilinx
Năm: 2006
[11] John F. Wakerly (2007, Jun). Digital Design, Principles & Practices (3 rd ed). [Online]. Available: http://www.genie53.com/digital_design-third_edition.pdf Sách, tạp chí
Tiêu đề: Digital Design, Principles & Practices
Tác giả: John F. Wakerly
Năm: 2007
[15] CCITT (1994, Sep) Recommendation ITU-R BT.601-4, Encoding parameters of digital television for studios. [Online]. Available:http://www-inst.eecs.berkeley.edu/~cs150/Documents/ITU601.PDF Sách, tạp chí
Tiêu đề: Recommendation ITU-R BT.601-4, Encoding parameters of digital television for studios
Tác giả: CCITT
Năm: 1994
[17] Stephen MacMahon, Nan Zang, Anirudha Sarangi (2011, April 11). LightWeight IP (lwIP) Application Examples [Online]. Available:http://www.xilinx.com/support/documentation/application_notes/xapp1026.pdf Sách, tạp chí
Tiêu đề: LightWeight IP (lwIP) Application Examples
Tác giả: Stephen MacMahon, Nan Zang, Anirudha Sarangi
Năm: 2011

HÌNH ẢNH LIÊN QUAN

3.1  Sơ đồ khối nền tảng cứng cho hệ thống - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
3.1 Sơ đồ khối nền tảng cứng cho hệ thống (Trang 48)
Hình 3.2 mô tả khối mjpeg core sau khi đã được tích hợp vào hệ thống MicroBlaze.  Sau đây là phần trình bày cụ thể hơn về chức năng của từng khối - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Hình 3.2 mô tả khối mjpeg core sau khi đã được tích hợp vào hệ thống MicroBlaze. Sau đây là phần trình bày cụ thể hơn về chức năng của từng khối (Trang 52)
Hình 3.6 mô tả cửa sổ chọn sử dụng Lwip. - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Hình 3.6 mô tả cửa sổ chọn sử dụng Lwip (Trang 56)
Cũ hơn, do vậy tốc độ truyền chậm hơn so với phiên bản lwip 1.3.0. Bảng 3.5 và 3.6  thể hiện hiệu năng của hai phiên bản Lwip được hãng Xilinx cung cấp - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
h ơn, do vậy tốc độ truyền chậm hơn so với phiên bản lwip 1.3.0. Bảng 3.5 và 3.6 thể hiện hiệu năng của hai phiên bản Lwip được hãng Xilinx cung cấp (Trang 57)
Tử  khác  nhau,  được  cho  trong  ảng  4.7  và   ảng  4.8.  Trong  2  bảng  này,  giá  trị  nhỏ  nhất là 5 nên sau khi qua khối Lượng tử hóa, dữ liệu bị giảm đi ít nhất 2 bit - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
kh ác nhau, được cho trong ảng 4.7 và ảng 4.8. Trong 2 bảng này, giá trị nhỏ nhất là 5 nên sau khi qua khối Lượng tử hóa, dữ liệu bị giảm đi ít nhất 2 bit (Trang 76)
Hình 4.14 mô tả các tín hiệu vào/ra khối Mã hóa Huffman. - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Hình 4.14 mô tả các tín hiệu vào/ra khối Mã hóa Huffman (Trang 86)
Bảng bản ghi  thông tin lưu  trữ IP Camera - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Bảng b ản ghi thông tin lưu trữ IP Camera (Trang 97)
Bảng thông tin  hoạt động người  dùng - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Bảng th ông tin hoạt động người dùng (Trang 100)
Bảng thông tin  hoạt động người  dùng - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
Bảng th ông tin hoạt động người dùng (Trang 100)
5.1.2.4  Sơ đồ thực thể liên kết - thiết kế hệ thống ip camera hỗ trợ chuẩn mjpeg trên nền fpga ứng dụng trong giám sát và điều khiển từ xa
5.1.2.4 Sơ đồ thực thể liên kết (Trang 102)

TỪ KHÓA LIÊN QUAN

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