Chương 1 Mô hình hệ thống OFDM 1.1 Mô hình hệ thống OFDM Kỹ thuật OFDM là một trường hợp đặc biệt của phương pháp điều chế đa sóng mang, trong đó các sóng mang phụ trực giao với nhau,
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-*** -
TRẦN VĂN TUYÊN
XÂY DỰNG HỆ THỐNG MÁY PHÁT DỮ LIỆU VÔ TUYẾN
SỬ DỤNG CÔNG NGHỆ OFDM CHO PHÁT THANH SỐ
VÀ TRUYỀN DỮ LIỆU
LUẬN VĂN THẠC SĨ
Hà Nội – 2011
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-*** -
TRẦN VĂN TUYÊN
XÂY DỰNG HỆ THỐNG MÁY PHÁT DỮ LIỆU VÔ TUYẾN
SỬ DỤNG CÔNG NGHỆ OFDM CHO PHÁT THANH SỐ
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 3
MỤC LỤC 4
DANH SÁCH CÁC TỪ VIẾT TẮT 7
Chương 1 Mô hình hệ thống OFDM 10
1.1 Mô hình hệ thống OFDM 10
1.2 Các tác vụ cơ bản của hệ thống phát OFDM 11
1.2.1 Điều chế OFDM ở phía phát 12
1.2.2 Điều chế ở băng tần cơ sở 15
1.2.3 Biến đổi Fourier 16
1.2.4 Khoảng bảo vệ 19
1.3 Kết luận chương 21
Chương 2 ng m ph t OFDM t n o m h nh ng M 320C6414-DSP 22
2.1 Mô hình phát triển phần cứng hệ thống OFDM 22
2.2 Kiến trúc, đặc điểm các bo mạch nhúng TMS320C6416 DSP KIT 23
2.3 Lựa chọn các tham số OFDM tại máy phát 26
2.3.1 Chiều dài IFFT 26
2.3.2 Chiều dài chuỗi bảo vệ 27
2.3.3 Nulllow và Nullhigh 27
2.3.4 Cấu trúc khung và khung truyền 27
2.4 Xây dựng khối phát OFDM 28
2.4.1 Đặc tả các hàm chức năng của hệ thống 29
2.4.2 Cấu trúc dữ liệu của khối phát 31
Trang 42.5 Truyền thông thời gian thực với RTDX 32
2.5.1 Giới thiệu chung về RTDX 33
2.5.2 Chương trình ứng dụng trên bo mạch 34
2.5.2.1 Nhận dữ liệu 34
2.5.2.2 Cấu hình RTDX 34
2.5.2.3 Các cấu trúc C làm việc với RTDX 35
2.6 Chương trình ứng dụng trên PC (Host Application) 38
2.7 Hệ thống điều phối vào ra Ping – Pong 41
2.7.1 Mô hình vào ra kiểu polling 41
2.6.2 Mô hình vào ra EDMA 42
2.6.3 Kỹ thuật điều phối vào ra Ping – Pong 45
2.6.3.1 Vận chuyển dữ liệu kiểu Ping – Pong 46
2.6.3.2 Kết nối các cấu hình Ping – Pong 46
2.6.3.3 Luồng điều khiển 47
2.6.3.4 Điều phối quá trình truyền nhận Ping – Pong tại phía phát 48
2.7 Thiết kế khối phát vô tuyến 49
2.7.1 Thiết kế khối phát FM Error! Bookmark not defined 2.8 Kết luận chương 49
Chương 3 Phương n đồng ộ ho hệ thống 50
3.1 Giới thiệu hàm trung bình hiệu bình phương (MSE) tối thiểu dùng trong đồng bộ 50 3.1.1 Hàm tương quan chéo (cross-correlation) 51
3.1.2 Hàm trung bình hiệu bình phương tối thiểu 52
3.2 Đề xuất phương án đồng bộ cho hệ thống 53
3.2.1 Yêu cầu về hàm đồng bộ 53
Trang 53.2.1.1 Yêu cầu về thời gian xử lý 53
3.2.1.2 Yêu cầu về giải thuật 54
3.2.2 Thực hiện đồng bộ 54
3.2.2.1 Đồng bộ theo cách đơn giản 54
3.2.2.2 Đồng bộ tiến hành theo hai bước 55
3.3 Kết luận chương và đánh giá thuật toán đồng bộ 58
Chương 4 Kết quả mô phỏng và thử nghiệm thực tế 59
4.1 Kết quả phân tích tốc độ truyền dẫn của hệ thống 59
4.2 Kết quả tỷ lệ lỗi bit không mã hóa kênh truyền 60
4.3 Kết quả phân tích tham số thực tế 61
4.4 Kết quả truyền với các dữ liệu thực tế 64
4.4.1 Truyền nhận với môi trường hữu tuyến 64
4.4.2 Truyền nhận với môi trường vô tuyến 66
4.5 Kết luận chương 67
Chương 5 Kết luận chung 68
TÀI LIỆU THAM KHẢO 69
Trang 6DANH SÁCH CÁC TỪ VIẾT TẮT
A ACF Autocorrelation function
AIC Analog Interface Circuit
AWGN Additive White Gaussian Noise
B BER Bit Error Rate: Hệ số bit lỗi
BIOS Basic Input Output System
BPSK Binary Phase Shift Keying
DPSK Differential Amplitude Phase Shift Keying
DSP Digital Signal Processor
DVB Digital Video Broadcasting
E EDMA Enhanced Direct Memory Access
F FDM Frequency Division Multiplexing
FFT Fast Fourier Transform
FSK Frequency Shift Keying
G
Trang 7I ICI InterChannel Interference
ICI InterCarrier Interference
ISI InterSymbol Interference
IDFT Inverse Discrete Fourier Transform
IEEE Institute of Electrical and Electronic Engneers
L
M MAC Media Access Control
McBSP Multi-Channeled Buffered Serial Ports
MMSE Minnimum Mean Square Error
N NLOS NonLight Of Sight
O OFDM Orthogonal Frequency Division Multiplexing
P PDF Probability density function
P/S Parallel to Serial
Q QAM Quadrature Amplitude Modulation
QPSK Quadrature Phase-Shift Keying
Trang 8R RTDX Real Time Data eXchange
S SNR Signal to Noise Ratio
W WLAN Wireless Local Area Network
Wimax Worldwide Interoperability for Microwave Access
Trang 9Chương 1
Mô hình hệ thống OFDM
1.1 Mô hình hệ thống OFDM
Kỹ thuật OFDM là một trường hợp đặc biệt của phương pháp điều chế đa sóng
mang, trong đó các sóng mang phụ trực giao với nhau, nhờ vậy phổ tính hiệu ở các sóng
mang phụ cho phép chồng lấn lên nhau mà phía thu vẫn có thể khôi phục lại tín hiệu ban
đầu Sự chồng lấn phổ tín hiệu làm cho hệ thống OFDM có hiệu suất sử dụng phổ lớn hơn
nhiều so với kỹ thuật điều chế thông thường
Hệ thống OFDM là hệ thống phức tạp, yêu cầu cao về phần cứng xử lý Tuy nhiên,
với việc đưa hàm IFFT vào hệ thống để tạo ra các sóng mang con trực giao đã làm yêu
cầu phần cứng giảm đi rất nhiều Sơ đồ khối tổng quát của một hệ thống thu phát OFDM
như sau:
Bit In
Biến đổi tương tự/ số
Kênh vô tuyến
Biến đổi số/
tương tự
Chèn chuỗi bảo vệ IFFT
Chèn Pilot
Cân bằng kênh FFT
Tách chỗi bảo vệ Đồng bộ
Tách mẫu tín hiệu dẫn đường
u(t) U(lta)
Hình 1.1 Sơ đồ khối hệ thống OFDM
Nguồn bit được điều chế ở băng tần cơ sở thông qua các phương pháp điều chế như
PSK, M-QAM Tín hiệu dẫn đường được chèn vào mẫu tín hiệu, sau đó được điều chế
thành tín hiệu OFDM thông qua bộ biến đổi IFFT và chèn chuỗi bảo vệ Luồng tín hiệu số
sẽ chuyển thành luồng tín hiệu tương tự qua bộ chuyển đổi số-tương tự trước khi truyền
Trang 10trên kênh vô tuyến qua anten phát Tín hiệu truyền qua kênh vô tuyến bị ảnh hưởng bởi nhiễu pha đinh và nhiễu trắng
Tín hiệu dẫn đường là tín hiệu biết trước ở cả phía phát và phía thu, và được phát cùng với tính hiệu có ích với nhiều mục đích khác nhau như việc khôi phục kênh truyền
và đồng bộ hệ thống
Máy thu thực hiện các chức năng ngược lại như đã thực hiện ở máy phát Sau khi nhận được dòng khung OFDM từ phía phát gửi tới, phía thu sẽ thực hiện đồng bộ để thu được chính xác khung OFDM đã gửi Sau đó sẽ tới công đoạn loại bỏ chuỗi bảo vệ rồi thực hiện FFT kết quả thu được Tuy nhiên, do ảnh hưởng của nhiễu nên kênh truyền lúc này sẽ bị thay đổi và tín hiệu nhận được sẽ bị biến dạng Do vậy để khôi phục được tín hiệu phát thì hàm truyền của kênh vô tuyến cũng phải được khôi phục Việc thực hiện khôi phục hàm truyền của kênh vô tuyến được thực hiện thông qua mẫu tin dẫn đường nhận được ở phía thu Tín hiệu nhận được sau khi giải điều chế OFDM được chia thành hai luồng tín hiệu Luồng tín hiệu thứ nhất là luồng tín hiệu có ích được đưa đến bộ cân bằng kênh Luồng tín hiệu thứ hai là mẫu tin dẫn đường được đưa vào bộ khôi phục kênh truyền Kênh truyền sau khi được khôi phục cũng sẽ được đưa vào bộ cân bằng kênh để khôi phục lại tín hiệu ban đầu Tín hiệu sau khi được khôi phục là dòng tín hiệu QAM Bởi vậy, tiếp tục giải điều chế QAM ở băng tần cơ sở để thu được dòng bit đã truyền đi ban đầu
1.2 Các tác vụ cơ bản của hệ thống phát OFDM
Sau khi đã phân tích và nghiên cứu chi tiết hệ thống thu phát OFDM, việc tiến hành thực hiện xây dựng khối phát OFDM sẽ thông qua việc hoàn thiện các bước sau đây:
Hình 1.2 Sơ đồi khối hệ thống phát OFDM
Trang 11Do vậy, quy trình thực hiện các tác vụ chính trong bài toán xây dựng hệ thống phát sẽ thông qua đồ hình sau:
Hình 1.3 Các tác vụ cơ bản của hệ thống phát OFDM 1.2.1 Điều chế OFDM ở phía phát
Gọi dòng bit trên mỗi luồng song song là { }sau khi qua bộ điều chế QAM thành tín hiệu phức đa mức { } Trong đó n là chỉ số sóng mang phụ, là chỉ số của khe thời gian tương ứng với mẫu tín hiệu phức Sau khi nhân với xung cơ sở, được dịch tần và qua bộ tổng thì cuối cùng, tín hiệu ở vị trí thứ 3 được biểu diễn như sau [3]:
(1.1)
Khi biến đổi luồng tín hiệu trên thành số, luồng tín hiệu trên được lấy mẫu với tần số :
(1.2) Trong đó B là toàn bộ băng tần của hệ thống Tại thời điểm lấy mẫu và
(Xung cơ sở là xung vuông)
Trang 12Do đó được viết lại thành:
(1.3)
Tín hiệu OFDM trên trùng hợp với phép biến đổi IDFT Do vậy bộ điều chế OFDM
có thể thực hiện dễ dàng bằng phép biến đổi IDFT Trong trường hợp NFFT là luỹ thừa của 2, phép biến đổi IDFT được thay bằng phương pháp IFFT Với phép biến đổi IFFT, thực hiện dễ dàng nhờ ứng dụng các vi điều khiển chuyên dụng xử lý số như các dòng DSP
Ưu điểm của phương pháp điều chế trực giao OFDM không chỉ là sự hiệu quả về mặt sử dụng băng tần mà còn khả năng loại trừ được nhiễu liên tín hiệu ISI thông qua sử dụng chuỗi bảo vệ Do vậy, tín hiệu OFDM trước khi phát đi phải chèn thêm chuỗi bảo vệ
để chống nhiễu xuyên tín hiệu
Hệ thống OFDM là hệ thống sử dụng nguyên lý ghép kênh phân chia theo tần số trực giao, hoạt động trên nguyên lý phát dữ kiệu bằng cách phân chia luồng dữ liệu thành nhiều luồng song song có tốc độ bit thấp hơn nhiều và sử dụng các luồng con này để điều chế sóng mang với nhiều sóng mang con có tần số khác nhau Cũng giống như hệ thống
đa sóng mang thông thường, hệ thống OFDM phân chia giải tần công tác thành các băng tần khác nhau cho điều chế, đặc biệt tần số trung tâm của các băng tần con này trực giao với nhau về mặt toán học Điều này cho phép phổ tần của các băng con chèn lấn nhau, do
đó tăng hiệu quả sử dụng phổ tần mà không gây nhiễu[1]
Dưới đây là những nguyên lý chủ yếu của kỹ thuật OFDM
Trang 13Hình 1.4 Hệ thống OFDM với nguyên lý trực giao
Dựa vào tính trực giao, phổ của tín hiệu của các sóng mang phụ cho phép chồng lấn lên nhau Sự chồng lấn phổ tín hiệu này làm hiệu suất sử dụng phổ của toàn bộ băng tần tăng lên đáng kể Sự trực giao của các sóng mang phụ được thực hiện như sau: phổ của sóng mang phụ thứ p được dịch vào một kênh con thứ p thông qua phép nhân với hàm phức trong đó là khoảng cách tần số giữa hai sóng mang Thông qua
phép nhân với số phức này mà các sóng mang phụ trực giao với nhau
(1.5)
Ở phương trình trên nhận thấy hai sóng mang phụ p và q trực giao với nhau do tích phân của một sóng mang với liên hợp phức của sóng mang còn lại bằng 0 nếu chúng là hai sóng mang khác biệt Trong trường hợp tích phân với chính nó sẽ cho kết quả là một hằng số Sự trực giao này là nguyên tắc để thực hiện giải điều chế OFDM
Hình 1.5 So sánh hai phương pháp điều chế FDM và OFDM
Trang 14Hình 1.3 Minh họa khả năng tiêt kiệm băng thông của hệ thống OFDM so với các hệ thống điều chế đa sóng mang khác
1.2.2 Điều chế ở băng tần cơ sở
Tín hiệu truyền từ nguồn tới đích dưới dạng sóng điện từ, ở tần số thấp (băng tần cơ sở), tín hiệu không thể bức xạ đi xa và dể bị tác động bởi nhiễu Còn ở tần số cao (băng thông) thông tin có thể bức xạ đi xa và ít bị tác động bởi nhiễu do vậy trước khi truyền tín hiệu cần phải được đưa lên tần số cao đó là quá trình điều chế, quá trình ngược lại máy thu khôi phục tín hiệu ở băng thông thành tín hiệu ở băng tần cơ sở là quá trình giải điều chế
Bởi vậy, dòng tín hiệu trước khi được đưa tới khối IFFT để gắn vào các sóng mang con trực giao phải được điều chế ở băng tần cơ sở Ở đây, có thể chọn các phương án điều chế như QPSK, 16QAM, 64QAM hoặc 256QAM Điểm khác nhau giữa các phương pháp điều chế này ở chỗ số lượng bit được sử dụng để mã hóa các ký hiệu trong chòm sao Với 16QAM, mỗi ký hiệu được mã hóa bởi 4 bit, 256QAM thì mỗi ký hiệu được mã hóa bởi 8 bit Khi số bit mã hóa tăng lên thì làm tốc độ của dòng tín hiệu tăng lên nhưng kéo theo
nó là tỷ lệ bit lỗi (BER) sẽ tăng lên Bởi vậy trong hệ thống cần phải cân nhắc các yếu tố này khi chọn phương pháp điều chế ở băng tần cơ sở
Hình 1.6 Quan hệ giữa tốc độ ký hiệu và tốc độ bit
Mỗi một ký hiệu b bit trong một khung sẽ được đưa vào bộ ánh xạ, mục đích là để nâng cao dung lượng kênh truyền Một ký hiệu b bit sẽ tương ứng một trong
trạng thái hay một vị trí trong giản đồ chòm sao
Trang 15 BPSK sử dụng 1 ký hiệu có 1 bit 0 hoặc 1 sẽ xác định trạng thái pha hoặc ,
tốc độ Baud hay tốc độ ký hiệu sẽ bằng với tốc độ bit
QPSK sử dụng 1 ký hiệu 2 bit (Dibit)
8-PSK hay 8-QAM sử dụng 1 ký hiệu 3 bit (Tribit)
16-PSK hay 16-QAM sử dụng 1 ký hiệu 4 bit (Quabit)
Hình 1.7 Vị trí các ký hiệu trong chòm sao ứng với 16QAM
Số bit được truyền trong một ký hiệu tăng lên (M tăng lên), thì hiệu quả băng thông tăng lên, tuy nhiên sai số BER cũng sẽ tăng lên
(1.6) Nyquist đã đưa ra công thức dung lượng kênh tối đa trong môi trường không nhiễu:
(1.7)
Với là băng thông của kênh truyền
Do đó, không thể tăng M lên tuỳ ý được, công thức trên cho phép xác định M lớn nhất, số bit lớn nhất có thể truyền trong một ký tự
Một số phương thức điều chế số thường dùng trong bộ ánh xạ:
M-PSK
M-DPSK
M-QAM
1.2.3 Biến đổi Fourier
Phép biến đổi IDFT cho phép tạo tín hiệu OFDM dễ dàng, tức là điều chế N luồng tín hiệu song song lên N tần số trực giao một cách chính xác và đơn giản Phép biến đổi
Trang 16DFT cho phép giải điều chế lấy lại thông tin từ tín hiệu OFDM Nhờ sử dụng phép biến đổi IDFT và DFT mà tinh giản được bộ tổng hợp tần số phức tạp ở phía phát và phía thu Nếu không sử dụng IDFT và DFT bộ tổng hợp tần số phải tạo ra một tập tần số cách đều nhau chính xác và đồng pha, nhằm tạo ra tập tần số trực giao tối ưu
Biến đổi Fou ie ời (DFT)
Phép biến đổi Fourier rời rạc DFT sẽ phân tích tín hiệu thành những thành phần sóng sin có khoảng cách đều nhau trong khoảng tần số Biến đổi DFT phức có thể được xem như là cách xác định biên độ và pha của những thành phần sóng sin và cosin cấu thành nên tín hiệu phân tích
(1.8) Với chứa N giá trị biên độ của các thành phần tần số, mảng
chứa N mẫu của tín hiệu miền thời gian
biểu thị tần số của sóng sin/cosin ứng với thay đổi giữa 0 và tổng số mẫu miền thời gian
định nghĩa số chu kỳ sóng sin/cosin hoàn chỉnh xảy ra qua N điểm tín hiệu miền thời gian được lưu trữ trong mảng x[n]
Công thức (1.8) định nghĩa biến đổi Fourier phức nên cả hai mảng miền thời gian và miền tần số đều lưu trữ những giá trị phức Mảng bao gồm cả tần số dương và âm,
thị cho tần số âm
Điều cuối cùng cần chú ý đối với DFT là khoảng cách tần số giữa mỗi mẫu trong
miền tần số (thường gọi là độ phân giải) phụ thuộc vào tần số lấy mẫu fs và chiều dài N
của bộ biến đổi FFT:
(1.9)
Trang 17Phép iến đổi ngượ Fou ie ời (IDFT)
Ngược lại phép biến đổi ngược Fourier rời rạc IDFT sẽ tổng hợp tất cả các sóng sin
và cos có biên độ lưu trữ trong mảng để tái tạo trở lại tín hiệu phát miền thời gian:
(1.10) Với là mảng số phức,
Thế vào phương trình trên:
(1.11) Vậy
(1.12)
Trong công thức trên nếu thay bằng và đem ra ngoài phép tính thì sẽ rút ra được kết luận sau:
Mỗi giá trị của phần thực trong miền tần số góp 1 phần để tạo ra tín hiệu miền
thời gian: phần thực là sóng cos, phần ảo là sóng sin
Mỗi giá trị của phần ảo trong miền tần số cũng góp một phần vào tín hiệu miền thời gian: phần thực là sóng sin, phần ảo là sóng cos Nói cách khác, mỗi giá trị miền tần số đều tạo ra cả tín hiệu sin thực và tín hiệu sin ảo trong miền thời gian
Cộng tất cả các tín hiệu sin đó lại với nhau sẽ tái tạo lại được tín hiệu phát Vậy dạng sóng cos và sin trong phuông trình trên có thể được hiểu như là những tín hiệu thực được phát ra bởi các mạch vật lý
Phép iến đổi Fou ie nhanh
Việc tính toán DFT một cách trực tiếp trong trường hợp N lớn sẽ tiêu tốn rất nhiều thời gian Thời gian tính toán cần thiết tăng theo Tuy nhiên nếu ta sử dụng số sóng mang N là lũy thừa của 2 thì có cách tính hiệu quả hơn nhiều là FFT
Trang 181.2.4 Khoảng bảo vệ
Tốc độ kí tự của tín hiệu OFDM thấp hơn nhiều so với được truyền đơn sóng mang Thí dụ điều chế đơn sóng mang BPSK, tốc độ kí tự tương ứng với tốc độ bit truyền Tuy nhiên đối với kỹ thuật OFDM, luồng dữ liệu ở ngõ vào được chia thành N luồng dữ liệu song song để phát đi, kết quả là tốc độ kí tự OFDM giảm N lần so với tốc
độ truyền đơn sóng mang, do đó nó đã làm giảm được nhiễu liên kí tự ISI bị gây ra bởi truyền đa đường
Hiệu ứng ISI trên tín hiệu OFDM có thể loại bỏ hoàn toàn bằng cách cộng thêm khoảng bảo vệ trước mỗi kí tự Khoảng bảo vệ này được chọn sao cho lớn hơn giá trị trải trễ cực đại trong môi trường để cho các thành phần đa đường của kí tự trước không thể giao thoa với kí tự hiện tại Khoảng bảo vệ có thể là khoảng trống (không có tín hiệu gì cả) Tuy nhiên, nếu sử dụng khoảng trống cho khoảng bảo vệ thì sẽ gây ra nhiễu liên sóng mang ICI, vì khi đó các sóng mang con nhận được ở máy thu không còn trực giao nữa Điều này xảy ra do các thành phần đa đường của kí tự khi nhận được ở máy thu sẽ không
có số nguyên lần chu kì trong thời khoảng FFT Để loại bỏ nhiễu ICI thì kí tự OFDM phải được mở rộng chu kì trong khoảng bảo vệ để đảm bảo rằng các thành phần đa đường của
kí tự luôn có số nguyên lần chu kì trong thời khoang FFT Do được mở rộng chu kì nên khoảng bảo vệ còn được gọi là tiền tố lặp Khoảng bảo vệ được tạo ra bằng cách sao chép một số mẫu phía cuối của mỗi kí tự OFDM và đưa lên đầu kí tự [3]
Hình 1.8 Ký tự OFDM với khoảng bảo vệ nhằm chống nhiễu ISI
Trang 19Chiều dài tổng của kí tự là với là tổng chiều dài của kí tự, là chiều dài khoảng bảo vệ, là kích thước của IFFT được sử dụng để phát tín hiệu OFDM
Hình 1.9 Ảnh hưởng của hiệu ứng đa đường khi chèn mẫu ký tự không vào khoảng
bảo vệ
Hình 1.10 Ký tự OFDM với Tiền tố lặp
Như trên hình 1.8 thấy rằng nếu trải trễ nhỏ hơn khoảng bảo vệ sẽ không có hiện tượng giao thoa giữa kí tự trước và kí tự hiện tại, do đó sẽ không gây ra ISI và ICI Tuy nhiên do tín hiệu nhận được tại máy thu là tổng của nhiều thành phần đa đường nên sẽ
Trang 20gây ra sự dịch pha cho các sóng mang Việc ước lượng kênh của máy thu sẽ khắc phục sự dịch pha này
Hình 1.11 Tín hiệu thu bị dịch pha do ảnh hưởng bởi phading đa đường
Trong khoảng thời gian bảo vệ, máy thu bỏ qua tất cả các tín hiệu, như vậy có nghĩa
là khoảng bảo vệ là khoảng vô ích, nó không mang dữ liệu có ích Lựa chọn khoảng bảo
vệ liên quan đến thời gian trễ của echo, đồng thời cũng liên quan mật thiết đến số lượng sóng mang Trong thực tế khoảng thời gian bảo vệ được tạo ra bằng cách lặp lại một tỷ lệ của dòng bit tích cực tro.ng chu kỳ trước đó, khoảng bảo vệ được chọn dựa vào khoảng thời gian tích cực của symbol, có thể là 1/4, 1/8, 1/16, 1/32 thời gian symbol tích cực Thât ra ý tưởng của phương pháp này có từ giữa những năm 1980 Nhưng do lúc đó còn hạn chế về mặt công nghệ (khó tạo ra các bộ điều chế và giải điều chế đa song mang giá thành thấp theo biến đổi IFFT nên cho tới nay dựa trên những thành tựu của công nghệ mạch tích hợp, phương pháp này mới được đưa vào thực tiễn
1.3 Kết luận chương
Việc nghiên cứu chi tiết cấu trúc cụ thể của hệ thống thu phát OFDM, cho phép xác định được các vấn đề cơ bản phát sinh trong quá trình thiết kế hệ thống phát Những vấn đề đưa ra trong chương này là những bài toán quan trọng nhất trong hệ thống phát OFDM, nghiên cứu lý thuyết giúp ta có bước nhìn tổng quan cho bài toán thiết kế được đặt ra ở chương sau
Trang 21Chương 2
ng m ph t OFDM tr n o m h nh ng
TMS320C6414-DSP
2.1 Mô hình phát triển phần cứng hệ thống OFDM
Dựa vào lý thuyết đã phân tích ở trên, sau đây luận văn xây dựng ứng dụng truyền
file dữ liệu trên hệ thống OFDM sử dụng truyền thông thực RTDX thực hiện trên nền
DSP, và thiết kế giao diện người dùng sử dụng Visual Basic
Hệ thống OFDM trên thực tế được xây dựng từ hai bo mạch nhúng
TMS320C6416 Hai bo mạch nhúng này đều được nối với máy tính qua cổng USB, đồng
thời giữa hai bo mạch này cũng được nối với nhau theo nguyên tắc đầu LINE IN của bo
mạch nhúng này sẽ nối với đầu LINE OUT của bo mạch nhúng kia và ngược lại
Hình 2.1: Mô hình hệ thống nhúng thực tế được xây dựng
Có thể chia hệ thống thành hai phần: phần phát và phần thu Để đảm bảo quá trình
trao đổi thông tin diễn ra chính xác và tin cậy thì ta phải có truyền thông hai chiều giữa
phần phát và phần thu Mỗi phần phát và thu đều có 3 hệ thống con, bao gồm: hệ thống
xử lý tín hiệu, hệ thống đồng bộ và hệ thống vào ra Vì đặc trưng của hệ thống này là xử
lý tín hiệu thời gian thực nên hệ thống đồng bộ và hệ thống vào ra có sự gắn kết chặt chẽ
với nhau
Hệ thống vào ra bao gồm các kỹ thuật vào ra được thực hiện bởi các tiến trình Hệ
thống này bao gồm vào ra với bộ mã hóa và giải mã AIC23 sử dụng kỹ thuật EDMA và
Trang 22vào ra với máy tính sử dụng kỹ thuật RTDX hoặc kênh HST Có rất nhiều mô hình vào
ra khác nhau đòi hỏi phải nắm được đặc trưng của mỗi mô hình để có thể lựa chọn cho phù hợp với hệ thống OFDM Chức năng vào ra được thực hiện bởi các tiến trình đó là ngắt cứng EDMA và Kernel của DSP/BIOS Như vậy chức năng vào ra phải được đồng
bộ với nhau và với chức năng xử lý tín hiệu
2.2 Kiến trúc, đặc điểm các bo mạch nhúng TMS320C6416 DSP KIT
DSK 6416 là bo mạch trên đó có gắn bộ xử lý số chuyên dụng TMS320C6416 Đây
là một bộ xử lý dấu chấm tĩnh (nghĩa là không hỗ trợ đồng xử lý dấu chấm động) Trên bo mạch này còn tích hợp thêm nhiều thiết bị ngoại vi, để cùng với bộ xử lý tạo thành một hệ thống nhúng hoàn chỉnh Trong các thiết bị ngoại vi có bộ mã hóa và giải mã với tên gọi AIC23 Đây là bộ mã hoá và giải mã tín hiệu âm thanh tức là có chức năng là bộ chuyển đổi số tương tự và tương tự số Tín hiệu tương tự từ cổng LINE IN của bo mạch nhúng sẽ được bộ mã hóa/giải mã lấy mẫu thành tín hiệu số và ngược lại, AIC23 cũng có thể chuyển đổi tín hiệu số thành tương tự và đưa ra cổng LINE OUT của bo mạch nhúng
Bộ sản phẩm DSK 6416 (DSP Starter Kit) bao gồm những thiết bị được đóng gói
sau [6, 8, 9]:
Bo mạch C6416 DSK;
Bộ chuyển đổi nguồn 1 chiều +5V;
Giắc cắm với nguồn xoay chiều
Đĩa com-pac C6416 DSK Code Composer Studio;
Tài liệu tham khảo về TMS320C6416 DSK;
Cáp nối USB;
Hình 2.2 DSK 6416 và các phụ kiện
Trang 23C6416 DSP Starter Kit, viết tắt DSK là một sản phẩm cho phép người sử dụng đánh giá và phát triển các ứng dụng của mình trên họ DSP C64xx Dòng sản phẩm này có một
số đặc điểm chính sau:
Tần số của chip là 720Mhz
Bộ mã hóa và giải mã stereo AIC23
Bộ bốn chuyển mạch DIP đi kèm với bốn LED
Bộ nhớ Flash và SDRAM
Hình 2.3 Bo mạch nhúng DSK-6416
Hình 2.4 Sơ đồi khối của bo mạch nhúng DSK 6416
Trên hai máy tính có cài đặt phần mềm Code Composer Studio (CCS) Đây là môi
trường phát triển tích hợp đi kèm với bộ sản phẩm DSP của Texas Instrument Sử dụng CCS để viết chương trình, biên dịch sau đó nạp chương trình vào bo mạch DSK cũng thông qua cổng USB
Trang 24Tiếp theo là việc mô tả qua ứng dụng của hệ thống thử nghiệm này Đây là ứng dụng truyền dữ liệu từ máy tính này sang máy tính khác sử dung kỹ thuật điều chế OFDM Dữ liệu từ máy tính có thể là một tệp nhị phân, được truyền xuống bo mạch DSK thông qua cổng USB Dữ liệu này sau đó được điều chế theo phương pháp OFDM bởi bo mạch thứ nhất Tín hiệu OFDM sau đó được truyền từ đường LINE OUT của bo mạch thứ nhất đến LINE IN của bo mạch thứ hai Bo mạch thứ hai sẽ thực hiện lấy mẫu tín hiệu từ LINE IN
sử dụng bộ mã hóa và giải mã - AIC23 Sau đó tín hiệu số OFDM được giải điều chế thành dữ liệu nhị phân Dữ liệu này lại được truyền lên máy tính thứ hai cũng thông qua cổng USB
Trong bất kỳ một ứng dụng xử lý tín hiệu nào thì cũng không thể thiếu bộ chuyển đổi tương tự số Trên DSK6416 thì thiết bị này được gọi là mã hoá và giải mã DSK6416 tích hợp săn trên bo mạch bộ AIC23 cho tín hiệu âm thanh vào ra Bộ phận AIC23 lấy mẫu tín hiệu tương tự trên MICROPHONE hoặc trên đường LINE IN và biến đổi chúng thành tín hiệu số để có thể xử lý bởi DSP Sau khi kết thúc quá trình DSP xử lý tín hiệu được chuyển đổi ngược trở lại thành tín hiệu tương tự và đưa ra ngoài qua đường HEADPHONE và LINE OUT trên bo mạch
Hình 2.5 Sơ đồ bộ AIC23 stereo
AIC23 sử dụng 2 kênh nối tiếp để giao tiếp với bộ xử lý DSP Đó là McBSP1 và McBSP2 Trong đó, một dùng để điều khiển thanh ghi cấu hình cho AIC23, một dùng để truyền và nhận các tín hiệu số AIC23 có 10 thanh ghi có điều khiển như âm lượng, định
Trang 25dạng dữ liệu ,tốc độ lấy mẫu…các thanh ghi này được viết thông qua kênh điều khiển McBSP1 Đến đây nhận thấy có những vấn đề sau cần giải quyết, đó là:
Vào ra với bộ mã hóa và giải mã thế nào?
Lập trình thực hiện điều chế OFDM ?
Kết nối giữa máy tính và bo mạch DSK như thế nào?
2.3 Lựa chọn các tham số OFDM tại máy phát
2.3.1 Chiều dài IFFT
Dùng tỷ lệ lỗi bit BER để đánh giá chất lượng thông tin của một hệ thống Thông qua việc xác định công suất phát của máy phát ( dựa vào tham số của bo mạch DSP do nhà sản xuất đưa ra) Xuất phát từ kết quả SNR trên và dựa vào sự phụ thuộc của SNR, BER và chiều dài FFT (hình 2.6) sẽ lựa chọn sao cho FFT phù hợp
Hình 2.6 thể hiện mối qua hệ SNR, BER và chiều dài FFT trong hệ thống OFDM được xây dựng bằng Matlab Từ hình 2.6 để tỷ lệ lỗi và phù hợp với
thì chỉ có thể chọn
Trong luận văn này sẽ chọn chiều dài FFT là 64 để tối ưu hóa tốc độ truyền dẫn
Hình 2.6 Mối liên hệ giữa SNR, BER và chiều dài FFT
Trang 262.3.2 Chiều dài chuỗi bảo vệ
Việc chèn thêm chuỗi bảo vệ giải quyết được phần lớn các ảnh hưởng của nhiễu ISI gây ra với tín hiệu thu, nhưng chuỗi bảo vệ chỉ phát huy hiệu quả khi trễ truyền dẫn không vượt quá phạm vi của nó Dải bảo vệ càng lớn thì ISI càng được loại bỏ nhiều, lỗi
do sự xê dịch thời gian cũng được giải quyết Trong khi đó chuỗi bảo vệ không thể dài một cách tùy ý (dải bảo vệ càng dài thì hiệu quả sử dụng băng thông càng thấp), do đó không thể loại bỏ triệt để ảnh hưởng của nhiễu ISI lên tín hiệu
Trong luận văn lựa chọn độ dài chuỗi bảo vệ là CP=32
2.3.3 Nulllow và Nullhigh
Việc chèn thêm chuỗi NULLLOW để loại bỏ tín hiệu một chiều trong hệ thống và
để trách nhiễu do các hệ thống lân cận khi truyền dẫn
Trong luận văn chọn NumberNullLow=1, NumberNullHigh= 15
Cấu trúc một ký tự truyền như sau:
Hình 2.7 Cấu trúc của một ký tự 2.3.4 Cấu trúc khung và khung truyền
Để bộ đệm bên thu chắc chắn sẽ nhận một khung hoàn chỉnh thì bộ đệm bên phát cần phát đi đa khung gồm tối thiểu hai khung liên tiếp Chọn đa khung bên phát gồm hai khung liên tiếp
Mặt khác, chọn cấu trúc mỗi khung gồm hai kí tự OFDM ẫn đường (S_pilot) hai đầu
để phục vụ cho mục đích đồng bộ
Cấu trúc một khung và cấu trúc đa khung OFDM bên phát là:
Đa khung
Khung OFDM
Hình 2.8 Cấu trúc khung và đa khung phát
Trang 272.4 Xây dựng khối phát OFDM
Hệ thống OFDM có rất nhiều khối chức năng phức tạp, song trong giai đoạn thử nghiệm trên bo mạch, luận văn chỉ thực hiện với những khối cơ bản, các chức năng khác của hệ thống sẽ dần được đưa vào trong các giai đoạn phát triển sau này Trong giai đoạn này, luận văn thực hiện các chức năng chính là xử lý tín hiệu và khối phát tín hiệu vô tuyến:
Sơ đồ tham chiếu
Lý thuyết về điều chế OFDM đã chứng minh rằng, bộ điều chế OFDM có thể được thực hiện dễ dàng thông qua phép biến đổi IDFT Phép biến đổi này có thể được thực hiện nhanh bằng thuật toán IFFT
a^k,+L
a^k, n
a^k,-L
Hình 2.9 Sơ đồ khối bộ điều chế [2]
Trong sơ đồ này, luồng dữ liệu vào là dữ liệu số {al} được đưa vào bộ phân chia nối tiếp song song Một luồng ban đầu được chia thành n luồng con, n có thể chọn là một số
lẻ, n = 2L + 1 Tốc độ của mỗi luồng con rõ ràng nhỏ hơn tốc độ của luồng ban đầu n lần Các luồng con như ta thấy được đánh số từ -L đến 0 và đến +L Có 2L + 1 luồng con tất cả: ai, -L, , ai, n, , ai, +L
Mỗi luồng con sẽ được mã hoá theo những phương pháp thông thường chẳng hạn QAM, hay PSK Tất cả các luồng sau khi mã hoá bao gồm n điểm được đưa vào bộ biến đổi IDFT thực hiện bằng thuật toán IFFT
Số đầu ra của bộ biến đổi có thể không bằng n, mà bằng số điểm lấy IFFT, thường bằng luỹ thừa của 2 như 4, 16, 64, 128, 256 Số điểm lấy IFFT càng lớn thì độ phức tạp thuật toán tăng lên Đầu ra của bộ biến đổi lại được ghép lại thành một đầu ra duy nhất thông qua bộ ghép song song nối tiếp
m(t)
Trang 28Đầu ra nối tiếp được chèn khoảng bảo vệ (một kỹ thuật của điều chế OFDM nhằm loại bỏ hoàn toàn nhiễu ISI) Sau đó, tín hiệu số OFDM được chuyển đổi thành tín hiệu tương tự để có thể tiếp tục truyền đi
2.4.1 Đặc tả các hàm chức năng của hệ thống
Dưới đây là nguyên mẫu của các hàm xử lý và các dữ liệu sử dụng:
Hình 2.10 Các hàm xử lý trong khối phát OFDM
Các hàm xử lý trong phần này bao gồm:
- Hàm chuyển đổi dòng bít vào thành dòng bít giả ngẫu nhiên
- Hàm điều chế QAM 16
- Hàm tính biến đổi FFT thuận và ngược
Vị trí của các hàm này trong hệ thống xử lý như trong hình 2.10 Để cho tiện, các hàm xử
lý này sẽ được mô tả dần chức năng xử lý trong quá trình kiểm thử
Hàm Data2Symbol
Hàm này thực hiện tách dữ liệu đầu vào thành các chuỗi 4 bit phục vụ ánh xạ QAM Với mỗi byte của mảng vào lần lượt lấy 4 bit thấp và 4 bit cao của byte đó đưa vào 2 phần tử
liên tiếp trong mảng đầu ra QamSymbolIn bằng cách thực hiện phép toán AND mỗi byte
này với 15 (giá trị nhị phân 00001111) và 240 (giá trị nhị phân 11110000) kết hợp với phép dịch bit
Hàm Data2Symbol
for (k=0; k<NumDataTrans;k++)
{ // phan tu dung trc chua 4 bit thap
*(QamSymbolIn+2*k) = *(DataTrans+k)&15;
// phan tu dung sau chua 4 bit cao Temp = *(DataTrans+k)& 240;
*(QamSymbolIn+2*k+1) = Temp>> 4;
Trang 29// -> hai phan tu lien tiep chua 1 data }
Hình 2.11 Hàm Data2Symbol
Có thể nói, 4 bit thấp của mỗi byte của mảng vào được chuyển thành phần thực tương ứng của ký tự, còn 4 bit cao chuyển thành phần ảo
Như vậy sau khi chuyển đổi dòng bit thành các ký tự thì giá trị của ký tự nằm trong
khoảng từ 0 đến 15 (Do các phép toán là 4 bit) Các giá trị này được coi là chỉ số và được
ánh xạ trực tiếp sang các mẫu tín hiệu QAM Như vậy bảng QAM được sử dụng trong hàm tiếp theo sẽ có độ dài 16 phần tử Chú ý nhận được 2 chỉ số, một cho phần thực và một cho phần ảo
Trong quá trình ánh xạ, có sự xen kẽ về tần số: các chỉ số thực sẽ được ánh xạ đến đoạn đầu của mảng ra (tần số thấp), còn chỉ số ảo lại được ánh xạ đến phần sau (tần số
cao) Ghép xen là một kỹ thuật trong truyền thông để chống lại các lỗi cụm
Hàm QamTrans
Mảng vào là một mảng chỉ số phức mà phần thực và phần ảo của chỉ số nằm trong khoảng
0 đến 15 (ở đây vì ta sử dụng 16-QAM) Các chỉ số này sẽ được ánh xạ thành mẫu QAM tương ứng, chỉ số thực ánh xạ sang mẫu QAM ở nửa trái của mảng ra chỉ số ảo ánh xạ
sang các mẫu QAM ở nửa phải Đây chính là một kỹ thuật xen kẽ được sử dụng trong
truyền thông Giả sử mảng vào có n phần tử (chỉ số phức), thì nó chiếm 2n vị trí trong mảng ra
Bảng giá trị QAM
CCHAR QamTable[16] = {
{ 3, 3}, { 3, 1}, { 3,-3}, { 3,-1}, {-3, 3}, {-3, 1}, {-3,-3}, {-3,-1}, { 1, 3}, { 1, 1}, { 1,-3}, { 1,-1}, {-1, 3}, {-1, 1}, {-1,-3}, {-1,-1} };
Hình 2.12 Bảng giá trị QAM
Trang 30Giải thuật tính FFT thuận và ngượ
Giải thuật tính FFT hay IFFT thực ra là như nhau chỉ khác nhau ở việc sử dụng bảng lượng giác dành cho phép biến đổi thuận hay là ngược Trong giải thuật này, mảng vào có độ dài FFT = 16, sau khi thực hiện đảo chỉ số sẽ đưa vào biến đổi nhanh FFT sử dụng thuật toán cánh bướm
Với bộ dữ liệu vào
như của Matlab để kiểm tra Thực hiện dòng lệnh sau để kiểm tra:
>> X=[0+0i 1+3i 3+3i -3-i 3+3i -3+i 1-3i 0 0 -1-i -1-i 3+i -3-i 1+i 1+3i 0];
>> Y=ifft(X)
Kết quả nhận được là phù hợp chứng tỏ tính đúng đắn của giải thuật FFT đã cài đặt
2.4.2 Cấu trúc dữ liệu của khối phát
Dữ liệu được phát liên tục do đó khi nhận được dữ liệu bên thu không chỉ khôi phục
dữ liệu mà còn phải nhận biết điểm bắt đầu dữ liệu và kết thúc dữ liệu để đóng gói lại khối dữ liệu Do đó yêu cầu đối với truyền nhận dữ liệu là phía phát ngoài việc điều chế
dữ liệu để gửi đi cần có những ký tự đặc biệt giúp phía thu sau nhận diện được điểm đầu
dữ liệu và kết thúc dữ liệu Vì vậy, cần có một cấu trúc phát dữ liệu thống nhất giữa bên thu và bên phát
Dựa vào bảng mã ASCII luận văn đã lựa chọn những kí tự đặc biệt để đưa vào khung đầu dữ liệu và cuối dữ liệu để phân biệt với dữ liệu trong khối dữ liệu truyền Trong chương trình hiện tại sử dụng 2 ký tự ở vị trí 200 và 225 trong bảng mã ASCII
Trang 31 Cơ chế gửi dữ liệu:
Trước tiên, chương trình gửi đi 10 khung dữ liệu OFDM chứa các ký tự Data
(S_Data) là các kí tự 225 để thông báo cho bên nhận biết chuẩn bị truyền dữ liệu trong khối gửi Tiếp đó, chương trình gửi các khung OFDM chứa các S_Data là dữ liệu trong khối dữ liệu gửi Sau khi gửi dữ liệu cuối cùng, chương trình sẽ phát các khung OFDM chứa các S_Data là các kí tự 200 để thông báo cho bên nhận biết đã truyền hết dữ liệu
Thực hiện trong chương trình:
Biến FilePos được dùng để kiểm soát quá trình phát file và tạo cấu trúc phát file FilePos = 0 gửi khung xác định đầu file
for (i= 0; i< 16; i++) {
DataTrans[i]= 225; // toan bo du lieu phat se la 225 }
FilePos = 1 gửi dữ liệu trong file:
if ( (NumSend*16 + 16) > FileLengh)
{ for (i= 0; i< FileLengh - NumSend*16; i++) {
DataTrans[i]= FileData[NumSend*16+i];
} for (i= FileLengh - NumSend*16; i< 16; i++) {
DataTrans[i] = 200;
} FilePos = 2;
}
FilePos = 2 gửi khung xác định cuối file:
for (i= 0; i< 16; i++)
{ DataTrans[i]= 200;// toan bo du lieu phat se la 200 }
2.5 Truyền thông thời gian thực với RTDX
Bo mạch nhúng DSP được dùng để xử lý dữ liệu với tốc độ cao Dữ liệu được đẩy xuống bo mạch có nhiều cách Ví dụ từ một bo mạch khác, từ một thiết bị cảm biến, từ LINE IN, LINE OUT…Và một cách hay dùng nhất là PC Thông qua PC chúng ta có thể
Trang 32nạp chương trình, đẩy dữ liệu xuống hay thiết lập các thông số cấu hình Dữ liệu giao tiếp
giữa PC (chức năng như một Host) và bo mạch DSP (chức năng là một target) được
thông qua chuẩn RTDX Sau đây sẽ mô tả chi tiết cách xây dựng các ứng dụng sử dụng truyền thông giữa host và target
2.5.1 Giới thiệu chung về RTDX
RTDX cho phép truyền dữ liệu giữa thiết bị DSP và máy tính trong các ứng dụng của DSP Quá trình truyền thông giữa bo mạch DSP và máy tính được thực hiện như sau:
Hình 2.13 Quá trình truyền thông giữa bo mạch DSP và máy tính
Trong quá trình truyền dữ liệu từ bo mạch tới PC, một kênh “output” sẽ được thiết
lập trên bo mạch Khi dữ liệu được ghi tới kênh này thì thực chất là nó được ghi tới ghi tới một bộ đệm được thiết lập trong thư viện RTDX của bo mạch Dữ liệu từ bộ đệm này được gửi đến PC bởi thư viện RTDX thông qua giao tiếp JTAG
Thư viện RTDX trên máy tính nhận dữ liệu này từ giao diện JTAG và ghi nó vào bộ nhớ đệm hoặc một tệp nào đó Sau đó các chương trình ứng dụng trên máy tính có thế sử
dụng, hiển thị và xử lý dữ liệu trong bộ đệm này thông qua thư viện RTDX host
Ngược lại, để nhận dữ liệu từ PC, bo mạch phải mở một kênh đầu vào Bo mạch yêu cầu nhận dữ liệu từ kênh đầu vào Yêu cầu này được ghi vào bộ đệm và gửi đến máy tính thông qua giao tiếp JTAG
Khi thư viện RTDX trên máy tính nhận được yêu cầu đọc dữ liệu từ bo mạch, chương trình ứng dụng trên máy tính sẽ ghi dữ liệu cần gửi vào bộ nhớ đệm và thư viện RTDX trên máy tính sẽ gửi dữ liệu đến bo mạch thông qua giao tiếp JTAG
Trang 332.5.2 Chương trình ứng dụng trên bo mạch
2.5.2.1 Nhận ữ liệu
RTDX nhận dữ liệu từ ứng dụng trên bo mạch theo 2 dạng:
Dạng liên tục (Continuous):
o Dữ liệu sẽ được ghi tới bộ đệm một lần và liên tục viết tới ứng dụng bo mạch
o Kiểu này thường được sử dụng với các chương trình ứng dụng liên tục gửi và nhận dữ liệu hoặc không cần lưu dữ liệu tới file
Dạng không liên tục (Non-Continuous):
o Được dùng để viết dữ liệu tới một tệp dữ liệu trên PC Nó có thể được dùng để viết một lượng dữ liệu không giới hạn tới tệp dữ liệu đó
2.5.2.2 Cấu hình RTD
Bước 1: Vào Tool → RTDX→Configuration Control như hình dưới
Hình 2.14 Cấu hình cho RTDX
Trang 34Bước 2 : Vào mụ Configure khi đó ta thấy cửa sổ RTDX Control như hình dưới:
Hình 2.15 Thay đổi các thông số RTDX
Có thể chọn các thông số Buffer Size và Number of Buffer cho phù hợp với hệ thống
Do trong chương trình luận văn viết dữ liệu tới một tệp dữ liệu lên “host” nên dùng kiểu
Continuous Mode như hình trên
Sau đó Chọn Apply → OK
Bước 3: Mở RTDX bằng cách chọn vào như hình dưới
Hình 2.16 Cài đặt và khởi động RTDX
Để thay đổi các cài đặt phải chắc chắn rằng RTDX đã được vô hiệu hóa Chọn trên
cửa sổ và chọn Property Page Ở đây bạn có thể lựa chọn kích thước của bộ đệm
2.5.2.3 C ấu tr C làm việ với RTD
Các bước cần thiết để tạo vị trí trong ứng dụng trên bo mạch cho việc nhận và gửi dữ liệu từ PC:
Trang 35 Tham chiếu tới file header rtdx.h
Công bố kênh vào và ra toàn cục (input, output) cho việc truyền và nhận dữ liệu
Các kênh là các cấu trúc dữ liệu được công bố trong các lệnh sau Kênh có thể chọn tên là
input và có thể có tên khác
RTDX_CreateInputChannel( name );
RTDX_CreateOutputChannel( name );
Khởi chạy ứng dụng trên bo mạch Có một cặp được khởi chạy trên bo mạch Nếu
sử dụng công cụ DSP/BIOS configuration tool thì cả hai sẽ tự động xảy ra Mặt khác
mục chọn thứ hai sẽ chi xảy ra sau khi hàm main() này thoát
- Một sự kiện được chạy ở ứng dụng trên bo mạch định kì để gọi chức năng RTDX_poll để giữ dòng dữ liệu giữ PC và bo mạch Nếu công cụ cấu hình dùng để thiết lập nó lên cho bạn Ngắt cứng HWI HWI_RESERVED1 được sử dụng để gọi chức năng RTDX_poll trên chu kì cơ sở
- Trên C6x RTDX sử dụng ngắt Do đó NMI và các ngắt toàn cục phải được cho phép
Cho phép kênh đọc và ghi dữ liệu sử dụng các hàm sau:
RTDX_enableInput(&name)
RTDX_enableOutput(&name)
Đọc và viết kênh RTDX sử dụng một trong các hàm sau:
RTDX_read(&name, &data, sizeof(data))
RTDX_readNB(&name, &data, sizeof(data))
RTDX_write(&name, &data, sizeof(data))
RTDX_read() [7]
Cú pháp:
int RTDX_read( RTDX_inputChannel *ichan, void *buffer, int bsize );
Các tham số:
ichan: kênh đầu vào dữ liệu
buffer: con trỏ tới bộ đệm sẽ nhận dữ liệu
bsize: kích thước của bộ đệm trong mỗi đơn vị địa chỉ
Giá trị trả về:
> 0 Số đơn vị địa chỉ dữ liệu đã được gửi đến bộ đệm
0 (zero) Lỗi Không thể gửi yêu cầu đọc vì bộ đệm target đã đầy
RTDX_READ_ERROR Lỗi Hiện tại kênh tryền bận hoặc chưa được kích hoạt
Trang 36 Khi RTDX_read được dùng, ứng dụng trên target thông báo cho thư viện RTDX host rằng nó đã sẵn sàng nhận dữ liệu và chờ trong vòng lặp cho đến khi việc đọc hoàn thành
Sử dụng khi đọc dữ liệu dạng khối
Sử dụng khi đọc các dữ liệu không ở dạng khối
RTDX_write(): Ghi dữ liệu lên kênh truyền
Vô hiệu hóa kênh sau khi dùng
RTDX_disableInput
RTDX_disableOutput
Chu trình này sẽ được thể hiện trong đoạn code sau trong đó ngắt mềm SWI sẽ được thiết lập để truyền dữ liệu tới PC Trong ví dụ này các số tự nhiên sẽ được gửi tới
PC một lần Thừa nhận rằng công cụ cấu hình được sử dụng để thiết lập DSP/Bios và do
đó target không cần phải khởi chạy
Hàm gửi dữ liệu tới PC
/* create a global output channel */
/* send the data to the host */
status = RTDX_write( &ochan, &data, sizeof(data) );
/* check the status of the write operation */
Trang 37Sau đây là một số điểm cần chú ý khi sử dụng Visual Basic trong việc giao tiếp với bo mạch
Định nghĩa và tham chiếu trả lại cho RTDX Một số hàm trả lại cho chúng ta các thông tin trạng thái của RTDX như ở đoạn code sau có thể được sử dụng:
Các trạng thái của RTDX
Const Success = &H0 ' Method call is valid
Const Failure = &H80004005 ' Method call failed
Const ENoDataAvailable = &H8003001E ' No data was available ' HoIver, more data may be available in the future
Const EEndOfLogFile = &H80030002 ' No data was available
' The end of the log file has been reached
Thiết lập kênh mà đối tượng RTDX sẽ kết nối đến Cần nhớ rằng các kênh này phải
trùng tên với các kênh đã được tạo ở target.
status = t x.Open("t n k nh", "Kiểu")
status = rtdx.Open("ochan", "R")
status = rtdx.Open("ichan", "W")
Trong đó “Kiểu” là “R” nếu đây là kênh đọc dữ liệu từ target, và là “W” nếu muốn ghi
dữ liệu xuống bo mạch Hàm này trả về không nếu kết nối thành công