1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ án môn học THIẾT kế MẠCH TÍCH hợp số thiết kế máy phát nhạc MP3, WAV sử dụng KIT phát triển NB2DSK01 và phần mềm hỗ trợ altium designer

81 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế máy phát nhạc MP3, WAV sử dụng KIT phát triển NB2DSK01 và phần mềm hỗ trợ Altium Designer
Tác giả Nguyễn Thị Uyên
Người hướng dẫn T.S Nguyễn Phương Huy
Trường học Trường Đại Học Kỹ Thuật Công Nghiệp
Chuyên ngành Kỹ thuật Điện tử
Thể loại Đồ án môn học
Năm xuất bản 2021
Thành phố Thái Nguyên
Định dạng
Số trang 81
Dung lượng 2,39 MB

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

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN BÀI TOÁN THIẾT KẾ MÁY PHÁT NHẠC SỐ (14)
    • 1.1 Giới thiệu chương (14)
      • 1.1.1 Tổng quan về về âm thanh số (14)
      • 1.1.2 Âm thanh số theo định dạng .Mp3 và .wav (16)
      • 1.1.3 Bài toán thiết kế máy phát nhạc số định dạng mp3 (18)
    • 1.2 Sơ đồ khối của hệ thống (19)
      • 1.2.1 Chức năng của từng khối (20)
      • 1.2.2 Lưu đồ giải mã (20)
    • 1.3 Phân tích một số giải pháp thiết kế (21)
      • 1.3.1 Xây dựng hệ nhúng sử dụng vi điều khiển cứng (21)
      • 1.3.2 Xây dựng hệ nhúng sử dụng vi điều khiển mềm (22)
    • 1.4 Lựa chọn phương án thiết kế (23)
    • 1.5 Kết luận chương (23)
  • CHƯƠNG 2 THIẾT KẾ HỆ THỐNG NHÚNG SỬ DỤNG KIT PHÁT TRIỂN (24)
    • 2.1 Giới thiệu chương (24)
    • 2.2 Tổng quan về FPGA và VHDL (24)
      • 2.2.1 Tổng quan về FPGA (24)
      • 2.2.2 Tổng quan về VHDL (29)
    • 2.3 Giới thiệu về KIT phát triển NB2DSK01 và phần mềm Altium Designer 17 (30)
      • 2.3.1 KIT Phát triển NB2DSK01 (30)
      • 2.3.2 Phần mềm Altium Designer (33)
    • 2.4 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 (35)
      • 2.4.1 Các bước thực hiện (35)
      • 2.4.2 Ví dụ minh họa (35)
    • 2.5 Kết luận chương (39)
  • CHƯƠNG 3 Ứ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 (40)
    • 3.1 Đặt vấn đề (40)
    • 3.2 Các bước thực hiện (40)
      • 3.2.1 Tạo dựng một Project FPGA mới (40)
      • 3.2.2 Xây dựng kiến trúc theo OpenBus (41)
      • 3.2.3 Xây dựng mạch nguyên lí (0)
      • 3.2.4 Xây dựng hệ nhúng (49)
    • 3.3 Một số kết quả đạt dược (52)
    • 3.4 Kết luận chương (54)
  • TÀI LIỆU THAM KHẢO (56)
    • A.1 Mô tả bài toán (0)
    • A.2 Các bước thực hiện (57)
    • A.3 Đoạn mã VHDL (65)
    • B.1 Mô tả bài toán (67)
    • B.2 Các bước thực hiện (67)
    • B.3 Đoạn mã VHDL (69)

Nội dung

DANH MỤC CÁC TỪ VIẾT TẮTTẮT 1 ASIC Application- Specific IntegratedCircuit Mạch tích hợp ứng dụng 3 ADC Analog Digital Converter Bộ chuyển đổi tương tự sang số 4 CPLD Complex Programmabl

TỔNG QUAN BÀI TOÁN THIẾT KẾ MÁY PHÁT NHẠC SỐ

Giới thiệu chương

Ngày nay chúng ta nghe rất nhiều đến thuật ngữ âm thanh kỹ thuật số, nhưng vẫn còn nhiều người chưa biết âm thanh kỹ thuật số là gì và nó khác gì với âm thanh analog Bài viết này cung cấp một cái nhìn tổng quan về âm thanh số, giải thích âm thanh số là gì và giới thiệu các định dạng âm thanh số phổ biến, đồng thời phân tích ưu nhược điểm của từng định dạng để người đọc hiểu cách lưu trữ và xử lý dữ liệu âm thanh Từ bài toán thiết kế, chúng ta đi phân tích một số phương pháp thiết kế âm thanh số và đề xuất phương pháp thiết kế phù hợp nhất cho các mục tiêu chất lượng âm thanh và hiệu quả truyền tải dữ liệu Phần cuối chương sẽ tổng kết lại bài toán thiết kế và nhấn mạnh vai trò của âm thanh số trong các ứng dụng thực tế, từ sản xuất âm nhạc đến nghe trên di động và hệ thống âm thanh chuyên dụng.

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.

Một microphone chuyển đổi âm thanh của giọng hát hoặc nhạc cụ thành tín hiệu điện tương tự Bộ chuyển đổi từ analog sang digital (ADC) mã hóa tín hiệu này bằng điều chế xung và cho phép chỉnh sửa, xử lý bằng các công cụ âm thanh kỹ thuật số Khi nghe lại bằng tai nghe hoặc loa hoặc phát một tập tin âm thanh số, bộ giải mã từ digital sang analog (DAC) thực hiện quá trình ngược lại, chuyển đổi tín hiệu số thành tín hiệu tương tự và các mạch khuếch đại cùng loa tái tạo âm thanh sống động.

Hệ thống âm thanh kỹ thuật số cho phép nén, lưu trữ, xử lý và truyền tải âm thanh một cách dễ dàng và hiệu quả Tín hiệu âm thanh có thể được ghi lại, chỉnh sửa và biến đổi để phục vụ nhiều mục đích sản xuất và phát hành Nhờ công nghệ số, người dùng có thể sao chép nhiều bản mà không lo giảm chất lượng, đảm bảo sự nhất quán và độ trung thực của âm thanh ở mọi bản sao.

Một tín hiệu âm thanh kỹ thuật số có thể được mã hóa cho sửa chữa bất kỳ lỗi nào có thể xảy ra trong lưu trữ hoặc truyền tải các tín hiệu Kỹ thuật này được gọi là

