Tải bản đầy đủ (.pdf) (70 trang)

nghiên cứu phần cứng dsp56002 - ứng dụng thiết kế bộ lọc số - lọc số thông một dải

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (804.98 KB, 70 trang )

Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Phần I: Nghiên cứu phần cứng bộ vi xử lý tín hiệu số
DSP56002.
Chương 1: Giới thiệu chung
Các bé vi xử lý tín hiệu số được phát sinh từ năm 1982 với những hàm đặc biệt để
xử lý nhanh các tín hiệu, nó được ứng dụng trong rất nhiều lĩnh vực như trong viễn
thông, trong đo lường điều khiển, trong quân sự, trong xử lý ảnh, xử lý âm
DSP56002 là một trong những bộ vi xử lý tín hiệu số nói trên, nó thuộc họ DSP56K
của hãng MOTOROLA.
DSP56002 là bộ vi xử lý tín hiệu số 24 bits với các đặc điểm sau:
• Có 512 ô nhớ RAM chương trình.
• Có hai bộ nhớ RAM dữ liệu X-memory và Y-memory (ô nhớ có địa chỉ thấp),
mỗi bộ nhớ có dung lượng là 256 ô nhớ.
• Có hai bộ nhớ ROM dữ liệu X-memory và Y-memory (ô nhớ có địa chỉ cao),
mỗi bộ nhớ có dung lượng là 256 ô nhớ.
• Có BUS địa chỉ 16 bits và BUS dữ liệu 24 bits cho phép thông qua đó để mở
rộng bộ nhớ (PORT A).
• Cổng truyền tin chủ HI (PORTB).
• Cổng truyền tin nối tiếp đồng bộ (SPI) và không đồng bộ (SCI) (PORTC).
• 25 chân vào ra đa năng.
• Có bé Timer và bộ đếm sự kiện 24bit.
• Các bộ điều khiển Reset và Interrupt.
MCU của nó gồm:
• Khối logic số học ALU.
• Khối địa chỉ AGU.
• Khối điều khiển chương trình CPU.
DSP56002 thực hiện xử lý nhanh các tín hiệu trong thời gian thực, các khối xử lý
của nó thực hiện các phép toán cộng, trừ , nhân, nhân có nhớ đặc biệt nó có bộ
nhân cộng logic (hay còn gọi là bộ cộng dồn) MAC để thực hiện phép tính nhân
chập là phép toán rất quan trọng trong lĩnh vực xử lý tín hiệu số. Các khối xử lý
logic số học, khối địa chỉ và khối điều khiển chương trình hoạt động độc lập với


nhau, tuy nhiên chúng có thể giao diện với nhau và giao diện với các bộ nhớ thông
qua các BUS địa chỉ và BUS số liệu. Trên DSP56002 có chứa : 4 BUS dữ liệu 24
bits là XDB, YDB, PDB và GDB; 3 BUS địa chỉ 16 bits là XAB,YAB và PAB.
Giao diện chủ HI cho phép ta kết nối DSP này với các DSP khác hoặc các bộ vi xử
lý hay vi điều khiển chuyên dụng. Trong khi đó các chân ở cổng C đóng vai trò là
các cổng truyền tin cho phép ta kết nối DSP56002 với các thiết bị ngoài như : Các
bộ ADC, DAC, các bộ CODEC
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
1
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
ĐÓ hiểu rõ hơn ta có thể xem cấu trúc của nó ở hình 1.
Cấu trúc của DSP56002 được mô tả như sau:
Hình 1: Sơ đồ khối của DSP56002.
Cấu trúc này được tích hợp trên một chip và đưa ra 132 chân, các chân đưa ra được
sắp xếp theo từng khối , từng nhóm chức năng riêng biệt.
Sau đây ta sẽ lần lượt đi nghiên cứu cụ thể từng khối, từng bộ phận của bộ vi xử lý
tín hiệu số này.
Chương II: PORT A
I. Giới thiệu chung về PORT A:
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
2
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
PORT A là cổng cho phép ta có thể dễ dàng mở rộng bộ nhớ (giao diện với bộ nhớ),
PORT A bao gồm 50 chân được chia làm 3 nhóm, mỗi nhóm ứng với một chức
năng khác nhau đó là:
• Nhóm chân cho BUS dữ liệu D0 đến D23.
• Nhóm chân cho BUS địa chỉ A0 đến A15 .
• Nhóm chân cho BUS điều khiển.
Cả 50 chân đều ở trạng thái cao trở khi khởi động.
• Khối BUS địa chỉ: Gồm 16 chân A0 đến A15, đây là các đầu ra 3 trạng thái, nó

sẽ không thay đổi khi bộ nhớ chương trình ngoài chưa được truy nhập. Nhóm
chân này cho phép ta truy nhập đến 64K byte vùng nhớ của bộ nhớ ngoài X-
memory , Y-memory và P-memory.
• Khối BUS dữ liệu D0 đến D23, là các chân 3 trạng thái, 2 chiều. Nhóm chân này
cho phép truyền dữ liệu giữa các bộ nhớ ngoài và các khối xử lý bên trong.
• /PS; /DS; X//Y: Cả 3 chân này đều là đầu ra, chóng quy định xem bộ xử lý có
làm việc với bộ nhớ ngoài hay không, nếu có thì bộ nhớ nào được lựa chọn.
Việc chọn bộ nhớ ngoài được mô tả như bảng dưới đây:
/PS /DS X//Y Bộ nhớ ngoài được chọn
1 1 1 Không chọn
1 0 1 Chọn bé nhớ X
1 0 0 Chọn bé nhớ Y
0 1 1 Chọn bé nhớ chương trình ngoài
• Bus điều khiển : gồm 7 chân.
- /RD là một đầu ra cho phép bộ vi điều khiển đọc dữ liệu từ bộ nhớ ngoài
lên BUS dữ liệu.
- /WR cũng là một đầu ra dùng cho chức năng viết.
- /BN (BUS needed) là một đầu ra, hoạt động ở mức thấp mỗi khi DSP yêu
cầu bộ nhớ ngoài .
- /BR (BUS Request) là một đầu vào hoạt động ở mức thấp mỗi khi có sự
trao đổi dữ liệu giữa DSP56002 với thiết bị ngoài.
- /BG (BUS Grant) là một đầu ra.
- /BS (BUS strobe) là một đầu ra hoạt động ở mức thấp mỗi khi DSP có yều
cầu giao diện với thiết bị ngoại vi. Chân này thường được sử dụng cùng
chân /WT để tạo nên trạng thái đợi cho BUS dữ liệu khi không xử lý kịp.
- /BW (BUS wait) tạo trạng thái đợi cho BUS dữ liệu khi DSP không xử lý
kịp.
II. Giao diện PORT A:
DSP56002 có thể truy nhập tới một hay nhiều bộ nhớ : X-memory , Y-memory và
P-memory, nếu chỉ truy nhập đến các bộ nhớ trong thông qua các BUS dữ liệu và

SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
3
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
BUS địa chỉ trong thì việc truy nhập đó chỉ thực hiện trong mét chu kỳ lệnh, ngoài
ra DSP56002 còn có thể truy nhập tới cácbộ nhớ bên ngoài thông qua PORT A,
nhưng việc truy nhập bộ nhớ ngoài thông qua PORT A sẽ phải thực hiện trong hai
chu kỳ lệnh.
Khi sử dụng PORT A để mở rộng bộ nhớ thì ta phải chia ra làm ba nhóm chính:
Nhóm BUS dữ liệu 24 bits, nhóm BUS địa chỉ 16 bits và nhóm BUS điều khiển
gồm các chân điều khiển vào ra.
Khi làm việc với bộ nhớ ngoài thì chân /PS của DSP56002 sẽ được nối tới chân /CS
của bộ nhớ ngoài như hình 2:
Hình 2: Kết nối DSP56002 với bộ nhớ ngoài thông qua PORT A.
Còn các bộ nhớ trong gồm X-memory, Y-memory và P-memory sẽ được chọn nhờ
các chân /RD, /WR, X//Y và /DS (Hình 3):
Cụ thể nó được xác định như sau:
/PS /DS /X//Y Bộ nhớ được lựa chọn
1 1 1 Không hoạt động
1 0 1 X-memory
1 0 0 Y-memory
0 1 1 P-memory
0 1 0 Không định nghĩa
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
4
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
0 0 X Không định nghĩa
1 1 0 Không định nghĩa
Hình 3: Sơ đồ lựa chọn các bộ nhớ bên trong.
III. Thanh ghi điều khiển BUS (BCR):
Thanh ghi điều khiển BUS (BCR) xác định thời gian hoạt động của BUS bằng cách

điều khiển thời gian của tín hiệu trên các chân /RD, /WR và trên các chân đưa dữ
liệu ra. Thanh ghi này có địa chỉ thuộc ô nhớ $FFFE.
BCR là một thanh ghi 16 bit, mỗi bộ nhớ được trỏ bởi 4 bit (hình 4), các thiết bị
ngoại vi khi được truy nhập nó sẽ có vùng nhớ từ $FFC0 đến $FFFF. Ta có thể lập
trình để chẽn vào 15 trạng thái đợi cho mỗi qua trình truy nhập bộ nhí.
IV. BUS strobe và trễ ở các chân:
Quá trình hoạt động trên cổng A (khi truyền đồng bộ) có thể chèn thêm vào các
trạng thái trễ để có thể xử lý tín hiệu kịp thời (Nhằm không bị mất dữ liệu khi bé vi
xử lý không xử lý kịp) bằng cách sử dụng hai chân /BS và /WT.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
5
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Khi đó ta có thể dùng thêm một BUS gọi là “BUS trọng tài” để “phân xử” công
bằng đối với các sự truy nhập lên BUS. “BUS trọng tài” sẽ quyết định BUS nào hay
thiết bị ngoại vi nào được truy nhập trong một thời điểm nhất định.
Trong quá trình “phân xử” đó “BUS trọng tài” phải xử dụng đến các chân /BN,
/BR, /BG, /BS, và chân /WT.
Qua sự phân tích trên ta thấy : Cổng A là một cổng vô cùng quan trọng trong việc
xử lý, điều khiển và đặc biệt là cực kỳ cần thiết cho việc mở rộng bộ nhớ cho bộ xử
lý tín hiệu số DSP56002 . Mọi hoạt động của MCU, mọi sự kết hợp với bộ nhớ
ngoài cũng như việc kết hợp với thiết bị ngoài đều phải thông qua cổng A để
thu/phát và điều khiển .
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
6
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Hình 4: Mô tả thanh ghi BCR và các vùng nhớ.
Chương 3: PORT B
PORT B là một cổng vào ra hai chiều, nó được sử dụng như là 15 chân vào ra vạn
năng (GPIO: general-purpose I/O). Tuỳ theo cấu hình nó sẽ là vào hay ra và được
sử dụng để điều khiển thiết bị . PORT B có 8 bits hai chièu ở giao diện chủ HI

(Host interface) nơi cho phép ta kết nối DSP56002 với các DSP hoặc các bộ vi điều
khiển hay vi xử lý khác.
Cấu trúc của nó là phần đậm ở sơ đồ hình 5
Hình 5: Giao diện PORT B.
I. Vào ra vạn năng (GPIO):
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
7
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Khi PORT B là một cổng vào ra vạn năng thì nó hoạt động với 3 thanh ghi gồm :
thanh ghi điều khiển PORT B (PBC),thanh ghi định chiều dữ liệu PORT B
(PBDDR) và thanh ghi dữ liệu PORT B (PBC) (Hình 6).
Thanh ghi PBC đặt tại X:$FFE0.
Thanh ghi PBDDR đặt tại X:$FFE2.
Thanh ghi PBD đặt tại X:$FFE4.
Khi Reset thì PBC và PBDDR đều bị xoá, mà khi thanh ghi định chiều dữ liệu bị
xoá thì cả 15 chân của PORT B mặc định là các lối vào.
Hình 6: Các thanh ghi điều khiển PORT B.
Việc lựa chọn PORT B hoạt động ở chế độ GPIO hay HI là do thanh ghi điều khiển
PORT B (PBC) quy định (Hình 6). Còn việc xác định xem PORT B là cổng vào
hay ra thì được xác định bởi thanh ghi PBDDR (Hình 6). PORT B sẽ là các đầu vào
nếu các bits của thanh ghi PBDDR được xoá về 0, ngược lại nó sẽ là các đầu ra khi
các bits của thanh ghi PBDDR được đặt là 1.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
8
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
1. Lập trình trong chế độ GPIO:
Để truyền dữ liệu giữa PORT B và các thanh ghi hay các vùng nhớ ta dùng lệnh
MOVE và MOVEP.
Ta có thể dùng lênh MOVE để đưa số liệu vào các ô nhớ là địa chỉ của các thanh
ghi điều khiển PORT B để thiết lập chế độ cho PORT B là vào hay ra, là GPIO hay

