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

THIẾT kế hệ THỐNG xử lý ẢNH số TRÊN nền FPGA

84 551 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 84
Dung lượng 1,95 MB

Nội dung

Danh mục các hình vẽ trong đồ án tốt nghiệpHình 1.1 Một tay máy thực hiện gắp đối tượng với sự trợ giúp của hệ thống thị giác máy tính Hình 1.2 Các bước cơ bản của xử lý ảnh số.. Mặc dù

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN – BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG

Ketnooi.com k t n i công dân đi n t

Trang 2

Lời cảm ơn

Trước hết, chúng em xin gửi lời cảm ơn sâu sắc đến thầy giáo TS Lưu Hồng Việt, người đã giúp đỡ rất nhiều về định hướng nghiên cứu, thiết bị thí nghiệm phục vụ cho nghiên cứu

Chúng em xin chân thành cảm ơn các thầy cô giáo đã giảng dạy chúng

em, đặc biệt là các thầy cô giáo trong Bộ môn Điều khiển tự động – Khoa Điện, TS Phạm Ngọc Nam – Phó Trưởng bộ môn Điện tử - Tin học – Khoa Điện tử Viễn Thông – Trường Đại học Bách Khoa Hà Nội đã tạo điều kiện giúp đỡ chúng em hoàn thành đồ án tốt nghiệp này

Xin chân thành cảm ơn Dave Vanden Bout, kĩ sư của công ty XESS Corporation đã trả lời tận tình những thắc mắc của chúng em về KIT XSA-3S1000 và XST-3.0

Và cuối cùng, chúng em xin dành tất cả lòng biết ơn và kính trọng sâu sắc nhất tới bố mẹ chúng em, những người đã sinh thành, nuôi dưỡng chúng em nên người, đã lo lắng, chỉ bảo từ những việc nhỏ nhất, đã tạo mọi điều kiện cho chúng em được sống và học tập một cách tốt nhất để vươn tới những ước

mơ và hoài bão của mình

Mặc dù đã rất nỗ lực và cố gắng để hoàn thành luận văn tốt nghiệp này, song chắc chắn không thể tránh khỏi sai sót Vì vậy, chúng em rất mong được

sự chỉ bảo của thầy cô giáo để đề tài tốt nghiệp này hoàn thiện hơn

Ketnooi.com k t n i công dân đi n t

Trang 3

Mục lục

Lời cảm ơn 2

Mục lục 3

Danh mục các hình vẽ trong đồ án tốt nghiệp 6

Mở đầu 8

Phần 1 : Cơ sở lý thuyết xử lý ảnh số 10

1.1 Khái quát về hệ thống Thị giác máy tính và Cảm biến thị giác 10

1.3 Các thành phần của hệ thống xử lý ảnh: 16

1.3.1 Thành phần thu thập ảnh, Camera và vấn đề định dạng ảnh 16

1.3.2 Thành phần xử lý ảnh 17

1.3.2.1 Các khái niệm cơ bản của xử lý ảnh số 17

1.3.2.2 Các thuật toán xử lý ảnh số 18

1.4 Một số giải pháp phần cứng cho hệ thống thị giác máy 28

FPGA 28

DSP Processor 28

Mainboard, laptop 29

Phần 2 : Khái quát về FPGA và mạch phát triển XST 3S1000 của XESS 31

2.1 Giới thiệu chung về FPGA và ngôn ngữ VHDL 31

2.1.1 Khái niệm và ứng dụng FPGA 31

2.1.2 Kiến trúc FPGA 32

2.1.2.1 Kiến trúc chung FPGA 32

Configurable Logic Blocks (CLBs) 33

Configurable I/O Blocks 34

Programmable Interconnect 34

Mạch đồng hồ (Clock Circuitry ) 35

2.1.2.2 So sánh giữa cấu trúc nhỏ và cấu trúc lớn 36

2.1.2.3 So sánh giữa SDRAM Programming và Anti-fuse programming 36

Ketnooi.com k t n i công dân đi n t

Trang 4

Ghi các đặc điểm kĩ thuật 39

Chọn công nghệ 40

Chọn một hướng tiếp cận thiết kế 40

Chọn công cụ tổng hợp 40

Thiết kế chip 41

Mô phỏng – cái nhìn tổng quan về thiết kế 41

Tổng hợp 41

Place and Route 41

Mô phỏng lại – tổng quan cuối cùng 42

Kiểm tra 42

2.1.4 Ngôn ngữ mô tả phần cứng VHDL 42

Trình tự thiết kế một chíp dựa trên VHDL 43

2.2 Giới thiệu mạch phát triển XST 3S 1000 của hãng XESS 44

2.2.1 XSA-3S1000 45

2.2.2 XST-3.0 (XStend Board) 46

2.3 Giới thiệu hãng Xilinx và các công cụ lập trình: 49

Hãng Xilinx 49

ISE 9.2 49

LogicCore 9.2 49

EDK 9.2 50

System Generator 9.2 50

Phần 3 : Xây dựng hệ thống xử lí ảnh động trên nền FPGA 51

3.1 Sơ đồ cấu trúc hệ thống xử lí ảnh động 51

3.2 Xây dựng hệ thống thu thập, lưu trữ, xử lý và hiển thị ảnh 53

3.2.1 Thành phần thu thập ảnh Framegrabber 53

3.2.2 Lưu dữ liệu từ Framegrabber vào SDRAM 55

3.2.3 Các cơ chế ghi đọc SDRAM: SDRAM Controller, Dual Port SDRAM 55

SDRAM Controller 55

Pipeline Read Operation 56

Ketnooi.com k t n i công dân đi n t

Trang 5

3.2.4 Image Processing core 60

3.2.5 Hiển thị ảnh lên VGA: VGA Generator 67

VGA Color Signals 67

VGA Signal Timing 68

Nguyên tắc hoạt động của VGA Generator 69

3.2.6 Picoblaze và hệ thống điều khiển trung tâm 71

3.2.6.1 Khái quát PicoBlaze 71

KCPSM3 Module 73

Kết nối với bộ nhớ ROM chương trình 73

3.2.6.2 Sơ đồ cấu trúc của khối xử lý trung tâm 75

Thuật toán của chương trình 75

3.3 Thiết kế giao diện điều khiển hệ thống 76

Chức năng 77

3.4 Mô phỏng và kết quả 77

Phương án mô phỏng 77

Kết quả 78

Kết luận 79

Tài liệu tham khảo 82

Ketnooi.com k t n i công dân đi n t

Trang 6

Danh mục các hình vẽ trong đồ án tốt nghiệp

Hình 1.1 Một tay máy thực hiện gắp đối tượng với sự trợ giúp của hệ thống thị giác

máy tính Hình 1.2 Các bước cơ bản của xử lý ảnh số.

Hình 1.3 Những kiểu liên kết giữa các điểm ảnh.

Hình 1.4 Những kiểu đường liên kết giữa các điểm ảnh.

Hình 1.5 Kết quả của phép lọc Gaussian với cửa sổ 3x3.

Hình 1.6 Kết quả thuật toán dò biên.

Hình 1.7 Phân ngưỡng theo lược đồ xám.

Hình 1.8 Loại bỏ nhiễu và khôi phục đối tượng bằng quá trình làm mảnh-làm đầy Hình 1.9 Sơ đồ thuật toán gán nhãn đối tượng.

Hình 2.1 Kiến trúc chung của FPGA.

