Chương 1: Giới thiệu đề tài Chương đầu tiên sẽ giới thiệu tổng quan về đề tài khóa luận, lý do nhóm chọn đề tài này, mục tiêu dé ra của nhóm, những giới hạn của để tài và kết quả thực hiện mà nhóm đạt được. Chương 2: Cơ sở lý thuyết Chương này trình bày những cơ sở lý thuyết được sử dụng có liên quan đến nội dung nghiên cứu của dé tài, những thông tin này dựa vào các nguồn tài liệu nhóm tìm kiếm được trên Internet, tham khảo các tài liệu có sẵn trên website của khoa KTMT cũng như những góp ý của các thầy cô, anh chị bao gồm: kiến thức chung về FPGA, smart camera, tìm hiểu về các kỹ thuật streaming video và nghiên cứu giao thức RTSP, các phương pháp ổn định streaming, cuối cùng sẽ đưa ra các đề xuất phù hợp nhất. Chương 3: Thiết kế hệ thống Dựa vào những kiến thức về cơ sở lý thuyết đã tìm hiểu được ở Chương 2 thì ở Chương 3 này nhóm sẽ đề xuất một mô hình hệ thống một cách chỉ tiết của khóa luận. Giải thích nguyên lý hoạt động của cả hệ thống.
Chương 4: Hiện thực, thực nghiệm và đánh giá kết quả Sau khi đã xây dựng được hệ thống, nhóm tiến hành các bước chạy thử, thực nghiệm thu được các kết quả sau đó thực hiện việc đánh giá, so sánh với mục tiêu ban đầu của đề tài cũng như so sánh với kết quả thực nghiệm của đề tài trước. Chương 5: Kết luận và hướng phát triển Chương cuối sẽ tổng kết lại khóa luận, tóm tắt toàn bộ những công việc mà nhóm đã hoàn thành, những kết quả và thành tích đạt được. Đồng thời chương này nhóm sẽ đưa ra đề xuất cho những hướng phát triển tiếp theo của đề tài trong tương lai. Field Programmable Gate Array (FPGA) 2.
Dinh nghĩa FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. Chữ field ở đây muốn nói đến khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn. Vi mạch FPGA được cấu thành từ các bộ phận: © Các khối logic cơ bản lập trình được (logic block) e - Hệ thống mạch liên kết lập trình được ¢ Khối vào ra (I/O Pads) e Phan tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý. FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt được mức độ tối ưu như những loại này và còn hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp.
Tuy vậy FPGA ưu việt hơn ở chỗ có thê tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chỉ phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL. Các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế. Ngoài ra cũng có một số hãng thứ ba cung cấp các gói phần mềm kiểu nay như Synopsys, Synplify.
Các gói phần mềm này có khả năng thực hiện tat cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL). Kiến trúc tổng quát Kiến trúc cơ bản của FPGA gồm 3 thành phần chính sau: Khối I/O (hay gọi là các pin FPGA), khối kết nối (Interconnection), các khối logic cấu hình (Logic Blocks hoặc Configurable Logic Blocks - CLB). Các khối CLB được tô chức sắp xếp theo mảng với 2 hướng doc và ngang như Hình 2. Logic Blocks Programmable Interconnect Hình 2.1: Kiến trúc cơ bản của FPGA Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phần tử nhớ cơ bản được sử dụng trong hệ thống sé.
CLBs là phần tử cơ bản cấu thành FPGA, là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ. Một CLB cơ bản gồm một mạch tô hợp có thé lập trình (còn gọi là LUT), một Flip-Flop hoặc một chốt (latch). Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phan tử nhớ flip-flop. Ngoài khối logic cơ bản đó, nhiều chip FPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đó chỉ được dùng cho các chức năng cụ thể, chang hạn như các khối bộ nhớ chuyên dụng, các bộ nhân (multipliers) hoặc các bộ ghép kênh (multiplexers).
Tất nhiên, cấu hình bộ nhớ được sử dụng trên tất cả các khối logic được dùng để điều khiển các chức năng cụ thé của mỗi phan tử bên trong khối đó. Khối kết nói (Interconnections): dùng dé liên kết các khối logic và I/O lại với nhau đề tạo thành một thiết kế hoàn chỉnh. Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng. Tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau.
Các đường kết nối được nối với nhau thông qua các khối chuyển mạch lập trình được (programmable switch). Trong mỗi khối chuyển mạch chứa một số lượng nút chuyền lập trình được đảm bảo cho các dạng liên kết phức tạp khác nhau. Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành phần bên ngoài. Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là việc lựa chọn các tiêu chuẩn điện ấp cung cấp và điện áp tham chiếu sẽ được hỗ trợ.
Số lượng Pin (I/O) của FPGA tương đối lớn, thường được chia ra làm 2 loại: User Pin (chân người dùng), Dedicated Pin (chân chuyên dung). User Pin: người dùng có thé lập trình như đầu vào, dau ra hoặc cả đầu vào — ra. Mỗi pin được kết nối với một “I/O Cell” bên trong FPGA, được cấp bởi các chân Vee I/O (I/O power pin). Dedicated Pin: được mã hóa cứng với một chức năng cụ thé như: ® Power Pin ¢ Configuration Pin: các pin dé cấu hình FPGA.
¢ Dedicated Input hay Clock Pin: điều khiển mạng lưới clock trong FPGA. e Voltage IO: cấp nguồn cho các cổng logic va flip-flops bên trong FPGA Theo thời gian, các kiến tric FPGA co bản đã được phát triển nhiều hơn thông qua việc bổ sung các khối chức năng đặc biệt có thé lập trình như bộ nhớ Block RAMs, logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng. Kết quả là nhiều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó. Hệ thống nhúng 2.
Dinh nghĩa Hệ thống nhúng là một loại hệ thống máy tính được thiết kế dé thực hiện một số tác vụ như truy cập, xử lý, lưu trữ và kiểm soát dữ liệu trong các hệ thống thiết bị điện tử khác nhau. Các hệ thống nhúng là sự kết hợp giữa phần cứng và phần mềm, ở đây phần mềm được nhúng vào phần cứng. Một trong những đặc điểm quan trọng nhất của các hệ thống này là nó chỉ cung cấp input/output trong một khoảng thời gian giới hạn. Sự hỗ trợ của các hệ thống nhúng giúp cho công việc trở nên hoàn thiện và thuận tiện hơn.
Vì thế, các hệ thống nhúng thường được tích hợp trong rất nhiều thiết bị từ đơn giản đến phức tạp.2 mô tả mô hình cơ bản của một hệ thống nhúng. User Interface J Embedded Computer Input Variables —œ>. Software — Output Variables Hardware J Link to Other Systems Hình 2.2: Mô hình cơ bản của một hệ thống nhúng 2. Phần mềm của một hệ thống nhúng Phần mềm được viết cho hệ thống nhúng được gọi là phần mềm nhúng hay firmware.
Phần mềm nhúng là một chương trình được viết, biên dịch trên máy tính và nạp vào một hệ thống khác bao gồm một hoặc nhiều bộ vi xử lý đã được cài đặt sẵn một hệ điều hành, bộ nhớ ghi chép được, các công giao tiếp được với các phần cứng khác. Phần mềm nhúng là phần mềm tạo nên phần hồn, phần trí tuệ của các 11 sản phẩm nhúng. Phần mềm nhúng ngày càng có giá trị cao trong các sản phâm nhúng. Phần cứng của một hệ thống nhúng Hệ thống nhúng sử dụng nên tang phần cứng để thực thi các hoạt động.
Phần cứng của hệ thống nhúng được lắp ráp cùng với bộ vi xử ly/vi điều khiển. Hệ thống phan cứng nay bao gồm các yếu tố như giao điện cho các dit liệu đầu vào/đầu ra, bộ nhớ, giao điện người dùng và bộ hiền thị dữ liệu. Về cơ bản, một hệ thống nhúng thường bao gồm: e _ Bộ cung cấp năng lượng e Bộnhớ e Bộ xủ lý e Timers ¢ Đầu ra/ bảng mạch đầu ra e Cổng giao tiếp nói tiếp e SASC (System application specific circuits — Các mạch ứng dụng cho một hệ thống cụ thể nào đó) 12 _.3: Phần cứng của một hệ thống nhúng 2. Đặc điểm của một hệ thống nhúng Hệ thống nhúng được thiết kế dé thực hiện một chức năng chuyên biệt nào đó.
Đây là điểm khác biệt so với các hệ thống máy tính khác như máy tính cá nhân hoặc các siêu máy tính có thể thực hiện nhiều chức năng khác nhau với những phép tính phức tạp. Tính chuyên dụng của hệ thống nhúng giúp nâng cao khả năng sử dụng và tiết kiệm tài nguyên cho hệ thống. Tất cả các hệ thống máy tính đều có những hạn chế về các số liệu thiết kế, tài nguyên. Số liệu thiết kế là thước đo dé đánh giá việc xây dựng các tinh năng như độ lớn, công suất, chi phí và cả hiệu năng hoạt động của hệ thống.
Hệ thống phải hoạt động nhanh ở một mức độ chấp nhận được nào đó, đồng thời vẫn phải đảm bảo tiêu thụ it năng lượng hon dé tăng tuổi thọ của pin. Một số hệ thống nhúng phải tương tác liên tục với những thay đôi trong hệ thống và tính toán các kết quả cụ thé trong thời gian thực với độ trễ cực thấp hoặc hầu như không có. 13 Hệ thống nhúng phải được nhúng vào một vi điều khiển hoặc bộ vi xử lý. Hệ thống nhúng luôn yêu cầu một bộ nhớ nên phần mềm nhúng thường được đưa trực tiếp vào ROM.
Hệ thống nhúng không bắt buộc sử dụng bộ nhớ thứ cấp trên máy tính. Hệ thống nhúng phải được kết nối với các thiết bị ngoại vi để kết hợp các thiết bị đầu vào và đầu ra.