111
Đồ án tốt nghiệp đại học Trang 1 Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50 LỜI NÓI ĐẦU Em xin gửi lời cảm ơn chân thành tới thầy giáo PGS.TS Nguyễn Văn Đức cũng đồng thời là giáo viên hướng dẫn em, người luôn tận tình chỉ bảo, dạy dỗ về mặt chuyên môn, động viên khích lệ về mặt tinh thần cho em hoàn thành đồ án này. Em cũng muốn nói lời cảm ơn tới bố mẹ, anh chị em và những người thân của em. Những người đã luôn theo sát, ủng hộ, động viên em trong quá trình học tập cũng như làm đồ án tốt nghiệp tại trường Đại học Bách Khoa Hà Nội. Em đã rất nỗ lực để hoàn thành đồ án này. Tuy nhiên, do thời gian gấp rút và khả năng có hạn nên chắc chắn còn nhiều hạn chế và thiếu sót. Em rất mong nhận được sự đóng góp ý kiến của quý thầy cô và bạn bè. Em xin chân thành cảm ơn! Hà Nội, ngày 01 tháng 06 năm 2010 Nguyễn Thị Thanh Huyền

Đồ án- Huyền

Embed Size (px)

DESCRIPTION

do an dai hoc bach khoa

Citation preview

Page 1: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 1

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

LỜI NÓI ĐẦU

Em xin gửi lời cảm ơn chân thành tới thầy giáo PGS.TS Nguyễn Văn Đức và

cũng đồng thời là giáo viên hướng dẫn em, người luôn tận tình chỉ bảo, dạy dỗ về mặt

chuyên môn, động viên khích lệ về mặt tinh thần cho em hoàn thành đồ án này. Em

cũng muốn nói lời cảm ơn tới bố mẹ, anh chị em và những người thân của em. Những

người đã luôn theo sát, ủng hộ, động viên em trong quá trình học tập cũng như làm đồ

án tốt nghiệp tại trường Đại học Bách Khoa Hà Nội.

Em đã rất nỗ lực để hoàn thành đồ án này. Tuy nhiên, do thời gian gấp rút và

khả năng có hạn nên chắc chắn còn nhiều hạn chế và thiếu sót. Em rất mong nhận được

sự đóng góp ý kiến của quý thầy cô và bạn bè.

Em xin chân thành cảm ơn!

Hà Nội, ngày 01 tháng 06 năm 2010

Nguyễn Thị Thanh Huyền

Page 2: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 2

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

TÓM TẮT ĐỒ ÁN

Trong đồ án này em đã đi nghiên cứu các quy trình thực hiện hệ thống xử lý trong

miền thời gian thực với bo mạch DSK TMS320C6414, được hỗ trợ bởi phần mềm

CCS, một công cụ lập trình và nạp mã cho DSP để xây dựng, kiểm thử gỡ lỗi, và chạy

chương trình. Ngoài ra em còn tìm hiểu kỹ thuật truyền thông giữa target-to-host để từ

đó xây dựng một hệ thống viễn thông sử dụng công nghệ OFDM trong việc thu phát dữ

liệu số.

Sau khoảng thời gian nghiên cứu và triển khai đề tài, em đã thực hiện thu phát thành

công file văn bản giữa hai máy tính sử dụng công nghệ OFDM qua DSP card, tín hiệu

phát từ đầu ra line output của một DSK và tín hiệu thu từ đầu vào line input của DSK

còn lại. Đây là một hướng nghiên cứu có thể triển khai thực tế và đưa vào sản xuất sản

phẩm thu phát dữ liệu không dây.

ABSTRACT

In my thesis, I would like to research the process to execute the real-time system with

DSK TMS320C6416 board which supports CCS sofware, a programming and

encoding tool for DSP to build, verify, debug, and operate program. Besides, I also

research about telecommunications technique, so that build a telecommunications

system using OFDM technique in digital data transceiver.

After reseaching and implementing thesis time, the results of mine is achievement of

text file transceiver between two computer using OFDM technique via DSP card, in

which tranfer signal is from line output of a DSK and receive signal is from line input

of remaining DSK. This research’s way to be certain to develop in reality and

manufacture wireless data transceiver product.

Page 3: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 3

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MỤC LỤC

LỜI NÓI ĐẦU ............................................................................................................. 1

TÓM TẮT ĐỒ ÁN ....................................................................................................... 2

MỤC LỤC ................................................................................................................... 3

DANH SÁCH HÌNH VẼ .............................................................................................. 6

DANH SÁCH BẢNG BIỂU ......................................................................................... 8

DANH SÁCH CÁC TỪ VIẾT TẮT ............................................................................. 9

PHẦN MỞ ĐẦU ........................................................................................................ 11

CHƯƠNG 1 CÔNG CỤ LẬP TRÌNH VÀ NẠP MÃ CHO DSP CODE COMPOSER

STUDIO (CCS) .......................................................................................................... 12

1.1. Giới thiệu............................................................................................................. 12

1.2. Chu trình xây dựng và phát triển sản phẩm với CCS ............................................ 12

1.3. Cài đặt và tạo cấu hình hệ thống .......................................................................... 12

CHƯƠNG 2 LÀM VIỆC VỚI CCS ............................................................................ 16

2.1. Tạo Project mới ................................................................................................... 16

2.2. Xây dựng và chạy chương trình ........................................................................... 17

2.3. Lựa chọn cấu hình hoạt động cho Project............................................................. 20

2.3.1 Chọn cấu hình: ............................................................................................... 20

2.3.2 Add cấu hình mới cho Project .................................................................... 20

2.4 Sử dụng Break Point và watch window............................................................. 21

2.4.1 Điểm dừng Break Point .................................................................................. 21

2.4.2 Cửa sổ Watch Window ................................................................................... 25

2.5 Sử dụng Probe Point và File I/O ....................................................................... 26

CHƯƠNG 3 DSP/ BIOS ............................................................................................ 35

3.1. Giới thiệu về DSP/BIOS ...................................................................................... 35

3.2. Các thành phần của DSP/BIOS ............................................................................ 36

3.2.1. DSP/BIOS API ............................................................................................. 36

Page 4: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 4

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

3.2.2. DSP/BIOS Configuration .............................................................................. 37

3.2.3. DSP/BIOS Analysis Tools. ............................................................................ 38

3.3. Chuẩn bị tạo dự án làm việc với DSP/BIOS ......................................................... 40

CHƯƠNG 4 KỸ THUẬT TRUYỀN THÔNG............................................................ 48

4.1. Giới thiệu: ........................................................................................................... 48

4.2. Kỹ thuật truyền thông EDMA (Enhanced Direct Memory Access) ...................... 48

4.3. Cấu hình EDMA .................................................................................................. 51

4.3.1. Cấu hình EDMA bằng tay ............................................................................. 51

4.3.1.1. Thêm đối tượng cấu hình EDMA ......................................................... 51

4.3.1.2. Định dạng trường địa chỉ ( Specifying Address Formats) ..................... 51

4.3.1.3. Số khung truyền và chỉ số khung ( Transfer Count and Index Setting ) 56

4.3.1.4. Thiết lập số khung truyền sử dụng file header (Transfer Count Register

Setting using the User’s Header File) ................................................................ 57

4.3.1.5. Thiết lập địa chỉ liên kết (Link address setting) .................................... 59

4.3.2. Cấu hình EDMA bằng câu lệnh ..................................................................... 62

4.4. Bộ biến đổi AIC 23 .............................................................................................. 64

4.5. McBSP ( Multichannel Buffered Serial Port ) ...................................................... 65

4.6. EDMA kết hợp với McBSP ................................................................................. 72

4.7. Kỹ thuật vào ra Ping Pong ................................................................................... 73

4.7.1. Vận chuyển dữ liệu kiểu Ping-Pong ............................................................... 75

4.7.2. Móc nối các cấu hình Ping Pong .................................................................... 75

4.7.3. Luồng điều khiển ........................................................................................... 76

4.8. Kỹ thuật vào ra cho hệ thống ............................................................................... 77

4.8.1. Cấu hình cho Codec....................................................................................... 78

4.8.2. Cấu hình cho EDMA ..................................................................................... 79

4.8.3. Tạo ngắt cứng edma_Hwi .............................................................................. 80

4.8.4. Tạo ngắt mềm processBufferSwi ................................................................... 81

Page 5: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 5

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

4.8.5. Chạy thử nghiệm ........................................................................................... 82

CHƯƠNG 5 TSM320C6416 DSP CARD VÀ CHƯƠNG TRÌNH OFDM ................. 83

5.1. Sơ đồ khối hệ thống OFDM ................................................................................. 83

5.2. Hệ thống truyền thông ......................................................................................... 84

5.3. Mô hình hoạt động modem thu phát OFDM ........................................................ 89

5.3.1. Tầng vật lý .................................................................................................... 91

5.3.2. Tầng Data link ............................................................................................... 93

5.3.3. Tầng ứng dụng .............................................................................................. 93

5.4. Xây dựng chương trình vào ra giữa DSP card và PC ............................................ 93

5.4.1. RTDX ........................................................................................................... 93

5.4.1.1. Giới thiệu chung về RTDX .................................................................. 93

5.4.1.2. Cấu hình RTDX trong chương trình ..................................................... 95

5.4.2. Cấu hình RTDX: ........................................................................................... 95

5.4.2.1 Các bước cấu hình RTDX ..................................................................... 95

5.4.2.2. Các câu lệnh RTDX trong chương trình .............................................. 98

5.4.3. Mở và chạy chương trình .............................................................................. 98

CHƯƠNG 6 KẾT QUẢ ĐO ĐẠC VÀ THỰC NGHIỆM ......................................... 103

6.1. Hiển thị tín hiệu bằng CCS ................................................................................ 103

6.2. Cách đo và hiển thi tín hiệu trên Ocilloscope số ................................................. 105

6.3. So sánh tín hiệu OFDM đo được trên Ocilloscope, matlab và CCS .................... 109

KẾT LUẬN .............................................................................................................. 109

TÀI LIỆU THAM KHẢO ........................................................................................ 111

Page 6: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 6

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

DANH SÁCH HÌNH VẼ

Hình 1-1 Chu trình xây dựng và phát triển sản phẩm với CCS ................................... 12

Hình 4-1 Mô hình vào ra EDMA ............................................................................... 48

Hình 4-2 Tính năng đa kênh của EDMA .................................................................... 49

Hình 4-3 TTC với các kênh EDMA khác nhau .......................................................... 50

Hình 4-4 Bộ chuyển đổi số - tương tự AIC23 ............................................................ 65

Hình 4-5 Mô hình kết hợp giữa EDMA và McBSP .................................................... 72

Hình 4-6 Các bộ đệm Ping-Pong ............................................................................... 74

Hình 4-7 Ping-Pong Buffer và Linked Transfer ......................................................... 76

Hình 4-8 Đồ thị thực thi các tiến trình ....................................................................... 77

Hình 4-9 Ngăt cứng mặc định của EDMA Controller ................................................ 80

Hình 4-10 Cấu hình ngắt cứng EDMA....................................................................... 81

Hình 4-11 Tạo đối tượng ngắt mềm trong công cụ cấu hình của DSP/BIOS .............. 81

Hình 4-12 Sơ đồ chạy thử nghiệm vào ra ................................................................... 82

Hình 5-1 Sơ đồ khối hệ thống OFDM ........................................................................ 83

Hình 5-2 Mô hình thu phát OFDM thực tế ................................................................. 85

Hình 5-3 Bộ sản phẩm DSK 6416.............................................................................. 87

Hình 5-4 Hình ảnh bo mạch TMS320C6416 DSK ..................................................... 88

Hình 5-5 Sơ đồ khối của bo mạch .............................................................................. 88

Hình 5-6 Qúa trình truyền thông giữa host và target thông qua RTDX ...................... 94

Hình 5-7 Giao diện thu phát của hệ thống OFDM .................................................... 101

Hình 5-8 Kết quả nhậnd được khi truyền File Text .................................................. 102

Hình 6-1 Ocilloscope số HM 1508-2 ....................................................................... 106

Hình 6-2 Màn hình ocilloscope với các nút điều khiển ............................................ 106

Hình 6-3 Tín hiệu OFDM trong miền thời gian ....................................................... 107

Hình 6-4 Phổ của tín hiệu OFDM trong miền tần số ................................................ 108

Page 7: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 7

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 6-5 So sánh kết quả tín hiệu OFDM đo bằng Matlab,CCS và Osillo số ........... 109

Page 8: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 8

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

DANH SÁCH BẢNG BIỂU

Bảng 3-1 Các module API của DSP/BIOS .................................................................. 36

Page 9: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 9

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

DANH SÁCH CÁC TỪ VIẾT TẮT

API Application Programming Interface

BSL Board Support Library

CCS Code Composer Studio

CSL Chip Support Library

CMOS Complementary Metal Oxide Semiconductor

CODEC Coder-Decoder

CPLD Complex Programmable Logic Device

CPU Central Processing Unit

DAB Digital Audio Broadcasting

DARAM Dual Access Random Access Memory

DIP Dual In-line Package

DMA Direct Memory Access

DRM Digital Radio Mondiale

DSK DSP Started Kit

DSP Digital Signal Processor

EAMD Enhanced Direct Memory Access

EMIF External Memory Interface

FFT Fast Fourier Transform

HPI Host Port Interface

IDE Integrated Development Environment

IDFFT Inverse Fast Fourier Transform

IEEE Institute of Electrical and Electronic Engineers

IO Input/Output

ISI Inter-symbol Interface

IQ Inphase Quadrature

Page 10: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 10

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

