1. Trang chủ
  2. » Thể loại khác

Luận văn nghiên cứu xây dựng hệ thống kết nối thông tin giữa các bộ điều khiển

92 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Xây Dựng Hệ Thống Kết Nối Thông Tin Giữa Các Bộ Điều Khiển
Tác giả Nguyễn Văn Nhất
Người hướng dẫn Ths. Nguyễn Trọng Thắng
Trường học Học Viện Kỹ Thuật Công Nghệ
Chuyên ngành Kỹ Thuật Điện
Thể loại luận văn
Năm xuất bản 2010
Thành phố Hải Phòng
Định dạng
Số trang 92
Dung lượng 3,13 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN CÔNG NGHIỆP,CƠ SỞ KỸ THUẬT, BUS TIÊU BIỂU (2)
    • A: GIỚI THIỆU CHUNG (2)
      • 1.1. GIỚI THIỆU CHUNG VỀ MẠNG TRUYỀN THÔNG CÔNG NGHIỆP (2)
      • 1.2. VAI TRÒ MẠNG TRUYỀN THÔNG CÔNG NGHIỆP (0)
      • 1.3. PHÂN LOẠI VÀ ĐẶC TRƢNG CÁC HỆ THỐNG MẠNG CÔNG NGHIỆP (0)
    • B: CƠ SỞ KỸ THUẬT (5)
      • 1.4. CÁC KHÁI NIỆM (5)
        • 1.4.1 Thông tin, dữ liệu, tín hiệu (5)
        • 1.4.2 Truyền thông, truyền dữ liệu và truyền tín hiệu (6)
        • 1.4.3 Tính năng thời gian thực (7)
      • 1.5. CHẾ ĐỘ TRUYỀN TẢI (8)
        • 1.5.1 Truyền bit song song và nối tiếp (9)
        • 1.5.2 Truyền đồng bộ và không đồng bộ (9)
        • 1.5.3 Truyền một chiều, hai chiều toàn phần và gián đoạn (10)
        • 1.5.4 Truyền tải cơ sở, dải mang và truyền tải dải rộng (10)
      • 1.6. CẤU TRÚC MẠNG - TOPOLOGY (11)
        • 1.6.1 Cấu trúc bus (11)
        • 1.6.2 Cấu trúc mạch vòng( tích cực) (12)
        • 1.6.3 Cấu trúc hình sao (14)
        • 1.6.4 Cấu trúc cây (15)
      • 1.7. KIẾN TRÚC GIAO THỨC (15)
        • 1.7.1 Dịch vụ truyền thông (15)
        • 1.7.2 Giao thức (16)
        • 1.7.3 Mô hình lớp (16)
        • 1.7.4 Kiến trúc giao thức OSI (17)
        • 1.7.5 Kiến trúc giao thức TCP/IP (17)
      • 1.8. TRUY NHẬP BUS (17)
        • 1.8.1 Master/ Slave (18)
        • 1.8.2 TDMA( Time Division Multiple Access) Phương pháp đa truy nhập phân (19)
        • 1.8.5 CSMA/CA ( Carier Sense Multiple Access with Collision Avoidance) (20)
      • 1.9. BẢO TOÀN DỮ LIỆU (21)
      • 1.10. MÃ HOÁ BIT (24)
        • 1.10.1 Các tiêu chuẩn mã hoá bit (24)
        • 1.10.2 NRZ, RZ ( Phương pháp điều chế biên độ xung) (25)
      • 1.11. CHUẨN TRUYỀN DẪN (26)
        • 1.11.1 Phương thức truyền dẫn tín hiệu (27)
        • 1.11.2 RS-232 (28)
        • 1.11.3 RS-422 (29)
        • 1.11.4 RS-485 : Bảng thông số quan trọng (30)
      • 1.12 MÔI TRƯỜNG TRUYỀN DẪN (30)
      • 1.13. THIẾT BỊ LIÊN KẾT MẠNG (31)
      • 1.14. PROFIBUS (31)
      • 1.15. CAN ( Controller Area Network ) (34)
      • 1.16. DIVICENET (38)
      • 1.17. MODBUS (40)
      • 1.18. INTERBUS -S (42)
      • 1.19. AS-I ( Actuator Sensor Interface ) (0)
    • D. CÁC THÀNH PHẦN HỆ THỐNG MẠNG (47)
  • CHƯƠNG 2. THIẾT KẾ HỆ THỐNG TRUYỀN THÔNG TRÊN NỀN VI ĐIỀU KHIỂN PIC (50)
    • 2.1. PIC LÀ GÌ? (50)
    • 2.2. TẠI SAO CHỌN PIC MÀ KHÔNG CHỌN CÁC VI ĐIỀU KHIỂN KHÁC (50)
    • 2.3. KIẾN TRÚC PIC (51)
    • 2.4. RISC và CISC (52)
    • 2.5. PIPELINING (52)
    • 2.6. CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC (54)
    • 2.7. NGÔN NGỮ LẬP TRÌNH CHO PIC (55)
    • 2.8. MẠCH NẠP PIC (55)
    • 2.9. SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A (57)
    • 2.10. MỘT VÀI THÔNG SỐ VI ĐIỀU KHIỂN PIC 16F877A (58)
      • 2.12.1 Bộ nhớ chương trình (61)
      • 2.12.2 Bộ nhớ dữ liệu (61)
      • 2.12.3 STACK (66)
    • 2.13. CÁC CỔNG XUẤT NHẬP CỦA PIC 16F877A (66)
      • 2.13.1 Port A (67)
      • 2.13.2 Port B (67)
      • 2.13.3 Port C (68)
      • 2.13.4 Port D (68)
      • 2.13.4 Port E (68)
    • 2.14. TIMER 0 (69)
    • 2.15 TIMER 1 (71)
    • 2.16. TIMER 2 (72)
  • CHƯƠNG 3 THIẾT KẾ SƠ ĐỒ MẠCH PHẦN CỨNG, MẠCH IN MẠCH NGUYÊN LÝ, SƠ ĐỒ KHỐI ,NGUYÊN LÝ HOẠT ĐỘNG (75)
    • A: GIỚI THIỆU CÁC PHẦN TỬ TRONG MẠCH (75)
      • 3.1. VI ĐIỀU KHIỂN PIC 16F877A (75)
      • 3.2. LED 7 THANH (79)
      • 3.3. IC ĐỆM ULN 2003 APG (80)
      • 3.4. LM 2576T (81)
      • 3.5. TRANSISTOR A1015 (82)
      • 3.6. TRANSISTOR QUANG PC817 (83)
    • B: SƠ ĐỒ MẠCH IN VÀ MẠCH NGUYÊN LÝ V À LƯU ĐỒ THUẬT TOÁN (84)
      • 3.7. SƠ ĐỒ MẠCH IN (84)
      • 3.8. SƠ ĐỒ MẠCH NGUYÊN LÝ (85)
  • KẾT LUẬN (88)
  • TÀI LIỆU THAM KHẢO (89)