Hình 2.2 Một Logic Block điển hình.

Hình 2.3 Configurable Logic Blocks.

Hình 3.2 Sơ đồ chung của hệ thống.

Hình 3.3 Pixel stream waveform.

Hình 3.4 Framegrabber state machine.

Hình 3.5 Pipelined Read Operation timing waveforms.

Hình 3.6 Pipelined Write Operation timing waveforms.

Hình 3.7 Ghép nối với SDRAM Controller.

Hình 3.8 Ghép nối dualport với SDRAM Controller.

Hình 3.9 Xây dựng 4 ports SDRAM interface.

Ketnooi.com k t n i công dân đi n t

Trang 7

Hình 3.12 Khối thuật toán xử lý ảnh.

Hình 3.13 Cơ chế ghi và đọc buffer.

Hình 3.14 Khối đọc dữ liệu từ buffer.

Hình 3.15 Sơ đồ khối thanh ghi dịch Pixel register

Hình 3.16 Cấu trúc nhân chập.

Hình 3.17 Cấu trúc bộ xử lý đồng cấu ảnh nhị phân.

Hình 3.18 Khối gán nhãn đối tượng.

Hình 3.19 VGA Connection.

Hình 3.20 8 màu cơ bản.

Hình 3.21 CRT Display Timing Example.

Hình 3.22 640 x 480 Mode VGA Control Timing.

Hình 3.23 Sơ đồ khối cấu trúc của VGA Generator.

Hình 3.24 Sơ đồ khối cấu trúc của PicoBlaze.

Hình 3.25 Sơ đồ cấu trúc PicoBlaze Microcontroller.

Hình 3.26 Sơ đồ khối điều khiển trung tâm và giao tiếp UART Hình 3.27 Giao diện điều khiển.

Ketnooi.com k t n i công dân đi n t

Trang 8

Mở đầu

Thị giác máy là một lĩnh vực đã và đang rất phát triển Khái niệm thị giác máy – Computer vision có liên quan tới nhiều ngành học và hướng nghiên cứu khác nhau Từ những năm 1970 khi mà năng lực tính toán của máy tính ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử lý được những tập dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm và kỹthuật về thị giác máy ngày càng được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay

Thị giác máy bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tập dữ liệu đa chiều

Ngày nay, ứng dụng của thị giác máy đã trở nên rất rộng lớn và đa dạng, len lỏi vào mọi lĩnh vực từ quân sự, khoa học, vũ trụ, cho đến y học, sản xuất,

Trang 9

Trong phần 1 của đồ án, chúng em đề cập đến những các khái niệm của hệthống thị giác máy tính, những ứng dụng và các thành phần của nó Đồng thời chúng em trình bày cơ sở kiến thức xử lý ảnh số sẽ được dùng trong việc xây dựng hệ thống cảm biến thị giác.

Trong phần 2, chúng em trình bày những khái niệm cơ bản về chip khảtrình FPGA, hãng Xilinx và những công cụ lập trình và phát triển hệ thống với FPGA Chúng em cũng đề cập đến vi mạch tích hợp XST 3S 1000 của hãng XESS, được sử dụng trong đồ án này

Phần 3, chúng em trình bày phương án thực thi hệ thống thị giác máy trên nền FPGA Việc xây dựng các thành phần thu thập ảnh, lưu trữ ảnh, xử lý ảnh và hiện thị ảnh trên mạch tích hợp XST 3S 1000 được đề cập chi tiết trong phần này Trong phần này, chúng em cũng trình bày phương án chạy mô phỏng kiểm tra hoạt động của hệ thống

Và cuối cùng, chúng em tổng kết những kết quả đạt được, những ưu điểm, nhược điểm của giải pháp, hiệu quả của giải pháp và những hướng phát triển

Ketnooi.com k t n i công dân đi n t

Trang 10

Phần 1 : Cơ sở lý thuyết xử lý ảnh số

1.1 Khái quát về hệ thống Thị giác máy tính và Cảm biến thị giác

Theo định nghĩa từ [1] : Hệ thống thị giác - bao gồm cả thị giác máy (machine vision) và thị giác máy tính (computer vision)- là những hệ thống tiếp nhận thông tin từ các cảm biến thị giác (vision sensor) với mục đích cho phép máy móc đưa ra những quyết định thông minh

Thị giác máy tính là một ngành khoa học mới phát triển Mặc dù đã có những ứng dụng của xử lý ảnh số trong những thập niên đầu của thế kỉ XX vào một số lĩnh vực, nhưng phải đến những năm 1970, những nghiên cứu vềlĩnh vực này mới được bắt đầu khi máy tính đã có thể quản lý các quá trình

xử lý một lượng lớn dữ liệu như các ảnh số

Lĩnh vực nghiên cứu của thị giác máy rất rộng, và đặc điểm chung là các bài toán về thị giác máy tính đều không có một đề bài chung và cách giải duy nhất Mỗi giải pháp giải quyết vấn đều được một kết quả nhất định cho những trường hợp cụ thể Ta có thể thấy sự tương quan giữa Computer vision với các lĩnh vực khác như sau:

Ketnooi.com k t n i công dân đi n t

Trang 11

Qua sơ đồ trên, ta có thể thấy thị giác máy tính và thị giác máy có liên quan đến rất nhiều ngành như tự động điều khiển, xử lý ảnh số, quang học, sinh học, toán học, máy học và Trí tuệ nhân tạo Sự kết hợp của những ngành này tạo cho Thị giác máy tính một khả năng ứng dụng hết sức rộng lớn trong mọi lĩnh vực của khoa học, sản xuất và đời sống Có thể liệt kê một

số ứng dụng của thị giác máy tính như sau :

Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết bị,

Trong hệ thống máy CNC, hoặc các dây chuyền công nghệ, các cảm biến thị giác thu thập dữ liệu ảnh về đối tượng công nghiệp, xử lý và tách đối tượng ra khỏi ảnh Sau khi tách đối tượng, hệ thống thị giác máy tính toán các đặc trưng của đối tượng, như vị trí, hướng, để giúp cánh tay máy của robot công nghiệp thao tác chính xác việc gắp hoặc gia công đối tượng

Với những hệ thống thị giác được tích hợp các camera có độ phân giải lớn, được lập trình chính xác, có thể điều khiển tay máy để thao tác với những vi mạch nhỏ đòi hỏi độ chính xác gần như tuyệt đối

Trang 12

Hình 1.1: Một tay máy thực hiện gắp đối tượng với sự trợ giúp của hệ thống thị giác máy tính

Cũng như vậy, với xe tự hành đi trong môi trường phức tạp, nhiều vật cản, hệ thống thị giác máy giúp cho xe phát hiện ra những đối tượng, vị trí và khoảng cách của chúng đối với xe Trong trường hợp này, hệ thống thị giác máy không chỉ đóng vai trò như môt cảm biến thị giác, mà còn thực hiện việc

vẽ bản đồ đối tượng, cho phép xe tự hành chọn được đường đi thích hợp nhất

Hệ thống thị giác máy còn được ứng dụng trong những lĩnh vực công nghiệp với vai trò như một cảm biến kiểm soát lỗi bề mặt sản phẩm Camera thu thập hình ảnh về bề mặt sản phẩm, sẽ truyền dữ liệu vào cho hệ thống xử