"Kênh mã hoá", là điều cần thiết để phát sóng hoặc các hệ thống kỹ thuật số ghi lại để duy trì độ chính xác Thời gian rời rạc và mức tín hiệu nhị phân cho phép một bộ giải mã để tái tạo lại tín hiệu tương tự khi phát lại 8-14 bit điều chế là một mã kênh được sử dụng trong các âm thanh 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 cho phép lưu trữ và xử lý thông tin âm thanh một cách dễ dàng Sau khi ghi một bài hát, chúng ta có thể chỉnh sửa và xử lý mọi lỗi để bài hát trở nên hay hơn, phù hợp với 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 đó.

Việc nén âm thanh giúp giảm kích thước tập tin, tối ưu hóa lưu trữ và rút ngắn thời gian truyền tải, đồng thời cho phép xem và nghe trực tiếp trên các thiết bị như điện thoại và máy tính Các định dạng nén phổ biến như MP3, AAC và Ogg cung cấp sự cân bằng giữa chất lượng và kích thước file, cho phép phát trực tuyến hoặc tải xuống nghe khi rảnh rỗi Nhờ nén âm thanh, người dùng có thể dễ dàng lưu trữ, chia sẻ và thưởng thức nội dung trên nhiều nền tảng và thiết bị, đồng thời tối ưu hóa trải nghiệm người dùng và SEO nhờ mô tả rõ ràng cũng như tối ưu từ khóa liên quan.

- 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.

Nhờ lưu trữ âm thanh dễ dàng và gọn nhẹ, việc phân phối âm thanh nói chung và âm nhạc nói riêng trở nên tiện lợi và tiết kiệm chi phí hơn khi thực hiện qua internet Trước đây, âm nhạc được phân phối chủ yếu bằng các bản sao vật lý như băng đĩa hoặc CD, kèm theo chi phí vận chuyển và lưu trữ cao Với sự phát triển của internet và công nghệ phát trực tuyến, người nghe có thể mua, tải xuống hoặc stream nhạc nhanh chóng với chất lượng tốt, mở rộng phạm vi tiếp cận và giảm thiểu chi phí cho cả nhà sản xuất lẫn người tiêu dùng Sự chuyển đổi này đã đẩy ngành công nghiệp âm nhạc tiến tới hiệu quả và phổ biến cao hơn.

- Â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.

1.1.2 Âm thanh số theo định dạng Mp3 và wav

Các định dạng âm thanh phổ biến trên thế giới được chia thành ba nhóm 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) Mỗi nhóm có các file tiêu biểu riêng: nhóm không nén gồm WAV và AIFF, nhóm lossless có FLAC, APE và ALAC, còn nhóm lossy có MP3, AAC và WMA Tuy vẫn tồn tại nhiều định dạng nhạc số khác nhau, phần này tập trung vào hai định dạng phổ biến nhất là MP3 và WAV để người đọc có cái nhìn rõ ràng về sự khác biệt và ứng dụng của từng loại.

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 dựa trên thuật toán nén nhằm giảm kích thước tệp mà vẫn bảo toàn chất lượng Với MP3, một đĩa nhạc CD 600MB có thể nén xuống còn khoảng 50MB hoặc ít hơn Các bit rate thường gặp của các tập tin MP3 gồm 128 Kbps, 192 Kbps, 256 Kbps và 320 Kbps, thấp hơn nhiều so với 1411 Kbps trên CD và các định dạng PCM, nhưng MP3 vẫn duy trì chất lượng âm thanh ở mức đủ để thỏa mãn nhu cầu nghe nhạc so với các phương pháp nén trước đó Nhờ những đặc tính này, việc truy cập âm nhạc và phân phối các bản nhạc trên Web đã trở thành hiện thực.

MP3 là định dạng âm thanh số phổ biến, đã tạo ra một tên gọi mới cho các thiết bị điện tử tiêu dùng và khiến nhiều người gọi chúng là máy nghe nhạc MP3 MP3 được ứng dụng rộng rãi trên hầu hết các đĩa CD và DVD (Digital Versatile Disc hay Digital Video Disc), là định dạng lưu trữ dữ liệu quang học kỹ thuật số với đường kính 12 cm ở loại chuẩn và 8 cm ở loại nhỏ DVD khác CD ở cách lưu trữ dữ liệu nhờ công nghệ nén và các lớp quang học có khả năng chứa nhiều dữ liệu hơn, từ đó tăng khả năng lưu trữ và truyền tải nhạc số Trong các hệ thống âm thanh trên ô tô và các thiết bị âm thanh nổi hiện đại như mạng máy chủ âm nhạc, MP3 vẫn đóng vai trò chủ đạo cho lưu trữ và phát nhạc số.

MP3 là chuẩn nén âm thanh số tối ưu hóa cấu trúc tập tin và loại bỏ dữ liệu dư thừa mà không làm mất thông tin, giúp giảm dung lượng lưu trữ và truyền tải dễ dàng Tập tin MP3 được xây dựng dựa trên bộ mã hóa thụ cảm và mô hình cảm nhận âm học của tai người, nhằm giữ lại các yếu tố âm thanh quan trọng đồng thời bỏ bớt những thông tin ít gây nghe hỏng Quá trình mã hóa MP3 gồm chuyển đổi tín hiệu âm thanh từ định dạng PCM sang tín hiệu nén MP3 và được mã hóa theo phương pháp Huffman để tối ưu hóa dữ liệu.

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

WAV là định dạng âm thanh không nén dựa trên chuẩn PCM, cho phép ghi âm với chất lượng cao mà không bị nén Thông thường các bản thu được ghi ở dạng WAV ở trạng thái thô, sau đó được xử lý bằng thiết bị phòng thu hoặc phần mềm chuyên dụng trước khi xuất ra các tệp phù hợp cho mục đích phát hành Mặc dù WAV bản chất không nén, quá trình xử lý có thể tạo ra các phiên bản tối ưu dung lượng hoặc được chuyển đổi sang các định dạng khác nhằm lưu trữ và chia sẻ dễ dàng, mà vẫn bảo toàn chất lượng âm thanh ở mức tốt.

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

