Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 81 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
81
Dung lượng
1,25 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - CAO MINH TRÍ XỬ LÝ TIẾNG NĨI TRÊN NỀN CƠNG NGHỆ NHÚNG FPGA LUẬN VĂN THẠC SĨ KHOA HỌC CHUYÊN NGÀNH: ĐO LƯỜNG VÀ CÁC HỆ THỐNG ĐIỀU KHIỂN NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS.TSKH TRẦN HOÀI LINH Hà Nội – Năm 2011 Mở đầu LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sỹ khoa học: “Xử lý tiếng nói công nghệ nhúng FPGA” tự thiết kế hướng dẫn thầy giáo PGS.TSKH Trần Hoài Linh Các số liệu kết hoàn toàn với thực tế Để hoàn thành luận văn này, sử dụng tài liệu ghi danh mục tài liệu tham khảo không chép hay sử dụng tài liệu khác Nếu phát có chép, tơi xin chịu hoàn toàn trách nhiệm Hà Nội, ngày 25 tháng 09 năm 2011 Học viên Cao Minh Trí Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu Mục lục MỞ ĐẦU CHƯƠNG I: TỔNG QUAN VỀ FPGA 10 I.1 Khái niệm ứng dụng FPGA 10 I.1.1 Một số khái niệm FPGA 10 I.1.2 Các ứng dụng FPGA 11 I.2 CẤU TRÚC CỦA FPGA 11 I.3 QUY TRÌNH THIẾT KẾ TRÊN FPGA 13 I.3.1 Mô tả thiết kế 14 I.3.2 Chọn phương pháp lập trình 14 I.3.3 Mô chức 14 I.3.4 Hiệu chỉnh kết nối 14 I.3.5 Đặt khối định tuyến 15 I.3.6 Nạp thiết kế lập trình 15 I.3.7 Kiểm tra 15 I.4 NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL VÀ CÔNG CỤ LẬP TRÌNH ISE 15 I.4.1 Ngơn ngữ mơ tả phần cứng VHDL 15 I.4.2 Cơng cụ lập trình ISE 16 I.4.3 Cơng cụ lập trình EDK SDK 17 I.4.4 MicroBlaze, Xilkernel ngoại vi 17 CHƯƠNG II: MÃ HÓA THÔNG TIN 20 II.1 Mơ tả thuật tốn 21 II.2 Cải tiến thuật toán AES 23 CHƯƠNG III CƠ SỞ LÝ THUYẾT NÉN TIẾNG NÓI 25 III.1 Tổng quan 25 Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu III.2 Thuật toán CS-ACELP G.729 ITU-T 28 III.3 Giới thiệu chung thuật toán CS-ACELP 30 III.3.1.Encoder 30 III.3.2.Decoder 31 III.4 Mô tả tính mã hóa 32 III.4.1 Tiền xử lí 32 III.4.2 Lượng tử phân tích tiên lượng tuyến tính 33 III.4.3 Cửa sổ phương pháp tự tương quan 33 III.4.4 Thuật toán Levinson-Dublin 34 III.4.5 Biến đổi LP thành LSP 35 III.4.6 Lượng tử hóa hệ số LSP 36 III.4.7 Nội suy hệ số LSP 39 III.4.8 Chuyển đổi LSP sang LP 39 III.4.9 Trọng số cảm nhận 40 III.4.10 Phân tích độ trễ pitch theo vòng mở 42 III.4.11 Tính tốn đáp ứng xung 43 III.4.12 Tính tốn tín hiệu đích 43 III.4.13 Tìm kiếm mã thích nghi 44 III.4.14 Cách tạo bảng mã vector thích nghi 46 III.4.15 Tính tốn từ mã cho bảng mã thích nghi 46 III.4.16 Tính tốn số khuếch đại bảng mã thích nghi 47 III.4.17 Cấu trúc bảng mã cố định tìm kiếm 48 III.4.18 Thủ tục tìm kiếm bảng mã cố định 49 III.4.19 Tính tốn từ mã cho bảng mã cố định 51 III.4.20 Lượng tử hóa hệ số khuếch đại 52 III.4.21 Tiên đoán hệ số khuếch đại 52 Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu III.4.22 Tìm kiếm bảng mã để lượng tử hóa hệ số khuếch đại 53 III.4.23 Tính tốn từ mã cho lượng tử hệ số khuếch đại 54 III.4.24 Cập nhật nhớ 54 III.5 Mơ tả tính giải mã 55 III.5.1 Thủ tục giải mã tham số 57 III.5.2 Hậu xử lí 59 III.5.3 Bộ lọc chu kỳ dài 60 III.5.4 Bộ hậu lọc chu kì ngắn 61 III.5.5 Bộ lọc bù nghiêng 62 III.5.6 Điều chỉnh hệ số khuếch đại thích nghi 62 III.5.7 Lọc thông cao 63 III.5.8 Khởi tạo mã hóa giải mã 63 Chương IV XÂY DỰNG BOARD ĐÀM THOẠI ỨNG DỤNG THUẬT TOÁN NÉN ÂM THANH 64 IV.1 Cấu tạo phần cứng 64 IV.2 Xây dựng phần mềm board 67 IV.3.Đánh giá thử nghiệm 76 KẾT LUẬN VÀ KIẾN NGHỊ 77 Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu Danh mục hình vẽ Hình 0.1: Q trình truyền tiếng nói mơ hình giải pháp luận văn Hình 0.2: Q trình nhận tiếng nói Hình 1.1: Cấu trúc chung FPGA 11 Hình 1.2: Khối logic FPGA 12 Hình 1.3: I/O Block 13 Hình 1.4: Các kết nối khả trình FPGA 13 Hình 2.1: Khối AddRoundKey 21 Hình 2.2: Khối SubBytes 22 Hình 2.3: Khối ShiftRows 22 Hình 2.4: Khối MixColums 23 Hình 3.1: Tổng hợp tiếng nói 28 Hình 3.2: Mạch thu phát LPC 29 Hình 3.3: Bộ mã hóa 31 Hình 3.4: Mơ tả thủ tục cửa sổ hóa (windowing) 33 Hình 3.5: Sơ đồ giải mã 55 Hình 4.1: Cấu tạo board 64 Hình 4.2: Hình ảnh mặt trước bo mạch 65 Hình 4.3: Hình ảnh mặt sau bo mạch 65 Hình 4.4: Mơ tả q trình truyền liệu 66 Hình 4.5: Mơ tả q trình nhận liệu 66 Hình 4.6: Biểu đồ xung giao thức I2S 68 Hình 4.7: Biểu đồ data giao thức I2S 69 Hình 4.8:Vịng khóa pha tạo tần số lấy mẫu âm tần 69 Hình 4.9: Sơ đồ khối giải mã AES 71 Hình 4.10: Sơ đồ khối mã hóa AES 72 Hình 4.11: Giản đồ xung IP AES 73 Hình 4.12: Biểu đồ thời gian cho thủ tục tải khóa cho giải mã 74 Hình 4.13: Biểu đồ thời gian cho trình xử lý mã hóa cho khối liệu 74 Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu MỞ ĐẦU I Lý chọn đề tài Những nghiên cứu nén âm bảo mật thông tin nghiên cứu từ lâu giới, có nhiều sản phẩm ứng dụng thành Tuy nhiên nước ta sản phẩm ứng dụng công nghệ nén âm chưa xuất nhiều, có mua sẵn chip DSP firmware dịch sẵn nạp để dùng cho nhiệm vụ cụ thể đặt trước hay dùng cho phần mềm PC FPGA xuất Việt Nam thời gian ứng dụng chưa rộng, xuất quân số ứng dụng viễn thông số ứng dụng khác đòi hỏi khả đáp ứng thời gian thực cao Các chip FPGA ngày có mật độ tích hợp lớn, tốc độ đáp ứng cao giá ngày hạ với công cụ hỗ trợ nhà sản xuất liên tiếp tung cơng cụ hỗ trợ DSP, cơng cụ cấu hình nhúng EDK, SDK … hãng Xilinx làm FPGA trở thành công cụ vừa mềm dẻo, linh hoạt thay đổi cấu hình, vừa mạnh tính tốn Thêm công cụ đàm thoại chuyên dụng dùng số ngành sản xuất (ví dụ hầm mỏ) ngày lại đa phần sử dụng công nghệ analog lạc hậu, hay xảy hỏng hóc, chất lượng âm khơng đảm bảo nên việc thay cơng nghệ số cần thiết Tuy nhiên đặc thù ngành nghề mơi trường độc hại, hay yêu cầu tính sử dụng đặc biệt nên dù muốn chưa thể thực (nếu thay nước ngồi đắt đỏ) Nếu mua board âm nhúng bán sẵn thị trường khơng đủ tính đáp ứng Chính tơi chọn đề tài nghiên cứu với mục đích ứng dụng thuật tốn nén âm thanh, tận dụng tính linh hoạt lực tính tốn mạnh FPGA nhằm tạo sản phẩm có giá thành hạ phù hợp với đặc thù số ngành sản xuất khai thác khống sản … Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu II Một số định hướng cho kết nghiên cứu Tiếng nói người có tần số nằm khoảng 300-3400 Hz, nên theo lý thuyết Nyquist tần số lấy mẫu phải gấp hai lần tần số tín hiệu liên tục Giá trị thường sử dụng 8kHz để làm tần số lấy mẫu tiêu chuẩn cho tín hiệu tiếng nói Để chuyển mẫu tương tự thành định dạng số tiêu chuẩn với mức tổn thất chất lượng chấp nhận độ phân giải ADC số hóa phải lớn 8bit/ mẫu với độ phân giải 16bit/ mẫu đáp ứng chất lượng âm cao Trong luận văn sử dụng độ phân giải 16bit/mẫu trình nghiên cứu Với tần số lấy mẫu 8kHz, độ phân giải 16 bit tốc độ truyền thơng phải 8*16=128kb/s Với nhiều ứng dụng VoiIP, InterCom tốc độ cao, nên việc giảm tốc độ xuống cần thiết Nén tín hiệu âm giải pháp thông dụng để giảm lượng thông tin cần truyền đường truyền Hiện xuất nhiều thuật toán cho tỉ lệ nén, chất lượng âm tái tạo khác MELP (2 kbs), ACELP (4,8 kbs)… Với tỉ lệ nén cao mà đảm bảo chất lượng âm độ phức tạp thuật toán lớn nên tùy thuộc vào tài nguyên yêu cầu tốc độ truyền thơng mà ta áp dụng thuật tốn phù hợp Bên cạnh đó, nhu cầu mã hóa thơng tin đường truyền trở nên phổ biến Luận văn nghiên cứu việc ứng dụng FPGA mã hóa tín hiệu (âm thanh) để bảo vệ thông tin đường truyền III Mục đích đề tài Luận văn đặt mục đích sau: Nghiên cứu cơng nghệ nhúng FPGA hãng Xilinx Nghiên cứu thuật toán nén CSCELP (8kbs) triển khai nhúng MicroBlaze (32 bit) Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu Nghiên cứu ngôn ngữ VHDL để viết IP giao tiếp FPGA ngoại vi khác chíp codec âm Si3000 (gồm ADC DAC), IP thực mã hóa giải mã theo thuật tốn mã hóa AES 128 bit Sử dụng giao thức CAN để truyền nhận âm giao tiếp board nhúng FPGA Đánh giá hiệu board nhúng FPGA thực toán phức tạp IV Đối tượng nghiên cứu, phạm vi đề tài Đối tượng nghiên cứu: Công nghệ nhúng FPGA, thuật toán nén âm CSCELP, thuật tốn mã hóa AES Phạm vi nghiên cứu: Cấu hình board nhúng FPGA cơng cụ EDK, SDK, ISE 10 hãng Xilinx Viết chương trình nén âm ngôn ngữ C nhúng để triển khai board Viết chương trình mã hóa AES VHDL Đánh giá khả thực công nghệ nhúng FPGA ứng dụng thực tế V Bố cục luận văn Mục đích cuối luận văn ứng dụng cơng nghệ nhúng FPGA, nén tiếng nói, mã hóa thơng tin nhằm xây dựng hệ thống đàm thoại điều hành sản xuất lò với nguyên tắc làm việc mô tả sơ đồ sau: Số hóa Tín hiệu Nén Mã hóa CAN AES âm Hình 0.1: Q trình truyền tiếng nói mơ hình giải pháp luận văn Cao Minh Trí – ĐLĐK Khóa 2009 Mở đầu Dữ liệu từ Giải mã CAN AES Giải nén Loa Hình 0.2: Quá trình nhận tiếng nói Với mục tiêu phạm vi nghiên cứu nêu luận văn định bố cục thành chương: • Chương I : Tổng quan FPGA • Chương II : Bảo mật thơng tin • Chương III: Cơ sở lý thuyết nén tiếng nói • Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm • Kết luận kiến nghị VI Ý nghĩa khoa học luận văn Các vấn đề đề cập luận văn cho thấy khả ứng dụng cơng nghệ nhúng FPGA, thuật tốn nén tiếng nói, thuật tốn mã hóa AES việc chế tạo thiết bị đàm thoại điều hành sản xuất cơng nghiệp nói riêng đánh giá tương đối thực chất khả công nghệ FPGA ứng dụng khác công nghiệp Việt Nam Với lực hạn chế thân nguyên nhân khách quan, chủ quan khác, luận văn không tránh khỏi thiếu sót Tác giả mong góp ý quý thầy cô, bạn bè đồng nghiệp để luận văn hoàn thiện Tác giả xin chân thành cảm ơn thầy giáo cô giáo Bộ môn Kỹ thuật đo Tin học công nghiệp, Trường Đại học Bách Khoa Hà Nội, bạn bè đồng nghiệp giúp đỡ tạo điều kiện thuận lợi thời gian thực luận văn Đặc biệt tác giả xin bày tỏ lòng biết ơn sâu sắc với Thầy giáo PGS.TSKH Trần Hoài Linh quan tâm, tận tình hướng dẫn giúp tác giả xây dựng hồn thành luận văn Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 66 2.Hoạt động board: Lưu đồ thuật tốn mơ tả cách làm việc board: i Sơ đồ cấu trúc hệ thống q trình số hóa truyền liệu Số hóa Nén Mã hóa CAN AES Tín hiệu âm Hình 4.4: Mơ tả q trình truyền liệu ii Sơ đồ cấu trúc hệ thống trình nhận liệu phát loa Dữ liệu từ Giải mã CAN AES Giải nén Loa Hình 4.5: Mơ tả q trình nhận liệu Tín hiệu âm qua micro thành tín hiệu điện số hóa qua chíp âm Si3000 Tín hiệu số đẩy vào FPGA Xc3s500e Tại nén mã hóa AES, tín hiệu mã hóa đẩy modul điều khiển CAN truyền mạng Khi có liệu qua mạng CAN đưa vào modul CAN, qua modul đưa vào FPGA Xc3s500e, giải mã AES, sau giải nén đưa vào DAC Si3000, tín hiệu analog đưa vào loa để phát ngồi Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 67 IV.2 Xây dựng phần mềm board Như trình bày FPGA lập trình thành khối (IP) chạy độc lập ta có chế phối hợp tốt ta xây dựng hệ thống tính tốn song song Khi xây dựng board ta chia chúng thành khối gồm: khối vi xử lý 32 bit (MicroBlaze), khối điều khiển Si3000, khối mã hóa AES Khối vi xử lý trung tâm giao tiếp điều khiển hoạt động khối Cơ chế làm việc khối: IP giao tiếp điều khiển Si3000 SI3000 IC Audio Codec có tích hợp đầy đủ chức xử lý âm thay đổi hệ số khuếch đại đầu vào mic đầu loa, mạch bias cho Mic, mạch điều khiển đầu cho loa, mạch lọc, biến đổi ADC DAC 16 bit Đầu vào tương tự cho Mic SI3000 có chế độ giao tiếp nối tiếp Các chế độ lựa chọn cách thêm điện trở kéo 50kΩ chân SDO SCLK Để xác định chế độ, SI3000 đọc trạng thái SDO SCLK sườn trước MCLK sau RESET kéo xuống thấp Sự khác chế độ hoạt động tín hiệu FSYNC Chế độ SCLK SDO Mơ tả 0 Đồng khung liệu 1 Đồng thời điểm bắt đầu khung liệu Chế độ Slave 1 Dự trữ Giao diện số bao gồm đường nối tiếp đồng để truyền dực liệu Audio liệu điều khiển Trong chế độ Slave SCLK được nối với điện trở treo 50kΩ, MCLK đầu vào 256Fs mà nhân cách sử dụng vịng khóa pha bên IC làm clock cho chuyển đổi ADC DAC Trong chế độ master, clock master (MCLK) đầu vào clock cho liệu nối tiếp (SCLK) đầu Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 68 Tần số MCLK giá trị ghi xác định tốc độ lấy mẫu (Fs) Clock cho truyền liệu nối tiếp SCLK chạy 256 bit cho frame, tốc độ frame tương đương với tốc độ lấy mẫu Thiết kế chương trình phần mềm: Thơng tin truyền FPGA SI3000 định dạng làm khung 16bit, chúng tách chân thu (SDO) chân phát (SDI) phép thao tác thu phát làm việc đồng thời với khung Khung sơ cấp dùng cho lấy mẫu liệu Audio, khung xuất với tần số khung Khung thứ cấp dùng truy nhập ghi bên SI3000, khung lúc xuất mà xuất có yêu cầu Trên khung sơ cấp truyền từ FPGA tới SI3000, bit thấp thứ 16 (LSB) cớ để yêu cầu khung thứ cấp, LSB = khung thứ cấp u cầu Do 16 bit đầu SDI có 15 bit liệu Audio Trên khung sơ cấp từ Si3000 tới FPGA, SI3000 truyền SDO 16 bit liệu Audio, chế độ 16 bit liệu audio, chế độ slave (mode 2) SI300 cung cấp 15 bit liệu Audio tới FPGA bit LSB ln Hình 4.6: Biểu đồ xung giao thức I2S Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật tốn nén âm 69 Hình 4.7: Biểu đồ data giao thức I2S Hai hình 4.6 4.7 cho thấy chu kỳ ghi đọc khung thứ cấp Trong chu kỳ đọc, bit R/W cao bit vùng địa chứa địa ghi cần đọc, nội dung ghi bit đưa lên chân SDO, trinh ghi, bit R/W thấp bit địa chứa địa ghi cần ghi, bit liệu cần ghi theo sau địa SDI Chỉ ghi đọc hay ghi khung SI3000 chứa tạo clock bên trong, sử dụng đầu vào MCLK làm tần số chuẩn SI3000 tạo tất chu kỳ lấy mẫu mong muốn cho audio Bộ tạo clock bao gồm vịng khóa pha PLL, tần số chuẩn MCLK từ 1MHz đến 60MHz Hình 4.8:Vịng khóa pha tạo tần số lấy mẫu âm tần Như hình 4.7 , clock cần tạo 1024*Fs, Fs tốc độ lấy mẫu 1024*Fs tạo thơng qua lập trình ghi bit không dấu N1 (thanh ghi 3) M1 (thanh ghi 4) Mối quan hệ MCLK Fs thể phương trình sau: Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 70 M ⋅ 1024 ⋅ Fs = N1 MCLK Biết MCLK tốc độ lấy mẫu xác định M1 N1 Những giá trị M1 N1 rước ghi vào ghi phải trừ Khi ghi M1 N1 lập trình với giá trị PLL bỏ qua SI3000 có ghi điều khiển, giá trị cho ghi lập trình sau: - Thanh ghi 1- ghi điều khiển: 00010000 - Thanh ghi 2- ghi điều khiển: 00000000 - Thanh ghi 3- giá trị N1: 00000001 - Thanh ghi - giá trị M1: 00111000 - Thanh ghi - thay đổi hệ số khuếch đại RX: 01111010 - Thanh ghi - điều chỉnh mức cho ADC: 01101100 - Thanh ghi - điều chỉnh mức cho DAC: 00111101 - Thanh ghi - ghi trạng thái: 00000000 - Thanh ghi - suy hao: 0000110 IP AES Q trình mã hóa giải mã tính tốn IP AES Dữ liệu âm sau nén gửi vào IP AES, chúng mã hóa đẩy mạng CAN Đồng thời liệu nén từ mạng CAN đưa vào IP AES, chúng giải nén đưa tiếp vào khối vi xử lý Trong khuôn khổ luận văn, sử dụng khóa có độ dài 128 bit Về cấu tạo, khâu mã hóa gồm khối: giải mã mã hóa a Khối giải mã: Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm ld 71 done Điều khiển key Khối khai triển khóa Text-in Text-out Khối khởi Khối hoán Khối hoán tạo hoán vị vị trịn Vị kết thúc Hình 4.9: Sơ đồ khối giải mã AES Khối giải mã bao gồm khối triển khai khóa, khối khởi tạo hốn vị, khối hốn vị trịn, khối hốn vị kết thúc Khối hốn vị trịn lặp để thực thi 10 vòng lặp (với độ dài khóa 128 bit) b Khối mã hóa: Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm ld 72 done Điều khiển kld kdone key Khối khai Bộ đệm triển khóa Đảo khóa Text-out Text-in Khối khởi Khối hoán Khối hoán tạo hoán vị vị trịn Vị kết thúc Hình 4.10: Sơ đồ khối mã hóa AES Khối mã hóa gồm khối triển khai khóa, đệm đảo khóa, khối hốn vị khởi tạo, khối hốn vị trịn khối hốn vị kết thúc Bộ đệm đảo khóa lưu khóa cho tất vòng lặp đưa chúng vào theo thứ tự đảo cho vịng lặp Khối hốn vị trịn lặp để thực thi 10 vòng lặp Về nguyên lý hoạt động khối giải mã: Khối giải mã thực thi hồn tồn q trinh giải mã 12 chu kỳ xung (10 chu kỳ cho 10 vòng lặp, thêm vòng cho khối triển khai khóa khởi tạo, chu kỳ cho giai đoạn xuất liệu) Khối giải mã nhận khóa liệu (dạng text) điểm khởi đầu chu trình giải mã Điểm khởi đầu ln cách treo bus liệu ‘ld’ lên cao Khi khối hồn thành chu trình giải mã, treo cao chân “done” chu kì xung để báo hiệu kết thúc chu trình giải mã Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 73 Hình 4.11: Giản đồ xung IP AES b.Khối mã hóa Khối mã hóa hồn thành chu trình mã hóa 12 chu kỳ xung (10 chu kỳ cho 10 vòng lặp, thêm chu kỳ cho tải khóa khởi tạo chu kỳ cho giai đoạn xuất liệu) Tuy nhiên khối mã hóa u cầu khóa tải trước q trình mã hóa thực thi Bởi sử dụng khóa triển khai cuối triển khóa triển khai sử dụng cuối Một khóa tải, phiên triển khai sinh chứa đệm Khóa triển khai sử dụng cho chu trình mã hóa với khóa ban đầu Khóa tải tín hiệu ‘kld’ treo cao Một q trình triển khai khóa hồn thành, tín hiệu ‘kdone’ treo cao chu kì xung Sự khởi đầu chu trình mã hóa thực tế ln báo hiệu cách treo tín hiệu ‘ld’ lên cao Và kết thúc chu trình khối treo tín hiệu ‘ld’ lên cao chu kì xung Việc tải khóa trình tự mã hóa khơng thể xảy son song Khóa phải tải trước trình tự mã hóa thực Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật tốn nén âm 74 HÌnh 4.12: Biểu đồ thời gian cho thủ tục tải khóa cho giải mã Hình 4.13: Biểu đồ thời gian cho q trình xử lý mã hóa cho khối liệu Chương trình nén âm CSCELP microblaze Chương trình nén âm dựa theo thuật tốn CSCELP viết ngôn ngữ C nhúng chạy hệ điều hành xilkernel (đã trình bày I.4.4.b) Hoạt động chương trình mơ tả hình III.3 Nó gồm thủ tục sau: Tên file Chức Acelp_co.c Tìm kiếm bảng mã cố định Cod_ld8k.c Các thủ tục mã hóa (encoder) Lpc.c Phân tích LP Pitch.c Thủ tục tìm giá trị độ rộng pitch Pre_proc.c Thủ tục tiền xử lý (Bộ lọc thơng cao định chuẩn) Pwf.c Tính tốn hệ số cảm nhận Qua_gain.c Lượng tử hệ số khuếch đại Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 75 Lượng tử LSP Qua_lsp.c Bảng Các thủ tục dùng mã hóa Tên file Mơ tả chức De_acelp.c Giải mã bảng mã đại số Dec_gain.c Giải mã hệ số khuếch đại Dec_lag3.c Giải mã số bảng mã thích nghi Dec_ld8k.c Các thủ tục cho giải mã (Decoder) Lspdec.c Chuyển đổi LSP thành LPC Post_pro.c Hậu xử lý (lọc thông cao định cỡ) Pst.c Các thủ tục hàm hậu lọc Bảng Các thủ tục dùng giải mã Qui tắc hoạt động hệ thống nhúng nói chung chương trình từ flash copy vào RAM, có nghĩa RAM vừa nhớ chương trình, vừa nhớ liệu Khi chương trình lớn RAM lớn nhờ Flash phải lớn Nguyên tắc trường hợp FPGA Khi dịch chương trình nén âm tạo file bit có dung lượng MB Và phần RAM tích hợp board có dung lượng 2MB đảm bảo cho chương trình nhúng hoạt động Tài nguyên chip Xilinx Spartan 3E 500k logic cell 512kB RAM, cấu hình MicroBlaze tiêu tốn khoảng 24k logic cell, 2kB RAM nội để hình thành nên cache ghi MicroBlaze, hai IP AES I2S hết khoảng 16k logic cell 2kB RAM, dùng hết 40k logiccell 4kB RAM, tức phần bé tài nguyên Spartan 3E Tuy nhiên chiếm gần hết số chân FPGA nên dù tài ngun cịn thừa nhiều muốn tích hợp thêm linh kiện để thêm tính board khơng thể Cao Minh Trí – ĐLĐK Khóa 2009 Chương IV: Xây dựng board đàm thoại ứng dụng thuật toán nén âm 76 IV.3.Đánh giá thử nghiệm Trong trình thử nghiệm sử dụng board tương tự (một làm mạch thu làm mạch phát) sử dụng công nghệ nhúng FPGA Sử dụng giao thức CAN với tốc độ truyền thông 100kb/s (tương ứng với độ dài dây tối đa 500m) Chất lượng âm tương đối tốt cụ thể tiếng nói khơng bị đột ngột hay tiếng chói thường có hệ thống tương tự cổ điển, nghe rõ đến mức người nghe đốn người nói, độ dè thấp mức chấp nhận Cao Minh Trí – ĐLĐK Khóa 2009 KẾT LUẬN VÀ KIẾN NGHỊ Sau thời gian làm việc hướng dẫn cúa PGS.TSKH Trần Hoài Linh đồ án hồn thành Trong q trình thực đồ án em hiểu thuật toán nén âm CELP, thuật tốn mã hóa AES, truyền thông giao thức CAN, sử dụng công cụ EDK 10.1 ISE 10.1 để lập trình FPGA I Sau hồn thành đị án em thu số kết sau: Sử dụng công cụ nhúng EDK FPGA Xilinx, biết cách kết hợp lập trình VHDL với lập trình C nhúng EDK để làm tăng sức mạnh công nghệ nhúng FPGA so với kỹ thuật nhúng truyền thống Thể thuật toán nén âm ngôn ngữ C nhúng EDK Thể thủ tục mã hóa giải mã AES ngôn ngữ Vhdl hoạt động song song với chương trình viết C nhúng chíp FPGA Biết cách sử dụng giao thức CAN để truyền nhận thơng tin q trình đàm thoại Tuy nhiên luận văn số hạn chế sau: Vì tốc độ chíp nhúng chưa đủ cao nên chưa thể áp dụng thuật tốn nén có tỉ số cao ví dụ MELP… Chưa tối ưu code nên hoạt động FPGA chưa hiệu quả, tiêu tốn nhiều lượng II Đánh giá cơng nghệ FPGA Với cơng cụ VHDL rõ ràng ngôn ngữ song song mạnh với khả đáp ứng xung lên đến 50 MHz Nên biết cách phân rã toán lớn thành toán nhỏ chạy song song với chế đồng tốt để kiểm soát việc trao đổi liệu khối ta làm tốn có khối lượng tính tốn lớn mà khơng thể thực lập trình truyền thống PC mạnh Cao Minh Trí – ĐLĐK Khóa 2009 có nhược điểm khơng thể nhân chia số thực (nếu muốn sử dụng phải tiền mua) nên làm làm việc.với ứng dụng xung số tính tốn với số ngun (khơng có có phép chia) Đối với MicroBlaze xung nhịp chíp lên đến 90 MHz xung nhịp từ thạch anh nhân lên qua nhân tần PLL bên FPGA Tuy nhiên học viên cố gắng áp dụng thuật toán nén ACELP nhằm làm tăng tỉ lệ nén khơng thể thực môi trường Realtime Rõ ràng MicroBlaze FPGA Xc3s500e khơng phải q mạnh mẽ Nhưng MicroBlaze có khả tương tác với VHDL nên so với vi xử mạnh đời cao ARM 32 bit v v lại có lợi riêng mềm dẻo thay đổi cấu hình ta tự viết giao tiếp ngoại vi khơng lại viết với số lượng tương đối (vì FPGA có mật độ tích hợp cao với số chân lớn), vi xử lý truyền thống khơng hỗ trợ sẵn nói chung ta khó viết ngoại vi có giao thức truyền thơng phức tạp I2S…mà có viết ảnh hưởng tới hiệu chung hệ thống phải thơng qua CPU Chưa kể MicroBlaze san sẻ bớt tính tốn logic sang IP viết VHDL nên tăng đáng kể hiệu hệ thống, cịn với vi xử lý tất thực CPU FPGA lại có khả chống nhiễu cao (đã thử nghiệm môi trường quân với điều kiện nhiễu điện từ mạnh) nên thích hợp với mơi trường cơng nghiệp khắc nghiệt mà vi xử lý thương mại bình thường chưa chịu Vì lí tơi thấy hướng ứng dụng FPGA cho sản phẩm công nghiệp hướng có triển vọng III Hướng phát triển đề tài: Công nghệ FPGA xuất Việt Nam thời gian, chưa nhận nhiều quan tâm kĩ sư Tuy nhiên FPGA chứng tỏ công nghệ hứa hẹn như: tốc độ cao, tài nguyên phong phú, cấu hình mềm dẻo, cơng cụ hỗ trợ tương đối dễ kiếm Tuy nhiên giá đắt, với tốc độ phát triển giá ngày hạ tài ngun, tốc độ tăng hứa hẹn từ xây dựng ứng dụng phức tạp Cao Minh Trí – ĐLĐK Khóa 2009 hơn.Khi em có tay linh kiện FPGA có khả áp dụng thuật tốn có khả nén mạnh thỏa mãn yêu cầu ứng dụng mà tốc độ truyền thông thấp Hiện lĩnh vực khai thác mỏ, để điều hành sản xuất người ta sử dụng hệ thông đàm thoại phát analog cổ điện, nên hay bị hỏng hóc khơng ổn định (hay bị trơi tham số) Tất nhiên thay hệ thống đàm thoại nước ngồi giá thành đắt (vì có đặc thù an tồn hầm lị nên sản phẩm thương mại bình thường khơng thể sử dụng ) Vì nên tơi có ý định áp dụng cơng nghệ FPGA thuật tốn nén âm dùng giao thức CAN để xây dựng hệ thống đàm thoại hầm lị Q trình thử nghiệm cho thấy hướng khả thi phải làm nhiều việc đưa sản phẩm vào thực tế Cao Minh Trí – ĐLĐK Khóa 2009 TÀI LIỆU THAM KHẢO [1] Volnei A.Pedron; Circuit Design With VHDL; MIT Press, 2004 [2] Tống Văn On; Thiết kế mạch số với VHDL Verilog; Nhà xuất lao động xã hội, 2007 [3] WAI C CHU (2003), “SPEECH CODING ALGORITHMS Foundation and Evolution of Standardized Coders”, Mobile Media Laboratory DoCoMo USA Labs San Jose, California [4] Telecommunication Standardization Sector of ITU , “ITU-T Recommendation G.729”, ITU-T [5] Douglas L.Perry, VHDL.Programming by Example, McGraw.Hill [6] Joan Daemen, Vincent Rijmen, “AES Proposal”,1999 Cao Minh Trí – ĐLĐK Khóa 2009 ... tuyến, xử lý video audio số, phân tích nhận dạng ảnh, nhận dạng tiếng nói, xử lý ảnh, thiết bị hàng không, thiết bị quân sự, xử lý ảnh y khoa nhiều ứng dụng khác sử dụng FPGA đồng xử lý xử lý số... dụng cơng nghệ nhúng FPGA, thuật tốn nén tiếng nói, thuật tốn mã hóa AES việc chế tạo thiết bị đàm thoại điều hành sản xuất công nghiệp nói riêng đánh giá tương đối thực chất khả công nghệ FPGA ứng... nén tiếng nói 25 CHƯƠNG III CƠ SỞ LÝ THUYẾT NÉN TIẾNG NĨI Lĩnh vực tiếng nói nghiên cứu từ kỷ 19, tập trung vào lĩnh vực điện thoại, truyền tiếng nói qua sóng điện, thời ki đầu áp dụng cơng nghệ