JTAG Joint Test Action Group

LED Light Emitting Diode

McBSP Multi-Channel Buffered Serial Port

MHz Megahertz

NMI Non-Maskable Interrupt

OFDM Orthogonal Frequency Division Multiplexing

OS Operating System

PC Personal System

POST Power On Self Test

PLL Phase Locked Loop

PQFP Plastic Quad Flat Pack

QAM Quadrature amplitude modulation

RF Radio Frequency

ROM Read-Only Memory

SDI Spectrum Digital Incorporated

SARAM Single Access Random Access Memory

SRAM Static Random Access Memory

SDRAM Synchronous Dynamic Random Access Memory

TI Texas Instruments

TIL Transistor-Transistor Logic

TCC Transfer Complete Code

Page 11: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 11

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

PHẦN MỞ ĐẦU

Ngày nay, việc ứng dụng các dòng vi điều khiển xử lý số với tốc độ cao ngày càng

được nghiên cứu và phát triển. Cùng với FPGA, DSPs ( Digital Signal Processors)

ngày càng thể hiện vai trò quan trọng của mình trong việc xây dựng các hệ thống

truyền thông. Vì vậy việc nghiên cứu cách thức thực hiện một mô hình truyền thông sử

dụng những khả năng của DSPs rất có ý nghĩa trong thực tiễn.

DSPs có các họ như TMS320C6x (C6x)là một bộ xử lý đặc biệt với cấu trúc

chuyện dụng và chương trình cài đặt thích hợp cho việc xử lý tìn hiệu. Cấu trúc của

DSP C6x rất phù hợp cho việc tình toán với tốc độ cao sử dụng cầu trúc very-long-

instruction-word(VLIW). DSP được ứng dụng một cách rộng rãi, từ việc truyền thông

và điều khiển đến việc xử lý âm thanh và hình ảnh. Tính đa năng của DSP vượt trội

trong việc truyền thông. Các ứng dụng của DSP chiểm ưu thế trong các sản phẩm thực

tế. Chúng được tìm thấy trong các cell phone, fax/modem,radio,máy in, MP3, HDTV,

camera số…

Trong đồ án này em đi nghiên cứu các quy trình thực hiện hệ thống xử lý trong

miền thời gian thực trên bo mạch nhúng DSP. Mà cụ thể là tìm hiểu TMS320C6416

DSK, là một mạch tích hợp các linh kiện phục vụ hoạt động của con vi xử lý chủ

C6416. Đó là một dòng sản phẩm của công ty Texas Instrument, với những khả năng

cung cấp tốc độ cao( 720 Mhz) cũng như môi trường làm việc thân thiện (Code

Compose Studio - CCS) ngày càng thể hiện được vai trò của mình trong việc thiết kế

các sản phẩm truyền thông. Từ những ví dụ đơn giản làm ban đầu làm quen với CCS

em đã xây dựng thành công modem thu phát dữ liệu trên nền DSP sử dụng kỹ thuật

OFDM, em còn giới thiệu cách đo đạc tín hiệu thu được sử dụng Ocilloscope số HM

1508-2. Đề tài này có thể được ứng dụng và triển khai để phục vụ cho việc nghiên cứu

học tập cũng như ứng dụng vào thực tế trong tương lai.

Page 12: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 12

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 1 CÔNG CỤ LẬP TRÌNH VÀ NẠP MÃ CHO DSP

CODE COMPOSER STUDIO (CCS)

1.1.Giới thiệu

CCS là phần mềm đi kèm theo DSK, nó là trình soạn thảo, gỡ lỗi cũng như để

biên dịch các chương trình của chúng ta.

CCS cung cấp môi trường IDE kết hợp chặt chẽ giữa các công cụ phần mềm.

CCS bao gồm các công cụ như trình biên dịch C, assembly và các trình liên kết. Nó có

khả năng đồ họa và hỗ trợ debug thời gian thực, cung cấp các công cụ phần mềm sử

dụng một cách dễ dàng để xây dựng và chạy chương chình. Trình biên dịch C biên dịch

các chương trình C nguồn với file.c để đưa ra file assembly với file.asm. Assembler tập

hợp các file .asm tạo ra ngôn ngữ máy file.obj. Trình liên kết (linker) biên dịch các file

.obj và các hàm thư viện đầu vào để tạo ra file thực thi là file.out . Chương 2 tôi sẽ giới

thiệu cụ thể cách tạo và làm việc với CCS

1.2.Chu trình xây dựng và phát triển sản phẩm với CCS

1.3.Cài đặt và tạo cấu hình hệ thống [5]

CCS cho phép chúng ta cấu hình hệ thống để làm việc với hệ phần cứng khác

nhau. Chúng ta có bắt đầu làm việc nhanh bằng cách cầu hình các hệ thống mặc định

Thiết kế

Khái niệm

Lập kế hoạch

Viết mã và xây

dựng Project,

viết file nguồn

và file cấu hình

Gỡ lỗi

Kiểm tra cấu

trúc

Khảo sát

Phân tích

thời gian

thực, gỡ lỗi,

thống kê,đồ

họa lại.

Hình 1-1 Chu trình xây dựng và phát triển sản phẩm với CCS

Page 13: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 13

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

theo các cấu hình chuẩn mà CCS cung cấp. Chẳng hạn hệ thống 5000TMC thì có file hệ

thống chuẩn là 55 TMC x và hệ thống 6000TMC chúng ta có file hệ thống chuẩn là

64 TMC x . 6000TMC 55 TMC x

CCS cho phép chúng ta lựa chọn cách cấu hình hệ thống sử dụng các file hệ

thống chuẩn hoặc khởi tạo các file cấu hình theo yêu cầu của người sử dụng các file

cấu hình riêng.

Các bước khởi tạo cấu hình hệ thống sử dụng các file cấu hình hệ thống chuẩn:

Sau khi cài đặt chúng ta thấy xuất hiện 4 biểu tượng 6416DSKDiagnosticsUtility v3.1;

Setup CCStudio v3.1; CCStudio 3.1; 6416 DSK CCStudio v3.1

Bước 1: Bắt đầu bằng cách click đúp vào biểu tượng Setup CCStudio

Bước 2: Click vào Remove All trong hộp thoại System Configuration để

loại bỏ các cấu hình định nghĩa trước đó.

Bước 3: Click Yes để chứng thực lệnh Remove All.

Bước 4: Chọn cấu hình chuẩn phù hợp từ các cầu hình có sẵn như hình sau:

Page 14: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 14

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 5: Click phím Add để chọn cấu hình vừa lựa chọn. Cấu hình lựa chọn sẽ

hiển thị phía dưới biểu tượng My System icon trong bảng System

Configuration của cửa sổ Setup. Nếu bạn muốn cấu hình cho nhiều hệ thống

khác nhau thì hãy lặp lại các bước 4 và 5. Phần bên phải của cửa sổ Code

Composer Studio Setup là các thông tin mô tả cấu hình lựa chọn. Chúng ta xem

xét xem cấu hình có phù hợp với hệ thống của chúng ta

không. Nếu không phù hợp chúng ta có thể thay đổi lại bằng cách click phím

Modify Properties. Sau khi khai báo các thông số thích hợp ta click OK.

Bước 6: Click phím Save&Quit để lưu lại cấu hình vừa lựa chọn và bắt đầu làm

việc với CCS.

Bước 7: Click Yes để bắt đầu làm việc với CCStudio khi đã thoát khởi tạo

CCStudio. Cửa sổ Setup CCStudio đóng và CCStudio IDE tự động mở ra cho ta

sử dụng với cấu hình hệ thống vừa tạo.

Page 15: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 15

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bạn có thể bắt đầu làm việc với CCStudio IDE.

Page 16: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 16

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 2 LÀM VIỆC VỚI CCS

2.1.Tạo Project mới [5]

Trong phần này tôi đi giới thiệu về cách tạo ra một Project mới, add các File

nguồn và thư viện vào Project. Qua đó chúng ta biết được các File với các đuôi sau:

- .lib là file thư viện, cung cấp thời gian chạy hỗ trợ cho DSP

- .c là file chứa mã nguồn cung cấp chức năng chính của Project

- .h là file khai báo cấu trúc bộ đệm C cũng như xác định các hằng số yêu cầu.

- .pjt là file chứa tất cả việc xây dựng và lựa chọn cấu hình của Project.

- .asm là file bao gồm các chương trình assemply.

- .cmd là file ánh xạ các đoạn vào bộ nhớ.

Các bước khởi tạo dự án mới:

Bước 1: Từ menu Project chọn New → Hộp thoại xuất hiện.

Bước 2: Gõ tên Project mới vào hộp thoại Project name, và chọn đường

dẫn đặt Project vào hộp thoại Location. Chọn các thông số tương ứng với

hệ thống của bạn và click Finish

Sau khi tạo project mới thì cửa sổ sau xuất hiện:

Page 17: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 17

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

2.2. Xây dựng và chạy chương trình

Để xây dựng và chạy chương trình ta thực hiện theo các bước sau:

Bước 1: Viết các file nguồn cho chương trình. Đây là các file có dạng

file.c. Để tạo ra các file nguồn này chúng ta vào File → New → Source

file. Các câu lệnh trong chương trình của chúng ta sẽ được viết tại đây.

Sau đó chúng ta sẽ lưu file nguồn lại bằng cách click File → Save as.

Chọn đường dẫn cho file nguồn vào đúng thư mục chứa project của

chúng ta, khai báo tên và click Save.

Bước 2: Add các file vào project bằng cách click chuột phải lên tên của

project đang làm việc ở bên phải của cửa sổ chương trình CCS, chọn

Add Files to Project như hình sau.

Page 18: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 18

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 3: Chọn file nguồn ( file.c ) vừa tạo ra và click Open.

Bước 4: Add các file thư viện vào chương trình. Ở đây chúng ta làm việc

với chip C6416 nên chúng ta sẽ Add file rts6400.lib trong thư mục

C:\Program Files\CCStudio_v3.1\C6000\cgtools\lib vào chương trình như

đã Add file nguồn ở bước 3.

Bước 5: Click Scan All File Dependencies để tham chiếu các file.h vào

chương trình. Các file.h này sẽ tự động được tạo ra.

Page 19: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 19

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 6: Chọn Project→ Rebuild All hoặc click vào biểu tượng

trên thanh công cụ.

Bước 7: Theo mặc định thì file .out sẽ được tạo ra tại thư mục chứa

Project. Để thay đổi nơi chứa file.out tạo ra ta chọn bằng cách vào

Project/build option/link..

Bước 8: Chọn File→load Program. Chọn file.out vừa tạo ra và click

Open.

Page 20: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 20

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 9: Chọn View→Mixed Source/ASM. Lựa chọn này sẽ cho phép

chương trình tạo ra đồng thời code C và các đoạn code Assembly tương

ứng trong quá trình chạy.

Bước 10: Chọn Debug→Go Main để bắt đầu thực thi chương trình từ

đoạn chương trình chính. Quá trình thực thi sẽ dừng lại ở đoạn chương

trình chính và nó được chỉ ra bởi kí hiệu

Bước 11: Chọn Debug→Run để chạy chương trình hoặc là click vào biểu

tượng trên thanh công cụ.

Bước 12: Chọn Debug→Halt để dừng chương trình.

2.3. Lựa chọn cấu hình hoạt động cho Project [5]

2.3.1 Chọn cấu hình:

Định nghĩa một cấu hình hoạt động của chương trình thiết lập mức độ các tùy

chọn để xây dựng project. Các project được tạo ra với 2 cấu hình mặc định là: Debug

và Release. Debug được dùng để gỡ lỗi chương trình và Release để tạo tạo ra sản phẩm

cuối cùng.

Như hình sau:

Click vào Debug để lựa chọn cấu hình hoạt động của hệ thống

2.3.2 Add cấu hình mới cho Project

Bước 1: Chọn Project→Configuration.

Bước 2: Cửa sổ Add Project Configuration xuất hiện.

Page 21: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 21

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 3:Click vào Add và khai báo tên của cấu hình mới và chọn lựa các

tùy chọn thích hợp.

Bước 4: Click OK để đồng ý add cấu hình mới...

2.4 Sử dụng Break Point và watch window

2.4.1 Điểm dừng Break Point

Break Point được dùng để đánh dấu các điểm dừng khi thực thi chương trình.

Nó giúp chúng ta chạy và khảo sát riêng từng đoạn chương trình. Để tạo điểm tạm

dừng chương trình khi chạy chúng ta di chuột tới điểm mà chúng ta muốn chương trình

sẽ dừng khi chạy, click chuột phải và chọn Toggle Software Breakpoint như ở hình

dưới, hoặc ấn vào biểu tượng trên thanh công cụ, hoặc chúng ta có thể Click đúp

vào đoạn chương trình ta cần dừng để kiểm tra.

Page 22: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 22

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Khi đó ở góc màn hình tại điểm đánh dấu sẽ xuất hiện dấu chấm đỏ như hình sau:

Page 23: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 23

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Ví dụ 1 : khi ta chạy chương trình và đánh điểm Break Point ta có kết quả như sau:

- Khi đánh điểm Preak Point thứ nhất ta thấy kết quả ở cửa sổ Watch Window

The maximum value in the data is 64

- Khi chạy điểm Preak Point thứ 2 ta được kết quả như sau:

Page 24: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 24

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

The maximum value in the data is 64

The minimum value in the data is 3

Và lần lượt chạy hết các điểm cho đến hết ta sẽ được kết quả sau:

The maximum value in the data is 64

The minimum value in the data is 3

The spread of the data is 61

