ĐẶT VẤN ĐỀ “ Nghiên cứu xử lý số tín hiệu âm thanh trên họ vi mạch DSP563XX “ Hiện nay, các hệ xử lý tín hiệu số Digital Signal Processing - DSP đã được xử dụng rộng rãi trong các t
Trang 1ĐẶT VẤN ĐỀ
“ Nghiên cứu xử lý số tín hiệu âm thanh trên
họ vi mạch DSP563XX “
Hiện nay, các hệ xử lý tín hiệu số (Digital Signal Processing - DSP) đã được
xử dụng rộng rãi trong các thiết bị và hệ thống số dân dụng, công nghiệp và quân sự, với phần xử lý trung tâm là vi mạch xử lý tín hiệu số (bộ vi xử lý DSP) Như vậy, việc thực hiện đề tài trên không chỉ đơn thuần phục vụ cho yêu cầu giảng dậy, mà còn đáp ứng yêu cầu khai thác, nghiên cứu, tiến tới thiết kế, chế tạo các thiết bị kỹ thuật số hiện đại trên cơ sở các bộ vi xử lý DSP.
Đề tài chọn đi sâu nghiên cứu nhóm các bộ vi xử lý DSP563XX thuộc họ DSP56XXX vì đó là các vi mạch được sử dụng rộng rãi trong các thiết bị viễn thông
để xử lý tín hiệu âm thanh ở vùng tần số âm tần.
Nội dung nghiên cứu của đề tài tập trung vào ba vấn
đề cơ bản sau :
1 Nghiên cứu khai thác cấu trúc phần cứng, tập lệnh và lập trình mã ngữ nhóm bộ vi xử lý DSP563XX do hãng Motorola sản xuất.
2 Nghiên cứu khai thác phần cứng Board
DSP563XXEVME và phần mềm gỡ rối Suite56 Debugger,
đây là các công cụ phát triển có thể dùng để thiết kế và thử nghiệm các hệ xử lý tín hiệu số trên các bộ vi xử lý
DSP563XX.
3 Nghiên cứu xây dựng các chương trình thực hiện các loại bộ lọc số FIR pha tuyến tính chạy trên Board DSP563XXEVME để xử lý tín hiệu âm thanh.
Nội dung của báo cáo đề tài gồm ba phần, trình bầy
ba vấn đề nghiên cứu đã nêu trên, và đưa ra các kết quả thử nghiệm một số chương trình bộ lọc số FIR pha tuyến tính chạy trên Board DSP563XXEVME để xử lý lọc nhiễu cho tín hiệu âm thanh.
Nhóm nghiên cứu dự kiến sẽ sử dụng kết quả nghiên cứu của đề tài để xây dựng Panel thí nghiệm về bộ lọc số FIR pha tuyến tính xử lý tín hiệu âm thanh, phục
vụ cho thí nghiệm của môn học “ Xử lý tín hiệu số “
Trang 2Cấu trúc cơ bản họ bộ vi xử lý DSP56XXX của hãng Motorola
Các ngoại vi
trên chíp
Bộ nhớ chương trình P
Bộ nhớ số liệu X
Bộ nhớ số liệu Y
Phần các bộ nhớ và ngoại vi trên chip
Bộ số học
logic (ALU)
Bộ tạo địa chỉ (AGU)
Bộ điều khiển chương trình (PCU)
Vòng khóa pha (PLL)
Bộ tạo xung (TIG)
Bộ mô phỏng trên chip (OnCE)
Bộ kiểm tra hoạt động (JTAG)
Phần xử lý trung tâm (Phần lõi)
Trang 3Sơ đồ khối bộ vi xử lý DSP56303
HIO8
Bộ mô phỏng trên chíp (OnCE)
Chuy n ển
m ch ạch Bus
a ch địa chỉ ỉ ngo iài
Bus Điều khiển ngoài
Chuyển mạch Bus số liệu ngoài
PAB XAB
PAB XAB YAB
ESSI0
&
ESSI1
SCI Timer3
Ngoại vi trong
DATA
Y RAM (2K x 24bit)
Bộ
số học logic (ALU)
Bộ tạo địa chỉ AGU
Vòng
khóa pha
(PLL)
Bộ tạo
xung
(TIG)
Điều khiển ngắt (PIC)
Địa chỉ chương trình (PAG)
Chuyển
mạch
BUS số
liệu trong
GBD
PDB XDB
YDB
PCU
D B
DATA
X RAM (2K x 24bit)
PROGRAM
P RAM (4K x 24bit)
Bộ nhớ trong
Giải
mã lệnh (PDC)
DMA
6 kênh
ROM
Boot
(192
x
24bit)
PAB PDB
3
18
13
24
6
6
Nguồn
Vcc GND
Lõi DSP563XX
18 19
6 6
DAB
DDB
P B
Trang 4Cấu trúc các cổng và các tín hiệu vào
ra của DSP56303
DSP56303
Nguồn
[PB0 PB7]
Vòng khóa pha PLL
Thạch anh
Đặt chế độ
và Ngắt
(D0D23)
AA1 [/PS]
AA0 [/DS]
/RD
/WR
AA3 [X/Y]
BCLK
/BCLK
HA0 [/HAS] [PB8]
/TA
/BR
/BG
/BB
/CAS
AA2
ESSI0 Cổng C
HA1 [HA8] [PB9]
HA2 [HA9] [PB10]
/HCS [HA10] [PB13] HR/W [/HRD] [PB11] /HDS [/HWR] [PB12] /HREQ [/HTRQ] [PB14] /HACK [/HRRQ] [PB15]
S
P
ESSI1 Cổng D
S
P
SCI Cổng E
Timer
TCK TDI TDO TMS /TRST /DE
Trang 5LẬP TRÌNH MÃ NGỮ CHO HỌ BỘ VI XỬ LÝ DSP56XXX
CÁC PHƯƠNG PHÁP ĐỊA CHỈ
Phương pháp địa chỉ được hiểu là phương pháp chỉ ra các toán hạng nguồn và đích tham gia vào phép toán của lệnh Họ DSP56XXX có bốn phương pháp địa chỉ cơ bản là :
- Địa chỉ thanh ghi
- Địa chỉ gián tiếp
- Địa chỉ trực tiếp
- Số liệu tức thì
Cú pháp lệnh mã ngữ :
OPC [[S01,] [S02,] [D0]] [S1,D1] [S2,D2]
(mã lệnh) (các toán hạng) (chuyển số liệu đồng thời)
Cấu trúc lệnh mã máy :
Từ lệnh [Từ địa chỉ trực tiếp hoặc số liệu tức thì]
TẬP LỆNH MÃ NGỮ CỦA HỌ DSP563XX
Tập lệnh mã ngữ của họ DSP563XX có 104 lệnh, chia thành 7 nhóm :
- Nhóm lệnh chuyển số liệu
- Nhóm lệnh số học
- Nhóm lệnh điều khiển bộ nhớ Cache
- Nhóm lệnh logic
- Nhóm lệnh dịch bit
- Nhóm lệnh điều khiển vòng lặp
-Nhóm lệnh điều khiển chương trình
Các công cụ phát triển phần mềm ứng dụng
Để xây dựng phần mềm ứng dụng cho các hệ xử lý tín hiệu số dùng bộ vi xử lý DSP563XX thì tối thiểu phải có các công cụ phát triển phần cứng và phần mềm sau :
1 Board phát triển phần cứng (ví dụ Board DSP563XXEVME).
2 Phần mềm biên dịch mã ngữ asm56300.exe
3 Phần mềm gỡ rối Suite56 Debugger
Trang 6Sơ đồ khối của Board DSP563XXEVME
Board DSP563XXEVME được thiết kế chủ yếu để xử lý số hai kênh tín hiệu âm thanh Stereo, và có
thể mở rộng cho các ứng dụng khác Trên Board DSP563XXEVME có các phần cứng cơ bản sau :
- Bộ vi xử lý DSP563XX
- Bộ nhớ số liệu ngoài FSRAM (64K x 24 bit) : Vi mạch GS71024GT-8
- Bộ nhớ chương trình ngoài FLASH RAM (256K x 8bits) : Vi mạch AT29LV020-10TU
- Khối biến đổi tín hiệu âm thanh AUDIO CODEC : Vi mạch CS4270 và bộ KĐ LM4880
- Giao diện chủ HIO8 : Giắc J11
- Cổng truyền thông nối tiếp RS-232 : Vi mạch MAX212CAG và Giắc J8
- Giao diện truyền thông song song với các ngoại vi ở ngoài Board : Các Giắc J1, J4, J17
- Giao diện nạp và gỡ rối chương trình OnCE/JTAG : Giắc J3
- Các Giăm để thiết lập chế độ làm việc : J2, J6, J7, J9, J13, J16, J18
- Giắc đưa tín hiệu âm thanh vào (Line In), và ra (Line Out, Headphone)
- Các phím nhấn và chuyển mạch đặt chế độ làm việc: RESET , SW1, SW2, SW3, SW4
J15
(Stereo Headphone)
AUDIO CODED
Vi mạch CS4270
và bộ KĐ LM4880
Bộ nhớ số liệu ngoài FSRAM
Vi mạch nhớ GS71024GT-8
Các phím
và chuyển mạch chế độ làm việc
ESSI0 ESSI1 Bus Số liệu Bus Địa chỉ Điều khiển SCI
DSP563XX
HIO8 IRQ
OnCE/JTAG
J12
(Stereo Line In)
J10
(Stereo Line Out)
Bộ nhớ P ngoài FLASH RAM
Vi mạch nhớ AT29VL020-TU
J17 (Điều khiển ngoài) J4 (Bus địa chỉ ngoài) J1 (Bus số liệu ngoài) J11 (Giao diện chủ) J3 (Giao diện gỡ rối)
J8
(Cổng COM)
Cổng RS-232
Vi mạch Max212
Trang 7Sơ đồ cấu trúc của bộ lọc số FIR tuyến tính
Lưu đồ thuật toán bộ lọc số FIR pha tuyến tính bậc 101
Khởi tạo
Hệ thống
Vào
Nhập mảng
Hệ số
Nhận mảng
vào x(-k) 101đầu tiên
Đúng
Sai
k=100
?
y(0)
Sai
Dịch vòng
mảng x(-k) 101
Đúng
k=100
?
Nhận mẫu vào
x(0)hiện thời
y(0)
+
Dãy h(k) trong bộ nhớ
Dãy x(-k) trong bộ nhớ
+
+
X
x( 0 )
X
x (-2 ) x (-1 )
h (N-1 ) h (N )
+ X