Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 274 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
274
Dung lượng
9,64 MB
Nội dung
GIÁO TRÌNH VI XỬ LÝ ( Lưu hành nội bộ) HÀ NỘI 300 BÀI SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI XỬ LÝ Mục tiêu: + Kiến thức: - Trình bày lịch sử phát triển vi xử lý; - Trình bày cấu trúc chung vi xử lý; - Phát biểu ứng dụng vi xử lý hướng phát triển vi xử lý; + Kỹ năng: - Nâng cao kỹ hoạt động nhóm q trình học tập; + Thái độ: - Đảm bảo an toàn cho người thiết bị, Các thuật ngữ chuyên môn: Được giải thích chi tiết nội dung học Nội dung: A LÝ THUYẾT 1.1 Giới thiệu lịch sử phát triển vi xử lý Trước tìm hiểu lịch sử phát triển vi xử lý nhắc lại lịch sử phát triển vi xử lý Lịch sử phát triển vi xử lý gắn liền với phát triển vi mạch điện tử vi xử lý vi mạch điện tử chế tạo theo công nghệ LSI (Large Scale Integrated) VLSI (Very Large Scale Integrated) Với khám phá transistor phát triển công nghệ chế tạo vi mạch SSI, MSI, máy tính cịn nhóm gồm nhiều IC kết hợp lại với nhau, thập niên 70, với phát triển công nghệ LSI, cấu trúc máy tính rút gọn nhà thiết kế chế tạo thành IC gọi vi xử lý (microprocessor) Vi xử lý kết hợp với thiết bị khác tạo máy tính có khả tính tốn lớn máy vi tính tạo sản phẩm khác máy điện thoại, tổng đài điện thoại, hệ thống điều khiển tự động Vi xử lý có khả xử lý bit liệu, vi xử lý có tốc độ xử lý chậm, nhà thiết kế cải tiến thành vi xử lý bit, sau vi xử lý 16 bit 32 bit Sự phát triển dung lượng bit vi xử lý làm tăng thêm số lượng lệnh điều khiển lệnh tính tốn phức tạp Vi xử lý có nhiều loại bit 32 bit, vi xử lý bit khơng cịn vi xử lý bit cịn có vi xử lý 32 bit Lý tồn vi xử lý bit phù hợp với số yêu cầu điều khiển thiết bị điều khiển công nghiệp Các vi xử lý 32 bit thường sử dụng cho máy tính với khối lượng liệu máy tính lớn nên cần vi xử lý mạnh tốt Các hệ thống điều khiển công nghiệp sử dụng vi xử lý bit để điều khiển hệ thống điện xe hơi, hệ thống điều hòa, hệ thống điều khiển dây chuyền sản xuất,… Khi sử dụng vi xử lý cần phải thiết kế hệ thống gồm có: - Vi xử lý - Bộ nhớ - Các IC ngoại vi Bộ nhớ dùng để chứa chương trình cho vi xử lý thực chứa liệu xử lý, IC ngoại vi dùng để xuất nhập liệu từ bên vào xử lý điều 301 khiển trở lại Các khối liên kết với tạo thành hệ thống vi xử lý Yêu cầu điều khiển cao hệ thống phức tạp yêu cầu điều khiển đơn giản ví dụ cần đóng mở đèn Led theo thời gian yêu cầu hệ thống vi xử lý phải có đầy đủ khối Để kết nối khối tạo thành hệ thống vi xử lý hỏi người thiết kế phải hiểu biết tất thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo khó phức tạp, chiếm nhiều không gian, mạch in, vấn đề hỏi người thiết kế, người sử dụng hiểu thật hệ thống Một lý vi xử lý thường xử lý liệu theo byte word đối tượng điều khiển công nghiệp thường điều khiển theo bit Chính với phức tạp nên nhà chế tạo tích hợp nhớ số thiết bị ngoại vi với vi xử lý tạo thành IC gọi vi xử lý – Microcontroller Khi vi xử lý đời mang lại tiện lợi dễ dàng sử dụng điều khiển công nghiệp, việc sử dụng vi xử lý khơng địi hỏi người sử dụng phải hiểu biết lượng kiến thức nhiều người sử dụng vi xử lý – dĩ nhiên người sử dụng hiểu biết nhiều tốt người bắt đầu việc sử dụng vi xử lý điều phức tạp mong muốn sử dụng Các phần khảo sát vi xử lý để thấy sự tiện lợi vấn đề điều khiển cơng nghiệp Có nhiều hãng chế tạo vi xử lý, hãng sản xuất tiếng ATMEL Hãng Intel nhà thiết kế Có nhiều họ vi xử lý mang mã số khác nhau, họ tiếng họ MCS-51 Trong họ MCS-51 vi xử lý 80C31 khơng có nhớ bên chưa tích hợp - Vi xử lý 80C51 tích hợp kbyte nhớ PROM Chỉ lập trình lần khơng thể xóa để lập trình lại - Vi xử lý 87C51 tích hợp kbyte nhớ EPROM Cho phép lập trình nhiều lần xóa tia cực tím - Vi xử lý 89C51 tích hợp kbyte nhớ flash ROM nạp xóa điện cách tiện lợi nhanh chĩng Có thể cho phép nạp xóa hàng ngàn lần Song song với họ MCS-51 họ MCS-52 có timer nhiều họ MCS51 timer dung lượng nhớ nội lớn gấp đôi tức 8Kbyte Hiện có nhiều vi xử lý hệ với nhiều đặc tính hay hơn, nhiều ghi hơn, dung lượng nhớ lớn Ứng dụng vi xử lý nhiều hệ thống điều khiển công nghiệp, dây chuyền sản xuất, điều khiển lập trình, máy giặt, máy điều hịa nhiệt độ, máy bơm xăng tự động… nói vi xử lý vi xử lý ứng dụng hầu hết lĩnh vực tự động 302 1.2 Các vi xử lý so với vi xử lý dùng chung Sự khác vi xử lý vi xử lý nào? Bộ vi xử lý vi xử lý công dụng chung họ Intell x86(8086, 80286, 80386, 80486 Pentium) họ Motorola 680x0 (68000, 68010, 68020, 68030, 68040 v.v…) Những vi xử lý khơng có RAM, ROM khơng có cổng vào chíp Với lý mà chúng gọi chung vi xử lý công dụng chung Hình 1.1: Hệ thống vi xử lý so sánh với hệ thống vi xử lý (a) Hệ thống vi xử lý công dụng chung (b) Hệ thống vi xử lý Một nhà thiết kế hệ thống sử dụng vi xử lý công dụng chung chẳng hạn Pentium hay 68040 phải bổ xung thêm RAM, ROM, cổng vào định thời làm cho chúng cồng kềnh đắt hơn, chúng có ưu điểm linh hoạt chẳng hạn người thiết kế định số lượng RAM, ROM cổng vào cần thiết phù hợp với tốn tầm tay Điều khơng thể có vi xử lý Một vi xử lý có CPU (một vi xử lý) với số lượng cố định RAM, ROM, cổng vào định thời tất chíp Hay nói cách khác xử lý, RAM, ROM cổng vào ra, định thời nhúng với chíp người thiết kế khơng thể bổ xung thêm nhớ ngoài, cổng vào định thời cho nó, chúng trở lên lý tưởng với nhiều ứng dụng mà giá thành không gian lại hạn chế Trong nhiều ứng dụng, ví dụ điều khiển từ xa ti vi khơng cần cơng suất tính tốn vi xử lý 80486 8086 Trong nhiều ứng dụng mà giá thành khơng gian chiếm, cơng suất tiêu tốn giá thành đơn vị nhắc nghiêm ngặt nhiều so với cơng suất tính tốn Những ứng dụng thường yêu cầu số thao tác vào để đọc tín hiệu tắt mở bit định Với lý mà số người gọi xử lý IBP (Itty Bitty Processor) Điều thú vị số nhà sản xuất vi xử lý xa tích hợp chuyển đổi ADC ngoại vi khác vào vi xử lý 303 Bảng1.1: Một số sản phẩm nhúng sử dụng vi xử lý Thiết bị nội thất gia đình Đồ điện nhà Máy điện thoại Các hệ thống an toàn Các mở cửa ga xe Máy fax Máy trả lời thự động Máy tính gia đình Ti vi Truyền hình cáp Máy quay camera Điều khiển từ xa Trị chơi điện tử Các lại nhạc cụ điện tử Điều khiển ánh sáng Lị vi sóng Máy giặt Tủ lạnh Các máy tập thể dục, thể hình… Văn phịng Máy tính Máy fax Máy điện thoại Các hệ thống an tồn Máy Scaner Máy photocopy Máy in … Ơ tơ Điều khiển động Điều khiển túi đệm khí Thiết bị ABS Thiết bị đo lường Hệ thống bảo mật Điều khiển truyền tin Giải trí Điều hịa nhiệt độ Mở cửa khơng cần chìa khóa… 1.3 Các vi xử lý cho hệ thống nhúng Trong tài liệu vi xử lý, vi xử lý ta thường thấy khái niệm hệ thống nhúng (Embeded system) Các vi xử lý, vi xử lý sử dụng rộng rãi sản phẩm hệ thống nhúng Một sản phẩm nhúng sử dụng vi xử lý vi xử lý để thực nhiệm vụ mà Máy in ví dụ việc nhúng với vi xử lý bên làm việc nhận liệu in Điều khác với máy tính PC dựa vi xử lý Pentium (hoặc PC tương ứng với IBM x86 bất kỳ) Một PC sử dụng cho số trạm dịch vụ in, đầu cuối kiểm kê ngân hàng, máy chơi điện tử, trạm dịch vụ mạng trạm đầu cuối mạng internet Phần mềm cho dịch vụ khác nạp chạy Tất nhiên lý hiển nhiên để PC thực hàng loạt công việc có nhớ RAM hệ điều hành nạp phần mềm ứng dụng thường đốt vào ROM Một máy tính chứa nối tới sản phẩm nhúng khác chẳng hạn bàn phím, máy in, moderm, điều khiển CD ROM, Card âm thanh, chuột máy tính…Một nội ngoại vi có vi xử lý bên để thực cơng việc, ví dụ chuột máy tính có vi xử lý để thực thi cơng việc tìm vị trí chuột gửi đến PC 1.4 Các tiêu chuẩn lựa chọn vi xử lý Có vi xử lý bít Đó 6811 Motorola, 8051 Intel, Z8 Xilog PIC 16xx Microchip Technology Mỗi kiểu loại 304 có tập lệnh ghi riêng, nên chúng khơng tương thích lẫn Cũng có vi xử lý 16 bít 32 bít sản xuất hãng sản xuất chíp khác Với tất vi xử lý khác lấy làm tiêu chuẩn lựa chọn nhà thiết kế phải cân nhắc? Có ba tiêu chuẩn để lựa chọn vi xử lý là: 1.Tiêu chuẩn trước hết lựa chọn vi xử lý phải đáp ứng nhu cầu tốn mặt cơng suất tính tốn giá thành hiệu Trong phân tích nhu cầu dự án dựa vi xử lý trước hết phải biết vi xử lý bit, 16 bit hay 32 bit đáp ứng tốt nhu cầu tính toán toán cách hiệu nhất? tiêu chuẩn đề để cân nhắc là: a Tốc độ: Tốc độ lớn mà vi xử lý hỗ trợ b Kiểu đóng vỏ: Đóng vỏ kiểu 40 chân DIP hay QFP kiểu đóng vỏ khác (DIP – đóng vỏ theo hàng chân QFP – đóng vỏ vng dẹt)? Đây điều quan trọng không gian, kiểu lắp ráp tạo mẫu thử cho sản phẩm cuối c Công suất tiêu thụ : Điều đặc biệt khắt khe sản phẩm dùng pin, ắc quy d Dung lượng nhớ RAM ROM chíp e Số chân vào – định thời chíp f Khả dễ dàng nâng cấp cho hiệu suất cao giảm công suất tiêu thụ g Giá thành cho đơn vị: Điều quan trọng định giá thành cuối sản phẩm mà vi xử lý sử dụng Tiêu chuẩn thứ lựa chọn vi xử lý khả phát triển sản phẩm xung quanh dễ dàng nào? Chủ yếu bao gồm khả có sẵn trình lượng ngữ, gỡ rối, trình biên dịch ngơn ngữ hiệu mã nguồn, trình mơ hỗ trợ kỹ thuật khả sử dụng nguồn môi trường Trong nhiều trường hợp hỗ trợ nhà cung cấp thứ (nghĩa nhà cung cấp khác hãng sản xuất chíp) Tiêu chuẩn thứ ba lựa chọn vi xử lý khả sẵn sàng đáp ứng số lượng tương lai Đối với số thiết kế điều chí quan trọng hai tiêu chuẩn Hiện nay, vi xử lý bít dẫn đầu, họ 8051 có số lượng lớn nguồn cung cấp đa dạng Nhà cung cấp có nghĩa nhà sản xuất bên cạnh nhà sáng chế vi xử lý Trong trường hợp 8051 nhà sáng chế Intel, có nhiều hãng sản xuất (cũng trước sản xuất) Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra Dallas, Semicondictior… B THẢO LUẬN NHÓM Ứng dụng thực tế vi xử lý điện tử dân dụng? Ứng dụng thực tế vi xử lý điện tử công nghiệp? So sách chíp vi xử lý với chíp vi xử lý mặt cấu trúc? 305 C THỰC HÀNH (Khơng) D ĐÁNH GIÁ KẾT QUẢ: (tính theo thang điểm 10) Mục tiêu Kiến thức Kỹ Thái độ Nội dung Điểm chuẩn - Nêu lịch sử phát triển vi xử lý - Phân biệt vi xử lý với vi xử lý cấu trúc - Nêu vi xử lý cho hệ thống nhúng tiêu chuẩn lựa chọn vi xử lý 1 - Tổng hợp phân tích nội dung học - Khả hoạt động nhóm làm việc - Khả hoạt động độc lập làm việc - Đảm bảo an tồn vệ sinh cơng nghiệp - Chủ động, tích cực hoạt động học 1 1 2 E CÂU HỎI VÀ BÀI TẬP Câu1 Trình bày lịch sử phát triển vi xử lý? Câu So sánh giống khác vi xử lý so với vi xử lý dùng chung? Câu Thế hệ thống nhúng, giải thích vi xử lý cho hệ thống nhúng? Câu Nêu tiêu chuẩn lựa chọn vi xử lý? 306 BÀI CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 Mục tiêu: + Kiến thức: - Mô tả cấu trúc họ vi xử lý họ 8051; - Giải thích tổ chức nhớ họ vi xử lý 8051; - Phân tích cấu trúc, chức nhiệm vụ ghi họ 8051; - Trình bày nguyên lý hoạt động mạch dao động, mạch reset; - Phân tích chức năng, nhiệm vụ IC ngoại vi, + Kỹ năng: - Vẽ sơ đồ cấu trúc, sơ đồ kết nối bên vi xử lý 8051; + Thái độ: - Đảm bảo an toàn cho người thiết bị, Các thuật ngữ chuyên môn: giải thích chi tiết nội dung học Nội dung: A LÝ THUYẾT Tổng quan 2.1.1 Họ 8051 Vào năm 1981 hãng Intel giới thiệu số vi xử lý gọi 8051 Bộ vi xử lý có 128byte RAM, 4Kbyte ROM chip, hai định thời, cổng nối tiếp cổng vào bit tất đặt chíp Lúc coi “hệ thống chip” 8051 xử lý bit có nghĩa CPU làm việc với bit liệu thời điểm Dữ liệu lớn bit chia thành liệu bit để xử lý Mặc dù 8051 có ROM chíp cực đại 64Kbyte, nhà sản xuất lúc đó cho xuất xưởng với 4Kbyte ROM chíp, điều bàn chi tiết sau 8051 trở nên phổ biến sau Intel cho phép nhà sản xuất khác sản xuất bán dạng biến thể 8051 mà họ thích với điều kiện họ phải để lại mã tương thích với 8051, điều dẫn đến đời nhiều phiên 8051 với tốc độ khác dung lượng ROM chip khác bán, nửa nhà sản xuất Điều quan trọng mặc dự có nhiều biến thể khác 8051 tốc độ dung lượng nhớ ROM chíp, tất chúng tương thích với 8051 ban đầu lệnh Điều có nghĩa ta viết chương trình cho phiên chạy với phiên khác mà khơng phân biệt từ hãng sản xuất Bảng 2.1: Các đặc tính 8051 Đặc tính Số lượng ROM chíp RAM chíp Bộ định thời Các chân vào - Cổng nối tiếp Nguồn ngắt Kbyte 128 byte 32 307 2.1.2 Các thành viên khác họ 8051 Có hai vi xử lý thành viên khác họ 8051 8052 8031 a- Bộ vi xử lý 8052: Bộ vi điều khiển 8052 thành viên khác họ 8051, 8052 có tất đặc tính chuẩn 8051 ngồi có thêm 128 byte RAM định thời Hay nói cách khác 8052 có 256 byte RAM định thời Nó có 8K byte ROM Trên chíp thay với 4K byte 8051 Bảng 2.2: Đặc tính thành viên họ 8051 Đặc tính 8051 8052 8031 ROM chíp RAM chíp Bộ định thời Các chân vào - Cổng nối tiếp Nguồn ngắt Kbyte 128 byte 32 Kbyte 256 byte 32 Kbyte 128 byte 32 Như ta thấy từ bảng đặc tính 8051 tập 8052 Do tất chương trình viết cho 8051 chạy 8052 điều ngược lại không b- Bộ vi xử lý 8031: Một thành viên khác 8051 chíp 8031 Chíp thường coi 8051 khơng có ROM chíp với có Kbyte ROM chíp Để sử dụng chíp ta phải bổ xung ROM ngồi cho ROM ngồi phải chứa chương trình mà 8031 nạp thực So với 8051 mà chương trình chứa ROM chíp bị giới hạn 4K byte, ROM ngồi chứa chương trình gắn vào 8031 lớn đến 64K byte Khi bổ xung cổng, lại cổng để thao tác Để giải vấn đề ta bổ xung cổng vào - cho 8031 Ngồi có phiên khác tốc độ 8031 từ hãng sản xuất khác 2.1.3 Các vi xử lý 8051 từ hãng khác Mặc dù 8051 thành viên phổ biến họ 8051 thấy kho linh kiện Đó 8051 có nhiều dạng kiểu nhớ khác UV - PROM, Flash NV - RAM mà chúng có số đăng ký linh kiện khác Phiên UV-PROM 8051 8751 Phiên Flash ROM bán nhiều hãng khác chẳng hạn Atmel Corp với tên gọi AT89C51 phiên NV-RAM 8051 Dalas Semi Conductor cung cấp gọi DS5000 Ngồi có phiên OTP (khả trình lần) 8051 sản xuất nhiều hãng a- Bộ vi xử lý 8751 Chíp 8751 có 4K byte nhớ UV-EPROM chíp Để sử dụng chíp để phát triển yêu cầu truy cập đến đốt PROM xóa UV308 EPROM để xóa nội dung nhớ UV-EPROM bên 8751 trước ta lập trình lại Do thực tế ROM chíp 8751 UVEPROM nên cần phải 20 phút để xóa 8751 trước lập trình trở lại Điều dẫn đến nhiều nhà sản xuất giới thiệu phiên Flash ROM UV-RAM 8051 Ngồi có nhiều phiên với tốc độ khác 8751 từ nhiều hãng khác b- Bộ vi xử lý AT8951 từ Atmel Corporation Chíp 8051 phổ biến có ROM chíp dạng nhớ Flash Điều lý tưởng phát triển nhanh với nhớ Flash xóa vài giây tương quan so với 20 phút mà 8751 yêu cầu Với lý mà AT89C51 để phát triển hệ thống dựa vi xử lý yêu cầu đốt ROM mà có hỗ trợ nhớ Flash Tuy nhiên lại không yêu cầu xóa ROM Lưu ý nhớ Flash ta phải xóa tồn nội dung ROM nhằm để lập trình lại cho Việc xóa nhớ Flash thực đốt PROM lý lại khơng cần đến xóa Để loại trừ nhu cầu đốt PROM hãng Atmel nghiên cứu phiên AT89C51 lập trình qua cổng truyền thơng COM máy tính IBM PC Bảng 2.3: Các phiên 8051 từ Atmel (Flash ROM) Tên ROM RAM AT89C51 AT89LV51 AT89C1051 AT89C2051 AT89C52 AT89LV52 4K 4K 1K 2K 8K 8K 128 128 64K 128K 128 128 Chân I/O 32 32 15 15 32 32 Timer Ngắt Vcc 2 3 5V 3V 3V 3V 5V 3V 8 Đóng vỏ 40 40 20 20 40 40 Chữ C ký hiệu AT89C51 CMOS Cũng có phiên đóng vỏ tốc độ khác sản phẩm Ví dụ chíp AT89C51-12PC để ý chữ “C” đứng trước số 51 ký hiệu cho CMOS “12” ký hiệu cho 12 MHZ “P” kiểu đóng vỏ DIP chữ “C” cuối ký hiệu cho thương mại (ngược với chữ “M” quân ).Thông thường AT89C51 - 12PC lý tưởng cho dự án học sinh, sinh viên c- Bộ vi xử lý DS5000 từ hãng Dallas Semiconductor Một phiên phổ biến khác 8051 DS5000 hãng Dallas Semiconductor Bộ nhớ ROM chíp DS5000 dới dạng NV-RAM Khả đọc/ ghi cho phép chương trình nạp vào ROM chíp hệ thống (khơng cần phải lấy ra) Điều cịn thực thông qua cổng nối tiếp máy tính IBM PC Việc nạp chương trình hệ thống (in-system) DS5000 thông qua cổng nối tiếp PC làm cho trở thành hệ thống phát triển chỗ lý tưởng Một ưu việt NV-RAM khả thay đổi nội dung ROM theo byte thời điểm Điều tương phản với nhớ Flash EPROM mà nhớ chúng phải xố trước lập trình lại cho chúng 309 định thời Để dừng định thời ta chọn { CS00, CS01, CS02 } = {0, 0, } Thanh Ghi Timer/Counter Register –TCNT0 Hình 7.45 Thanh ghi TCNT0 Đây ghi đếm bit định thời Giá trị ghi tăng giảm đơn vị sau chu kì clock Khơng nên ghi vào ghi đếm Thanh Ghi Output Compare Register –OCR0 Hình 7.46 Thanh ghi OCR0 OCR0 ghi bit, giá trị liên tục so sánh với giá trị ghi TCNT0 Khi hai giá trị hai ghi xảy kiện “so sánh khớp” (compare match) Sự kiện so sánh khớp tạo ngắt, ngắt cho phép Hay tạo dạng sóng chân đầu OC0, tùy theo chế độ thực thi định thời Thanh Ghi Timer/Counter Interrupt Mask Register – TIMSK Hình 7.47 Thanh ghi TIMSK • Bit – OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable: Khi bit OCIE0 ghi bit I ghi trạng thái SREG set thành ngắt kiện “so sánh khớp” (compare match interrupt ) cho phép Khi ngắt thực thi xảy kiện “so sánh khớp” • Bit – TOIE0: Timer/Counter0 Overflow Interrupt Enable: Khi bit ghi ngắt toàn cục cho phép ngắt tràn định thời (Timer/Counter0 Overflow interrupt) cho phép Khi ngắt tương ứng thực 559 thi định thời tràn Thanh Ghi Timer/Counter Interrupt Flag Register – TIFR Hình 7.48 Thanh ghi TIFR • Bit – OCF0: Output Compare Flag 0: Bit set lên xảy “so sánh khớp ” (compare match) định thời (tức ghi TCCN0) với ghi OCR0 Cờ OCF0 tự động xóa ngắt tương ứng thực thi Ngồi ta cũngg xóa cờ OCF0 cách ghi giá trị logic vào Khi bit I ghi SREG, bit OCIE0 (Timer/Counter0 Compare Match Interrupt Enable) bit OCF0 set lên ngắt “so sánh khớp” (Compare Match Interrupt) thực thi • Bit – TOV0: Timer/Counter0 Overflow Flag: Bit TOV0 set thành định thời tràn xóa ngắt tương ứng thực thi Ngồi cũngg xóa cách ghi giá trị logic vào vị trí Khi bit I ghi SREG, bit TOIE0 (Timer/Counter0 Overflow interrupt) bit TOV0 set lên ngắt tràn định thời (Timer/Counter0 Overflow Interrupt ) thực thi Trong chế độ PWM cờ TOV0 Set định thời đổi hướng đếm giá trị 00h Thanh Ghi Special Function IO Register –SFIOR Hình 7.49 Thanh ghi SFIOR • Bit – TSM: Timer/Counter Synchronization Mode: Ghi bit thành kích hoạt chế độ đồng bộ định thời (Timer/Counter Synchronization) Trong chế độ này, giá trị ghi vào bit PSR0 PSR321 giữ lại, giữ cho tín hiệu reset chia trước (prescaler) tương ứng xác nhận ( chia trước (prescaler) trạng thái Reset ) Điều để chắn định thời tương ứng tạm nghỉ cấu hình với giá trị mà không làm ảnh hưởng đến cấu hình nâng cao khác chúng Khi bit ghi thành định thời bắt đầu đếm đồng thời 560 - Bit – PSR0: Prescaler Reset Timer/Counter0: Khi bit chia trước định thời (Timer/couter prescaler) đặt lại Bit thường xóa tức thời phần cứng Nếu bit ghi định thời thực thi chế độ khơng đồng giữ nguyên giá trị chia trước đặt lại Bit không xóa phần cứng bit TSM set thành Thanh Ghi Asynchronous Status Register – ASSR Hình 7.50 Thanh ghi ASSR - Bit – AS0: Asynchronous Timer/Counter0: Khi bit AS0 định thời đếm từ nguồn xung clock I/O, tức ClkI/O Khi AS0 ghi thành định thời đếm từ xung thạch anh chân TOSC1 Khi giá trị AS0 bị thay đổi nội dụng ghi TCNT0, OCR0 TCCR0 bị hỏng - Bit – TCN0UB: Timer/Counter0 Update Busy: Khi định thời thực thi q trình khơng đồng ghi TCNT0 ghi bit TCN0UB set lên Khi ghi TCNT0 vừa cập nhật từ ghi lưu trữ tạm bit bị xóa phần cứng Mức logic trường hợp để ghi TCNT0 sẵn sàng để cập nhật giá trị - Bit \–OCR0UB: Output Compare Register0 Update Busy: Khi định thời thực thi trình không đồng ghi OCR0 ghi bit OCR0UB set lên Khi ghi OCR0 vừa cập nhật từ ghi lưu trữ tạm bit bị xóa phần cứng Mức logic trường hợp để ghi OCR0 sẵn sàng để cập nhật giá trị - Bit – TCR0UB: Timer/Counter Control Register0 Update Busy: Khi định thời thực thi q trình khơng đồng ghi TCCR0 ghi bit TCR0UB set lên Khi ghi TCCR0 vừa cập nhật từ ghi lưu trữ tạm bit bị xóa phần cứng Mức logic trường hợp để ghi TCCR0 sẵn sàng để cập nhật giá trị Nếu ghi vào ba ghi định thời (TCNT0, OCR0, TCCR0) lúc cờ báo bận cập nhật (update busy flag) chúng set, giá trị cập nhật bị hỏng tạo ngắt trước 561 Bộ định thời a Sơ đồ khối định thời Hình 7.51 Sơ đồ khối định thời Bộ định thời định thời bit, định thời liên quan tới ghi với nhiều chế độ thực thi khác Các thuộc tính định gồm: Bộ đếm đơn kênh, xóa định thời có kiện “so sánh khớp” tự động nạp lại, PWM hiệu chỉnh pha, đếm kiện bên ngoài… b Các ghi định thời Thanh ghi Timer/Counter Control Register – TCCR2 Hình 7.52 Sơ đồ khối định thời • Bit – FOC2: Force Output Compare • Bit 6, – WGM21:0: Waveform Generation Mode • Bit 5:4 – COM21:0: Compare Match Output Mode • Bit 2:0 – CS22:0: Clock Select 562 - Bit 7–FOC2: Force Output Compare : Bit FOC2 hoạt động bit WGM20 định chế độ Non-PWM, chế PWM nên ghi bit thành Ở chế độ non-PWM, bit FOC0 ghi thành “so sánh khớp”(compare match ) xảy tạo sóng, đầu OC2 thay đổi tùy theo thiết lập bit COM21:0 tương ứng với Bit khơng thể đọc, đọc ta nhận giá trị Bit hoạt động giống bit FOC0 định thời - Bit 6, – WGM21:0: Waveform Generation Mode : Những bit điều khiển chế độ thực thi đếm, theo dạng sóng tương ứng tạo từ tạo sóng Các chế độ thực thi hỗ trợ : Normal, CTC, PWM Bảng 7.6 Lựa chọn chế độ thực thi định thời Chú ý : Tên bit CTC2 PWM2 không sử dụng thay tên khác WGM21 WGM20 - Bit 5:4 – COM21:0: Compare Match Output Mode: Hai bit điều khiển hoạt động chân OC2 Nếu hai bit set thành đầu OC2 ưu tiên chức I/O thông thường Chú ý bit tương ứng OC2 ghi DDR phải set phép đầu Khi OC2 kết nối với chân đầu OC2 vai trị bit COM21:0 phụ thuộc vào thiết lập bit WGM21:0 Các bit hoạt động giống với bit COM01:0 định thời Xem lại định thời Bảng 7.7 Điều khiển hành vi chân OC2 bit COM20: chế độ non-PWM 563 Bảng 7.8 Điều khiển hành vi chân OC2 bit COM20: chế độ PWM nhanh Bảng 7.9 Điều khiển hành vi chân OC2 bit COM20 :1 chế độ PWM hiệu chỉnh pha Chú ý: Có trường hợp đặt biệt ghi OCR20 có giá trị TOP bit COM21 set , trường hợp kiện so sánh khớp (Compare match) bị bỏ qua, việc set hay xóa OC2 TOP thực - Bit 2:0 – CS22:0: Clock Select: Dùng để lựa chọn nguồn xung clock cho định thời 2 Thanh ghi Timer/Counter Register – TCNT2 Hình 7.53 Thanh ghi TCNT2 Đây ghi đếm bit định thời Giá trị ghi tăng giảm đơn vị sau chu khì clock Thanh ghi TCNT2 truy xuất trực tiếp đọc hay ghi ( Điều khác với định thời truy xuất ghi TCNT1 hay TCNT3 cần phải thông qua ghi tạm trung gian bit ) Không nên chỉnh sửa ghi TCNT2 định thời chạy Thanh ghi Output Compare Register – OCR2 564 Hình 7.54 Thanh ghi OCR2 Thanh ghi OCR2 ghi bit, giá trị ghi OCR2 liên tục so sánh với giá trị đếm, tức ghi TCNT2 Khi giá trị hai ghi tạo kiện “so sánh khớp” ( Compare match) Một ngắt so sánh khớp ( compare match interrupt ) tạo ngắt cho phép, hay dạng sóng tạo chân OC2.Thanh ghi hoạt động tương tự ghi OCR0 định thời Thanh ghi Timer/Counter Interrupt Mask Register – TIMSK Hình 7.55 Thanh ghi TIMSK - Bit – OCIE2: Timer/Counter2 Output Compare Match Interrupt Enable: Khi bit OCIE2 set thành bit I ghi trạng thái set thành ngắt “so sánh khớp” (compare match interrupt ) định thời cho phép Khi mơt ngắt tương ứng thực thi xảy kiện “so sánh khớp” định thời Chẳn hạn, để xảy “so sánh khớp” (compare match ) định thời ta set bit OCF2 ghi TIFR, chờ giá trị hai ghi TCNT2 OCR2 “so sánh khớp” (compare match ) xảy - Bit – TOIE2: Timer/Counter2 Overflow Interrupt Enable: Khi bit ghi ngắt toàn cục cho phép (bit I ghi trạng thái SREG set thành 1) ngắt tràn định thời (Timer/Counter2 Overflow interrupt) cho phép Khi ngắt tương ứng thực thi định thời tràn Chẳn hạn, ta set bit TOV2 ghi TIFR thành chờ cho định thời bị tràn vượt giá trị TOP ( hay MAX ) Thanh ghi Timer/Counter Interrupt Flag Register – TIFR Hình 7.56 Thanh ghi TIMSK - Bit – OCF2: Output Compare Flag : Bit set lên xảy kiện “so sánh khớp” (compare match) định thời (tức ghi 565 TCCN2) với ghi OCR2 Cờ OCF2 tự động xóa ngắt tương ứng thực thi Ngồi ta cũngg xóa cờ OCF2 cách ghi giá trị logic vào Khi bit I ghi SREG, bit OCIE2 (Timer/Counter2 Compare Match Interrupt Enable) bit OCF2 set lên ngắt kiện “so sánh khớp” (Compare Match Interrupt) định thời thực thi - Bit – TOV2: Timer/Counter2 Overflow Flag: Bit TOV2 set thành định thời tràn xóa ngắt tương ứng thực thi Ngồi cũngg xóa cách ghi giá trị logic vào vị trí Khi bit I ghi SREG, bit TOIE2 (Timer/Counter2 Overflow interrupt) bit TOV2 set lên ngắt tràn định thời (Timer/Counter2 Overflow Interrupt ) thực thi Trong chế độ PWM cờ TOV2 set định thời đổi hướng đếm giá trị 00h 7.2.4 Cấu trúc ngắt ATmega128 Khái niệm ngắt Ngắt kiện bên hay bên làm ngắt vi xử lý để báo cho biết thiết bị cần dịch vụ Một vi xử lý phục vụ vài thiết bị, có hai cách để thực điều sử dụng ngắt (interrupt) thăm dò (polling) Trong phương pháp sử dụng ngắt có thiết bị cần đến dịch vụ báo cho vi xử lý cách gửi tín hiệu ngắt Khi nhận đựợc tín hiệu ngắt vi xử lý ngắt tất thực để chuyển sang phục vụ thiết bị Chương trình với ngắt gọi trình dịch vụ ngắt ISR (Interrupt Service Routine) hay gọi trình quản lý ngắt (Interrupt handler) Cịn phương pháp thăm dị vi xử lý hiển thị liên tục tình trạng thiết bị cho điều kiện thoả mãn phục vụ thiết bị Sau chuyển sang hiển thị tình trạng thiết bị tất phục vụ Mặc dù phương pháp thăm dị thể hiển thị tình trạng vài thiết bị phục vụ thiết bị điều kiện định thoả mãn khơng tận dụng hết cộng dụng vi xử lý Điểm mạnh phương pháp ngắt vi xử lý phục vụ nhiều thiết bị (tất nhiên không thời điểm) Mỗi thiết bị nhận ý vi xử lý dựa mức ưu tiên gán cho Đối với phương pháp thăm dị khơng thể gán mức ưu tiên cho thiết bị kiểm tra tất thiết bị theo kiểu quay vòng Quan trọng phương pháp ngắt vi xử lý cũngg cịn che làm lơ yêu cầu dịch vụ thiết bị Điều lại lần thực phương pháp thăm dò Lý quan trọng mà phương pháp ngắt ưu chuộng phương pháp thăm dị làm hao phí thời gian vi xử lý cách hỏi dị thiết bị kể chúng khơng cần đến dịch vụ Trình phục vụ ngắt bảng véc tơ ngắt Đối với ngắt phải có trình phục vụ ngắt ISR (Interrupt Service Routine) hay trình quản lý ngắt (Interrupt handler) Khi ngắt đựợc gọi vi xử lý phục vụ ngắt Khi ngắt đựợc gọi vi xử lý chạy trình phục vụ ngắt Đối với ngắt có vị trí cố định nhớ để 566 giữ địa ISR Nhóm vị trí nhớ dành riêng để gửi địa ISR gọi bảng véc tơ ngắt Khi kích hoạt ngắt vi xử lý qua bước sau: ● Vi xử lý kết thúc lệnh thực lưu địa lệnh (PC) vào ngăn xếp ● Nó nhảy đến vị trí cố định nhớ gọi bảng véc tơ ngắt nơi lưu giữ địa trình phục vụ ngắt ● Bộ vi xử lý nhận địa ISR từ bảng véc tơ ngắt nhảy tới Nó bắt đầu thực trình phục vụ ngắt lệnh cuối ISR RETI (trở từ ngắt) ● Khi thực lệnh RETI vi xử lý quay trở nơi bị ngắt Trước hết nhận địa đếm chương trình PC từ ngăn xếp cách kéo hai byte đỉnh ngăn xếp vào PC Sau bắt đầu thực lệnh từ địa Dưới bảng véc tơ ngắt ATmega128 , với địa nhớ chương trình 567 Bảng 7.10 Vector ngắt ATmega128 568 Thứ tự ưu tiên ngắt Không vi xử lý họ 8051, thứ tự ưu tiên ngắt thay đổi ( cách lập trình ) Với vi xử lý AVR thứ tự ưu tiên ngắt thay đổi theo qui tắc: “ Một vec tơ ngắt có địa thấp nhớ chương trình có mức độ ưu tiên cao ” Chẳn hạn ngắt ngồi ( INT0 ) có mức độ ưu tiên cao ngắt ( INT1 ) Để cho phép ngắt người dùng cần cho phép ngắt toàn cục ( set bit I ghi SREG ) bit điều khiển ngắt tương ứng Khi ngắt xảy phục vụ bit I ghi SREG bị xóa, có ngắt khác xảy khơng phục vụ, phép ngắt ISR ( interrupt service routine ) khác thực thi, chương trình ISR phải có lệnh SEI để set lại bit I SREG Ngắt ngắt Khi AVR thực trình phục vụ ngắt thuộc ngắt lại có ngắt khác kích hoạt Trong trường hợp ngắt có mức ưu tiên cao ngắt ngắt có mức ưu tiên thấp (*) Lúc ISR ngắt có mức ưu tiên cao thực thi Khi thực xong ISR ngắt có mức ưu tiên cao quay lại phục vụ tiếp ISR ngắt có mức ưu tiên thấp trước trở chương trình Đây gọi ngắt ngắt Chú ý: - Giả định ISR thực thi xảy yêu cầu ngắt từ ISR khác có mức ưu tiên thấp ISR có mức ưu tiên thấp khơng phục vụ, khơng bị bỏ qua mà trạng thái chờ Nghĩa sau ISR có mức ưu tiên cao thực thi xong đến lượt ISR có mức ưu tiên thấp phục vụ - (*) : Điều xảy code ISR ngắt có mức ưu tiên thấp có lệnh set bit I ghi SREG (đó lệnh SEI ) Các ngắt ngồi ATmega128 có ngắt từ INT0 đến INT7 ( chưa kể tới ngắt reset ) Tám ngắt tương ứng với chân MCU INT0 ,INT1, …, INT7 Để ý chân INT0, INT1, …, INT7 MCU cấu chân lối ra, ngắt ngồi có tác dụng cho phép Các ngắt ngồi bắt mẫu theo kiểu cạnh lên ( Rising ), cạnh xuống ( Falling ) hay mức thấp ( Low level ) Điều qui định hai ghi EICRA EICRB Dưới mô tả chi tiết ghi EICRA EICRB ghi liên quan tới ngắt 569 Thanh ghi External Interrupt Control Register A – EICRA Hình 7.57 Thanh ghi EICRA Tám bit ghi EICRA điều khiển kiểu bắt mẫu cho ngắt INT3, INT2, INT1, INT0 Qui định cụ thể thể Bảng 48 ISCn1 ISCn0 0 1 n = 3, 2, 1, 0 1 Kiểu bắt mẫu Mức thấp tạo yêu cầu ngắt Dự trữ Cạnh xuống ( Falling ) tạo yêu cầu ngắt Cạnh lên ( Rising ) tạo yêu cầu ngắt Bảng 7.11 Bảng điều khiển kiểu bắt mẫu ngắt Thanh Ghi External Interrupt Control Register B – EICRB Hình 7.58 Thanh ghi EICRB Tám bit ghi EICRA điều khiển kiểu bắt mẫu cho ngắt INT7, INT6, INT5, INT4 Qui định cụ thể thể Bảng 50 ISCn1 ISCn0 Kiểu bắt mẫu 0 1 1 Mức thấp tạo yêu cầu ngắt Bất thay đổi mức logic chân INTn tao yêu cầu ngắt Cạnh xuống ( Falling ) hai mẫu tạo yêu cầu ngắt Cạnh lên ( Rising ) hai mẫu tạo yêu cầu ngắt n = 7,6, 5, Bảng 7.12 Bảng điều khiển kiểu bắt mẫu ngắt 570 Thanh Ghi External Interrupt Mask Register – EIMSK Hình 7.59 Thanh ghi EIMSK Khi cho phép ngắt toàn cục ( set bit I ghi SREG thành ) ngắt chưa thể thực thi, để ngắt thực thi ta cần phải cho phép nó, bit ghi EIMSK định ngắt tương ứng ( từ INT7 INT0 ) có cho phép hay khơng Khi số bit ( từ INT7 INT0 ) set thành ngắt toàn cục cho phép ngắt ngồi tương ứng cho phép Cịn tín hiệu ngắt mức hay cạnh ghi EICRA EICRB ( nêu ) qui định Kích hoạt chân ( Pin ) chân ngắt cũngg tạo yêu cầu ngắt chân thiết lập thành đầu Thanh Ghi External Interrupt Flag Register – EIFR Hình 7.60 Thanh ghi EIFR Đây tám cờ ngắt tương ứng với tám ngắt INT7 INT0 Khi có tín hiệu u cầu ngắt ngồi cờ ngắt tương ứng set thành 1, ngắt tương ứng cho phép MCU nhảy tới bảng véc tơ ngắt, cờ ngắt xóa chương trình phục vụ ngắt ( ISR ) thực thi Ngồi ta cũngg có set hay xóa cờ ngắt cách ghi trực tiếp giá trị logic vào Thanh Ghi MCU Control Register – MCUCR Hình 7.61 Thanh ghi MCUCR Trong phần ta quan tâm tới hai bit là: IVCE (Interrupt Vector Select ) bit IVSEL (Interrupt Vector Change Enable ) ghi MCUCR Bit liên quan đến việc thiết lập vị trí bảng véc tơ ngắt - Bit – IVSEL: Interrupt Vector Select: Khi bit vị trí bảng véc tơ 571 ngắt đặt phần đầu nhớ chương trình Khi bit bảng véc tơ ngắt di chuyển tới phần đầu vùng nhớ Boot Loader - Bit – IVCE: Interrupt Vector Change Enable : Bit phải ghi thành phép thay đổi bit IVSEL Bit IVCE xóa sau chu kì máy sau set hay bit IVSEL ghi Trong lúc bit ICVE set ngắt bị cấm bit IVSEL ghi, bit IVSEL khơng ghi ngắt bị cấm cho kì máy liên tiếp ( sau chu kì máy bit IVCE tự động bị xóa nên ngắt cho phép trở 572 TÀI LIỆU THAM KHẢO 10 11 12 Kỹ thuật vi xử lý lập trình Assembly cho hệ vi xử lý, Đỗ Xuân Tiến, 2003 Tài liệu hướng dẫn sử dụng thí nghiệm MTS-51, 8051 Microcomputer Trainer – K&H MFG CO.,LTD Tài liệu hường dẫn sử dụng thí nghiệm AVR, Training kit SAT128-350 (Dr.kim Training kit Atmega128- SAT128-350) Vi xử lý – Nguyễn Đình Phú, Đại học sư phạm Kỹ thuật HCM Programming Embedded Systems I – Michael J.Pont, University of Leicester Họ vi xử lý 8051, I Sott Mackenzie, dịch: Tống Văn On Hoàng Đức Hải, 2001 Microprocessor and IC families - Walter H Buchbaum Sc.D Mikrocompute Lehrbuch - HPI Fachbuchreihen Pflaum Verlag Munchen8051 Development Boad, Rev - Paul Stoffregen www.atmel.com – datasheet Atmega128 www.atmel.com - datasheet Atmel 89C51 www.robotkim.com/drkimrobot.com 573