lý để tìm ra lỗi trên sản phẩm, vị trí lỗi và kích thước lỗi Với những hệ thống thị giác sử dụng camera hồng ngoại, ta còn có thể đo nhiệt độ sản phẩm và sựphân bố nhiệt độ trên sản phẩm

Như vậy, có thể nói, trong lĩnh vực công nghiệp, thị giác máy và cảm biến thị giác có thể thay thế một lượng lớn các cảm biến ví trí thông thường, vốn cần rất nhiều trong một dây chuyền sản xuất hoặc CNC, giúp giảm thiểu chi phí và công sức lắp đặt cảm biến, và quan trọng nhất là tạo nên một hệ thống

xử lý thống nhất những thông tin về quá trình và đối tượng công nghiệp.Trong lĩnh vực tự động hóa tòa nhà, hệ thống thị giác máy cũng đóng một

Trang 13

Với sự phát triển của các thuật toán xử lý dữ liệu ảnh, ứng dụng các thành tựu mới nhất của công nghệ xử lý và trí tuệ nhân tạo, các cảm biến thị giác ngày nay có thẻ thực hiện những chức năng thông minh như đếm số người trong phòng, nhận dạng đối tượng chuyển động, nhận dạng khuôn mặt, cảnh báo sự kiện, nhận dạng vân tay

Các hãng như ALTALS và SELTEC, đã cho ra đời những máy đếm sốngười, dựa trên chuỗi hình ảnh Bằng cách quan sát sự di chuyển của dòng người và số người , hệ thống thị giác máy sẽ tính toán tốc độ và mật độ dòng người di chuyển Bài toán này được ứng dụng nhiều trong những khu công cộng như nhà ga, tàu điện ngầm để kiểm soát lưu lượng người ra vào nhằm đưa ra những quyết định điều hành chính xác.[2]

Hệ thống thị giác máy còn được ứng dụng rộng rãi trong việc nhận dạng, chuẩn đoán y học, quân sự ( xác định vị trí đối phương) và vũ trụ

Xu thế phát triển của các cảm biến ngày nay, đó là độ chính xác cao, kèm với tính phân tán, thông minh, khả năng loại bỏ lỗi (fault tolerance) Các hệthống cảm biến thị giác đang chứng tỏ ngày càng đáp ứng được xu thế đấy Các hệ thống cảm biến thị giác ngày nay, đã có thể thay thế được một lượng lớn cảm biến vị trí trong những bài toán cụ thể, đồng thời, khả năng xử lý thông tin không cần đến sự điều khiển của bộ điều khiển trung tâm, cho phép chúng có thể tích hợp rộng rãi vào những hệ thống điều khiển phân tán Thêm vào đó, các cảm biến thị giác có tính linh hoạt rất cao, có thể ứng dụng trong nhiều bài toán với những yêu cầu đo đạc và giám sát khác nhau Và cuối cùng, do đặc điểm hoạt động của mình, các cảm biến thị giác có thể hoạt động tốt trong những môi trường khắc nghiệt, như nhiệt độ cao, phóng xạ, bụi, điện trường, độ ẩm lớn

Với những lý do đó, hệ thống thị giác máy và cảm biến thị giác đang ngày càng được ứng dụng nhiều trong những hệ thống phức tạp và hiện đại, hoạt động liên tục và đòi hỏi yêu cầu về độ chính xác và xử lý thông tin cao

1.2 Khái quát quá trình xử lý ảnh số trong hệ thống thị giác máy

tính

Hệ thống thị giác máy tính bao gồm nhiều lĩnh vực, trong đó xử lý ảnh số

Trang 14

Hệ thống xử lý ảnh số bao gồm một phạm vi rộng các kiến thức về phần cứng, phần mềm và cơ sở lý thuyết.

Các bước cơ bản của xử lý ảnh số được mô tả trong sơ đồ dưới đây:

Xử lý và nhận dạng

Cơ sở kiến thức

Hình 1.2 : Các bước cơ bản của xử lý ảnh số

Thu thập ảnh(image acquision) : Ảnh số được thu thập bằng một cảm

biến ảnh có khả năng biến thông tin về cường độ sáng và mức xám của ảnh thực thành tín hiệu điện áp dưới dạng analog Tín hiệu này sau đó được sốhóa để trở thành tín hiệu số

Hiện nay có một số cảm biến ảnh thực hiện cả việc thu nhận tín hiệu vềcường độ sáng của ảnh và số hóa tín hiệu Trong trường hợp cảm biến không

có chức năng số hóa thì cần phải có một bộ biến đổi ảnh tương tự thành ảnh

số (video decoder) Tín hiệu ảnh sau khi được số hóa còn được mã hóa theo những chuẩn video (video format) nhất định trước khi được đưa vào quá trình lưu trữ và xử lý Các chuẩn video thường gặp như IUT-R-BT 656, 601

Tiền xử lý ảnh : Sau khi ảnh số được thu thập dưới dạng tín hiệu số, cần

Trang 15

được thuận tiện hơn Các công đoạn cơ bản của tiền xử lý là : nâng cao độtương phản, lọc nhiễu

Phân vùng ảnh: Bước tiếp theo của quá trình xử lý là phân vùng ảnh Ảnh

sau khi đã được cải thiện, sẽ trở nên thuận tiện hơn cho việc phân ngưỡng và phân vùng Nhiệm vụ chính của phân ngưỡng và phân vùng ảnh là tách ảnh đầu vào thành các đối tượng, vật thể riêng biệt Kết quả của quá trình phân vùng ảnh, ta sẽ được một tập hợp các điểm ảnh có liên kết với nhau thành các đối tượng, được đánh số phân biệt, thuận tiện cho các quá trình xử lý cao hơn

Đầu ra của quá trình phân vùng ảnh là các pixel chưa được lọc, bao gồm liên kết của 1 vùng hoặc tất cả các điểm ảnh trong vùng đó Số liệu này cần được biến đổi thành dạng thích hợp cho máy tính xử lý

Phân tích ảnh: đây là giai đoạn xử lý bậc cao trong hệ thống xử lý ảnh số

Ảnh sau khi được phân vùng thành các đối tượng riêng biệt, đã được đánh sốphân biệt, sẽ được phân tích để phục vụ những mục đích khác nhau như:

Xác định các đặc trưng hình học của đối tượng: dựa trên cơ sở đối tượng

đã được xác định và phân biệt, ta có thể thực hiện xác định các đặc trưng hình học của mỗi đối tượng đấy, như : vị trí, kích thước, hướng, và số đối tượng hay mật độ đối tượng trong ảnh Đây là các đặc trưng được dùng nhiều trong hệ thống thị giác máy (machine vision)

Nhận dạng : các đối tượng có thể là các vật thể có hình dạng nhất định,

hoặc các kí tự số, chữ cái, dấu vân tay Ảnh sau khi được phân vùng có thểđược nhận dạng theo những phương pháp nhất định như phương pháp neural, để tìm ra mẫu hình dạng mà đối tượng đó thuộc về

Để hướng dẫn hoạt động của từng module xử lý, cần có một hệ cơ sở kiến thức để kiểm tra hoạt động và tương tác giữa các module Hệ này có nhiệm

vụ kiểm soát hoạt động của từng module và sắp xếp trình tự hoạt động của chúng trong từng thời điểm, giải quyết bài toán xung đột

Trang 16

1.3 Các thành phần của hệ thống xử lý ảnh:

1.3.1 Thành phần thu thập ảnh, Camera và vấn đề định dạng ảnh.

Giới thiệu chung về camera : Trong hệ thống xử lý ảnh số, camera là một thiết bị rất quan trọng có chức năng quan sát và thu nhận ảnh đầu vào của

hệ thống Nó thường được coi là hộp đen trong đó có các quá trình biến đổi

để chuyển một ảnh thành dạng lưu trữ trong máy tính Các bước xử lý này bao gồm sự phát sáng, thấu kính, sensor, các phần tử quang điện và bộ sốhoá, mỗi thành phần này phối hợp nhằm đưa ra ảnh số cuối cùng Điểm đặc biệt quan trọng trong nhận dạng ảnh là đặc tính thời gian của camera, vì vậy quá trình xử lí ảnh có vai trò như bộ lấy mẫu trong hệ thống nhận dạng ảnh

Cảm biến nhìn chung gồm 2 thành phần chính Thành phần thứ nhất tạo

ra tín hiệu điện ở đầu ra tỉ lệ với mức năng lượng mà nó nhận được Thành phần thứ 2 là bộ số hóa(digitalize) , là phần tử biến đổi tín hiệu tương tựthành tín hiệu số Tùy thuộc vào thành phần số hóa thực chất là bộ chuyển đổi ADC, chúng ta có các tín hiệu với số bit khác nhau: 4 bit, 8bit, 10 bit, 12 bit , tương ứng ta sẽ được các ảnh có 16, 256 mức xám khác nhau

Trước đây, người ta sử dụng các camera dựa trên thiết bị phóng tia điện

tử, linh kiện bán dẫn, tuy nhiên những thiết bị này thường cồng kềnh, thiếu bền vững, độ ổn định thấp Từ những năm 1980, đã bắt đầu xuất hiện các sensor ảnh trong các camera như sensor CMOS, CCD Các sensor này chứa một số lượng phần tử quang rời rạc, hay các điểm ảnh (pixel), mỗi phần tửchứa thông tin liên quan đến độ sáng chiếu vào nó

Độ phân giải của các sensor phụ thuộc vào số điểm ảnh trên nó Số điểm ảnh của các sensor là đa dạng, từ thấp (32x32 điểm ảnh), đến trung bình (256x256 điểm ảnh) cho đến cao (640x480 ) hoặc cao hơn nữa là 1280x1024 điểm ảnh

Trong đề tài này, chúng em sử dụng loại camera AVC 301D của hãng AVTech, đây là một loại camera quan sát cho ảnh xám, sử dụng sensor có độ

Trang 17

tương tự được số hóa thành ảnh số bởi bộ video decoder TVP5150 theo chuẩn

ITU-R-BT 601

Mỗi frame ảnh thu về được biểu diễn dưới dạng I(x,y) trong đó x,y là tọa

độ của pixel trên frame và I là mức xám tương ứng của pixel đó

Như vậy 1 frame ảnh thu được sẽ được biểu diễn dưới dạng một ma trận

2 chiều n x m với n là số pixel trên 1 hàng, m là số hàng trong 1 frame Trong

đồ án này, ảnh thu được từ camera có kích thước 510x482, tuy nhiên sau quá

trình số hóa theo chuẩn ITU 601 ta có ảnh số 8bit với kích thước chuẩn là

720x525

1.3.2 Thành phần xử lý ảnh

1.3.2.1 Các khái niệm cơ bản của xử lý ảnh số

Pixel và các lân cận : Như đã biết, mỗi frame ảnh được mô tả dưới dạng

ma trận 2 chiều, trong đó mỗi phần tử của ma trận tương ứng với mức xám

của 1 điểm ảnh (pixel) Mỗi điểm ảnh này có các lân cận xung quanh Nếu

hiển thị mỗi pixel dưới dạng một ô vuông, mỗi điểm có chung biên với 4

điểm lân cận, và có chung góc với 4 điểm lân cận khác

Hai điểm lân cận gọi là "liên kết 4" nếu chúng có chung biên với nhau, và

"liên kết 8" nếu chung góc và chung biên với nhau

Hình 1.3 : Những kiểu liên kết giữa các điểm ảnh Đường liên kết: Đường liên kết là đường nối từ pixel [ i j1, 1] đến pixel

Trang 18

liên kết với pixel trước nó Ta có đường liên kết 4 hoặc liên kết 8 nếu các pixel liên kết 4 hoặc 8 với nhau

a) Liên kết 4 b) Liên kết 8

Hình 1.4 : Những kiểu đường liên kết giữa các điểm ảnh.

Có thể dễ dàng nhận thấy, nếu có một đường liên kết giữa 2 điểm [ i ja, a] ,

,

[ i jb b] , và giữa 2 điểm [ i ja, a] , [ i jc, c] thì cũng sẽ có đường liên kết giữa 2 điểm [ i jb b] và [ i jc c] Liên kết có tính tương đối

Đối tượng và nền : Ảnh sau khi được nhị phân hóa ( các điểm ảnh chỉ có

giá trị 0 hoặc 1) sẽ phân biệt được đối tượng và nền Trong đề tài này, ta giảđịnh đối tượng là tập hợp các điểm ảnh có liên kết với nhau và có mức xám là

0 (đen), ta ký hiệu là S, và nền là những điểm có mức xám 1 (trắng)

Biên: biên của một đối tượng S là tập các điểm trên S và có liên kết 4 với

~S (phần bù của S) hay nền của ảnh

Miền trong của S : là các điểm thuộc S nhưng không nằm trên biên của

1.3.2.2 Các thuật toán xử lý ảnh số

Toán tử cửa sổ (windowing operator): Trong việc thực thi các thuật toán

xử lý ảnh số cơ bản, người ta thường sử dụng một toán tử đặc biệt gọi là toán

tử cửa sổ Toán tử cửa sổ là một tập hợp có hình dạng nhất định, gồm các

Trang 19

toán trên các pixel này sẽ có ảnh hưởng đến các pixel trung tâm cũng là các pixel đang được xử lý trong một thuật toán xử lý ảnh

Toán tử cửa sổ có nhiều hình dạng, tùy thuộc vào thuật toán thực hiện Tuy nhiên thường dùng nhất là các toán tử có dạng hình vuông với các cạnh

là một số lẻ, ví dụ :3x3, 5x5, 7x7

Trong đồ án này, chúng em sử dụng thường xuyên toán tử cửa sổ có dạng 3x3, vì đây là kích thước hợp lý để thực hiện hiệu quả tất cả các thuật toán xử

lý cơ bản và nâng cao, đồng thời lại dễ thực hiện và rút ngắn tối đa quá trình

xử lý Nếu sử dụng cửa sổ 5x5 và 7x7, thời gian xử lý sẽ tăng lên rất nhiều

Tăng độ tương phản : Ảnh sau khi thu được từ camera, có thể do sự

tương phản ảnh sáng kém, dẫn đến độ chói quá cao, khó phân biệt Để cải thiện ảnh, hỗ trợ các quá trình xử lý cao hơn, ta sử dụng các phương pháp hiệu chỉnh: hiệu chỉnh min-max, hiệu chỉnh histogram, hiệu chỉnh Gamma,

Ở đây ta sử dụng phương pháp hiệu chỉnh min-max vì nó dãn đều mức xám của ảnh trong dải cho phép (không ảnh hưởng đến mức xám chung) Công thức để nâng cấp ảnh theo hiệu chỉnh min-max:

min

.256

old new

I , Iold - là mức xám sau khi hiệu chỉnh và trước khi hiệu chỉnh.

Sau khi hiệu chỉnh mức xám, ta sẽ dãn mức xám của ảnh ra các giá trị cách biệt nhau hơn, tạo thuật tiện cho việc xử lý và nhận dạng sau này

Các thuật toán nhân chập

Nhân chập (convolution) : nhân chập không phải là một thuật toán xử lý

ảnh, mà là phép toán thông dụng trong các thuật toán xử lý ảnh sử dụng toán

Trang 20

tử cửa sổ Nhân chập được sử dụng trong các bài toán dò biên (edge detection) và lọc tuyến tính (linear filter).

Nhân chập tính toán ra giá trị mới của pixel trung tâm của toán tử cửa sổ, bằng cách thực hiện phép tính với các pixel lân cận và chính pixel trung tâm

Việc thực thi phép nhân chập như sau: cho một cửa sổ với pixel trung tâm chạy trên toàn bộ frame ảnh, với mỗi cửa sổ 3x3 thu được, ta thực hiện phép toán :

1 1

1 1

j i

Kết quả tính được cho ra giá trị mới của pixel trung tâm

Trong (1.1), c(n,m) là các phần tử của một ma trận gọi là mặt nạ (mask) Mỗi thuật toán xử lý khác nhau sử dụng một mặt nạ khác nhau để tính giá trịcủa các điểm ảnh

Lọc tuyến tính, dò biên: Đây là 2 thuật toán cơ sở sử dụng phép nhân

sử dụng mặt nạ dành cho lọc trung bình, mặt nạ này sẽ làm giảm ảnh hưởng của nhiễu đối với pixel trung tâm bằng cách lấy trung bình cộng các pixel lân cận trong cửa sổ

1 1 1 1

1 1 1 9

Trang 21

11 12 13

1 2 1 1

2 4 2 16

a) Trước khi lọc b)Sau khi lọc

Hình 1.5 : Kết quả của phép lọc Gaussian với cửa sổ 3x3

Dò biên : Biên của một đối tượng được xác định ở nơi mức xám của các pixel có sự thay đổi đột ngột Có nhiều cách xác định biên, như dò biên theo gradient, dò biên bằng cách lấy đạo hàm bậc 2 của mức xám theo tọa độpixel Hầu hết các thuật toán dò biên sử dụng nhân chập, dù không phải làtất cả Thuật toán dò biên mà chúng em sử dụng trong đồ án này là thuật toán Laplacien

Thuật toán Laplacien dò biên chỉ quan tâm đến sự thay đổi đột ngột của mức xám ( lấy đạo hàm bậc 2 ) mà không quan tâm đến hướng của biên Thuật toán này được thực thi bằng cách sử dụng mặt nạ:

Trang 22

a) Ảnh gốc b) Kết quả dò biên

Hình 1.6 : Kết quả thuật toán dò biên

Phân ngưỡng, phân vùng và nhị phân hóa ảnh số: Ảnh sau quá trình tiền

xử lý, nâng cấp, để tới những quá trình xử lý cao hơn cần được nhị phân hóa, phân vùng thành các đối tượng riêng biệt

Tìm ngưỡng : đây là quá trình tìm ra ngưỡng của một ảnh để thực hiện

việc phân vùng Ngưỡng đóng vai trò quyết định quá trình nhị phân hóa ảnh

số có hiệu quả hay không Nếu chọn ngưỡng không tốt, sẽ bỏ qua một số đối tượng, hoặc cho đối tượng với kích thước, vị trí không đúng, hoặc tệ hơn là làm các đối tượng không phân biệt được với nhau

Có nhiều thuật toán tìm ngưỡng, cho kết quả khác nhau : Trong đó điển hình là tìm ngưỡng trung bình và tìm ngưỡng theo histogram

Tìm ngưỡng trung bình, ngưỡng được tính theo công thức:

Trang 23

1 1

1

( , )

Itb, Ing, - mức xám trung bình, giá trị ngưỡng và số gia hiệu chỉnh

Tìm ngưỡng theo histogram: là phương pháp tìm ngưỡng dựa theo lược

đồ xám

Hình 1.7 : Phân ngưỡng theo lược đồ xám

Ngưỡng tìm được theo công thức: Ing=(Imax1+Imax2)/2 Trong đó Imax1

Imax2 là 2 mức xám tương ứng cực đại trên histogram

Phân vùng và nhị phân hóa ảnh số: sau khi tìm ngưỡng, ta có thể nhị

phân hóa ảnh số và tách các đối tượng Trong ảnh xám ban đầu, ta coi đối tượng là những vùng ảnh có mức xám thấp, nền là vùng ảnh có mức xám cao Ta có thể tách đối tượng ra bằng thuật toán phân ngưỡng:

Trang 24

Ta sẽ được đối tượng có màu đen( mức xám 1) và nền có màu trắng (mức xám 0).

Xử lý đồng cấu ảnh nhị phân

Ảnh nhị phân thu được sau khi phân ngưỡng, phân vùng ảnh thành các đối tượng, vẫn có thể chưa hoàn chỉnh để thực hiện các quá trình phân tích tiếp theo Đó là do trên ảnh vẫn có thể tồn tại các nhiễu là các chấm đen chưa

bị loại bỏ sau các thuật toán nâng cấp ảnh và lọc, hoặc do ngưỡng được chọn chưa thực sự tốt để tách hoàn toàn các đối tượng Để giải quyết vấn đề này, ta

sử dụng các thuật toán xử lý đồng cấu ảnh nhị phân (morphological algorithms)

Có 2 phương pháp xử lý tiêu biểu : Thuật toán làm đầy( dilation) và làm mảnh (erosion)

2 phương pháp này đều sử dụng một cửa sổ- phần tử cấu trúc(structure element) quét qua ảnh Dựa trên việc phân tích cửa sổ này ta tính ra giá trịcủa pixel trung tâm

 Làm đầy (dilation) I i j ( , )= 0 chỉ khi tất cả các pixel trong phần tử

cấu trúc có giá trị bằng 0 (cửa sổ nằm hoàn toàn bên ngoài đối tượng)

 Làm mảnh (erosion) I i j ( , )= 1 chỉ khi tất cả các pixel trong phần tử

cấu trúc có giá trị bằng 1 ( cửa sổ nằm hoàn toàn trong đối tượng )

Kết quả của quá trình làm mảnh là ảnh sẽ loại bỏ bớt được những nhiễu nhỏ, đồng thời làm nhỏ bớt đối tượng, tách các đối tượng gần nhau ra Đểkhôi phục đối tượng trở lại như cũ, ta dùng thuật toán làm đầy Sau quá trình này các nhiễu đã bị loại bỏ sẽ không xuất hiện trở lại Có thể loại bỏ hẳn các nhiễu tương đối lớn bằng cách thực hiện nhiều lần thuật toán làm mảnh và làm đầy Tuy nhiên sau đó hình dạng đối tượng không được khôi phục hoàn toàn như trước

Trang 25

Hình 1.8 : Loại bỏ nhiễu và khôi phục đối tượng bằng quá trình làm mảnh-làm đầy. Bài toán đánh nhãn đối tượng: với phương pháp xử lý đồng cấu ảnh nhị