Nội dung

TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN CÔNG NGHIỆP,CƠ SỞ KỸ THUẬT, BUS TIÊU BIỂU

GIỚI THIỆU CHUNG

1.1 GIỚI THIỆU CHUNG VỀ MẠNG TRUYỀN THÔNG CÔNG NGHIỆP

Mạng truyền thông công nghiệp là một loại mạng máy tính đặc thù, có những điểm tương đồng và khác biệt so với mạng máy tính thông thường.

- Kỹ thuật truyền thông số hay truyền dữ liệu là dặc trƣng chung

Mạng máy tính trong công nghiệp đóng vai trò quan trọng trong các cấp điều khiển giám sát, điều hành sản xuất và quản lý công ty, và được xem như một phần thiết yếu trong mô hình phân cấp của mạng công nghiệp.

Mạng truyền thông công nghiệp yêu cầu tính năng thời gian thực, độ tin cậy và khả năng tương thích cao hơn so với mạng máy tính thông thường Trong khi đó, mạng máy tính thường chú trọng nhiều hơn đến độ bảo mật thông tin.

Mạng máy tính có phạm vi trải rộng từ mạng LAN nhỏ cho một nhóm máy tính đến mạng Internet lớn Nhiều mạng máy tính sử dụng dịch vụ truyền dữ liệu từ mạng viễn thông, trong khi hệ thống mạng công nghiệp thường độc lập và có phạm vi hoạt động hẹp hơn.

1.2 VAI TRÕ MẠNG TRUYỀN THÔNG CÔNG NGHIỆP

- Đơn gián hoá cấu trúc lien kết giữa các thiết bị công nghiệp

- GIảm đáng kể giá thành dây nối và công lắp đặt hệ thống

- Nâng cao độ tin cậy và độ chính xác của thông tin nhờ truyền thông số

- Nâng cao độ linh hoạt , tính năng mở của hệ thống

- Đơn giản hoá, tiện lợi hoá việc chuẩn đoán định vị lỗi sự cố các thiết bị

- Nâng cao khả năng tương tác giữa các thành phần ( phần cúng và mềm) nhờ các giao diện chuẩn

Hệ thống mới mở ra nhiều chức năng và ứng dụng, như điều khiển phân tán, giám sát và chẩn đoán lỗi từ xa qua Internet.

H1.1 Nối dây truyền thống(a) nối mạng công nghiệp(b)

1.3 PHÂN LOẠI VÀ ĐẶC TRƯNG CÁC HỆ THỐNG MẠNG CÔNG NGHIỆP

Mô hình phân cấp trong các công ty, xí nghiệp sản xuất chia các chức năng thành nhiều cấp độ khác nhau, giúp tổ chức và quản lý hiệu quả hơn.

Mô hình phân cấp chức năng trong một nhà máy công nghiệp cho thấy rằng, ở các cấp dưới, các chức năng cơ bản yêu cầu độ nhạy thời gian phản ứng cao hơn Ngược lại, các cấp trên không yêu cầu thời gian phản ứng nhanh nhưng lại cần tiếp nhận một lượng thông tin lớn.

Bus trường, hay còn gọi là bus thiết bị (fieldbus), là công nghệ truyền tin số kết nối các thiết bị điều khiển như PC và PLC với các thiết bị chấp hành và thiết bị trường Chức năng chính của bus trường là đo lường, dẫn động và chuyển đổi tín hiệu khi cần thiết, với thời gian phản ứng từ 0.1 đến vài miligiây và tốc độ truyền thông đạt Mbit/s Hiện nay, các hệ thống bus trường phổ biến bao gồm PROFIBUS, ControlNet, CAN, WorldFIP, Modbus, Foundation Fieldbus, DeviceNet, AS-I, EIB và Bitbus, đại diện cho các hệ thống bus cảm biến và chấp hành tiêu biểu.

Bus hệ thống và bus quá trình là các mạng công nghiệp dùng để kết nối các máy tính trong hệ thống điều khiển giám sát Chúng có thời gian phản ứng tiêu biểu từ vài trăm mili giây và tốc độ truyền dữ liệu từ vài trăm Kbit/s đến vài Mbit/s Các loại bus thông dụng bao gồm Ethernet và Industrial Ethernet.

Mạng xí nghiệp thực chất là một mạng LAN thông thường, kết nối các máy tính văn phòng ở cấp điều hành với cấp điều khiển giám sát mà không yêu cầu nghiêm ngặt về thời gian thực Hai loại dung phổ biến trong mạng này là Ethernet và Token-Ring, dựa trên các giao thức TCP/IP và IPX/SPX.

Mạng công ty là thành phần quan trọng trong mô hình phân cáp hệ thống truyền thông của các công ty sản xuất công nghiệp, tương tự như mạng viễn thông hoặc mạng máy tính diện rộng Chức năng chính của mạng này là kết nối các máy tính văn phòng, cung cấp dịch vụ trao đổi thông tin nội bộ và với khách hàng Để đảm bảo hiệu quả, mạng cần đáp ứng yêu cầu về tốc độ truyền thông và độ an toàn, tin cậy cao.

CƠ SỞ KỸ THUẬT

1.4.1 Thông tin, dữ liệu, tín hiệu