Khi nhận lệnh từ khối điều khiển, khối xử lý tiến hành truy xuất dữ liệu từ khối lưu trữ, trong đó dữ liệu nguồn là file nhạc MP3 Dữ liệu được nạp từ khối lưu trữ và dùng làm nguồn cho quá trình xử lý Sau khi truy xuất thành công, khối xử lý sẽ gửi một phần nội dung của dữ liệu là tiêu đề của file nhạc lên khối hiển thị để người dùng có thể nhận diện nhanh chóng Quá trình này tối ưu hóa luồng dữ liệu từ lưu trữ đến xử lý và hiển thị, đáp ứng nhu cầu xem và nghe nhạc hiệu quả trong hệ thống.

Quá trình trích lọc và xử lý dữ liệu được thực hiện bằng phần mềm, cho phép dữ liệu được truyền tải liên tục từ khối lưu trữ tới khối giải mã thông qua khối xử lý Dữ liệu sau đó đượ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à vận chuyển thông tin file nhạc từ khối lưu trữ sang khối giải mã, đồng thời cấu hình các tham số cho khối giải mã để tối ưu hóa quá trình giải mã Tiếp nhận và xử lý tín hiệu đã nhận được, và đưa tín hiệu đã được xử lý 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à thành phần dùng để giải mã các file nhạc ở định dạng số như MP3 và WAV; với MP3, khối này thực hiện giải mã và giải nén tín hiệu âm thanh từ dữ liệu mã hóa, còn WAV thì không cần giải mã mà chỉ cần chuyển đổi tín hiệu số sang tín hiệu tương tự bằng DAC để phát lại âm thanh.

- 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

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

Vi điều khiển cứng dựa trên công nghệ ASIC như AT89/PIC/MSP430 hoặc các SoC ARM (ví dụ STM32) có kiến trúc phần cứng cố định do nhà sản xuất thiết kế và sản xuất, người dùng không thể chỉnh sửa Mặc dù hệ thống nhúng dựa trên vi điều khiển cứng được sử dụng rộng rãi, chúng gặp một số hạn chế rõ rệt, điển hình là khó nâng cấp thông qua cập nhật phần mềm hoặc firmware Để thay thế chúng, thiết bị chủ (host) phải được xây dựng lại, lập trình lại và ghép nối lại, khiến chi phí bảo trì và thay thế thường cao hơn so với việc thay toàn bộ thiết bị Điều này khiến việc xử lý sự cố và tái lập trình tại hiện trường gặp nhiều khó khăn Bên cạnh đó, những hệ thống đòi hỏi bộ nhớ lớn và hiệu suất tính toán cao vẫn chưa thể đáp ứng bởi vi điều khiển cứng.

Trong thực tế hiện nay, vi điều khiển cứng (VĐK cứng) được ứng dụng trong hầu như tất cả các thiết bị nhờ độ ổn định và hiệu suất xử lý cao Đa số các nhà sản xuất lựa chọn VĐK cứng cho sản phẩm của họ vì các ưu điểm nổi bật như khả năng hoạt động thời gian thực, độ tin cậy cao ngay cả khi làm việc ở điều kiện khắc nghiệt, chi phí bảo trì và vận hành tối ưu trên quy mô sản xuất, cũng như sự dễ dàng tích hợp với các hệ thống và giao diện khác Ngoài ra, VĐK cứng giúp giảm thiểu rủi ro về bảo mật và sai lệch phần mềm, rút ngắn chu kỳ phát triển sản phẩm và kéo dài tuổi thọ thiết bị.

- 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ó

- 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 (soft processor) đã được phát triển trên toàn cầu bởi nhiều hãng sản xuất và được ứng dụng rộng rãi trong công nghệ FPGA Có nhiều vi điều khiển mềm phổ biến như MicroBlaze, Spartan, TSK3000A, TSK51x và TSK52x, được cung cấp bởi các nhà sản xuất chip danh tiếng như Xilinx (MicroBlaze và Spartan) và Altera với Quartus, đồng thời được hỗ trợ bởi các công cụ phát triển từ Altium và các hãng liên quan để tối ưu hóa thiết kế FPGA.

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à

“Lập trình” là yếu tố cốt lõi của FPGA Ưu điểm của FPGA đó là tính linh động đối với người dùng, giúp phát triển các giải pháp tốt hơn mà không phụ thuộc vào phần cứng của nhà sản xuất, vì FPGA cho phép cấu hình lại chức năng ở mức phần cứng thông qua phần mềm, tối ưu hóa luồng dữ liệu và thực thi song song trên nhiều khối xử lý Nhờ đặc tính này, chu trình phát triển được rút ngắn, sự thích nghi với thay đổi yêu cầu nhanh chóng hơn và chi phí duy trì hệ thống được giảm thiểu, đồng thời tăng tính mở rộng và hiệu suất hệ thống so với các giải pháp cứng nhắc dựa trên ASIC hay phần cứng cố định.

- 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 ASIC và CPLD, FPGA thể hiện ưu thế nhờ tính lập trình lại và khả năng dùng cho nhiều ứng dụng khác nhau FPGA dựa trên RAM và các bảng LUTs để triển khai các hàm logic, tích hợp sẵn các mạch logic mức cao như bộ cộng, bộ nhân và bộ nhớ nhúng, cùng với các khối logic thực hiện giải mã hoặc các hàm toán học; trong khi CPLD dựa trên EEPROM và hình thành các hàm logic nhờ các mạch gate sea-of-gates có khối logic lớn ASIC thì không thể thay đổi sau khi sản xuất Đặc biệt, FPGA có thể được nhúng vào SoC, cho phép tích hợp và bổ sung thêm từ module phụ như module giao tiếp đến mã hóa bảo mật dữ liệu theo nhu cầu người dùng một cách linh hoạt.

Xét chung về công nghệ mạch tích hợp bán dẫn, các thành phần chủ chốt như bộ nhớ, các bộ vi xử lý, ASIC, PLD, FPGA và SoC cho thấy một sơ đồ mối liên hệ được thể hiện chi tiết trong hình 1.7 Bộ nhớ cung cấp dữ liệu và trạng thái cho các phần tử xử lý, trong khi ASIC, PLD và FPGA cho phép thiết kế tùy biến và tối ưu hóa logic xử lý cho các ứng dụng cụ thể SoC tích hợp nhiều chức năng trên một chip, kết nối bộ nhớ, bộ vi xử lý và các mô-đun ngoại vi để cải thiện hiệu suất, kích thước và hiệu quả năng lượng của hệ thống.

Hình 1.7 Quan hệ giữ các công nghệ IC[1]

Lựa chọn phương án thiết kế