HI. Sau đó dùng lệnh MOVEP để di chuyển dữ liệu cổng với các thanh ghi hay với
các vùng nhớ. Chẳng hạn ta muốn thiết lập cho PORT B hoạt động trong chế độ
GPIO với các chân PB0 đến PB7 là các đầu vào, các chân PB8 đến PB14 là các đầu
ra thì ta phải thực hiênh như sau:
MOVE #$0,X:$FFE0
MOVE #$7F00,X:$FFE2
Câu lệnh thứ nhất thực hiện xoá các bits BC1 và BC0 trong thanh ghi PBC để thiết
lập PORT B hoạt động trong chế độ GPIO.
Câu lệnh thứ hai ghi vào thanh ghi PBDDR con sè 7F00 để chọn PB0 đến PB7 là
các đầu vào, còn PB8 đến PB14 là các đầu ra.
2. Timming:
Khi dữ liệu được viết tới PORT B đồng thời tới bộ xử lý trung tâm CPU thì nó phải
mất thời gian là một chu kỳ lệnh. Chẳng hạn lệnh:
MOVE DATA15,X:PORT B DATA24,Y:EXTERN
Lệnh thứ nhất viết 15 bits dữ liệu tới thanh ghi PORT B, nhưng các đầu ra là không
thay đổi trừ khi chu kỳ lệnh được thực hiện.
Lệnh thứ hai viết 24 bits dữ liệu tới bộ nhớ ngoài Y-memory, nó làm xuất hiện ở
PORT A trong xung nhịp T2 và T3 của chu kỳ lệnh.
II. Chế độ HI (Host interface):
Chế độ HI có các đặc điểm sau:
• Cổng song song cái mà được kết nối trực tiếp với BUS dữ liệu của bộ vi xử lý
hay bé DSP khác.
• Có hai nhóm thanh ghi : mét cho bộ xử lý chủ và một cho CPU của DSP.
• CPU của DSP nhìn giao diện chủ như một ngoại vi chiếm dữ 3 từ (24 bits) trong
không gian của bộ nhớ.
• Các thanh ghi truyền và nhận số liệu được đệm kép để cho phép DSP và bộ xử
lý chủ truyền số liệu một cách có hiệu quả với tốc độ cao.
• Tốc độ đạt được là 3,3 triệu byte/s ở tần số làm việc 40 (MHz).
• Có 15 chân:
♦ H0 đến H7: BUS dữ liệu chủ.

♦ HA0 đến HA2: Chọn địa chỉ chủ.
♦ HR//W : Điều khiển đọc viết.
♦ /HEN: Host cho phép truyền.
♦ /HRED: Host yêu cầu.
♦ /HACK: Chân báo nhận.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
9
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
• Giao diện giữa DSP và Host: Được thể hiện trên sơ đồ hình 8.
Việc truyền dữ liệu trong chế độ HI được thực hiện là 8 bits, 16 bits hoặc 24 bits, có
các kiểu truyền sau:
♦ Truyền dữ liệu từ DSP tới Host.
♦ Truyền dữ liệu từ Host tới DSP.
♦ Truyền dữ liệu từ Host của DSP này tới Host của DSP khác.
Sơ đồ hình 7 cũng mô tả các thanh ghi trong chế độ HI. Bên trái của sơ đồ là các
thanh ghi chạy dọc xuống, còn bên phải là giao diện trong chế độ này.
1. Giao diện Host với CPU của DSP:
DSP CPU nhìn HI như một vùng nhớ ánh xạ ngoài chiếm 24 bits trongvùng nhớ dữ
liệu.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
10
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Việc truyền và nhận dữ liệu thông qua bộ đệm hai chiều cho phép DSP và Host
truyền dữ liệu với tốc độ và hiệu quả cao. Lệnh MOVEP cho phép truyền dữ liệu từ
Host tới bộ nhớ và từ bộ nhớ tới Host mà không cần thông qua các thanh ghi trung
gian. Khi Reset bằng cả phần mềm lẫn phần cứng thì chế độ HI đều bị bá qua mà
thay vào đó PORT B sẽ làm việc trong chế độ vào ra vạn năng GPIO và các chân
mặc định là các đầu vào.
Hình 7: Sơ đồ giao diện HI.
2. Chế độ chương trình: HI có 2 chế độ lập trình: 1 là lập trình cho DSP và một là

lập trình cho chế độ HI. Khi lập trình ta cần chú ý đến 3 thanh ghi: Thanh ghi điều
khiển HCR, thanh ghi trạng thái HSR và thanh ghi truyền/nhận dữ liệu HTX/HRX.
Sau đây ta sẽ xét lần lượt từng thanh ghi:
a. Thanh ghi điều khiển HCR:
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
11
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Đây là thanh ghi 8 bits điều khiển việc đọc ghi, các bits của nó được mô tả như sau:
0 0 0 HF3 HF2 HCIE HTIE HRIE
Reset: 0 0 0 0 0 0 0 0
Thanh ghi này ở địa chỉ X:$FFE8. Khi Reset các bits đều bị xóa về 0.
Bit 0 (HRIE): Đây là bit được sử dụng để cho phép ngắt DSP khi bit HRDE ở
thanh ghi trạng thái HSR được đặt là 1.
Khi xóa bit này thì các ngắt trong khi thu được bỏ qua.
Bit 1 (HTIE): Đây là bit được sử dụng để cho phép ngắt DSP khi bit HTDE ở
thanh ghi trạng thái HSR được đặt là 1.
Khi xóa bit này thì các ngắt trong lúc truyền được bỏ qua.
Bit 2 (HCIE): Bit này cho phép ngắt DSP khi bit HCP trên HSR được đặt là 1.
Xoá bit này đồng nghĩa với việc bỏ qua các ngắt.
Bit 3 và Bit 4 (HF2 và HF3): Là các bit cờ.
b. Thanh ghi trạng thái HSR:
Thanh ghi này là một thanh ghi 8 bit chỉ đọc.
Các bits của nó được mô tả như sau:
DMA 0 0 HF1 HF0 HCP HTDE HRDE
Reset: 0 0 0 0 0 0 0 0
Thanh ghi này nằm ở ô nhớ có địa chỉ X:$FFE9. Khi Reset các bit cũng bị xoá về 0.
Bit 0 (HRDF): Bit này cho ta biết vùng chứa dữ liệu khi truyền nhận.
Nó sẽ được đặt là 1 khi dữ liệu được truyền từ nhóm thanh ghi
TXH:TXM:TXL tới thanh ghi HRX.
Nó bị xoá khi DSP đọc dữ liệu ở HRX.

Bit 1 (HTDE): Bit này chỉ ra rằng thanh ghi truyền dữ liệu HTX là rỗng và DSP có
thể viết nên.
Bit này được dặt là 1 khi thanh ghi HTX nhận được dữ liệu truyền từ nhóm
thanh ghi RXH:RXM:RXL.
Bit này bị xoá khi HTX được viết lên bởi DSP.
Bit 2 (HCP): Bit này cho biết trạng thái bit HC trong thanh ghi CVR (Command
vector register).
Bit 3 và bit 4 (HF0 và HF1): Chỉ ra trạng thái của cờ 0 và 1 trong ICR.
Bit 7 (DMA): Bit này là bit cho phép hay không cho phép Host truy nhập trực tiếp
lên bộ nhớ.
1: Cho phép.
0: Bá qua.
c. Thanh ghi truyền dữ liệu HRX:
Thanh ghi này được sử dụng cho việc truyền dữ liệu từ Host tới DSP. Đây là một
thanh ghi 24 bits và chỉ được đọc bởi DSP CPU. Nó được nạp dữ liệu từ nhóm
thanh ghi TXH:TXM:TXL khi bit TXDE trên thanh ghi trạng thái ngắt ISR và bit
HRDF trên thanh ghi trạng thái HSR là 0. Khi việc truyền dữ liệu được thực hiện
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
12
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
thì cả hai bit này được đặt là 1. Đọc thanh ghi HRX sẽ xoá bit HTDF. Việc Reset
không làm ảnh hưởng đến thanh ghi này.
d. Thanh ghi nhận dữ liệu HTX:
Thanh ghi này được sử dụng cho việc truyền dữ liệu từ DSP tới Host. Đây là một
thanh ghi 24 bits và chỉ được viết bởi DSP CPU. Viết lên HTX sẽ xoá bit HDRE
của thanh ghi trạng thái HSR. Thanh ghi này được truyền dữ liệu tới từ nhóm thanh
ghi (RXH:RXM:RXL) nếu cả hai bits HTDE của thanh ghi HSR và RXDF của
thanh ghi ISR đều là 0. Việc Reset không làm ảnh hưởng đến thanh ghi này.
Ngoài các thanh ghi trên ta còn một số thanh ghi cũng cần phải chú ý như sau:
• Thanh ghi điều khiển ngắt (ICR):