The maximum value in the data is 64

The minimum value in the data is 2

The spread of the data is 62

Muốn hủy bỏ điểm BreakPiont nào thì ta Click đúp chuột trái lên dòng lệnh

chứa điểm đấy. Còn nếu ta muốn huỷ bỏ tất cả các điểm BreakPoint thì ta click lên

biểu tượng trên thanh công cụ của CCS.

Page 25: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 25

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

2.4.2 Cửa sổ Watch Window

Cửa sổ này kết hợp với Break point sẽ cho chúng ta quan sát được các kết quả

của chương trình khi nó tạm dừng.

Ta vào cửa sổ Watch Window bằng cách vào View và chọn Watch Windown như

hình vẽ:

Hoặc ta cũng có thể Click vào biểu tượng trên thanh công cụ của CCS

Giả sử để xem kết quả của một biến Datatrans tại điểm chương trình dừng ta sẽ khai

báo Datatrans vào trong cửa sổ Watch1 như hình sau:

Page 26: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 26

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Qua cửa sổ này chúng ta cũng có thể biết kết quả các giá trị của một mảng.

Chúng ta cũng có thể thay đổi giá trị tạm thời của biến khai báo một cách tạm thời, ở

đây thay giá trị Datatrans bằng cách cho giá trị mới tại miền Value. Khi đó chương

trình sẽ tiếp tục chạy với giá trị mới của Datatrans là giá trị vừa khai báo.

Chúng ta cũng có thể xem giá trị của biến bằng các kiểu khác nhau bằng cách

Click chuột trái vào miền Radix và tích vào kiểu mà ta muốn xem.

2.5 Sử dụng Probe Point và File I/O

Probepoint là kỹ thuật cho phép chúng ta đọc dữ liệu vào từ một file trên máy

tính. Đó là một công cụ hữu ích trong quá trình phát triển giải thuật, vì nó đỡ cho

chúng ta phải thêm vào những đoạn mã vào ra với file trên máy tính. Chúng có thể

được sử dụng để:

Vận chuyển dữ liệu vào từ một file trên máy tính tới một bộ đệm (một mảng nào

đó) trên target (DSP thực hoặc simulator) để kiểm tra giải thuật.

Vận chuyển dữ liệu ra từ một bộ đệm trên target đến một file trên máy tính

(host) để phân tích kết quả.

Để cập nhật cửa sổ, chẳng hạn như dữ liệu cho đồ thị.

Chúng ta sẽ tạo ra các điểm này bằng cách di chuột đến vị trí ta muốn khảo sát

quá trình vào ra dữ liệu. Click chuột phải và chọn Toggle Software Probe point như

hình vẽ sau hoặc click lên biểu tượng trên thanh công cụ của CCS.

Page 27: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 27

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Khi đấy ở góc màn hình sẽ xuất hiện dấu hiệu như ở hình dưới đây.

Muốn hủy một điểm Probe Point ta click chuột phải lên vị trí chứa điểm ấy và

lựa chọn như ở hình dưới. Còn nếu muốn hủy tất cả các điểm Probe Point thì ta click

lên biểu tượng trên thanh công cụ của CCS.

Page 28: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 28

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Một hạn chế khi sử dụng Probe point để khảo sát quá trình truyền thông giữa

target và host đó là nó chỉ cho phép chúng ta vào ra các file hex định dạng là file.dat

Khi chèn một Probepoint vào chương trình thì nó được gắn với một file I/O

được tạo ra bằng cách vào mục File/ FileIO (Ở đây ta chỉ có thể Add được File.dat.)

Một cửa sổ file IO sẽ có dạng như sau:

Page 29: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 29

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Ví dụ: chương trình SinWave

Ví dụ này thực hiện việc truyền thông ở mức đơn giản giữa host và target bằng

cách dùng Break Point và Probe Point. Chương trình này thực hiện nạp file sine.dat

từ máy tính vào trong DSP. Dữ liệu nhận được sẽ được DSP xử lí ( ở đây chỉ đơn giản

là nhân các giá trị nhận được với hằng số gain = 5 ) sau đó ta truyền kết quả ngược lại

cho máy tính. Kết quả của quá trình xử lí này sẽ được lưu lại trên máy tính dưới dạng

file là bigSine.dat. Thực hiện ví dụ này thông qua các bước sau:

Bước1: Mở file sinwave.pjt trong đường dẫn E:\program

file\ccs\tutorial\sim64xx\sinewave

Bước 3: ReBuild All chương trình và load file sinewave.out vừa được tạo

ra.

Bước 4: Mở file nguồn sine.c và đánh dấu điểm Probe Point tại dòng

dataIO() trong hàm main() như hình sau:

Page 30: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 30

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 5: Click File → File I/O. Cửa sổ File I/O xuất hiện như hình dưới.

Bước 6: Click Add File. Cửa sổ File Input xuất hiện. Chúng ta chọn

đường dẫn tới folder sinewave và mở file sine.dat.

Bước 7: Click Add Probe Point cửa sổ Break/Probe Ponts được mở ra

như hình sau

Page 31: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 31

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Click chuột lên dòng sine.c line 30…. trong trường Probe Point. Trong trường

Connect To chọn FILE IN: E:\..\sine.dat như hình trên. Click Replace và sau đó Click

OK.

Bước 8: Trong hộp thoại FILE I/O tại trường Address gõ vào

currentBuffer.input và tại trường Length gõ vào số 100 như hình dưới.

Click OK.

Page 32: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 32

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 9: Click File → File I/O. Click Tab File Output. Add file

bigsine.dat. Click Add Probe Point. Trong ô Probe Point click lên sine.c

line 30…. trong trường Probe Point. Trong trường Connect To chọn FILE

IN: E:\..\bigsine.dat. Click lên phím Add ta sẽ có kết quả như hình dưới.

Page 33: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 33

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 10: Trong hộp thoại File I/O tại trường Address gõ

currentBuffer.output và tại trường Length gõ 100. Kết quả như hình dưới.

Click OK.

Bước 11: Click Run(hoặc ấn F5) để chạy chương trình.

Bước 12: Click Haft để dừng chương trình. Kiểm tra lại file bigsine.dat ta

sẽ thấy dung lượng của nó tăng lên.

Bước 13: Click view → Watch Window. Trong Tab Watch1 gõ

currentBuffer.input. Cho chạy chương trình chúng ta sẽ có bảng sau.

Page 34: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 34

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chúng ta có thể thấy ngay các giá trị của mảng currentBuffer.input

(currentBuffer.out put) các giá trị đầu vào và đầu ra. Chúng ta có thể thay đổi tạm thời

các giá trị này để chạy chương trình của chúng ta.Việc này sẽ không ảnh hưởng gì tới

file sine.dat gốc.

Page 35: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 35

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 3 DSP/ BIOS

3.1. Giới thiệu về DSP/BIOS

DSP/BIOS là một thiết kế cho các ứng dụng yêu cầu đồng bộ thời gian thực,

truyền thông giữa host-to-target cùng với các công cụ phân tích thời gian thực.

DSP/BIOS cung cấp nhiều đoạn tuyến có mức ưu tiên khác nhau, trừu tượng hóa phần

cứng và phân tích thời gian thực.

DSP/BIOS được đóng gói dưới dạng các module và có thể liên kết vào trong

ứng dụng của chúng ta. Các ứng dụng kết hợp với các hàm chức năng này của

DSP/BIOS ( trực tiếp hoặc gián tiếp ) và chúng sẽ được tham chiếu tới trong ứng dụng.

Thêm vào đó, công cụ DSP/BIOS cho phép tối ưu hóa kích thước và tốc độ bằng cách

vô hiệu hóa các tính năng mà chúng ta không sử dụng.

Chúng ta có thể sử dụng DSP/BIOS để đo đạc phân tích quá trình làm việc bằng

cách khảo sát ( probeb), phác họa (traced), và hiển thị trong miền thời gian thực. Các

chương trình sử dụng DSP/BIOS Configuration Tool sẽ tận dụng được khả năng đa

phân tuyến ( multi – threading ) của DSP/BIOS.

DSP/BIOS được tích hợp với Code Composer Studio, và được hỗ trợ hoàn toàn

bởi Texas Instruments. Các đối tượng trong DSP/BIOS có thể cấu hình trên giao diện

của DSP/BIOS. Do đó sẽ làm giảm kích thước của đoạn code và tối ưu hóa cấu trúc dữ

liệu bên trong. DSP/BIOS API đã chuẩn hoá việc lập trình trên DSP cho một số thiết bị

của TI và cung cấp một số các công cụ phát triển lập trình sử dụng đơn giản nhưng rất

hiệu quả. Các công cụ này làm giảm yêu cầu về thời gian để lập trình cho DSP.

DSP/BIOS cung cấp các API chuẩn , điều này cho phép phát triển các thuật toán cung

cấp các đoạn code mà các đoạn code này dễ dàng được tích hợp vào trong hàm chức

năng khác…

Page 36: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 36

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

3.2. Các thành phần của DSP/BIOS

DSP/BIOS API: Chương trình bằng ngôn ngữ C hoặc Assembly có thể được

gọi ra từ 150 hàm DSP/Bios API.

DSP/BIOS Configuration: Bảng công cụ này cho phép bạn khởi tạo và cấu

hình cho DSP/Bios để dùng cho chương trình của bạn.

DSP/BIOS Analysis Tools: Cửa sổ này cho phép bạn có cài nhìn tổng quát

vè hoạt động thời gian thực.Vi dụ, chạy cửa sổ Graph sẽ hiển thị đồ thị hoạt

động của các đoạn tuyến.

3.2.1.DSP/BIOS API

DSP/BIOS được thiết kế cho các ứng dụng yêu cầu điều phối thời gian thực

và sự đồng bộ, truyền thông giữa target-host hoặc công cụ thời gian thực.

DSP/BIOS cung cấp nhiều module với các mức ưu tiên khác nhau, các công cụ cấu

hình.

DSP/BIOS API bao gồm trên 150 hàm thư viện trên ngôn ngữ C. DSP/BIOS

được đóng gói thành các mô đun và có thể được liên kết vào trong chương trình ứng

dụng. Những ứng dụng include chỉ những hàm mà nó cần thiết cho ứng dụng. Hơn

nữa, công cụ cấu hình của DSP/BIOS cho phép chúng ta tối ưu kích thước đoạn mã

chương trình và như vậy tăng tốc độ của chương trình chạy bằng cách tách những

tính năng DSP/BIOS riêng ra khỏi chương trình

Bảng 3-1 Các module API của DSP/BIOS

Module Description

ATM Module Atomic functions written in assembly language

BUF Module Maintains buffer pools of fixed size buffers

C62 and C64 Module Target-specific functions

CLK Module System clock manager

DEV Module Device driver interface

GIO Module I/O module used with IOM mini-drivers

Page 37: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 37

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Global Settings Global setting manager

HOOK Module Hook function manager

HST Module Host channel manager

HWI Module Hardware interrupt manager

IDL Module Idle function and processing loop manager

LCK Module Resource lock manager

LOG Module Event Log manager

MBX Module Mailboxes manager

MEM Module Memory manager

PIP Module Buffered pipe manager

PRD Module Periodic function manager

QUE Module Queue manager

RTDX Module Real-time data exchange manager

SEM Module Semaphores manager

SIO Module Stream I/O manager

STS Module Statistics object manager

SWI Module Software interrupt manager

SYS Module System services manager

TRC Module Trace manager

TSK Module Multitasking manager

std.h and stdlib.h

functions

Standard C library I/O functions

3.2.2. DSP/BIOS Configuration

Page 38: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 38

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

DSP/BIOS configuration cho phép chúng ta khởi tạo và cấu hình các đặc tính

của DSP/BIOS để sử dụng cho chương trình của chúng ta.

3.2.3. DSP/BIOS Analysis Tools.

Các công cụ phân tích hỗ trợ cho môi trường CCS bằng cách cho phép phân tích

tính thời gian thực của các ứng dụng DSP/BIOS. Ta có thể giám sát trực quan một ứng

dụng DSP khi nó đang chạy với sự ảnh hưởng lên tính thời gian thực của các ứng dụng

Page 39: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 39

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

là nhỏ nhất. DSP/BIOS analysis tools được đưa vào trong DSP/BIOS menu, thể hiện

như trong hình dưới đây:

Khác với các công cụ debug truyền thống, các công cụ trên được mở rộng để

thực thi chương trình, điều này yêu cầu chương trình phía target phải chứa các lệnh

thời gian thực. Bằng việc sử dụng các API và các đối tượng, người phát triển sẽ tự

động đo đạc phía target để bắt giữ và tải lại các thông tin thời gian thực lên cho host

thông qua DSP/BIOS analysis tools của Code Composer Studio.

Page 40: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 40

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

3.3. Chuẩn bị tạo dự án làm việc với DSP/BIOS

Một dự án có sử dụng DSP/BIOS có cấu trúc khác với một dự án thông thường.

Đó là các thư viện hàm, các file header, và đặc biệt một dự án của DSP/BIOS không

thể thiếu file cấu hình. Nó chứa thông tin về các mô đun và đối tượng của DSP/BIOS

được sử dụng trong chương trình. Các bước chuẩn bị một dự án DSP/BIOS bao gồm

tạo file cấu hình và thêm file cấu hình vào dự án.

Tạo file cấu hình

Page 41: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 41

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Để sử dụng DSP/BIOS chắc chắn phải tạo một file cấu hình. Nhiệm vụ của file

cấu hình là định nghĩa các đối tượng và các thuộc tính cho chúng. Công cụ cấu hình sẽ

tạo ra các file cấu hình sau: cdb, cmd, cfg.h, cfg.h62, cfg.s62, cfg_c.c.

Tóm lại, bước cấu hình chính là tạo ra một đối tượng trong mô đun được sử dụng.

Thêm file cấu hình vào dự án

Trong bước trước ta mới chỉ tạo ra các file cấu hình. Bây giờ là lúc ta thêm nó

vào dự án. Đầu tiên là thêm file cdb vào, CCS sẽ tự động lôi theo các file cfg.s62 và

cfg_c.c vào. Tiếp theo là thêm file cmd và cuối cùng rebuild lại dự án.

Tóm lại trong bước này ta thêm một số file cần thiết và loại bỏ những file không cần

thiết.

Ví dụ: Thank_you.pjt

Ở chương trước ta đã biết cách tạo ra một Project mới với tên newproject1.pjt,

đây là chương trình in ra câu “Thank you for your attention. Have a nice day!” sử dụng

các hàm DSP/BIOS API. Các bước khởi tạo chương trình này như sau:

Bước 1: Tạo project mới có tên là Thank_you.pjt.

Bước 2: Tạo một file cấu hình DSP/BIOS mới với tên là thank_you.cdb bằng

cách click vào File → New → DSP/BIOS configuration. Cửa sổ New hiện ra.

Chọn dsk6416.cdb ( loại DSK mà chúng ta làm việc ) và lick OK.

Page 42: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 42

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Cửa sổ file DSP/BIOS sẽ hiện ra cho chúng ta làm việc. Lưu lại file với tên là

thank_you.cdb chúng ta sẽ có giao diện như hình sau.

Page 43: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 43

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Thêm file thank_you.cdb vừa tạo ra vào project thank_you.pjt của chúng ta. Mở

rộng project thank_you.pjt ở bên trái màn hình làm việc sẽ thấy trong mục DSP/BIOS

xuất hiện file thank_you.cdb còn ở Generated Files sẽ xuất hiện ba file

thank_youcfg.cmd, thank_youcfg.s62 và thank_youcfg_c.c, ba file này tự động được tạo

ra khi ta tạo file cấu hình thank_you.cdb .

Page 44: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 44

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 3: Tạo ra file nguồn thank_you.c như đã chỉ ra ở mục 2.2 của chương 2.

Add file này vào chương trình thank_you.pjt.

Bước4: Click đúp lên file thank_you.cdb. Mở phân vùng Intrumentation. Click

chuột phải lên LOG-Event Log Manager chọn Insert LOG để tạo ra một đối

tượng LOG như hình sau.

Page 45: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 45

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Đổi tên đối tượng LOG mới này thành trace như hình sau:

Bước 5: Rebiuld chương trình. Load file thank_you.out vừa được tạo ra. Nếu

chúng ta đang cắm dsk6416 với máy tính thì chương trình sẽ được nạp và chạy.

Nhưng nếu chúng ta chỉ mô phỏng trên phần mềm thì sẽ có báo lỗi. Nguyên

nhân là do trong file cấu hình thank_you.cdb đã tự động mặc định cho việc sử

dụng RTDX cho việc truyền thông host – target thông qua cổng kết nối USB

theo chuẩn JTAG. Để chương trình biên dịch mà không có lỗi chúng ta sẽ sữa

lại cấu hình RTDX như sau. Click chuột phải lên RTDX và chọn Properties như

hình sau.

Page 46: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 46

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Một cửa sổ hiện ra, trong trường RTDX Mode ta chọn là Simulator như hình dưới.

Rebuil All lại toàn bộ chương trình. Load file thank_you.out và chạy thử.

Bước 6: Để xem kết quả của chương trình. Click DSP/BIOS → Message Log.

Page 47: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 47

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Cửa sổ Message Log hiện ra, trên đó có dòng chữ “Thank you for your

attention. Have a nice day!” như hình sau.

Page 48: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 48

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 4 KỸ THUẬT TRUYỀN THÔNG

4.1.Giới thiệu

Một vấn đề quan trọng khi xây dựng các ứng dụng trên DSP đó là sự truyền

thông giữa chúng như thế nào? Cách xây dựng các chương trình cho phép thực hiện

quá trình truyền thông giữa các DSP với nhau. Chương này sẽ giúp chúng ta hiểu rõ

hơn về điều đó

4.2. Kỹ thuật truyền thông EDMA (Enhanced Direct Memory Access)[2]

EDMA là mô hình vào ra đặc thù của C6146 cho phép truyền đồng bộ và có thể

kích hoạt bởi bất kì sự kiện nào đó( ví dụ như ngắt). Nó hoạt động độc lập với CPU, để

làm việc với EDMA ta sử dụng các hàm API và các macro để thiết lập.

Đây là mô hình vào ra đặc thù của DSK 6416. Đó là sự kết hợp của cả phần

cứng lẫn phần mềm. Về mặt phần cứng đó là bộ điều khiển EDMA. Về mặt phần mềm

đó là việc điều phối giữa ngắt cứng EDMA và ngắt mềm xửjf lý

Các tính năng chuyên dụng của bộ điều khiển EDMA Controller là:

Multichannel

Data bus

CPU

IO port

Memory

1

EDMA

Controller

2

3

1 Enable EDMA

2 EDMA Read data from IO

3 EDMA Write data to Memory

Hình 4-1 Mô hình vào ra EDMA

Page 49: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 49

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Transfer Complete Code (TCC)

Linked Transfer

Mutichannel

Bộ điều khiển EDMA có thể điều khiển được nhiều kênh DMA cùng một lúc.

Các thông số đặc trưng của một kênh EDMA như: Địa chỉ nguồn, địa chỉ đích, kích

thước bộ đệm.

Ví dụ của địa chỉ nguồn là địa chỉ của cổng McBSP2, địa chỉ đích là một con trỏ

đến bộ đệm (một mảng) nào đó. Kích thước của bộ đệm là số lượng byte được vận

chuyển.

Tính đa năng đa kênh của EDMA

Tranfer complete code.

Destination 1

(Memory)

Source 1

(IO port)

Cha

nnel

1

Destination 2

(Memory)

Source 2

(IO port)

Cha

nnel

2

Destination 3

(Memory)

Source 3

(IO port)

Cha

nnel

3

Hình 4-2 Tính năng đa kênh của EDMA

Page 50: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 50

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Khi có sự kiện một kênh EDMA hoàn thành vận chuyển dữ liệu, bộ điều khiển

EDMA sẽ phát sinh một ngắt duy nhất gửi về cho CPU. Vậy làm cách nào để CPU có

thể phân biệt được ngắt đó là do kênh EDMA nào hoàn thành. Đó chính là thông qua

Transfer Complete Code (TCC). Mỗi kênh EDMA khi được cấu hình sẽ được gán cho

một con số được gọi là TCC. Khi có ngắt xảy ra, CPU đọc con số TCC gửi về bởi

EDMA Controller, thông qua đó nó biết được kênh nào đã hoàn thành việc vận chuyển

dữ liệu.

Linked transfer

Khi EDMA kết thúc ở phía Ping và cần chuyển sang phía Pong. Con trỏ nguồn

và đích cần phải được trỏ tới vị trí bộ đệm mới. Khi liên kết truyền được dùng, địa chỉ

mới có thể được lưu trữ trong cấu trúc cấu hình kết nối ( links configuration structure )

và được tự động nạp vào bởi mạch điều khiển EDMA khi hoàn thành quá trình truyền.

Việc cấu hình lại cũng có thể được quản lí bởi Dsp bằng các ngắt mềm và kết nối

truyền này sẽ được bỏ đi khi kết thúc ngắt mềm trước khi mẫu tín hiệu tiếp theo được

nhận để tín hiệu audio được liên tục.

Trong một ứng dụng, khi chương trình chạy, các module DSP/BIOS riêng rẻ sẽ

thực hiện khởi tạo quá trình cấu hình với công cụ cấu hình DSP/BIOS. Hàm chính

được gọi tới và thực hiện các đoạn chương trình khác. Trong ví dụ này main() thực

hiện khởi tạo và bắt đầu EDMA để truyền dữ liệu. Khi hàm main kết thúc, điều khiển

Channel 1(TCC1 )

Channel 2 (TCC 2)

Channel 3 (TCC 3)

CPU TCC?

Hình 4-3 TCC với các kênh EDMA khác nhau

Page 51: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 51

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

được chuyển cho Dsp/Bios để phục vụ các ngắt hoặc các đoạn chương trình cơ bản cần

thiết. Khi không có công việc gì được thực thi thì đoạn chương trình rỗng được thực

hiện. Ngắt EDMA sẽ được dành quyền ưu tiên trong vòng đoạn chương trình rỗng

4.3. Cấu hình EDMA

4.3.1. Cấu hình EDMA bằng tay [5]

4.3.1.1. Thêm đối tượng cấu hình EDMA

Click chuột phải bào EDMA Configuration Manager và chọn Insert edmacfg như hình

dưới đây:

Có tối đa 16 đối tượng cấu hình có thể được sử dụng cùng một lúc.

4.3.1.2. Định dạng trường địa chỉ ( Specifying Address Formats)

Địa chỉ nguồn và đích được thiết lập theo một trong 4 cách sau: Numeric, Extern

Declaration Object (Extern Decl. Obj.), User’s Header file, and McBSP handle.

Page 52: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 52

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Numeric: Địa chỉ kiểu hexa.

Extern Declaration Object ( Các đối tượng định nghĩa ngoài ): Để sử dụng

cách này chúng ta tiến hành theo các bước sau:

- B1: Khai báo tên kí hiệu cần dùng ở mục CSL Extern

Declaration.Chẳng hạn ở đây ta dùng tên là Ping.

Page 53: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 53

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

- B2: Click chuột phải vào Ping và chọn Properties. Khai báo các

thuộc tính của đối tượng Ping tương ứng:

Page 54: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 54

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Trong đó ping điền trong mục Symbol Name chính là tên của đối tượng

được định nghĩa.

- B3: Khai báo địa vào cấu hình EDMA như hình sau :

Chú ý: Đối tượng ping sử dụng ở đây phải được định nghĩa ít nhất là

một lần trong đoạn chương trình của chúng ta nếu không chương trình

sẽ bị lỗi khi ta biên dịch.

User’s Header file: Kí tự được định nghĩa trong file header có thể được sử

dụng như là một địa chỉ đích hoặc địa chỉ nguồn. Khi User’s Header file

được lựa chọn thì trường “Enter full address” sẽ được dùng tới. Để dùng

cách này ta cần tuân theo các bước sau:

- B1: Tạo ra một file.h chẳng hạn file myfile.h sau:

Page 55: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 55

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

// myfile.h

#define BUFFSIZE 256

#define myESIZE 0x0004 //element size of 4 bytes

Uint32 myBuffer[BUFFSIZE];

- B2: Khai báo để cấu hình có thể sử dụng file.h này như hình :

- B3: Sử dụng trong cấu hình EDMA :

Page 56: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 56

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

4.3.1.3. Số khung truyền và chỉ số khung ( Transfer Count and Index Setting )

Bao gồm Frame count ( Thanh ghi đếm số khung truyền ) và element count ( thanh

ghi đếm các element được truyền ).

Giá trị thanh ghi count có thể được thiết lập bằng 2 cách:

C1: Giá trị dạng Hexa. Giá trị này có thể khai báo gián tiếp trên tab Advanced

của EDMA configuration.

C2: User’s Header file:

Chú ý:

Header file có thể được tham chiếu dưới CSL Extern Declaration.

Kí tự phải được định nghĩa trong chương trình nếu không sẽ có lỗi khi biên

dịch.

Page 57: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 57

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Nếu bạn tham chiếu file header trong những file C khác, phải cẩn thận khi định

nghĩa các biến toàn cục nhiều lần.#IFDEF có thể được sử dụng để ngăn chặn lỗi

này.

4.3.1.4. Thiết lập số khung truyền sử dụng file header (Transfer Count Register

Setting using the User’s Header File)

Sử dụng kí tự từ file header có thể rất tiện lợi. Ví dụ, header file có thể được định

nghĩa một kí tự chẳng hạn như BUFFSIZE trong file header như sau:

// myfile.h

#define BUFFSIZE 256

#define myESIZE 0x0004 //element size of 4 bytes

Uint32 myBuffer[BUFFSIZE];

File này giống file header myfile.h mà ta đã tạo ra từ trước.

Trong ví dụ này, giá trị BUFFSIZE được cấu hình cho thành phần element count của

EDMA configuration. Cấu hình EDMA sẽ truyền số BUFFSIZE cho element.

Page 58: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 58

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Ngoài ra ví dụ này cũng định nghĩa myESIZE để thiết lập chỉ số element index (EIX)

(Nó mô tả khoảng cách mà con trỏ sẽ di chuyển sau mỗi lần truyền).

Page 59: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 59

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Transfer Count page/tab: FRAME counter ( FC ) không được dùng tới (“NULL”);

ELEMENT counter (EC) được thiết lập là BUFFSIZE.

Index page/tab: Element index được thiết lập là mySIZE

4.3.1.5. Thiết lập địa chỉ liên kết (Link address setting)

Giá trị thanh ghi reload/link có thể được thiết lập bằng 2 cách khác nhau: table

number và table handle:

Table Number: Sử dụng bảng số chuyên dụng Reload/Link.

Table Handle: Đúng hơn là bảng số chuyên dụng “hardcode”, tên bảng quản lí

bộ nhớ ( Table Handle ) chuyên dụng có từ danh sách drop-down, như hình

dưới.

Page 60: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 60

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

a. Thiết lập bằng Table Number