Phân tích ở phần 1.3 cho thấy thiết kế hệ thống nhúng trên FPGA là một giải pháp phù hợp, giúp tiết kiệm chi phí thiết kế và đầu tư đồng thời cho phép hệ thống thay đổi linh hoạt theo yêu cầu Các hãng FPGA như Xilinx và Altera đã cung cấp nhiều sản phẩm tại Việt Nam, tạo điều kiện thuận lợi để lựa chọn các bảng phát triển phù hợp cho quá trình thiết kế Đáng chú ý, kit NB2DSK01 được sử dụng phổ biến trong đào tạo và nghiên cứu thiết kế các hệ thống nhúng ứng dụng cho các thiết bị xử lý tín hiệu Audio 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 WAV và MP3 là hai loại file âm thanh lưu trữ trên máy tính: 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 theo chuẩn MPEG, giúp giảm dung lượng file nhạc nhưng vẫn bảo lưu đặc trưng của bản ghi gốc FPGA có thể thiết kế và lập trình hầu hết các chức năng của các mạng số, đồng thời đáp ứng nhu cầu bộ nhớ lớn và tốc độ xử lý cao mà vi điều khiển cứng không thể làm được Vì vậy FPGA rất phù hợp với các dự án SoPC và có thể ứng dụng vào bài toán thiết kế máy phát nhạc MP3 được mô tả trong các chương sau.

THIẾT KẾ HỆ THỐNG NHÚNG SỬ DỤNG KIT PHÁT TRIỂN

Giới thiệu chương

Như đã nêu ở chương trước, FPGA (lĩnh vực cổng lập trình trường) là một lĩnh vực phát triển nhanh chóng trong thiết kế kỹ thuật số ngày nay và đang thu hút nhiều sự quan tâm trong chế tạo vi mạch Kit thí nghiệm Nanoboard NB2DSK01 là bộ công cụ phát triển FPGA, vi xử lý và hệ nhúng có phần cứng được thiết kế để cấu hình tận dụng sức mạnh của các chip khả trình giá rẻ có dung lượng cao, cho phép phát triển và triển khai hệ thống một cách nhanh chóng Nó hoàn toàn đồng bộ với hệ thiết kế điện tử hợp nhất của Altium Designer, hỗ trợ thiết kế FPGA và tích hợp các thành phần nhúng trong cùng một môi trường Vì vậy trong chương này, công nghệ FPGA cùng với kit NB2DSK01 và phần mềm Altium sẽ được giới thiệu chi tiết.

Tổng quan về FPGA và VHDL

FPGA (Field-Programmable Gate Array) là một loại thiết bị khả trình (PLD) tiên tiến nhất hiện nay trong lĩnh vực chế tạo IC đặc biệt và được xem như một dạng ASIC có khả năng lập trình lại FPGA cho phép người dùng thiết kế và thay đổi các thiết kế phần cứng bằng cách tái cấu trúc cấu hình, thường được lưu trong bộ nhớ động SRAM, bằng cách đọc thông tin từ RAM để lập trình lại các kết nối logic trong IC Nói cách khác, FPGA hoạt động như một phần mềm máy tính được lưu trữ và nạp vào hệ thống khi thực thi; vì vậy việc lập trình lại FPGA dễ dàng như cập nhật phần mềm trên máy tính Khái niệm FPGA board hay FPGA KIT ám chỉ một bo mạch in có gắn chip FPGA cùng các thành phần phụ trợ như cổng giao tiếp, màn hình, LED, nút bấm và luôn có giao diện với máy tính để nạp cấu hình cho FPGA Bên cạnh đó, board còn tích hợp các thiết bị ngoại vi liên kết với các cổng vào ra của FPGA để phục vụ cho mục đích thử nghiệm.

Hiện nay công nghệ FPGA đang được phát triển rộng rãi bởi nhiều hãng bán dẫn khác nhau Dẫn đầu thị trường là Xilinx với các dòng sản phẩm Virtex 3, Virtex 4, Virtex 5, Virtex 6 và Spartan, tiếp theo là Altera với Stratix, Cyclone và Arria Bên cạnh đó còn có các sản phẩm của Lattice Semiconductor, Actel, Achronix và BlueSilicon Technology Mặc dù do nhiều hãng cung cấp, FPGA có cấu trúc tổng thể bao gồm các thành phần cơ bản như khối logic lập trình được (LUTs và flip-flops), hệ thống liên kết nội bộ, bộ nhớ nhúng và các giao diện I/O, cho phép tùy biến chức năng linh hoạt theo từng ứng dụng.

- 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ạch tích hợp chứa từ 64 đến hơn 10.000 ô logic đồng nhất (logic cell), có thể coi là các thành phần chuẩn để xây dựng mạch logic Mỗi ô logic giữ một hoặc một số chức năng độc lập và các ô giống nhau được liên kết với nhau qua ma trận đường dẫn và chuyển mạch có thể lập trình Người thiết kế khai thác đặc tính logic cơ bản của từng ô và quyết định đóng mở các chuyển mạch trong ma trận kết nối Mảng các ô logic và cách kết nối giữa chúng tạo thành khối cơ bản của mạch logic, và các thiết kế phức tạp được hình thành bằng cách kết hợp các khối cơ bản để mô tả các mạch mong muốn.

Mô hình tổng quát của FPGA gồm một mạng các khối logic (logic block) được kết nối bằng các nguồn kết nối chung (segment) có chiều dài khác nhau Bên trong các nguồn kết nối là các chuyển mạch lập trình để nối các khối logic cấu hình (configurable logic block - CLB) cần thiết thông qua các chuyển mạch Các khối CLB cung cấp các phần tử chức năng để thực hiện các tác vụ logic Các khối I/O block cung cấp giao diện giữa các gói chân và đường tín hiệu bên trong Các tài nguyên khối kết nối cung cấp các tuyến truyền dẫn tới đầu vào ra của các CLB và các I/O block trong mạch, tạo thành mạng lưới bên trong FPGA.

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)