Thông tin đóng vai trò quan trọng trong giao tiếp, giúp các bên liên quan hiểu biết lẫn nhau về các vấn đề, sự kiện hoặc hệ thống Nó là thước đo mức độ nhận thức và hiểu biết về các khía cạnh này, góp phần nâng cao sự tương tác và hợp tác giữa các đối tác.

H1.3 Vai trò của thông tin trong các hệ thống kỹ thuật

Dữ liệu là thông tin có thể được mô tả hoặc số lượng hóa để lưu trữ và xử lý trên máy tính, thường sử dụng hệ đếm nhị phân Trong ngữ cảnh của cấu trúc một bức điện, dữ liệu chính là phần thông tin hữu ích được biểu diễn bằng dãy các bit 1 và 0 Nói cách khác, dữ liệu là phần thông tin hữu dụng (thông tin nguồn) trong một bức điện.

Lượng thông tin được định nghĩa là mức độ xoá bỏ tính bất định, phản ánh giá trị của sự hiểu biết mà một nguồn thông tin mang lại Đơn vị đo lường của lượng thông tin là "bit".

Tín hiệu là sự diễn biến của một đại lượng vật lý chứa đựng thông tin và có khả năng truyền dẫn Các tham số của tín hiệu thường bao gồm biên độ, tần số, nhịp xung, độ rộng xung, sườn xung và pha, có thể được sử dụng trực tiếp, gián tiếp hoặc kết hợp để biểu thị nội dung thông tin Tín hiệu có thể được phân loại theo diễn biến thời gian hoặc tập hợp giá trị tham số dưới dạng tương tự, rời rạc, liên tục hoặc gián đoạn.

H1.4 Một số dạng tín hiệu thông dụng

1.4.2 Truyền thông, truyền dữ liệu và truyền tín hiệu

Giao tiếp và truyền thông là quá trình trao đổi thông tin giữa hai chủ thể, được gọi là các đối tác giao tiếp, theo phương pháp đã được quy định Các đối tác này có thể là người hoặc hệ thống kỹ thuật, và họ có khả năng điều khiển hoặc quan sát lẫn nhau Để thực hiện giao tiếp, cần có các tín hiệu thích hợp, bao gồm giao tiếp bằng tiếng nói, hình ảnh, văn bản và dữ liệu Trong các hệ thống truyền thông công nghiệp hiện đại, chúng ta chủ yếu quan tâm đến việc truyền tín hiệu số hay dữ liệu, với các chuẩn giao tiếp số là tiêu chí chính.

Mã hoá là quá trình chuyển đổi dữ liệu cần trao đổi thành chuỗi tín hiệu phù hợp để truyền dẫn, bao gồm hai bước chính: mã hoá nguồn và mã hoá đường truyền Để đảm bảo tính chính xác trong việc truyền tải, tín hiệu cần sử dụng phương pháp đồng bộ hoá để phân biệt giữa các bit dữ liệu liên tiếp Cuối cùng, quá trình giải mã sẽ chuyển đổi tín hiệu nhận được trở lại thành dãy bit tương ứng.

Điều chế và điều biến tín hiệu là hai quá trình quan trọng trong truyền thông Điều chế là việc tạo ra một tín hiệu trực tiếp mang thông tin thông qua việc điều chỉnh biên độ, tần số hoặc pha, trong khi điều biến là quá trình sử dụng tín hiệu mang thông tin để điều khiển các tham số của một tín hiệu khác Mục đích chính của việc này là sử dụng tín hiệu có dải tần khác nhau để thực hiện phương pháp dồn kênh phân chia tần số, nhằm tránh nhiễu trong dải tần cơ sở.

Tốc độ truyền và tốc độ bit được đo bằng số bit được truyền tải trong một giây, thường được biểu thị bằng đơn vị baud hoặc bps Công thức tính tốc độ truyền là V = f * n, trong đó V là số bit truyền đi, f là tần số sung nhịp, và n là số bit truyền đi trong một nhịp.

Thời gian bit, hay chu kỳ bit, là khoảng thời gian trung bình cần thiết để truyền tải một bit dữ liệu, được tính bằng giá trị nghịch đảo của tốc độ truyền tải.

Thời gian lan truyền tín hiệu là khoảng thời gian cần thiết để tín hiệu di chuyển từ đầu dây này đến đầu dây khác, và nó phụ thuộc vào chiều dài của dây dẫn Công thức tính thời gian lan truyền tín hiệu là Ts = l / (9 * k * c), trong đó Ts là thời gian lan truyền, l là chiều dài dây dẫn, c là tốc độ ánh sáng (300.000.000 m/s), và k là hệ số giảm tốc độ truyền do lớp cách ly, được tính bằng k = 1 / ε, với ε là hằng số điện môi của lớp cách ly (ví dụ, Polyethylen có ε = 2.3 và k = 0.66) Do đó, thời gian lan truyền Ts sẽ thay đổi theo chiều dài dây dẫn, cụ thể là Ts = 1 / 200.000.000.

1.4.3 Tính năng thời gian thực

Hệ thống tự động hóa, đặc biệt là bus trường, có đặc trưng quan trọng liên quan đến tính năng thời gian thực Để đảm bảo hoạt động hiệu quả, hệ thống cần cung cấp kết quả đầu ra đúng đắn và kịp thời Tính năng thời gian thực không chỉ yêu cầu phản ứng nhanh mà còn phải đáp ứng kịp thời với các tác động bên ngoài Do đó, một hệ thống truyền thông cần phải truyền tải thông tin một cách tin cậy và đúng thời điểm với các đối tác truyền thông Đặc tính thời gian thực của hệ thống điều khiển phân tán phụ thuộc nhiều vào hệ thống bus trường được sử dụng, và để đạt được điều này, hệ thống bus phải có những đặc điểm nhất định.

- Độ nhanh nhạy: tốc độ truyền thông hữu ích phải đủ nhanh đẻ đáp ứng nhu cầu trao đổi dữ liệu trong một giải pháp cụ thể

- Tính tiền định : dự đoán trước về thời gian phản ứng tiêu biểu và thời gian phản ứng chậm nhất với yêu cầu từng trạm

