Khóa luận Thực hiện hệ thống MIMO STBC trên Board FPGA Arria V

pdf 80 trang yendo 6150
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Thực hiện hệ thống MIMO STBC trên Board FPGA Arria V", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfkhoa_luan_thuc_hien_he_thong_mimo_stbc_tren_board_fpga_arria.pdf

Nội dung text: Khóa luận Thực hiện hệ thống MIMO STBC trên Board FPGA Arria V

  1. ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ VIỄN THÔNG NGÔ VĂN HƠN THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN BOARD FPGA ARRIA V KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN NGÀNH ĐIỆN TỬ VIỄN THÔNG CHUYÊN NGÀNH: VIỄN THÔNG - MẠNG THÀNH PHỐ HỒ CHÍ MINH – NĂM 2014
  2. ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA ĐIỆN TỬ VIỄN THÔNG NGÔ VĂN HƠN THỰC HIỆN HỆ THỐNG MIMO STBC TRÊN BOARD FPGA ARRIA V KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN NGÀNH ĐIỆN TỬ VIỄN THÔNG CHUYÊN NGÀNH: VIỄN THÔNG - MẠNG NGƯỜI HƯỚNG DẪN KHOA HỌC: Th.S ĐẶNG LÊ KHOA THÀNH PHỐ HỒ CHÍ MINH – NĂM 2014
  3. LỜI CẢM ƠN Được nhận nghiên cứu đề tài này và được trình bày trước hội đồng là niềm vinh hạnh rất lớn đối với em. Tuy gặp rất nhiều khó khăn trong quá trình nghiên cứu, song kinh nghiệm và bài học mà em có được sau đó là vô cùng quý giá. Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến thầy Đặng Lê Khoa, người đã trực tiếp hướng dẫn và chỉ dạy tận tình để em có thể hoàn thành được khóa luận này. Cũng xin gửi lời cảm ơn đến những người bạn đã đồng hành cùng tôi trong suốt quá trình nghiên cứu, giúp tôi có niềm vui, giảm căng thẳng trong lúc làm việc. Đồng thời, xin gửi lời cảm ơn đến tất cả các thầy cô giáo đã giảng dạy kiến thức, tạo nền tảng để em thực hiện đề tài. Gửi lời cảm ơn tới bố, mẹ và những người thân yêu luôn động viên con trong những lúc khó khăn. Chúc sức khỏe và thành công đến tất cả mọi người! T.p Hồ Chí Minh, ngày 12/07/2014 Sinh viên thực hiện Ngô Văn Hơn
  4. MỤC LỤC MỤC LỤC 1 DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT 4 DANH MỤC CÁC HÌNH VẼ 5 DANH MỤC CÁC BẢNG BIỂU 8 LỜI MỞ ĐẦU 9 1 CHƯƠNG 1: TỔNG QUAN 11 1.1 Giới thiệu về MIMO. 11 1.1.1 Lịch sử về MIMO. 11 1.1.2 Các dạng cấu hình anten thu-phát. 13 1.1.3 Một số ứng dụng tiêu biểu. 15 1.1.3.1 Chuẩn 802.11n 15 1.1.3.2 Wimax 16 1.1.3.3 Công nghệ 4G. 17 1.2 Giới thiệu về thiết bị FPGA. 17 1.2.1 Định nghĩa FPGA. 17 1.2.2 Ứng dụng của FPGA 18 2 CHƯƠNG 2: LÝ THUYẾT VÀ CÔNG CỤ THIẾT KẾ 19 2.1 Lý thuyết về MIMO 19 2.1.1 Khái niệm MIMO. 19 2.1.2 Các kỹ thuật phân tập. 20 2.1.2.1 Phân tập thời gian. 20 2.1.2.2 Phân tập tần số. 22 Trang 1
  5. 2.1.2.3 Phân tập không gian. 22 2.1.3 Độ lợi trong hệ thống MIMO. 23 2.1.3.1 Độ lợi Beamforming. 23 2.1.3.2 Độ lợi ghép kênh không gian. 23 2.1.3.3 Độ lợi phân tập. 24 2.1.4 MIMO Alamounti STBC. 24 2.1.5 MIMO – STBC 2x2. 28 2.2 Công cụ thiết kế. 31 2.2.1 Phần mềm DSP Builder. 31 2.2.2 Thư viện DSP Builder. 33 2.3 Phần cứng thực hiện. 36 2.3.1 Giới thiệu board Arria V GT 36 2.3.2 Các thành phần trên board Arria V GT. 37 2.3.2.1 Thiết bị Anten 5AGTFD7K3F40I3N 37 2.3.2.2 MAX II CPLD EPM2210GF324 39 2.3.3 Ứng dụng Board Test System. 40 2.3.3.1 Giới thiệu về Board Test System. 40 2.3.3.2 Sử dụng Board Test System. 41 3 CHƯƠNG 3: THIẾT KẾ. 47 3.1 Mô hình thiết kế. 47 3.1.1 Sơ đồ khối. 47 3.1.2 Bộ tạo dữ liệu và các tín hiệu điều khiển. 47 3.1.3 Bộ mã hóa. 48 3.1.4 Bộ giải mã bằng thuật toán Viterbi. 49 3.1.5 Ánh xạ chòm sao 52 Trang 2
  6. 3.1.5.1 Bộ ánh xạ chòm sao. 52 3.1.5.2 Bộ giải ánh xạ chòm sao. 54 3.1.6 Bộ điều chế MIMO-STBC. 55 3.1.7 Bộ giải điều chế 55 3.1.8 Kênh truyền 57 3.1.9 Bộ đếm lỗi bit 57 3.2 Quy trình thiết kế trên FPGA 58 3.2.1 Mô tả ban đầu về thiết kế 58 3.2.2 Thực thi 59 3.2.3 Quá trình nạp và lập trình. 62 4 CHƯƠNG 4: KẾT QUẢ. 64 4.1 Kết quả kiểm tra board bằng phần mềm Board Test System 64 4.2 Kết quả đo đạt mô hình thiết kế. 69 4.2.1 Bộ mã hóa kênh và giải mã Viterbi 69 4.2.2 Bộ điều chế giản đồ chòm sao bằng QPSK 70 4.2.3 Bộ mã hóa và giải mã STBC 71 4.2.3.1 Tín hiệu sau khi qua mã hóa STBC 71 4.2.3.2 Tín hiệu sau khi qua kênh truyền 72 4.2.3.3 Tín hiệu sau khi giải mã STBC 73 5 CHƯƠNG 5: KẾT LUẬN. 75 5.1 Kết luận 75 5.2 Hướng phát triển 76 TÀI LIỆU THAM KHẢO 77 Trang 3
  7. DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT FIFO :First In First Out FPGA : Field Programmable Gate Array I : Inphase IP core : Intellectual Property Core MIMO : Multi Input Multi Output MISO : Multi Input Single Output OFDM Orthogonal Frequency-Division Multiplexing PLL : Phase Locked Loop Q : Quadrature QAM : Quadrature Amplitude Modulation QPSK : Quadrature Phase-Shift Keying VHDL : Very High Speed Integrated Circuits Hardware Description Language STBC :Space-Time Block Code Trang 4
  8. DANH MỤC CÁC HÌNH VẼ Hình 1.1. Các chuẩn không dây 12 Hình 1.2. Hệ thống SISO 13 Hình 1.3. Hệ thống MISO 14 Hình 1.4. Hệ thống SIMO 14 Hình 1.5. Hệ thống MIMO 15 Hình 2.1. Phân tập theo thời gian. 21 Hình 2.2. Kỹ thuật Beamforming. 23 Hình 2.3. Ghép kênh không gian giúp tăng tốc độ truyền. 23 Hình 2.4. Phân tập không gian cải thiện SNR. 24 Hình 2.5. Symbol được truyền qua 2 anten phát. 25 Hình 2.6. Hệ thống Alamouti STBC 2x1 26 Hình 2.7. Alamouti STBC với nhiều anten thu 27 Hình 2.8. Mô hình STBC 2x2 29 Hình 2.9. Mô hình STBC 2x2 29 Hình 2.10. Quy trình thiết kế của DSP Builder 32 Hình 2.11. Thư viện của DSP Builder 33 Hình 2.12. Hoạt động của khối Signal Compiler. 34 Hình 2.13. Board Anten. 36 Hình 2.14. Sơ đồ kết nối Anten. 39 Hình 2.15. Sơ đồ khối MAX II CPLD EPM2210 40 Hình 2.16. Giao diện Board Test System 41 Hình 2.17. Menu cấu hình 42 Hình 2.18. Tab Flash 44 Hình 2.19. Tab HSMA 44 Hình 2.20. Tab SFP/SMA/C2C 45 Hình 2.21. Tab HSMB/FMC 45 Hình 2.22. Tab SDI/Bull's Eye 46 Hình 2.23. Tab SMA 46 Hình 3.1. Mô hình thiết kế hệ thống MIMO-STBC 47 Trang 5
  9. Hình 3.2. Mạch tạo dữ liệu và tín hiệu điều khiển. 48 Hình 3.3. Bộ mã hóa Convolutional code 49 Hình 3.4. Mô hình thuật toán Viterbi 49 Hình 3.5. Ví dụ giải mã dùng thuật toán Viterbi 50 Hình 3.6. Bộ giải mã dùng thuật toán Viterbi. 51 Hình 3.7. Dạng sóng của các tín hiệu điều khiển của khối giải mã Viterbi. 51 Hình 3.8. Giản đồ chòm sao phép điều chế QPSK và 16 QAM 53 Hình 3.9. Mạch thực hiện phép điều chế QPSK. 54 Hình 3.10. Bộ mapper và bộ nhớ FIFO 54 Hình 3.11. Mạch thực hiện điều chế MIMO-STBC. 55 Hình 3.12. Mạch thực hiện giải điều chế MIMO-STBC 56 Hình 3.13. Mạch thiết kế bộ chia. 57 Hình 3.14. Mạch đếm lỗi bit 57 Hình 3.15. Tổ hợp logic 59 Hình 3.16. Sơ đồ gán chân 60 Hình 3.17. Sơ đồ không gian gán bên trong FPGA 61 Hình 3.18. Sơ đồ định tuyến 61 Hình 4.1. Cấu hình menu Flash/GPIO trên FPGA 1. 64 Hình 4.2. Kết quả cấu hình LED, LCD hiện thị, các Switch và nút nhấn. 65 Hình 4.3. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 1. 65 Hình 4.4. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 2. 66 Hình 4.5. Kết quả thu phát loopback trên cổng kết nối HSMA. 66 Hình 4.6. Kết quả thu phát loopback trên cổng kết nối HSMB. 67 Hình 4.7. Kết quả kiểm tra phát trên cổng kết nối FMC. 67 Hình 4.8. Kết quả kiểm tra phát tại Bull’s Eye. 68 Hình 4.9. Kết quả kiểm tra thu phát qua SMA. 68 Hình 4.10. Tín hiệu qua mã hóa kênh 69 Hình 4.11. Tín hiệu qua bộ mã hóa kênh và giải mã 70 Hình 4.12. Tín hiệu phần thực QPSK 70 Hình 4.13. Tín hiệu phần ảo QPSK 71 Hình 4.14. Tín hiệu trước khi mapper và sau khi demapper 71 Trang 6
  10. Hình 4.15. Tín hiệu anten 1 72 Hình 4.16. Tín hiệu anten 2 72 Hình 4.17. Tín hiệu anten 1 sau khi qua kênh truyền 73 Hình 4.18. Tín hiệu anten 2 sau khi qua kênh truyền 73 Hình 4.19. So sánh tín hiệu sau giải điều chế STBC và tín hiệu gốc 74 Trang 7
  11. DANH MỤC CÁC BẢNG BIỂU Bảng 2-1. Các đặc tính của Arria V GT. 39 Bảng 3-1. Ý nghĩa các đường tín hiệu của bộ giải mã Viterbi 52 Bảng 3-2. Dữ liệu bảng tra của QPSK 53 Trang 8
  12. LỜI MỞ ĐẦU Trong khi mạng không dây trở nên phổ biến, nhu cầu người sử dụng càng cao thì vấn đề băng thông hữu hạn luôn là vấn đề được luôn được quan tâm hàng đầu. Các nhà nghiên cứu tập trung tìm cách để truyền được nhiều bit hơn trên 1 Hz, sử dụng hiệu quả phổ tần hơn, tiếp cận đến tốc độ theo lý thuyết Shanon. Những tiến bộ trong mã hóa như mã kiểm tra chẵn lẻ, mã Turbo đã có thể tiếp cận đến giới hạn Shannon với hệ thống 1 anten phát, 1 anten thu. Và ngày nay, kỹ thuật MIMO ra đời mang lại nhiều hiệu quả hơn nữa, đặc biệt là hiệu quả phổ tần. Đó là kỹ thuật nhiều anten phát và nhiều anten thu ở nơi truyền và nơi nhận. Hỗ trợ cho quá trình nghiên cứu, nhiều hãng trên thế giới thiết kế rất nhiều phần cứng là các board mạch. Điển hình là hãng Altera với các sản phẩm FPGA thuộc họ Stratix, Cyclone, Arria. Các board này là công cụ đắc lực để thiết kế các hệ thống về viễn thông như: bộ mã hóa chập – giải mã Viterbi, bộ điều chế QPAK, QAM , hệ thống MIMO-OFDM, Thiết bị được sử dụng trong đề tài là board FPGA Arria V GT của hãng Altera. Đây là một linh kiện có tốc độ rất cao nhưng hiện tại vẫn chưa có nhiều nghiên cứu kể cả trong nước và quốc tế. Mục tiêu chính của đề tài là tìm hiểu về cấu trúc và cách nạp một thiết kế lên board, thiết kế thử nghiệm hệ thống MIMO trên nền DSP Builder và kiểm tra đánh giá hệ thống. Để tài bao gồm 5 chương như sau: Chương 1: Tổng quan - Chương này sẽ giới thiệu chung về hệ thống MIMO, các ứng dụng thực tế, đồng thời cũng giới thiệu về phần cứng FPGA. Chương 2: Bao gồm lý thuyết cơ bản về hệ thống MIMO nói chung và MIMO- STBC nói riêng, đồng thời giới thiệu công cụ thiết kế DSP Builder và Board FPGA Arria V của hãng Altera. Trang 9
  13. Chương 3: Trình bày phương pháp thiết kế mạch của từng khối và ghép các khối lại với nhau để tạo thành hệ thống thu phát MIMO hoàn chỉnh. Ngoài ra còn trình bày quy trình chung để thiết kế hệ thống trên nền FPGA. Chương 4: Trình bày kết quả mô trên board Arria V thông qua công cụ Board Test System, tiếp đến là trình bày các kết quả đo đạt mô hình và kiểm tra hệ thống. Chương 5: Tổng kết các nội dung chính đã hoàn thành và hướng phát triển của đề tài. Trang 10
  14. 1 CHƯƠNG 1: TỔNG QUAN Chương này trình bày một vài điểm về lịch sử cũng như đặc điểm, khái niệm cơ bản của hệ thống MIMO, các chuẩn truyền thông tiêu biểu trong MIMO. Đồng thời cũng trình bày sơ lược về quá trình thiết kế hệ thống trên nền phần cứng FPGA. 1.1 Giới thiệu về MIMO. 1.1.1 Lịch sử về MIMO. Các hệ thống thông tin không dây luôn được nghiên cứu nhằm cải thiện chất lượng cũng như chống lại hiện tượng đa đường. Đối với các hệ thống thông tin, chất lượng tín hiệu có thể cải thiện bằng cách tăng công suốt, tăng dung lượng truyền khi tăng băng thông. Tuy nhiên công suất cũng chỉ có thể tăng đến một mức giới hạn nào đó vì khi công suất tăng thì có thể gây nhiễu cho các hệ thống thông tin xung quanh và việc phân bố . Vì thế để có thể tăng năng suất và chất lượng người ta trong cậy vào các kỹ thuật truyền phát và xử lý tín hiệu. Trong đó có MIMO-OFDM. Ở đề tài này chỉ nghiên cứu một phần về MIMO. Hệ thống MIMO có thể tăng dung lượng kênh truyền, sử dụng băng thông hiệu quả nhờ ghép kênh không gian, cải thiện chất lượng hệ thống đáng kể nhờ vào phân tập tại phía phát và phía thu mà không cần tăng công suất phát cũng như băng thông của hệ thống. Hình 1.1 mô tả các chuẩn thông tin không dây của IEEE tương ứng với tốc độ bit và vùng phủ sóng, trong đố các chuẩn màu đậm được ứng dụng trong hệ thống MIMO-OFDM, điều này cho thấy tầm ứng dụng rất lớn của MIMO-OFDM. Trang 11
  15. Hình 1.1. Các chuẩn không dây Năm 1984, Jack Winters thuộc phòng thí nghiệm Bell đã xin cấp bằng sáng chế về việc sử dụng đa anten trong hệ thống vô tuyến. Năm 1985 đồng nghiệp của Jack Winters là Jack Salz đã xuất bản công trình về MIMO dựa trên những nghiên cứu của Jack Winters. Từ năm 1986 đến 1995 đã có nhiều bài báo về MIMO được đưa ra. Năm 1996, trong khi đang làm việc tại trường đại học Stanford, Greg Raleigh và VK jones đã khám phá ra hiện tượng phản xạ đa đường do hệ thống vô tuyến va chạm với các vật tạo ra nhiều kênh truyền ảo riêng lẻ trong hệ thống MIMO. Từ đó Greg Raleigh đã viết bài báo chỉ ra rằng hiện tượng đa đường là yếu tố giúp tăng dung lượng kênh truyền. Cũng trong năm 1996 G.J.Foschini thuộc phòng thí nghiệm Bell đã đưa ra kiến trúc D-BLAST (Diagonal-Bell Laboratories Layered Space-Time) cho truyền dẫn vô tuyến sử dụng công nghệ MIMO. Năm 1998, P.W.Wolniansky và các đồng nghiệp thuộc phòng thí nghiệm Bell đã đưa ra kỹ thuật V-BLAST (Vertical- Bell Laboratories Layered Space-Time) với hiệu suất sử dụng phổ lần đầu tiên khoảng 20-40 bps/Hz. Siavash M.Alamouti cũng đưa ra sơ đồ phân tập phát đơn giản sử dụng 2 anten phát và 1 anten thu, sơ đồ này cũng đưa ra phương pháp áp dụng cho M anten thu để có độ lợi 2M. Năm 2003, Airgo đã tung ra chip MIMO đầu tiên. Năm 2004, IEEE đã lập nhóm TGn nghiên cứu chuẩn 802.11n dựa trên hệ thống MIMO kết hợp Trang 12
  16. kỹ thuật OFDM. Năm 2006, TGn đã đưa ra bản nháp đầu tiên của 802.11n để thảo luận và sửa chữa. 1.1.2 Các dạng cấu hình anten thu-phát. Các mô hình hệ thống thông tin không dây có thể được phân loại thành 4 hệ thống cơ bản gồm: SISO (Single Input Single Output) SIMO (Single Input Multiple Output) MISO (Multiple Input Single Output) MIMO (Multiple Input Multiple Output) Hệ thống SISO Hình 1.2. Hệ thống SISO Hệ thống SISO là hệ thống thông tin không dây truyền thống chỉ sử dụng một anten phát và một anten thu. Máy phát và máy thu chỉ có một bộ cao tần và một bộ điều chế, giải điều chế. Hệ thống SISO thường dùng trong phát thanh và phát hình, và các kỹ thuật truyền dẫn vô tuyến cá nhân như Wi-Fi hay Bluetooth. Dung lượng hệ thống phụ thuộc vào tỉ số tín hiệu trên nhiễu được xác định theo công thức Shanon: C log2 (1 SNR)bit/ s/ Hz Trang 13
  17. Hệ thống MISO Hình 1.3. Hệ thống MISO Hệ thống sử dụng nhiều anten phát và một anten thu được gọi là hệ thống MISO. Hệ thống này có thể cung cấp phân tập phát thông qua kỹ thuật Alamouti từ đó cải thiện lượng tín hiệu hoặc sử dụng Beamforming để tăng hiệu suất phát và vùng bao phủ. Khi máy phát biết được thông ti kênh truyền, dung lượng hệ thống tăng theo hàm logarit của số anten phát và có thể được xác định gần đúng theo công thức: C log2 (1 N.SNR)bit/ s/ Hz Hệ thống SIMO Hình 1.4. Hệ thống SIMO Hệ thống sử dụng một anten phát và nhiều anten thu được gọi là hệ thống SIMO. Trong hệ thống này máy thu có thể lựa chọn hoặc kết hợp tín hiệu từ các anten thu nhằm tối đa tỷ số tín hiệu trên nhiễu thông qua các giải thuật beamforming hoặc MMRC (Maximal- Ratio Receive Combining). Khi máy thu biết thông tin kênh truyền, dung lượng hệ thống tăng theo hàm logarit của số anten thu, được tính theo công thức: Trang 14
  18. C log2 (1 M.SNR)bit/ s/ Hz Hệ thống MIMO Hình 1.5. Hệ thống MIMO Hệ thống MIMO là hệ thống sử dụng đa anten cả nơi phát và nơi thu. Hệ thống có thể cung cấp phân tập phát nhờ đa anten phát, cung cấp phân tập thu nhờ vào đa anten thu nhằm tăng chất lượng hệ thống hoặc thực hiện Beamforming tại nơi phát và nơi thu để tăng hiệu suất sử dụng công suất, triệt can nhiễu. Ngoài ra dung lượng hệ thống có thể cải thiện đáng kể nhờ vào độ lợi ghép kênh cung cấp bởi kỹ thuật mã hoá không gian - thời gian V-BLAST. Khi thông tin kênh truyền được biết tại cả nơi phát và thu, hệ thống có thể cung cấp độ lợi phân tập cực cao và độ lợi ghép kênh cực đại, dung lượng hệ thống trong trường hợp phân tập cực đại có thể xác định theo công thức: C log2 (1 M.N.SNR)bit/ s/ Hz 1.1.3 Một số ứng dụng tiêu biểu. 1.1.3.1 Chuẩn 802.11n Mạng máy tính cục bộ không dây (WLAN: wireless LAN ), còn gọi tắt là WiFi (Wireless Fidelity) đầu tiên được IEEE chuẩn hoá vào năm 1997 và được gọi là 802.11. Chuẩn này hoạt động trong dải tần vô tuyến 2.4Ghz với tốc độ chỉ đạt được là 2Mbps. Tốc độ này quá thấp cho các ứng dụng. Vì vậy, IEEE đã phát triển các chuẩn mới. Năm 1999, các chuẩn 802.11a/b được chấp thuận và sản phẩm thương mại đầu tiên ra đời năm 2001. Các mạng WLAN đã phát triển vượt bậc nhờ Trang 15
  19. giá thành ngày càng giảm, được tích hợp sẵn trong các thiết bị xách tay và nhất là sự tiện nghi cho người sử dụng khi truy cập mạng mà không cần dây nối. Đến nay, mạng WLAN đã được phát triển thêm rất nhiều chuẩn, trong đó nổi bật là 802.11a, 802.11b, 802.11g, 802.11n và gần đây là 802.11ac. Trong đó, chuẩn 802.11n sử dụng kỹ thuật MIMO-OFDM nên tốc độ đạt trên 100Mbps (tối đa là 600 Mbps). Wireless LAN không những hỗ trợ thiết lập mạng cục bộ mà còn cho phép thiết lập mạng ngang hàng peer-to-peer (adhoc network) giữa các thiết bị. Vì vậy, mạng này không chỉ hiện diện trên các máy tính xách tay, các thiết bị hỗ trợ cá nhân (PDA), mà còn xuất hiện ở nhiều thiết bị giải trí đa phương tiện, các thiết bị văn phòng. Thành công của mạng wireless LAN đã thúc đẩy việc phát triển nhanh mạng máy tính với quy mô lớn hơn và có nhiều tính năng hơn. Mạng máy tính không dây diện rộng (Wireless MAN) được nghiên cứu và thử nghiệm, chuẩn 802.16 ra đời. Sự phát triển cực nhanh đó cho thấy mối quan tâm của thế giới dành cho mạng máy tính không dây cục bộ và các thế hệ sau của nó là rất lớn. 1.1.3.2 Wimax IEEE 802.16 còn được gọi với tên WiMAX (Worldwide Interoperability for Microwave Access) được phát triển trong những năm gần đây. Chuẩn 802.16 đầu tiên được công bố vào tháng 12 năm 2001, dành cho hệ thống không dây dải rộng cố định điểm – đa điểm (fixed point to multipoint broadband wireless system) hoạt động trong vùng phổ tần đăng ký (licensed spectrum) từ 10 đến 66 GHz. Trên thực tế, WiMax hoạt động tương tự WiFi nhưng ở tốc độ cao và khoảng cách lớn hơn rất nhiều cùng với một số lượng lớn người dùng. Một hệ thống WiMAX gồm 2 phần cơ bản là trạm phát và trạm thu. Trạm phát giống như các trạm BTS trong mạng thông tin di động với công suất lớn có thể phủ sóng một vùng rộng tới 8000 km2. Trạm thu có thể là các anten nhỏ như các card mạng kết nối vào hoặc được thiết lập sẵn trên bo mạch chủ bên trong các máy tính. Các trạm phát BTS được kết nối tới mạng Internet thông qua các đường truyền tốc độ cao dành riêng hoặc có thể được nối tới một BTS khác như một trạm trung chuyển bằng đường Trang 16
  20. truyền thẳng (line of sight) và chính vì vậy WiMAX có thể phủ sóng đến những vùng rất xa. 1.1.3.3 Công nghệ 4G. Truyền thông vô tuyến thế hệ thứ 4 là các hệ thống di động băng rộng. Với hệ thống này, các thiết bị di động có khả năng truyền tải các dữ liệu, âm thanh và hình ảnh với chất lượng cao. Đồng thời, các nhà thiết kế kỳ vọng sẽ có thể cho phép các thiết bị di động chuyển vùng (roaming) tự động qua các công nghệ không dây khác nhau. Kỹ thuật MIMO-OFDM cho phép truyền tín hiệu với tốc độ cao, tránh được cảICI và ISI. Vì vậy, kỹ thuật MIMO-OFDM là công nghệ then chốt của truyền thông vô tuyến thế hệ thứ tư (4G). 1.2 Giới thiệu về thiết bị FPGA. 1.2.1 Định nghĩa FPGA. Field-programmable gate array (FPGA) là vi mạch dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. (Chữ field ở đây muốn chỉ đến khả năng tái lập trình “bên ngoài” của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn). Vi mạch FPGA được cấu thành từ các bộ phận: Các khối logic cơ bản lập trình được (logic block) Hệ thống mạch liên kết lập trình được Khối vào/ra (IO Pads) Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xử lý FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng. Trang 17
  21. Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ tái lập trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và khác biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối lượng lớn cổng logic (logic gate), so với các vi mạch bán dẫn lập trình được có trước nó. Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL, các hãng sản xuất FPGA lớn như Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quá trình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu này như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả các bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL (còn gọi là mã RTL). 1.2.2 Ứng dụng của FPGA Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng không, vũ trụ, 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 nhận dạng ảnh, nhận dạng tiếng nói, mật mã học, mô hình phần cứng máy tính Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớp những bài toán phức tạp mà trước kia chỉ thực hiện nhờ 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 những bài toán đòi hỏi khối lượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực. Trang 18
  22. 2 CHƯƠNG 2: LÝ THUYẾT VÀ CÔNG CỤ THIẾT KẾ Bên cạnh những điều kiện về kênh truyền, cấu trúc của hệ thống MIMO cũng sẽ ảnh hưởng lớn đến chất lượng và năng suất của hệ thống. Thêm vào đó, phương pháp xử lý tín hiệu sẽ ảnh hưởng đến cấu trúc của bộ phát và bộ thu. Nhìn chung, cấu trúc của hệ thống MIMO có thể được phân thành hai nhóm: Mã hóa không gian- thời gian (STC) và đa hợp phân chia theo không gian (SDM). STC nâng cao chất lượng và năng suất của hệ thống bằng cách mã hóa ở các nhánh bộ truyền khác nhau trong khi đó SDM nâng cao tốc độ truyền thông tin bằng cách truyền cách chia nguồn thông tin thành những luồng nhỏ hơn và truyền trên cùng một dải tần. Bằng cách sử dụng các kỹ thuật đầu thu thích hợp, có thể đạt được chất lượng và hiệu quả hệ thống nhờ hai kỹ thuật trên. Nội dung trong chương này sẽ tập trung giới thiệu về hệ thống MIMO nhóm STC, đồng thời, sẽ giới thiệu các công cụ thiết kế hệ thống trên FPGA là DSP Builder và board Arria V GT. 2.1 Lý thuyết về MIMO. 2.1.1 Khái niệm MIMO. Nhu cầu về dung lượng hệ thống di động, không dây, internet tăng lên nhanh chóng trên thế giới. Tuy nhiên phổ tần lại giới hạn, do đó việc tăng hiệu quả sử dụng phổ tần là điều cần thiết. Việc tăng hiệu quả sử dụng phổ tần có thể cao hơn nữa khi sử dụng nhiều anten ở đầu phát và đầu thu. MIMO (Multiple Input Multiple Output) là hệ thống truyền thông điểm-điểm với đa anten ở đầu phát và đầu thu (Hình 2.1). Những nghiên cứu cho thấy hệ thống MIMO có thể tăng tốc độ dữ liệu, giảm BER, tăng vùng bao phủ hệ thống vô tuyến mà không cần tăng công suất hay băng thông. Chí phí trả cho tăng tốc độ đường truyền chính là chi phí triển khai hệ thống anten, không gian hệ thống tăng và độ phức tạp xử lý tín hiệu số cũng tăng. Trang 19
  23. 2.1.2 Các kỹ thuật phân tập. Trong các hệ thống thông tin vô tuyến di động, các kỹ thuật phân tập được sử dụng rộng rãi để giảm ảnh hưởng của Fading đa đường và cải thiện độ tin cậy của truyền dẫn mà không phải tăng công suất phát hoặc mở rộng băng thông. Kỹ thuật phân tập dựa trên các mô hình mà ở đó tại bộ thu sẽ nhận được các bản sao chép của tín hiệu phát, tất cả các sóng mang sẽ có cùng một thông tin nhưng sự tương quan về Fading thống kê là rất nhỏ. Ý tưởng cơ bản của phân tập là ở chỗ, nếu hai hoặc nhiều mẫu độc lập của tín hiệu được đưa tới và các mẫu đó bị ảnh hưởng của Fading là độc lập với nhau, có nghĩa là trong số chúng, có những tín hiệu bị ảnh hưởng nhiều, trong khi các mẫu khác bị ảnh hưởng ít hơn. Điều đó có nghĩa là khả năng của các mẫu đồng thời chịu ảnh hưởng của Fading dưới một mức cho trước là thấp hơn nhiều so với khả năng một vài mẫu độc lập bị nằm dưới mức đó. Do vậy, bằng cách kết hợp một cách thích hợp các mẫu khác nhau sẽ dẫn tới giảm ảnh hưởng của Fading và do đó tăng độ tin cậy của việc phát tín hiệu. Một số phương pháp phân tập được sử dụng để có được chất lượng như mong muốn tương ứng với phạm vi phân tập được giới thiệu, các kỹ thuật phân tập được phân lớp thành phân tập thời gian, tần số và phân tập không gian. 2.1.2.1 Phân tập thời gian. Phân tập theo thời gian có thể thu được qua mã hóa và xen kênh. Sau đây ta sẽ so sánh hai trường hợp: truyền ký tự liên tiếp và dùng xen kênh khi độ lợi kênh truyền rất nhỏ. Trang 20
  24. h t t Hình 2.1. Phân tập theo thời gian. Từ hình vẽ ta thấy rằng: từ mã x2 bị triệt tiêu bởi Fading nếu không dùng bộ xen kênh, nếu dùng bộ xen kênh thì mỗi từ mã chỉ mất một ký tự và ta có thể phục hồi lại từ 3 ký tự ít bị ảnh hưởng bởi Fading. Phân tập thời gian có thể đạt được bằng cách truyền dữ liệu giống nhau qua những khe thời gian khác nhau, tại nơi thu các tín hiệu Fading không tương quan với nhau. Khoảng cách thời gian yêu cầu ít nhất bằng thời gian nhất quán của kênh truyền hoặc nghịch đảo của tốc độ Fading. 1 c ( 2.1) fd v. fc Mã điều khiển lỗi thường được sử dụng trong hệ thống truyền thông để cung cấp độ lợi mã (coding gain) so với hệ thống không mã hóa. Trong truyền thông di động, mã điều khiển lỗi kết hợp với xen kênh để đạt được sự phân tập thời gian. Trong trường hợp này, các phiên bản của tín hiệu phát đến nơi thu dưới dạng dư thừa trong miền thời gian. Khoảng thời gian lặp lại các phiên bản của tín hiệu phát được quy định bởi thời gian xen kênh để thu được Fading độc lập ở ngõ vào bộ giải mã. Vì tốn thời gian cho bộ xen kênh dẫn đến trì hoãn việc giải mã, kỹ thuật này thường hiệu quả trong môi trường Fading nhanh, ở đó thời gian nhất quán của kênh truyền nhỏ. Trang 21
  25. Đối với kênh truyền Fading chậm nếu xen kênh quá nhiều thì có thể dẫn đến trì hoãn đáng kể. 2.1.2.2 Phân tập tần số. Trong phân tập tần số, sử dụng các thành phần tần số khác nhau để phát cùng một thông tin. Các tần số cần được phân chia để đảm bảo bị ảnh hưởng của fading một cách độc lập. Khoảng cách giữa các tần số phải lớn hơn vài lần băng thông nhất quán để đảm bảo rằng fading trên các tần số khác nhau là không tương quan với nhau. Trong truyền thông di động, các phiên bản của tín hiệu phát thường được cung cấp cho nơi thu ở dạng dư thừa trong miền tần số còn được gọi là trải phổ, ví dụ như trải phổ trực tiếp, điều chế đa sóng mang và nhảy tần. Kỹ thuật trải phổ rất hiệu quả khi băng thông nhất quán của kênh truyền nhỏ. Tuy nhiên, khi băng thông nhất quán của kênh truyền lớn hơn băng thông trải phổ, trải trễ đa đường sẽ nhỏ hơn chu kỳ của tín hiệu. Trong trường hợp này, trải phổ là không hiệu quả để cung cấp phân tập tần số. Phân tập tần số gây ra sự tổn hao hiệu suất băng thông tùy thuộc vào sự dư thừa thông tin trong cùng băng tần số. 2.1.2.3 Phân tập không gian. Phân tập không gian còn gọi là phân tập anten. Phân tập không gian được sử dụng phổ biến trong truyền thông không dây dùng sóng viba. Phân tập không gian sử dụng nhiều anten hoặc chuỗi array được sắp xếp trong không gian tại phía phát hoặc phía thu. Các anten được phân chia ở những khoảng cách đủ lớn, sao cho tín hiệu không tương quan với nhau. Yêu cầu về khoảng cách giữa các anten tùy thuộc vào độ cao của anten, môi trường lan truyền và tần số làm việc. Khoảng cách điển hình khoảng vài bước sóng là đủ để các tín hiệu không tương quan với nhau. Trong phân tập không gian, các phiên bản của tín hiệu phát được truyền đến nơi thu tạo nên sự dư thừa trong miền không gian. Không giống như phân tập thởi gian và tần số, phân tập không gian không làm giảm hiệu suất băng thông. Đặc tính này rất quan trọng trong truyền thông không dây tốc độ cao trong tương lai. Trang 22
  26. Tùy thuộc vào việc sử dụng nhiều anten hoặc ở nơi phát hoặc nơi thu mà người ta chia phân tập không gian thành ba loại: Phân tập anten phát (hệ thống MISO) Phân tập anten thu (hệ thống SIMO) Phân tập anten phát và thu (hệ thống MIMO). 2.1.3 Độ lợi trong hệ thống MIMO. 2.1.3.1 Độ lợi Beamforming. Beamforming giúp hệ thống tập trung năng lượng bức xạ theo hướng mong muốn giúp tăng hiệu quả công suất, giảm can nhiễu và tránh được can nhiễu tới từ các hướng không mong muốn, từ đó giúp cải thiện chất lượng kênh truyền và tăng độ bao phủ của hệ thống. Để có thể thực hiện Beamforming, khoảng cách giữa các anten trong hệ thống MIMO thường nhỏ hơn bước sóng  (thông thường là  / 2 ), Beamforming thường được thực hiện trong môi trường ít tán xạ .Khi môi trường tán xạ mạnh hệ thống MIMO có thể cung cấp độ lợi ghép kênh không gian và độ lợi phân tập. Hình 2.2. Kỹ thuật Beamforming. 2.1.3.2 Độ lợi ghép kênh không gian. Hình 2.3. Ghép kênh không gian giúp tăng tốc độ truyền. Trang 23
  27. Tận dụng các kênh truyền song song có được từ đa anten tại phía phát và phía thu trong hệ thống MIMO, các tín hiệu sẽ được phát độc lập và đồng thời ra các anten (hình 2.3), nhằm tăng dung lượng kênh truyền mà không cần tăng công suất phát hay tăng băng thông hệ thống. Dung lượng hệ thống sẽ tăng tuyến tính theo số các kênh truyền song song trong hệ thống. Để cực đại độ lợi ghép kênh qua đó cực đại dung lượng kênh truyền thuật toán V-BLAST (Vertical- Bell Laboratories Layered Space- Time) được áp dụng. 2.1.3.3 Độ lợi phân tập. Hình 2.4. Phân tập không gian cải thiện SNR. Trong truyền dẫn vô tuyến, mức tín hiệu luôn thay đổi, bị Fading liên tục theo không gian, thời gian và tần số, khiến cho tín hiệu tại nơi thu không ổn định, việc phân tập cung cấp cho các bộ thu các bản sao tín hiệu giống nhau qua các kênh truyền Fading khác nhau (hinh 2.4), bộ thu có thể lựa chọn hay kết hợp hay kết hợp các bản sao tín hiệu này để giảm thiểu tốc độ sai bit BER, chống Fading qua đó tăng độ tin cậy của hệ thống. Để cực đại độ lợi phân tập, giảm BER và chống lại Fading, thuật toán STBC (Space-Time Block Code) và STTC (Space-Time Trellis Code) được áp dụng. Thực tế, để hệ thống có dung lượng cao, BER thấp, chống được Fading, ta phải có sự tương quan giữa độ lợi phân tập và độ lợi ghép kênh trong việc thiết kế hệ thống. 2.1.4 MIMO Alamounti STBC. Trong các hệ thống SISO, với một chuỗi thông tin {x1,x2,x3, ,xn} cần truyền, thông tin sẽ được truyền nối tiếp nhau, x1 rồi đến x2 , xn. Tuy nhiên, trong MIMO STBC không làm như thế, chuỗi thông tin cần truyền sẽ được sao ra vài bản tùy thuộc Trang 24
  28. vào số anten truyền, một bản sao tín hiệu tương ứng với 1 anten, được truyền vào không gian tại các thời điểm khác nhau dựa trên các anten khác nhau. Vì thế phương pháp này được gọi là kỹ thuật mã hóa khối không gian- thời gian (space-time block coding). Mô hình của alamouti là mô hình STBC đầu tiên được nhà khoa học Siavash M Alamouti giới thiệu vào năm 1998. Một số đặc điểm của Alamouti STBC: Mô hình sử dụng 2 anten phát và không giới hạn số anten thu - Nr. Điều đó có nghĩa là có thể sử dụng 1 anten thu. Bậc phân tập anten là tích của số anten phát và anten thu tương ứng là 2Nr. Alamouti STBC sẽ không cải thiện tốc độ truyền dữ liệu thay vào đó là chất lượng tín hiệu sẽ được cải thiện đáng kể. Mô hình hệ thống: Tín hiệu được truyền dựa trên 2 anten phát và được đóng gói thành một nhóm 2 symbols. Ở khe thời gian thứ nhất, symbols x1, x2 được truyền tương ứng từ anten thứ nhất và thứ hai. Ở khe thời gian thứ hai, symbols –x2* và x1* sẽ được truyền tương ứng từ anten thứ nhất và thứ hai. Tương tự như thế, symbols x3, x4 ở khe thời gian thứ ba, rồi –x4*, x3* cho khe thời gian thứ bốn. Vì vẫn cần 2 khe thời gian để truyền 2 symbols nên tốc độ sẽ không được cải thiện. Hình 2.5. Symbol được truyền qua 2 anten phát. Với Nr=1, ở đầu thu Trang 25
  29. Hình 2.6. Hệ thống Alamouti STBC 2x1 Tại khe thời gian thứ nhất tín hiệu nhận được có dạng: x1 y1 h1x1 h2 x2 n1 h1 h2 n1 ( 2.2) x2 Tại khe thời gian thứ hai tín hiệu nhận được có dạng: x* y h x* h x* n h h 2 n ( 2.3) 2 1 2 2 1 2 1 2 * 2 x1 Với: y1,y2 lần lượt là symbols nhận được ở khe thời gian thứ nhất và thứ hai h1,h2 lần lượt là hàm truyền từ anten thứ nhất và thứ hai đến anten thu x1,x2 là symbols truyền đi n1,n2 là nhiễu tại khe thời gian thứ nhất và thứ hai Có thể viết gọn lại bằng cách kết hợp (2.2) x1 y1 h1x1 h2 x2 n1 h1 h2 n1 ( 2.2)và liên hợp phức x2 của (2.3): ℎ ℎ ∗ = ∗ ∗ + ∗ = + ∗ ( 2.4) ℎ −ℎ Trang 26
  30. ℎ ℎ Với = ∗ ∗, cần tìm nghịch đảo của H để có thể giải hệ phương trình ℎ −ℎ tìm được . Với định nghĩa hàm đảo Pseudo của ma trận: = () ( 2.5) Nhân vào phương trình (2.4): = ( ) ∗ = ( ) + ∗ = + ( ) ∗ ( 2.6) Kết quả ở (2.6) cho thấy tín hiệu nhận được bao gồm tín hiệu phát và bộ phận của nhiễu. sau đó có thể được đưa qua bộ Maximum likelihood Decoder để chọn ra tín hiệu phát phù hợp. Tổng quát với Nr=i: Hình 2.7. Alamouti STBC với nhiều anten thu Tại đầu phát, thông tin được truyền tại thời điểm m và tiếp đó một khe thời gian: ∗ () ( + 1) () − ( + 1) = = ∗ ( 2.7) () ( + 1) ( + 1) () Trang 27
  31. Tại đầu thu, anten thu thứ i , () ℎ ℎ () () ∗ = ∗ ∗ + ∗ ( + 1) ℎ −ℎ ( + 1) ( + 1) () () = + ∗ ( 2.8) ( + 1) ( + 1) SNR tại anten thứ i, = (|ℎ| + |ℎ| ) ( 2.9) SNR cho Nr anten: = ∑(|ℎ| + |ℎ| ) ( 2.10) Nhìn chung, mô hình alamouti STBC có chất lượng tốt hơn so với các hệ thống SISO. Điều đó thể hiện ở tỉ lệ lỗi bit BER. BER thường được tính theo hàm xác suất: = (1 − ) / ( 2.11) Trong đó erf là hàm xác suất lỗi, khác nhau đối với các kỹ thuật điều chế khác nhau nhưng nhìn chung chúng tỉ lệ với SNR. SNR càng lớn thì BER càng tốt. SNR của một hệ thống SISO có thể tính bằng |ℎ| . So sánh với (2.11), ta có thể nhận thấy STBC cho BER tốt hơn SISO ngay cả khi dung cùng một công suất phát. 2.1.5 MIMO – STBC 2x2. Xét hệ thống MIMO STBC 2 x 2: Trang 28
  32. Hình 2.8. Mô hình STBC 2x2 Xét tín hiệu truyền đi sau. Cần lưu ý là tốc độ so với hệ thống SISO vẫn không thay đổi do vẫn tốn 2 khe thời gian để truyền 2 symbols: Hình 2.9. Mô hình STBC 2x2 Tại khe thời gian thứ nhất, tín hiệu thu được có dạng: ℎ ℎ = + ( 2.12) ℎ ℎ Và tín hiệu nhận được ở khe thời gian thứ hai: ∗ ℎ ℎ − = ∗ + ( 2.13) ℎ ℎ Trang 29
  33. Trong đó: lần lượt là tín hiệu thu được tại anten thứ nhất và thứ 2 tại thời điểm thứ nhất, là tín hiệu thu được tại anten thứ nhất và thứ 2 tại thời điểm thứ 2. Và hij là hàm truyền từ anten phát thứ j đến anten thứ i. là nhiểu xảy ra tại thời điểm thứ nhất, và tương ứng với thời điểm thứ 2 là . Kết hợp cả hai thời điểm, hai khe thời gian ta được: ℎ ℎ ℎ ℎ ∗ = ∗ ∗ + ∗ ( 2.14) ℎ −ℎ ∗ ∗ ∗ ∗ ℎ −ℎ Tương tự như trên, để giải tìm được tín hiệu truyền ta cần phải dựa vào khái niệm ma trận đảo Psuedo của H, = () . Với ℎ ℎ ∗ ∗ ℎ ℎ ℎ ℎ ℎ ℎ = ∗ ∗ ∗ ∗ ( 2.15) ℎ ℎ −ℎ −ℎ ℎ −ℎ ∗ ∗ ℎ −ℎ |ℎ| + |ℎ| + |ℎ| + |ℎ| 0 = 0 |ℎ| + |ℎ| + |ℎ| + |ℎ| ( 2.16) 1 ⎡ 0 ⎤ |ℎ | + |ℎ | + |ℎ | + |ℎ | () = ⎢ ⎥ ⎢ 1 ⎥ 0 ⎣ |ℎ| + |ℎ| + |ℎ| + |ℎ| ⎦ ( 2.17) Khi đó Trang 30
  34. = ( ) ∗ ( 2.18) ∗ Sau khi được xử lý, tín hiệu sẽ được đưa vào MLD (maximum likelihood decoder) để quyết định tính hiệu gốc. Nhờ đó, ta sẽ thu được tín hiệu ban đầu. 2.2 Công cụ thiết kế. 2.2.1 Phần mềm DSP Builder. Đề tài được thiết kế bằng phần mềm DSP Builder, đây là một tiện ích do hãng Altera thiết kế nhằm hỗ trợ người sử dụng có thể thiết kế nhanh chóng các ứng dụng về xử lý tín hiệu số. DSP Builder chạy trên nền Simulink của Matlab và thừa hưởng khả năng mô phỏng của Simulink. Do đó, để sử dụng được DSP Builder thì người dùng cần biết về Matlab và Simulink trước. DSP Buider tạo ra môi trường làm việc thân thiện để thiết kế các hệ DSP. Nhờ các khối chức năng có sẵn, việc thiết kế trở nên dễ dàng hơn. Người sử dụng có thể tạo ra những ứng dụng mong muốn và mô phỏng trên Simulink để kiểm tra kết quả. DSP Builder cung cấp công cụ chuyển đổi thiết kế thành dạng VHDL cho phép biên dịch và tổng hợp thành các cấu hình phần cứng, giúp rút ngắn thời gian biến ý tưởng thành hiện thực. Đặc điểm của DSP Builder là nó có các khối chứa bít và chu kỳ chính xác nên thực hiện được các chức năng về số học, lưu trữ. Chúng có thể tích hợp những chức năng phức tạp bằng cách sử dụng các MegaCore Functions trong DSP Builder model. Các Functions này tăng cường sức mạng cho DSP Builder và mở ra khả năng phát triển rộng lớn. Error! Reference source not found. trình bày các cách biên dịch để chuyển từ sơ đồ thiết kế xuống phần cứng. Trang 31
  35. Hình 2.10. Quy trình thiết kế của DSP Builder Matlab Simulink tạo ra một model, sử dụng kết hợp các các khối DSP Builder và các khối của Simulink. Biểu diễn mô phỏng RTL (Register Transfer Level): DSP Builder hỗ trợ mô phỏng cho phần mềm ModelSim bằng các Tcl scripts. Có thể sử dụng VHDL đã được tạo ra để mô phỏng bằng các công cụ khác. Sử dụng các file do khối DSP Builder SignalCompiler tạo ra để tổng hợp RTL. DSP Builder hỗ trợ các Tcl scripts dùng để tổng hợp tự động bằng các chương trình phần mềm khác như: Quartus II, Synplify, Leonardo Spectrum. Trang 32
  36. Trong khóa luận này, việc biên dịch thiết kế được thực hiện bằng phần mềm Quartus II phiên bản 13.1 và phải trên nền Windows 64 bit. 2.2.2 Thư viện DSP Builder. Hình 2.11. Thư viện của DSP Builder Hình 2.11 trình bày các nhóm thư viện của DSP Builder. Tùy các phiên bản khác nhau thì DSP Builder sẽ có các thư viện thay đổi. Nhưng nhìn chung thì thư viện bao gồm các khối chức năng cơ bản như sau: Thư viện AltLab: Đây là thư viện chứa các khối hỗ trợ thiết kết như: khối chọn loại linh kiện lập trình, khối đưa một thiết kế VHDL hoặc Verilog HDL vào trong một subsystem, khối trả về các thông tin: chu kỳ lấy mẫu, số bit tối đa cần trong quá trình mô phỏng và giá trị tối đa hoặc tối thiểu nhận khi mô phỏng. Trong thư viện có hai khối quan trọng là khối Khối SignalCompiler và Khối SignalTap II Analysis: Trang 33
  37. Hình 2.12. Hoạt động của khối Signal Compiler. Khối Signal Compiler là khối quan trọng nhất trong DSP Builder. Hình 2.12 trình bày giao diện khi chạy Signal Compiler. Khối này có chức năng sau: Chuyển đổi thiết kế Simulink sang ngôn ngữ RTL VHDL Tạo ra file kiểm tra bằng ngôn ngữ VHDL hoặc Verilog Tạo ra Tcl scripts cho Quartus II biên dịch, hoặc cho các phần mềm khác như: Synplify, Precision RTL, LeonardoSpectrumTM và ModelSim. Trang 34
  38. Cho phép tạo ra file SignalTap II (.stp) Tạo ra file dùng các khối định dạng trong Quartus II (.bsf) Khối SignalTap II Analysis dùng để kiểm tra các tín hiệu bên trong linh kiện khi hệ thống đang chạy. SignalTap II Analysis có thể dùng để triggers, cấu hình bộ nhớ, và hiển thị dạng sóng. Đề tài sử dụng công cụ này để kiểm tra từng khối chức năng và quá trình xử lý dữ liệu của cả hệ thống. Thư viện Arithmetic: Thư viện gồm các khối dùng cho phép tính số học như so sánh, vi phân, tích phân, nhân, cộng, khai căn Thư viện Board: Board được sử dụng trong đề tài là Board Anten. Khi muốn kết nối với phần cứng nào của board, ta chỉ cần thêm các khối trong thư viện vào mô hình thiết kế. Thư viện Complex Type: Thư viện cung cấp các hàm liên quan đến số phức như: cộng trừ số phức, tính biên độ, pha Thư viện Gate and Control: Đây là thư viện cung cấp các khối về điều khiển đường đi của dữ liệu và các cổng logic như đa hợp, giải đa hợp, flip flop, cổng AND, OR, đảo Thư viện IO and Bus: Thư viện này cung cấp các khối vào/ra và bus như: chuyển đổi bus (ví dụ chuyển từ bus 20 bit sang bus 16 bit, bỏ đi 4 bit), tách bit, nguồn, mass, hằng số Thư viện Rate Change: Thư viện này cung cấp các khối để thay đổi tốc độ trong model, chủ yếu dùng khi ta muốn thiết kế chương trình có nhiều hơn 1 clock. Khối quan trọng nhất trong thư viện này là khối PLL, và khối này chỉ có thể sử dụng được khi đặt nó ở mức cao nhất của model. Đồng thời, các khối sử dụng kết quả của PLL phải là subsystem chứ không đồng mức với PLL. Thư viện Storage: Thư viện Lưu trữ cung cấp các khối nhớ như ROM, FIFO, LUT (look-up table: lưu trữ dữ liệu trong bảng tìm kiếm) Trang 35
  39. Thư viện MegaCore Functions: Các MegeCore Functions là những khối có một chức năng hoàn chỉnh riêng biệt, nhưng DSP Builder không cung cấp sẵn các MegaCore Functions này. Các MegaCore Functions này có thể cài đặt thêm và thường được điều khiển rất phức tạp. 2.3 Phần cứng thực hiện. 2.3.1 Giới thiệu board Arria V GT Hình 2.13. Board Anten. Hình 2.13 là kit Development Arria V GT của hãng Altera. Kit này cung cấp một môi trường thiết kế hoàn chỉnh, bao gồm tất cả các phần cứng và phần mềm mà người sử dụng cần để phát triển tất cả những thiết kế FPGA và tiến hành kiểm tra chúng trong môi trường hệ thống. Kit có tiêu chuẩn RoHS và bao gồm các đặc điểm như sau: Hai FPGA cho thiết kế ở mức hệ thống là Arria V GT: 504000 phần tử logic (LEs), đóng gói F1517, cho tốc độ truyền tải lên tới 10.3125 Gb/s. Ba khe nhập/xuất gồm: 2 khe HSMC tốc độ cao và 1 khe FMC Trang 36
  40. SDRAM DDR3 với bộ nhớ 2Gb, QDR II+ với bộ nhớ 4.5Mb và bộ nhớ flash 1Gb. Hai kết nối SFP+ Kết nối SMAs và Samtec Bull’s Eye tốc độ cao. Có thể đo công suất riêng biệt trên mỗi chip. 2.3.2 Các thành phần trên board Arria V GT. 2.3.2.1 Thiết bị Anten 5AGTFD7K3F40I3N Trên board có 2 thiết bị quan trọng là FPGA1 và FPGA 2 họ Arria V GT với 1517 chân FineLine BGA 504000 phần tử logic (LEs) 190240 mô đun đáp ứng logic (ALMs) Bộ nhớ M10K là 24140 Kb Bộ nhớ MLAB là 2906 Kb 36 bộ thu phát 16 vòng lặp khóa pha (PLLs) 2312 kênh 18x18. Điện thế nội 1.15 V FPGA 1 kết nối với các thành phần sau: Các port giao tiếp: Một kết nối PCI Express 8 cạnh. Một kết nối USB 2.0 Cầu nối C2C với 29 ngõ vào LVDS, 29 ngõ ra LVDS và 8 kênh truyền nhận. Hai kênh SFP+ Trang 37
  41. Một kênh truyền nhận SMA 10 Gb/s Ba kênh truyền nhận Bull’s Eye 10 Gb/s Bộ nhớ: DDR3 SDRAM 1152 Mb với bus dữ liệu 72 bit. QDRII + SRAM 72Mb. Flash đồng bộ với bus dữ liệu 16 bít. Nhập/xuất: LED và LCD: Tám LED 2 màu xanh và đỏ. LCD hai dòng chữ. Ba LED báo hiệu chọn cấu hình Một LED báo hiệu cấu hình xong. Hai LED báo hiệu HSMC truyền/nhận. Ba LED báo hiệu cho PCI Express Năm LED báo hiệu Ethernet. Nút nhấn: Một nút nhấn reset CPU. Một nút nhấn điều khiển cấu hình cho MAX II Một nút nhấn để tải hình ảnh vào FPGA từ bộ nhớ flash. Một nút nhấn chọn hình ảnh để tải từ bộ nhớ flash. Ba nút nhấn sử dụng chung. Tám switch điều khiển. Sơ đồ kết nối của Arria V GT với các thành phần trên board như sau: Trang 38
  42. Hình 2.14. Sơ đồ kết nối Anten. Các đặc tính của Anten được mô tả trong bảng sau: Bảng 2-1. Các đặc tính của Arria V GT. Modul đáp ứng logic (ALMs) 190,240 Số phần tử logic (LEs) 504,000 Số RAM M10K 24,140 Tổng bộ nhớ RAM 27,046 Kb Đa kênh 18x18 bit 2,312 PLLs 16 Số bộ truyền/nhận 36 Loại đóng gói FBGA 1517 chân 2.3.2.2 MAX II CPLD EPM2210GF324 Board này sử dụng bộ điều khiển hệ thống MAX II CPLD EPM2210 với mục đích: Cấu hình FPFA từ bộ nhớ Flash. Giám sát công suất tiêu thụ. Ảo hóa giao diện JTAG cho giao diện đồ họa máy tính cơ bản (PC- based GUI). Trang 39
  43. Điều khiển thanh ghi cho xung clock. Điều khiển thanh ghi cho quá trình điều khiển cập nhật hệ thống. Hình 2.15. Sơ đồ khối MAX II CPLD EPM2210 2.3.3 Ứng dụng Board Test System. 2.3.3.1 Giới thiệu về Board Test System. Bộ kit bao gồm một ví dụ thiết kế và một ứng dụng được gọi là Board Test System (BTS) để kiểm tra các chức năng của board Arria V. Ứng dụng này có giao diện làm rất dễ sử dụng để thay đổi các tính năng và quan sát kết quả. Ngoài ra, có thể sử dụng BTS để kiểm tra các thành phần của board, thay đổi các thông số, quan sát hiệu suất và đo công suất sử dụng của board. Giao diện đồ họa của BTS trên máy tính giao tiếp với board thông qua bus JTAG để kiểm tra những thiết kế đang chạy trên board. Hình 2.16 là giao diện của BTS. Trang 40
  44. Hình 2.16. Giao diện Board Test System Một số thiết kế được cung cấp để kiểm tra những đặc tính chính của board. Mỗi thiết kế sẽ có dữ liệu cho một hoặc nhiều tab trong phần ứng dụng. Nếu chọn một menu cấu hình thì một thiết kế thích hợp sẽ được tải xuống FPGA. Sau khi cấu hình FPGA thành công, một số tab sẽ xuất hiện cho phép ta thực hành một số đặc tính liên quan đến board. 2.3.3.2 Sử dụng Board Test System. Menu cấu hình: Sử dụng menu cấu hình để chọn những thiết kế mà ta muốn sử dụng. Mỗi thiết kế sẽ có chức năng khác nhau khi đó sẽ có một hoặc nhiều tab tương ứng sẽ xuất hiện. Trang 41
  45. Hình 2.17. Menu cấu hình Tab thông tin hệ thống: Như hình 2.16, tab thông tin hệ thống sẽ hiển thị các thông tin sau: Thông tin trạng thái cấu hình của board. Nội dung của thành ghi MAX II Thông tin của các JTAG Địa chỉ MAC của board Một số lưu trữ chi tiết khác Tab GPIO trên FPGA 1: Tab GPIO cho phép tương tác với tất cả các thành phần nhập/xuất trên board như viết lên LCD, đọc Switch DIP, đóng tắt LED và nhận diện khi nhấn các nút nhấn. Tab Flash: Tab flash cho phép đọc và viết tất cả bộ nhớ flash lên trên board. Hình 2.18 thể hiện rõ hơn về chức năng này. Tab HSMA: Trang 42
  46. Tab HSMA cho phép kiểm tra hồi tiếp trên bộ thu phát (XCVR) và cổng CMOS. Lưu ý là phải hồi tiếp HSMA trên cổng kết nối HSMC A thì chức năng này mới làm việc được. Hình 2.19 là giao diện làm việc của HSMA. Tab SFP/SMA/C2C: Tab SFP/SMA/C2C cho phép chạy các thiết kế kiểm tra, sử dụng giao diện kênh thu phát riêng biệt trên FPGA 1. Hình 2.20 là giao diện của tab này. Tab HSMB/FMC: Tab HSMB/SMC cho phép thực hiện hồi tiếp trên XCVR và cổng CMOS FPGA 2. Hình 2.21 la giao diện của tab. Chú ý là cần hồi tiếp HSMB trên cổng kết nối HSMC B thì mới kiểm tra được chức năng này. Tab SDI/Bull’s Eye: Tab này cho phép thực hiện hồi tiếp trên cổng Bull’s Eye và SDI của FPGA 2. Tab này được thể hiện trong hình 2.22. Tab SMA: Tab SMA cho phép thực hiện hồi tiếp qua cổng SMA trên FPGA 2. Tab này có giao diện như hình 2.23. Trang 43
  47. Hình 2.18. Tab Flash Hình 2.19. Tab HSMA Trang 44
  48. Hình 2.20. Tab SFP/SMA/C2C Hình 2.21. Tab HSMB/FMC Trang 45
  49. Hình 2.22. Tab SDI/Bull's Eye Hình 2.23. Tab SMA Trang 46
  50. 3 CHƯƠNG 3: THIẾT KẾ. Trong chương 4 này sẽ trình bày việc thiết kế từng khối và ghép các khối thành hệ thống truyền thông MIMO hoàn chỉnh. Để tiện theo dõi, việc thiết kế sẽ được phân tích theo từng khối chức năng ở cả bên phát và bên thu. Ngoài ra, đề tài còn trình bày quy trình chung để thiết kế hệ thống trên phần cứng FPGA. 3.1 Mô hình thiết kế. 3.1.1 Sơ đồ khối. Mô hình hệ thống MIMO được thiết kế như hình 3.1. Hình 3.1. Mô hình thiết kế hệ thống MIMO-STBC 3.1.2 Bộ tạo dữ liệu và các tín hiệu điều khiển. Việc tạo dữ liệu để kiểm tra khả năng hoạt động của mạch được thực hiện bằng cách đặt dữ liệu trong một bảng tra, như vậy, dữ liệu ta có thể kiểm soát được. Bảng dữ liệu tạo sẵn 320 giá trị nhằm tiện cho việc mở rộng hệ thống MIMO-OFDM sau này. Hệ thống OFDM có 320 kênh con, trong đó có 64 Cyclic Prefix, 55 giá trị ‘0’ ở hai đầu của symbol, một giá trị ‘0’ ở chính giữa, và 8 kênh con dùng cho pilot. Vì Trang 47
  51. vậy, chỉ có 192 kênh còn lại được dùng cho dữ liệu. Đề tài sử dụng bộ mã hoá convolution code ½. Trong trường hợp phép đều chế QPSK, ta có mỗi symbol sẽ mang 2 bit thông tin. Vì vậy, một symbol của hệ thống sẽ mang được 192 bit thông tin. Do đó, ta sẽ đặt 192 giá trị nhị phân vào bảng tra và 192 giá trị ‘0’ tức là không có thông tin để đảm bảo thời gian chèn bit và symbol OFDM. Bộ đếm có nhiệm vụ truy xuất giá trị trong bảng tra và thực hiện chức năng làm chỉ số symbol (index_out) cho cả hệ thống. Tín hiệu data_out là dữ liệu được tạo. Tín hiệu cho phép (ena) dùng để báo hiệu cho các mạch ngẫu nhiên hoá, mã hoá kênh hoạt động. Hình 3.2 thể hiện mạch tạo dữ liệu và các tín hiệu điều khiển. Hình 3.2. Mạch tạo dữ liệu và tín hiệu điều khiển. 3.1.3 Bộ mã hóa. Bộ mã hoá kênh được sử dụng là bộ mã convolutional code, tốc độ mặc định là 1/2, chiều dài bộ mã hoá là 7 và dùng đa thức sinh là: G1 = 171OCT và G2 = 133OCT. Bộ mã hoá được thiết kế bằng cách kết hợp 6 bộ trễ (delay) và 2 cổng XOR 5 ngõ vào. Hình 3.3 trình bày bộ mã hóa Convolutional Code. Cổng in_cc là ngõ vào của bộ mã hóa, cổng out_cc là ngõ ra của bộ mã hóa. Tín hiệu sau khi qua 2 bộ XOR tương ứng với G1 và G2 của mã hóa. Ena là tín hiệu cho phép mã hóa. Trang 48
  52. Hình 3.3. Bộ mã hóa Convolutional code 3.1.4 Bộ giải mã bằng thuật toán Viterbi. Đề tài sử dụng bộ giải mã bằng thuật toán Viterbi. Kiến trúc căn bản của thuật toán Viterbi được trình bày trong hình 3.4. Thuật toán gồm bốn khối chính: khối tính khoảng cách nhánh (branch metric), khối cộng-so sánh-chọn (add compare and select), khối chọn đường tối ưu (survivor path metric), và khối quy hồi và giả mã (traceback and output decode block). Khối tính khoảng cách nhánh (branch metric) dùng đểtính khoảng cách Hamming của các bit (là 2 bit nếu sử dụng tốc độ mã là R=1/2) với các nhánh. Khối cộng-so sánh-chọn có nhiệm vụ tính tổng khoảng cách Hamming của nhánh với trạng thái hiện tại và giữ lại nhánh có khoảng cách ngắn nhất. Khối chọn đường tối ưu để tìm ra chuỗi trạng thái phù hợp nhất. Khối quy hồi và giả mã có nhiệm vụ chọn, dò lại chuỗi trạng thái tối ưu và quyết định chuỗi bit ở ngõ ra. Đây là chuỗi bit giải mã của thuật toán. Hình 3.4. Mô hình thuật toán Viterbi Trang 49
  53. Hình 3.5 là ví dụ về giải mã dùng thuật toán Viterbi cho chuỗi dữ liệu thu là (11, 00, 01, 11, 10, 10, 11). Chuỗi trạng thái phù hợp nhất được xác định bằng cách tính khoảng cách Hamming với tất cả các đường. Khi hai đường cùng gặp nhau tại một điểm, ta chỉ giữ lại đường có khoảng cách Hamming ngắn hơn. Đường cuối cùng được chọn để quyết định trạng thái ngõ ra là đường có khoảng cách Hamming ngắn nhất. Vì vậy, chuỗi dữ liệu tối ưu nhất là (11, 01, 01, 11, 11, 10,11). Khi xác định được chuỗi dữ liệu tối ưu, ta có thể xác định chuỗi dữ liệu ở ngõ ra bộ giải mã. Trong ví dụ trên, chuỗi dữ liệu sau khi giải mã là (1100100). Hình 3.5. Ví dụ giải mã dùng thuật toán Viterbi Đề tài sử dụng MegaCore để thực hiện bộ giải mã dùng thuật toán Viterbi. Khối chức năng được thể hiện trong hình 3.6. Trang 50
  54. Hình 3.6. Bộ giải mã dùng thuật toán Viterbi. Các đường tín hiệu cơ bản để điều khiển bộ giải mã được trình bày ở hình 3.7. Thuật toán Viterbi dựa vào chuỗi trạng thái phù hợp nhất. Vì vậy, việc xác định độ dài của chuỗi sẽ ảnh hưởng đến hiệu quả của bộ giải mã. Nếu chiều dài được chọn quá dài sẽ làm cho tăng các phép tính toán, sử dụng nhiều bộ nhớ, và tăng thời gian trễ. Ngược lại, nếu chọn chiều dài quá ngắn sẽ hạn chế khả năng sửa lỗi của thuật toán. Chiều dài qui hồi thường được chọn gấp 6 lần chiều dài bộ mã trong trường hợp không bỏ bớt. Trong trường hợp có bỏ bớt, chiều dài được chọn tối đa dài gấp 15 lần chiều dài bộ mã. Trong thiết kế này, chiều dài bộ mã là 7 và không sử dụng kỹ thuật bỏ bớt nên chiều dài qui hồi được chọn là 42. Chi tiết các đường tín hiệu được diễn tả ở Bảng 3-1. Các dữ liệu đến bộ giả mã là không liên tục nên dữ liệu ngõ ra của bộ giả mã là không liên tục. Các dữ liệu này sẽ được ghi vào bộ nhớ FIFO. Sau đó, tín hiệu rd_data_out sẽ đọc liên tục 192 bit dữ liệu trong bộ nhớ. Hình 3.7. Dạng sóng của các tín hiệu điều khiển của khối giải mã Viterbi. Trang 51
  55. Bảng 3-1. Ý nghĩa các đường tín hiệu của bộ giải mã Viterbi Tên đường tín hiệu Hướng Mô tả sink_val Input Tín hiệu cho phép truyền dữ liệu rr Input Ngõ vào của dữ liệu cần giải mã. eras_sym Input Ngõ này sử dụng cho kỹ thuật bỏ bớt source_rdy Input Tín hiệu cho phép truyền dữ liệu ngõ ra ber_clear Input Xóa bộ đếm BER source_val Output Báo tín hiệu ngõ ra decbit Output Ngõ ra của tín hiệu sau giải mã sink_rdy Output Cho phép truyền dữ liệu ngõ vào Chứa các giá trị chuẩn hóa, đây là thông tin normalizations Output được dùng để tránh hiện tượng tràn bộ đếm. numerr Output Số bít lỗi reset Input Khởi động lại bộ giải mã. Sử dụng trong các trường hợp đặc biệt, state_node_sync Input dùng để thiết lập điểm bắt đầu của dữ liệu vào. 3.1.5 Ánh xạ chòm sao. 3.1.5.1 Bộ ánh xạ chòm sao. Ánh xạ chòm sao là phương pháp chuyển chuỗi dữ liệu có m bit thành một điểm a+jb dạng số phức. Trong đó, số bit m phụ thuộc vào phép ánh xạ. Đề tài sử dụng kiểu điều chế QPSK với m = 2. Có các phương pháp để thiết kế bộ mapper như sử dụng cấu trúc case hoặc dùng một bảng tra (LUT) hoặc dùng bộ nhớ ROM. Ở đây, khối mapper được thiết kế bằng bảng tra. Hình 3.8 trình bày nguyên tắc của phép QPSK. Có hai bảng tra riêng được sử dụng để lưu giá trị trục đồng pha (I) và trục vuông pha (Q). Dữ liệu cần thực hiện ánh xạ sẽ đặt vào đường địa chỉ của bảng tra. Nội dung trong bảng tra lưu trữ giá trị Trang 52
  56. tương ứng với chòm sao. Dữ liệu được ánh xạ sẽ có giá trị từ -1 đến 1. Ngõ ra của bộ DAC là 14 bit. Vì vậy, đề tài chuẩn hoá tín hiệu về dạng số có dấu chấm cố định. Hình 3.8. Giản đồ chòm sao phép điều chế QPSK và 16 QAM Bảng 3-2 là các dữ liệu đặt trong bảng tra cho bộ mã hoá QPSK. Sơ đồ mạch thực hiện phép điều chế QPSK được trình bày ở hình 3.9. Bảng 3-2. Dữ liệu bảng tra của QPSK Dữ liệu vào (địa chỉ) Ngõ ra Trục I Trục Q Hệ thập Hệ nhị Giá trị Số dấu chấm Giá trị Số dấu chấm phân phân (hệ 10) cố định (hệ 10) (hệ 10) cố định (hệ 10) 0 00 0.707 5792 0.707 5792 1 01 0.707 5792 -0.707 10592 2 10 -0.707 10592 0.707 5792 3 11 -0.707 10592 -0.707 10592 Trang 53
  57. Hình 3.9. Mạch thực hiện phép điều chế QPSK. 3.1.5.2 Bộ giải ánh xạ chòm sao. Ở đầu thu, các điểm chòm sao ở bộ truyền sẽ bị thay đổi do tác động của kênh truyền. Vì vậy, bộ giải ánh xạ chòm sao phải chọn ngưỡng để xác định điểm chòm sao ở phía thu. Khối giải ánh xạ chòm sao (demapper) được thiết kế bằng ngôn ngữ Verilog. Nguyên tắc của của bộ demapper là so sánh giá trị nhận được trên đường I và Q với các điểm lân cận trong chòm sao. Điểm được chọn ở ngõ ra là điểm có gần nhất với tín hiệu nhận được. Khi sử dụng phép QPSK, bộ demapper được thực hiện đơn giản bằng cách cho giá trị ngõ ra là bit có ý nghĩa lớn nhất (MSB) của chuỗi bit nhận được. Đây là bit dấu của chuỗi dữ liệu. Dữ liệu ở ngõ ra sẽ được đặt vào bộ nhớ FIFO để chuẩn bị đi vào bộ giải mã kênh. Ở đây dữ liệu truyền có 192 giá trị do đó bộ nhớ FIFO cần 192 từ nhớ. Mỗi từ có 2 bit nhớ tương ứng với phép điều chế QPSK. Hình 3.10 là mạch thực hiện demapper. Hình 3.10. Bộ mapper và bộ nhớ FIFO Trang 54
  58. 3.1.6 Bộ điều chế MIMO-STBC. Dữ liệu ngõ vào bộ điều chế MIMO-STBC là tín hiệu đồng thời I và Q tương ứng với giá trị thực và ảo. Hai tín hiệu này được gộp với nhau thành tín hiệu phức và lần lượt cho qua nhánh anten 1 hoặc anten 2 nhờ bộ Demux với tín hiệu điều khiển là bộ counter. Ở khối tạo số phức, do tín hiệu vào lần lượt là giá trị I, Q với 14 bít, do đó cần thiết lập cho khối này tối thiểu là 14 bit. Tín hiệu ở nhánh anten 1 được trì hoãn một chu kì xung để thời điểm tiếp theo, nhánh anten 1 sẽ phát tín hiệu S0, nhánh anten 2 sẽ phát tín hiệu S1. Tại thời điểm thứ nhất, ngõ ra của anten 1 là S0 và anten ∗ ∗ 2 là S1. Tại thời điểm tiếp theo, anten 1 là − và anten 2 sẽ là . Các luồng tín hiệu lúc này đều ở dạng phức. Hình 3.11 là mạch thực hiện khối điều chế STBC. Hình 3.11. Mạch thực hiện điều chế MIMO-STBC. 3.1.7 Bộ giải điều chế Mạch thực hiện bộ giải điều chế STBC được thực hiện như hình 3.12. Các tín hiệu vào là các giá trị phức, được tách thành các tín hiệu thực và ảo riêng biệt sau đó truyền trên 4 nhánh khác nhau tại 2 thời điểm khác nhau bằng khối Demux. Hai tín hiệu tại thời điểm đầu tiên được trì hoãn một chu kỳ xung, tới thời điểm tiếp theo, tín hiệu tại 4 nhánh lần lượt là r1, r2, r3, r4. 4 tín hiệu này được xử lý nhân với các giá trị kênh truyền H đã ước lượng được. Trong đề tài này, các giá trị kênh truyền H được gán cố định, nên không có bộ ước lượng. Sử dụng 2 bộ cộng để cộng các tín hiệu theo bộ quyết định maximunlikelihood. Lúc này chỉ còn lại 2 đường tín hiệu, đem chia Trang 55
  59. * * * * cho hệ số H1.H1 H2 .H 2 H3.H3 H 4.H 4 sẽ được tín hiệu gốc. Mạch thiết kế bộ chia được thực hiện như hình 3.13. Hình 3.12. Mạch thực hiện giải điều chế MIMO-STBC Trang 56
  60. Hình 3.13. Mạch thiết kế bộ chia. 3.1.8 Kênh truyền 3.1.9 Bộ đếm lỗi bit Bộ đếm tốc độ bit có nhiệm vụ kiểm tra hai luồng dữ liệu ở phía thu và phía phát. Nếu phát hiện thấy một sai biệt, bộ đếm lỗi sẽ tăng biến đếm lên 1 bằng cách cho phép bộ counter. Phần dò lỗi được thực hiện bằng cổng XOR. Ngõ ra của cổng XOR sẽ cho phép bộ đến tăng trị số đếm. Mạch thực hiện đếm BER được trình bày ở Hình 3.14. Hình 3.14. Mạch đếm lỗi bit Trang 57
  61. 3.2 Quy trình thiết kế trên FPGA 3.2.1 Mô tả ban đầu về thiết kế Khi xây dựng một chip khả trình FPGA với ý nghĩa dành cho một ứng dụng riêng biệt, vì xuất phát từ mỗi ứng dụng trong thực tiễn cuộc sống, phải đặt ra yêu cầu phải thiết kế IC thực hiện tối ưu nhất những úng dụng đó. Bước đầu tiên của quy trình thiết kế này có nhiệm vụ tiếp nhận các yêu cầu của thiết kế và xây dựng nên kiến trúc tổng quát của thiết kế. Mô tả thiết kế: Trong bước này, từ những yêu cầu của thiết kế và dựa trên khả năng của công nghệ hiện có, người thiết kế kiến trúc sẽ xây dựng nên toàn bộ kiến trúc tổng quan cho thiết kế. Nghĩa là trong bước này, người thiết kế kiến trúc phải mô tả được những vấn đề sau: Số lượng các khối cần thiết kế. Chức năng của mỗi khối. Hoạt động cụ thể của thiết kế và mỗi khối. Phân tích các kỹ thuật được sử dụng trong thiết kế và các công cụ, phần mềm hỗ trợ thiết kế. Một thiết kế có thể được mô tả sử dụng ngôn ngữ mô tả phần cứng như VHDL hay Verilog HDL hoặc có thể mô tả qua bản vẽ mạch. Một thiết kế có thể vừa bao gồm bản vẽ mạch mô tả sơ đồ khối chung, vừa có thể dùng ngôn ngữ HDL để mô tả chi tiết cho các khối trong sơ đồ. Mô phỏng chức năng: Sau khi mô tả thiết kế, người thiết kế cần mô phỏng tổng thể thiết kế về mặt chức năng để kiểm tra thiết kế có hoạt động đúng với các chức năng yêu cầu. Tổ hợp logic: là quá trình tổng hợp các mô tả thiết kế thành sơ đồ bố trí mạch (netlist) được thể hiện trong hình 3.15. Quá trình này chia thành 2 bước: chuyển đổi các mã RTL, mã HDL thành mô tả dưới dạng các biểu thức đại số Boolean và dựa Trang 58
  62. trên các biểu thức này kết hợp với thư viện tế bào chuẩn sẵn có để tổng hợp nên một thiết kế tối ưu. Hình 3.15. Tổ hợp logic Hiệu chỉnh các kết nối (Datapath Schematic): Nhập netlist và các ràng buộc về thời gian vào một công cụ phân tích thời gian. Công cụ phân tích này sẽ tách rời tất cả các kết nối của thiết kế, tính thời gian trễ của các kết nối dựa trên các ràng buộc. Dựa trên kết quả phân tích của công cụ phân tích, xác định các kết nối không thỏa mãn về thời gian. Tùy theo nguyên nhân dẫn đến không thỏa mãn mà ta có thể viết lại mã và tiến hành lại tổng hợp logic hoặc hiệu chỉnh lại các ràng buộc. 3.2.2 Thực thi Ta có sơ đồ bố trí netlist mô tả tổng thể thiết kế tại mức cổng (chỉ gồm các cổng logic cổng cơ bản và các mạch logic khác như MUX). Quá trình này sẽ đặt sơ đồ netlist này lên chip, gọi là quá trình thực thi. Quá trình gồm các bước: Ánh xạ: (mapping hay còn gọi là fitting): Chuẩn bị dữ liệu đầu vào, xác định kích thước các khối. Các khối này sẽ phải phù hợp với cấu trúc của một tế bào cơ bản của FPGA (gồm nhiều cổng logic) và đặt chúng vào các vị trí tối ưu cho việc chạy dây. Hình 3.16 cho ta hình dung rõ hơn về quá trình ánh xạ. Trang 59
  63. Hình 3.16. Sơ đồ gán chân Đặt khối và định tuyến: Đặt khối: đặt các khối ánh xạ vào các tế bào (cell) ở vị trí tối ưu cho việc chạy dây. Quá trình này thể hiện rõ trong hình 3.17. Trang 60
  64. Hình 3.17. Sơ đồ không gian gán bên trong FPGA Định tuyến: bước này thực hiện việc nối dây các tế bào, được thể hiện ở hình 3.18. Hình 3.18. Sơ đồ định tuyến Trang 61
  65. Để thực hiện việc này, chúng ta cần có các thông tin sau: Các thông tin vật lý về thư viện tế bào, ví dụ kích thước tế bào, các điểm để kết nối, định thời, các trở ngại trong khi đi dây. Một Netlist được tổng hợp sẽ chỉ ra các chi tiết các instance và mối quan hệ các hết nối bao gồm cả các đường dẫn bị hạn chế trong thiết kế. Tất cả các yêu cầu của tiến trình cho các lớp kết nối, bao gồm các luật thiết kế cho các lớp chạy dây, trở kháng và điện dung, tiêu thụ năng lượng, các luật về sự dẫn điện trong mỗi lớp. 3.2.3 Quá trình nạp và lập trình. Sau quá trình thực hiện, thiết kế cần được nạp vào FPGA dưới dạng dòng bit (bit stream). Quá trình nạp thiết kế vào FPGA thường nạp vào bộ nhớ tạm ví dụ như SRAM. Thông tin cấu hình được nạp vào bộ nhớ. Dòng bit được truyền lúc này sẽ mang thông tin định nghĩa các khối logic cũng như kết nối của thiết kế. Tuy nhiên lưu ý rằng, SRAM sẽ mất dữ liệu khi mất nguồn nên thiết kế sẽ không được lưu lại đến phiên làm việc kế tiếp. Lập trình là thuật ngữ để mô tả quá trình nạp chương trình cho các bộ nhớ không bay hơi, ví dụ như PROM. Như vậy thông tin cấu hình vẫn được lưu trữ lại khi mất nguồn. Với các kit do Altera phát triển, hãng còn hỗ trợ thêm công cụ DSP Builder. Đây là một công cụ đắc lực cho các nhà nghiên cứu, nó hỗ trợ việc thiết kế phần cứng nhờ các khối sẵn có, hay các chức năng hoàn chỉnh trong IP core, ngoài ra, nó còn hỗ trợ cả việc biên dịch và nạp trực tiếp lên board nhờ khối SignalCompiler và các Interface của các dòng board FPGA của Altera. Trong đề tài này, do xử dụng board Anten của Altera, là dòng ra đời cách đây không lâu, hiện vẫn chưa có hỗ trợ các Interface trong DSP Builder, do đó, việc nạp các thiết kế lên FPGA sẽ được tiến hành như sau: Thiết kế hệ thống trên DSP Builder. Trang 62
  66. Biên dịch và xuất ra file VHDL Sử dụng Quartus II 64 bít phiên bản từ 11.0 trở lên, tiến hành: Bước 1: Tạo Project mới Bước 2: Thêm thư viện là các file VHDL đã tạo ra ở trên. Bước 3: Chọn dòng thiết bị là Arria V GT 5AGTFD7K3F40I3N. Bước 4: Biên dịch tạo ra file *.sof Bước 5: Nạp file *.sof vào FPGA thông qua Programmer của Quartus II. Trang 63
  67. 4 CHƯƠNG 4: KẾT QUẢ. Chương này trình bày các kết quả kiểm tra một số chức năng chính của board FPGA Arria V GT bằng phần mềm Board Test System đồng thời kiểm tra kết quả của hệ thống MIMO trên mô phỏng bằng khối. Các dữ liệu ở ngõ ra thường có thời gian trễ so với dữ liệu vào. Tuy từng khối cụ thể mà thời gian trễ sẽ khác nhau. 4.1 Kết quả kiểm tra board bằng phần mềm Board Test System Hình 4.1Error! Reference source not found. đến Hình 4.9 cho ta thấy việc thực hiện được cấu hình và kiểm tra board Arria V GT bằng phần mềm Board Test System. Hình 4.1. Cấu hình menu Flash/GPIO trên FPGA 1. Trang 64
  68. Hình 4.2. Kết quả cấu hình LED, LCD hiện thị, các Switch và nút nhấn. Hình 4.3. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 1. Trang 65
  69. Hình 4.4. Kết quả kiểm tra đọc, ghi bộ nhớ RAM gắn với Chip FPGA 2. Hình 4.5. Kết quả thu phát loopback trên cổng kết nối HSMA. Trang 66
  70. Hình 4.6. Kết quả thu phát loopback trên cổng kết nối HSMB. Hình 4.7. Kết quả kiểm tra phát trên cổng kết nối FMC. Trang 67
  71. Hình 4.8. Kết quả kiểm tra phát tại Bull’s Eye. Hình 4.9. Kết quả kiểm tra thu phát qua SMA. Trang 68
  72. 4.2 Kết quả đo đạt mô hình thiết kế. 4.2.1 Bộ mã hóa kênh và giải mã Viterbi Tín hiệu qua bộ mã hóa kênh được thể hiện như hình 4.10 Hình 4.10. Tín hiệu qua mã hóa kênh Kết quả so sánh trước và sau khi điều chế được thể hiện trong hình 4.11. Tín hiệu ở phần trên là tín hiệu qua bộ mã hóa kênh, tín hiệu ở phần ở là giải điều chế và bị chậm hơn một symbol. Kết quả phân tích cho thấy tín hiệu được giải mã trùng khớp với tín hiệu trước khi mã hóa. Trang 69
  73. Hình 4.11. Tín hiệu qua bộ mã hóa kênh và giải mã 4.2.2 Bộ điều chế giản đồ chòm sao bằng QPSK Các tín hiệu điều chế QPSK là I và Q được thê hiện trong hình 4.12 và Hình 4.13 Hình 4.12. Tín hiệu phần thực QPSK Trang 70
  74. Hình 4.13. Tín hiệu phần ảo QPSK Kết quả so sánh tín hiệu trước khi ánh xạ giản đồ chòm sao và sau khi giải ánh xạ được thể hiện như hình 4.14. Hình 4.14. Tín hiệu trước khi mapper và sau khi demapper 4.2.3 Bộ mã hóa và giải mã STBC 4.2.3.1 Tín hiệu sau khi qua mã hóa STBC Tín hiệu phát trên anten 1 thể hiện trong hình 4.15 và anten 2 thể hiện trong hình 4.16 với phần trên là phần thực, phần dưới là phần ảo. Trang 71
  75. Hình 4.15. Tín hiệu anten 1 Hình 4.16. Tín hiệu anten 2 4.2.3.2 Tín hiệu sau khi qua kênh truyền Tín hiệu sau khi qua kênh truyền của anten1 và anten2 lần lượt được thể hiện trong hình 4.17 và hình 4.18 với phần thực ở trên và phần ảo ở dưới. Trang 72
  76. Hình 4.17. Tín hiệu anten 1 sau khi qua kênh truyền Hình 4.18. Tín hiệu anten 2 sau khi qua kênh truyền 4.2.3.3 Tín hiệu sau khi giải mã STBC Tín hiệu sau khi giải điều chế STBC đúng với tín hiệu ban đầu và bị châm hơn. Kết quả được thể hiện trong hình 4.19. Trang 73
  77. (1) (2) Hình 4.19. So sánh tín hiệu sau giải điều chế STBC và tín hiệu gốc (1): Phần thực (2): Phần ảo Trang 74
  78. 5 CHƯƠNG 5: KẾT LUẬN. Đây là chương tổng kết các kết quả của đề tài và đánh giá kết quả đo đạt được, đồng thời chương này trình bày các hướng nghiên cứu để phát triển đề tài. 5.1 Kết luận Đề tài đã hoàn thành mục tiêu ban đầu đặt ra là nghiên cứu, thiết kế hệ thống MIMO băng DSP Builder trên nền Simulink của Matlab và hơn hết là nạp thành công một thiết kế lên Board Arria V GT. Việc thiết kế bằng DSP Builder cho phép đề tài tận dụng các khối chức năng của DSP Builder. Ngoài ra, DSP Builder không những cho phép xây dựng các khối từ ngôn ngữ lập trình Verilog hoặc VHDL mà còn cho phép sử dụng các MegaCore của Altera. Điều này giúp tiết kiệm thời gian thực hiện lại các khối cơ bản. Hệ thống MIMO của đề tài bao gồm các khối chức năng: khối mã hóa chập – giải mã bằng thuật toán Viterbi, khối ánh xạ chòm sao bằng phương pháp QPSK, khối điều chế và giải điều chế MIMO-STBC, khối tạo kênh truyền H. Hệ thống MIMO-STBC hoàn chỉnh được thực hiện đúng với lý thuyết. Đề tài có nhiều đóng góp trong việc chuyển các cơ sở lý thuyết thành các thiết kế trên phần cứng cho một hệ thống OFDM hoàn chỉnh trên phần cứng. Khi thiết kết trên phần cứng, ngoài yêu cầu về thuật toán mà còn yêu cầu về kiểm soát và quản lý dữ liệu giữa các tầng có độ phức tạp cao. Việc thiết kế trên phần cứng nhằm mở ra khả năng nghiên cứu các hệ thống truyền dẫn số tiên tiến trên phần cứng. Các nghiên cứu về lĩnh vực thiết kế các hệ thống truyền dẫn số trên phần cứng sẽ góp phần vào sự phát triển lĩnh vực thiết kế SoC hoặc SoPC còn mới mẻ tại Việt Nam. Đây cũng là cơ sở để hướng đến thiết kế vi mạch tích hợp cho viễn thông. Tuy nhiên, do phần cứng này khá mới, chưa có nhiều nghiên cứu và chưa có sự hỗ trợ của hãng Altera nên quá trình nghiên cứu còn nhiều khó khăn, như cấu trúc board khá phức tạp, phần mềm DSP Builder chua hỗ trợ Interface cho thiết bị, quá trình nạp board phải đi trung gian, nhiều giai đoạn. Trang 75
  79. 5.2 Hướng phát triển Đề tài là cơ sở thực hiện nghiên cứu và cải tiến hệ thống MIMO-OFDM hoàn chỉnh theo các chuẩn như 801.11g, 802.11n, 802.16. Ngoài ra, đề tài còn mở ra khả năng nghiên cứu và phát triển các hệ thống truyền thông tiên tiến ở dải gốc. Về phần cứng, hiện tại hãng Altera hợp tác cùng TI phát triển một bộ kit hoàn chỉnh để thu phát sóng vô tuyến (RF). Điều này mở ra một hướng nghiên cứu các kỹ thuật vô tuyến thực tế. Về thuật toán: Các thuật toán phức tạp sẽ gặp nhiều khó khăn khi thiết kế trên phần cứng. Tuy nhiên, các lĩnh vực cần tiếp tục nghiên cứu để hoàn chỉnh hệ thống như: phương pháp giảm tỉ số đỉnh trên trung bình (PAR), thử nghiệm các phương pháp mã hoá sửa sai khác như: Reed Solomon, mã hoá Turbo, kết hợp với bộ đan xen (Interleaving) các kỹ thuật ước lượng kênh truyền hai chiều, và các phương pháp điều chế mã hoá thích nghi. Trang 76
  80. TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Đặng Lê Khoa, Nguyễn Trường An, Bùi Hữu Phú, Nguyễn Hữu Phương (2008), Thực hiện hệ thống OFDM trên phần cứng, Hội Nghị Khoa Học Trường Đại Học Khoa Học Tự Nhiên lần 6. Tiếng Anh: [1] Siavash M. Alamouti (1998), A Simple Transmit Diversity Technique for Wireless Communication, IEEE Journal on Select Areas in Communication, Volume 16 Issue 8. [2] Nazia Parveen, D.S.Venkateswarlu (2012), Implementation of Space-Time Block Coding Using 2 Transmit and 2 Receive Antennas, International Journal of Emerging Technology and Advanced Engineering, Volume 2 Issue 10. [3] Altera Corporation (2013), DSP Builder Handbook, URL: [4] Altera Corporation (2012), Arria V GT FPGA Development Board, URL: [5] Altera Corporation (2013), Arria V GT FPGA Development Board, URL: [6] Altera Corporation (2007), Viterbi Compiler User Guide, URL: Trang 77