phân, ta đã được 1 ảnh nhị phân với các đối tượng được tách ra rõ rệt, và loại

bỏ được các nhiễu Để thực hiện việc xác định các đặc trưng hình học của đối tượng, phục vụ cho hệ thống định vị và nhận dạng, cần phải phân biệt các đối tượng (các vùng ảnh đen) với nhau bằng cách gán cho chúng các nhãn khác nhau

Thuật toán gán nhãn đối tượng cũng sử dụng một cửa sổ 3x3 chạy khắp frame Pixel trung tâm sẽ được kiểm tra để gán nhãn, và các pixel lân cận được dùng để xác định nhãn mới cho pixel trung tâm Thuật toán thực hiện như sau:

Trang 26

Hình 1.9 : Sơ đồ thuật toán gán nhãn đối tượng

Trang 27

phía trên của frame) Kiểm tra xem pixel trung tâm có bằng 0 Nếu khác 0 thì dịch cửa sổ Nếu bằng 0, kiểm tra nhãn của pixel trung tâm(pixel_index) Nếu khác 0 thì quay trở lại Nếu bằng 0 thì kiểm tra nhãn các pixel lân cận (pixel_nei_index) và gán pixel_cen_index=min(pixel_nei_index) Nếu pixel_cen_index khác 0 thì dịch cửa sổ Nếu bằng 0 thì pixel đó là thuộc đối tượng chưa đánh nhãn Ta tăng biến đếm đối tượng n_object thêm 1, đồng thời gán pixel_cen_index = n_object Sau đó quay trở lại dịch cửa sổ.

Với thuật toán này, ta sẽ thực hiện đánh nhãn đối tượng gồm các pixel có liên kết 8 với nhau Nhãn đối tượng được lưu vào một phần của thông tin vềpixel chứa trong RAM

Các đặc trưng hình học của đối tượng

Sau khi ảnh đã được phân vùng và đánh nhãn thành công, ta thực hiện việc xác định các đặc trưng của đối tượng

Các đặc trưng hình học của đối tượng cần được xác định bao gồm :

-Diện tích: bằng số pixel của đối tượng :

-Chu vi đối tượng: bằng số pixel nằm trên biên đối tượng

-Vị trí (tọa độ) của đối tượng, cũng là tọa độ trọng tâm vật thể,được tính theo công thức :

Trang 28

1.4 Một số giải pháp phần cứng cho hệ thống thị giác máy

Có thể thấy, các thuật toán xử lý ảnh số trong hệ thống thị giác máy đều tương đối phức tạp, với khối lượng tính toán rất lớn (hàng trăm ngàn pixel)

Do đó, để thỏa mãn yêu cầu về tốc độ và hiệu suất xử lý, đòi hỏi những nền phần cứng đủ mạnh với khả năng xử lý và tính thời gian thực cao

Dưới đây là một số giải pháp phần cứng thường được sử dụng cho một hệthống xử lý ảnh số

FPGA

Đây là giải pháp về phần cứng mà hay được sử dụng hiện nay Tận dụng đặc tính của FPGA là linh hoạt và tốc độ xử lý nhanh (cứng hoá các giải thuật), đặc biệt với khả năng xử lý song song, FPGA rất phù hợp với các bài toán xử lý ảnh đòi hỏi một khối lượng tính toán phức tạp

DSP Processor

DSP Processor được giới thiệu đầu tiên vào những năm 1978, 1979 bởi Intel, Bell Labs Các bộ xử lý DSP có những đặc tính nổi bật như sau:

 Thích hợp cho các quá trình cần xử lý theo thời gian thực

 Hiệu năng được tối ưu với dữ liệu dạng luồng

 Chương trình và dữ liệu được bố chí riêng biệt (kiến trúc Harvard)

 Tích hợp các chỉ thị lệnh đặc biệt SIMD (Single Instruction, Multiple Data)

 Không hỗ trợ đa nhiệm

Trang 29

DSP Processor ngày nay đã được tích hợp nhiều thành phần khác nhau, làm tăng khả năng linh hoạt và tốc độ xử lý Đặc biệt các DSP Processor rất thích hợp cho những nhu cầu cần tính toán nhanh, xử lý số thực Đặc biệt một

số còn có sẵn những chỉ thị lệnh giúp cho việc tính toán ma trận, tích chập hay thậm chí các phép biến đổi DCT trong quá tình nén ảnh Với những ưu điểm đó DSP Processor được dùng trong nhiều thiết bị xử lý ảnh chuyên nghiệp

Mainboard, laptop

Đây là một trong những phương pháp đơn giản nhất Có thể tận dụng các mainboard máy tính hay thậm chí các máy tính xách tay với chức năng là một đơn vị xử lý ảnh, và đưa ra quyết định Với việc kết nối một camera hay webcam ta hoàn toàn chủ động trong quá trình nhận/xử lý ảnh Các giao tiếp ngoại vi phổ biến như UART, Parallel, USB hay Keyboard

Việc sử dụng mainboard, laptop sẽ có những ưu/ nhược điểm sau:

 Ưu điểm

 Có tốc độ xử lý cao

 Dễ dàng lập trình, kiểm lỗi

 Hệ điều hành quen thuộc (windows/linux)

 Các công cụ lập trình/biên dịch phổ biến (MSVC, gcc)

 Nhược điểm

 Kích thước, khối lượng lớn

 Dễ hư hỏng do va đập hay các tác nhân khác

 Giá thành rất đắt (>600$)

Trang 30

 Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như UART, USB

Ngoài các giải pháp trên, còn nhiều những giải pháp phần cứng khác cho một hệ thống xử lý ảnh số như : Main công nghiệp, Single Board Computer(SBC) sử dụng Single on Chip (SoC)

Trong đồ án này, chúng em sử dụng giải pháp là vi mạch khả trình FPGA

để xây dựng toàn bộ hệ thống xử lý ảnh và điều khiển trung tâm Mục đích của đề tài là xây dựng một hệ thống xử lý ảnh trên nên FPGA, trong đó thực hiện được một số thuật toán cơ bản như lọc, phân ngưỡng, phân vùng, xử lý đồng cấu ảnh nhị phân, đánh nhãn đối tượng và cuối cùng là tính toán các đặc trưng của đối tượng (vị trí, diện tích )

Hệ thống được xây dựng với mục đích thử nghiệm những thuật toán xử

lý ảnh số đã được nghiên cứu, sử dụng công nghệ FPGA, đồng thời tạo nền tảng cho hệ thống thị giác máy tính với những thuật toán xử lý cao hơn

Trang 31

Phần 2 : Khái quát về FPGA và mạch phát triển XST 3S1000 của XESS

2.1 Giới thiệu chung về FPGA và ngôn ngữ VHDL

2.1.1 Khái niệm và ứng dụng FPGA

Khái niệm

FPGA (Field Programable Gate Arrays) là một thiết bị bán dẫn bao gồm các khối logic lập trình được gọi là "Logic Block", và các kết nối khả trình Các khối logic có thể được lập trình để thực hiện các chức năng của các khối logic

cơ bản như AND, XOR, hoặc các chức năng kết hợp phức tạp hơn như decoder hoặc các phép tính toán học Trong hầu hết các kiến trúc FPGA, các khối logic cũng bao gồm cả các phần tử nhớ Đó có thể là các Flip-Flop hoặc những bộ nhớ hoàn chỉnh hơn

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 Programable 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à CPLC đề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ản 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