Độ tin cậy và tính kịp thời trong vận chuyển dữ liệu là rất quan trọng, đảm bảo rằng thời gian cần thiết để truyền tải thông tin giữa các trạm trong một khoảng cách nhất định được thực hiện một cách đáng tin cậy.

- Tính bền vững : Có khả năng xử lý sự cố một cách thích hợp để không gây hại thêm cho toàn bộ hệ thống

Là phương thức các bit dữ liệu được chuyển giũa các đối tác truyền thông, có nhìn nhận từ các góc độ sau đây:

- Truyền song song hay nối tiếp

- Truyền đồng bộ hay không đồng bộ

- Truyền một chiều( simplex) hai chiều toàn phần ( duplex , full- duplex) hay hai chiều dán đoạn ( half- duplex)

- Truyền tải dải cơ sở, truyền tải dải mang và truyền tải dải rộng

1.5.1 Truyền bit song song và nối tiếp

H1.6 Truyền bit song song và truyền bit nối tiếp

Phương pháp song song là một kỹ thuật phổ biến trong bus nội bộ của máy tính, bao gồm bus địa chỉ, bus dữ liệu và bus điều khiển Do tín hiệu được truyền đồng thời, việc đồng bộ hóa giữa nơi phát và nơi nhận là rất cần thiết để đảm bảo hoạt động hiệu quả của hệ thống.

Phương pháp truyền dữ liệu tuần tự từng bit qua một đường truyền duy nhất mang lại sự đơn giản và độ tin cậy cao, mặc dù có hạn chế về tốc độ.

H1.7 Nguyên tắc truyền bit nối tiếp

1.5.2 Truyền đồng bộ và không đồng bộ

Liên quan tới truyền bit song song

Trong chế độ đồng bộ, các đối tác làm việc theo cùng một nhịp với tần số và độ lệch pha không đổi Một trạm có thể được quy định để tạo nhịp và sử dụng một đường dây riêng để truyền nhịp đồng bộ đến các trạm khác Phương pháp kinh tế hơn là áp dụng mã hoá bit thích hợp, giúp bên nhận có thể nhận diện nhịp hiệu quả.

1.5.3 Truyền một chiều, hai chiều toàn phần và gián đoạn

CÁC THÀNH PHẦN HỆ THỐNG MẠNG

- Một số chuẩn giao tiếp công nghiệp

Chuẩn MMS (Manufacturing Message Specification) là một tiêu chuẩn quốc tế cho việc xây dựng lớp ứng dụng theo mô hình OSI MMS quy định một tập hợp các dịch vụ chuẩn nhằm hỗ trợ trao đổi dữ liệu thời gian thực và thông tin điều khiển giám sát Các dịch vụ này cùng với các giao thức tương ứng đã được chuẩn hóa trong ISO/IEC 9506.

- Mô hình giao tiếp mạng :

H 1.53 Mô hình giao tiếp mạng

- Bộ điều khiển ( tổng thể )

- Bộ xử lý trung tâm

- Kiểm tra thiết bị : Khối hàm STATUS và USTATUS hỗ trợ bộ điều khiển kiểm tra trạng thái các thiết bị khác

- Thu thập dữ liệu : Dữ liệu qua các thiết bị khác có thể biểu diễn qua các biến, có 2 phương pháp : hỏi tuần tự và lập trình

- Điều khiển : có 2 phương pháp là Điều khiển tham số và Điều khiển khoá liên động

- Báo động : Bộ điều khiển sẽ gửi tới các clinet khi có sự cố, Clinet có thể thông báo lại đã xác nhận tới bộ điều khiển

- Quản lý các mối liên kết : Các chương trình ứng dụng trong bộ điều khiển sử dụng khối CONNECT để quản lý các mối liên kết

- OPC ( OLE for Process Control ) :

- Tổng quan kiến trúc OPC

OPC được phát triển dựa trên mô hình thành phần COM, mở rộng các giao diện để khai thác dữ liệu từ quá trình kỹ thuật Điều này tạo điều kiện cho việc xây dựng các ứng dụng điều khiển phân tán, giúp chúng hoạt động độc lập với mạng công nghiệp cụ thể.

THIẾT KẾ HỆ THỐNG TRUYỀN THÔNG TRÊN NỀN VI ĐIỀU KHIỂN PIC

PIC LÀ GÌ?

PIC, viết tắt của "Programable Intelligent Computer", là thuật ngữ được hãng General Instrument đặt cho vi điều khiển đầu tiên của họ, PIC1650 Thiết bị này được thiết kế để sử dụng cho các thiết bị ngoại vi của vi điều khiển CP1600 Sau đó, vi điều khiển này đã được nghiên cứu và phát triển thêm, dẫn đến sự hình thành dòng vi điều khiển PIC như chúng ta biết ngày nay.

TẠI SAO CHỌN PIC MÀ KHÔNG CHỌN CÁC VI ĐIỀU KHIỂN KHÁC

Trên thị trường hiện nay, có nhiều họ vi điều khiển như 8051, Motorola 68HC, AVR, ARM, nhưng họ vi điều khiển PIC được lựa chọn để mở rộng kiến thức và phát triển ứng dụng Lý do là vì PIC cung cấp tính linh hoạt và khả năng ứng dụng rộng rãi, giúp người học có thêm trải nghiệm thực tiễn.

Vi điều khiển này dễ dàng tìm mua tại thị trường Việt Nam với giá cả phải chăng Nó sở hữu đầy đủ các tính năng cần thiết để hoạt động độc lập.

Vi điều khiển PIC là một sự bổ sung quan trọng cho kiến thức và ứng dụng trong lĩnh vực vi điều khiển truyền thống, đặc biệt là họ vi điều khiển 8051 Tại Việt Nam và trên toàn thế giới, vi điều khiển PIC được sử dụng rộng rãi, mang lại nhiều lợi ích trong việc nghiên cứu và phát triển ứng dụng Sự phong phú về tài liệu, ứng dụng thành công đã giúp người dùng dễ dàng trao đổi, học hỏi và tìm kiếm sự hỗ trợ khi gặp khó khăn Hơn nữa, nhà sản xuất cung cấp nhiều công cụ lập trình và trình biên dịch từ đơn giản đến phức tạp, cùng với các tính năng đa dạng của vi điều khiển PIC, tạo điều kiện thuận lợi cho người dùng trong quá trình phát triển sản phẩm.