Trong FPGA, các khối logic được cấu hình theo từng loại để tích hợp các phần tử riêng biệt phục vụ các ứng dụng khác nhau Ví dụ, để thiết kế các hệ thống SoC, dòng Virtex-4/5 của Xilinx tích hợp nhân xử lý PowerPC, còn Atmel FPSLIC tích hợp nhân ARV cho các tác vụ đặc thù Đối với xử lý tín hiệu số (DSP) trong FPGA, các FPGA chứa các DSP slice là những bộ nhân cộng tốc độ cao thực hiện A*B+C, giúp tối ưu hóa mô hình tính toán Trong dòng Virtex của Xilinx, số lượng DSP slice dao động từ vài chục đến hàng trăm, với tham số A, B, C 18-bit, đáp ứng yêu cầu tính toán và hiệu năng cao.

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 một logic block phụ thuộc vào kiến trúc của nó Kiến trúc khối logic có thể được thiết kế theo nhiều cách khác nhau, có thể là cổng AND hai ngõ vào, các bộ dồn kênh (multiplexer) hoặc bảng tìm kiếm (look-up table), và có thể chứa flip-flop để hỗ trợ cho việc thực hiện ở chế độ tuần tự Việc chọn kiến trúc ảnh hưởng đến hiệu suất, độ phức tạp và khả năng xử lý của hệ thống.

Xem xét cấu trúc tổng thể của mảng LUT, ngoài 4 đầu vào đã nêu còn hỗ trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó, nâng tổng số đầu vào của LUT lên 6 chân Cấu trúc này nhằm tăng tốc các bộ số học logic và cải thiện hiệu quả xử lý dữ liệu trong hệ thống.

Các khối vào/ra (IOB)

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

Trong FPGA, mạng liên kết được cấu thành từ các đường kết nối theo hai hướng: ngang và dọc, và tùy từng loại FPGA mà các đường này được phân thành các nhóm khác nhau; ví dụ, với dòng FPGA Xilinx XC4000 có ba loại liên kết: ngắn, dài và rất dài Các đường kết nối được nối với nhau thông qua khối chuyển mạch lập trình (programmable switch), mỗi khối chuyển mạch chứa tập hợp nút chuyển lập trình được thiết kế để đáp ứng 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

- 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.

Với khả năng tái cấu trúc đơn giản và sở hữu khối tài nguyên logic lớn, FPGA có thể được ứng dụng cho nhiều lớp bài toán xử lý tín hiệu số quy mô lớn mà các công nghệ trước đây chưa thể đáp ứng hoặc chỉ thực hiện được với tốc độ và hiệu suất thấp Nhờ đó, FPGA mở ra các ứng dụng xử lý tín hiệu số ở mức độ phức tạp cao, nơi cần sự tùy biến linh hoạt, tối ưu hóa tốc độ xử lý và hiệu quả năng lượng so với các giải pháp truyền thống.

- 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 về 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 nổi lên nhờ xử lý tín hiệu âm thanh, bao gồm các bước lọc nhiễu, trộn, mã hóa, giải mã, nén và tổng hợp âm thanh Xử lý tín hiệu âm thanh giúp cải thiện chất lượng và độ tin cậy của các hệ thống nhận dạng giọng nói, chuyển văn bản thành giọng nói và phát triển giọng nói tổng hợp tự nhiên Các kỹ thuật lọc nhiễu loại bỏ nhiễu nền, kết hợp với trộn và nén dữ liệu tối ưu hóa lưu lượng và lưu trữ âm thanh Nhờ đó, hệ thống nhận dạng giọng nói có độ chính xác cao, giọng nói tổng hợp chất lượng và trải nghiệm người dùng được nâng cao trong các ứng dụng trợ lý ảo, gọi điện và nhiều nền tảng âm thanh khác.

- Ứ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ố…

Trong các hệ thống thông tin, các ứng dụng nổi bật gồm Voice IP (VoIP) và Voice mail (thư thoại), đồng thời liên quan đến Modem và điện thoại di động, cũng như các giải pháp mã hóa và giải mã truyền thông trong mạng LAN và WiFi Những công nghệ này còn được tích hợp trong truyền hình và radio nhằm đảm bảo an toàn, bảo mật và tối ưu hóa chất lượng truyền thông cho người dùng.

- Ứ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.

FPGA có nhiều ứng dụng thiết thực, nổi bật ở xử lý tín hiệu số (DSP), các hệ thống hàng không, vũ trụ và quốc phòng; tiền thiết kế mẫu ASIC (ASIC prototyping); các hệ thống điều khiển trực quan; phân tích và nhận dạng ảnh; nhận diện tiếng nói; mật mã học và mô hình phần cứng máy tính.

Khả năng thiết kế linh động của FPGA cho phép giải quyết các bài toán phức tạp mà trước đây chỉ thực hiện được bằng phần mềm máy tính Nhờ mật độ cổng logic lớn, FPGA được ứng dụng cho các bài toán đòi hỏi khối lượng tính toán lớn và đặc biệt phù hợp với các hệ thống làm việc theo thời gian thực.

Trong các hệ thống SDR (Software Defined Radio), FPGA được sử dụng phổ biến nhờ khả năng tái cấu hình linh hoạt, cho phép các chức năng của thiết bị thay đổi nhanh chóng để phù hợp với nhiều chuẩn và ứng dụng khác nhau, từ đó tối ưu hóa hiệu suất và tính linh hoạt của hệ thống khi làm việc với phần mềm định nghĩa radio.

2.2.2.1 Giới thiệu chung về VHDL

VHDL là ngôn ngữ mô tả phần cứng dùng để thiết kế và mô phỏng các kiểu mạch số, từ các kết nối đơn giản giữa các cổng logic đến các hệ thống phức tạp VHDL là viết tắt của VHSIC Hardware Description Language, và VHSIC là viết tắt của Very High Speed Integrated Circuits.

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 được tích hợp nhiều chức năng về thực hiện và tương tác và gỡ lỗi của thiết kế kỹ thuật số trên một bo mạch duy nhất Đây thật sự là một công cụ để lập trình và mô phỏng với chi phí thấp nhưng lại có thể thực hiện tốt nhiều chức năng một cách mạnh mẽ Chính vì những lý do đó, Bo mạch NanoBoard NB2DSK01 Altium đã được sử dụng rộng rãi trong các phòng thí nghiệm, trung tâm phát triển sản phẩm số và là modul thí nghiệm cho sinh viên trong 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 FPGA, vi xử lý, hệ nhúng Altium Desktop Nanoboard NB2, có khả năng cấu hình phần cứng phù hợp với nhu cầu và mục đích thiết kế.

- 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.

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

