ĐẶ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ố “
Cấ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ộ điều khiển chương
trình (PCU)
Bộ tạo địa chỉ
(AGU)
Vòng khóa pha (PLL)
Bộ mô phỏng trên chip (OnCE)
Bộ tạo xung (TIG)
Bộ kiểm tra hoạt động (JTAG)
Phần xử lý trung tâm (Phần lõi)
Sơ đồ khối bộ vi xử lý DSP56303
3
Timer
SCI
PROGRAM
P RAM
(4K x 24bit)
PAB
XAB
YAB
XAB
PAB
DAB
DMA
6 kênh
PAB
PDB
Lõi DSP563XX
DDB
YDB
XDB
Chuyển
mạch
BUS số
liệu trong
Giải
mã
lệnh
(PDC)
PCU
6
G
D
X
B
D
B
PA
B
PD
B
GBD
Điều
khiển
ngắt
(PIC)
Địa chỉ
chương
trình
(PAG)
Chuyể
n
mạch
Bus
địa
chỉ
ngoài
Bus
Điều
khiển
ngoài
Chuyển
mạch
Bus số
liệu
ngoài
PDB
G
D
B
Bộ tạo
xung
(TIG)
DATA
Y RAM
(2K x 24bit)
YAB
Bộ tạo
địa chỉ
AGU
(192
x
24bit)
Vòng
khóa pha
(PLL)
DATA
X RAM
(2K x 24bit)
YD
B
GD
B
ESSI1
Ngoại vi trong
XAB
ROM
Boot
Bộ nhớ trong
YD
B
&
3
XD
B
ESSI0
3
P
D
B
HIO8
6
PA
PA
B B
6
16
Bộ
số học
logic
(ALU)
Bộ mô
phỏng
trên
chíp
(OnCE)
Nguồn
Vcc
GND
1
8
1
9
1
8
1
3
2
4
6
Cấu trúc các cổng và các tín hiệu vào
ra của DSP56303
SCI
Cổng E
Timer
Cổng B
HIO8
Cổng
A
Nguồn
TIO2
TIO1
TIO0
DSP5630
3
Thạch
anh
Cổng
OnCE
/JTAG
AA0 [/DS]
AA1 [/PS]
AA2
AA3 [X/Y]
/RD
/WR
/TA
/BR
/BG
/BB
/CAS
BCLK
/BCLK
ESSI1
Cổng D
SCLK [PE2]
TxD
[PE1]
RxD
[PE0]
(D0÷ D23)
ESSI0
Cổng C
STD1
[PD5]
SRD1
SCK1
[PD3]
[PD4]
(SC10÷ SC1
2)
[PD0÷ PD2]
STD0 [PC5]
SRD0
SCK0
[PC3]
[PC4]
(SC00÷ SC0
2)
[PC0÷ PC2]
(A0÷ A17)
Vòng
khóa
pha
PLL
Đặt chế độ
và Ngắt
(H0÷ H7) [HA0÷ HA7]
[PB0÷
HA0 [/HAS]
PB7][PB8]
HA1 [HA8]
[PB9] [PB10]
HA2 [HA9]
/HCS [HA10] [PB13]
HR/W [/HRD] [PB11]
/HDS [/HWR] [PB12]
/HREQ [/HTRQ] [PB14]
/HACK [/HRRQ]
[PB15]
TCK
TDI
TDO
TMS
/TRST
/DE
MODD/IRQD
MODC/IRQC
MODB/IRQB
MODA /IRQA
PINIT/NMI
/RESET
PCAP
CLKOUT
XTAL
EXTAL
GND
Vcc
LẬ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]]
(mã lệnh) (các toán hạng)
[S1,D1] [S2,D2]
(chuyển số liệu đồng thời)
Cấu trúc lệnh mã máy :
Từ lệnh
(24 bit)
[Từ địa chỉ trực tiếp hoặc số liệu tức thì]
(24 bit)
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.
Sơ đồ khối của Board DSP563XXEVME
J12
(Stereo Line In)
AUDIO
CODED
J10
(Stereo Line Out)
Vi mạch
CS4270
và bộ KĐ
LM4880
J15
(Stereo Headphone)
Bộ nhớ số liệu ngoài
FSRAM
Vi mạch nhớ
GS71024GT-8
ESSI0
ESSI1
Bus Số liệu
Bus Địa chỉ
Cổng
RS-232
J8
(Cổng COM)
Vi mạch
Max212
Điều khiển
SCI
J17 (Điều khiển ngoài)
DSP563XX
Các phím
và chuyển
mạch
chế độ
làm việc
Bộ nhớ P ngoài
FLASH RAM
Vi mạch nhớ
AT29VL020-TU
HIO8
J4 (Bus địa chỉ ngoài)
J1 (Bus số liệu ngoài)
J11 (Giao diện chủ)
IRQ
OnCE/JTAG
J3 (Giao diện gỡ rối)
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
Sơ đồ cấu trúc của bộ lọc số FIR tuyến tính
Dãy x(-k) trong bộ nhớ
x(0)
x(0)
x(-N)
x(-N-1)
X
X
X
+
h(0)
h(1)
....
x(-2)
x(-1)
X
X
+
+
h(2)
....
h(N-1)
+
y(0)
h(N)
Dãy h(k) trong bộ nhớ
Lưu đồ thuật toán bộ lọc số FIR pha tuyến tính bậc 101
Vào
Nhập mảng
Hệ số h(k)101
Khởi tạo
Hệ thống
Nhận mảng
vào x(-k)101 đầu
tiên
k=100
? Đúng
Sai
Dịch vòng
mảng x(-k)101
k=100
?
Đúng
Nhận mẫu vào
x(0) hiện thời
y(0)
Sai