Các bảng số được dùng trong phạm vi từ 0 đến 18. Bảng 0 có địa chỉ là

0X01A00630. Mặt khác, thực tế có 20 bảng nhưng hai bảng đầu tiên ( có địa chỉ là

0X01A0060 và 0X01A00618 ) là được để dành riêng và người sử dụng không can

thiệp vào chúng. (Hàm EDMA_allocaTable() sẽ cho chúng ta các thông tin chi tiết về

bảng table Number mà chúng ta sử dụng )

Ta sử dụng Table Number trong cấu hình EDMA như sau:

b. Thiết lập bằng Table Handle

Thiết lập giá trị thanh ghi Reload/Relink bằng cách lựa chọn bảng Table Handle. Tiến

hành theo hai bước sau:

B1: Tạo bảng Reload/Relink như hình sau:

Page 61: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 61

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Rename tên Table handle.

Khai báo thuộc tính của bảng Table handle vừa tạo như hình sau:

Page 62: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 62

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

B2: Từ hộp thoại cấu hình của EDMA ta khai báo như sau:

4.3.2. Cấu hình EDMA bằng câu lệnh

Cấu hình cho bên phát

EDMA_Config gEdmaConfigXmt = {

EDMA_FMKS(OPT, PRI, HIGH) | // Mức ưu tiên là High

EDMA_FMKS(OPT, ESIZE, 16BIT) | // Kích thước một mẫu truyền là 16 bít

EDMA_FMKS(OPT, 2DS, NO) | // 2 dimensional source?

EDMA_FMKS(OPT, SUM, INC) | // Dạng update địa chỉ nguồn là INC

EDMA_FMKS(OPT, 2DD, NO) | // 2 dimensional dest

EDMA_FMKS(OPT, DUM, NONE) | // Dạng update địa chỉ đích là None

EDMA_FMKS(OPT, TCINT, YES) | // Có dùng ngắt EDMA không ? Yes

EDMA_FMKS(OPT, TCC, OF(0)) | // Cờ truyền TCC

Page 63: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 63

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

EDMA_FMKS(OPT, LINK, YES) | // Cho phép liên kết các tham số.

EDMA_FMKS(OPT, FS, NO), // Sử dụng đồng bộ khung ?

(Uint32)&gBufferXmtPing, // Địa chỉ nguồn.

EDMA_FMK (CNT, FRMCNT, NULL) | // Số khung truyền mỗi lần

EDMA_FMK (CNT, ELECNT, BUFFSIZE), // Số element truyền mỗi lần

EDMA_FMKS(DST, DST, OF(0)), // Địa chỉ đích

EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Chỉ số khung

EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Chỉ số element

EDMA_FMK (RLD, ELERLD, NULL) | // Reload element

EDMA_FMK (RLD, LINK, NULL) // Reload link

};

Cấu hình cho bên nhận:

EDMA_Config gEdmaConfigRcv = {

EDMA_FMKS(OPT, PRI, HIGH) | // Priority

EDMA_FMKS(OPT, ESIZE, 16BIT) | // Element size

EDMA_FMKS(OPT, 2DS, NO) | // 2 dimensional source?

EDMA_FMKS(OPT, SUM, NONE) | // Src update mode

EDMA_FMKS(OPT, 2DD, NO) | // 2 dimensional dest

EDMA_FMKS(OPT, DUM, INC) | // Dest update mode

EDMA_FMKS(OPT, TCINT, YES) | // Cause EDMA interrupt?

EDMA_FMKS(OPT, TCC, OF(0)) | // Transfer complete code

EDMA_FMKS(OPT, LINK, YES) | // Enable link parameters?

EDMA_FMKS(OPT, FS, NO), // Use frame sync?

EDMA_FMKS(SRC, SRC, OF(0)), // Src address

EDMA_FMK (CNT, FRMCNT, NULL) | // Frame count

EDMA_FMK (CNT, ELECNT, BUFFSIZE), // Element count

Page 64: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 64

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

(Uint32)&gBufferRcvPing, // Dest addres

EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Frame index value

EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Element index value

EDMA_FMK (RLD, ELERLD, NULL) | // Reload element

EDMA_FMK (RLD, LINK, NULL) // Reload link

};

4.4. Bộ biến đổi AIC 23