Chúng tôi hỗ trợ đa dạng FPGA và vi xử lý từ nhiều hãng sản xuất chip khác nhau thông qua giải pháp sử dụng các daughter board có thể tháo rời, lắp vào dễ dàng Thiết kế modular cho phép thay thế, nâng cấp phần cứng nhanh chóng mà không ảnh hưởng đến phần mềm, tối ưu khả năng tương thích, mở rộng hệ thống và giảm thời gian phát triển cho các dự án yêu cầu đa nền tả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 đảm nhiệm quản lý thời gian thực cho truyền thông riêng, tối ưu hóa quá trình thiết kế và tích hợp với Altium Designer Mô hình bo mạch và firmware của NanoBoard sử dụng bộ điều khiển Xilinx Spartan-3 (XC3S1500-4FG676C) kết hợp PROM cấu hình Flash, giúp cấu hình nhanh và tin cậy Tính năng JTAG được hỗ trợ để kiểm thử và gỡ lỗi hiệu quả trong quá trình phát triển nền tảng Cấu trúc này mang lại giải pháp truyền thông tự động, an toàn và hiệu quả cho các dự án điện tử, với khả năng mở rộng và tích hợp dễ dàng trong môi trường thiết kế chuyên môn.

- 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

Hình 2.13 Sơ đồ khối của KIT NB2DSK01[4]

- Đầ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ệ thống âm thanh analog stereo được trang bị mixer onboard và khuếch đại chất lượng cao, mang lại âm thanh sống động Ampli stereo công suất 2W đi kèm jack cắm đầu vào 3,5 mm cho kết nối dễ dàng và điều khiển âm lượng bằng DC Thiết kế bao gồm các đầu vào/ra và loa để kết nối trực tiếp với Desktop Stereo Speaker và NB2DSK-SPK01, tối ưu hóa trải nghiệm nghe tại bàn làm việc.

- 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 Designer hiện là một trong những phần mềm vẽ mạch điện tử mạnh mẽ và được ưa chuộng tại Việt Nam, đáp ứng đầy đủ cho cả thiết kế schematic và bố trí PCB Ngoài việc hỗ trợ tốt cho hoạt động vẽ mạch, Altium còn tích hợp các chức năng quản lý mạch và quản lý dự án điện tử, giúp người dùng theo dõi tiến độ, tối ưu hóa quy trình làm việc và tái sử dụng thiết kế Đặc biệt, tính năng trích xuất file thống kê linh kiện và bảng kê BOM từ Altium mang lại lợi ích lớn cho quản lý kho, mua sắm linh kiện và báo cáo dự án.

Hình 2.14 Giao diện phần mềm Altium Designer

Altium Designer là môi trường thiết kế điện tử đồng nhất và tự động, kết nối liền mạch từ thiết kế sơ đồ nguyên lý đến bố trí mạch in PCB và các hoạt động lập trình hệ thống nhúng cũng như FPGA trong cùng một nền tảng Phần mềm tích hợp đầy đủ công cụ cho thiết kế sơ đồ, layout PCB, mô phỏng và quản lý dữ liệu thiết kế, giúp đẩy nhanh quy trình phát triển sản phẩm Với khả năng làm việc xuyên suốt giữa schematic, PCB và firmware, Altium Designer tối ưu hóa chu trình thiết kế, tăng tính nhất quán và giảm sai sót trong quá trình chuyển từ ý tưởng đến sản phẩm cuối cùng.

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ỗ trợ mạnh mẽ cho thiết kế tự động và đi dây tự động dựa trên các thuật toán tối ưu, kết hợp phân tích lắp ráp linh kiện để tối ưu hóa hiệu suất và chi phí sản xuất Hệ thống cũng giúp tìm các giải pháp thiết kế hoặc chỉnh sửa mạch, linh kiện và netlist có sẵn từ trước theo các tham số mới, mang lại sự linh hoạt và tiết kiệm thời gian cho quy trình thiết kế.

- 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ự…

Trong quy trình thiết kế PCB, việc đặt và sửa đối tượng trên các lớp cơ khí, định nghĩa các luật thiết kế và tùy chỉnh các lớp mạch in là những bước nền tảng để đảm bảo tính khả thi của bảng mạch Chuyển từ schematic sang PCB đòi hỏi sự đồng bộ giữa sơ đồ nguyên lý và bố trí trên PCB, từ đó có thể đặt vị trí linh kiện trên PCB một cách tối ưu và tuân thủ các quy tắc thiết kế Việc quản lý các lớp mạch in và thiết lập các luật thiết kế phù hợp giúp tối ưu khoảng cách, hướng đặt và khả năng sản xuất Kết quả là bố trí linh kiện trên PCB được thực hiện một cách có hệ thống, hỗ trợ cho quá trình lắp ráp, kiểm tra và sản xuất.

- 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 cung cấp một nền tảng tích hợp đầy đủ công nghệ và chức năng cho phát triển sản phẩm điện tử, từ thiết kế hệ thống ở mức 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 cho bố trí mạch in (PCB) Nền tảng này đồng bộ hoá toàn bộ quy trình, cho phép 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 tích hợp duy nhất Đồng thời Altium Designer cung cấp các loại board như NanoBoard NB2 và NanoBoard 3000, giúp kỹ sư dễ tiếp cận thiết kế hệ thống nhúng dựa trên FPGA Nhờ đó người thiết kế có thể triển khai thiết kế cho hệ thống và tiến hành 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

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ý

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

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

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ên cạnh các ví dụ đã trình bày, bài viết còn cung cấp thêm các ví dụ về bài toán thiết kế mạch logic tổ hợp (xem phụ lục A) và thiết kế mạch logic tuần tự (xem phụ lục B), giúp người đọc nắm được phương pháp tiếp cận và ứng dụng thực tiễn của từng loại mạch; đây là nguồn tham khảo chi tiết để đào sâu thêm vào lý thuyết và thiết kế mạch số.

Kết luận chương

Kiến thức tổng quan về công nghệ FPGA và ngôn ngữ mô tả phần cứng VHDL được trình bày một cách toàn diện, đi kèm với các công cụ hỗ trợ phần cứng như KIT phát triển NB2DSK01 và phần mềm thiết kế Altium Designer, hai công cụ đang được xem là phổ biến và tin cậy cho các dự án FPGA ngày nay Một ví dụ minh họa nhỏ được thực hiện nhằm 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, và nội dung của ví dụ này sẽ được trình bày ở chương tiếp theo.

