Xây dựng bộ điều khiển và nhận dạng tiếng nói bằng sử lý tín hiệu số DSP 56002
Trang 1MÔ TẢ CHỨC NĂNG DSP56002
Chương này đề cập đến các chế độ định địa chỉ và cấu trúc bộ xử lí DSP56002 Cấu trúc bộ vi xử lí DSP56002 gồm ba đơn vị thực thi trung tâm: đơn vị thực thi dữ liệu số học logic (ALU), đơn vị điều khiển chương trình, đơn vị cấp phát địa chỉ Ba chế độ định địa chỉ của bộ xử lí DSP56002: thanh ghi trực tiếp, đặc biệt, và thanh ghi gián tiếp Đồng thời, trong chương này còn mô tả các mã lệnh để điều khiển chọn chế độ hoạt động cho các Port của DSP và các thanh ghi trong của DSP56002
A CẤU TRÚC CỦA DSP56002
I ĐƠN VỊ XỬ LÍ TRUNG TÂM(CPU)
1 Các tuyến:
Cấu trúc nội đa tuyến của bộ xử lí DSP56002 gồm 4 tuyến dữ liệu 2 chiều 24-bit, hai tuyến địa chỉ một hướng 16-bit và một tuyến địa chỉ hai hướng 16-bit.
a./ Tuyến dữ liệu:
Các tuyến dữ liệu bao gồm: XDB , YDB , PDB , GDB Trong đó XDB và YDB truyền dữ liệu giữa ALU dữ liệu với bộ nhớ X hoặc Y tương ứng Một số lệnh của XDB và YDB có thể kết nối với nhau tạo thành tuyến 48-bit PDB thì truyền từ các lệnh còn GDB thì đảm trách các dữ liệu khác như truyền các dữ liệu xuất nhập (I/O) đến và từ các thiết bị ngoại vi.
b./ Các tuyến địa chỉ:
Các tuyến địa chỉ bao gồm: XAB, YAB và PAB XAB và YAB cung cấp địa chỉ dữ liệu trỏ đến vị trí xác định trong bộ nhớ dữ liệu nội X,Y tương ứng PAB cung cấp địa chỉ dữ liệu trỏ đến vị trí bộ nhớ xác định trong bộ nhớ chương trình nội Các khoảng bộ nhớ ngoài được định địa chỉ một chiều 16-bit
Trang 2được lái bởi một bộ dồn kênh ba ngỏ nhập để có thể chọn XAB, YAB hoặc PAB.
2 Các đơn vị thực thi:
DSP56002 gồm ba đơn vị thực thi ALU dữ liệu, PCU và AGU.
3 Cổng mở rộng bộ nhớ: (cổng A )
Cổng mở rộng bộ nhớ bao gồm một tuyến địa chỉ 16-bit, một tuyến dữ liệu hai chiều 24-bit và các tín hiệu điều khiển Nó được dùng để giao tiếp với bộ xử lí DSP56002 để mở rộng bộ nhớ hay thiết bị ngoại vi Những thiết bị ngoại vi này gồm RAM tĩnh tốc độ cao, thiết bị bộ nhớ thấp hơn, DSP khác và MPU khác trong cấu hình chủ/tớ.
4 OnCE:
Nó cho phép người sử dụng tạo ảnh hưởng qua lại giữa CPU của DSP56002 và các ngoại vi khác để kiểm tra các thanh ghi, bộ nhớ hay các ngoại vi trên chip Nó cung cấp sự truy xuất đơn giản, ít tiêu phí và tốc độ độc lập đối với các thanh ghi nội cho việc phát triển hệ thống sửa lỗi và có tính kinh tế cao.
5 Vòng giữ pha (PLL) dựa trên xung clock:
Vòng giữ pha cho phép DSP56002 sử dụng nguồn xung clock ngoại đối với việc xử lí nhiều tốc độ cũng như cung cấp xung clock đồng bộ hoá xung clock nội PLL thực hiện việc nhân tần số, loại bỏ tính bất đối xứng và chia nhỏ công suất.
II VÙNG MỞ RỘNG 1 Các bộ nhớ nội:
Bộ xử lí DSP56002 có 6 bộ nhớ on-chip: RAM dữ liệu X, ROM dữ liệu X, RAM dữ liệu Y, ROM dữ liệu Y, RAM bộ nhớ chương trình và ROM bootstrap(tự khởi động) RAM dữ liệu X và Y là hai bộ nhớ nội 24-bit chiếm giữ 256 ô nhớ vị trí thấp nhất của khoảng địa chỉ X và Y tương ứng ROM dữ liệu X và Y là hai bộ nhớ nội 24-bit cho phép bởi OMR, chiếm giữ 256 vị trí ô nhớ thấp kế tiếp của khoảng địa chỉ bộ nhớ RAM chương trình P chứa các câu lệnh, hằng số và các bảng dữ liệu được cố định tại thời gian biên dịch Các vị trí ô nhớ không sử dụng có thể dùng lưu trữ dữ liệu tạm thời ROM bootstrap là một ROM có 64 ô nhớ lập trình trên 24-bit sử dụng chế độ bootstrap Ngoài ra còn có thể lập trình để thực hiện phép bootstrap từ cổng mở rộng bộ nhớ, từ giao tiếp chủ hay từ giao tiếp bất đồng bộ nối tiếp (SCI).
2 Các ngoại vi on-chip:
Các ngoại vi của DSP56002 bao gồm: một giao tiếp chủ song song bằng phương pháp DMA, một port giao tiếp nối tiếp đồng bộ (SSI), một port giao tiếp nối tiếp bất đồng bộ (SCI), và một port xuất /nhập lập trình được
3 Bộ định thời / Đếm sự kiện:
Trang 3Bộ định thời có thể sử dụng nguồn xung clock nội hay ngoại, và có thể ngắt bộ xử lí sau một số sự kiện (xung clock) được tác động bởi người lập trình, hay nó có thể phát tín hiệu đến thiết bị ngoại vi sau khi đếm xong số sự kiện bên trong.
B ĐƠN VỊ THỰC THI ALU DỮ LIỆU:
Đơn vị thực thi ALU dữ liệu thực hiện các phép toán số học và logic trên các toán hạng dữ liệu Các thành phần quan trọng của ALU dữ liệu bao gồm các thanh ghi dữ liệu, một đơn vị nhân tích luỹ / logic song song(MAC ), một bộ dịch thanh ghi tích lũy, một đơn vị thao tác bit và hai bộ dịch / giới hạn.
BIỂU ĐỒ KHỐI ALU DỮ LIỆU
Bộ Dịch
Tuyến dữ liệu XTuyến dữ liệu Y
Dồn kênhThanh ghi tích lũyLàm tròn và đơn vị
Bộ Dịch/Giới Hạn
5656
Trang 4I THANH GHI DỮ LIỆU:
1./Thanh ghi dữ liệu nhập: X1,X0,Y1,Y0
ALU dữ liệu có bốn thanh ghi dữ liệu nhập có thể được xử lí như là bốn thanh ghi 24 bit độc lập X1, X0 , Y1 và Y0 hay kết hợp thành hai thanh ghi 48 bit X và Y được phát triển bằng cách kết nối X1:X0, Y1:Y0 tương ứng X Y
23 0 23 0 23 0 23 0
2./ Thanh ghi dữ liệu tích lũy : A2 , A1 , A0 , B2 , B1 , B0
Sáu thanh ghi dữ liệu tích lũy A2, A1, A0, B2, B1, B0 hình thành nên hai thanh ghi tích lũy 56 bit tạm thời A (A2 : A1: A0) và B (B2 : B1: B0 ) Các thanh ghi A1, A0 và B1, B0 là các thanh ghi 24 bit, còn thanh ghi A2, B2 là thanh ghi 8 bit Hai thanh ghi này còn gọi là thanh ghi mở rộng.
II ĐƠN VỊ MAC VÀ LOGIC:
Đơn vị MAC và LOGIC thực hiện tất cả các phép tính toán toán hạng của bộ xử lí DSP56002 như cộng, trừ, AND, OR, XOR và NOT Nó cho phép ba toán hạng nhập và cho kết quả 56 bit được chứa trong thanh ghi tích lũy A và B.
1 Biểu diễn dữ liệu phân số bù 2:
Đơn vị MAC và logic sử dụng dữ liệu phân số bù 2 trong thuật giải của DSP56002, trong đó phân số là một số bất kì mà độ lớn của nó phải lớn hơn hay bằng 0 và nhỏ hơn 1.
2 Sự làm tròn:
Đơn vị MAC và LOGIC có thể làm tròn hội tụ phần thấp nhất của thanh ghi tích lũy A0 và B0 vào phần cao nhất A1 và B1.
III BỘ DỊCH TÍCH LŨY:
Bộ dịch tích lũy nhận ngõ nhập 56 bit và xuất kết quả 56 bit Bộ dịch tích lũy có thể dịch toán hạng dữ liệu sang trái một bit, sang phải một bit hay không dịch gì cả
IV BỘ DỊCH/GIỚI HẠN DỮ LIỆU:
Trang 5Bộ dịch/giới hạn dữ liệu cung cấp chế độ hậu xử lí đặc biệt trên dữ liệu truyền từ thanh ghi tích lũy đến YDB hay XDB Mỗi bộ dịch/giới hạn bao gồm một bộ dịch được cho phép bởi một bộ giới hạn.
1 Bộ dịch dữ liệu:
Mỗi bộ dịch dữ liệu có khả năng dịch một toán hạng dữ liệu sang trái, sang phải một bit hay cho dữ liệu đi qua mà không dịch gì cả Ngõ ra của bộ dịch dữ liệu chạy qua bộ giới hạn dữ liệu tương ứng, trong đó bộ giới hạn dữ liệu có ngõ ra 24 bit và một ngõ tràn Các bộ dịch được điều khiển bởi các bit ở chế độ chia tỉ lệ (Scaling mode) S1 và S0 ở thanh ghi trạng thái (SR), với S1, S0 lần lượt là bit thứ 11 và thứ 10 S1 và S0 cho phép sự chia tỉ lệ động của dữ liệu cố định được trỏ mà không cần phải thay đổi lệnh của chương trình.
1 0 Chia lên (dịch sang trái một 1 bit)
2 Bộ giới hạn:
Mỗi bộ giới hạn dữ liệu có khả năng tự thực hiện, nếu cần giải thuật bão hòa trên các toán hạng dữ liệu được truyền từ các thanh ghi tích lũy đến XDB và YDB Nếu nội dung thanh ghi tích lũy nguồn có thể được hiển thị trong kích thước của toán hạng đích mà không tràn thì bộ giới hạn bị cấm và toán hạng không thay đổi Còn ngược lại thì bộ giới hạn sẽ thay thế một giá trị dữ liệu đã tới hạn có độ lớn cực đại và có dấu giống như dấu của thanh ghi tích lũy nguồn Phép giới hạn được thực hiện trên ngỏ xuất của bộ dữ liệu tương ứng Giá trị của thanh ghi tích lũy nguồn không thay đổi.
Với hai bộ dịch/giới hạn dữ liệu có thể kết hợp lại với nhau để hình thành một giới hạn 48 bit dành cho các toán hạng từ dài(long word).
BẢNG GIÁ TRỊ DỮ LIỆU ĐƯỢC GIỚI HẠN
Bộ nhớ tham chiếu
Toán hạng nguồn
X : B
Một từ 24 bit
X : A Y : BX : B Y : A X : B Y : B
Hai từ 24 bit
Trang 6L : ABL : BA
L : B
Một từ dài 48 bit
V ĐƠN VỊ THAO TÁC TRÊN BIT:
Đơn vị thao tác trên bit thực hiện các phép toán bit trên toán hạng của bộ nhớ X hay Y
C BỘ ĐIỀU KHIỂN CHƯƠNG TRÌNH:
Bộ điều khiển chương trình là một đơn vị thực thi độc lập cung cấp lưu đồ điều khiển chương trình chuẩn mực như là bộ đếm chương trình, thanh ghi trạng thái và hệ thống stack Nó còn bao gồm cả OMR , LA và LC sẵn sàng để cung cấp cho lệnh vòng lặp DO, phần cứng của bộ xử lí DSP56002.
• Thanh ghi bộ đếm chương trình (PC):
Là thanh ghi 16 bit trỏ vị trí bộ nhớ chương trình P của từ lệnh, toán hạng dữ liệu tức thời, toán hạng địa chỉ tức thời kế tiếp.
• Thanh ghi trạng thái (SR):
Là thanh ghi 16 bit bao gồm 1 thanh ghi chế độ 8 bit (MR), chiếm 8 bit cao của SR, và thanh ghi mã điều kiện (CCR) chiếm 8 bit thấp của SR MR chứa thông tin về trạng thái hệ thống của DSP56002 CCR định nghĩa chế độ hiện hành.
• Hệ thống Stack (SS):
Là bộ nhớ nội 32*15 tách biệt chứa bộ đếm chương trình (PC ) và thanh ghi trạng thái (SR) cho phép gọi chương trình con, các ngắt dài và chương trình vòng lặp Ngoài ra còn có thể chứa LA và LC.
• Bộ đếm vòng lặp (LC):
Là thanh ghi 16 bit xác định tần số lặp của lệnh DO hay lệnh REP.
• Địa chỉ vòng lặp (LA):
Là thanh ghi 16 bit trỏ đến vị trí cuối của từ lệnh trong vòng lặp DO.
• Thanh ghi chế độ xử lí (OMR) :
Là thanh ghi 24 bit định nghĩa chế độ xử lí hiện hành của bộ xử lí DSP56002 Chỉ có 6 bit của OMR được định nghĩa Nó định nghĩa sự khác nhau của các bộ nhớ, và định nghĩa thủ tục khởi động.
Trang 7E : extensionL : limit S : scaling
I1 , I0 : interrupt mask ; mặt nạ ngắt * : reserved
T : trace mode
DM : double precision multibly mode
LF : loop flag ; cờ vòng lặp
BẢNG CÁC BIT CHẾ ĐỘ BỘ NHỚ
0 0 Cấm các ROM nội và các địa chỉ của chúng trong phần bộ nhớ ngoài.
0 1 Cấm ROM dữ liệu X nội và bộ nhớ ngoài Cấm ROM và RAM dữ liệu Y nội và bộ nhớ ngoài
1531 16 15 0
(SSH) (SSL)LowHỆ THỐNG STACK (SS)
CON TRỎ STACK
Trang 81 0 Cho phép ROM dữ liệu X và Y.
1 1 Cấm ROM và RAM dữ liệu nội và bộ nhớ ngoài Cho phép ROM dữ liệu X.
BẢNG TÓM TẮT CÁC CHẾ ĐỘ XỬ LÍ CỦA DSP56002
D ĐƠN VỊ CẤP PHÁT ĐỊA CHỈ:
Đơn vị cấp phát địa chỉ là một đơn vị thực thi độc lập phát ra các địa chỉ trỏ đến các toán hạng dữ liệu trên bộ nhớ X, Y hay P Nó cung cấp 14 chế độ định địa chỉ và sử dụng ba loại cấp phát địa chỉ số học Các thành phần chính: 24 thanh ghi địa chỉ 16 bit, 2 ALU địa chỉ và ba bộ dồn kênh địa chỉ xuất.
Các thanh ghi địa chỉ : 24 thanh ghi địa chỉ được chia thành ba tập hợp 8
thanh ghi:Chế độ
phép, reset tại $0000.
cho phép, reset tại $E000.
tại $0000.
thoát chế độ 0.
Trang 9 Thanh ghi địa chỉ: Rn , n = 0,1, ,7 Thanh ghi offset: Nn , n = 0,1, ,7 Thanh ghi sửa đổi: Mn , n = 0,1, , 7
Mỗi thanh ghi địa chỉ Rn có một thanh ghi offset Nn và thanh ghi sửa đổi tương ứng, cả ba đều có chung số n Thanh ghi địa chỉ Rn được dùng như địa chỉ con trỏ để định vị toán hạng dữ liệu trong bộ nhớ Thanh ghi offset được dùng để cung cấp một giá trị offset cho thanh ghi cập nhật vị trí offset Thanh ghi sửa đổi Mn lựa chọn địa chỉ số học để được thực hiện khi thanh ghi địa chỉ được cập nhật.
ALU địa chỉ:
Hai ALU địa chỉ thực hiện địa chỉ số học bởi các chế định địa chỉ của bộ xử lí DSP56002 và các địa chỉ thay đổi Đơn vị địa chỉ số học sử dụng ba loại địa chỉ số học: tuyến tính, modulo và đảo cờ nhớ Các thanh ghi sửa đổi định nghĩa loại địa chỉ số học được thực hiện Địa chỉ tuyến tính được sử dụng cho định địa chỉ loại MPU chuẩn Địa chỉ modulo được dùng cho các bộ đệm vòng Đảo cờ nhớ được dùng trong thuật giải FFT.
BẢNG TÓM TẮT MÃ LOẠI ĐỊA CHỈ SỬA ĐỔI
Địa chỉ sửa đổi Loại địa chỉ số học
0000 Đảo cờ nhớ (đảo bit)
::
Trang 10E CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ:
Các lệnh của bộ xử lí DSP56002 bao gồm một hay nhiều từ lệnh 24 bit: từ toán hạng và từ mở rộng Từ toán hạng chứa một vùng mã lệnh 8 bit và một vùng dữ liệu 16 bit Vùng mã lệnh bao gồm mã lệnh với các toán hạng thanh ghi nguồn và đích của nó Vùng truyền dữ liệu cung cấp hướng truyền và địa chỉ tác động đối với dữ liệu truyền trên XDB và YDB Địa chỉ tác động sẽ xác định một thanh ghi địa chỉ Rn.
Các chế độ định địa chỉ xác định các toán hạng là thanh ghi hay vị trí bộ nhớ và cung cấp một địa chỉ xác định toán hạng Các chế độ định địa chỉ có thể được phân nhóm thành ba loại: Thanh ghi trực tiếp, đặc biệt và thanh ghi gián tiếp Trường hợp định địa chỉ gián tiếp phải có thêm thông tin về địa chỉ thay đổi (bổ sung) được xác định trong thanh ghi sửa đổi Các thanh ghi gián tiếp hay trực tiếp có các chế độ định địa chỉ tương thích với lệnh từ đơn Còn các địa chỉ đặc biệt thì tương thích với lệnh một từ hay hai từ.
I Các chế độ định địa chỉ trực tiếp thanh ghi:
Các chế độ định địa chỉ trực tiếp thanh ghi toán hạng là một thanh ghi dữ liệu nhập, thanh ghi địa chỉ hay thanh ghi điều khiển.
II Các chế độ định địa chỉ đặc biệt: 1./ Chế độ định địa chỉ dữ liệu tức thời:
Trỏ đến toán hạng 24 bit định vị trong từ mở rộng của lệnh Ví dụ : MOVE #$818181,A0 ; A = $00 000000 818181 MOVE #$818181,A ; A = $FF 818181 000000 MOVE #$121212,B ; B = $00 121212 000000
Trang 112./ Chế độ định địa chỉ ngắn tức thời:
Trỏ đến toán hạng dữ liệu tức thời 8 bit hoặc 12 bit định vị trong từ lệnh của lệnh Dữ liệu tức thời được truyền tới bit có trọng số thấp nhất của đích đến với bit trọng số thấp cho bằng zero.
Ví dụ: MOVE #$81, A1 ; A = $00 000081 000000 MOVE #$12, A ; A = $00 120000 000000 MOVE #$81, B ; B = $FF 810000 000000
3./ Chế độ định địa chỉ tuyệt đối:
Sử dụng địa chỉ toán hạng 16 bit định vị trong lệnh từ mở rộng như là một con trỏ trỏ đến vị trí của toán hạng dữ liệu
Ví dụ: MOVE X:$2000,A0 4./ Chế độ định địa chỉ ngắn tuyệt đối:
Sử dụng địa chỉ toán hạng tức thời 6 bit, định vị trong lệnh thao tác từ, để thiết lập con trỏ 16 bit trỏ đến dữ liệu toán hạng Toán hạng địa chỉ tức thời 6-bit thêm các bit mở rộng có giá trị là zero để hình thành con trỏ 16-bit Ví dụ: MOVE A1,X:$2
5/ Chế độ định địa chỉ xuất/ nhập ngắn:
Tương tự như chế độ định địa chỉ ngắn tuyệt đối Nó sử dụng địa chỉ toán hạng 6 bit được định vị trong từ lệnh xử lí, hình thành con trỏ 16 bit cho đoạn Nhập/Xuất ( $ FFCO - $FFFF ) của bộ nhớ X hoặc Y Nó sử dụng các lệnh về thao tác bit và truyền dữ liệu ngoại vi.
Ví dụ: MOVEP A1,X:$FFFE
6/ Chế độ định địa chỉ nhảy ngắn:
Sử dụng toán hạng nhảy tức thời 12 bit được định vị trong từ lệnh mở rộng để thiết lập toán hạng “nhảy 16 bit” Toán hạng nhảy 12 bit được thêm phần mở rộng là zero thành toán hạng 16 bit và thay thế nội dung của thanh ghi bộ đếm chương trình ( PC ).
Ví dụ: JMP $222 ; vị trí bộ nhớ P:$0222
7/ Chế độ định địa chỉ ngầm định:
Được sử dụng bởi một số lệnh để tham chiếu ngầm các thanh ghi bộ điều khiển chương trình Thanh ghi điều khiển chương trình được ngầm định trong mã nguồn và mã lệnh của lệnh.
III CÁC CHẾ ĐỘ ĐỊNH ĐỊA CHỈ THANH GHI GIÁN TIẾP:
Trong chế độ định địa chỉ thanh ghi gián tiếp , từ lệnh xác định một thanh ghi Rn để trỏ đến toán hạng được định vị trong bộ nhớ Từ lệnh xử lý còn có thể xác định một địa chỉ toán hạng thực hiện với cả phép thực thi lệnh trước hay sau Ví dụ: tăng sau bởi một, giảm sau một đơn vị offset.
Mỗi địa chỉ thanh ghi Rn thì tương ứng với một thanh ghi offset Nn và thanh ghi sửa đổi Mn Nn chứa một giá trị offset mà có thể được cộng với Rn
Trang 12để cập nhật nội dung của nó Mn xác định loại địa chỉ số học được thực hiện khi Rn được cập nhật Mỗi Mn thì được đặt $FFFF khi reset bộ xử lí để xác định loại địa chỉ số học tuyến tính như là địa chỉ mặc định.
1./ Chế độ định địa chỉ thanh ghi gián tiếp địa chỉ không cập nhật:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ Sau khi địa chỉ toán hạng được sử dụng nội dung của thanh ghi địa chỉ Rn không thay đổi.
Ví dụ: MOVE B1,Y:(R0)
2./ Chế độ định địa chỉ thanh ghi gián tiếp tăng sau một:
Trong chế độ địa chỉ thanh gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ Sau khi toán hạng địa chỉ được sử dụng, nội dung của thanh ghi địa chỉ Rn được tăng một và kết quả được lưu vào Rn.
Ví dụ: MOVE B0,Y(R1)+
3./Chế độ địa chỉ thanh ghi gián tiếp giảm sau một:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ Sau khi địa chỉ toán hạng được sử dụng, nội dung của thanh ghi địa chỉ Rn giảm một và được chứa trong Rn.
Ví dụ: MOVE
Y0,X:(R2)-4./Chế độ định địa chỉ thanh ghi gián tiếp tăng sau Nn offset:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ Sau khi địa chỉ toán hạng được sử dụng, Rn được cập nhật bởi sự cộng thêm offset chứa trong thanh ghi offset Nn lưu vào nội dung của Rn Nội dung của thanh ghi offset Nn không thay đổi.
Ví dụ : MOVE X0,Y:(R3)+N3
5/ Chế độ định địa chỉ thanh ghi gián tiếp giảm sau Nn offset:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ Sau khi địa chỉ toán hạng được sử dụng, Rn được cập nhật bởi sự trừ đi offset chứa trong thanh ghi offset Nn lưu vào nội dung của Rn Nội dung của thanh ghi offset Nn không thay đổi
Ví dụ : MOVE Y:(R4)-N4,A0
6/ Chế độ định địa chỉ thanh ghi gián tiếp chỉ số bởi offset Nn:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn được cộng với thanh ghi offset Nn để thành một con trỏ trỏ đến toán hạng trong bộ nhớ Nội dung của thanh ghi Rn và Nn không thay đổi.
Ví dụ: MOVE X1,Y:(R5+N5)
7/ Chế độ định địa chỉ thanh ghi gián tiếp giảm trước một:
Trong chế độ định địa chỉ thanh ghi gián tiếp, thanh ghi địa chỉ Rn chỉ đến toán hạng trong bộ nhớ, nhưng Rn được giảm một trước khi toán hạng được xử lí.
Ví dụ : MOVE X:-(R6),A1
Trang 13F PORT A CỦA DSP56002
I Giới thiệu:
Cổng A cung cấp một sự giao tiếp linh hoạt với bộ nhớ ngoài, cho phép kết nối một cách tinh tế với các bộ nhớ, thiết bị nhanh, thiết bị chậm và các hệ thống nhiều chủ bus.
Cổng A có hai đặc trưng giảm công suất Nó có thể truy xuất các không gian bộ nhớ bên trong Nếu các điều kiện cho phép bộ xử lý hoạt động tại một tốc độ bộ nhớ thấp, các trạng thái chờ có thể được thêm vào truy xuất bộ nhớ ngoài để giảm năng lượng một cách có ý nghĩa khi bộ xử lý truy xuất các bộ nhớ này.
II Giao tiếp cổng A:
Bộ xử lý DSP56002 có thể truy xuất một hoặc nhiều nguồn bộ nhớ của nó (bộ nhớ xử lý X,Y và bộ nhớ chương trình P) khi nó thực hiện một lệnh Các nguồn bộ nhớ có thể ở bên trong hay ngoài đối với DSP56002
Bus địa chỉ 16 bit trong
Chọn busđịachỉ ngoàiXA
Chọnbusdữliệu ngoài YD
PDGDBus dữ liệu 24bit bên trong
Logic điều khiển busngoài
Bus địa chỉ ngoài A0 –A15
Bus dữ liệu ngoàiD0 –D15Tín hiệu điều
khiển Bus
Trang 14PORT A CỦA DSP56002
1.Bus dữ liệu &bus địa chỉ cổng A:
Các tín hiệu bus dữ liệu và địa chỉ cổng A điều khiển việc truy xuất bộ
nhớ ngoài Chúng là ba trạng thái trong suốt thời gian Reset trừ khi có ghi chú ngược lại, và có thể yêu cầu các điện trở kéo lên để tối thiểu hóa tiêu tán năng lượng và ngăn chặn hoạt động lỗi.
1.1 Bus địa chỉ (A0 –A15):
Các đầu ra ba trạng thái này xác định địa chỉ cho truy xuất bộ nhớ chương trình và dữ liệu ngoài Để tối thiểu hóa năng lượng vô ích, A0 – A15 không chuyển trạng thái khi các bộ nhớ ngoài không được truy xuất.
1.2 Bus dữ liệu (D0 – D23):
Các chân này cung cấp dữ liệu hai hướng cho các truy xuất bộ nhớ dữ liệu và chương trình ngoài D0 – D23 ở trạng thái tổng trở cao khi tín hiệu cấp bus được khẳng định.
2 Điều khiển bus cổng A:
Các tín hiệu điều khiển bus cổng A cung cấp một phương tiện để kết nối với các chủ bus phụ (có thể là DSP56002 phụ, các bộ xử lí, các bộ điều khiển truy xuất bộ nhớ trực tiếp P, …) thông qua cổng A đến DSP56002 Chúng là ba trạng thái trong suốt thời gian reset và có thể yêu cầu các điện trở kéo lên nhằm ngăn chặn hoạt động lỗi.
2.1 Chọn bộ nhớ chương trình (PS):
Đầu ra ba trạng thái này chỉ được khẳng định khi bộ nhớ chương trình ngoài được tham khảo.
2.2 Chọn bộ nhớ dữ liệu (DS):
Trang 15Đầu ra ba trạng thái này chỉ được công bố khi bộ nhớ dữ liệu ngoài được tham khảo.
2.3 Chọn X/Y:
Đầu ra ba trạng thái này chọn không gian bộ nhớ được tham khảo(X hay Y)
2.4 Cho phép đọc (RD):
Đầu ra ba trạng thái này được tác động để đọc bộ nhớ ngoài trên bus
dữ liệu (D0 – D23).
2.5 Cho phép ghi(WR):
Đầu ra ba trạng thái được tác động để ghi bộ nhớ ngoài trên bus dữ
liệu (D0 – D23).
2.6 Cần bus(BN):
Chân ra BN được tác động bất cứ lúc nào Chip yêu cầu bus mở rộng
bộ nhớ ngoài ( cổngA ).
2.7 Yêu cầu bus (BR):
Khi đầu vào yêu cầu bus được tác động, DSP56002 sẽ luôn luôn nhường bus cho một thiết bị ngoài như một bộ xử lí hay điều khiển DMA.
2.8 Cấp bus (BG):
Khi đầu ra này được tác động, nó báo cho biết bị ngoại vi là đã cấp bus ngoài.
2.9 Hoạt nghiệm bus (BS) :
Đầu ra được khẳng định khi DSP56002 truy xuất cổng A Nó hoạt động như sự chỉ báo sớm trạng thái truy xuất bus ngoài bằng DSP56002.
2.10 Chờ bus(WT):
Trong suốt thời gian tín hiệu này được tác động bởi một thiết bị ngoài, đầu vào này cho phép thiết bị ngoài buộc DSP56002 cung cấp các trạng thái chờ.BẢNG GIẢI MÃ LỰA CHỌN BỘ NHỚ DỮ LIỆU VÀ CHƯƠNG TRÌNH
1 0 1 Bộ nhớ dữ liệu X trên bus dữ liệu1 0 0 Bộ nhớ dữ liệu Y trên bus dữ liệu0 1 1 Bộ nhớ chương trình trên bus dữ liệu
0 1 0 Hối tiếp ngoài có loại trừ :vectơ hay vectơ+1 (chỉ chế độ phát triển)
Trang 16G PORT B CUÛA DSP56002
Trang 17PORTAI/O(47 chân)
PORTBI/O(15 chân)
PORTCI/O(9 chân)Chọn địa chỉ
ngoàiChọn dữ liệu
ngoàiĐiều khiển
Giao tiếp SCI
Giao tiếp SSI
PC1PC0PC3PC2PC5PC4PC7PC6Chức năng
mặc định Chức năngkhác
I Giới thiệu:
Trang 18Cổng B là cổng xuất nhập song song Nó thực hiện như 15 chân xuất nhập đa dụng (GPIO), mỗi chân đều có thể được cấu hình như ngõ ra hay nhập được sử dụng để điều khiển thiết bị Hoặc nó có thể thực hiện như một giao tiếp chủ (HI) hai hướng 8-bit, ở đó nó cung cấp một kết nối tiện lợi đến các bộ xử lý khác.
II CẤU HÌNH XUẤT / NHẬP THÔNG THƯỜNG:
Khi được cấu hình như xuất / nhập thông thường, cổng B hoạt động như ba thanh ghi ánh xạ bộ nhớ điều khiển 15 chân xuất nhập Đó là thanh ghi điều khiển cổng B (PBC), thanh ghi hướng dữ liệu cổng B (PBDDR) và thanh ghi dữ liệu cổng B (PBD).
Các reset cứng và mềm để xóa PBC và PBDDR mà cấu hình của cổng B như xuất nhập thông thường với tất cả 15 chân là đầu vào thì hệ thống đầu vào nối tiếp với các chân này có thể kéo lên cho đến khi các chân được cấu hình cho phép hoạt động.
Để lựa chọn giữa xuất nhập và giao tiếp chủ (HI), bằng cách đặt các bit 0 và 1 của PBC Sử dụng PBDDR để xác định bit tương ứng trong PBD sẽ là ngỏ vào (bit được đặt bằng 0) hoặc ngỏ ra (bit được đặt bằng 1).
Nếu một chân được cấu hình như một ngỏ vào GPIO và bộ xử lý đọc PBD thì bộ xử lý sẽ ghi nhận mức logic trên chân Nếu bộ xử lý ghi vào PBD thì dữ liệu được chốt ở đó nhưng không xuất hiện trên chân vì lúc này đang ở trạng thái HiZ.
Nếu một chân được cấu hình như một đầu ra GPIO và bộ xử lý đọc PBD thì ghi nhận nội dung của PBD thay vì mức logic trên chân, cho phép PBD sử dụng như một thanh ghi 16- bit thông thừơng Nếu bộ xử lý ghi vào PBD thì dữ liệu được chốt ở đó và xuất hiện trên chân trong suốt chu kỳ lệnh kế tiếp.
Nếu một chân cấu hình như một chân chủ, các toán hạng GPIO cổng B có thể được sử dụng để giúp đỡ gỡ rối trong HI Nếu bit PBDDR của chân được xóa (cấu hình ngỏ vào), PBD sẽ trình bày logic trên chân, trừ khi chức năng HI đang sử dụng chân như một ngỏ vào hay ngỏ ra.
Nếu PBDDR được đặt (cấu hình như một ngỏ ra) đối với chân được cấu hình như một chân chủ, khi bộ xử lý đọc thì đọc nội dung của PBD thay vì mức logic trên chân, đây là trường hợp cho phép PBD hoạt động như một thanh ghi thông thường.
23 Thanh ghi PBC (X:$FFE0) 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BC1 BC0
1 0 Giao tiếp chủ (với chân HACK là GPIO)
Trang 1923 Thanh ghi PBDDR (X:$FFE2) 0 0 BD
14 BD13 BD12 BD11 BD10 BD9 BD8 BD7 BD6 BD5 BD4 BD3 BD2 BD1 BD0BDx Dữ liệu trực tiếp
III GIAO TIẾP CHỦ:
HI là một cổng song song, bộ đệm kép, độ rộng byte có thể nối trực tiếp đến bus dữ liệu của một bộ xử lý chủ Bộ xử lý chủ có thể là bất kể loại nào trong số các vi tính chuẩn công nghiệp hoặc vi xử lý, DSP khác hoặc phần cứng DMA vì giao tiếp này trông có vẻ như bộ nhớ tĩnh HI là bất đồng bộ và bao gồm hai dải thanh ghi - một dải có khả năng truy xuất đến bộ xử lý chủ và dải thứ hai có khả năng truy xuất đến DSP CPU Các đặc điểm của giao tiếp HI:
• Tốc độ : tốc độ truyền dữ liệu được điều khiển ngắt là 3,3 triệu
từ/giây (đây là tốc độ ngắt tối đa cho DSP56002 chạy tại tần số 40 MHz nghĩa là ngắt cho mỗi 6 chu kỳ lệnh).
Các tín hiệu chân : (15 chân)
H0 - H7 : Bus dữ liệu chủ HA0 – HA 2 : Chọn địa chỉ chủ
HR/W~ : Điều khiển đọc viết chủ HEN~ : Cho phép truyền chủ HREQ~ : Yêu cầu chủ
HACK~ : Xác nhận chủ
Giao tiếp – bên phía CPU của DSP
Aùnh xạ : Ba vị trí bộ nhớ X Từ dữ liệu : 24- bit
Chế độ truyền :
DSP đến chủ Chủ đến DSP Lệnh chủ
Nghi thức bắt tay
Hỏi vòng phần mềm
Điều khiển ngắt (các ngắt ngắn hoặc dài) Truy xuất bộ nhớ trực tiếp
Trang 20• Các lệnh :
Các thanh ghi ánh xạ bộ nhớ cho phép lệnh MOVE chuẩn được sử dụng Lệnh MOVEP đặc biệt cung cấp khả năng phục vụ xuất nhập bằng việc sử dụng ngắt ngắn Các lệnh tác động địa chỉ bit (BCHG, BCLR, BSET, BTST, JCLR, JSET, JSSET) đơn giản hóa các trình phục vụ xuất nhập
Định địa chỉ ngắt xuất nhập cung cấp sự thi hành nhanh hơn đối với các từ lệnh ít hơn.
Giao tiếp – bên phía chủ
Aùnh xạ: tám bộ nhớ vị trí liên tục, ngoại vi ánh xạ bộ nhớ với các vi xử lý, các bộ điều khiển DMA.
Từ dữ liệu: 8- bit
Chế độ truyền: DSP đến chủ, chủ đến DSP, lệnh chủ và hỗn hợp các
phép truyền dữ liệu 8,16,hay 24 bit.
Nghi thức bắt tay
Hỏi vòng phần mềm.
Điều khiển ngắt và khả năng tương thích với MC68000. DMA sử dụng chu kỳ khởi động
Các ngắt dành riêng
Các vectơ ngắt riêng cho mỗi một nguồn ngắt
Các lệnh chủ đặc biệt buộc các ngắt CPU DSP dưới sự điều khiển của bộ xử lý chủ, mà sử dụng tiện lợi đối với:
Các chuẩn đoán kết quả thời gian thực. Cửa gỡ rối cho phát triển chương trình.
Các nghi thức điều khiển chủ và xác lập DMA.
Giao tiếp HI có hai kiểu lập trình:1 cho chương trình DSP và 1 cho xử lý HOST Có 3 thanh ghi:
Thanh ghi điều khiển: HCR.Thanh hi trạng thái: HSR.
Thanh ghi truyền/nhận dữ liệu: HTX/HRX * Thanh ghi HCR
Host Flag 3
X:$FFE8 (đọc/ghi) Reset = 0
Trang 21* Thanh ghi trạng thái : HSR 7 6 5 4 32 1 0
* Thanh ghi truyền/nhận dữ liệu: HTX/HRX
+ HTX là thanh ghi chỉ đọc X:$FFEB + HRX là thanh ghi chỉ ghi X:$FFEB
Ngoài ra còn có thanh ghi điều khiển ngắt ICR, thanh ghi trạng thái ISR, vectơ ngắt IVR và ICR.
7 6 5 4 3 2 1 0
INIT HM1 HM0 HF1 HF0 0 TREQ RREQHM1 HM0
Chế độ ngắtDMA-24 bitDMA-16 bitDMA-8 bit
Chế độ ngắt0
Không ngắt (hỏi vòng)Yêu cầu RXDF(ngắt)Yêu cầu TXDF(ngắt)RXDF và TXDF(ngắt) Chế độ DMA
Không DMA
Yêu cầu DSP đến Host(RX)Yêu cầu Host đến DSP(TX)Không xác định
Bit INIT được sử dụng để định dạng HI.
Dữ liệu nhận đầyDữ liệu truyền thốngHost command perdingHost Flag 0
Host Flag 1
X:$FFE9 (chỉ đọc)Reset
%00000010
Trang 22H PORT C CỦA DSP56002
Mọi chân cổng C đều có thể được coi là chân vào/ra tạm thời hay là chân giao tiếp với ngoại vi on- chip Các ngoại vi on-chip bao gồm cổng SCI (Serial Communication Interface) và cổng SSI (Synchronous Serial lnterface).
Khi là vào/ra tạm thời, cổng C cung cấp các đường truyền rất thuận lợi cho các bộ ADC, DAC, các họ DSP, các codec… Các on-chip ngoại vi chủ, SCI, SSI đều có những thanh ghi điều khiển, trạng thái, dữ liệu… riêng.
I.Vào ra tạm thời (GPIO):
Khi ở chế độ GPIO được điều khiển bởi ba thanh ghi điều khiển cổng C (PCC), thanh ghi dữ liệu hướng cổng C (PCCDR), thanh ghi dữ liệu cổng C (PCD) Chân lựa chọn giữa chế độ GPIO hay SSI, SCI được thiết lập bằng cách đặt bit PCC tương ứng (vị trí bộ nhớ X:$FFE1) là 0 cho chế độ GPIO, là 1 cho giao tiếp nối tiếp PCDDR (X:$FFE3) lập trình cùng với các bit của PCD (X:$FFE5) tạo thành các ngỏ nhập (khi PCCDR=0) hay ngỏ xuất (PCCDR=1) Các chân PC2 và PC4 của cổng C được coi là chân xuất GPIO Nếu chân nào được cấu hình là chân xuất GPIO và DSP ở chế độ ghi vào PCD, thì dữ liệu sẽ được ghi thông qua chân đó trong suốt chu kỳ lệnh tiếp theo Nếu DSP ở chế độ đọc PCD, thì DSP sẽ đọc nội dung của PCD chứ không phải đọc mức logic của chân mà cho phép PCD là thanh ghi 16-bit tạm thời.
Các lệnh sau đây của DSP56002 lập trình các chân PC2 và PC4 của cổng C thành các ngỏ xuất tạm thời và ghi zero vào PCD PCD phát ra tín hiệu RESET~ cho CS4215 và giữ ở mức thấp trong 50 ms PC2 cung cấp tín hiệu D/C~ ở mức thấp để chọn chế độ điều khiển.
CC2 PC0
PC2 PC3PC4PC5PC6PC7PC8
Cho phép bởiCác bit ởX:$FFE1
Lựa chọn hướng truyền
Xuất nhập dữ liệu
CÁC GPIO ĐIỀU KHIỂN CỦA CỔNG C