Luồng điều khiển

Một phần của tài liệu 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 (Trang 46)

Đầu tiên các môđun riêng rẽ của DSP/BIOS được khởi tạo như trong file cấu hình

DSK_App.cdb. Sau đó hàm main() chiếm quyền điều khiển. Hàm này chỉ làm một số công việc đơn giản như khởi tạo và khởi động quá trình chuyển dữ liệu EDMA. Sau khi thoát khỏi hàm main() thì điều khiển được chuyển cho DSP/BIOS để nó phục vụ các ngắt hay các tiểu trình cần thiết. Khi rỗi thì tiểu trình idle sẽ chạy. Ngắt của EDMA sẽ có quyền ưu tiên cao hơn idle.

Bộ đệm Ping Bộ đệm Pong McBSP2 (Source) Đóng Ngắt Bộ đệm Ping Bộ đệm Pong McBSP2 (Source) Đóng Ngắt Truyền liên kết

Hình 2.28 Đồ thị thực thi các tiến trình

Khi bộ đệm đầy thì ISR (tiến trình phục vụ ngắt) edmaHwi() sẽ được gọi. Tiếp sau đó nó gọi một tiểu trình loại SWI processBuffer() để xử lý bộ đệm đã đầy. Chú ý cơ chế truyền thông giữa edmaHwi()processBuffer() là cơ chế hộp thư. Trong hộp thư sẽ là một biến pingPong cho biết trạng thái của bộ đệm là gì.

2.6.3.4 Điều phối qu trình tru ền nhận Ping – Pong t i phía ph t

Mỗi khối dữ liệu truyền_ DataTrans[32] được chia thành 2 dòng dữ liệu

DataFirst[16]DataLast[16] và được điều chế đồng thời sau đó được đóng gói vào khung nhờ hàm FramePack().

Như đã trình bày ở trên, biến pingPong được dùng để kiểm soát quá trình làm việc với Ping-Pong:

pingPong = Ping, dữ liệu được ghi vào bộ đệm Ping để đưa ra kênh truyền. Khi bộ đệm Ping đầy biến pingPong được set giá trị = Pong

pingPong = Pong, dữ liệu được ghi vào bộ đệm Pong để đưa ra kênh truyền. Khi Pong đầy pingPong được set giá trị = Ping

Ngắt Ngắt Ngắt Ngắt

edma_ hwi thread process_swi thread idle thread

Cấu trúc bộ đệm truyền:

Hình 2.29 Cấu trúc bộ đệm truyền 2.7 Thiết kế khối phát vô tuyến

Thực hiện việc phát dữ liệu qua môi trường vô tuyến, kết hợp giữa tín hiệu đầu ra của bộ biến đổi AIC23 – bộ biến đổi số tương tự và khối phát dữ liệu trong dải FM (88-108 MHz) để đưa tín hiệu từ card DSP lên môi trường vô tuyến. Tín hiệu số sau khi qua bộ AIC23, sẽ được chuyển đổi từ dạng dữ liệu số sang dạng dữ liệu tương tự và được xuất ra ngoài thông qua đường HEADPHONE hoặc LINE OUT trên bo mạch. Bộ chuyển đổi số - tương tự sử dụng hai kênh điều khiển: một kênh điều khiển thanh ghi trong định dạng cho bộ mã hóa, một kênh có chức năng gửi và nhận các mẫu tín hiệu số và tương tự. McBSP1 được sử dụng vô hướng để điều khiển kênh. Nó sẽ được chương trình gửi một từ điều khiển để định dạng thanh ghi. Còn 9 bit thấp là giá trị thanh ghi. Kênh điều khiển chỉ sử dụng khi định dạng khởi tạo cho bộ mã hóa, nó thường được sử dụng khi tín hiệu âm thanh đang được truyền. McBSP2 được sử dụng như là một kênh tín hiệu có hướng. Tất cả tín hiệu âm thanh sẽ được truyền qua kênh này. Nhiều dữ liệu định dạng sẽ được cơ bản cung cấp trên ba biến là độ rộng mẫu, nguồn tín hiệu đồng hồ và nguồn định dạng dữ liệu.