Ứ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 phát triển nhanh chóng trong thiết kế kỹ thuật số ngày nay Dự án nhằm ứng dụng các kiến thức về FPGA để triển khai một máy nghe nhạc MP3 trên bo mạch FPGA Altium NB2DSK01 Ngôn ngữ mô tả phần mềm VHDL được sử dụng thông qua các thiết bị ngoại vi gồm audio codec PB01 stereo và bộ điều khiển màn hình TFT, giúp tích hợp âm thanh chất lượng và giao diện người dùng trực quan trên nền tảng FPGA.

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

MP3 được lưu trên thẻ SD và bài toán yêu cầu gắn bảng mạch ngoại vi PB02 của Mass Storage của Altium vào bo mạch NB2 Cắm thẻ SD chứa một hoặc nhiều tập tin MP3 vào đầu đọc thẻ SD của PB02; danh sách các tập tin MP3 sẽ được hiển thị trên màn hình TFT của bo mạch và chỉ cần chạm vào tập tin mình muốn để phát Người dùng có thể nghe nhạc qua loa stereo gắn trên bo NB2DSK-SPK01 hoặc qua thiết bị thu âm thanh kết nối với jack LINE OUT của NB2 Thiết kế bao gồm TSK3000 cùng các thành phần điều khiển TFT, MP3, đầu cuối, thẻ SD, SPI, I2S, TSPENDOWN và SRAM Dự án nhúng liên quan 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ữ, ngữ cảnh GUI và ngữ cảnh I/O của thiết bị nối tiếp cho đầu ra nối tiếp thông 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

Trong môi trường thiết kế Altium, mỗi thiết kế được lưu 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 PrjFpg Các tài liệu dự án là một tập tin mã ASCII chứa toàn bộ thông tin dự án, bao gồm các tài liệu liên quan, các cài đặt đầu ra, các cài đặt trình biên dịch và các 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.

Trong bảng Projects, nhấp chuột phải vào tên Project (FPGA_Project1.PrjFpg) và chọn Save Project để lưu dự án Lưu dự án vào một vị trí bất kỳ trên máy tính với tên MP3_Player.PrjFpg, và tạo một thư mục mới có tên MP3 player để chứa tập tin dự án.

Bước tiếp theo là bổ sung các tài liệu nguồn theo yêu cầu của thiết kế FPGA Dù phần thiết kế sẽ được quản lý trong OpenBus, mỗi dự án FPGA vẫn đòi hỏi một tài liệu sơ đồ cấp cao nhất; vì vậy cần thêm cả tài liệu OpenBus mới và sơ đồ Schematic mới cho dự án này để đảm bảo đầy đủ tài liệu thiết kế và tuân thủ yêu cầu FPGA.

- Từ File menu, chọn New ằ Schematic để tạo tài tạo tài liệu Schematic mới

A new schematic document named Sheet1.SchDoc has been added to the Projects section as part of the FPGA data This document represents a new component of the FPGA data, and should be saved with the name Sheet1.SchDoc in the project’s top-level folder.

Để thêm một tài liệu OpenBus mới, kích 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, sau đó chọn OpenBus System Document Tài liệu OpenBus trống sẽ được mở ra và xuất hiện như các tài liệu đang làm việc trong cửa sổ thiết kế chính.

- 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.

Những thay đổi liên quan đến dự án sẽ hiển thị dưới dạng biến đổi trên bảng điều khiển dự án Để lưu lại những thay đổi đó, hãy nhấp chuột phải vào tên dự án và chọn Save Project.

3.2.2 Xây dựng kiến trúc theo OpenBus

OpenBus là một phương pháp mới để thiết kế FPGA ở cấp hệ thống, mang lại một giao diện nhẹ hơn nhiều so với triển khai dựa trên sơ đồ Nhờ tự động kiểm soát nhiều chi tiết cấp thấp, OpenBus cho phép tập trung vào các hệ thống ở mức cao và kết nối các thành phần chính một cách hiệu quả Bạn sẽ tìm thấy tất cả các thành phần cần dùng trong OpenBus Palette Để hiển thị Palette, nhấp vào OpenBus panel control ở 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 có thể ánh xạ trực tiếp tới các thành phần có tên tương tự trong hai thư viện FPGA Peripherals và FPGA Processor, được dùng để thiết kế sơ đồ FPGA cơ bản Việc ánh xạ này giúp người dùng dễ dàng tái sử dụng và tích hợp các khối chức năng khi phát triển dự án FPGA.

Trong không gian làm việc của OpenBus, nhấp chuột vào OpenBus ở góc dưới bên phải màn hình và chọn OpenBus palette OpenBus palette là bảng chứa tất cả các thành phần cần thiết cho dự án, cho phép bạn dễ dàng xem và chọn những thành phần bạn muốn sử dụng Khi OpenBus hiện ra, bạn có thể lựa chọn các thành phần cần thiết và thêm chúng vào quy trình làm 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ế.

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

Thiết kế cung cấp một giao diện SPI chủ, cho phép bộ xử lý máy chủ giao tiếp với các thiết bị SPI ngoại vi nằm bên ngoài FPGA, điển hình như các Audio CODEC được kết nối trên nền PB01 Giao diện SPI chủ này tối ưu hóa quá trình truyền nhận dữ liệu giữa bộ xử lý và thiết bị SPI ngoại vi, đồng thời tăng khả năng mở rộng và dễ tích hợp cho các ứng dụng âm thanh và xử lý tín hiệu.

Chip giải mã tệp tin âm thanh MP3 Decoder khuôn dạng MP3 có sẵn trên 1

Terminal Wishbone tương thích cho phép gỡ lỗi bộ xử lý một cách hiệu quả bằng cách cung cấp một giao diện điều khiển IO trực quan Việc đọc và ghi dữ liệu được thực hiện thông qua JTAG, và thông tin được nhập và hiển thị thông qua bảng điều khiển của công 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 được tích hợp trong KIT NB2DSK01 Thiết bị có kích thước gọn nhẹ và đi kèm một bộ thiết bị ngoại vi được xác định rõ; nó gồm lõi xử lý và phần cứng hỗ trợ, đồng hồ nội, bộ điều khiển gián đoạn, bộ điều khiển bộ nhớ và một số logic gỡ lỗi dựa trên chuẩn JTAG, đáp ứng tốt cho các ứng dụng nhúng và quá trình debug.