KIẾN TRÚC PIC

Cấu trúc phần cứng của một vi điều khiển đƣợc thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman và kiến trúc Havard

H 2.1 Kiến trúc Havard và kiến trúc Von-Neuman

Phần cứng của PIC được thiết kế theo kiến trúc Harvard, khác biệt với kiến trúc Von-Neumann ở chỗ bộ nhớ dữ liệu và bộ nhớ chương trình được tách riêng Trong kiến trúc Von-Neumann, cả hai bộ nhớ này nằm chung trong một bộ nhớ, khiến CPU chỉ có thể tương tác với một trong hai loại bộ nhớ tại một thời điểm, điều này không phù hợp với vi điều khiển Ngược lại, kiến trúc Harvard cho phép CPU tương tác đồng thời với cả hai bộ nhớ, cải thiện đáng kể tốc độ xử lý Hơn nữa, tập lệnh trong kiến trúc Harvard có thể được tối ưu hóa theo yêu cầu của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu, ví dụ như độ dài lệnh của vi điều khiển dòng 16F luôn là 14 bit, trong khi kiến trúc Von-Neumann yêu cầu độ dài lệnh phải là bội số của 1 byte.

RISC và CISC

Kiến trúc Harvard, khái niệm mới hơn so với kiến trúc Von-Neuman, được phát triển nhằm cải thiện tốc độ thực thi của vi điều khiển Bằng cách tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, cũng như bus chương trình và bus dữ liệu, CPU có thể truy xuất đồng thời cả hai loại bộ nhớ, giúp tăng tốc độ xử lý lên gấp đôi Hơn nữa, cấu trúc lệnh không còn phụ thuộc vào cấu trúc dữ liệu, cho phép điều chỉnh linh hoạt theo khả năng và tốc độ của từng vi điều khiển Đặc biệt, tập lệnh của vi điều khiển PIC được thiết kế với chiều dài mã lệnh cố định (14 bit cho họ 16Fxxxx) và cho phép thực thi trong một chu kỳ xung clock, trừ một số lệnh đặc biệt cần hai chu kỳ Điều này dẫn đến việc tập lệnh của vi điều khiển Harvard thường ngắn gọn và đơn giản hơn Vi điều khiển theo kiến trúc Harvard còn được gọi là RISC (Reduced Instruction Set Computer), trong khi vi điều khiển theo kiến trúc Von-Neuman được gọi là CISC (Complex Instruction Set Computer) với mã lệnh không cố định mà là bội số của 8 bit.

PIPELINING

Cơ chế xử lý lệnh của vi điều khiển PIC bao gồm một chu kỳ lệnh với 4 xung clock Khi sử dụng oscillator có tần số 4 MHz, xung lệnh đạt tần số 1 MHz, tương ứng với chu kỳ lệnh là 1 micro giây.

5 instruction @ address SUB_1 Ở đây ta chỉ bàn đến qui trình vi điều khiển xử lí đoạn chương trình trên thông qua từng chu kì lệnh Quá trình trên sẽ đƣợc thực thi nhƣ sau:

Hình 2.2: Cơ chế pipelining TCY0: đọc lệnh 1

TCY1: thực thi lệnh 1, đọc lệnh 2

TCY2: thực thi lệnh 2, đọc lệnh 3

TCY3: thực thi lệnh 3, đọc lệnh 4

Trong quy trình thực thi lệnh, lệnh 4 không được thực hiện theo trình tự của chương trình mà phải chuyển sang lệnh đầu tiên tại label SUB_1, do đó cần 2 chu kỳ xung clock để thực thi lệnh 3 Lệnh đầu tiên của SUB_1 sẽ được thực thi và lệnh tiếp theo của SUB_1 sẽ được đọc trong chu kỳ tiếp theo Quá trình này lặp lại cho các lệnh tiếp theo của chương trình Thông thường, để thực thi một lệnh, cần một chu kỳ lệnh để gọi lệnh và một chu kỳ xung clock để giải mã và thực thi lệnh đó Cơ chế pipelining được áp dụng cho các lệnh có tác động đến giá trị thanh ghi.

PC (Program Counter) cần hai chu kỳ lệnh để thực thi, vì phải gọi lệnh tại địa chỉ mà thanh ghi PC chỉ tới Sau khi xác định đúng vị trí lệnh trong thanh ghi PC, mỗi lệnh chỉ cần một chu kỳ lệnh để hoàn tất việc thực thi.

CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC

Các kí hiệu của vi điều khiển PIC:

PIC12xxxx: độ dài lệnh 12 bit

PIC16xxxx: độ dài lệnh 14 bit

PIC18xxxx: độ dài lệnh 16 bit

C: PIC có bộ nhớ EPROM (chỉ có 16C84 là EEPROM)

F: PIC có bộ nhớ flash

LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp

LV: tương tự như LF, đây là kí hiệu cũ

Các vi điều khiển PIC của hãng Microchip, phổ biến tại Việt Nam, có ký hiệu xxFxxx, trong đó xxFxxx là EEPROM và thêm chữ A ở cuối biểu thị cho flash (ví dụ: PIC16F877 là EEPROM, còn PIC16F877A là flash) Ngoài ra, dòng vi điều khiển mới dsPIC cũng được giới thiệu Khi lựa chọn vi điều khiển PIC, cần chú ý đến số chân phù hợp cho ứng dụng, với các tùy chọn từ 8 chân đến 28, 40, 44 chân và nhiều loại khác.

Khi chọn vi điều khiển PIC, cần ưu tiên loại có bộ nhớ flash để dễ dàng nạp và xóa chương trình nhiều lần Ngoài ra, cần xem xét các khối chức năng tích hợp sẵn và các chuẩn giao tiếp bên trong của vi điều khiển Cuối cùng, không quên kiểm tra dung lượng bộ nhớ chương trình mà vi điều khiển hỗ trợ.

