Các file và trình điều khiển của bộ công cụ phát triển TI DSP nằm trong th MATLAB root/ / nh… … trong bảng sau:
Tên file Ví dụ mặc định Công dụng
ti_c6701 evm.tlc
matlabroot/toolbox tiddk/rtwevm 67x
(System Target file) là file hệ thống đích. RTW dùng file này để chọn đích là evm 67x. ti_c6701 evm.tmf matlabroot/toolbox/ tiddk/ rtwevm 67x
File tạo khuôn (Templale Makefile) RTW dùng file này để tạo mã.
*.dll matlabroot/toolbox/ tiddk/ rtwevm 67x
Các file để tạo giao diện ngời dùng *.c, *.h,*.m matlabroot/toolbox/
tiddk/ rtwevm 67x
Các file nguồn , tiêu đề mã C và các M-file
*.tlc matlabroot/toolbox/ tiddk/ rtwevm 67x/tlc-c Các file hệ thống chỉ định dạng ngôn ngữ đích cho RTW. *.mdl matlabroot/toolbox/ tiddk/ Mô hình Simulink *.m, *.tlc, *.tmf matlabroot/toolbox/ tiddk/ @ ccs
Các file để kết nối với CCSIDE *.m, *.dll matlabroot/toolbox/
tiddk/ @ ccs
Các M-file và th viện liên kết động (DLL) để tạo liên kết với RTDX và các đối tợng và hàm của CCSIDE Bảng 3.1: Các file và trình điều khiển.
3.2. Định đích cho C6701 EVM
Bộ công cụ phát triển cho TI DSP cho phép ta sử dụng RTW để tạo mã, định đích và thực hiện mô hình Simulink trên C6701 EVM của TI. Khi kết hợp với C6701 EVM bộ công cụ này là phơng tiện lý tởng để tạo mẫu nhanh và thiết kế các ứng dụng nhúng cho bộ xử lý tín hiệu số họ TI C6701.
3.2.1. Tóm tắt quy trình định đích cho C6701 EVM
1/ Cài đặt board C6701 EVM và các phần mềm hỗ trợ 2/ Mở MATLAB
3/ Mở mô hình cần thực hiện trên C6701 EVM (nếu cần, hãy thêm các khối điều khiển vào/ra cho C6701 EVM từ th viện C6701 EVM Lib).
4/ Chọn Simulink Parameters từ thực đơn Simulink để mở hộp thoại Simulink Parameters. Trong hộp thoại này kích Real-Time Workshop để chọn file hệ thống đích và file tạo khuôn cho C6701 EVM, đó là:
+ File hệ thống đích: ti_c6701evm.tlc + File tạo khuôn: ti_c6701evm.tmf
Với cấu hình nh vậy, ta có thể tạo ra file khả thi thời gian thực và tải nó vào EVM của TI, bằng cách kích nút Build trên trang Real-Time Workshop. RTW tự động tạo ra mã C và gài các trình điều khiển vào/ra (nếu có ).
Trong quá trình dựng, file tạo khuôn kết hợp với các tham số của khối để tạo ra file tạo đích (Target Make file) cho C6701 EVM. File tạo đích này sẽ kích hoạt
trình biên dịch chéo của TI để tạo ra file khả thi. Sau đó file khả thi đợc tự động nạp vào C6701 EVM qua giao diện thành phần ngoại vi (PIC) ( nếu ta chọn Build and Excute), và quá trình dựng sẽ chạy file khả thi trên C6701 EVM.
3.2.2. Cài đặt cấu hình C6701 EVM
Khi cài đặt C6701 EVM hãy đặt các chuyển mạch DIP (dual inline pin) theo bảng sau: Chuyển mạch Tên Vị trí Tác dụng SW2-1 BOOTMODE4 On Đặt chế độ boot SW2-2 BOOTMODE3 On Đặt chế độ boot SW2-3 BOOTMODE2 On Đặt bản đồ bộ nhớ =1 khi SW2-5 là off
SW2-4 BOOTMODE1 Off Đặt chế độ boot
SW2-5 BOOTMODE0 Off Đặt bản đồ bộ nhớ =1 khi SW2-3 là off
SW2-6 CLKMODE On Đặt chế độ nhân
SW2-7 CLKSEL On Chọn bộ dao động A
SW2-8 ENDIAN On Chọn chế độ little Endian
SW2-9 JTAGSEL Off Chọn bộ điều khiển Bus kiểm
tra trong (TBC)
SW2-10 USER2 On Tuỳ chọn của ngời dùng
SW2-11 USER1 On Tuỳ chọn của ngời dùng
SW2-12 USER0 On Tuỳ chọn của ngời dùng
Bảng 3.2: Cài đặt cấu hình C6701 EVM.
3.3. Các khối của th viện C6701 EVM
Th viện C6701 EVM gồm 4 khối
- C6701 EVM ADC: chuyển tín hiệu tơng tự thành tín hiệu số ở đầu vào của bộ xử lý.
- C6701 EVM DAC: chuyển tín hiệu số thành tín hiệu tơng tự ở đầu ra của bộ xử lý.
- C6701 EVM LED: điều khiển trạng thái các đèn LED của C6701 EVM. - C6701 EVM RESET: để đặt lại C6701 EVM từ cửa sổ mô hình Simulink. Các khối C6701 EVM ADC và DAC tạo các đờng dẫn vào/ra cho C6701 EVM. Chúng hoạt động nh các khối Source và Sink nhng khác ở chỗ, chúng trao đổi
dữ liệu với các thiết bị ngoài chứ không phải với Workspace của MATLAB và chúng chỉ có tác dụng đối với C6701 EVM.
Chỉ có thể bổ sung nhiều nhất là một khối C6701 EVM ADC và một khối C6701 EVM DAC vào mô hình. Vì C6701 EVM có hai đèn LED nên có thể dùng hai khối C6701 EVM LED. Khi bổ sung các khối này vào mô hình Simulink, hãy đặt các tham số cần thiết cho mỗi khối.
Sơ đồ khối điển hình vào/ra cho C6701 EVM.
3.3.1. Khối C6701 EVMADC
Để chạy và kiểm tra các ứng dụng DSP trên C6701 EVM, ta có thể dùng tín hiệu từ nguồn ngoài nh: bộ tạo dao động, Microphone hay các phơng tiện Audio. Khối C6701 EVM ADC sẽ kích hoạt bộ tạo mã nhận tín hiệu từ nguồn ngoài. Khối C6701 EVM ADC có 9 tham số. Để đặt tham số, hãy kích phải nút chuột vào khối, chọn Block Parameters để mở hộp thoại Block Parameters.
+ Codec Data format (dạng dữ liệu của bộ tạo mã ): có 5 lựa chọn. a) 16-bit Linear b) 8 -bit Linear c) 8-bit A law: Microphone (Mono hoặc Stereo) Signal Generaton Micr in Oscilloscope Line in C6701 EVM Line Out
Loa trái Loa phải
d) 8-bit à law
+ Output data type: Có 3 lựa chọn a) Double b) Single c) Integer + Scaling: Có 2 lựa chọn a) Normalize b) Integer Value + Source gain(dB)
+ Sample Per frame: (Số mẫu trong 1 khung) + ADC Source (Line in, mic in, Loopback) + Stereo
+ 20 dB Mic gain boost
3.3.2. Khối C6701 EVM DAC
Trong phần lớn các trờng hợp, khối DAC thừa hởng các đặc tính từ khối ADC trong mô hình hoặc từ khối không ảo (Nonvirtual) trớc đó.
Khối DAC có 4 tham số sau:
+ Codec data format: đặt giống nh Codec data format của khối ADC.
+ Scaling: trong phần lớn các ứng dụng ,chọn Scaling phù hợp với khối ADC. + Overflow mode
Khi chạy mô hình trên C6701 EVM có thể gặp trờng hợp kết qủa phép tính v- ợt quá phạm vi biểu diễn của dạng dữ liệu. OveflowMode xác định cách xử lý của khối khi gặp trờng hợp trên.
Có 2 lựa chọn a) Saturate b) Wrap
+ DAC attenuation (dB)
3.3.3. Khối C6701 EVM LED
Dùng đèn LED trên Modul để chỉ thị quá trình xử lý, ví dụ để chỉ thị quá trình xử lý đạt tới điểm đặt trớc nào đó.
Để sử dụng đèn LED, hãy bổ sung khối C6701 EVM LED vào mô hình và gửi tín hiệu tới khối. Một tín hiệu vô hớng khác không sẽ làm sáng đèn và ngợc lại.
Khối này có 1 tham số LED để chọn External (đèn ngoài) hoặc Internal (đèn trong).
3.3.4. Chỉ thị Overrun
Overrun là khi bộ xử lý không xử lý kịp thuật toán trong một chu kỳ đồng hồ. Kit cung cấp tuỳ chọn Overrun Action để báo cho ngời dùng biết điều này bằng cách bật đèn LED ngoài. Chú ý nếu đã chọn Overrun Action thì không đợc chọn khối C6701 EVM LED để kích đèn LED ngoài.
Overrun Action có 3 tuỳ chọn:
a) None: Không đáp ứng điều kiện Overrun
b) Continue: Khi xảy ra Overrun đèn LED ngoài bật sáng và mô hình tiếp tục đợc thi hành.
c) Halt: khi xảy ra Overrun đèn LED ngoài bật sáng và mô hình bị dừng lại.
3.4. Các tuỳ chọn xây dựng của RTW cho C6701 EVM
Mô hình xử lí tín hiệu số xây dựng trong Simulink có thể sử dụng các khối sau:
- Các khối của th viện C6701 EVM để xử lý các hàm vào/ra. - Các khối của Real – Time workshop
- Các khối của DSP Blockset
- Các khối thời gian rời rạc của Simulink - Các khối cài mã của ngời dùng
Trớc khi tạo mã cho mô hình với RTW, đặt fixed-Step Solver, Stepsize và fixed-Step Solver thích hợp nếu trong mô hình có trạng thái thời gian liên tục và chọn tốc độ lấy mẫu thích hợp.
Khi chọn Target for C6701 EVM thì mục Category liệt kê các danh mục mà RTW dùng để dựng và chạy mô hình. Có 6 danh mục sau:
+ Target Configurtion + TLC debugging
+ TI C6701 Compiler + TI C6701 Linker
+ TI C6701 EVM Runtime
3.4.1. Các tuỳ chọn của Target Configuration
Kích nút Browse để chọn ti-evm 67x, khi đó RTW sẽ tự động chọn System Target file, Template makefile và lệnh make tơng ứng.
3.4.2. Các tuỳ chọn của TI C6701 Compiler
+Byte Oder: C6701 EVM có khả năng chạy cả ở chế độ Little-endian và Big- endian. Chế độ mặc định là Little – enđian. Nếu C6701 EVM phải kết nối với các bộ xử lý khác thì chọn chế độ thích hợp với các bộ xử lý đó. Ví dụ các bộ xử lý của Motorola sử dụng chế độ Big-endian, còn của Intel thì sử dụng Little-endian.
+ Compiler Urbosity: có 3 tuỳ chọn
- Verbose: Trả về các dòng nhắn của Compiler
- Quiet: Bỏ qua các dòng nhắn tiến trình của Compiler. - Super quiet: Bỏ qua tất cả dòng nhắn của Compiler + Symbolic Debugging: Tạo các chỉ lệnh gỡ rối.
+ Retain.asm files: RTW và Develop Kit sẽ giữ lại các .asm file trong th mục hiện hành.
3.4.3. Các tuỳ chọn của TI C6701 Linker
+ Retain.obj file.Linker sử dụng các file obj để tạo ra một file khả thi duy nhất là COFF file (common object file for mat). Tuỳ chọn này sẽ hớng dẫn RTW Kit lu lại các file obj trong th mục hiện hành. Việc lu các file obj có thể làm tăng tốc độ quá trình biên dịch vì không phải biên dịch lại các file đã có.
+ Linker Command file: xác định file lệnh của Linker sẽ đợc thực hiện khi Linker chạy. Có 3 tuỳ chọn sau:
- Internal memory map: Tuỳ chọn này sẽ gọi file lệnh hớng dẫn Linker sử dụng chế độ bộ nhớ nhỏ của C6701 EVM. Khi đó các phần mã không gian kích hoạt ban đầu sẽ đợc đặt trong không gian bộ nhớ 32 KB.
- Full Memory map: Tuỳ chọn này sẽ gọi file lệnh hớng dẫn Linker sử dụng chế độ bộ nhớ lớn. Khi đó các phần mã không đợc kích hoạt đầu sẽ không bị giới hạn.
- User defined: cho phép ngời dùng sử dụng file lệnh của riêng mình. File phải có phần mở rộng là .cmd. Ví dụ My-file.cmd
3.4.4. Các tuỳ chọn của TI C6701 EVM.Runtime
Trớc khi chạy mô hình nh là một file khả thi trên C6701 EVM, ta phải cấu hình các tuỳ chọn Runtime cho mô hình.
+ CPU clock: chọn tốc độ đồng hồ cho bộ xử lý C6701 trên Modul C6701 EVM. Trong C6701 EVM có 2 bộ dao động tạo ra 4 tốc độ đồng hồ là 25, 33, 100 và 133 MHz.
+ Overrun Action: Xem phần chỉ thị Overrun.
+ Build Action: Hớng dẫn RTW công việc cần thực hiện khi ta ấn nút Build. - Build and executie: RTW dựng, tải và chạy file khả thi trên đích.
- Create-ccs-project: RTW mở CCS để tạo ra một Project mới. Tuỳ chọn này cho phép CCS chọn board để định đích khi có nhiều board đợc cài đặt. CCS đánh số các board này từ 0,1,2 Kích nút Select DSP và định đích bằng cách nhập số thứ tự… của board và Procesor (nếu trên một board có nhiều Procesor).
Ví dụ 3-1: Tạo chơng trình và chạy trên C6701 EVM.
Trong ví dụ này ta tạo ra tiếng vọng âm thanh nhờ C6701 EVM. Nối Microphone với đầu cắm Mic in, loa và máy hiện sóng với đầu cắm Line out của C6701 EVM. Để kiểm tra, ta nói vào Microphone và nghe hiệu ứng qua loa hoặc quan sát kết quả trên máy hiện sóng.
1/ Cấu hình các khối nh sau
Hình 3.2: Sơ đồ tạo tiếng vọng a) Đối với khối ADC
Mở hộp thoại Block Parameters và đặt: - Chọn ADC Source Mic in
- Kích bỏ hộp Stereo
- Kích chọn hộp +20dB mic gain boost - Đặt Sample rate về 8000
- Chọn Code data format là 16 bít linear - Chọn Output data type là Double - Chọn Scaling là Normalize - Chọn Source gain là 0.0 - Chọn Samples per frame là 64 b) Đối với khối DAC
- Chọn Codec data format là 16 bit linear - Chọn Scaling là Normalize
- Đặt DAC attenution là 0.0 - Chọn Overflow mode là Saturate 2/ Đặt các tham số mô phỏng
a) Mở hộp thoại Simulink Parameters và chọn trang Solver - Đặt Start time là 0.0
Stop time là inf
- Chọn Solver Option là fixed-step và discrete
- Đặt fixed-step size là Auto và Mode là Single Tasking
b) Để các trang WorkSpace I/O, Diagnostics và Advanced ở các giá trị mặc định 3/ Chọn đích và các tuỳ chọn xây dựng
a) Trên trang Real -Time Workshop, chọn đích là Target for C6701 EVM. b) Trong mục Category chọn TI C6701 Compiler để đặt các tuỳ chọn
- Chọn byte order là Little-endian - Chọn Compiter verbosity là Quiet
Sau đó chọn TI C6701 Linker và đặt: - Kích chọn hộp Retain. obj files
- Chọn Linker Command file là Full memory map, tiếp theo chọn TI C6701 EVM Runtime và đặt.
- Chọn Build Action là Build and execute. - Chọn CPU Clock là 133MHz
- Chọn Overrun là Halt
4/ Dựng và thực hiện mô hình trên C6701 EVM a) Kích nút Build
Quá trình dựng sẽ tạo ra trình khả thi và tải nó vào C6701 EVM. Đến đây, ta có thể chạy mô hình trên C6701 EVM. Ta sẽ nối vào Microphone và quan sát kết quả.
b) Để dừng chơng trình ta kích khối Reset
Lu ý: Mỗi lần muốn chạy chơng trình ,ta phải mở mô hình Simulink, dựng lại và tải trình khả thi vào C6701 EVM bằng cách kích nút Build.
3.5. Định đích là Code Composer Studio (CCS)
Định đích là CCS cho phép sử dụng các công cụ của CCS để gỡ rối quá trình xử lý thời gian thực.
Khi dựng và tải mô hình Simulink vào CCS , Developer’s Kit sẽ mở Code Composer, tạo Project mới cho mô hình và gộp tất cả các file mà nó tạo ra trong quá trình dựng vào Project, nh các file.obj, asm, map và các file khác.
Quá trình định đích cho CCS cũng giống nh cho C6701 EVM. Trớc hết phải cấu hình các tuỳ chọn đích, sau đó dựng dự án trong CCS bằng cách kích nút Make Project. Tóm tắt quy trình nh sau.
1/ Simulink Parameters → Real-Time workshop →TI C6701 EVM Runtime →
Create-ccs-project.
2/ Đặt các tuỳ chọn cho CCS Compiler và Linker 3/ Kích nút Make Project
3.6. Liên kết với CCS IDE và RTDX
Developer’s Kit cung cấp các liên kết giữa MATLAB và bộ xử lý trong Code Composer Studio. Mỗi liên kết gồm 2 đối tợng (Object): đối tợng CCSIDE và đối t- ợng giao diện RTDX. Các đối tợng liên kết không tách biệt nhau. Đối tợng RTDX là lớp con của đối tợng CCSIDE. Để tạo liên kết với các giá trị mặc định , ta dùng lệnh ccsdsp. Ví dụ tạo liên kếtCC
cc=ccsdsp.
Mỗi đối tợng liên kết có nhiều thuộc tính. Để cấu hình liên kết với CCSIDE và RTDX, ta phải đặt giá trị cho các thuộc tính này một cách trực tiếp, hoặc bằng lệnh set.Để lấy lại giá trị, có thể dùng lệnh get, display hoặc lấy trực tiếp.
Ta xem xét các thuộc tính của các đối tợng này. Tên thuộc tính Đối tợng Khả năng cài đặt Mô tả
App CCSIDE Không Là một cấu trúc của MATLAB chứa các thông tin về th mục làm việc. Đây là một đối tợng ActiveX
Apiversion CCSIDE Không Chứa thông tin về số Version của API Boardnum CCSIDE Có Xác định board đích
CCSappexe CCSIDE Có xác định đờng dẫn tới file khả thi trong CCSIDE
dspboard CCSIDE Không Là một điều khiển của MATLAB ActiveX, để ấn định board đích.
dspboards CCSIDE Không Là một điều khiển của MATLAB ActiveX, để ấn định các board đích. dsptask CCSIDE Không Là một điều khiển của MATLAB
ActiveX, để ấn định nhiệm vụ đích.
dsptasks CCSIDE Không Là một điều khiển của MATLAB ActiveX, để ấn định các nhiệm vụ đích. dspuser CCSIDE Không Là một điều khiển của MATLAB
ActiveX chứa các thông tin và điều khiển đích.
mở.
page CCSIDE Không Lu trang bộ nhớ mặc định cho các lệnh đọc và viết.
procnum CCSIDE Có Xác định bộ xử lý đích
procType RTDX Không Nhận biết loại bộ xử lý,ví dụ C67 hoặc C54.
rtdx RTDX Không xác định cú pháp RTDX
rtdxchannel RTDX Không Chứa các thông tin về tên kênh,điều khiển (handle) và chế độ của mỗi kênh đ- ợc mở.
timeout CCSIDE Có xác định khoảng thời gian mà CCSIDE đợi để kết thúc một quá trình nào đó, giá