Bài toán được đưa ra ở đây khá cơ bản, khi thực hiện thiết kế một khối phát FM thông thường, để có thể đưa tín hiệu âm thanh sau khi qua bộ AIC23 truyền qua môi trường vô tuyến.

2.8 Kết luận chương

Chương này đã thực hiện việc tìm hiểu về mô hình phát triển phần cứng cho hệ thống OFDM, lựa chọn thông số OFDM, quy trình để xây dựng hệ thống phát dữ liệu OFDM truyền thông thực. Việc xây dựng khối phát vô tuyến gặp khá nhiều khó khăn khi phải hiệu chỉnh các thông số để khối phát có thể cho tín hiệu đầu ra với mức ồn nhỏ nhất.

Chương 3 Phương n đồng ộ ho hệ thống

Trong hệ thống thực tế đang xây dựng trên nền DSP, vấn đề đồng bộ được quan tâm chỉ là đồng bộ kí tự. Bởi vì hệ thống sử dụng hai bo mạch nhúng DSP với tần số dao động là 1Ghz nên với tần số lấy mẫu 48Khz sử dụng trong hệ thống thì sai số tần sồ lấy mẫu rất nhỏ, không tạo ra mất đồng bộ tần số lấy mẫu. Mặt khác, hệ thống được thực hiện ở băng tần cơ sở, chưa đưa lên tần số cao nên việc đồng bộ tần số sóng mang là không cần thiết.

Do đó, hệ thống thực tế đã xây dựng chỉ thực hiện đồng bộ kí tự.

Hệ thống phát các khung OFDM liên tiếp nhau về mặt thời gian do đó xuất hiện yêu cầu đồng bộ khung (qua đó đồng bộ kí tự) là yêu cầu đối với hệ thống. Không ó đồng ộ kí t , sẽ không ó kí t đ ng để x lý, ẫn t i không gi i m đượ tín hiệu an đ u.

Phương án đồng bộ cho hệ thống sẽ trải qua các bước chính sau đây:

Hình 3.1 Các bước thực hiện tiến trình đồng bộ

Việc đánh giá hàm tương quan chéo và hàm trung bình hiệu bình phương tối thiểu cho phép xác định được khả năng ứng dụng của hai hàm này trong kỹ thuật đồng bộ được đề xuất. Do hệ thống phát triển trên bo mạch nhúng DSP C6416, có sự xuất hiện của cơ chế xử lý Ping – Pong nên việc đánh giá các yêu cầu đồng bộ đóng vai trò quan trọng trong việc đưa ra thuật toán đồng bộ mới.

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ộ

Sử dụng hàm trung bình hiệu bình phương tối thiểu thay cho hàm tương quan chéo thường dùng để đồng bộ. Để có cái nhìn rõ ràng hơn về hàm MSE, tôi sẽ so sánh MSE với hàm tương quan chéo hay sử dụng.

3.1.1 Hàm tương quan chéo (cross-correlation)

Trong xử lý tín hiệu số, hàm tương quan chéo được dung để kiểm tra sự giống nhau về hình dạng của hai tín hiệu. Do đó hàm tương quan chéo hay được dùng để tìm ra mẫu tín hiệu nhất định tồn tại trong một tín hiệu khác. Về mặt toán học, hàm tương quan chéo có công thức như sau:

(3.1) Trong đó, biểu thị liên hợp phức của (adsbygoogle = window.adsbygoogle || []).push({});

Tương quan chéo gần giống như tích chập của hai hàm số. Trong khi tích chập liên quan đến việc đảo chiều một tín hiệu, sau đó dịch tín hiệu đã đảo chiều đó và nhân với tín hiệu còn lại. Tương quan chéo thì chỉ dịch tín hiệu và nhân nó với tín hiệu còn lại mà không đảo chiều tín hiệu trước khi nhân.