Tất cả thông tin cần thiết về cách lựa chọn vi điều khiển PIC có thể được tìm thấy trong cuốn sách "Select PIC guide" do Microchip phát hành.

NGÔN NGỮ LẬP TRÌNH CHO PIC

Ngôn ngữ lập trình cho PIC rất phong phú, bao gồm cả ngôn ngữ lập trình cấp thấp như MPLAB, được cung cấp miễn phí bởi Microchip Bên cạnh đó, các ngôn ngữ lập trình cấp cao như C, Basic và Pascal cũng được sử dụng Đặc biệt, còn có các ngôn ngữ lập trình chuyên biệt dành riêng cho PIC như PICBasic và MikroBasic.

MẠCH NẠP PIC

Dòng sản phẩm vi điều khiển PIC rất đa dạng, cung cấp nhiều lựa chọn cho người dùng Các mạch nạp được sản xuất bởi Microchip, bao gồm PICSTART plus, MPLAB ICD 2, MPLAB PM 3 và PRO MATE, hỗ trợ tối ưu trong quá trình phát triển và lập trình.

II Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rất nhiều mạch nạp đƣợc thiết kế dành cho vi điều khiển PIC Có thể sơ lƣợc một số mạch nạp cho PIC nhƣ sau:

JDM programmer là mạch nạp cho phép nạp các vi điều khiển PIC qua chương trình Icprog, hỗ trợ tính năng nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết các mạch nạp hiện nay đều tích hợp tính năng này WARP-13A và MCP-USB là hai mạch nạp tương tự như PICSTART PLUS của Microchip, tương thích với trình biên dịch MPLAB, cho phép nạp trực tiếp vi điều khiển PIC mà không cần phần mềm nạp khác P16PRO40, mạch nạp nổi tiếng do Nigel thiết kế, cũng hỗ trợ chương trình nạp Icprog.

Mạch nạp Universal của Williem: đây không phải là mạch nạp chuyên

Các mạch nạp này có ưu điểm nổi bật như tính đơn giản, giá thành rẻ và dễ dàng tự lắp ráp Tất cả thông tin về sơ đồ, thiết kế, thi công, kiểm tra và chương trình nạp đều có sẵn và miễn phí trên Internet Tuy nhiên, nhược điểm của chúng là giới hạn số lượng vi điều khiển hỗ trợ và mỗi mạch nạp yêu cầu một chương trình nạp tương ứng.

SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A

H 2.3 Các dạng sơ đồ chân

MỘT VÀI THÔNG SỐ VI ĐIỀU KHIỂN PIC 16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit

Mỗi lệnh được thực thi trong một chu kỳ xung clock, với tốc độ tối đa 20 MHz và chu kỳ lệnh 200ns Hệ thống có bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu RAM 368x8 byte và bộ nhớ EEPROM 256x8 byte Số PORT I/O là 5, tương ứng với 33 pin I/O.

Các đặc tính ngoại vi bao gồmcác khối chức năng sau:

Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit

Timer1 là bộ đếm 16 bit với khả năng chia tần số, cho phép thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay cả khi vi điều khiển ở chế độ ngủ Trong khi đó, Timer2 là bộ đếm 8 bit, đi kèm với bộ chia tần số và bộ postcaler.

Hai bộ Capture/so sánh/điều chế độ rông xung

Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ

Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR,

CS ở bên ngoài.Các đặc tính Analog:

8 kênh chuyển đổi ADC 10 bit

Bên cạnh đó là một vài đặc tính khác của vi điều khiển nhƣ:

Bộ nhớ flash với khả năng ghi xóa đƣợc 100.000 lần

Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm

Khả năng tự nạp chương trình với sự điều khiển của phần mềm

Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân

Watchdog Timer với bộ dao động trong

Chức năng bảo mật mã chương trình

Có thể hoạt động với nhiều dạng Oscillator khác nhau

2.11 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC 16F877A

H 2.4 Sơ đồ khối vi điều khiển PIC16F877A

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory)

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash với dung lượng 8K word (1 word = 14 bit), được chia thành nhiều trang từ page 0 đến page 3.

Như vậy bộ nhớ chương trình có khả năng chứa đƣợc 8*1024 = 8192 lệnh

Một lệnh sau khi mã hóa sẽ có dung lượng 1 từ (14 bit) Để mã hóa địa chỉ của bộ nhớ chương trình 8K từ, bộ đếm chương trình cần có dung lượng 13 bit.

(PC) Khi vi điều khiển đƣợc reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector)

Khi xảy ra ngắt, bộ đếm chương trình sẽ chuyển đến địa chỉ 0004h (vector ngắt) Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình; bộ nhớ stack sẽ được trình bày chi tiết trong phần sau.

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM đƣợc chia ra làm nhiều bank Đối với

Bộ nhớ chương trình của PIC16F877A có dung lượng 128 byte, bao gồm các thanh ghi chức năng đặc biệt (SFR) ở vùng địa chỉ thấp và các thanh ghi mục đích chung (GPR) ở các vùng còn lại Các thanh ghi SFR thường xuyên sử dụng như STATUS được đặt ở tất cả các bank của bộ nhớ dữ liệu, giúp thuận tiện trong việc truy xuất và giảm thiểu lệnh trong chương trình Sơ đồ chi tiết của bộ nhớ dữ liệu PIC16F877A minh họa cấu trúc này.

2.12.2.1 Thanh ghi chức năng đặc biệt SFR Đây là các thanh ghi đƣợc sử dụng bởi CPU hoặc đƣợc dùng để thiết lập và điều khiển các khối chức năng đƣợc tích hợp bên trong vi điều khiển

Thanh ghi SFR có thể được chia thành hai loại: một loại liên quan đến các chức năng bên trong của CPU và loại còn lại dùng để thiết lập, điều khiển các khối chức năng bên ngoài như ADC, PWM, v.v Bài viết này sẽ tập trung vào các thanh ghi liên quan đến chức năng bên trong, trong khi các thanh ghi điều khiển khối chức năng sẽ được đề cập khi thảo luận về từng khối chức năng cụ thể.