Trong cấu hình bộ xử lý, có tới 30 yếu tố liên quan đến bộ nhớ xử lý nội bộ, có thể có hoặc không có phần cứng nhân/chia để tối ưu hiệu suất; cho dù hệ thống gỡ lỗi trên chip (On-Chip Debug, OCD) có mặt hay không, việc thiết lập và quản lý các điểm dừng khi cài đặt lại là chìa khóa để bảo toàn trạng thái và đảm bảo quá trình thử nghiệm diễn ra hiệu quả; mục tiêu là xác định chế độ vận hành, kích hoạt hệ thống gỡ lỗi trên chip và xây dựng quy trình quản lý điểm dừng phù hợp với yêu cầu ứng dụng, từ đó cấu hình bộ xử lý trở nên linh hoạt, đáng tin cậy và dễ bảo trì.

- 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.

During design, you may encounter a warning: "2 Nexus JTAG Parts Found but no NEXUS_JTAG_CONNECTOR was found on the top sheet." This means two Nexus JTAG parts have been detected while the NEXUS_JTAG_CONNECTOR is missing from the top sheet If the upper schematic is incomplete, this warning can be ignored, as it reflects an incomplete top-level diagram rather than a functional fault in the design.

Thành phần bộ giải mã MP3 Wishbon (WB_MP3DEC) hỗ trợ giải mã dữ liệu âm thanh được mã hóa dưới dạng MPEC-lớp 3 thành các mẫu 16-bit, kênh đôi MP3DEC có thể giải mã tất cả dữ liệu MP3 với tốc độ lấy mẫu 32/44/48 kHz và bitrate từ 32 đến 320 kbps.

WB_MP3DEC có giao diện DMA để đọc đầu vào và đầu ra ghi, có quyền truy cập riêng biệt với bộ nhớ Scratch.

Khe cắm thẻ nhớ SD card trên board NB2 Khi thẻ được đưa vào khe cắm, thẻ sẽ giao tiếp thông qua chuẩn truyền thông SPI…

3.2.2.4 Thiết bị đầu cuối (Terminal Instrument)

Các thiết bị đầu cuối cung cấp một cách đơn giản xuất ra dữ liệu trong một thiết kế FPGA.

- Bấm đúp vào các thành phần GPIO để mở hộp thoại Configure OpenBus Terminal

• Đặt Component Designator để TERM

• Đặt Interface Type để to Signal Harness

- Nhấn OK để lưu các thay đổi.

3.2.2.5 Chuẩn giao diện bus nối tiếp I2S

Một số kết quả đạt dược

Trong bài viết này, chúng tôi trình bày cách kết nối thành công giữa Altium Designer và Kit FPGA NB2DSK01 để nhận đầu vào từ thẻ SD và phát ra âm thanh trên nền FPGA ở hai khuôn dạng MP3 và WAV, đồng thời tối ưu hóa luồng dữ liệu và chất lượng tín hiệu Quá trình thiết kế và mô phỏng trong Altium Designer giúp xác định cấu hình phần cứng, quản lý giao diện SD và đảm bảo sự tương thích với các khối xử lý tín hiệu âm thanh trên FPGA để xử lý MP3/WAV một cách hiệu quả Kit NB2DSK01 được tối ưu hóa cho việc đọc dữ liệu âm thanh từ thẻ SD, giải mã MP3/WAV và trình diễn âm thanh thông qua các thành phần FPGA, đảm bảo thời gian xử lý hợp lý và chất lượng âm thanh cao Việc tích hợp này cho phép phát triển nhanh các hệ thống âm thanh nhúng dựa trên FPGA, tối ưu hiệu suất và tiêu thụ nguồn, đồng thời mở rộng khả năng phát triển dự án với các khuôn dạng âm thanh phổ biến Các bước triển khai chính bao gồm thiết kế giao diện SD trong Altium Designer, tích hợp IP/RTL phù hợp, mô phỏng thời gian thực và kiểm thử âm thanh ở chất lượng cao.

- Tạo một dự án FPGA trong Altium Designer

- Sử dụng hệ thống phân cấp thiết kế trong một dự án FPGA

Để thực hiện một thiết kế FPGA dựa trên OpenBus, bắt đầu với cấp nguồn cho hệ thống và các linh kiện liên quan, sau đó bố trí và đặt các thành phần trên bảng mạch sao cho tối ưu không gian và ổn định điện áp Tiếp đến là thiết lập kết nối giữa các thành phần qua OpenBus và thực hiện quá trình routing để tín hiệu giữa FPGA và các thành phần được truyền tải chính xác Cuối cùng, tích hợp thiết kế với các ngoại vi trên Desktop NanoBoard để điều khiển và giao tiếp, bằng các giao diện như GPIO, USB và Ethernet, nhằm đảm bảo khả năng tương tác và mở rộng của hệ thống.

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

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

Qua phân tích bài toán thiết kế, chúng ta xác định các bước thực hiện cần thiết để xây dựng hệ nhúng sử dụng công nghệ FPGA, kết hợp hiệu quả giữa công cụ hỗ trợ phần cứng và công cụ hỗ trợ phần mềm Có hai yếu tố quan trọng để hệ thống nhúng thành công là xây dựng phần cứng và xây dựng phần mềm cho dự án, và hai phần này phải được liên kết với nhau một cách chính xác để đảm bảo tính đồng bộ và hiệu suất của hệ thống.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

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.

Qua kết quả thực nghiệm cho thấy phần mềm Altium Designer và kit FPGA NB2DSK01 khi triển khai hệ thống giải mã âm thanh số MP3, WAV 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, mở rộng khả năng giải mã và xử lý âm thanh chất lượng cao cho các nền tảng nhúng, thiết bị phát lại và các giải pháp truyền thông số.

- 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 thực hiện nghiên cứu, vẫn có thể gặp phải sai sót và hạn chế, do đó chúng tôi rất mong nhận được ý kiến đóng góp của các thầy cô để kết quả nghiên cứu được cải thiện và ngày càng chính xác hơn.

Qua bài toán này, ta có cơ hội nghiên cứu và phát triển thêm phần điều khiển các kết nối I/O thông qua GPIO, từ đó tối ưu hóa khả năng tương tác giữa các linh kiện và mô-đun phần cứng Đồng thời, ta có thể mở rộng phần phát hình ảnh để vừa phát nhạc vừa hiển thị hình ảnh và video, mang lại trải nghiệm đa phương tiện liền mạch Những hướng nghiên cứu này góp phần nâng cao hiệu suất hệ thống, tăng tính linh hoạt trong thiết kế và mở rộng ứng dụng cho các dự án nhúng và các giải pháp giải trí.

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.

Ngày đăng: 10/12/2022, 07:09

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w