Khi kiểm tra hai dãy có giống nhau hay không ta lấy tương quan chéo tại 0 hay:

(3.2)

Với hai dãy rời rạc:

(3.3)

Như vậy khi hai tín hiệu có dạng giống nhau nhất thì phép tính tương quan chéo sẽ đạt cực đại.

Khi áp dụng vào trong hệ thống OFDM, hàm tương quan chéo sẽ được thực hiện giữa hai chuỗi tín hiệu dẫn đường liên tiếp, mục tiêu là khi “slice” (dịch chuyển từng bước nhỏ bằng một đơn vị ) thì tương quan chéo sẽ đạt cực đại khi gặp hai tín hiệu dẫn đường cạnh nhau.

Tuy nhiên sau khi thử ngiệm bằng Matlab, hiệu quả đồng bộ bằng hàm tương quan chéo là không cao.

3.1.2 Hàm trung bình hiệu bình phương tối thiểu

Hàm trung bình hiệu bình phương của hai tín hiệu li n tụ và được định nghĩa như sau:

(3.4)

Đối với hai tín hiệu ời và có cùng chiều dài thì hàm trung bình hiệu bình phương của hai tín hiệu là :

(3.5)

Đặt

Ta có:

(3.6)

Nếu hai tín hiệu rời rạc và càng giống nhau thì → 0, dẫn đến E đạt cực tiểu.

Nếu và không giống nhau, là hiệu của hai biến ngẫu nhiên không tương quan, giá trị của sẽ biến thiên lớn tương ứng với E lớn.

Việc kênh truyền tương đối ổn định khi truyền qua dây dẫn, nên tín hiệu biến đổi không nhiều, việc áp dụng hàm trung bình bình phương tối thiểu đạt kết quả cao hơn so với hàm tương quan chéo.

3.2 Đề xuất phương án đồng bộ cho hệ thống 3.2.1 Yêu cầu về hàm đồng bộ 3.2.1 Yêu cầu về hàm đồng bộ

3.2.1.1 Y u ầu về thời gian xử lý

Do cơ chế Ping Pong, thời gian xử lý dữ liệu trong bộ đệm Ping bằng thời gian nhận dữ liệu trong bộ đệm Pong và ngược lại, nên sẽ hạn chế về mặt thời gian đối với quá trình xử lý dữ liệu. Yêu cầu bài toán đặt ra là thuật toán đồng bộ phải tối ưu về mặt thời gian, sao cho đảm bảo xử lý được dữ liệu trong khoảng thời gian cho phép.

Để thực hiện điều này, khai báo bộ đệm Ping – Pong có kích thước bằng hai lần chiều dài một khung OFDM để đảm bảo rằng nó luôn chứa trọn vẹn một khung OFDM và điểm đầu của một khung OFDM luôn có trong nửa đầu của bộ đệm.

Khi nhận được đầy bộ đệm Ping hay Pong tiến hành tìm điểm đầu khung như sau:

Để đảm bảo rằng bộ đệm Ping hoặc Pong bên thu chắc chắn chứa một khung OFDM hoàn chỉnh, ta khai báo bộ đệm Ping-Pong có kích thước tối thiểu bằng hai lần chiều dài một khung OFDM. Chọn đa khung bên phát gồm hai khung liên tiếp, cấu trúc khung bên phát là:

Hình 3.2 Cấu trúc đa khung

Một khung chứa 3 ký tự OFDM : 1 ký tự Dữ liệu (Data) và 2 ký tự dẫn đường (Pilot). Một đa khung gồm 2 khung liên tiếp.

Cấu trúc khung này đảm bảo trong bộ đệm thu bao giờ cũng có 2 ký tự dẫn đường cạnh nhau, phục vụ cho thuật toán đồng bộ.

Vậy độ dài một khung là mẫu phức

Độ dài một đa khung bên phát là mẫu phức. (adsbygoogle = window.adsbygoogle || []).push({});

