Kỹ thuật điều phối vào ra Ping – Pong

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 44)

Đây là kỹ thuật vào ra điển hình sử dụng EDMA. Đây là kỹ thuật kết hợp giữa tính năng liên kết truyền của EDMA và kỹ thuật điều phối các tiến trình (ngắt cứng và ngắt mềm).

Trong kỹ thuật này, dữ liệu được vận chuyển qua lại từ bộ mã hóa và giải mã thông qua McBSP2, một cổng nối tiếp hai chiều. Bộ điều khiển EDMA được cấu hình để lấy mỗi mẫu dữ liệu 16 bít có dấu trên McBSP2 và lưu trữ trong một bộ đệm ở trong bộ nhớ tới khi nó có thể được xử lý. Một khi nó được xử lý, nó được gửi lại ra McBSP2 đến AIC23 và phát đi. Một kênh EDMA được sử dụng để truyền dữ liệu đến AIC23 trong khi một kênh khác được sử dụng để nhận dữ liệu từ AIC23.

Kỹ thuật này sử dụng EDMA để giải phóng DSP khỏi nhiệm vụ vận chuyển dữ liệu. Khi ở mức cao mạch điều khiển EDMA lấy trực tiếp dữ liệu audio đến từ McBSP2 và đặt vào một bộ đệm dữ liệu. Nó cũng lấy dữ liệu từ một bộ đệm trong bộ nhớ và gửi nó ra McBSP2 để tạo ra tín hiệu âm thanh ra. Có nhiều kênh EDMA riêng biệt được sử dụng để phát và nhận dữ liệu liệu âm thanh.

Vì AIC23 là một bộ mã hóa và giải mã stereo nên tín hiệu đầu vào chứa cả kênh âm thanh phải và trái. Dữ liệu được nhận theo từng khung gồm 2 phần tử: một mẫu 16 bít từ kênh trái và một mẫu 16 bít tiếp sau từ kênh phải. Các khung được nhận với tốc độ là 48KHz, tốc độ lấy mẫu mặc định của DSK.

2.6.3.1 Vận hu ển ữ liệu kiểu Ping – Pong

Khi ở mức cao thì mạch điều khiển EDMA đọc tín hiệu từ McBSP và lưu nó vào bộ nhớ đệm. Dữ liệu nhận được được lưu trong hai bộ đệm logic cạnh nhau là Ping và Pong.

Nếu chỉ có một bộ đệm được dùng thì thời gian xử lý dữ liệu trên bộ đệm của DSP chỉ trong khoảng thời gian từ khi bộ đệm đầy cho đến khi mẫu tín hiệu tiếp theo được nhận.

Khi cả hai bộ đệm được dùng thì ban đầu dữ liệu đến sẽ được lưu trong bộ đệm Ping. Khi nó đầy thì dữ liệu tới sẽ được gửi tới bộ đệm Pong, trong khi đó DSP sẽ xử lí dữ liệu trong bộ đệm Ping mà không sợ nó bị ghi đè lên. Khi mà Pong đầy thì Ping Pong sẽ được cấu hình ngược lại. DSP sẽ có nhiều thời gian hơn để xử lí luồng dữ liệu nhận được và điều này sẽ giúp cho hệ thống gần với thời gian thực hơn và giúp tăng đáng kể tốc độ dòng tín hiệu đến.

Như vậy nếu tính cả phía truyền thì có tất cả là 4 bộ đệm Ping-Pong: receive PING, receive PONG, transmit PING and transmit PONG.

Int16 gBufferXmtPing[BUFFSIZE]; //Transmit Ping buffer Int16 gBufferXmtPong[BUFFSIZE]; //Transmit Pong buffer Int16 gBufferRcvPing[BUFFSIZE]; // Receive Ping buffer Int16 gBufferRcvPong[BUFFSIZE]; //Receive Pong buffer

Giới hạn của chuyển đổi DAC, ví dụ như bộ AIC23 của DSK6416 chỉ chấp nhận tốc độ dữ liệu max là 48000 mẫu trong một giây. Từ đó có thể thấy rằng tốc độ chuyển đổi DAC của bộ mã hóa và giải mã trên bo mạch là khá chậm, phải nghĩ đến hình thức truyền thông khác. Ví dụ này có ích ở chỗ cho biết cách cài đặt tham số cho một thiết bị như thế nào.

2.6.3.2 Kết nối ấu hình Ping – Pong

Một tính năng vận chuyển dữ liệu đặc biệt được gọi là mốc nối các cấu hình EDMA. Khi bộ điều khiển EDMA hoàn thành với phía PING và cần chuyển sang phía

PONG, thì các con trỏ nguồn và đích cũng cần thay đổi để trỏ tới bộ đệm mới. Khi kỹ thuật này được sử dụng thì địa chỉ mới có thể được lưu trữ trong một cấu trúc cấu hình móc nối và sẽ tự động nạp vào bộ điều khiển EDMA khi công việc (cấu hình) hiện thời hoàn thành. Việc tái cấu hình cũng có thể được thực hiện bởi DSP bằng chương trình phục vụ ngắt mềm nhưng sử dụng móc nối các cấu hình tránh khỏi yêu cầu phải điều phối mà phần mềm phải hoàn thành trước khi mẫu tiếp theo đến.

Hình 2.27 Các bộ đệm Ping Pong và quá trình truyền liên kết

2.6.3.3 Luồng điều khiển

Đầ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

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.

Đố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

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 44)

Tải bản đầy đủ (PDF)

(74 trang)