DSK sử dụng bộ Texas Instrument AIC23 ( #TLV320AIC320 ) để biến đổi số -

tương tự cho tín hiệu audio vào và ra. Tín hiệu tương tự có thể vào qua đường MIC IN

hoặc là đường LINE IN để chuyển đổi sang dạng số mà DSP có thể xử lý. Sau khi kết

thúc quá trình xử lý, tín hiệu số có thể chuyển đổi ngược lại thành tín hiệu tương tự và

xuất ra ngoài thông qua đường Headphone hoặc đường LINE OUT. 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 tghi. Kênh diề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.

Page 65: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 65

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 4-4 Bộ chuyển đổi số - tương tự AIC23

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. Các ví dụ của

DSK thường sử dụng mẫu có độ rộng là 16 bit để mã hõa, nó tạo ra khung đồng bộ và

xung đồng hồ để chuẩn hóa tấn số lấy mẫu.

Bộ mã hóa có hệ thống đồng hồ 12 MHz này phù hợp với tần số của USB vì nhiều

hệ thống USB sử dụng đồng 12MHZ và cũng có thể dùng chung đồng hồ cho bộ mã

hóa và điều bộ điều khiển USB. Có thể tạo ra nhiều tân số nhỏ hơn từ tần số cơ sở này,

như các tần số 48KHz, 44.1 KHz và 8KHz. Tần số lấy mẫu có thể được khởi tạo bằng

thanh ghi SAMPLERATE.

4.5. McBSP ( Multichannel Buffered Serial Port )

McBSP bao gồm McBSP1 và McBSP2. Trong đó McBSP1 ( Là một cổng nối tiếp)

được dùng để cấu hình và điều khiển AIC23. AIC23 sẽ nhận liên tiếp các lệnh thông

qua McBSP1 để cấu hình các thông số như là độ lớn, tốc độ mẫu và định dạng của mẫu

tín hiệu. McBSP2 là cổng nối tiếp 2 chiều. EDMA sẽ cấu hình cho các mẫu dữ liệu

Page 66: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 66

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

truyền thông trên McBSP2. Khi McBSP2 nhận dữ liệu nó sẽ được lưu vào vùng bộ nhớ

đệm để chờ xử lý. Trong quá trình truyền EDMA gửi data ngược lại McBSP2.

Người ta có thể cấu hình cho McBSP thông qua hai cách:

Cách 1: Cấu hình dựa vào hỗ trợ của công cụ McBSP configuration manager Đây là

một công cụ cho phép ta cấu hình McBSP gián tiếp trên file cấu hình thông qua các lựa

chọn theo giao diện như ở hình sau

Page 67: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 67

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Cách 2: Cấu hình thông qua các đoạn mã trong file nguồn như là đoạn cấu hình mẫu

dưới đây.

Cấu hình cho McBSP2

MCBSP_Config mcbspCfg2 = {

MCBSP_FMKS(SPCR, FREE, NO) |

MCBSP_FMKS(SPCR, SOFT, NO) |

MCBSP_FMKS(SPCR, FRST, YES) |

MCBSP_FMKS(SPCR, GRST, YES) |

MCBSP_FMKS(SPCR, XINTM, XRDY) |

MCBSP_FMKS(SPCR, XSYNCERR, NO) |

MCBSP_FMKS(SPCR, XRST, YES) |

MCBSP_FMKS(SPCR, DLB, OFF) |

MCBSP_FMKS(SPCR, RJUST, RZF) |

MCBSP_FMKS(SPCR, CLKSTP, DISABLE) |

MCBSP_FMKS(SPCR, DXENA, OFF) |

MCBSP_FMKS(SPCR, RINTM, RRDY) |

MCBSP_FMKS(SPCR, RSYNCERR, NO) |

MCBSP_FMKS(SPCR, RRST, YES),

MCBSP_FMKS(RCR, RPHASE, SINGLE) |

MCBSP_FMKS(RCR, RFRLEN2, DEFAULT) |

MCBSP_FMKS(RCR, RWDLEN2, DEFAULT) |

MCBSP_FMKS(RCR, RCOMPAND, MSB) |

MCBSP_FMKS(RCR, RFIG, NO) |

MCBSP_FMKS(RCR, RDATDLY, 0BIT) |

MCBSP_FMKS(RCR, RFRLEN1, OF(1)) |

MCBSP_FMKS(RCR, RWDLEN1, 16BIT) |

Page 68: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 68

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MCBSP_FMKS(RCR, RWDREVRS, DISABLE),

MCBSP_FMKS(XCR, XPHASE, SINGLE) |

MCBSP_FMKS(XCR, XFRLEN2, DEFAULT) |

MCBSP_FMKS(XCR, XWDLEN2, DEFAULT) |

MCBSP_FMKS(XCR, XCOMPAND, MSB) |

MCBSP_FMKS(XCR, XFIG, NO) |

MCBSP_FMKS(XCR, XDATDLY, 0BIT) |

MCBSP_FMKS(XCR, XFRLEN1, OF(1)) |

MCBSP_FMKS(XCR, XWDLEN1, 16BIT) |

MCBSP_FMKS(XCR, XWDREVRS, DISABLE),

MCBSP_FMKS(SRGR, GSYNC, DEFAULT) |

MCBSP_FMKS(SRGR, CLKSP, DEFAULT) |

MCBSP_FMKS(SRGR, CLKSM, DEFAULT) |

MCBSP_FMKS(SRGR, FSGM, DEFAULT) |

MCBSP_FMKS(SRGR, FPER, DEFAULT) |

MCBSP_FMKS(SRGR, FWID, DEFAULT) |

MCBSP_FMKS(SRGR, CLKGDV, DEFAULT),

MCBSP_MCR_DEFAULT,

MCBSP_RCERE0_DEFAULT,

MCBSP_RCERE1_DEFAULT,

MCBSP_RCERE2_DEFAULT,

MCBSP_RCERE3_DEFAULT,

MCBSP_XCERE0_DEFAULT,

MCBSP_XCERE1_DEFAULT,

Page 69: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 69

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MCBSP_XCERE2_DEFAULT,

MCBSP_XCERE3_DEFAULT,

MCBSP_FMKS(PCR, XIOEN, SP) |

MCBSP_FMKS(PCR, RIOEN, SP) |

MCBSP_FMKS(PCR, FSXM, EXTERNAL) |

MCBSP_FMKS(PCR, FSRM, EXTERNAL) |

MCBSP_FMKS(PCR, CLKXM, INPUT) |

MCBSP_FMKS(PCR, CLKRM, INPUT) |

MCBSP_FMKS(PCR, CLKSSTAT, DEFAULT) |

MCBSP_FMKS(PCR, DXSTAT, DEFAULT) |

MCBSP_FMKS(PCR, FSXP, ACTIVEHIGH) |

MCBSP_FMKS(PCR, FSRP, ACTIVEHIGH) |

MCBSP_FMKS(PCR, CLKXP, FALLING) |

MCBSP_FMKS(PCR, CLKRP, RISING)

};

Để cấu hình cho McBSP1 ta có thể dùng đoạn mã như sau.

MCBSP_Config mcbspCfg1 = {

MCBSP_FMKS(SPCR, FREE, NO) |

MCBSP_FMKS(SPCR, SOFT, NO) |

MCBSP_FMKS(SPCR, FRST, YES) |

MCBSP_FMKS(SPCR, GRST, YES) |

MCBSP_FMKS(SPCR, XINTM, XRDY) |

MCBSP_FMKS(SPCR, XSYNCERR, NO) |

MCBSP_FMKS(SPCR, XRST, YES) |

MCBSP_FMKS(SPCR, DLB, OFF) |

MCBSP_FMKS(SPCR, RJUST, RZF) |

Page 70: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 70

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MCBSP_FMKS(SPCR, CLKSTP, NODELAY) |

MCBSP_FMKS(SPCR, DXENA, OFF) |

MCBSP_FMKS(SPCR, RINTM, RRDY) |

MCBSP_FMKS(SPCR, RSYNCERR, NO) |

MCBSP_FMKS(SPCR, RRST, YES),

MCBSP_FMKS(RCR, RPHASE, DEFAULT) |

MCBSP_FMKS(RCR, RFRLEN2, DEFAULT) |

MCBSP_FMKS(RCR, RWDLEN2, DEFAULT) |

MCBSP_FMKS(RCR, RCOMPAND, DEFAULT) |

MCBSP_FMKS(RCR, RFIG, DEFAULT) |

MCBSP_FMKS(RCR, RDATDLY, DEFAULT) |

MCBSP_FMKS(RCR, RFRLEN1, DEFAULT) |

MCBSP_FMKS(RCR, RWDLEN1, DEFAULT) |

MCBSP_FMKS(RCR, RWDREVRS, DEFAULT),

MCBSP_FMKS(XCR, XPHASE, SINGLE) |

MCBSP_FMKS(XCR, XFRLEN2, OF(0)) |

MCBSP_FMKS(XCR, XWDLEN2, 8BIT) |

MCBSP_FMKS(XCR, XCOMPAND, MSB) |

MCBSP_FMKS(XCR, XFIG, NO) |

MCBSP_FMKS(XCR, XDATDLY, 1BIT) |

MCBSP_FMKS(XCR, XFRLEN1, OF(0)) |

MCBSP_FMKS(XCR, XWDLEN1, 16BIT) |

MCBSP_FMKS(XCR, XWDREVRS, DISABLE),

MCBSP_FMKS(SRGR, GSYNC, FREE) |

Page 71: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 71

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MCBSP_FMKS(SRGR, CLKSP, RISING) |

MCBSP_FMKS(SRGR, CLKSM, INTERNAL) |

MCBSP_FMKS(SRGR, FSGM, DXR2XSR) |

MCBSP_FMKS(SRGR, FPER, OF(0)) |

MCBSP_FMKS(SRGR, FWID, OF(19)) |

MCBSP_FMKS(SRGR, CLKGDV, OF(99)),

MCBSP_MCR_DEFAULT,

MCBSP_RCERE0_DEFAULT,

MCBSP_RCERE1_DEFAULT,

MCBSP_RCERE2_DEFAULT,

MCBSP_RCERE3_DEFAULT,

MCBSP_XCERE0_DEFAULT,

MCBSP_XCERE1_DEFAULT,

MCBSP_XCERE2_DEFAULT,

MCBSP_XCERE3_DEFAULT,

MCBSP_FMKS(PCR, XIOEN, SP) |

MCBSP_FMKS(PCR, RIOEN, SP) |

MCBSP_FMKS(PCR, FSXM, INTERNAL) |

MCBSP_FMKS(PCR, FSRM, EXTERNAL) |

MCBSP_FMKS(PCR, CLKXM, OUTPUT) |

MCBSP_FMKS(PCR, CLKRM, INPUT) |

MCBSP_FMKS(PCR, CLKSSTAT, DEFAULT) |

MCBSP_FMKS(PCR, DXSTAT, DEFAULT) |

MCBSP_FMKS(PCR, FSXP, ACTIVELOW) |

MCBSP_FMKS(PCR, FSRP, DEFAULT) |

MCBSP_FMKS(PCR, CLKXP, FALLING) |

Page 72: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 72

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

MCBSP_FMKS(PCR, CLKRP, DEFAULT

4.6. EDMA kết hợp với McBSP

Sử dụng EDMA và McBSP để quản lí bộ nhớ mà không có sự can thiệp từ DSP.

McBSP1 ( Là một cổng nối tiếp ) được dùng để cấu hình và điều khiển AIC23. AIC23

sẽ nhận liên tiếp các lệnh thông qua McBSP1 để cấu hình các thông số như là độ lớn,

tốc độ mẫu và định dạng của mẫu tín hiệu.

McBSP2 là cổng dữ liệu,và là cổng nối tiếp 2 chiều. EDMA sẽ cấu hình cho các

mẫu dữ liệu truyền thông trên McBSP2. Khi McBSP2 nhận dữ liệu nó sẽ được lưu vào

vùng bộ nhớ đệm để chờ xử lí. Trong quá trình truyền EDMA gửi data ngược lại

McBSP2.

Trong đó McBSP chia làm 2 kênh: . Trong đó McBSP1 là cổng vào ra điều khiển

các thông số hoạt động của Codec, còn McBSP2 là cổng dữ liệu.

Analog

CPU

EDMA McBSP AIC23

BUFFER

DSK

Hình 4-5 Mô hình kết hợp giữa EDMA và McBSP

Page 73: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 73

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Codec 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 Codec, 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 dạ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.

4.7. Kỹ thuật vào ra Ping Pong

Ở mức cao thì mạch điều khiển EDMA đọc tín hiệu audio 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. 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.

Nếu chỉ có một bộ đệm được dùng thì DSP sẽ xử lí tất cả dữ liệu trên bộ đệm 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ì 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. Tương tự ta cũng có

hai bộ đệm Ping Pong tách biệt cho quá trình truyền dữ liệu.

PingPong là kỹ thuật điển hình sử dụng EDMA. Đây là kỹ thuật kết hợp giữa tính

năng Linked Transfer 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 audio được vận chuyển qua lại từ codec 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 audio 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 codec

và phát đi. Một kênh EDMA được sử dụng để truyền dữ liệu đến codec trong khi một

kênh khác được sử dụng để nhận dữ liệu từ codec.

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. Bộ điều khiển EDMA lấy trực tiếp dữ liệu audio đến từ McBSP2 và đặt vào một

Page 74: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 74

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

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 audio 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 audio.

Hình 4-6 Các bộ đệm Ping-Pong

Dữ liệu audio số được nhận từ codec thông qua McBSP2. Dữ liệu audio là một chuỗi

các số nguyên 16 bít có dấu biểu diễn biên độ của tín hiệu vào tại một thời điểm nào

đó. Vì AIC23 là một codec stereo nên đầu vào audio chứa cả kênh audio phải và trái.

Dữ liệu được nhận theo từng frame chứa 2 phần tử, một mẫu 16 bít từ kênh trái theo

sau bởi một mẫu khác 16 bít từ kênh phải. Các frame được nhận với tốc độ là 48KHz,

tốc độ lấy mẫu mặc định của DSK.

Page 75: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 75

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

4.7.1.Vận chuyển dữ liệu kiểu Ping-Pong

Về mặt logic ở phía nhận dữ liệu thì đây là hai bộ đệm. Khi dữ liệu đến đầu tiên nó

được điền vào bộ đệm Ping. Khi Ping đầy thì dữ liệu sẽ được điền vào Pong. Như vậy

trong khoảng thời gian điền dữ liệu vào Pong, DSP có thể thoải mái xử lý dữ liệu trong

Ping. Đến khi Pong đầy, thì dữ liệu từ Ping được chuyển ngược lại và DSP lại xử lý

bên Pong. Quá trình như vậy cứ lặp đi lặp lại vô hạn lần.

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

PONG bên nhận và 2 bộ đệm PING-PONG bên thu.

Int16 gBufferRcvPing[BUFFSIZE]; // Transmit PING buffer

Int16 gBufferRcvPing[BUFFSIZE]; // Transmit PONG buffer

Int16 gBufferRcvPong[BUFFSIZE]; // Receive PING buffer

Int16 gBufferRcvPong[BUFFSIZE]; // Receive PONG buffer

Giới hạn của chuyển đổi DAC, ví dụ như codec 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 codec 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 config cho một thiết bị như thế nào.

4.7.2. Móc nối các cấ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

Page 76: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 76

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

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.

4.7.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.

Ping Buffer

Pong Buffer

McBSP2(

Source)

Enabled

Disable

Ping Buffer

Pong Buffer

McBSP2(

Source) Enabled

Disable

Linked Transfer

Hình 4-7 Ping-Pong Buffer và Linked Transfer

Page 77: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 77

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Khi buffer đầ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ý buffer đã đầy. Chú ý cơ chế truyền

thông giữa edmaHwi() và 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ì.

4.8. Kỹ thuật vào ra cho hệ thống

Đến đây ta đã biết cách thực hiện vào ra cho một hệ thống xử lý bao gồm 2 mảng

chính: là phần cứng và phần mềm.

Về mặt phần cứng, ta cần phải cấu hình cho các thiết bị ngoại vi ở trên hệ DSP thực, ở

đây là cạc DSK 6416. Chẳng hạn ta các thiết bị cần cấu hình trong hệ thống chúng ta

đang thực hiện là Codec AIC23, cổng McBSPs, bộ điều khiển EDMA. Để cấu hình cho

các thiết bị này, chương trình ứng dụng sẽ thực hiện các lời gọi API của các mô đun

tương ứng. Dưới đây liệt kê các mô đun cần thiết cho cấu hình các thiết bị nói trên:

- Codec: mô đun BSL

- EDMA: mô đun CSL

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

edma_ hwi thread

process_swi thread

idle thread

Hình 4-8 Đồ thị thực thi các tiến trình

Page 78: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 78

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Trong đó BSL viết tắt của Board Support Library chứa các API đặc thù của thiết bị

cạc DSK 6416. CSL là viết tắt của Chip Support Library chứa các API dùng để cấu

hình các thiết bị ngoại vi nói chung.

Về mặt phần mềm, khi sử dụng vào ra với EDMA thì khi dữ liệu sẵn sàng, bộ điều

khiển EDMA sẽ báo ngắt về CPU. Như vậy trong chương trình phải có hàm xử lý phục

vụ ngắt này. Hàm phục vụ ngắt EDMA được điều phối với hàm xử lý tương ứng với

một ngắt mềm. Các đối tượng ngắt cứng và ngắt mềm được cấu hình bằng công cụ cấu

hình của DSP/BIOS. Dưới đây chúng ta sẽ đi vào cụ thể.

4.8.1. Cấu hình cho Codec

Để cấu hình cho Codec ta cần tạo ra một cấu trúc AIC23_Params chứa các thông

tin cấu hình cho Codec. Trong những thông số đó có một thông số quan trọng là tốc độ

lấy mẫu. Trong đoạn mã dưới đây, chỗ in đậm thể hiện thông tin cấu hình cho tốc độ

lấy mẫu của Codec. Các trường khác của cấu trúc cũng được chú thích ở bên cạnh.

AIC23_Params config = {

0x0017, // 0 DSK6416_AIC23_LEFTINVOL Left line input channel volume

0x0017, // 1 DSK6416_AIC23_RIGHTINVOL Right line input channel volume

0x00d8, // 2 DSK6416_AIC23_LEFTHPVOL Left channel headphone volume

0x00d8, // 3 DSK6416_AIC23_RIGHTHPVOL Right channel headphone volume

0x0011, // 4 DSK6416_AIC23_ANAPATH Analog audio path control

0x0000, // 5 DSK6416_AIC23_DIGPATH Digital audio path control

0x0000, // 6 DSK6416_AIC23_POWERDOWN Power down control

0x0043, // 7 DSK6416_AIC23_DIGIF Digital audio interface format

0x0001, // 8 DSK6416_AIC23_SAMPLERATE Sample rate control = 48000

0x0001 // 9 DSK6416_AIC23_DIGACT Digital interface activation

Page 79: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 79

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

};

4.8.2. Cấu hình cho EDMA

Để cấu hình cho EDMA ta cũng cần tạo ra một cấu trúc có tên là EDMA_Config

và điền đầy đủ thông tin cấu hình trong cấu trúc này. Một số thông tin cấu hình quan

trọng bao gồm: địa chỉ nguồn, địa chỉ đích, số frame được vận chuyển (độ dài buffer).

Trong đoạn mã sau, các thông tin trên được in đậm.

EDMA_Config gEdmaConfigRcv = {

EDMA_FMKS(OPT, PRI, HIGH) | // Priority

EDMA_FMKS(OPT, ESIZE, 16BIT) | // Element size

EDMA_FMKS(OPT, 2DS, NO) | // 2 dimensional source?

EDMA_FMKS(OPT, SUM, NONE) | // Src update mode

EDMA_FMKS(OPT, 2DD, NO) | // 2 dimensional dest

EDMA_FMKS(OPT, DUM, INC) | // Dest update mode

EDMA_FMKS(OPT, TCINT, YES) | // yes: cho phép EDMA gọi các ngắt

phục vụ của nó

EDMA_FMKS(OPT, TCC, OF(0)) | // Transfer complete code

EDMA_FMKS(OPT, LINK, YES) | // Enable link parameters?

EDMA_FMKS(OPT, FS, NO), // Use frame sync?

EDMA_FMKS(SRC, SRC, OF(0)), // địa chỉ có dữ liệu để nhận

EDMA_FMK (CNT, FRMCNT, NULL) | // Frame count

EDMA_FMK (CNT, ELECNT, BUFFSIZE), // BUFFSIZE là số mẫu dữ liệu

được lấy

Page 80: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 80

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

(Uint32)&gBufferRcvPing, // địa chỉ bộ đệm đưa dữ liệu ra

EDMA_FMKS(IDX, FRMIDX, DEFAULT) | // Frame index value

EDMA_FMKS(IDX, ELEIDX, DEFAULT), // Element index value

EDMA_FMK (RLD, ELERLD, NULL) | // Reload element

EDMA_FMK (RLD, LINK, NULL) // Reload link

};

4.8.3.Tạo ngắt cứng edma_Hwi

Ngắt này sẽ được kích hoạt mỗi khi có một sự kiện hoàn thành vận chuyển dữ liệu xảy

ra ở bộ điều khiển EDMA. Như vậy nguồn của ngắt cứng này là ngắt do EDMA sinh

ra. Để cấu hình cho ngắt cứng này, ta sử dụng công cụ cấu hình trong DSP/BIOS.

Hình 4-9 Ngăt cứng mặc định của EDMA Controller

Ngắt cứng mặc định gắn với ngắt do bộ điều khiển EDMA sinh ra là ngắt thứ 8. Ta

chọn HWI_INT8 như hình trên, rồi kích chuột phải, chọn Properties để thiết lập các

thuộc tính cho ngắt cứng này.

Page 81: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 81

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 4-10 Cấu hình ngắt cứng EDMA

4.8.4.Tạo ngắt mềm processBufferSwi

Ngắt mềm này được tạo ra để xử lý bộ đệm dữ liệu sẵn sàng do EDMA cung cấp.

Khi có ngắt dữ liệu trong bộ đệm Ping hoặc Pong cần được xử lý. Để tạo ra ngắt mềm

và thiết lập các thuộc tính, ta cũng sử dụng công cụ cấu hình, vào mục SWI như hình

dưới đây.

Hình 4-11 Tạo đối tượng ngắt mềm trong công cụ cấu hình của DSP/BIOS

Page 82: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 82

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Ta cũng có thể nhìn thấy các thuộc tính được thiết lập cho ngắt mềm này ở bên phải.

4.8.5.Chạy thử nghiệm

Để thử nghiệm cho hệ thống vào ra, ta chưa cần đưa vào ngay các chức năng xử lý.

Chức năng xử lý đơn giản chỉ là copy từ bộ đệm vào vào bộ đệm ra để phát đi.

Để chạy thử nghiệm, phía máy tính ta mở chương trình chơi nhạc. Lấy dây audio nối từ

line out của máy tính đến line in của cạc DSK như trên. Chương trình sẽ thực hiện lấy

dữ liệu audio từ đường line in vào bộ đệm vào (input buffer). Không xử lý gì cả mà chỉ

copy vào bộ đệm ra (output buffer). Sau đó dữ liệu từ bộ đệm ra sẽ được đưa ra đường

line out đến loa và phát ra âm thanh.

Line out

Player

Speaker

Là la lá

DSK card

1 Line in

Line out

USB cable

Hình 4-12 Sơ đồ chạy thử nghiệm vào ra

Page 83: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 83

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 5 TSM320C6416 DSP CARD VÀ CHƯƠNG

TRÌNH OFDM

5.1.Sơ đồ khối hệ thống OFDM [1]

Kỹ thuật điều chế 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ín 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ổ tín hiệu lớn hơn nhiều sovới các kỹ thuật điều chế thông thường.

Hình 5-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 (Phase Shift Keying), M-QAM (M-ary 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à

Page 84: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 84

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

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 trê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. Tuy nhiên

để 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. Một đặc trưng quan trọng

của hệ thống xử lý là nó xử lý dữ liệu theo kiểu frame do lỗi của điều chế OFDM là

biến đổi FFT và IFFT. Điều này tạo ra sự khác biệt so với hệ thống xử lý theo bit vì nó

kéo theo yêu cầu về đồng bộ dữ liệu.

Chức năng đồng bộ không được xếp vào hệ thống xử lý tín hiệu. Thay vào đó nó

làm thành một hệ thống con và được thực hiện ở cả phía thu và phía phát. Chức năng

đồng bộ làm nhiệm vụ đồng bộ dữ liệu, thời gian giữa phía phát và phía thu và giữa các

tiến trình ở mỗi bên.

5.2. Hệ thống truyền thông

Hệ thống OFDM trên thực tế được xây dựng từ hai card TMS320C6416. Hai card

này đều được nối với máy tính qua cable USB, đồng thời giữa hai card này cũng được

nối với nhau theo nguyên tắc đầu LINE IN của card này sẽ nối với đầu LINE OUT của

card kia và ngược lại.

Page 85: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 85

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 5-2 Mô hình thu phát OFDM thực tế

Ta 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

Computer Computer

C6416 DSK

C6416 DSK USB Cable USB Cable

line in line in

line out line out

Phía phát Phía thu

Page 86: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 86

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

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 codec AIC23 sử dụng kỹ thuật EDMA và vào ra với máy

tính (host) sử dụng kỹ thuật RTDX hoặc HST Channel... 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.

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

cạc 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ộ codec AIC23 (Codec: Code

and Decode). Đây là bộ mã hoá và giải mã tín hiệu audio 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 card DSK

sẽ được codec lấy mẫu thành tín hiệu số và ngược lại, codec 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 card.

Bộ sản phẩm DSK 6416 (DSK: DSP Starter Kit) bao gồm những thiết bị sau:

- C6416 DSK Board

- +5V Universal Power Supply

- AC Power Cord

- C6416 DSKCode Composer Studio CD ROM

- TMS320C6416 DSK Technical Reference

- USB Cable

Page 87: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 87

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 5-3 Bộ sản phẩm DSK 6416

C6416 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 ảnh của cả bo mạch (Hình 5-4)

TMS320C6416 DSK là một mạch thuộc họ TI C64xx DSP. Mạch được thiết kế cho vi

xử lý TMS320C6416. Sơ đồ đơn giản của mạch được thể hiện trong hình 5-5

Page 88: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 88

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 5-4 Hình ảnh bo mạch TMS320C6416 DSK

Hình 5-5 Sơ đồ khối của bo mạch

Page 89: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 89

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Mạch gồm các thành phần cơ bản sau:

Một vi xử lý TMS320C6416 hoạt động ở tần số 600 hoặc720MHz

Một bộ biến đổi số-tương tự AIC23

16Mbytes SDRAM

512 Kbytes bộ nhớ Flash

4 LED và 4 chuyển mạch cho người dùng

Thanh ghi logic CPLD

Các khe cắm để giao tiếp với bộ nhớ ngoài và thiết bị ngoại vi

Giao tiếp với máy tính qua cổng USB bởi kết nối JTAG

Cổng nguồn (+5v)

5.3. Mô hình hoạt động modem thu phát OFDM

Dựa vào lý thuyết đã nghiên cứu ở trên ta có thể xây dựng một modem thu phát

dữ liệu sử dụng công nghệ điều chế OFDM theo mô hình 3 lớp như sau:

Page 90: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 90

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 5-6 Mô hình 3 lớp trong modem thu phát OFDM

Tầng vật lý: Dữ liệu từ tầng data link được điều chế OFDM sau đó nhờ bộ

AIC23 dữ liệu số sẽ được chuyển thành dạng tín hiệu liên tục và được đưa tới

đường truyền vật lý. Ở bên thu dữ liệu được lấy mẫu từ đường truyền vật lý và

chuyển thành dạng tín hiệu số. Sau đó thực hiện đồng bộ và khôi phục kênh

truyền, giải điều chế OFDM sau đó dữ liệu được đẩy lên tầng data link.

Tầng data link: Dữ liệu nhận từ tầng ứng dụng được đóng gói và thêm header

đồng thời phải taọ ra các tín hiệu điều khiển giúp cho bên thu biết được khi nào

có dữ liệu đến, thứ tự gói đến, sau đó dữ liệu này được đẩy xuống tầng vật lý.

Phía bên thu phải dựa vào vào các tín hiệu điều khiển để xác định được khi nào

là dữ liệu thật đến, cấu trúc file và sau đó đẩy lên tầng ứng dụng.

Tầng ứng dụng: Để thử nghiệm các chức năng của modem thì đồ án thiết kế

một ứng dụng đó là truyền dữ liệu audio. Tầng ứng dụng bên có nhiệm vụ nhận

dữ liệu audio từ Host thông qua giao tiếp RTDX và đẩy xuống cho tầng data

link. Ở phía thu dữ liệu audio sau khi nhận được từ tầng data link sẽ được đẩy

Page 91: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 91

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

lên Host. Và giao diện cùng các chức năng của ứng dụng trên Host sẽ được mô

tả chi tiết ở phần sau

Cần chú ý rằng đây là mô hình thử nghiệm chúng tôi đưa ra để kiểm chứng lý thuyết

OFDM nên nó vẫn ở mức độ đơn giản và có thể phát triển các tầng khác về sau

5.3.1. Tầng vật lý

Biến đổi nối tiếp – song song

Điều chế QAM

Biến đổi IFFT

Chèn chuỗi bảo vệ

Kênh vật lý

Data link

AIC23

Song song - Nối tiếp

Giả điểu chế QAM

Biến đổi FFT

Bổ chuỗi bảo vệ

AIC23

Đồng bộ

Ước lượng kênh

Bit - symbol Symbol - Bit

Data link

Hình 5-7 Mô hình tầng Vật lý

Page 92: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 92

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Như đã trình bày ở trên, tầng vật lý có chức năng điều chế dữ liệu và đưa ra kênh

truyền vật lý. Ở phía phát, dữ liệu nhận đựơc từ tầng Data link sẽ được chuyển thành

dạng dữ liệu song song. Sau đó được chuyển thành dạng các kí tự QAM rồi được ánh

xạ về dạng giá trị QAM trong phép điều chế QAM. Các giá trị QAM ở miền tần số trực

giao sẽ được đưa về miền thời gian qua phép biến đổi IFFT tạo ra các frame dữ liệu ở

miền thời gian. Để tránh hiện tượng nhiễu ICI giữa các frame theo lý thuyết điều chế

OFDM thì ta sẽ copy một đoạn cuối của frame này lên đầu ta được khung OFDM hoàn

chỉnh. Sau đó nhờ bộ codec la AIC23 tích hợp sẵn trên board, khung OFDM này sẽ

được chuyển sang dạng dữ liệu liên tục và đưa xuống kênh truyền vật lý. Kênh truyền

vâtk lý ở đây có thể là mạch thu phát RF không dây cũng có thể là có dây. Trong phiên

bản này thì đồ án dùng dây và dữ liệu được đưa ra cổng line out của board. Do ở đây

dữ liệu được truyền theo khung và để dữ liệu được truyền liên tục đồng thời tiết kiệm

thời gian xử lí cho chip nên chúng tôi dung cơ chế Ping-Pong đã được trình bày ở phần

lý thuyết DSP. Chú ý rằng kích thước bộ đệm Ping hay Pong ở đây phải bằng 2 lần

kích thước khung OFDM để đảm bảo luôn nhận được trọn một khung OFDM.

Ở phía thu, dữ liệu được bộ codec AIC23 trên board mạch thu lấy mẫu từ port line

in sẽ được lưu vào bộ đệm Ping hay Pong. Mỗi khi một trong hai bộ đệm này đầy thì sẽ

có một ngắt cứng EDMA phát ra khi đó chúng ta sẽ tiến hành việc đồng bộ tức là tìm

ra điểm đầu khung dựa vào tính tương quan giữa đoạn bảo vệ và đoạn cuối của khung.

Sau đó ta trích lấy các khung và ghép chúng lại thành các khung hoàn chỉnh. Dữ liệu

trong các khung này sau khi qua kênh truyền đã bị suy hao và nhiễu tác động nên đã

không còn như bên phát vì vậy ta phải thực hiện ước lượng lại kênh truyền và tìm lại

giá trị dữ liệu đúng ở bên phát. Tiếp theo là các bước giả điều chế tương ứng với bên

phát ta sẽ được dữ liệu ban đầu và truyền lên tầng data link. Yêu cầu cấu hình ở bên

phát và thu là kích thước các bộ đệm Ping – Pong tương ứng và tần số lấy mẫu của các

bộ codec ở hai bên là phải bằng nhau.

Page 93: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 93

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

5.3.2. Tầng Data link

Tầng này giúp bên phát và bên thu đồng bộ với nhau về mặt dữ liệu. Bên phát khi

không có dữ liệu cần truyền nó luôn ở trạng thái rỗi và luôn phát tín hiệu dữ liệu ở

trạng thái rỗi(ở đây qui ước là các tín hiệu 0 liên tục). Khi có dữ liệu mà tầng ứng dụng

yêu cầu truyền nó sẽ thực hiệ các công việc sau: Tạo ra header bao gồm các thông tin

tên file, chiều dài file… Sau đó nó truyền header này xuống lớp vật lý. Các dữ liệu thật

ngay sau đó sẽ được đóng gói và đẩy xuống tầng vật lý. Khi dữ liệu truyền hết thì bên

phát lại trở về trạng thái rỗi để chờ truyền các file dữ liệu khác.

Phía bên thu khi bắt đầu hoạt động thì nó ở trạng thái đợi. Nó luôn nhận dữ liệu từ

tầng vật lý. Ban đầu chưa có dữ liệu truyền nên nó luôn nhận được tín hiệu rỗi. Nó sẽ

chờ cho đến khi tín hiệu trên kênh truyền không phải là tín hiệu rỗi. Khi đó nó sẽ thực

hiện thu header và phân tích header tiếp đó nó sẽ thu một lượng dữ liệu đúng bằng

chiều dài trong header hoặc cho đến khi kênh truyền về trạng thái rỗi. Khi nhận dữ liệu

thì tầng này luôn đẩy lên tầng ứng dụng. Khi nó nhận xong hết file nó sẽ lại trở về

trạng thái chờ để chờ file khác.

5.3.3. Tầng ứng dụng

Tầng ứng dụng sẽ cho phép người dùng tryền và nhận các file từ hai máy tính cá

nhân thông qua hai board mạch TMS320C6416. Ở phía phát, người dùng có thể tuỳ

chọn file để gửi thông qua giao diện người dùng đã được lập trình bằng ngôn ngữ VB.

Khi đó bạn chỉ cần nhấn nút “Start Transmit” để gửi đi. Bên nhận đã được bật sắn để

nhận File, bạn cần click buttum để lưu file và nhấn nút “Start Recive” để bắt đầu nhận

file. Điểm mấu chốt ở đây là thiết lập các kênh RTDX để truyền dữ liệu xuống board

và phân tích file audio sẽ được giới thiệu ở phần dưới

5.4.Xây dựng chương trình vào ra giữa DSP card và PC

5.4.1.RTDX [3,4]

5.4.1.1. Giới thiệu chung về RTDX

Page 94: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 94

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

RTDX cho phép truyền dữ liệu giữa thiết bị DSP (target) và máy tính (host) trong

các ứng dụng của DSP.

Quá trình truyền thông giữa DSK và máy tính được thực hiện như sau:

Trong quá trình truyền dữ liệu target tới host, một kênh đầu ra sẽ được thiết lập

trên target. Dữ liệu được ghi lên kênh thông qua chương trình con đã được xác định ở

giao diện người dùng RTDX. Dữ liệu này ngay lập tức được ghi vào 1 bộ đệm đã được

thiết lập trong thư viện RTDX target. Sau đó dữ liệu từ bộ đệm được gửi đến host

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 1

bộ nhớ đệm hoặc 1 file RTDX. Sau đó các chương trình ứng dụng trên máy tính có thế

sử dụng, hiển thị, 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ừ host, target phải mở một kênh đầu vào.Target 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.

RTDX

host

library

RTDX

target

bufer

Host

application

Data

Host

Buffer

Target

application

Request

/Data

Target

memory

JTA

G

Hình 5-8 Quá trình truyền thông giữa host và target thông qua RTDX

Page 95: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 95

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Khi thư viện RTDX trên máy tính nhận được yêu cầu đọc dữ liệu từ target, 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 target thông qua giao tiếp JTAG.

5.4.1.2. Cấu hình RTDX trong chương trình

RTDX nhận dữ liệu từ ứng dụng target theo 2 kiểu:

Dạng liên tục_ Continuous:

- 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 target.

- 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:

- Được dùng để viết dữ liệu tới một file trên host. Nó có thể được dùng để

viết một lượng dữ liệu không giới hạn tới file.

5.4.2.Cấu hình RTDX:

5.4.2.1 Các bước cấu hình RTDX

Bước 1: Vào Tool → RTDX→Configuration Control như hình dưới

Page 96: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 96

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 2 : Click Configure khi đó ta thấy cửa sổ RTDX Control như hình dưới:

Page 97: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 97

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chúng ta 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 chúng tôi viết dữ liệu tới một File lên host nên ta dùng

kiểu Continuous Mode như hình trên

Sau đó Click Apply → OK

Bước 3: Enable RTDX bằng cách check vào checkbox như hình dưới

Page 98: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 98

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

5.4.2.2. Các câu lệnh RTDX trong chương trình

// Khởi tạo kênh vào ra dữ liệu:

RTDX_CreatInputChannel(name)

RTDX_CreatOutputChannel(name)

// Cho phép kênh đọc và ghi dữ liệu:

RTDX_enableInput

RTDX_enableOutput

// Ngắt kênh khi truyền xong dữ liệu:

RTDX_disableInput

RTDX_disableOutput

// Đọc dữ liệu và ghi dữ liệu lên kênh RTDX:

RTDX_read(): Chờ đợi 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

RTDX_readNB(): được sử dụng cùng với RTDX_channelBusy để đọc các dữ liệu

không ở dạng khối. Tác vụ đọc (task) ngủ nếu dữ liệu chưa sẵn sàng. Điều này cho

phép tác vụ rỗng ( idle task) hoặc các tác vụ khác được thực thi.

RTDX_write()

5.4.3. Mở và chạy chương trình

Như chương trước ta đã đi tìm hiểu về cách mở File và chạy một chương trình đơn

giản với Simulator, ở phần này tôi sẽ hướng dẫn cách mở file và chạy trên Card

TSM320C6416

Bước 1: Click đúp chuột trái vào biểu tượng Setup CCStudiov3.1. Cửa sổ Code

Composer Studio Setup xuất hiện. Ta chọn C6416 V1.1 DSK như hình dưới và

Click Save&Quit

Page 99: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 99

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 2: Click chuột phải vào Project → Open Project…và chọn đường dẫn tới

vị trí mà đặt Project ta đã tạo ra. Sau đó Click vào File có đuôi .Pjt và Open

Page 100: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 100

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Bước 3: Ấn tổ hợp (Alt+C) để kết nối giữa Card và CCS

Bước 4: Enable RTDX như mục trên

Bước 5: Chọn Project→ Rebuild All (hoặc ấn F7) hoặc click vào biểu tượng

trên thanh công cụ để Rebuild toàn bộ chương trình

Bước 6: chọn File → Load Program (hoặc ấn tổ hợp Ctrl+L) để load file

dsp_app.out và Click OK

Bước 7: Mở giao diện và truyền nhận File

Page 101: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 101

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Trong Tutorial của CCS hướng dẫn cách sử dụng VB6 để tạo giao diện giữa PC

và Card DSP thông qua RTDX. Vì vậy để chương trình đơn giản chương trình

của chúng tôi xây dựng giao diện thu phát bằng VB như hình dưới đây:

Hình 5-9 Giao diện thu phát của hệ thống OFDM

Click Button trong mục input/output file để chọn đường dẫn tới thư mục để file text mà

ta cần truyền và nhận File. Sau đó Click Start Transmittion và Start Recive để bắt đầu

quá trình truyền và nhận File.

Ví dụ ta truyền và nhận một file text như sau:

Page 102: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 102

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 5-10 Kết quả nhận được khi truyền File Text

Page 103: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 103

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Chương 6 KẾT QUẢ ĐO ĐẠC VÀ THỰC NGHIỆM

6.1. Hiển thị tín hiệu bằng CCS

CCS cũng hỗ trợ rất nhiều trong việc xem kết quả tín hiệu. Trong phần này tôi sẽ

giới thiệu về cách sử dụng CCS để hiển thị tín hiệu đầu ra

Bước 1: Click chuột phải vào biến mà bạn cần hiển thị để xem giá trị của biến

chọn Quick Watch (hoặc di chuột đến vị trí của biến đó). Copy giá trị của biến.

Bước 2: Click chuột phải lên chương trình và chọn Insert Graph. Paste giá trị đã

cop ở trên vào trường Start Address và lựa chọn các thông số phù hợp với hệ

thống của bạn và Click OK

Ở đây chúng ta cần chú ý tới một số trường trong Property của Insert Graph

- Trường Acquisition Buffer Size: Đây là kích thước bộ đệm bạn khai báo

trong mô phỏng hoặc trong thực tế

Page 104: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 104

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

- Trường Index Increment : cho phép bạn định rõ chỉ sỗ mẫu để vẽ hiển thị dữ

liệu. Gía trị của trường này tương đương như một mẫu bù cho các nguồn

không đan xen. Các mẫu bù này cho phép bạn tách trích dữ liệu từ nhiều

nguồn tín hiệu sử dụng màn hình đồ họa đơn.

- Trường Display Data size: Đây là kích thước của bộ đệm hiển thị mà bạn sử

dụng. Nội dung của bộ đệm hiển thị được vẽ đồ thị trên màn hình của bạn.

Các bộ đệm hiển thị nằm trên host, do đó tín hiệu được lưu trữ và vẫn được

hiển thị ngay cả khi nó không còn tồn tại khi mô phỏng hoặc chạy thực tế.

- Trường DSP Data Type : trường này cho phép bạn chọn một trong số kiểu

dữ liệu sau:

- 32-bit signed integer

- 32-bit unsigned integer

- 32-bit floating point

- 32-bit IEEE floating point

- 16-bit signed integer

- 16-bit unsigned integer

- 8-bit signed integer

- 8-bit unsigned integer

Trường Sampling Rate : Đây là trường bao gồm tần số lấy mẫu cho các mẫu của

trường Acquisition Buffer, giống như chuyển đổi từ Analog sang Digital. Tốc

độ lấy mẫu được sử dụng để tính toán thời gian và tần số được biểu diễn trong

đồ thị. Đối với đồ thị miền thời gian, trường này tình toán các giá trị cho trục

thời gian. Trục này xác định từ 0 đến (Display Data Size * 1/Sampling rate).

Đối với đồ thị miền tần số, trường này gồm số lượng các mẫu được sử dụng cho

FFT. Đồ thị sẽ biểu diễn tần số của tín hiệu từ 0 đến Sampling Rate/2.

Trường Plot Data From: đây là trường xác định thứ tự của dữ liệu trong bộ đệm

Acquisition Buffer. Bạn có thể chuyển đổi giữa các tùy chọn sau: Left to Right,

Page 105: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 105

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

nơi mà các mẫu đầu tiên trong bộ đệm Acquisition Buffer được coi là gần nhất

hoặc gần tới nhất. Và Right to Left, nơi mà các mẫu đầu tiên trong bộ đệm

Acquisition Buffer được coi là xa nhất.

Trường Left-Shifted Data Display: Tùy chọn trong trường này điều khiển việc

kết hợp bộ đệm Acquisition Buffer vào trong bộ đệm hiển thị (Display Buffer).

Bạn có thể chọn Yes để kích hoạt tùy chọn hoặc No để vô hiệu hóa nó.

Trường Autoscale :Tùy chọn này cho giá trị lớn nhất của trục Y được xác định

tự động. Bạn có thể On để cho phép tùy chọn và Off để vô hiệu hóa nó. Nếu bạn

bật Autoscale, biểu đồ sẽ sử dụng giá trị lớn nhất trong Display Buffer để cài đặt

dải trục Y và vẽ tất cả các giá trị phù hợp. Nếu bạn chọn Off trong Autoscale thì

một trường phụ sẽ xuất hiện trong hộp thoại Graph Property Dialog

6.2. Cách đo và hiển thi tín hiệu trên Ocilloscope số

Ocilloscope số HM 1508-2 là mộtsản phẩm của HAMEG. Với ocilloscope

này chúng ta có thể dễ dàng đo được tín hiệu trong miền thời gian và phổ tín

hiệu trong miền tần số.

Page 106: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 106

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 6-1 Ocilloscope số HM 1508-2

Hình 6-2 Màn hình ocilloscope với các nút điều khiển

Page 107: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 107

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Các bước đo:

Sau khi ấn nút Power (nút 1) để máy khởi động, cặp que đo vào để lấy tín hiệu đầu

ra từ card DSP, ta bắt đầu đo tín hiệu đầu ra:

Bước 1: Ban đầu để chọn kênh đo ta ấn nút Source. Ở đây ta chỉ chọn kênh 2 để

đo tín hiệu

Bước 2: Ấn nút Autoset để máy tự động lấy tín hiệu trong dải tần số phù hợp

với tín hiệu cần đo. Khi đó ta có được tín hiệu như hình sau:

Hình 6-3 Tín hiệu OFDM trong miền thời gian

Chú ý: phải để nút Analog\digital (nút 5)ở chế độ Analog (màu xanh lá cây )để lấy tín

hiệu trong miền thời gian

Bước 3: Đặt nút Analog\digital (nút 5) ở chế độ digital (màu xanh da trời) để

lấy tín hiệu trong miền tần số. Ta chỉnh núm TIME\DIV SCALE-VAR theo trục

X (núm 28) để tín hiệu ổn định và lấy đúng một Frame phát rồi ấn nút FFT (nút

37) khi đó ta có được phổ tín hiệu đầu ra như hình sau:

Page 108: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 108

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

Hình 6-4 Phổ của tín hiệu OFDM trong miền tần số

Các nút điều chỉnh khác:

- Để điều chỉnh độ đậm nét của tín hiệu trên màn hình ta xoay núm INTENS(núm

2).

- Núm VOLTS/DIV SCALE-VAR(núm 17) để điều chỉnh độ cao thấp của phổ

theo trục Y .

- Núm TIME/DIV SCALE-VAR (núm 28) để điều chỉnh độ to nhỏ của phổ tín

hiệu theo trục X

- Núm LEVEL A\B(núm 19) để điều chỉnh tọa độ con trỏ trên màn hình sang trái

sang phải theo trục X.

- Núm HORIZONTAL(núm 27) để đưa tín hiệu sang trái sang phải theo trục X.

- Núm POSITION2 (núm 14) để đưa phổ tín hiệu lên xuống dọc theo Y

- Để dừng lại tín hiệu để quan sát bạn có thể ấn nút RUN/STOP (nút 6)

Page 109: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 109

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

6.3. So sánh tín hiệu OFDM đo được trên Ocilloscope, Matlab và CCS

Hình 6-5 So sánh kết quả tín hiệu OFDM đo được bằng Matlab,CCS và

Osilloscpoe số

Kết luận: Từ kết quả trên ta thấy tín hiệu OFDM trong miền thời gian được đo

bởi Matlab, CCS và Ocillosope số là gần tương tự nhau.

Page 110: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 110

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

KẾT LUẬN

Đồ án đã nghiên cứu được các vấn đề chính sau:

- Xây dựng các project, chạy thử các chương trình đơn giản để bước đầu làm

quen với CCS.

- Cách sử dụng các điểm BreakPoint, Watch Window…để kiểm tra và gỡ lỗi

trong chương trình.

- Tìm hiểu các thành phần trong bo mạch TSM320C6416 và kỹ thuật truyền

thông giữa host-to-target, xây dựng thành công modem thu phát file văn bản

sử dụng kỹ thuật OFDM.

- Đo tín hiệu và phổ OFDM sử dụng Osilloscope số HM 1508-2.

Hướng phát triển đề tài:

- Tìm hiểu sâu hơn nữa các tính năng cũng như các ứng dụng của DSP để

phục vụ cho mục đích nghiên cứu và học tập từ đó có thể triển khai thực tế

tại Việt Nam.

- Phát triển hệ thống trên các chip có tốc độ xử lý cao như TMS320C6713 có

tích hợp xử lý dấu chấm động và tăng hiệu năng tính toán đáng kể.

- Phát triển ứng dụng truyền file ảnh, truyền tín hiệu lên vô tuyến giữa hai

board.

Page 111: Đồ án- Huyền

Đồ án tốt nghiệp đại học Trang 111

Nguyễn Thị Thanh Huyền Lớp ĐT7 – K50

TÀI LIỆU THAM KHẢO

[1] Lý thuyết và các ứng dụng của Kỹ thuật OFDM – Tác giả: Nguyễn Văn Đức –

NXB: Khoa học và kỹ thuật.

[2] Digital Signal Processing and Applications with the C6713 and C6416 DSK – Tác

giả: Rulph Chassaing – NXB: WILEY.

[3] Real-time Digital Signal Processing, Implementations, Applications, and

Experiments with the TMS320C55x – Tác giả: Sen M Kuo và Bob H Ley – NXB:

JOHN WILEY & SONS.

[4] Real-time Digital Signal Processing Based on TMS320C6000 – Tác giả: Nasser

Kehtarnavaz – NXB: Elsevier.

[5] Các tài liệu hỗ trợ của Code Composer Studio