Đối với chương trình, tốc độ lấy mẫu là 48 kHz do đó thời gian xử lý tối đa là .

3.2.1.2 Y u ầu về giải thuật

DSP có khả năng tính toán lớn tuy nhiên chỉ có thể làm việc được với số dấu phẩy tĩnh và tốc độ xử lý của chip là 1GHz. Vậy, giải thuật không thể quá phức tạp, vượt quá khả năng xử lý của DSP.

3.2.2 Thực hiện đồng bộ

Như đã trình bày ở trên, cấu trúc khung phát gồm 2 khung liên tiếp. Do đó, trong bộ đệm bên thu bao giờ cũng chắc chắn có ít nhất một cặp ký tự dẫn đường nằm cạnh nhau. Ý tưởng đồng bộ là tìm ra 2 ký tự dẫn đường cạnh nhau này từ đó tìm ra điểm đầu khung. Điểm bắt đầu ký tự dẫn đường sau trong 2 ký tự dẫn đường chính là điểm bắt đầu khung. Gọi ký tự dẫn đường đứng trước trong hai ký tự dẫn đường liên tiếp là ký tự dẫn đường A, ký tự đứng sau là ký tự dẫn đường B.

Hình 3.3 Cấu trúc khung truyền

3.2.2.1 Đồng ộ theo h đơn giản

So sánh 2 chuỗi liên tiếp: chuỗi 1 và chuỗi 2, mỗi chuỗi có chiều dài một symbol, theo hình vẽ:

Điểm so sánh được trượt từ điểm đầu đến điểm giữa của đa khung nhận. Khi điểm so sánh trùng với điểm đầu khung cần đồng bộ thì hai chuỗi đem so sánh là hai ký tự dẫn đường do đó trung bình hiệu bình phương của chúng sẽ là nhỏ nhất.

Số lần so sánh sẽ bằng với chiều dài một khung tức là lần.

3.2.2.2 Đồng ộ tiến hành theo hai ướ

Gọi là chiều dài một ký tự.

Bước 1: Tìm ra khối có chiều dài nằm trong ký tự dẫn đường A

Bước 2: Tìm ra điểm bắt đầu ký tự dẫn đường B dựa trên kết quả thu được ở bước 1 Trả về điểm đồng bộ

Đồng bộ lần 1

Nhiệm vụ: Tìm ra khối dữ liệu chiều dài nằm trong ký tự dẫn đường A

Phương n:

Thực hiện quá trình so sánh các trường hợp dữ liệu lưu trong bộ đệm, cho phép xác định được các truờng hợp có thể xảy ra với khối dữ liệu khi được xử lý tại bộ đệm.

Nhận thấy rằng bộ đệm bên thu chỉ có thể rơi vào 1 trong các trường hợp

sau: 0 1 2 3 4 5 6 7 Trường hợp 1: Vị trí giống nhau: I= 0 Trường hợp 2: Vị trí giống nhau: I= 1 Trường hợp 3: Vị trí giống nhau: I= 2 Trường hợp 4: Vị trí giống nhau: I= 3 Trường hợp 5: Vị trí giống nhau: I= 4 Trường hợp 6: Vị trí giống nhau: I= 5 Pilot Data Hình 3.4 Các trường hợp bộ đệm nhận

Từ hình vẽ trên, có thể thấy việc tìm ra vị trí đồng bộ lần 1 được thực hiện bằng cách: bắt đầu từ đầu điểm đầu bộ đệm nhận, tiến hành so sánh lần lượt hai đoạn bộ đệm có chiều dài bằng , cách nhau 1 đoạn . Theo hình vẽ sau:

1 2 3 4 5 6 7 8

I = 1 I = 3 I = 5

I = 2 I = 4 I = 6

Hình 3.5 Sáu bước so sánh lần một

Thực hiện tính hàm trung bình hiệu bình phương (MSE) của các cặp đoạn bộ đệm sau: Cặp 1th : 1 và 3, Cặp 2th : 2 và 4, Cặp 3th : 3 và 5, Cặp 4th : 4 và 6, Cặp 5th : 5 và 7, Cặp 6th : 6 và 8,

Sẽ có chắc chắn có một cặp giống nhau hay giá trị hàm trung bình hiệu bình phương sẽ là nhỏ nhất.

Giả sử tìm ra cặp thứ j: j và j+2 (j= ) là cặp đoạn bộ đệm giống nhau, khi đó, đoạn bộ đệm j sẽ là đoạn bộ đệm nằm gọn trong ký tự dẫn đường A.

Giá trị đồng bộ lần một trả về là j (điểm đầu đoạn dữ liệu nằm trong ký tự dẫn đường A).

ính ph t p: thực hiện 6 lần so sánh hai chuỗi có chiều dài (adsbygoogle = window.adsbygoogle || []).push({});

Đồng bộ lần 2:

Nhiệm vụ: Tìm ra chính xác điểm bắt đầu khung.

Phương n:

- Tìm ra điểm bắt đầu của ký tự dẫn đường A với dữ liệu nhận được từ đồng bộ lần một

Hai symbol pilot liên tiếp

Đoạn bộ đệm tìm thấy

L

Hình 3.6 Vị trí đồng bộ lần 1 trả về trong ký tự dẫn đường A

Như đã thấy ở hình 3.6, đoạn bộ đệm tìm được ở lần 1 có chiều dài nằm gọn trong ký tự dẫn đường A, nên khoảng cách lớn nhất từ vị trí bắt đầu ký tự dẫn đường A đến vị trí đồng bộ lần 1 trả về là:

P (3.7)

Giả sử đoạn bộ đệm tìm được ở lần 1 là nửa cuối của ký tự dẫn đường A. Thiết lập một cửa sổ có chiều dài bằng chiều dài một symbol OFDM là chứa trọn vẹn ký tự dẫn đường A. Tiến hành tính MSE của đoạn bộ đệm nằm trong cửa sổ này và đoạn bộ đệm có cùng chiều dài và kề sau nó theo công thức:

(3.8) Tiếp tục trượt cửa sổ này với bước dịch là 1 đơn vị dữ liệu, cập nhật các giá trị MSE vào

mảng với

Khi đó nếu m không là điểm bắt đầu của ký tự dẫn đường A, sẽ có hai chuỗi so sánh không phải là 2 ký tự dẫn đường liên tiếp nên không tương quan, được đưa vào hàm trung bình hiệu bình phương (MSE), và giá trị Sum thu được sẽ là lớn.

Nếu m là điểm bắt đầu của symbol pilot A, ta sẽ có hai chuỗi so sánh là 2 ký tự dẫn đường liên tiếp nên giống nhau, được đưa vào hàm trung bình hiệu bình phương, và hàm

Sau hàm đồng bộ lần 2, thu được điểm bắt đầu của ký tự dẫn đường A, dịch đi chiều dài ta sẽ có điểm đầu của ký tự dẫn đường B và cũng là điểm đầu của khung cần tìm.

ính ph t p: thuật toán yêu cầu thực hiện Lmax = 48 lần so sánh hai chuỗi có chiều

dài =96.

3.3 Kết luận chương và đánh giá thuật toán đồng bộ

Với cách đồng bộ đơn giản:

 Thực hiện lần so sánh hai chuỗi có chiều dài . Với cách đồng bộ qua hai bước:

 Thực hiện lần so sánh hai chuỗi có chiều dài (đồng bộ lần 1)

 Thực hiện lần so sánh hai chuỗi có chiều dài (đồng bộ lần 2)

Với cách đồng bộ thứ hai, yêu cầu tính toán và xử lý gần như đã giảm đi lần. Điều này giúp thuật toán đồng bộ thỏa mãn các yêu cầu nêu trên của hệ thống.

Chương 4 Kết quả mô phỏng và thử nghiệm thực tế

4.1 Kết quả phân tích tốc độ truyền dẫn của hệ thống

Một phần của tài liệu 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 (Trang 46)