47 / 63 · Khái niệm
Nút nhấn thực: đồng bộ, chống dội và một sự kiện
Phân biệt đồng bộ đầu vào bất đồng bộ với xóa dội tiếp điểm; thiết kế debounce theo mẫu liên tiếp.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Một lần nhấn có thể là nhiều chuyển mức
Tiếp điểm cơ khí có thể đóng mở nhiều lần trước khi ổn định. Tín hiệu nút cũng bất đồng bộ với clock hệ thống. Đồng bộ hóa là đưa tín hiệu vào clock domain; chống dội là diễn giải các chuyển ngắn lặp lại thành một trạng thái ổn định. Chỉ hai flip-flopFlip-flop Phần tử lưu đầu vào tại cạnh clock chỉ định rồi giữ đến cạnh sau. Đầu vào phải thỏa setup và hold. Tìm hiểu thêm không tự xóa bounce.
- Nút bất đồng bộ: Có cả dội tiếp điểm và bất đồng bộ clock
- Đồng bộ hóa: Nhận mức một bit vào clock domain
- Chống dội: Chỉ chấp nhận đổi trạng thái sau các mẫu ổn định liên tiếp
- Phát hiện cạnh: Tạo sự kiện một chu kỳ cho 0→1 đã xác nhận
Luồng này giả định mức nút một bit giữ đủ lâu. Xung ngắn, truyền nhiều bit nhất quán và xử lý chính clock bất đồng bộ cần thiết kế riêng.
Quy tắc N mẫu liên tiếp
Gọi trạng thái đã chấp nhận là q, đầu vào đã đồng bộ là x, count là số mẫu liên tiếp khác q. Mỗi mẫu x=q thì xóa count; x≠q thì tăng count. Ở mẫu khác thứ N liên tiếp, cập nhật q=x và đưa count về 0.
Xét N=3, q đầu=0. Mỗi cột là thời điểm lấy mẫu đầu vào đã đồng bộ; đồ thị không phải điện áp tiếp điểm thực.
| Mẫu | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| x | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| count after | 0 | 1 | 0 | 1 | 2 | 0 | 0 | 1 | 0 |
| q after | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| rise event | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
Xem dữ liệu dạng sóng
| Tín hiệu | Dạng sóng | Giá trị bus |
|---|---|---|
| sample | 234523452 | 0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 |
| x | 0101...01 | |
| q after | 0....1... | |
| rise event | 0....10.. |
Nêu rõ độ trễ và độ rộng bộ đếm
Khoảng lấy mẫu cho trễ xác nhận khoảng đến , tùy pha thay đổi đầu vào; cộng riêng trễ đồng bộ phía trước. Nếu yêu cầu bảo thủ “ổn định 10 ms”, chọn N phải xét cả khoảng từ mẫu đầu tới cuối. Chuyển ngắn giữa mẫu có thể không được thấy, nên các mẫu giống nhau không chứng minh điện áp thật chưa từng đổi trong khoảng ấy. Phải quy định cả đặc tính công tắc và điều kiện lấy mẫu.
Nếu count chỉ lưu 0 đến N−1, độ rộng cần là . Xử lý cả N=1: mẫu đối lập đầu phải được chấp nhận ngay, nên thứ tự so với N−1 quan trọng.
Một lần nhấn thành một sự kiện
Gọi trạng thái mới đã chấp nhận là q_next thì . Bảng trên tạo sự kiện cùng mẫu xác nhận. Cài đặt so q với q trễ một chu kỳ trong thanh ghiThanh ghi Mạch lưu trạng thái nhiều bit. Thanh ghi đồng bộ trong khóa học lưu đầu vào đã quy định tại cạnh clock. Tìm hiểu thêm riêng có thể thêm trễ tùy điểm quan sát; cần đặc tả lúc tiêu thụ sự kiện.
Tự thử
N=3, q đầu=0, nhận 1,1,0,1,1,1 thì trạng thái đổi tại mẫu nào? N=8, count lưu 0~7 thì độ rộng tối thiểu bao nhiêu?
Đọc giải thích
Mẫu 0 thứ ba xóa số liên tiếp, nên chấp nhận 1 ở mẫu thứ sáu. Count 0~7 cần ba bit. Cài đặt khác lưu tới 8 cần bốn bit, nên kiểm phạm vi lưu trước.