Trang 32

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

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ý tích hợp (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

Ứ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 và Solaris

Trang 33

Hình 2.1 : Kiến trúc chung của FPGA

Mỗi nhà sản xuất FPGA có riêng cấu trúc FPGA, nhưng nhìn chung cấu trúc được thể hiện giống như trong hình bên trên Cấu trúc FPGA bao gồm có configuration logic blocks (CLBs), configurable I/O blocks (IOB), và programmable interconnect Và tất nhiên, chúng có mạch clock để truyền tín hiệu clock tới các logic block, và thêm vào đó có các logic resources như ALUs, memory và có thể có cả decoders Các phần tử lập trình được của FPGA có 2 dạng cơ bản là các RAM tĩnh (Static RAM) và anti-fuses

Configurable Logic Blocks (CLBs)

Configurable Logic Blocks (CLBs) bao gồm các Look-Up Tables (LUTs) rất linh động có chức năng thực thi các logic và các phần tử nhớ dùng như là các flip-flop hoặc các chốt (latch) CLB thực hiện phần lớn các chức năng logic như là lưu trữ dữ liệu,

Trang 34

Hình 2.2 : Một Logic Block điển hình Configurable I/O Blocks

Input/Output Blocks (IOBs) điều khiển dòng dữ liệu giữa các chân vào ra I/O và các logic bên trong của FPGA Nó bao gồm có các bộ đệm vào và ra với 3 trạng thái và điều khiển ngõ ra dạng open collector Phần lớn là có trởkéo lên ở ngõ ra và thỉnh thoảng lại có trở kéo xuống.IOBs hỗ trợ luồng dữliệu 2 chiều (bidirectional data flow) và hoạt động logic 3 trạng thái (3 state)

Hỗ trợ phần lớn các chuẩn tín hiệu, bao gồm một vài chuẩn tốc độ cao, như Double Data-Rate (DDR)

Hình 2.3 : Configurable Logic Blocks

Trang 35

Interconnect ở FPGA khác xa so với ở CPLD, tuy nhiên lại giống với của gate array ASIC Có một line dài được dùng để nối các CLBs quan trọng mà chúng lại ở cách xa nhau mà không gây ra quá nhiều trễ Chúng có thể được dùng như là các bus ở trong chip Có các line ngắn được dùng để liên kết các CLBs riêng rẽ nhưng đặt gần nhau Và cũng thường có vài ma trận chuyển đổi (switch matrices), giống như trong CPLD, nối giữa các line dài và ngắn lại với nhau theo một số cách đặc biệt Các chuyển đổi lập trình được (Programmable switches) bên trong chip cho phép kết nối giữa CLBs tới các interconnect line và giữa interconnect line với các line khác và với switch matrix Các bộ đệm 3 trạng thái được dùng để kết nối phần lớn các CLBs với các line dài (long line), tạo nên các bus Các long line đặc biệt, gọi là các line clock toàn cục (global clock lines), được thiết kế đặc biệt cho trở kháng thấp

và nhờ đó mà thời gian lan truyền nhanh hơn Chúng được kết nối với các bộđệm clock và với mỗi phần tử được clock trong mỗi CLB.Đó là cách mà clock

có thể phân phối bên trong FPGA

Hình 2.4 : Programmable Interconnect Mạch đồng hồ (Clock Circuitry )

Các khối vào ra với bộ đệm clock high drive gọi là các clock driver,nằm rải

Trang 36

các tín hiệu clock vào các đường clock toàn cục (global clock line) như mô tả

ở bên trên Các đường clock được thiết kế sao cho thời gian thời gian lệch nhỏnhất và thời gian lan truyền nhanh Thiết kế đồng bộ là yêu cầu bắt buộc với FPGA, từ khi độ lệch tuyệt đối và trễ không được bảo đảm Chỉ khi dùng các tín hiệu clock từ các bộ đệm clock thì thời gian trễ tương đối và thời gian lệchmới được đảm bảo

2.1.2.2 So sánh giữa cấu trúc nhỏ và cấu trúc lớn

FPGA có cấu trúc nhỏ giống như các mảng cổng của hệ ASIC với các CLBs chỉ bao gồm các phần tử cơ bản rất nhỏ như các cổng NAND, cổng NOR, … Các nhà lý luận cho rằng các phần tử nhỏ có thể nói với nhau tạo lên các chức năng lớn hơn mà không tốn nhiều các phần tử logic Trong các FPGA có cấu trúc lớn, các CLB có thể bao gồm 2 hoặc nhiều flip-flop, các thiết kế mà không cần nhiều flip-flop sẽ khiến cho nhiều flip-flop không được dùng đến Tiếc rằng, các cấu trúc nhỏ lại yêu cầu khá nhiều nguồn kết nối (routing resource), dẫn đến tăng không gian và thêm vào một lượng lớn trễ mà không thể bù lại

để có hiệu quả hơn

2.1.2.3 So sánh giữa SDRAM Programming và Anti-fuse programming

Có 2 cách để lập trình FPGA Cách đầu tiên là SDRAM Programming, bao gồm một vài bit Static RAM cho mỗi phần tử lập trình Ghi một bit với giá trị

0 sẽ ngắt switch, trong khi ghi giá trị 1 sẽ đóng switch Cách còn lại là fuse bao gồm các cấu trúc rất nhỏ, không giống như các cầu chì thông thường, bình thường chúng không tạo ra một kết nối nào cả Một dòng điện

anti-có cường độ nhất định trong khi lập trình thiết bị sẽ dẫn đến việc hai bên của anti-fuse kết nối với nhau

Thuận lợi của cấu trúc FPGA dựa trên SRAM là chúng dùng một quá trình sản xuất chuẩn mà ở đó các kế hoạch sản xuất chip là gần như giống nhau và luôn luôn được tối ưu cho khả năng hoạt động Từ khi mà SRAM có thể lập trình lại được thì FPGA có thể lập trình lại bất cứ khi nào muốn, thận chí ngay cả khi chúng đang ở trong hệ thống, đơn giản như là ghi vào SRAM

Trang 37

nguồn có thể thay đổi nội dung của RAM Các thiết bị dựa trên SDRAM cũng

có thời gian trễ đường truyền lớn

Thuận lợi của cấu trúc FPGA dựa trên anti-fuse là chúng là non-volatile và các trễ khi nối dây sẽ rất nhỏ vì thế nên chúng có khuynh hướng nhanh hơn Nhược điểm là chúng yêu cầu một bộ lập trình bên ngoài để lập trình và mỗi khi lập trình xong thì không thể thay đổi được

2.1.2.4 Cấu trúc FPGA của Spartan 3

Cấu trúc tổng quan của Spartan 3 gồm có 5 thành phần có chức năng khảtrình cơ bản sau:

 Configurable Logic Blocks (CLBs) bao gồm các Look-Up Tables (LUTs) rất linh động có chức năng thực thi các logic và các phần tử nhớ dùng như là các flip-flop hoặc các chốt (latch) CLB thực hiện phần lớn các chức năng logic như là lưu trữ dữ liệu,

 Input/Output Blocks (IOBs) điều khiển dòng dữ liệu giữa các chân vào

ra I/O và các logic bên trong của FPGA IOBs hỗ trợ luồng dữ liệu 2 chiều (bidirectional data flow) và hoạt động logic 3 trạng thái (3 state) Hỗ trợ phần lớn các chuẩn tín hiệu, bao gồm một vài chuẩn tốc độ cao, như Double Data-Rate (DDR)

 Block RAM cho phép lưu trữ dữ liệu dưới dạng các khối (block) port 18-Kbit

dual- Multiplier Blocks cho phép 2 số nhị phân 18bit làm đầu vào và dễ dàng tính toán tích của chúng

 Digital Clock Manager (DCM) Blocks cung cấp khả năng tự xác định xung clock, là giải pháp số hoàn chỉnh cho các tín hiệu clock phân phối, trễ, nhân, chia và dịch bit

Các phần tử này được tổ chức như trong hình sau:

Trang 38

Hình 2.5 : Cấu trúc các thành phần của Spartan 3A

Từ hình vẽ ta thấy, các IOBs bao quanh các mảng CLBs, riêng Spartan-3E chỉ có một vòng các IOBs Mỗi cột block RAM bao gồm một vài block RAM 18-Kbit, mỗi block RAM lại gắn liền với một multiplier dành riêng Các DCM được đặt ở các vị trí: 2 DCM phía trên và 2 cái phía dưới của thiết bị, và đối với các device lớn hơn thì có thêm các DCM ở phía bên cạnh

Đặc điểm chung mạng Spartan-3 là kết nối liên thông giữa 5 phần tử cơ bản này, và truyền tín hiệu giữa chúng Mỗi thành phần chức năng này có một switch matrix dành riêng để cho phép chọn lựa kết nối cho việc đi dây trong FPGA

2.1.3 Trình tự thiết kế một chip

Trình tự thiết kế một hệ thống trên nền FPGA bao gồm các bước sau:

Trang 39

Hình 2.6 Design Flow Ghi các đặc điểm kĩ thuật

Tầm quan trọng của các đặc điểm kĩ thuật (specification) không thể phóng đại quá Nó chỉ tuyệt đối cần đặc biệt khi là một hướng dẫn để chọn công nghệ phù hợp và tạo những yêu cầu của bạn cho các nhà sản xuất chip Và các đặc điểm kĩ thuật cho phép mỗi kĩ sư hiểu về thiết kế hệ thống chung và công việc của họ trong hệ thống đó là gì Và nó cũng cho phép các kĩ sư thiết

kế giao diện đúng cho một loạt các phần của chip Các đặc điểm kĩ thuật cũng giúp tiết kiệm thời gian và sự hiểu lầm Sẽ không làm gì được nếu không có các bảng ghi các đặc điểm kĩ thuật

Chi tiết kĩ thuật nên bao gồm các thông tin sau đây:

 Sơ đồ khối bên ngoài để chỉ ra chip đó được đặt vào trong hệ thống như thế nào

Trang 40

 Miêu tả các chân vào ra bao gồm khả năng lái đầu ra, mức ngưỡng đầu vào.

 Thời gian ước lượng bao gồm thời gian thiết lập và giữ ở các chân vào, thời gian lan truyền ra các cổng ra và thời gian chu kì clock

Chọn công nghệ

Mỗi khi một chi tiết miêu tả kĩ thuật được xuất bản, nó có thể được dùng

để chọn nhà sản xuất chip tốt nhất với công nghệ và cấu trúc giá cả là tốt nhất đáp ứng được yêu cầu của bạn

Chọn một hướng tiếp cận thiết kế

Tại thời điểm này bạn phải quyết định cách thực hiện thiết kế mà bạn mong muốn Đối với các chip nhỏ thì cách tiếp cận bằng sơ đồ nguyên lý (schematic) thường được chọn, đặc biệt là khi các kĩ sư thiết kế đã quen thuộc với các công cụ này Thế nhưng đối với các thiết kế lớn hơn, nguôn ngữ miêu

tả phần cứng (hardware description language) HDL như Verilog và VHDL được dùng bởi khả năng mềm dẻo, dễ đọc, dễ chuyển giao Khi dùng ngôn ngữ cấp cao, phần mềm tổng hợp (synthesis software) sẽ được yêu cầu tổng hợp (synthesize) thiết kế Có nghĩa rằng phần mềm này sẽ tạo ra các cổng ởcấp thấp từ miêu tả ở cấp cao hơn

Chọn công cụ tổng hợp

Ngày đăng: 02/06/2016, 09:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Volnei A. Pedroni, Circuit Design with VHDL, MIT Press Cambridge, Massachusetts London, England, 2004 Khác
[2]. Texas Instruments, TVP5150PBS Ultralow-Power NTSC/PAL Video Decoder, Texas Instruments Incorporated, May 2006 Khác
[3]. D. Vanden Bout, XSA Board SDRAM Controller, XESS Corporation, July 12, 2005 Khác
[4]. D. Vanden Bout, VGA Generator for the XSA Boards, XESS Corporation, October 12, 2004 Khác
[5]. D. Vanden Bout, Dualport Module for the SDRAM Controller, XESS Corporation, July 12, 2005 Khác
[6]. Karthikeyan Palanisamy, Interfacing Spartan-3 Devices with 166 MHz or 333 Mb/s DDR SDRAM Memories, Xilinx Corporation, October 14, 2004 Khác
[7]. Anil K.Jail , Fundamentals Digital Image Processing, University of California Khác
[8]. Xilinx Ltd, PicoBlaze 8-bit Embedded Microcontroller User Guide UG129, www.xilinx.com, November 21, 2005 Khác
[9]. Xilinx Ltd, Spartan-3E Starter Kit Board User Guide UG230 (v1.0), www.xilinx.com , March 9, 2006 Khác
[10]. Xilinx Ltd, Chapter 7 – Implementing DDR SDRAM Controller – MIG User Guide UG086 (V2.0), www.xilinx.com, September 18, 2007 Khác
[11]. Xilinx Ltd, System Generator for DSP Userguide Release 9.2.00, www.xilinx.com, August 2007 Khác
[12]. Xilinx Ltd, System Generator for DSP Reference Guide Release 9.2.00 Khác
[13]. Xilinx Ltd, System Generator for DSP Getting Started Guide Release 9.2.00, www.xilinx.com, August, 2007 Khác
[14]. Gregory K.McMillan, Douglas M.Considine, Process/Industrial Instruments and Controls Handbook, McGraw-Hill, 1999 Khác
[15]. O.Gassman, H.Meixner, Sensors in Intelligent buildings, Wiley-VHC, 2001 Khác
[16]. Trung tâm công nghệ FPT, Giới thiệu giải pháp phần cứng cho bài toán thị giác máy trên nền Linux nhúng Khác
[17]. Nguyễn Đức Thành, Nguyễn Đức Minh, Computer Vision using Neural Network, Application for Robot Manipulator Control, Bộ Môn Điều khiển tự động, khoa Điện-Điện tử, Đại học Bách Khoa Thành phố Hồ Chí Minh, 2004 Khác
[18]. Anthony Edward Nelson, Implementation of Image Processing Algorithms on FPGA Hardware, Nashville, 2000 Khác
[19]. Bruce Draper, Walid Najjar, Wim Bửhm, Jeff Hammes, Bob Rinker, Charlie Ross, Compiling and Optimizing Image Processing Algorithms for FPGA’s, Colorado State University, 2000 Khác
[20]. Ben Cope, Implementation of 2D Convolution on FPGA, GPU and CPU, Imperial College London, 2000 Khác

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

TÀI LIỆU LIÊN QUAN

w