Các chế độ ngắt và xử lý ngắt cho phép thực hiện các quá trình tốc độ cao, phản ứng kịp thời với các sự kiện ở bên trong và bên ngoài Chương trình ngắt hoạt động gần giống với chương trì
Trang 1Các chế độ ngắt và xử lý ngắt cho phép thực hiện các quá trình tốc độ cao, phản ứng kịp thời với các sự kiện
ở bên trong và bên ngoài
Chương trình ngắt hoạt động gần giống với chương trình con: vòng quét chương trình chính tạm thời ngừng, chuyển sang thực hiện vòng quét của chương trình ngắt Chương trình con được kích hoạt bằng lệnh gọi chương trình con, chương trình ngắt được kích hoạt bằng tín hiệu ngắt
Các kiểu tín hiệu báo ngắt:
+ Ngắt vào / ra
+ Ngắt truyền thông
+ Ngắt thời gian
Trang 2Các loại ngắt và mã hiệu
7 Ngắt theo suờn xuống của I0.3
5 Ngắt theo suờn xuống của I0.2
3 Ngắt theo suờn xuống của I0.1
1 Ngắt theo suờn xuống của I0.0*
6 Ngắt theo suờn lên của I0.3
4 Ngắt theo suờn lên của I0.2
2 Ngắt theo suờn lên của I0.1
0 Ngắt theo suờn lên của I0.0*
9 Tín hiệu ngắt báo hoàn tất việc gởi dữ liệu
8 Tín hiệu ngắt để nhận dữ liệu truyền thông
Kiểu
Mô tả ngắt
Trang 311 Ngắt theo thời gian T1
10 Ngắt theo thời gian T0
20 Ngắt theo PLS1 báo hòan tất việc đếm xung
19 Ngắt theo PLS0 báo hòan tất việc đếm xung
18 Ngắt theo HSC2, khi có tín hiệu reset từ bên ngoài
17 Ngắt theo HSC2, khi có tín hiệu báo đổi hướng đếm từ bên
ngoài
16 Ngắt theo HSC2, khi giá trị tức thời bằng giá trị đặt trước
15 Ngắt theo HSC1, khi có tín hiệu reset từ bên ngoài
14 Ngắt theo HSC1, khi có tín hiệu báo đổi hướng đếm từ bên
ngoài
13 Ngắt theo HSC1, khi giá trị tức thời bằng giá trị đặt trước
12 Ngắt theo HSC0, khi giá trị tức thời bằng giá trị đặt trước
Trang 4Thứ tự ưu tiên ngắt
+ Ngắt truyền thông : Độ ưu tiên cao nhất
+ Ngắt vào ra
+ Ngắt thời gian : Độ ưu tiên thấp nhất
Khi thực hiện một chương trình ngắt, tất cả các tín hiệu báo ngắt phải chờ cho đến khi thực hiện xong chương trình ngắt, bất kể chúng có độ ưu tiên cao hơn
Các tín hiệu ngắt này được ghi nhớ lại và sắp xếp theo thứ tự ưu tiên
Trang 5Khai báo và hủy toàn cục các chế độ ngắt
+ Khai báo
+ Hủy
Khai báo và hủy một chế độ ngắt
INT: khai báo xử lý chương trình ngắt
EVNT: khai báo sự kiện ngắt (mã hiệu ngắt)
Trang 6Ngắt Timer (ngắt thời gian):
2 ngắt thời gian: ngắt thời gian 0: mã hiệu 10
ngắt thời gian 1: mã hiệu 11 Tín hiệu báo ngắt được phát ra đều đặn theo chu kỳ thời
gian, chu kỳ này được chứa trong SMB34 (ngắt thời gian 0)
và SMB35 (ngắt thời gian 1)
Thời gian ngắt cho phép từ 5 – 255ms
Các bước thực hiện khi sử dụng ngắt thời gian
- Xác định chu kỳ ngắt thông qua nạp giá trị cho SMB34
- Kích hoạt ngắt 10 (hoặc 11)
- Xác định ứng dụng ngắt thời gian và chương trình ngắt
Trang 7Ví dụ 1: Chương trình đọc giá trị analog về máy tính (lưu trong VW100) sử dụng ngắt thời gian T0 với chu
ký là 100ms,
Trang 8Ngắt vào ra:
- Tín hiệu báo ngắt khi có sườn lên hoặc sườn xuống của I0.0 – I0.3
- Tín hiệu báo ngắt của bộ đếm tốc độ cao
- Tín hiệu báo ngắt của bộ tạo xung
Ví dụ: chương trình tạo chức năng đếm lên hoặc đếm xuống cho 1 byte
Trang 9Ngắt truyền thông freeport
Khác với mạng MPI, khi mà trạm Master được quyền gởi hoặc nhận dữ liệu trực tiếp trong bộ nhớ của trạm Slave, kiểu truyền thông freeport “bình đẳng” hơn
Mạng
Tất cả các trạm trong mạng truyền
thông freeport đều được quyền
gởi và nhận dữ liệu lên mạng
Muốn gởi dữ liệu có lệnh XMT
Muốn đọc dữ liệu phải sử dụng
vùng bộ nhớ đặc biệt và ngắt
nhận dữ liệu
Trang 10Định dạng truyền dữ liệu được cài đặt nhờ thanh ghi SMB30
b b
Tốc độ truyền (Baud):
000 38.400 (CPU214) hay19.200 (CPU212).
001 19.200
010 9.600
011 4.800
100 2.400
101 1.200
110 600
111 300
b m
Kiểu truyền thông:
00 Point to Point (PPI)
01 Freeport
10 PPI (bình dẳng)
11 Không sử dụng
m
Giải thích SMB30
Trang 11Kiểu kiểm tra (parity):
00 Không kiểm tra
01 Kiểm tra chẵn (Even)
10 Không kiểm tra
11 Kiểm tra lẻ (Odd)
p
Số bit truyền:
0 8 bit
1 7 bit d
Lệnh gởi dữ liệu XMT
TBL: bảng dữ liệu
PORT: cổng truyền
Trang 12Cấu trúc 1 bảng dữ liệu
Dữ liệu n
…
…
Dữ liệu 1
Độ dài mảng dữ liệu = n
Số dữ liệu gởi tối đa : 255 dữ liệu
Bit SM4.5 thông báo trạng thái quá trình gởi dữ liệu lên mạng
Đang gởi : SM4.5 có giá trị bằng 0 Gởi xong : SM4.5 có giá trị bằng 1
Trang 13Đọc dữ liệu từ mạng.
SMB2 chứa dữ liệu nhận được trong chế độ truyền freeport
Sử dụng ngắt 8 để đọc dữ liệu từ SMB2
Trang 14Ví dụ: Chương trình phát dữ liệu trong vùng nhớ MB10 lên mạng freeport và nhận dữ liệu lưu trong vùng nhớ
VB100, với tốc độ truyền 9600Baud, dữ liệu 8 bits, không kiểm tra parity