Thanh ghi STATUS (03h, 83h, 103h, 183h) lưu trữ kết quả của phép toán thực hiện bởi khối ALU, trạng thái reset, và các bit lựa chọn bank cần truy xuất trong bộ nhớ dữ liệu.

Thanh ghi OPTION_REG (81h, 181h) cho phép người dùng đọc và ghi dữ liệu, điều khiển chức năng pull-up của các chân trong PORTB, và thiết lập các tham số liên quan đến xung tác động, cạnh tác động của ngắt ngoại vi cũng như bộ đếm Timer0.

Thanh ghi INTCON (0Bh, 8Bh, 10Bh, 18Bh) cho phép thực hiện các thao tác đọc và ghi, đồng thời chứa các bit điều khiển và cờ hiệu liên quan đến việc timer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt interrupt-on-change tại các chân của PORTB.

Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi

Thanh ghi PIR1 (0Ch) lưu trữ cờ ngắt từ các khối chức năng ngoại vi, với các ngắt này được cho phép thông qua các bit điều khiển trong thanh ghi PIE1.

Thanh ghi PIE2 (8Dh) có nhiệm vụ điều khiển các ngắt của các khối chức năng như CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.

Thanh ghi PIR2 (0Dh) lưu trữ các cờ ngắt từ các khối chức năng ngoại vi, với các ngắt này được cho phép thông qua các bit điều khiển trong thanh ghi PIE2.

Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển

2.12.2.2 Thanh ghi mục đích chung GPR

Các thanh ghi có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG (File Select Register) Đây là các thanh ghi dữ liệu thông thường, cho phép người sử dụng tùy chỉnh để lưu trữ biến số, hằng số, kết quả hoặc tham số theo mục đích của chương trình.

CÁC CỔNG XUẤT NHẬP CỦA PIC 16F877A

Cổng xuất nhập (I/O port) là phương tiện quan trọng giúp vi điều khiển tương tác với môi trường bên ngoài Qua các tương tác đa dạng này, chức năng của vi điều khiển được thể hiện rõ ràng.

Cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin) với số lượng và chức năng khác nhau tùy thuộc vào thiết kế của vi điều khiển Ngoài chức năng cơ bản, một số chân còn tích hợp các đặc tính giao tiếp ngoại vi, cho phép chúng thực hiện nhiều nhiệm vụ khác nhau Các chân này có thể được xác lập và điều khiển thông qua các thanh ghi SFR liên quan, mang lại tính linh hoạt cho việc quản lý cổng xuất nhập.

Vi điều khiển PIC16F877A sở hữu 5 cổng xuất nhập: PORTA, PORTB, PORTC, PORTD và PORTE Cấu trúc và chức năng chi tiết của từng cổng sẽ được trình bày trong các phần tiếp theo.

PORTA (RPA) có 6 chân I/O hai chiều, cho phép xuất và nhập dữ liệu Chức năng của các chân này được điều khiển thông qua thanh ghi TRISA (địa chỉ 85h) Để thiết lập một chân trong PORTA là đầu vào, cần "set" bit điều khiển tương ứng trong TRISA; ngược lại, để thiết lập chân đó là đầu ra, cần "clear" bit điều khiển Quá trình này tương tự cho các PORT khác và các thanh ghi TRIS tương ứng (TRISA, TRISB, TRISC, TRISD, TRISE) Ngoài ra, PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog, ngõ vào xung clock của Timer0, và ngõ vào của bộ giao tiếp MSSP Các thanh ghi SFR liên quan đến PORTA bao gồm nhiều thành phần quan trọng.

PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA

TRISA (địa chỉ 85h) : điều khiển xuất nhập

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ

PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương

PORTB không chỉ được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ khác nhau, mà còn liên quan đến ngắt ngoại vi và bộ Timer0 Hơn nữa, PORTB tích hợp chức năng điện trở kéo lên, có thể được điều khiển thông qua chương trình.

Các thanh ghi SFR liên quan đến PORTB bao gồm:

PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB

TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0

PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISC

Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART

Các thanh ghi điều khiển liên quan đến PORTC:

PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 87h) : điều khiển xuất nhập

PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISD

PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)

Các thanh ghi liên quan đến PORTD bao gồm:

Thanh ghi PORTD : chứa giá trị các pin trong PORTD

Thanh ghi TRISD : điều khiển xuất nhập

Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP

PORTE (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tương

Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP

Các thanh ghi liên quan đến PORTE bao gồm:

PORTE : chứa giá trị các chân trong PORTE

TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP ADCON1 : thanh ghi điều khiển khối ADC

TIMER 0

Timer0 là một trong ba bộ đếm của vi điều khiển PIC16F877A, hoạt động với độ phân giải 8 bit và được kết nối với bộ chia tần số 8 bit Cấu trúc của Timer0 cho phép người dùng lựa chọn xung clock và cạnh tích cực của xung clock Khi Timer0 bị tràn, ngắt Timer0 sẽ được kích hoạt, điều này được kiểm soát bởi bit TMR0IE (INTCON).

TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 nhƣ sau

Các bit PS2:PS0 trong thanh ghi OPTION_REG xác định tỉ số chia tần số của prescaler Để hiểu rõ hơn về các bit điều khiển, hãy tham khảo thanh ghi OPTION_REG Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ làm xóa chế độ hoạt động của prescaler Đặc biệt, khi tác động lên Timer0, giá trị thanh ghi TMR0 sẽ xóa prescaler nhưng không ảnh hưởng đến đối tượng tác động của prescaler Ngược lại, khi tác động lên WDT, lệnh CLRWDT sẽ xóa prescaler và ngừng chức năng hỗ trợ cho WDT Các thanh ghi điều khiển liên quan đến Timer0 là rất quan trọng trong việc quản lý hoạt động của hệ thống.

TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE)

OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler

Để Timer0 hoạt động ở chế độ Timer, cần phải xóa bit TOSC (OPTION_REG) Khi đó, giá trị của thanh ghi TMR0 sẽ tăng theo từng chu kỳ xung đồng hồ, với tần số vào Timer0 bằng tần số của oscillator Khi giá trị thanh ghi TMR0 giảm từ FFh về 00h, ngắt Timer0 sẽ được kích hoạt Thanh ghi TMR0 cho phép ghi và xóa, giúp người dùng linh hoạt trong việc xác định thời điểm ngắt Timer0 xuất hiện.

Để Timer0 hoạt động ở chế độ đếm, cần thiết lập bit TOSC (OPTION_REG) Tín hiệu đầu vào cho bộ đếm sẽ được lấy từ chân RA4/TOCK1 Bit OPTION_REG cho phép người dùng chọn cạnh tác động vào bộ đếm; nếu TOSE=0, cạnh tác động sẽ là cạnh lên, còn nếu TOSE=1, cạnh tác động sẽ là cạnh xuống.

Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON) sẽ được set, đánh dấu cờ ngắt của Timer0 Cờ ngắt này cần được xóa bởi chương trình trước khi bộ đếm tiếp tục quá trình đếm Lưu ý rằng ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ sleep Nếu prescaler được sử dụng cho Timer0, thì WDT sẽ không nhận được sự hỗ trợ của prescaler và ngược lại Prescaler được điều khiển bởi thanh ghi OPTION_REG, trong đó bit PSA (OPTION_REG) xác định đối tượng tác động của prescaler.

TIMER 1

Timer1 là bộ định thời 16 bit, với giá trị được lưu trong hai thanh ghi TMR1H và TMR1L Cờ ngắt của Timer1 là bit TMR1IF (PIR1) và bit điều khiển là TMR1IE (PIE) Timer1 hoạt động ở hai chế độ: chế độ định thời (timer) sử dụng xung clock của oscillator, và chế độ đếm (counter) sử dụng xung từ bên ngoài qua chân RC0/T1OSO/T1CKI, với cạnh tác động là cạnh lên Chế độ hoạt động được chọn thông qua bit TMR1CS (T1CON).

Timer1 có chức năng reset input được điều khiển bởi khối CCP (Capture/Compare/PWM) Khi bit T1OSCEN (T1CON) được set, Timer1 nhận xung clock từ hai chân đếm sau cạnh xuống đầu tiên của xung ngõ vào, trong khi PORTC bỏ qua tác động của hai bit TRISC và PORTC được gán giá trị 0 Khi bit T1OSCEN được clear, Timer1 sẽ lấy xung đếm từ oscillator hoặc từ chân RC0/T1OSO/T1CKI.

Timer1 có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous), được xác định bởi bit điều khiển T1CON Khi bit này bằng 1, xung đếm sẽ không đồng bộ với xung clock bên trong Điều này cho phép Timer1 tiếp tục quá trình đếm ngay cả khi vi điều khiển đang ở chế độ ngủ, và ngắt do Timer1 tạo ra khi bị tràn có khả năng kích hoạt các tác vụ khác.

“đánh thức” vi điều khiển Ở chế độ đếm bất đồng bộ, Timer1 không thể đƣợc sử dụng để làm nguồn xung clock cho khối CCP

Khi giá trị Khi=0, xung đếm vào sẽ đồng bộ hóa Timer1 với xung clock bên trong Trong chế độ này, Timer1 sẽ không hoạt động khi vi điều khiển ở chế độ ngủ Các thanh ghi liên quan đến Timer1 bao gồm nhiều thành phần quan trọng.

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE)

PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)

PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)

TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1

TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1

T1CON (địa chỉ 10h): xác lập các thông số cho Timer1.

TIMER 2

Timer2 là bộ định thời 8 bit, hỗ trợ bởi hai bộ chia tần số prescaler và postscaler Giá trị đếm của Timer2 được lưu trữ trong thanh ghi TMR2, trong khi bit TMR2ON (T2CON) cho phép ngắt Timer2 hoạt động Cờ ngắt Timer2 được biểu thị bởi bit TMR2IF (PIR1) Tần số xung vào có thể là 1:1, 1:4 hoặc 1:16, được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON).

Hình 2.8 Sơ đồ khối Timer2

Timer2 được hỗ trợ bởi thanh ghi PR2, trong đó giá trị đếm trong thanh ghi TMR2 sẽ tăng từ 00h đến giá trị trong PR2 và sau đó reset về 00h Khi reset, PR2 nhận giá trị mặc định là FFh Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16, được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0 Ngõ ra của postscaler đóng vai trò quan trọng trong việc điều khiển cờ ngắt.

Timer2 không chỉ kết nối với khối SSP mà còn đảm nhận vai trò quan trọng trong việc tạo ra xung clock đồng bộ cho khối giao tiếp SSP Các thanh ghi liên quan đến Timer2 cũng rất quan trọng trong quá trình hoạt động này.

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE và PEIE)

PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)

PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE)

TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2

T2CON (địa chỉ 12h): xác lập các thông số cho Timer2.PR2 (địa chỉ

Ta có một vài nhận xét về Timer0, Timer1 và Timer2 nhƣ sau:

Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1 là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh)

Timer0, Timer1 và Timer2 đều có hai chế độ hoạt động là timer và counter Xung clock cú tần số bằng ẳ tần số của oscillator

Xung tác động lên Timer0 có thể được điều chỉnh qua prescaler và có nhiều chế độ khác nhau, bao gồm tần số và cạnh tác động, trong khi Timer1 có các thông số cố định Timer2 hỗ trợ hai bộ chia tần số độc lập là prescaler và postcaler, nhưng cạnh tác động vẫn được giữ cố định ở cạnh lên Timer1 liên quan đến khối CCP, trong khi Timer2 kết nối với khối SSP.

Một vài so sánh sẽ giúp ta dễ dàng lựa chọn đƣợc Timer thích hợp cho ứng dụng

THIẾT KẾ SƠ ĐỒ MẠCH PHẦN CỨNG, MẠCH IN MẠCH NGUYÊN LÝ, SƠ ĐỒ KHỐI ,NGUYÊN LÝ HOẠT ĐỘNG

Ngày đăng: 05/08/2021, 21:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN