a, Các thanh ghi điều khiển ngắt
Có 8 thanh ghi điều khiển ngắt bao gồm:
+ IER (Interrupt Enable Register) thanh ghi cho phép ngắt chứa bit cho phép ngắt chung GIE
+ IFR (Interrupt Flag Register) thanh ghi cờ ngắt chứa các cờ ngắt. Cờ ngắt tự động bật lên 1 khi có một ngắt tương ứng xảy ra và được xóa về khơng bằng phần mềm hoặc lệnh trở về chương trình phục vụ ngắt.
+ ISR (Interrupt Set Register) thanh ghi đặt cờ ngắt
+ CSR (Control Status Register) thanh ghi điều khiển ngắt chứa bit cho phép ngắt (GIE) và các bit điều khiển/trạng thái khác
+ ISTP (Interrupt Service Table Pointer) thanh ghi con trỏ tới bảng chương trình phục vụ ngắt
+ IRP (Interrupt Return Pointer) thanh ghi chứa địa chỉ quay trở về từ ngắt che được. Địa chỉ này được thiết lập qua lệnh B IRP.
+ ICR (Interrupt Clear Register) thanh ghi xóa cờ ngắt
+ NRP (Nonmaskable Interrupt Return Pointer): Chứa địa chỉ quay trở về từ ngắt không che được. Sự trở về này được thiết lập qua lệnh B NRP.
b, Bảng vector phục vụ ngắt
Khi CPU bắt đầu xử lý một ngắt, nó tham chiếu tới bảng phục vụ ngắt IST (Interrupt Service Table). IST là một bảng của các gói lệnh chứa mã phục vụ các ngắt. IST bao gồm 16 gói FP liên tục. Mỗi gói ISFP (Interrupt Service Fetch Packet) chứa tám lệnh. Một chương trình phục vụ ngắt đơn giản có thể đặt vừa bên trong một ISFP độc lập. Bởi vì mỗi FP chứa tám lệnh 32 bit, mỗi địa chỉ trong bảng được tăng 32 byte (20h) từ địa chỉ liền kề. Địa chỉ và nội dung của IST được chỉ ra trong hình sau.
Bảng 1.8: Bảng địa chỉ các ngắt
Bảng vector ngắt được sử dụng khi một ngắt bắt đầu. Mỗi vị trí có độ dài 32 byte tương ứng với một gói lệnh FP. Địa chỉ bên phía phải bảng tương ứng với địa chỉ offset của một ngắt cụ thể.
Gói lệnh Reset phải ở địa chỉ không. Tuy nhiên, các FP tương ứng với các ngắt khác có thể đặt lại địa chỉ. Địa chỉ đặt lại có thể được xác định bằng cách viết địa chỉ này vào trường địa chỉ cơ sở bảng phục vụ ngắt ISTB (Interrupt Service Table Base) của thanh ghi ISTP,khi reset ISTB bằng không. Để đặt lại bảng vector, trường ISTB được sử dụng để ghi địa chỉ cơ sở mới, địa chỉ đặt lại là ISTB cộng với offset.
c, Cấu trúc chương trình phục vụ ngắt 1
Một ISFP là một FP được sử dụng phục vụ một ngắt.
Nếu một chương trình phục vụ ngắt nhỏ đủ để đặt vừa bên trong một FP. Để trở về chương trình chính, FP chứa một lệnh rẽ nhánh tới lệnh con trỏ trở về ngắt (B IRP). Theo sau bởi một lệnh NOP cho phép địa chỉ đích được thực hiện trong pipeline.
Hình 1.8. Cấu trúc chương trình phục vụ ngắt 1
Nếu chương trình phục vụ ngắt q lớn khơng chứa đủ được trong một FP, một lệnh rẽ nhánh tới vị trí chứa mã chương trình phục vụ ngắt là cần thiết. Hình sau chỉ ra một chương trình phục vụ ngắt cho ngắt INT4, một lệnh rẽ nhánh tới vị trí nhớ 1234h được sử dụng để hồn thành chương trình phục vụ ngắt.
d, Cấu trúc chương trình phục vụ ngắt 2
CHƯƠNG 2: ỨNG DỤNG PHẦN MỀM CODE COMPOSER STUDIO VÀ MATLAB THIẾT KẾ BỘ LỌC IIR
2.1. Phần mềm Coper Composer Studio
2.1.1.Tạo dự án với CCStudio
Để tạo một dự án với phần mềm CCStudio ta tiến thành theo những bước sau:
Bước 1: Tạo dự án mới
Vào Project\ New -> Xuất hiện hộp hội thoại Project Creation - Project name : Nhập tin dự án
- Location: Chọn vị trí lưu dự án - Project Type: Chọn Executable (.out)
- Target: Chọn chíp DSP tương ứng ( TMS320C67XX ) => Finish