Đây là một thanh ghi 8 bits đọc viết để điều khiển việc ngắt và điều khiển các cờ
trong chế độ HI, khi Reset các bit bị xoá hết về 0. Các bits của nó được mô tả
như sau:
INIT HM1 HM0 HF1 HF0 0 TREQ RREQ
Reset: 0 0 0 0 0 0 0 0
Hai bit 0 và 1 (TREQ và RREQ) là hai bit để điều khiển chân /HREQ trong hai
chế độ ngắt và DMA.
Hai bits 3 và 4 (HF0 và HF1) là hai bits cờ trạng thái khi truyền thông tin từ
Host tới DSP.
Hai bit 5 và 6 (HM0 và HM1) là hai bits để chọn chế độ. Hai bits này thiết lập
4 chế độ như sau:
HM1 HM0 Chế độ
0 0 Chế độ ngắt
0 1 Chế độ DMA 24 bits
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
13
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
1 0 Chế độ DMA 16 bits
1 1 Chế độ DMA 8 bits
Bit 7 (INIT) là bit quy định phương thức truyền dữ liệu trong 2 chế độ ngắt và
DMA.
• Thanh ghi trạng thái ngắt (ISR): Đây là một thanh ghi 8 bits báo các trạng thái
ngắt khi truyền/nhận tín hiệu. Các bits của nó được mô tả như sau:
HREQ DMA 0 HF3 HF2 TRDY TXDE RXDF
Reset: 0 0 0 0 0 1 1 0
Bit 0 (RXDF): Báo việc thu dữ liệu.
Bit 1 (TXDF): Báo việc truyền dữ liệu.
Bit 2 (TRDY): Báo trạng thái TXDE./HRDE.
Bit 3 và bit 4 (HF2 và HF3): Chỉ ra trạng thái của cờ T2 và T3 trong HCR.
Bit 6 (DMA): Chỉ ra trạng thái của hai bit MM1 và MM0 trong thanh ghi ICR.

Bit 7 (HREQ): Chỉ ra trạng thái chân /HREQ.
3. Truyền dữ liệu từ Host tới DSP:
Khi lập trình để truyền dữ liệu từ Host tới DSP ta cần chú ý đến các thanh ghi sau:
ISR, ICR, HSR và HCR.
Các thanh ghi này đã được nghiên cứu rất kỹ ở phần trên. Ta chỉ cần biết thêm rằng
bộ xử lý chủ có vùng nhớ trong P-memory gồm: vùng nhận dữ liệu P:$0020, vùng
truyền dữ liệu P:$0022 và vùng mã lệnh P:$0024 đến P:$007E.
Quá trình thực hiện lệnh được tiến hành như sau: Bộ xử lý chủ viết ra các lệnh
mong muốn HV trong thanh ghi Vector lệnh CVR. Sau đó thiết lập bits 7 (HC)
trong thanh ghi CVR để cho phép Host thực hiện các lệnh. Đồng thời bit HCP trong
thanh ghi HSR cũng được thiết lập. Nếu bit HCIE trong thanh ghi HCR được đặt
bởi DSP thì việc xử lý lệnh sẽ được bắt đầu. Khi HC được thực hiện như một bit
báo nhận thì nó có thể được bộ xử lý chủ đọc như một bit xác định trạng thái khi
các lệnh được thực hiện.
Có một điều phải lưu ý là mặc dù ta có thể viết vào HC và HV đồng thời, tuy nhiên
để đảm bảo ổn định các Vector ngắt ta chỉ nên viết vào HV khi HC đã được xoá.
4. Truyền dữ liệu từ DSP tới Host:
Việc truyền dữ liệu từ DSP tới Host cũng tương tự như từ Host tới DSP. Các thanh
ghi ta phải dùng gồm: ISR, HSR, ICR và HCR. Các thanh ghi này cũng đã được
nghiên cứu kỹ ở phần trên.
Chương 4: PORT C
I. Giới thiệu chung về PORT C:
PORT C là cổng truyền tin nối tiếp nó được mô tả như sau (phần vẽ đậm hình 8):
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
14
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
PORT C gồm có 9 chân, ba chân PC0, PC1 và PC2 (Là RxD, TxD và SCLK) là các
chân vào ra dùng cho truyền tin nối tiếp (SCI). Sáu chân còn lại là các chân PC3
đến PC8 ( tương đương với SC0, SC1, SC2, SCK, SRD và STD) dành cho truyền
tin nối tiếp đồng bộ (SSI).

Hình 8: Sơ đồ cấu trúc cổng C.
Khi dùng PORT C như cổng vào ra thông thường thì ta có thể dùng nó để điều
khiển các thiết bị ngoài.
Khi dùng PORT C cho truyền tin nối tiếp ta có thể kết nối với các thiết bị ngoài
như: Các bộ vi xử lý khác, các DSP khác, các bộ chuyển đổi ADC ,DAC hay các bộ
mã hoá , giải mã vv
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
15
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Sau đây ta sẽ đi xét cụ thể từng trường hợp ứng dụng của PORT C.
II. PORT C với chức năng vào ra thông thường:
Lúc này PORT C được bởi 3 thanh ghi:
• Thanh ghi điều khiển PORT C (PCC).
• Thanh ghi định chiều dữ liệu PORT C (PCDDR).
• Thanh ghi dữ liệu PORT C (PCD).
Khi Reset thì tất cả các bits trong hai thanh ghi PCC và PCDDR đều bị xoá về 0,
lúc này PORT C mặc định được dùng cho chế độ vào ra thông thường và cả 9 chân
của PORT C đều là các đầu vào.
1. Thanh ghi điều khiển PORT C (PCC):
Đây là một thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE1. Ta có thể mô tả nó như sau:
23 9 8 7 6 5 4 3 2 1 0
0 0 CC8 CC7 CC6 CC5 CC4 CC3 CC2 CC1 CC0
Khi Reset các bit của thanh ghi này đều bị xoá về 0 và PORT C mặc định là một
cổng vào ra thông thường.
Các bits 9 đến 23 luôn có giá trị là 0.
Bit 3 đến bit 8 dành cho chế độ truyền tin nối tiếp đồng bộ.
Bit 3: SC0 Bit 4: SC1 Bit 5: SC2 Bit 6: SCK Bit 7: SRD Bit 8: STD
Bit 0 đến bit 2 dùng cho chế độ truyền tin nối tiếp (SCI).
Bit 0: RxD Bit 1: TxD Bit 2: SCLK
Nếu các bits từ 0 đến 8 có giá trị là 0 thì PORT C đóng vai trò như một cổng vào ra

thông thường. Còn nếu chúng có giá trị là 1 thì PORT C đóng vai trò là cổng truyền
tin nối tiếp.
2. Thanh ghi định chiều dữ liệu PORT C (PCDDR):
Đây là thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE3. Thanh ghi này được mô tả như
sau:
23 9 8 7 6 5 4 3 2 1 0
0 0 CD8 CD7 CD6 CD5 CD4 CD3 CD2 CD1 CD0
Khi Reset các bit của thanh ghi này cũng bị xoá về 0 do đó PORT C được mặc định
là các đầu vào.
Các bits 9 đến 23 luôn có giá trị là 0.
Các bits 0 đến 8 (CD0 đến CD8) đóng vai trò là các bits định chiều dữ liệu.
Nếu các bits này là 0 thì chiều dữ liệu là vào.
Nếu các bits này là 1 thì chiều dữ liệu là ra.
3. Thanh ghi dữ liệu PORT C (PCD):
Đây cũng là một thanh ghi 24 bits, nó thuộc ô nhớ X:$FFE5. Ta có thể mô tả thanh
ghi này như sau:
23 9 8 7 6 5 4 3 2 1 0
0 . 0 PD8 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
Các bits 9 đến 23 cũng luôn có giá trị là 0.
Các bits 0 đến 8 là các bits số liệu.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
16
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
4. Lập trình cho PORT C:
Dõ dàng để lập trình cho PORT C ta cũng cần phải quan tâm đến các thanh ghi của
nó. Việc đầu tiên khi lập trình là phải thiết lập trạng thái ban đầu cho PORT C, ta có
thể dùng các lệnh MOVEP để thiết lập trạng thái cho PORT C.
Khi truyền dữ liệu giữa PORT C và các thanh ghi thì ta dùng lệnh MOVE.
Chẳng hạn để thiết lập trạng thái ban đầu cho PORT C là cổng vào ra vạn năng
thông thường với các đầu vào PC0 đến PC3 và các đầu ra là PC4 đến PC8 ta chỉ cần

thực hiện hai lệnh:
MOVEP #$0,X:$FFE1
MOVEP #$01F0,X:$FFE3
Cũng giống với PORT B, khi thực hiện truyền dữ liệu ở PORT C ta cũng phải mất 1
thời gian trễ sau khi thực hiện lệnh.
III. PORT C với chức năng truyền tin nối tiếp (SCI):
SCI là một chế độ hoạt động đồng thời hai chiều cho việc truyền tin tới các bộ DSP
khác, các bộ vi xử lý hay tới các thiết bị ngoài như MODEM…
Giao diện trong chế độ này chỉ gồm 3 chân sau:
• Chân truyền tin TxD: Chân này truyền dữ liệu ra bằng cách lấy dữ liệu từ thanh
ghi dịch của SCI và đưa ra ngoài mỗi khi xườn xung ở chân SCKP là mức thấp.
Chân này cũng phải được lập trình trước khi sử dụng.
• Chân nhận tin RxD: Đây là chân nhận dữ liệu từ ngoài vào sau đó đưa tới thanh
ghi dịch của SCI. Dữ liệu sẽ được nhận vào mỗi khi xườn xung ở chân SCKP là
mức cao. Trước khi sử dụng ta cũng phải lập trình cho nã.
• Chân phát nhận xung nhịp SCLK: Đây là chân 2 hướng cung cấp xung Clock, ta
cũng phải lập trình cho chân này.
Chế độ SCI có các đặc điểm sau:
• Truyền tin không đồng bộ với tốc độ 625 Kpbs khi hệ thống làm việc ở tần số 40
MHz.
• Truyền tin đồng bộ với tốc độ 5 Mpbs khi hệ thống làm việc ở tần số 40 MHz.
• Chế độ cho nhiều bộ xử lý:
♦ Với 2 chế độ đánh thức: Đánh thức đường dây rỗi và đánh thức bằng bit địa
chỉ.
♦ Chế độ “Wired-OR”.
• Bộ phát tốc độ/ngắt Timer tích hợp trên chip hoặc ở ngoài.
• Làm việc với 4 mức ưu tiên ngắt.
Khi lập trình trong chế độ này ta cần chú ý đến các thanh ghi sau:
• Thanh ghi điều khiển của SCI (SCR).
• Thanh ghi trạng thái của SCI (SSR).

• Thanh ghi điều khiển xung nhịp của SCI (SCCR).
• Thanh ghi nhận số liệu của SCI (SRX).
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
17
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
• Thanh ghi truyền số liệu của SCI (STX).
• Thanh ghi truyền dữ liệu địa chỉ của SCI (STXA).
1. Thanh ghi điều khiển của SCI (SCR):
Đây là thanh ghi 16 bits thuộc vùng nhớ X:$FFF0.
SCK
P
STIR TMI
E
TIE RIE ILIE TE RE WOMS RWU WAKE SBK SSFTD WDS2 WDS1 WDS0
Khi Reset các bits của thanh ghi này bị xoá hết về 0.
Các bit 0 (WDS0) bit 1 (WDS1) và bit 2 (WSD2): Đây là các bit lựa chọn kiểu dữ
liệu chuẩn:
Bit 3 (SSFTR): Bit này quy định chiều dịch chuyển dữ liệu của SCI.
0: Các bit có trọng số nhỏ nhất được truyền/nhận trước.
1: Các bit có trọng số lớn nhất được truyền/nhận trước.
Bit 4 (SBK): Đây là bit gửi tín hiệu “BREAK”. Nếu nó được kích hoạt sau đó xoá
về 0 thì bộ truyền xẽ hoàn tất việc truyền số liệu, gửi 10 hoặc 11 bits 0 sau đó
quay trở lại truyền số liệu hoặc ở trạng thái nghỉ. Bit này có thể được sử dụng
để đánh dấu 1 điều kiện không bình thường bằng cách xác định lỗi của khung
truyền số liệu do sự đánh mất bit STOP.
Bit 5 (WAKE): Đây là bit dùng để đánh thức hệ thống.
0: Đánh thức đường dây rỗi.
1: Đánh thức bằng bit địa chỉ.
Bit 6 (RWU): Đây là bit đánh thức bộ nhận số liệu. Khi bit này là 1 và SCI đang
hoạt động theo kiểu không đồng bộ thì chức năng đánh thức được cho phép,

tức là tất cả các cửa nhận số liệu đều hoạt động, trừ IDLE và các ngắt là bị
cấm.
Bit 7 (WOMS): Đây là bit lựa chọn chế độ “Wired-OR” . Khi nó là 1, chân TxD
của SCI sẽ được lập trình như 1 đầu ra hoặc có thể kết nối với các chân TxD
khác trong cùng 1 cấu hình BUS thích hợp. Bit này bị xoá khi có Reset.
Bit 8 (RE): Đây là bit cho phép nhận.
1: Cho phép.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
18
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
0: Bá qua.
Bit 9 (TE): Đây là bit cho phép truyền.
1: Cho phép.
0: Bá qua.
Bit 10 (ILIE): Là bit cho phép ngắt đường dây rỗi.
1: Ngắt của SCI sẽ xuÊt hiện nếu IDLE=1.
0: Bá qua các ngắt.
Bit 11 (RIE): Đây là bit cho phép ngắt khi truyền dữ liệu.
1: Nếu cả RDRF=1 thì cho phép ngắt.
0: Các ngắt bị cấm.
Bit 12 (RIE): Đây là bit cho phép ngắt khi nhận dữ liệu.
1: Nếu cả TDRF=1 thì cho phép ngắt.
0: Các ngắt bị cấm.
Bit 13 (TMIE): Bit cho phép ngắt Timer.
1: Cho phép.
0: Bá qua.
Bit 14 (STIR): Là bit quy định mức ngắt của Timer.
Bit 15 (SCKP): Đây là bit quy định xườn tác dụng của xung nhịp.
0: Quy định xườn âm.
1: Quy định xườn dương.

2. Thanh ghi trạng thái của SCI (SSR):
Đây là thanh ghi 8 bits, thuộc địa chỉ X:$FFF1 và ta có thể mô tả nó như sau:
7 6 5 4 3 2 1 0
R8 FE PE OR IDLE RDRE TDRE TRNE
Reset: 0 0 0 0 0 0 1 1
Bit 0 (TRNE): Đây là bit báo nhận trạng thái rỗng của bộ truyền dữ liệu.
Bit này = 1 tức là cả hai thanh ghi dịch truyền và thanh ghi dữ liệu là rỗng.
Bit 1 (TDRE): Báo trạng thái rỗng của thanh ghi truyền số liệu.
Bit 2 (RDRE): Báo trạng thái đầy của thanh ghi nhận số liệu.
Bit 3 (IDLE): Đây là cờ báo đường dây rỗi.
=1: Khi 10 hoặc 11 bit liên tiếp =1 được nhận.
=0: Khi phát hiện 1 bit START.
Bit 4 (OR): Cờ báo lỗi tràn. Nó sẽ dựng khi ký tù trong dòng dữ liệu nhận được có
thể bị mất.
Bit 5 (PE): Cờ kiểm tra lỗi chẵn lẻ.
Bit 6 (FE): Cờ báo lỗi khung số liệu.
Bit 7 (R8): Đây là bit xác định kiểu của số liệu truyền. Bit này thông báo byte số
liệu nhận là địa chỉ hay dữ liệu.
3. Thanh ghi điều khiển xung nhịp của SCI (SCCR):
Đây là thanh ghi 16 bits thuộc vùng địa chỉ X:$FFF2. Nó được mô tả như sau:
15 14 13 12 11 0
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
19
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
TCM RCM SCP COD CD11 CD0
Khi Reset thanh ghi này bị xoá toàn bộ về 0.
Các bit 0 đến 11 (CD0 đến CD11): Là các bit dùng để xác định hệ số chia xung
nhịp. Các bits này được sử dụng để đặt trước 1 bộ đếm 12 bits. Bộ đếm không
thể xâm nhập bởi người sử dụng. Khi bộ đếm =0 thì nó lại được lặp lại bằng
các bit chia xung nhịp.

Bit 12 (COD): Đây là bit điều khiển bộ chia xung nhịp đầu ra. Khi nó bằng 0 và
SCLK là một đầu ra thì xung nhịp của SCI được chia bởi 16 trước khi đưa đến
SCLK. Khi bit này có giá trị là 1 và SCLK là một đầu ra thì xung nhịp của SCI
được đưa thẳng tới chân SCLK của hệ thống.
Bit 13 (SCP): Bit này dùng để lựa chọn trước mức xung nhịp của SCI.
Bit 14 (RCM): Đây là bit xác định nguồn xung nhịp nhận.
Bit này là 0: Tức là xung nhịp cho bộ nhận là xung nhịp bên trong.
Bit này là 1: Tức là xung nhịp cho bộ nhận là xung nhịp bên tngoài và được lấy
vào qua chân SCLK.
Bit 15 (TCM): Là bit xác định nguồn xung nhịp truyền.
0: Nguồn xung nhịp truyền là nguồn bên trong.
1: Nguồn xung nhịp truyền là nguồn bên ngoài.
4. Các thanh ghi dữ liệu:
a. Các thanh ghi nhận dữ liệu:
Các từ dữ liệu thu được trên RxD được dịch tới thanh ghi dịch nhận của SCI.
Khi hoàn thành việc nhận từ dữ liệu được truyền tới SRX. Bộ xử lý sẽ biến đổi
dữ liệu nối tiếp thành dữ liệu song song và đưa vào bộ đệm hai chiều.
Thanh ghi SRX có thể đọc ở 3 địa chỉ : X:$FFF4, X:$FFF5 và X:$FFF6. Khi
đọc ở địa chỉ X:$FFF4, nội dung phần thấp của SRX sẽ được đưa đến BUS dữ
liệu, phần còn lại có giá trị bằng 0. Khi đọc ở địa chỉ X:$FFF5, nội dung phần
giữa của SRX được đưa tới BUS dữ liệu, phần còn lại có giá trị bằng 0. Khi đọc
ở địa chỉ X:$FFF6, nội dung phần cao của SRX được đưa tới BUS dữ liệu, phần
còn lại có giá trị bằng 0. Ta có thể mô tả các điều trên qua sơ đồ sau:
b. Các thanh ghi truyền dữ liệu:
Các thanh ghi này thuộc 4 vùng địa chỉ khác nhau: X:$FFF3 đến X:$FFF6.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
20
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Trong chế độ không đồng bộ, khi dữ liệu được truyền thì 3 vùng địa chỉ được
dùng là X:$FFF4, X:$FFF5 và X:$FFF6 và thanh ghi được gọi là STX. Khi viết

ở địa chỉ X:$FFF4, các byte thấp của BUS dữ liệu sẽ được truyền tới STX. Khi
viết ở địa chỉ X:$FFF5, các byte ở giữa của BUS dữ liệu sẽ được truyền tới
STX. Khi viết ở địa chỉ X:$FFF6, các byte cao của BUS dữ liệu sẽ được truyền
tới STX. Ta mô tả điều đó như sau:
Còn địa chỉ X:$FFF3 sẽ được viết vào 11 bits số liệu không đồng bộ, thường là
số liệu địa chỉ. Khi địa chỉ này được dùng thì thanh ghi được gọi sẽ là STXA và
dữ liệu từ các byte thấp trên BUS dữ liệu được cất vào STXA. Các bits số liệu
địa chỉ sẽ được xoá khi ta viết vào các vùng địa chỉ : X:$FFF4, X:$FFF5, và X:
$FFF6.
Khi cả STX và STXA được viết thì bit TDRE sẽ bị xoá.
IV. PORT C với chế độ truyền tin đồng bộ (SSI):
Chế độ SSI gồm các khâu truyền nhận hoạt động độc lập với nhau và một bộ phát
xung nhịp . Chế độ SSI có các đặc điểm sau:
• Tốc độ 10 Mpbs ở tần số làm việc là 40 MHz.
• Làm việc với bộ đệm hai chiều.
• Có các khâu truyền nhận tách biệt độc lập nhau.
• Có bộ phát xung nhịp.
• Giao diện kết nối với thiết bị ngoài rất rộng: Các thiết bị được kết nối thường là
các CODECS, các bộ biến đổi ADC, DAC, các bộ DSP khác……
• Bao gồm 6 chân:
♦ Chân truyền dữ liệu STD.
♦ Chân nhận dữ liệu SRD.
♦ Chân xung nhịp nối tiếp SCK.
♦ 3 chân điều khiển nối tiếp SC0, SC1 và SC2.
• Có 3 chế độ hoạt động: Normal, On-deman và Network.
1. Các chân số liệu và các chân điều khiển:
Chế độ SSI có 6 chân vào ra và được chia làm 2 nhóm mỗi nhóm 3 chân. Nhóm
chân thứ nhất gồm: chân được sử dụng cho việc truyền số liệu là STD, chân được
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
21

Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
sử dụng cho việc thu số liệu là SRD và chân được sử dụng để phát xung nhịp là
SCK.
Nhóm chân thứ hai là 3 chân còn lại SC0, SC1 và SC2 cũng được sử dụng nhưng
nó phụ thuộc vào chế độ hoạt động được chọn. Sự phụ thuộc này được mô tả như
sau:
Tên chân của
chế độ SSI
(Các bits điều
khiển)
Không đồng bộ Đồng bé
Xung nhịp
tiếp theo
(GCK=0)
Cổng xung
nhịp (GCK=1)
Xung nhịp
tiếp theo
(GCK=0)
Cổng xung
nhịp (GCK=1)
SC0=0 (in)
SC0=1 (out)
(SCD0)
RXC ngoài
RXC trong
RXC ngoài
RXC trong
Đầu vào F0
Đầu ra F0

Đầu vào F0
Đầu ra F0
SC1=0 (in)
SC1=1 (out)
(SCD1)
FSR ngoài
FSR trong
Không dùng
FSR trong
Đầu vào F1
Đầu ra F1
Đầu vào F1
Đầu ra F1
SC2=0 (in)
SC2=1 (out)
(SCD2)
FST ngoài
FST trong
Không dùng
FST trong
FS* ngoài
FS* trong
Không dùng
FS* trong
SCK=0 (in)
SCK=1 (out)
(SCKD)
TXC ngoài
TXC trong
TXC ngoài

TXC trong
*XC ngoài
*XC trong
*XC ngoài
*XC trong
Trong đó:
TXC-Xung nhịp truyền. FSR-Khuôn dạng thu đồng bộ.
RXC-Xung nhịp nhận. FS*-Khuôn dạng truyền nhận.
*XC-Xung nhịp truyền nhận. F0-Cờ 0.
FST-Khuôn dạng truyền đồng bộ. F1-Cờ 1.
Ta có thể lập trình 3 chân này như các chân điều khiển SSI trong thanh ghi PORT
C.
Sau đây ta sẽ đi xét từng chân:
• Chân truyền số liệu nối tiếp STD:
STD được sử dụng cho việc truyền số liệu từ thanh ghi dịch truyền nối tiếp .
STD là một đầu ra khi số liệu đang được truyền. Số liệu này thay đổi trên sườn
dương của xung nhịp, STD sẽ dơi vào trạng thái cao trở trên sườn âm của xung
nhịp tương ứng với số bits số liệu cuối cùng của từ nếu xung nhịp lấy từ bên
ngoài. Với một xung nhịp lấy từ bên trong , chân STD sẽ ở trạng thái cao trở sau
khi số liệu cuối cùng vừa được truyền trong trường hợp không còn từ số liệu nào
tiếp theo ngay sau đó. Nếu có một từ số liệu tiếp theo ngay sau từ số liệu vừa
truyền thì sẽ không có trạng thái tổng trở cao của STD.
• Chân nhận số liệu nối tiếp SRD:
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
22
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
SRD nhận số liệu nối tiếp và truyền số liệu đó tới thanh ghi dịch nhận số liệu.
SRD có thể được lập trình như một chân vào ra vạn năng được gọi là PC7. So
liệu được lấy mẫu trên sườn âm của xung nhịp.
• Chân xung nhịp nối tiếp SCK:

Đây là chân 2 chiều mà cung cấp xung nhịp cho giao diện SSI. SCK là một đầu
vào hay đầu ra xung nhịp được sử dụng bởi cả hai bé trong các chế độ đồng bộ
hoặc chỉ bởi bộ truyền trong các chế độ không.
• Chân điều khiển nối tiếp SC0:
Chức năng của chân này phụ thuộc vào chế độ đồng bộ hay không đồng bộ.
Trong chế độ đồng bộ chân này được sử dụng cho vào ra cờ nối tiếp, còn trong
chế độ không đồng bộ thì chân này sẽ được sử dụng cho việc vào ra xung nhịp
nối tiếp. Hướng của chân này được quyết định bởi bit SCD0 trong thanh ghi điều
khiển CRB.
• Chân điều khiển nối tiếp SC1:
Chức năng của chân này phụ thuộc vào chế độ đồng bộ hay không đồng bộ. Với
chế độ đồng bộ nó cũng được dùng cho việc vào ra cờ nối tiếp. Trong chế độ
không đồng bộ chân này được dùng cho việc đồng bộ hoá bộ nhận. Chiều của nó
được quyết định bởi bit SCD1 trong thanh ghi CRB.
• Chân điều khiển nối tiếp SC2:
Chân này dùng để đồng bộ hoá bộ truyền và bộ nhận. Trong chế độ đồng bộ thì
nó đồng bộ hoá cho cả hai, còn trong chế độ không đồng bộ nó chỉ đồng bộ cho
bộ truyền. Chiều của chân này được quyết định bởi bit SCD2 của thanh ghi
SRB.
2. Các thanh ghi của chế độ SSI:
a. Thanh ghi điều khiển A (CRA):
CRA là một trong hai thanh ghi 16 bits của SSI được dùng để điều khiển hoạt
động của SSI. CRA điều khiển bộ phát xung nhịp, độ dài của từ số liệu, số từ
trong mét khung số liệu nối tiếp của SSI.
Ta có thể mô tả thanh ghi này như sau:
Các bits 0 đến 7 (PM0 đến PM7): dùng để lựa chọn các mức xung nhịp khác
nhau cho SSI.
Các bits 8 đến 12 (DC4 đến DC0): dùng để điều khiển khung số liệu.
Các bits 13 và 14 (WLo và WL1): được dùng để lựa chọn độ dài của một từ
là 8, 12, 16 hay 24 bits/từ.

