NỘI DUNG THỰC TẬP TỐT NGHIỆPGIỚI THIỆU VỀ XỬ LÝ TÍN HIỆU SỐ • Tín hiệu t/h – Âm thanh – Nhiệt độ – Ánh sáng • 5 giác quan của con người: thính/xúc/vị/khứu/thị giác → cần thiết phải chuyể
Trang 1CHUYÊN ĐỀ THỰC TẬP TỐT NGHIỆP DSP
I Mục đích, yêu cầu:
- Sinh viên nắm được cấu trúc phần cứng của DSP TMS320C6713
- Sinh viên nắm được các bước để xây dựng một project bằng phần mềm CCS
- Sinh viên viết được chương trình trên CCS 3.1 với các hàm có sẵn để điều khiển các nút và đèn có trên board mạch
- Sinh viên xây dựng được các ứng dụng về hệ thống điều khiển tự động trên PLC
II Nội dung:
1 Tín hiệu và hệ thống xử lý tín hiệu, làm quen với Code Composer Studio 3.1 và cấu trúc phần cứng của DSP TMS320C6713
2 Viết chương trình tạo sóng sin với tần số bất kỳ
3 Viết chương trình sử dụng nút DIP SWITCH để điều khiển đèn LED
4 Biên dịch theo thời gian thực từ Matlab Simulink sang CCS 3.1 Ứng dụng trong thiết kế bộ lọc FIR và IIR
III Tài liệu tham khảo:
Trang 2NỘI DUNG THỰC TẬP TỐT NGHIỆP
GIỚI THIỆU VỀ XỬ LÝ TÍN HIỆU SỐ
• Tín hiệu (t/h)
– Âm thanh
– Nhiệt độ
– Ánh sáng
• 5 giác quan của con người: thính/xúc/vị/khứu/thị giác
→ cần thiết phải chuyển sang dạng năng lượng điện để được xử lý bởi não
• Các cảm biến điện tử được dùng để biến đổi t/h sang dạng
số, có thể được xử lý bởi máy tính số (biến đổi AD)→ xử lý t/h số (DSP)
• T/h sau khi được xử lý có thể được biến đổi sang dạng ban đầu trước khi gởi cho các bộ chấp hành (biến đổi DA)
Trang 3TẠI SAO PHẢI XỬ LÝ TÍN HIỆU SỐ
• Khả năng lập trình được (programmability)
• Khả năng ổn định (stability)
• Khả năng lặp lại(repeatability)
• Hiện thực dễ dàng các giải thuật thích nghi
• Khả năng hiện thực các mã sửa sai
• Khả năng truyền dẫn và lưu trữ dữ liệu
• Khả năng nén dữ liệu
• Khả năng thực hiện các chức năng đặc biệt
ỨNG DỤNG
Trang 4GIỚI THIỆU VỀ KIT TMS320C6713 VÀ
Trang 5C6713 DSK Overview!
225 MHz TMS320C6713 floating pointDSP!
AIC23 stereo codec (ADC and DAC)!
Ideal for audio applications!
8-96 kHz sample rates!
Memory!
16 MB dynamic RAM!
512 kB nonvolatile FLASH memory!
General purpose I/O!
4 LEDs!
4 DIP switches!
USB interface to PC
Trang 62 Chương trình Code Composer Studio 3.1 (CCS3.1)
Giao diện chương trình Code Composer Studio V3.1
Trang 7a Thành phần của một dự án:
- DSP/BIOS configuration: Cấu hình của DSP
- “Include” folder – header files: Thư mục chứa các file tiêu đề
- “Libraries” folder: Chứa các file thư viện
- Linker command files: Liên kết các file
- Source folder – source files: Thư mục chứa các file nguồn
Cấu trúc của một dự án ban đầu.
b Lưu đồ phát triển phần mềm tạo ra mã đối tượng từ ngôn ngữ C.
Trang 8Lưu đồ phát triển phần mềm tạo ra mã đối tượng từ ngôn ngữ C.
Các bước xây dựng thuật toán trên nền tảng DSP bao gồm 4 bước được mô tả bởi lưu đồ dưới đây:
Thiết kế
thuật toán
Lập trình thuật toán
Thực thi thuật toán trên Kit
Phân tích, sửa lỗi, tối ưu
Trang 9Các bước cơ bản thực hiện trên CCStudio bao gồm biên dịch C, hợp dịch, liên kết, gỡ rối, mô phỏng và emulator Đầu tiên CCStudio dịch mã C thành mã dưới dạng mã gợi nhớ hoặc dạng đại số cho DSP cụ thể mà ta lựa chọn (đuôi asm) Bước tiếp theo là dịch mã assembly thành mã đối tượng dưới dạng nhị phân (hoặc ngôn ngữ máy) cụ thể đối với DSP lựa chọn (đuôi obj) Trình liên kết thực hiện liên kết các file đối tượng để tạo tạo thành một file đối tượng duy nhất bằng cách gán các địa chỉ tuyệt đối trong bộ nhớ cho DSP cụ thể (đuôi out) File thực hiện này có thể tải và chạy trực tiếp trên bộ DSP Sau khi đã tạo ra file thực hiện, chúng ta phải kiểm tra và gỡ rối bằng cách sử dụng phần mềm mô phỏng và emulator.
Để tạo một project người dùng có thể thêm vào các file phù hợp Các tùy chọn về compiler/linker có thể xác định dễ dàng Một số tính năng debug có sẵn, như đặt các breakpoint và xem các biến, xem bộ nhớ, các thanh ghi và trộn C với assembly code
Chúng ta sẽ làm việc với một vài kiểu tập tin khác nhau, bao gồm:
- File.pjt: Để tạo và xây dựng một project có tên là “file”
- File.c: Chương trình nguồn viết bằng C
- File.asm: Chương trình nguồn viết bằng ngôn ngữ assembly, được tạo bởi người dùng hoặc bởi bộ dịch C
- File.h: Tập tin header
- File.lib: Tập tin thư viện
- File.cmd: Tập tin lệnh của linker, ánh xạ các section vào bộ nhớ
- File.obj: Tập tin đối tượng được tạo ra bởi assembler
- File.out: Tập tin thực thi được tạo ra bởi linker để nạp và chạy trên
bộ xử lý C6713
c Các tập tin hỗ trợ.
Các tập tin hỗ trợ sau được chứa trong folder
C:\CCStudio_v3.1\myproject\source\support (trừ các tập tin thư viện) được
sử dụng trong hầu hết các project
Trang 10- C6713dskinit.c: Chứa các hàm khởi động DSK, code, các cổng nối
tiếp và để xuất nhập Tập tin này không được bao gồm với CCS
- C6713dskinit.h: Tập tin header chứa các prototype của các hàm.
- C6713dsk.cmd: Tập tin lệnh linker Tập tin này có thể được sửa đổi
khi sử dụng bộ nhớ ngoài thay cho bộ nhớ trong
- Vectors_intr.asm: Một tập tin vector bao gồm trong CCS đã được
sửa đổi để quản lý ngắt Có 12 ngắt, từ INT4 đến INT15, và ngắt 11 được chọn trong tập tin này Chúng được dùng cho các chương trình có sử dụng ngắt
- Vectors_poll.asm: Tập tin vector cho các chương trình hỏi vòng
(polling)
- Rts6700.lib, dsk6713bsl.lib, csl6713.lib: Tập tin thư viện hỗ trợ run
– time, board và chip Các tập tin này được cung cấp với CCS và được chứa trong các folder C6000\cgtools\lib, C6000\dsk6713\lib và C6000\csl\lib một cách tương ứng ( Thư mục C6000 nằm trong thư mục cài đặt của CCS, mặc định là C:\CCStudio_v3.1\)
Trang 11BÀI 1: XÂY DỰNG CHƯƠNG TRÌNH TẠO TÍN HIỆU SIN VỚI
TẦN SỐ BẤT KỲ Mục đích: tạo ra một tín hiệu tương tự sin sử dụng bảng giá trị mẫu
có sẵn
Yêu cầu: Xây dựng project tạo tín hiệu tương tự sin Thay đổi các
giá trị lẫy mẫu ở bảng để có thể tạo ra các tín hiệu khác nhau
1.1 Cài đặt KIT thí nghiệm vào máy tính:
a) Đặt KIT thí nghiệm ở vị trí an toàn Ta kết nối Port USB từ KIT đến cổng USB của máy tính
b) Và kết nối ngõ ra của tính hiệu từ KIT (LINE OUTPUT) đến loa
có công suất nhỏ hoặc oscilloscope
Kết nối nguồn cho KIT thí nghiệm qua Adapter của KIT
Hình 1.1: Sơ đồ các chân kết nối board TMS320C6713 với máy tính.
c) Test KIT thí nghiệm từ máy tính:
Ta mở chương trình Test KIT với tên là 6713 DSK Diagnostics Utility: Với biểu tượng là
Hình 1.2 : Biểu tượng chương trình 6713 DSK Diagnostics Utility.
Tiếp theo hộp thoại 6713 DSK Diagnostics xuất hiện:
Trang 12Hình 1.3 : Giao diện chương trình kiểm tra board TMS320C6713 trước khi
kiểm tra.
d) Khi chọn nút Start chương trình sẽ tự động kiểm tra phần cứng của KIT thí nghiệm khi tất cả các đèn xanh trên hộp thoại sáng là KIT đã được chuẩn bị sẳn sàng cho phần thí nghiệm
Hình 1.4 : Giao diện chương trình kiểm tra board TMS320C6713 sau khi
kiểm tra hoàn tất.
Trang 131.2 Chạy chương trình và tạo mới một dự án:
a) Mở chương trình ứng dụng cho KIT thí nghiệm với tên là: 6713 DSK CCStudio v3.1, biểu tượng như sau:
Hình 1.5 : Biều tượng chương trình CCS V3.1.
b) Khi chương trình chạy thì xuất hiện với hình dạng ngắn gọn như sau:
Hình 1.6: Hộp thoại ban đầu khi khởi tạo một dự án.
c) Tạo một dự án với CCStudio
Phần này minh họa làm thế nào để tạo nên một dự án, bổ sung thêm các file cần thiết để tạo ra một tập tin thực thi : Sine_8LED_HOANG.out Phần này ta sẽ minh họa làm thế nào để tạo ra một tập tin dự án từ đầu để làm quen với CCS
Trang 14Bước 1: Tạo một dự án mới file Sine_8LED_HOANG.pjt bằng cách
chọn Project → New và đặt tên của dự án là Sine_8LED_HOANG, như thể hiện dưới hình 3.7 Thiết lập Target to TMS320C67XX trước khi chọn Finish Một file dự án mới sẽ được lưu lại trong thư mục C:\CCStudio_v3.1
\MyProjects\ Sine_8LED_HOANG File pjt là file chứa các thông tin của
dự án về các tùy chọn, các file nguồn và các file liên kết Tên của những file sử dụng trong dự án, được hiển thị trong cửa sổ Project View, ở chế độ mặc định thì nó nằm ở bên tay trái của cửa sổ chương trình Code Composer
Trong cửa sổ Project Creation:
- Phần Project Name: Nhập tên dự án
- Location: Trỏ đến vị trí lưu dự án
- Project Type: Chọn Executable (.out)
- Target: Chọn chip DSP tương ứng là TMS320C67XX
Hình 1.7: Thiết lập các thông tin về dự án.
Bước 2 : Nếu các file mã nguồn chưa có sẵn, để tạo ra một file
chương trình mới, vào File/New/Source File
Nếu file mã nguồn đã có sẵn, vào Project/Add files to project… rồi trỏ đến vị trí của các file cần thêm vào dự án
Các file thêm vào dự án bao gồm file mã nguồn, file thư viện, file ánh xạ bộ nhớ
Trang 15Các file nguồn là :
- Sine_8LED_HOANG.c ta copy vào trong thư mục
C:\CCStudio_v 3.1\MyProjects\ Sine_8LED_HOANG
- C6713dskinit.c (trong thư mục C:\CCStudio_v3.1\myprojects\ Support)
- Vectors_poll.asm (trong thư mục
ta chọn Scan All File Dependencies
Hình 1.8 : Cửa sổ Project View sau khi đã bổ sung tất cả các tập tin cần
thiết.
Trang 16Bước 3 : Thiết lập các tùy chọn
Để thiết lập các tùy chọn cho dự án, vào Project\Build Options…Một cửa sổ cho phép xác lập các tùy chọn sẽ hiện ra bao gồm các tab General, Compiler, Linker, Linker Order Trong mỗi tab sẽ các loại tùy chọn khác nhau
Tùy chọn trong Tab Compiler Các tùy chọn trong Tab compiler như trong hình 1.9, 1.10 và 1.11
Hình 1.9: Cửa sổ thiết lập các tùy chọn trong Tab Complier\Basic
Trang 17Hình 1.10: Cửa sổ thiết lập các tùy chọn trong Tab Complier\Advance
Hình 1.11: Cửa sổ thiết lập các tùy chọn trong Tab
Complier\Preprocessor.
Trang 18Tùy chọn trong Tab Linker như trong hình 1.12
Hình 1.12: Cửa sổ thiết lập các tùy chọn trong Tab linker\Basic
Bước 4: Dịch chương trình bằng cách vào Project → Build Chương
trình sẽ khởi chạy và tạo ra file Sine_8LED_HOANG.out trong thư mục C:\CCStudio_v3.1\MyProjects\ Sine_8LED_HOANG \Debug
Hình 1.13: Thông báo của chương trình sau khi biên dich xong.
- Tải chương trình vào DSK
Trước tiên cần kết nối giữa phần mềm CCStudio với DSK Để làm được việc này, vào menu Debug → Connect
Trang 19Sau khi chương trình được dịch tạo ra file out, để tải chương trình vào DSK thực hiện các bước sau:
- Vào File/Load Program…
- Chọn file out vừa tạo ra trong thư mục chứa dự án (thường nằm trong thư mục con debug)
- Vào Debug/Run để chạy chương trình
- Thực hiện vẽ trong miền tần số và miền thời gian đe quan sát đồ thị thu được Vào tab View => Graph => Time/Frequency
- Thiết đặt các tùy chọn ta thu được sóng sine như hình 1.14 và 1.15
Hình 1.14: Đồ thị thu được khi vẽ trong miền tần số
Trang 20Hình 1.15: Sóng sine thực tế thu được khi vẽ trong miền thời gian.
1.3 Kết luận:
Trong bài này đã trình bày được quá trình xây dựng một chương trình thực tế trên CCS V3.1 đã giúp chúng ta hiểu kỹ hơn và tổng quát hơn cách xây dựng một chương trình và chạy chương trình kết hợp với bản mạch TMS320C6713 Từ chường trình hoàn chỉnh trên giúp chúng ta thực hiện được nhiều chương trình khác vào các ứng dụng khác nhau trong các thiết bị vốn đang rất phổ biến trong xã hội hiện nay
Trang 21Chương trình tạo tín hiệu lấy mẫu từ các giá trị trong một chu kỳ Giá trị của các mẫu đó được lấy như sau :
1000sin(2πi/8) cho i=1,2,3, 7;
Chương trình chính main() gọi các hàm comm_poll(),
DSK6713_LED_init() và DSK6713_DIP_init() để khởi chạy cho DSK, bộ
giải mã AIC23 trên board DSK, cùng với 2 kênh đa năng trên vi xử lý của
6713 giúp điều khiển LED và nút nhấn DIP SWITCH
Chương trình tạo tín hiệu tương tự hình Sin và dùng nút DIP để điều khiển.
//sine8_LED.c sine generation with DIP switch control
#include "dsk6713_aic23.h" //codec support
Uint32 fs = DSK6713_AIC23_FREQ_8KHZ; //set sampling rate
#define DSK6713_AIC23_INPUT_MIC 0x0015
#define DSK6713_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6713_AIC23_INPUT_MIC; //select input
#define LOOPLENGTH 8
short loopindex = 0; //table index
short gain = 10; //gain factor
short sine_table[LOOPLENGTH]=
{0,707,1000,707,0,-707,-1000,-707}; //sine values
void main()
{
comm_poll(); //init DSK,codec,McBSP
DSK6713_LED_init(); //init LED from BSL
DSK6713_DIP_init(); //init DIP from BSL
while(1) //infinite loop
{
if(DSK6713_DIP_get(0)==0) //if DIP #0 pressed
Trang 22DSK6713_LED_on(); //turn LED #0 ON
Trang 23BÀI 3 ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ TÍN HIỆU QUA MATLAB.
3.1 Sơ đồ nguyên lí.
Để nhận biết rõ bằng trực quan về phổ của tín hiệu điều biên và tín hiệu điều chế ban đầu, ta thể hiện đồng thời chúng trên cùng một cửa sổ đồ thị Virtual Scope trong Matlab
Hình 3-1: Sơ đồ mô phỏng trên Matlab.
3.1.1 Sơ đồ nguyên lý phương pháp điều biên.
Như trong phần điều biên trong chương 1 ta đã biết tín hiệu điều biên có dạng
Trang 24Hình 3-2: Nguyên lí khối điều chế biên độ.
Tín hiệu vào đi qua khối điều chế biên độ, sau đó được qua bộ giải điều chế để thu lại được tín hiệu thông tin ban đầu
Để thực hiện giải điều chế tín hiệu, ta có 2 phương pháp : phương pháp
bình phương và phương pháp Coherent
3.1.2 Phương pháp giải điều chế bình phương.
Hình 3-3 : Nguyên lí phương pháp bình phương.
Trang 25Tín hiệu điều biên được bình phương lên rồi đi qua bộ lọc thông thấp LPF để lọc lấy tín hiệu tần số thấp (có tín hiệu điều chế ban đầu) rồi tiếp tục được khai căn để xử lí thu được tín hiệu thông tin ban đầu.
3.1.3 Phương pháp giải điều chế Coherent :
Hình 3-4 : Nguyên lí phương pháp Coherent.
Tín hiệu điều chế được nhân với sóng rồi đi qua bộ lọc thông thấp để xử lí thu lấy tín hiệu thông tin ban đầu (có tần số thấp)
3.2 Mô phỏng trong Matlab.
Trang 26Hình 3-5 : Điều chế tín hiệu trên Mathlab.
Ở đây tín hiệu điều chế ta lấy là tín hiệu hình sin tần số thấp 1000Hz Sóng mang là sóng hình sin tần số cao 15000Hz.
Ta có kết quả tín hiệu điều biên :
Hình 3-6 : Phổ tín hiệu điều biên trên Mathlab.
Tín hiệu điều biên được giải điều chế bằng hai phương pháp :
Trang 273.2.2 Quá trình giải điều chế bằng phương pháp bình phương
Hình 3-7 : Phương pháp giải điều chế bình phương trên Matlab.
Trong đó bộ lọc thông thấp LPF là dạng bộ lọc FIR được thiết kế phù hợp với tần số của sóng mang (15000hz) và sóng thông tin (1000hz) : cho phép tín hiệu có tần số dưới 5Khz và chặn các tín hiệu có tần số trên 10Khz
Trang 28Hình 3-8 : Thông số thiết kế bộ lọc LPF.
Ta có kết quả phương pháp bình phương thể hiện trên Matlab :
Hình 3-9 : Phổ của 2 tín hiệu trên của sổ quan sát Đường màu xanh : tín hiệu điều chế.
Đường màu đỏ : tín hiệu giải điều chế.
Trang 293.2.3 Quá trình giải điều chế bằng phương pháp Coherent.
Hình 3-10 : Phương pháp giải điều chế Coherent trên Matlab.
Hình 3-11 : Phổ tín hiệu qua Matlab qua cửa sổ quan sát.
Đường màu xanh : tín hiệu điều biên.
Đường màu đỏ : tín hiệu giải điều chế(phương pháp Coherent).
Trang 303.3 Quá trình điều biên và giải điều biên trên board DSK TMS320C6713.
Để thực hiện quá trình điều biên và giải điều biên trên DSK TMS320C6713 ta sửdụng phần mềm Code Composer Studio v3.1 đểgiao tiếp với board Code và chương trình trong phần mềm Code Composer Studio được tự động biên dịch từMatlab
3.3.1 Nguyên lý thực hiện trên DSK 6713
Tín hiệu điều chế được đưa vào KIT qua cổng Line in hoặc microphone
từ đó được bộ codec stereo AIC23 lấy mẫu các tín hiệu tương tự và chuyển đổi chúng thành tín hiệu số để đưa vào khối điều biên Tín hiệu điều biên sau đó được qua khối giải điều biên và cuối cùng bộcodec lại chuyển các mẫu thành tín hiệu tương tựtrên đường line output và headphone
Hình 3-12: Nguyên lý điều chế tín hiệu trên DSK 6713.
Trong đó, tín hiệu đưa vào Line in ở đây là từmáy tạo tín hiệu Signal Generator, với tín hiệu là sóng sin tần sốthấp 1000Hz