TỔNG QUAN BÀI TOÁN THIẾT KẾ MÁY PHÁT NHẠC SỐ
Giới thiệu chương
Âm thanh kỹ thuật số là một thuật ngữ phổ biến hiện nay, nhưng nhiều người vẫn chưa hiểu rõ về nó và sự khác biệt với âm thanh analog Chương này sẽ cung cấp cái nhìn tổng quan về âm thanh số, giải thích định nghĩa và các định dạng âm thanh khác nhau Tiếp theo, chúng ta sẽ phân tích một số phương pháp thiết kế dựa trên bài toán thiết kế và xác định phương pháp phù hợp nhất Cuối cùng, chương sẽ tổng kết lại các vấn đề liên quan đến thiết kế âm thanh số.
1.1.1 Tổng quan về về âm thanh số
1.1.1.1 Âm thanh số là gì? Âm thanh kỹ thuật số là công nghệ có thể được sử dụng để ghi chép, lưu trữ, tạo ra, thao tác, và tái tạo âm thanh bằng cách sử dụng các tín hiệu âm thanh đã được mã hóa dưới dạng số (0 và 1) Sau những tiến bộ đáng kể trong công nghệ âm thanh kỹ thuật số những năm 1970, nó dần dần thay thế công nghệ âm thanh analog trong nhiều lĩnh vực sản xuất âm thanh, ghi âm (hệ thống băng đĩa được thay thế bằng hệ thống ghi âm kỹ thuật số), kỹ thuật âm thanh và viễn thông trong năm 1990 và 2000.
Hình 1.1 biểu diễn tín hiệu âm thanh dạng Analog và digital
Microphone chuyển đổi âm thanh từ giọng ca sĩ hoặc nhạc cụ thành tín hiệu điện tương tự Sau đó, một bộ chuyển đổi analog sang số (ADC) sử dụng điều chế mã xung để biến đổi các tín hiệu tương tự thành tín hiệu số Tín hiệu kỹ thuật số này có thể được ghi lại và xử lý.
Khi tải về từ skknchat@gmail.com, người dùng có thể chỉnh sửa và thay đổi âm thanh bằng các công cụ kỹ thuật số Để nghe đoạn ghi âm qua tai nghe hoặc loa, các kỹ sư âm thanh sử dụng DAC, thiết bị chuyển đổi tín hiệu kỹ thuật số thành tín hiệu tương tự, giúp khuếch đại âm thanh và phát ra loa.
Hệ thống âm thanh kỹ thuật số mang lại khả năng nén, lưu trữ, xử lý và truyền tải âm thanh một cách dễ dàng và thuận tiện Tín hiệu âm thanh này có thể được ghi lại, chỉnh sửa và thay đổi theo nhu cầu sử dụng Đặc biệt, âm thanh kỹ thuật số cho phép tạo ra nhiều bản sao mà không lo bị giảm chất lượng.
Một tín hiệu âm thanh kỹ thuật số có thể được mã hóa để sửa chữa các lỗi có thể xảy ra trong quá trình lưu trữ hoặc truyền tải Kỹ thuật này được gọi là mã hóa sửa lỗi.
Kênh mã hoá là yếu tố quan trọng trong việc phát sóng và ghi lại các hệ thống kỹ thuật số nhằm đảm bảo độ chính xác Việc sử dụng thời gian rời rạc và tín hiệu nhị phân cho phép bộ giải mã tái tạo tín hiệu tương tự khi phát lại Một ví dụ điển hình là mã kênh 8-14 bit, thường được áp dụng trong âm thanh của Compact Disc (CD).
1.1.1.2 Ưu nhược điểm của âm thanh số
So với tín hiệu Analog thì tín hiệu số có nhiều ưu điểm sau:
Việc ghi âm bài hát giúp chúng ta lưu giữ và xử lý thông tin một cách dễ dàng Sau khi ghi âm, chúng ta có thể sửa đổi và khắc phục mọi lỗi để sản phẩm âm nhạc trở nên hoàn thiện hơn, phù hợp hơn với sở thích của người nghe.
- Việc lưu trữ âm thanh đa dạng có thẻ trên đĩa CD, máy nghe nhạc, ổ đĩa, USB hoặc một thiết bị lưu trữ kỹ thuật số nào đó.
Nén âm thanh giúp giảm kích thước tập tin, cho phép người dùng dễ dàng xem và nghe trực tiếp trên các thiết bị như điện thoại và máy tính.
- Việc sao chép thông tin dễ dàng không bị giới hạn số lần thao tác và không ảnh hưởng chất lượng âm thanh.
Việc lưu trữ âm nhạc trực tuyến giúp phân phối âm thanh trở nên dễ dàng, gọn nhẹ và tiết kiệm chi phí hơn Trước đây, âm nhạc chủ yếu được phát hành qua các bản sao vật lý như băng đĩa, nhưng giờ đây, internet đã mở ra nhiều cơ hội mới cho việc tiếp cận và chia sẻ âm nhạc.
- Âm thanh kỹ thuật số được giữ nguyên gốc.
- Âm thanh digital không bị biến dạng.
Bên cạnh những ưu điểm trên thì âm thanh số có một số nhược điểm sau:
- Âm thanh, tín hiệu dễ bị tổn thất do ở dạng số Tín hiệu âm thanh sẽ bị ảnh hưởng dù chỉ mất vài byte thôi.
- Hệ thống xử lý âm thanh digital hiện đại và phức tạp do đó tốn kém kinh phí đầu tư hơn.
2 download by : skknchat@gmail.com
1.1.2 Âm thanh số theo định dạng Mp3 và wav
Âm thanh số được chia thành ba nhóm định dạng chính: không nén (uncompressed), nén nhưng bảo toàn dữ liệu (lossless) và nén không bảo toàn dữ liệu (lossy) Nhóm không nén bao gồm các định dạng như WAV và AIFF, nhóm lossless có FLAC, APE và ALAC, trong khi nhóm lossy bao gồm Mp3, ACC và WMA Trong số nhiều định dạng âm thanh, bài viết này sẽ tập trung vào hai định dạng phổ biến nhất là Mp3 và WAV.
1.1.2.1 Âm thanh số theo định dạng Mp3 Định dạng mp3 là định dạng âm thanh phổ biến nhất để lưu trữ âm nhạc trên nền tảng máy vi tính và truyền tải âm nhạc qua Internet Tệp MP3 được tạo bởi nhóm chuyên gia hình ảnh chuyển động (MPEG) và được viết tắt từ MPEG-1 Audio Layer 3 hoặc MPEG-2 Audio Layer 3.
MP3 là định dạng tệp âm thanh sử dụng thuật toán nén để giảm kích thước tệp, cho phép một đĩa nhạc CD 600MB có thể giảm xuống còn 50MB hoặc ít hơn Bit rate phổ biến của các tệp MP3 thường dao động từ 128 Kbps đến 320 Kbps, thấp hơn nhiều so với 1411 Kbps trên CD hay định dạng PCM Tuy nhiên, các tệp nhạc MP3 vẫn duy trì chất lượng âm thanh tốt, vượt trội hơn so với các phương pháp nén trước đó Sự kết hợp này đã tạo điều kiện thuận lợi cho việc truy cập và phân phối âm nhạc trên Internet.
MP3 đã tạo ra một tên mới cho các thiết bị điện tử tiêu dùng, được gọi là máy nghe nhạc MP3 Định dạng MP3 được sử dụng phổ biến trên hầu hết các đĩa CD và DVD, trong đó DVD có khả năng lưu trữ dữ liệu khác biệt so với CD, cho phép nén dữ liệu hiệu quả hơn và chứa nhiều thông tin hơn nhờ vào cấu trúc quang học đa lớp Ngoài ra, MP3 cũng được tích hợp trong các hệ thống âm thanh nổi trên xe ô tô và các thiết bị âm thanh hiện đại như mạng máy chủ âm nhạc.
MP3 là định dạng nén âm thanh số, tối ưu hóa cấu trúc tập tin bằng cách loại bỏ dữ liệu dư thừa mà vẫn giữ nguyên thông tin Tập tin âm thanh MP3 được xây dựng dựa trên bộ mã hóa thụ cảm, dựa trên mô hình cảm nhận âm học của tai người Quá trình mã hóa MP3 chuyển đổi tín hiệu âm thanh từ định dạng PCM sang định dạng âm thanh nén MP3, sử dụng phương pháp mã hóa Huffman.
3 download by : skknchat@gmail.com
Tính Dải lọc hiệu băng đầu phân tích vào
Biến đổi cosin rời rạc MDCT
Lượng tử hóa và các hệ số tỷ lệ
Mã hóa phần thông tin
Hình 1.2 Sơ đồ khối quá trình mã hóa MP3 1.1.2.2 Âm thanh số theo định dạng wav
Sơ đồ khối của hệ thống
Mục này trình bày tổng quan về cấu trúc vận hành của mạch và chức năng của từng khối.
Từ phần mô tả bài toán thiết kế, ta có thể xây dựng được một sơ đồ khối của hệ thống gồm những khối sau:
Hình 1.4 Sơ đồ khối của hệ thống
Sau khi nhận lệnh từ khối điều khiển, khối xử lý truy suất dữ liệu từ khối lưu trữ, nơi chứa file nhạc định dạng MP3 Dữ liệu này được coi là nguồn Sau khi truy suất, khối xử lý gửi tiêu đề của file nhạc lên khối hiển thị.
6 download by : skknchat@gmail.com
Dữ liệu được truyền tải từ khối lưu trữ đến khối giải mã thông qua lập trình phần mềm và điều khiển của khối xử lý Tại đây, dữ liệu được giải nén và chuyển đổi thành tín hiệu cần thiết qua khối Earphone.
1.2.1 Chức năng của từng khối
- Khối nguồn: cấp nguồn cho toàn bộ hệ thống hoạt động
- Khối lưu trữ: Lưu trữ file có định dạng *.MP3
- Khối điều khiển: Điều khiển khối xử lý hoạt động theo mục đích sử dụng của người dùng.
Khối xử lý thiết lập liên kết với khối lưu trữ để vận chuyển thông tin file nhạc sang khối giải mã Đồng thời, nó cũng thiết lập cài đặt cho khối giải mã, tiếp nhận và xử lý tín hiệu đã nhận, sau đó đưa tín hiệu ra khối hiển thị.
- Khối hiển thị: Hiển thị thông tin mà VĐK đưa ra (tên bài hát)
Khối giải mã là thiết bị dùng để chuyển đổi file nhạc có định dạng mp3 và wave (trừ file wave, chỉ cần chuyển đổi DAC) từ tín hiệu số sang tín hiệu tương tự.
- Khối Earphone: chuyển tín hiệu điện thàn tín hiệu âm thanh.
Hình 1.5 Sơ đồ giải mã MP3 dựa trên FPGA
7 download by : skknchat@gmail.com
Phân tích một số giải pháp thiết kế
1.3.1 Xây dựng hệ nhúng sử dụng vi điều khiển cứng
Hình 1.6 Một số vi điều khiển cứng
Các vi điều khiển cứng như AT89, PIC, MSP430 hay ARM SoC (STM32) được thiết kế dựa trên công nghệ ASIC, với kiến trúc phần cứng cố định không thể thay đổi Mặc dù chúng phổ biến trong các hệ thống nhúng, nhưng cũng gặp nhiều hạn chế, đặc biệt là khó khăn trong việc nâng cấp Để thay thế, thiết bị host cần được xây dựng và lập trình lại, dẫn đến chi phí cao hơn so với việc thay thế toàn bộ thiết bị Điều này làm cho việc giải quyết sự cố trở nên phức tạp, và hệ thống nhúng cũng khó tái lập trình tại chỗ Thêm vào đó, vi điều khiển cứng chưa đáp ứng được yêu cầu về bộ nhớ lớn và tốc độ tính toán cao.
Trong thực tế hiện nay, vi điều khiển cứng được ứng dụng rộng rãi trong hầu hết các thiết bị Hầu hết các nhà sản xuất đều ưu tiên sử dụng vi điều khiển cứng cho sản phẩm của họ.
- Tính phổ biến: được sản xuất hàng loạt, đảm bảo được nhu cầu sử dụng
- Ngày càng được trang bị nhiều chức năng đáp ứng nhu cầu của nhà sản xuất Tuy nhiên việc sử dụng VĐK cứng lại bị hạn chế:
- Bộ nhớ bị hạn chế
- Do số lượng chân có hạn nên việc thực hiện điều khiển phụ thuộc vào số chân mà chip có
8 download by : skknchat@gmail.com
- Mỗi loại VĐK có đặc tính khác nhau nên không thể sử dụng thay thế cho nhau.
1.3.2 Xây dựng hệ nhúng sử dụng vi điều khiển mềm
Vi điều khiển mềm đã được nhiều hãng sản xuất FPGA phát triển và ứng dụng trong công nghệ FPGA Một số vi điều khiển mềm phổ biến bao gồm TSK3000A, MicroBlaze, Spartan, TSK51x và TSK52x, được sản xuất bởi các nhà sản xuất chip nổi tiếng như Xilin, Altium và Altera Quartus.
FPGA nói ngắn gọn là “lập trình phần cứng” hay “lập trình chip” Nó cũng là
FPGA mang lại tính linh động cao cho người dùng, cho phép phát triển các giải pháp tối ưu mà không bị ràng buộc bởi phần cứng của nhà sản xuất.
- Có khả năng tùy biến với bộ nhớ
- Có khả năng lập trình để thực hiện được chức năng của bất cứ vi điều khiển cứng nào khác
- Phát triển ngày càng mạnh mẽ, được nhiều tập đoàn lớn trên thế giới sử dụng để thiết kế điện tử - vi điện tử
- Vi điều khiển mềm hỗ trợ nhiều ngôn ngữ lập trình, dễ dàng được ứng dụng để thực hiện các chức năng từ đơn giản đến phức tạp nhất
So với các công nghệ khác như ASIC và CPLD, FPGA nổi bật với khả năng linh hoạt trong việc lập trình lại cho nhiều ứng dụng khác nhau FPGA bao gồm các khối logic nhỏ và sử dụng RAM, trong khi CPLD dựa vào các khối logic lớn và sử dụng EEPROM FPGA sử dụng bảng Lookup (LUTs) để thực hiện các chức năng logic, còn CPLD hình thành các hàm logic thông qua mạch cổng sea-of-gates Hầu hết FPGA có mạch logic mức cao như bộ cộng, bộ nhân và bộ nhớ nhúng, điều mà CPLD không có Đặc biệt, FPGA có thể được tích hợp vào SoC, cho phép người dùng linh hoạt lập trình thêm các module phụ như module giao tiếp hay mã hóa bảo mật dữ liệu.
Công nghệ mạch tích hợp bán dẫn bao gồm các thành phần quan trọng như bộ nhớ, bộ vi xử lý, ASIC, PLD, FPGA và SoC, với mối liên hệ giữa chúng được minh họa trong sơ đồ hình 1.7 dưới đây.
9 download by : skknchat@gmail.com
Hình 1.7 Quan hệ giữ các công nghệ IC[1]
Lựa chọn phương án thiết kế
Lựa chọn thiết kế hệ thống nhúng trên FPGA là giải pháp tiết kiệm chi phí và linh hoạt, phù hợp với yêu cầu của hệ thống Các nhà sản xuất chip FPGA như Xilinx và Altera đã cung cấp nhiều sản phẩm tại Việt Nam, giúp thuận tiện trong việc chọn bảng phát triển Đặc biệt, KIT phát triển NB2DSK01 được ưa chuộng cho đào tạo và nghiên cứu thiết kế hệ thống nhúng ứng dụng trong xử lý tín hiệu âm thanh và video.
Từ những đánh giá trên, em lựa chọn sử dụng công nghệ FPGA để giải quyết bài toán thiết kế máy phát nhạc định dạng MP3.
Kết luận chương
Định dạng âm thanh wav và mp3 là hai loại file khác nhau, trong đó WAV là định dạng âm thanh không nén, còn MP3 là định dạng âm thanh nén mất dữ liệu File MP3 được mã hóa theo chuẩn MPEG, giúp giảm dung lượng file nhạc mà vẫn giữ được đặc trưng của file gốc FPGA có khả năng thiết kế và lập trình hầu hết các chức năng của mạng số, đồng thời đáp ứng tốt các hệ thống yêu cầu bộ nhớ lớn và tốc độ xử lý cao, điều mà vi điều khiển cứng không thể làm Vì vậy, FPGA rất phù hợp cho các dự án SoPC và có thể ứng dụng trong thiết kế máy phát nhạc MP3.
10 download by : skknchat@gmail.com
THIẾT KẾ HỆ THỐNG NHÚNG SỬ DỤNG KIT PHÁT TRIỂN
Giới thiệu chương
Mảng cổng lập trình trường (FPGA) đang trở thành một lĩnh vực phát triển nhanh chóng trong thiết kế kỹ thuật số, thu hút sự quan tâm lớn trong chế tạo vi mạch Kit thí nghiệm Nanoboard NB2DSK0 là bộ công cụ phát triển FPGA, vi xử lý và hệ nhúng Altium Desktop, cho phép cấu hình dễ dàng với các chip khả trình giá rẻ, dung lượng cao Kit này hỗ trợ thiết kế FPGA và hoàn toàn tương thích với Altium Designer, giúp phát triển và triển khai hệ thống nhanh chóng Trong chương này, chúng tôi sẽ giới thiệu công nghệ FPGA, Kit NB2DSK01 và phần mềm Altium.
Tổng quan về FPGA và VHDL
FPGA (Field-Programmable Gate Array) là thiết bị khả trình tiên tiến nhất trong ngành công nghệ chế tạo IC, cho phép người dùng thiết kế và lập trình lại các cấu hình của mình Khác với các chip khả trình như PAL hay PLA, FPGA sử dụng công nghệ tái cấu trúc độc lập, lưu trữ cấu hình trong bộ nhớ động (thường là SRAM) và cho phép lập trình lại các kết nối logic giống như phần mềm máy tính FPGA board hay FPGA KIT là bo mạch in có gắn chip FPGA cùng với các thành phần khác như cổng giao tiếp, màn hình và nút bấm, cho phép nạp cấu hình từ máy tính và kết nối với các thiết bị ngoại vi để thử nghiệm.
11 download by : skknchat@gmail.com
Hiện nay, công nghệ FPGA đang được phát triển mạnh mẽ bởi nhiều công ty bán dẫn, nổi bật nhất là Xilinx với các dòng sản phẩm như Virtex 3, 4, 5, 6 và Spartan, cùng với Altera với các dòng Stratix, Cyclone, Arria Ngoài ra, còn có các sản phẩm từ Lattice Semiconductor Company, Actel, Achronix, và BlueSilicon Technology Mặc dù được cung cấp bởi nhiều hãng khác nhau, FPGA vẫn có cấu trúc tổng thể chung.
- Hệ thống liên kết mạch
- Các phần tử tích hợp sẵn
Hình 2.8 Cấu trúc tổng thể của một FPGA
FPGA là một loại mạch tích hợp với nhiều ô logic (từ 64 đến hơn 10.000 ô) có chức năng độc lập, kết nối qua ma trận đường dẫn và chuyển mạch khả trình Người thiết kế sử dụng các đặc trưng logic của từng ô và điều chỉnh các chuyển mạch trong ma trận để xây dựng mạch logic Cấu trúc này cho phép kết hợp các khối cơ bản để tạo ra các thiết kế phức tạp, đáp ứng nhu cầu ứng dụng đa dạng.
Mô hình tổng quát của FPGA bao gồm một chuỗi các khối logic có khả năng kết nối với nhau thông qua các nguồn kết nối chung Các nguồn kết nối này (segment) đóng vai trò quan trọng trong việc thiết lập mối liên hệ giữa các khối logic.
Các kết nối có chiều dài khác nhau và chứa các chuyển mạch lập trình được sử dụng để kết nối các khối logic cấu hình (configurable logic blocks - CLB) Các khối CLB cung cấp các phần tử chức năng dựa trên cấu trúc logic Ngoài ra, các khối vào ra (I/O blocks) tạo ra giao diện giữa các chân kết nối và đường tín hiệu bên trong Tài nguyên khối kết nối khả trình cung cấp các bộ phận truyền dẫn cho đầu vào ra của các CLB và IOB trong mạch.
Vậy cấu trúc FPGA gồm 3 phần tử chính là:
- Các khối logic cấu hình (logic block)
- Các khối vào/ra (IOB)
Các loại FPGA khác nhau có các khối logic và phần tử tích hợp riêng biệt, như dòng Virtex 4,5 của Xilinx với nhân xử lý PowerPC cho ứng dụng SoC, hay Atmel FPSLIC với nhân ARV Đối với các ứng dụng xử lý tín hiệu số DSP, FPGA được tích hợp các DSP slices, bộ nhân cộng tốc độ cao thực hiện hàm A*B+C, với dòng Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
Các khối logic cấu hình (logic block):
Hình 2.9 Khối Logic Bloc của FPGA
Cấu trúc và nội dung của khối logic được xác định theo kiến trúc của nó, với nhiều thiết kế khác nhau như cổng AND 2 ngõ vào, bộ dồn kênh (Multiplexer) và bảng tìm kiếm (Look-up Table) Khối logic cũng có thể bao gồm các flip-flop, giúp thực hiện các chức năng tuần tự.
Cấu trúc tổng thể của mảng LUT bao gồm 4 đầu vào chính và 2 đầu vào bổ sung từ các khối logic xung quanh, nâng tổng số đầu vào lên 6 chân Thiết kế này nhằm mục đích tăng tốc độ xử lý cho các bộ số học logic.
Các khối vào/ra (IOB)
13 download by : skknchat@gmail.com
Hình 2.10 Khối vào/ra của XC4000X
FPGA đã hỗ trợ rất nhiều cho các chuẩn ngoại vi Tương thích với mức điện áp TTL, CMOS, LVTTL…tuỳ theo từng họ FPGA
Kết nối đa năng Kết nối dài Kết nối trực tiếp
SW CLB SW CLB SW
Hình 2.11 Các kết nối trong FPGA
Mạng liên kết trong FPGA bao gồm các đường kết nối theo chiều ngang và chiều dọc, được phân chia thành các nhóm khác nhau tùy thuộc vào loại FPGA Chẳng hạn, trong dòng sản phẩm XC4000 của Xilinx, có ba loại kết nối chính: ngắn, dài và rất dài Các đường kết nối này được liên kết thông qua các khối chuyển mạch lập trình được, mỗi khối chứa nhiều nút chuyển lập trình, cho phép tạo ra các dạng liên kết phức tạp khác nhau.
- Dựa trên nguyên tắc chập 2 điểm nằm ở 2 lưới dẫn khác nhau, (Antifuse
14 download by : skknchat@gmail.com
- Kết nối trực tiếp: liên kết các CLB hoặc IOB kề nhau.
- Kết nối dài: bỏ qua các SW.
- Kết nối đa năng gồm các đoạn nằm ngang và các đoạn nằm dọc, nối các SW và IOB.
FPGA, với khả năng tái cấu trúc linh hoạt và tài nguyên logic phong phú, có thể áp dụng cho nhiều bài toán xử lý tín hiệu số lớn mà các công nghệ trước đây không thể thực hiện hoặc thực hiện với tốc độ và hiệu suất kém.
- Các ứng dụng chung về xử lý số như lọc tín hiệu, tìm kiếm, phân tích, giải mã, điều chế tín hiệu, trộn tín hiệu…
Các ứng dụng trong lĩnh vực mã hóa và giải mã giọng nói, nhận dạng giọng nói, và tổng hợp giọng nói ngày càng trở nên quan trọng Xử lý tín hiệu âm thanh bao gồm các kỹ thuật như lọc nhiễu, trộn, mã hóa, giải mã, nén và tổng hợp âm thanh, giúp cải thiện chất lượng và hiệu suất trong giao tiếp và truyền tải thông tin.
- Ứng dụng trong xử lý ảnh số, nén và giải nén, các thao tác biến đổi, soạn thảo, nhận dạng ảnh số…
Ứng dụng của công nghệ trong các hệ thống thông tin rất đa dạng, bao gồm các hệ thống Voice IP và Voice mail Ngoài ra, nó còn được sử dụng trong modem, điện thoại di động, cũng như trong quá trình mã hóa và giải mã truyền thông qua mạng LAN và WIFI Công nghệ này cũng đóng vai trò quan trọng trong lĩnh vực truyền hình và radio.
- Ứng dụng trong điều khiển các thiết bị điện tử: ổ cứng, máy in, máy công nghiệp , dẫn đường, định vị, robots.
Ứng dụng của FPGA rất đa dạng, bao gồm xử lý tín hiệu số (DSP), hệ thống hàng không và vũ trụ, quốc phòng, thiết kế mẫu ASIC (ASIC prototyping), hệ thống điều khiển trực quan, phân tích nhận dạng hình ảnh, nhận dạng tiếng nói, mật mã học và mô hình phần cứng máy tính.
FPGA với tính linh động cao trong thiết kế giúp giải quyết những bài toán phức tạp mà trước đây chỉ có thể thực hiện bằng 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 các bài toán yêu cầu khối lượng tính toán lớn và rất phù hợp cho các hệ thống hoạt động theo thời gian thực.
FPGA thường được sử dụng trong các hệ thống SDR (Software Defined Radio) nhờ vào khả năng tái cấu hình linh hoạt, cho phép thay đổi nhanh chóng các chức năng của thiết bị.
15 download by : skknchat@gmail.com
2.2.2.1 Giới thiệu chung về VHDL
Giới thiệu về KIT phát triển NB2DSK01 và phần mềm Altium Designer 17
2.3.1 KIT Phát triển NB2DSK01
Bo mạch NanoBoard NB2DSK01 Altium là một nền tảng phần cứng tích hợp nhiều chức năng cho thiết kế kỹ thuật số, cho phép thực hiện, tương tác và gỡ lỗi trên một bo mạch duy nhất Đây là công cụ lập trình và mô phỏng hiệu quả với chi phí thấp, mạnh mẽ trong nhiều chức năng Nhờ những ưu điểm này, NanoBoard NB2DSK01 Altium đã trở thành lựa chọn phổ biến trong các phòng thí nghiệm, trung tâm phát triển sản phẩm số và là mô-đun thí nghiệm cho sinh viên tại các trường đại học.
Một số điểm nhấn kiến trúc của Desktop NanoBoard NB2DSK01 bao gồm:
Bộ công cụ phát triển Altium Desktop Nanoboard NB2 cho FPGA, vi xử lý và hệ nhúng cho phép người dùng cấu hình phần cứng linh hoạt, đáp ứng nhu cầu và mục đích thiết kế đa dạng.
- Hỗ trợ các chức năng thiết kế FPGA và hoàn toàn đồng bộ với hệ thống thiết kế điên tử hợp nhất Altium Designer.
17 download by : skknchat@gmail.com
Hình 2.12 Hình ảnh NanoBoard NB2DSK01
- Tự động nhận dạng và cấu hình các bo mạch FPGA con và các bo mạch ngoại vi.
- Các cổng kết nối Plug –in cho phép kết nối các thiết bị với bo mạch một cách đơn giản và nhanh chóng.
- Trang bị chuẩn kết nối USB 2.0 với máy tính, cho phép tải nhanh hơn tiết kiệm thời gian gỡ lỗi.
- Built-in, loa chất lượng cao cho chất lượng âm thanh tốt.
- Trang bị màn hình màu cảm ứng TFT đem lại khả năng tương tác hiệu quả.
- Altium “NanoTalk” - giao diện máy tính song song, giao diện USB 2.0 PC
- Kết nối NanoTalk Master và Slave 10 chiều
Giải pháp của chúng tôi hỗ trợ đa dạng các FPGA và vi xử lý từ nhiều nhà sản xuất chip khác nhau, nhờ vào việc sử dụng các daughter board có khả năng tháo rời và lắp đặt dễ dàng.
- Tự động nhận daughter board và các bo mạch ngoại vi, cấu hình plug-and-play.
- Đường truyền kết nối với máy tính tốc độ cao qua cổng USB 2.0 cho phép nạp và debug nhanh hơn.
Bộ điều khiển NanoTalk cho phép quản lý thời gian thực trong truyền thông riêng với Altium Designer, bo mạch và firmware của NanoBoard Thiết bị sử dụng bộ điều khiển Xilinx Spartan-3 (XC3S1500-4FG676C) cùng với PROM cấu hình Flash và hỗ trợ chuẩn JTAG.
- Tích hợp màn hình cảm ứng màu TFT, tương tác trực tiếp với bộ điều khiển
18 download by : skknchat@gmail.com
Hình 2.13 Sơ đồ khối của KIT NB2DSK01[4]
19 download by : skknchat@gmail.com
- Đầu cắm đôi User Board hỗ trọ JTAG để tương tác và phát triển với các bo mạch khác.
- Đầu cắm Master-Slave để phát triển chuỗi NanoBoard, cho phép phát triển hệ thống đa FPGA.
- Đồng hồ xung nhịp có thể điều chỉnh, từ 6 đến 200 MHz, cho các FPGA.
- Đồng hồ thời gian thực SPI Real-Time Clock với pin 3V back-up.
Hệ âm thanh analog Stereo được trang bị bộ khuếch đại chất lượng cao và mixer tích hợp, cung cấp âm thanh mạnh mẽ với công suất 2W Thiết bị này có jack cắm đầu vào 3,5 mm cho phép kiểm tra và điều chỉnh âm lượng DC, cùng với các cổng vào/ra và loa để kết nối trực tiếp với loa Stereo Desktop và NB2DSK-SPK01.
- Bốn kênh ADC 8 bit và DAC 10 bit, tương thích I2C.
- Trang bị đầu đọc thẻ SD (Secure Digital), thẻ nhớ 512MB SD – hỗ trợ thêm các cổng vào ra, khả năng nạp vào nhiều file để sử dụng.
- Nguồn – 5V DC đôi có thể nối cho một chuỗi các Nanoboard Các điểm test trên board, 4 điểm đất.
- Bộ nhớ onboard cho bộ điều khiển NanoTalk – bao gồm hai SRAM 256K x 16chung bus, hai SDRAM 256M (16M x 16) chung bus, một bộ nhớ Flash 3.0V 256M (32M x 16) chung bus, hai SRAM 256K x 16 đôc lâp.
- Một số giao tiếp truyền thông chuẩn: nối tiếp RS-232, CAN, PS/2 mini-DIN.
- Các đèn LED va công tắc đa mục đích.
- Cac nút ấn kiểu PDA, có thể định nghĩa sử dụng như các đầu vào chức năng trong thiết kế.
- Nút Home/ Reset – Home cho phép firmware điều khiển TFT panel; Reset sẽ khởi động lại chức năng Nanoboard.
- Hệ cảm biến công suất cho phép giám sát công suất tiêu thụ của hệ thống va của chip.
- Bộ nhớ nhận dạng bo mạch (Board ID) – Hệ 1-Wire® ID cho phép nhận dạng các bo mạch FPGA con và các bo mạch ngoại vi.
- Trang bị 1 thiết bị nhớ được sử dụng để lưu trữ bảng ID và thông tin liên quan
- Trang bị 20 chân kết nối I/O
Altium hiện nay là phần mềm vẽ mạch điện tử phổ biến và mạnh mẽ tại Việt Nam Phần mềm này không chỉ hỗ trợ hiệu quả trong việc thiết kế mạch mà còn giúp quản lý mạch và trích xuất file thống kê linh kiện một cách thuận tiện.
20 download by : skknchat@gmail.com
Hình 2.14 Giao diện phần mềm Altium Designer
Altium Designer là phần mềm thiết kế mạch tự động, cung cấp một môi trường thiết kế điện tử đồng nhất Nó tích hợp đầy đủ các chức năng từ thiết kế nguyên lý, thiết kế mạch in PCB cho đến lập trình hệ thống nhúng và FPGA.
Các điểm đặc trưng của Altium Designer:
- Giao diện thiết kế, quản lý và chỉnh sửa thân thiện, dễ dàng biên dịch, quản lý file, quản lý phiên bản cho các tài liệu thiết kế.
Hệ thống cung cấp hỗ trợ mạnh mẽ cho thiết kế tự động và đi dây tự động bằng thuật toán tối ưu, đồng thời phân tích lắp ráp linh kiện hiệu quả Nó cũng giúp tìm kiếm các giải pháp thiết kế mới hoặc chỉnh sửa mạch, linh kiện và netlist đã có sẵn theo các tham số cập nhật.
- Mở, xem và in các file thiết kế mạch dễ dàng với đầy đủ các thông tin linh kiện, netlist, dữ liệu bản vẽ, kích thước, số lượng…
- Hệ thống các thư viện linh kiện phong phú, chi tiết và hoàn chỉnh bao gồm tất cả các linh kiện nhúng, số, tương tự…
Đặt và điều chỉnh các đối tượng trên các lớp cơ khí là bước quan trọng trong quy trình thiết kế PCB Việc xác định các luật thiết kế giúp đảm bảo tính chính xác và hiệu quả của mạch điện Tùy chỉnh các lớp mạch in cho phép tối ưu hóa không gian và hiệu suất Quá trình chuyển đổi từ sơ đồ nguyên lý (schematic) sang PCB cần được thực hiện cẩn thận để đảm bảo tính tương thích Cuối cùng, việc đặt vị trí linh kiện trên PCB cần được thực hiện một cách hợp lý để nâng cao hiệu suất hoạt động của sản phẩm.
- Mô phỏng mạch PCB 3D, đem lại hình ảnh mạch điện trung thực trong không gian
3 chiều, hỗ trợ MCAD-ECAD, liên kết trực tiếp với mô hình STEP, kiểm tra khoảng cách cách điện, cấu hình cho cả 2D và 3D
- Hỗ trợ thiết kế PCB sang FPGA và ngược lại.
Altium Designer là một ứng dụng tích hợp tất cả công nghệ và chức năng cần thiết cho việc phát triển sản phẩm điện tử hoàn chỉnh, bao gồm thiết kế hệ thống bo mạch và FPGA, phát triển phần mềm nhúng cho FPGA và các bộ xử lý rời rạc, cùng với bố trí mạch in (PCB) Phần mềm này giúp thống nhất toàn bộ quy trình và cho phép người dùng quản lý mọi khía cạnh của quá trình phát triển hệ thống trong một môi trường duy nhất.
Altium Designer cung cấp các loại board như NanoBoard NB2 và NanoBoard 3000, giúp kỹ sư dễ dàng thiết kế hệ thống nhúng dựa trên FPGA Điều này cho phép họ thực hiện thiết kế và thử nghiệm thực tế trên nền tảng FPGA, từ đó rút ngắn thời gian phát triển sản phẩm.
Quy trình thiết kế hệ nhúng sử dụng KIT phát triển NB2DSK01 và phần mềm Altium Designer
- Bước 3: Tạo file nguyên lý từ file Openbus, thêm các thành phần vào/ra trên KIT NB2SDK01
- Bước 4: Tạo các ràng buộc cho project
- Bước 5: Tạo project nhúng, thiết lập các đặc tính cho project, đưa project vào project FPGA
- Bước 6: Tạo file Software platform và file chương trình
- Bước 7: Nạp vào KIT NB2SDK01
Thiết kế hệ SoPC đơn giản thực hiện hiển thị chữ Hello trên màn hình TFF.
Hình 2.15 Các thao tác tạo một Poject FPGA mới
22 download by : skknchat@gmail.com
Hình 2.16 Thao tác tạo file OpenBus và không gian làm việc của OpenBus
Hình 2.17 Hoàn thành kết nối cho OpenBus
- Bước 3: tạo file mạch nguyên lý
23 download by : skknchat@gmail.com
Hình 2.18 Thao tác tạo file Schematic
Hình 2.19 Sơ đồ nguyên lý của dự án “Hello word”
- Bước 4: Tạo các ràng buộc cho FPGA project
24 download by : skknchat@gmail.com
Hình 2.20 Thao tác tạo file constraint và ràng buộc cho FPGA project
Hình 2.21 Thao tác tạo file nhúng Embeded
25 download by : skknchat@gmail.com
Click vào Compile => Synthetize => Build => Program FPGA
Hình 2.24 Màn hình sau khi nạp kit thành công
Bài viết này cung cấp thêm ví dụ về thiết kế mạch logic tổ hợp và mạch logic tuần tự, với thông tin chi tiết được trình bày trong phụ lục A và phụ lục B.
Kết luận chương
Bài viết đã cung cấp cái nhìn tổng quan về công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL một cách đầy đủ KIT phát triển NB2DSK01 và phần mềm Altium Designer là những công cụ phổ biến nhất hiện nay hỗ trợ cho việc thực hiện các dự án FPGA Để minh chứng cho điều này, một ví dụ nhỏ đã được thực hiện, làm cơ sở cho việc lựa chọn giải pháp triển khai hệ thống nhúng trên FPGA, sẽ được trình bày trong chương sau.
26 download by : skknchat@gmail.com
ỨNG DỤNG THỰC HIỆN BÀI TOÁN MÁY PHÁT NHẠC SỐ SỬ DỤNG ALTIUM DESIGNER VÀ KIT NB2DSK01
Đặt vấn đề
Mảng cổng lập trình trường (FPGA) đang trở thành một lĩnh vực phát triển nhanh chóng trong thiết kế kỹ thuật số hiện nay Dự án này nhằm ứng dụng kiến thức về FPGA để xây dựng một máy nghe nhạc MP3 sử dụng bo mạch Altium NB2DSK01 Để thực hiện, ngôn ngữ mô tả phần cứng VHDL sẽ được sử dụng cùng với các thiết bị ngoại vi, bao gồm audio codec trong PB01 âm thanh nổi và bộ điều khiển màn hình TFT.
Thiết kế dựa trên NB2 thông qua triển khai bộ giải mã MP3, để phát lại các tệp
Bài viết mô tả cách phát nhạc MP3 từ thẻ SD thông qua bảng mạch PB02 của Altium's Mass Storage, được kết nối với bo mạch chủ NB2 Người dùng chỉ cần cắm thẻ SD chứa tệp MP3 vào đầu đọc thẻ SD của PB02, và danh sách các tệp sẽ hiển thị trên màn hình TFT Để phát nhạc, chỉ cần chạm vào tệp mong muốn, âm thanh có thể được nghe qua loa stereo trên bo mạch NB2DSK-SPK01 hoặc qua bộ thu âm thanh bên ngoài kết nối với giắc LINE OUT của NB2 Thiết kế bao gồm các thành phần như TSK3000, bộ điều khiển TFT, MP3, thẻ SD, SPI, I2S, TSPENDOWN và SRAM, đồng thời thể hiện việc sử dụng ngữ cảnh âm thanh, trình điều khiển bộ giải mã MP3, ngữ cảnh hệ thống lưu trữ, GUI và I/O cho đầu ra nối tiếp qua thiết bị đầu cuối.
Các bước thực hiện
3.2.1 Tạo dựng một Project FPGA mới
Mỗi thiết kế trong môi trường thiết kế Altium được lưu trữ dưới dạng một tập tin dự án Đối với thiết kế FPGA, cần tạo một dự án FPGA mới với định dạng tập tin * PrjFpg Tài liệu dự án là tập tin mã ASCII chứa thông tin quan trọng như tài liệu liên quan, cài đặt đầu ra, cài đặt trình biên dịch và thiết lập kiểm tra lỗi.
- Từ File menu, chọn New ằ Design Workspace để tạo khoảng trống làm việc.
- Từ File menu, chọn New ằ Project ằ FPGA project để tạp một project FPGA mới.
- Project mới lấy tên là "FPGA_Project1.PrjFpg" được thêm vào bảng Project.
Để lưu dự án, hãy nhấp chuột phải vào tên Project (FPGA_Project1.PrjFpg) trong bảng Projects và chọn lệnh Save Project Tiến hành lưu dự án với tên MP3_Player.PrjFpg tại một vị trí trên máy tính trong thư mục mới có tên MP3 player.
27 download by : skknchat@gmail.com
Bước tiếp theo trong quy trình thiết kế FPGA là bổ sung các tài liệu nguồn cần thiết Mặc dù thiết kế sẽ được thực hiện trong OpenBus, mỗi dự án FPGA đều yêu cầu một tài liệu sơ đồ tổng quát Vì vậy, cần thêm một tài liệu OpenBus mới và một sơ đồ mới cho dự án này.
- Từ File menu, chọn New ằ Schematic để tạo tài tạo tài liệu Schematic mới
A new schematic document has been added to the Projects table, named "Sheet1.SchDoc." This document represents a component of the FPGA data Please save this document as "Sheet1.SchDoc" in the main Project directory.
Để thêm một tài liệu OpenBus mới, bạn hãy nhấp chuột phải vào mục dự án FPGA trong bảng dự án và chọn lệnh "Add New to Project" > "OpenBus System Document" Một tài liệu OpenBus trống sẽ được mở ra trong cửa sổ thiết kế chính, tương tự như các tài liệu khác.
- Lưu tài liệu này với tên MP3_OB.OpenBus, trong cùng thư mục mẹ của Project.
Dự án chứa các yếu tố sẽ được hiển thị dưới dạng biến đổi trong bảng điều khiển dự án Để lưu lại, bạn chỉ cần nhấp chuột phải vào tên của dự án và chọn "Lưu Dự Án".
3.2.2 Xây dựng kiến trúc theo OpenBus
OpenBus là một công cụ mới giúp thiết kế FPGA ở cấp hệ thống một cách hiệu quả hơn Với giao diện nhẹ nhàng, OpenBus giảm thiểu sự phức tạp trong việc triển khai, cho phép người dùng tập trung vào các hệ thống cấp cao và kết nối các thành phần chính Tất cả các thành phần cần thiết đều có trong OpenBus Palette, có thể truy cập bằng cách nhấp vào bảng điều khiển OpenBus ở góc dưới bên phải của Tùy chỉnh chính và chọn OpenBus Palette từ menu popup.
Hầu hết các thành phần trong OpenBus Palette tương ứng trực tiếp với các thành phần tương tự có trong thư viện FPGA Peripherals và FPGA Processor, được sử dụng để thiết kế sơ đồ FPGA cơ bản.
Trong không gian làm việc của OpenBus, bạn có thể nhấp chuột vào biểu tượng OpenBus ở góc dưới bên phải màn hình để truy cập OpenBus palette Bảng này chứa tất cả các thành phần của OpenBus, cho phép bạn lựa chọn những thành phần cần thiết cho công việc của mình.
Bảng dưới đây xác định các thành phần OpenBus theo yêu cầu thiết kế.
28 download by : skknchat@gmail.com
Bảng 3.1 Các thành phần OpenBus
Ký hiệu Tên thành phần Miêu tả Số lượng
TSK3000A TSK3000A 32-Bit, bộ xử lý
TFT Màn hình TFT trên NB2DSK01 1
Giao diện chủ SPI cho phép bộ xử lý máy chủ giao tiếp hiệu quả với các thiết bị ngoại vi SPI khách bên ngoài của thiết bị FPGA vật lý, như các Audio CODEC trong PB01.
Chip giải mã tệp tin âm thanh MP3 Decoder khuôn dạng MP3 có sẵn trên 1
Công cụ Wishbone Terminal 1 là một giải pháp hiệu quả cho việc gỡ lỗi bộ xử lý, cung cấp giao diện điều khiển IO Việc đọc và ghi dữ liệu được thực hiện thông qua JTAG, cho phép nhập và hiển thị thông tin văn bản dễ dàng trên bảng điều khiển công.
29 download by : skknchat@gmail.com cụ liên quan.
Cung cấp một giao diện đơn SRAM giản giữa một bộ xử lý 32-bit và Controller SRAM tĩnh không đồng bộ 1
SD Card Khe cắm thẻ nhớ SD trên
TSPENDOWN TSPEN trên KIT NB2DSK01 1
Liên kết, là phương tiện để truy Interconnect cập vào một hoặc nhiều thiết bị khách trên một giao diện 2 Wishbone đơn.
Vi điều khiển TSK3000A là bộ xử lý trung tâm tích hợp trong KIT NB2DSK01, nổi bật với thiết kế gọn nhẹ Nó bao gồm một bộ thiết bị ngoại vi rõ ràng, với các thành phần như phần cứng nhân/phân chia, đồng hồ bên trong, bộ điều khiển gián đoạn, bộ điều khiển bộ nhớ và logic gỡ lỗi JTAG.
TSK3000A là một lõi bộ xử lý mềm có khả năng cấu hình lại, yêu cầu người dùng chỉ định một số thông số quan trọng trước khi sử dụng, bao gồm kích thước và các thông số kỹ thuật khác.
Để cấu hình bộ xử lý, cần xem xét kích thước bộ nhớ xử lý nội bộ, việc sử dụng phần cứng bộ nhân/chia, sự hiện diện của hệ thống gỡ lỗi trên chip và cách quản lý các điểm dừng khi thực hiện cài đặt lại.
- Kích chuột phải vào thành phần MCU và chọn Configure MCU (TSK3000A) từ menu chuột phải.
- Trong hộp thoại Configure (32-bit Processors):
• Thiết lập Internal Processor Memory để 32 K Bytes (8K x 32-Bit Words)
Đặt Multiply/Divide Unit (MDU) để Hardware MDU
Đặt On-Chip Debug System để Include JTAG-Based On-Chip Debug System
• Đặt tùy chọn cuối cùng để Disable Breakpoints on Hard Reset
- Nhấn OK để lưu các thay đổi.
You may encounter an error message stating, "2 Nexus JTAG Parts Found but no NEXUS_JTAG_CONNECTOR was found on the top sheet." This notification can be disregarded if the top-level schematic is still incomplete.
Một số kết quả đạt dược
Xây dựng thành công việc kết nối Altium Designer với Kit FPGA NB2DSK01 cho phép sử dụng thẻ SD làm đầu vào và xuất âm thanh định dạng MP3 và Wav từ FPGA.
- Tạo một dự án FPGA trong Altium Designer
38 download by : skknchat@gmail.com
- Sử dụng hệ thống phân cấp thiết kế trong một dự án FPGA
Thiết kế FPGA dựa trên OpenBus bao gồm việc tạo nguồn, bố trí các thành phần, kết nối chúng với nhau và thiết lập kết nối với các thiết bị ngoại vi trên Desktop NanoBoard.
Dưới đây là một số hình ảnh kết quả trong quá trình chạy ứng dụng:
Sau khi đã thực hiện xong các bước ta nạp chương trình cho chip trắng của KIT FPGA NB2DSK01
Hình 3.29 Hình ảnh KIT đã được nạp chương trình
Hình 3.30 Tên các bài hát được hiển thị lên màn hình
39 download by : skknchat@gmail.com
Sau khi nạp chương trình, file âm thanh đọc từ thẻ nhớ hiển thị trên màn hình và có thể phát âm thanh ra loa.
Kết luận chương
Thông qua phân tích bài toán thiết kế, chúng ta đã xác định các bước cần thiết để phát triển một hệ thống nhúng sử dụng công nghệ FPGA, bao gồm cả công cụ hỗ trợ phần cứng và phần mềm Hai yếu tố quan trọng cho sự thành công của hệ thống nhúng là xây dựng phần cứng và phần mềm, đồng thời phải liên kết chúng một cách chính xác.
40 download by : skknchat@gmail.com
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận chung
Qua thời gian tìm hiểu và thực hiện đề tài, em đã đạt được một số kết quả sau:
- Hiểu hơn về chuẩn gia tiếp SPI, I2S.
- Hiểu rõ kiến trúc của Board NB2DSK01 và cách thức thực hiện một dự án nhúng trên KITNB2DSK01.
- Vận dụng kiến thức được học về FPGA và ngôn ngữ lập trình để hoàn thành đề tài được giao.
Kết quả thực nghiệm cho thấy phần mềm Altium Designer kết hợp với Kit FPGA NB2DSK01 hiệu quả trong việc xây dựng hệ thống giải mã âm thanh số mp3 và wav, thiết kế trên nền FPGA, cho phép tích hợp mạnh mẽ với các hệ thống ứng dụng khác.
- Tốc độ thực nhanh, thao tác đơn giản.
- Có thể tùy chỉnh được các thiết bị, trạng thái và các chế độ làm việc.
- Ứng dụng hoạt động ổn định và có độ chính xác cao.
Trong quá trình nghiên cứu, không thể tránh khỏi những sai sót, vì vậy rất mong nhận được ý kiến đóng góp từ các thầy cô để cải thiện độ chính xác của kết quả nghiên cứu.
Bài toán này mở ra cơ hội nghiên cứu và phát triển khả năng điều khiển các kết nối I/O thông qua GPIO Chúng ta cũng có thể khám phá thêm về việc phát hình ảnh, cho phép đồng thời phát nhạc và hiển thị hình ảnh, video một cách hiệu quả.
Nghiên cứu để tạo ra các thiết bị có thể tích hợp nhiều chức năng và tối ưu hơn về mặt kích thước.
41 download by : skknchat@gmail.com