WL1 WL0 Số bits/từ
0
0
1
1
0
1
0
1
8
12
16
24
Bit 15 (PSR): dùng để điều khiển một bộ chia tần số.
0: chia cho 1.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
23
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
1: chia cho 8.
b. Thanh ghi điều khiển B (CRB):
Thanh ghi CRB điều khiển các chân chức năng SC0, SC1 và SC2 của SSI, làm
cho các chân này có thể được sử dụng như các đầu vào hay đầu ra xung nhịp,
như các chân đồng bộ hoá khung số liệu hoặc như các chân cờ vào ra nối tiếp.
Bit 0 (OF0): là chân cờ ở đầu ra nối tiếp. Khi SSI đang ở kiểu đồng bộ và nhận
chân SC0 là một đầu ra thì số liệu hiện tại ở trong bit OF0 sẽ được viết tới SC0
tại chỗ bắt đầu của khung số liệu.
Bit 1 (OF1): là cờ đầu ra nối tiếp 1. Khi SSI đang ở kiểu đồng bộ và nhận chân
SC1 là một đầu ra thì số liệu hiện tại ở trong bit OF1 sẽ được viết tới SC1 tại
chỗ bắt đầu của khung số liệu.
Bit 2 (SCD0): đây là bit điều khển hướng nối tiếp cho SC0.

0: SC0là vào.
1: SC0 là ra.
Bit 3 (SCD1): đây là bit điều khển hướng nối tiếp cho SC1.
0: SC1là vào.
1: SC1 là ra.
Bit 4 (SCD2): đây là bit điều khển hướng nối tiếp cho SC2.
0: SC2là vào.
1: SC2 là ra.
Bit 5 (SCKD): đây là bit điều khiển hướng của xung nhịp.
Bit 6 (SHFD): đây là bit điều khiển hướng dịch chuyển trong thanh ghi dịch.
0: MSB trước.
1: LSB trước.
Bit 7 và 8 (FSL0 và FSL1): được dùng để lựa chọn các kiểu đồng bộ hoá
khung số liệu được phát đi hay được nhận về.
FSL1 FSL0 Độ dài xung nhịp đồng bộ hoá
0 0 Bằng độ dài của từ số liệu cho cả truyền và nhận
0 1 Bằng độ dài của một bit cho việc truyền và bằng độ dài của
một từ cho việc nhận
1 0 Bằng độ dài của một bit cho cả truyền và nhận
1 1 Bằng độ dài của một bit cho việc nhận và bằng độ dài của
một từ cho việc truyền
Bit 9 (SYN): đây là bit điều khiển các chức năng truyền và nhận của SSI để
làm cho chúng đồng bộ hay không đồng bộ với nhau.
Bit 10 (GCK): đây là bit dùng để lựa chọn xung nhịp kiểu liên tục hay xung
nhịp chỉ có khi có số liệu được gửi vào trong thanh ghi dịch truyền.
Bit 11 (MOD): được sử dụng để lựa chọn kiểu hoạt động của SSI.
0: Normal
1: Network.
Bit 12 (TE): bit cho phép truyền số liệu.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội

24
Nghiên cứu phần cứng DSP56002 - Ứng dụng thiết kế bộ lọc số - Lọc số thông một dải
Bit 13 (RE): bit cho phép việc nhận số liệu.
Bit 14 (TIE): bit cho phép ngắt khi truyền số liệu.
Bit 15 (RIE): bit cho phép ngắt khi nhận số liệu.
c. Thanh ghi trạng thái của SSI (SSISR):
Đây là thanh ghi 8 bits chỉ đọc được dùng để thăm dò trạng thái và các cờ của
DSP56002 ở chế độ SSI.
Bit 0 (IF0): Đây là bit cờ đầu vào nối tiếp 0. Bit này chỉ có tác dụng khi SCD0 bị
xoá và SYN là 1.
Bit 1 (IF1): Đây cũng là một bit cờ đầu vào nối tiếp 1. Nó có tác dụng khi SCD1 bị
xoá và YSN là 1.
Bit 2 (TFS): Là một bit cờ báo việc đồng bộ hoá khung số liệu truyền đi.
Bit 3 (RFS): Là một bit cờ báo việc đồng bộ hoá khung số liệu nhận về.
Bit 4 (TUE): Bit này là bit cờ báo lỗi tràn dưới bộ truyền. TUE =1 đồng nghĩa với
việc thanh ghi dịch truyền nối tiếp là rỗng.
Bit 5 (RDE): Bit này là bit cờ báo lỗi tràn trên bộ nhận. Bit này bằng 1 khi thanh
ghi dịch nhận đã đầy.
Bit 6 (TDE): Bit này có tác dụng thông báo thanh ghi số liệu truyền của SSI là
trống rỗng. Bit này dựng khi nội dung của thanh ghi số liệu truyền đã được truyền
đi.
Bit 7 (RFD): Bit này thông báo trạng thái đầy của thanh ghi số liệu nhận.
d. Thanh ghi dịch nhận của chế độ SSI :
Đây là thanh ghi 24 bits, thanh ghi này nhận số liệu từ chân RxD. Số liệu được dịch
vào theo hướng các bits có trọng số lớn nhất trước nếu SHFD=0 và theo hướng các
bits có trọng số nhỏ trước nếu bit SHFD=1. Độ dài khung số liệu phụ thuộc vào các
bits điều khiển độ dài từ trong thanh ghi CRA.
e. Thanh ghi số liệu nhận của SSI (RX):
RX là một thanh ghi 24 bits chỉ đọc, nó nhận số liệu từ thanh ghi dịch nhận, DSP sẽ
bị ngắt bất cứ khi nào RD đầy nếu các ngắt tương ứng được cho phép.

f. Thanh ghi dịch truyền của SSI:
Thanh ghi dịch truyền của SSI là một thanh ghi 24 bits dùng để chứa số liệu đang
được truyền đi. Số liệu được dịch ra ngoài tới chân truyền số liệu nối tiếp. Số liệu
các bits được dịch ra ngoài có thể là 8, 12, 16 hoặc 24 bits. Số liệu được dịch vào
theo hướng các bits có trọng số lớn nhất trước nếu SHFD=0 và theo hướng các bits
có trọng số nhỏ trước nếu bit SHFD=1.
g. Thanh ghi số liệu truyền của SSI (TX):
TX là một thanh ghi 24 bits chỉ viết. Khi cần truyền số liệu thì người lập trình viết
số liệu vào trong thanh ghi này sau đó số liệu tự động được nạp vào thanh ghi sịch
truyền. DSP bị ngắt bất cứ khi nào thanh ghi TX trống rỗng nếu như ngắt tương ứng
được cho phép.
SV : Nguyễn Xuân Thành - Đo lường Tin Học Công Nghiệp 1 - K42 - ĐHBK Hà Nội
25

×