1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 2 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 nghiệp
Chuyên ngành Điện Dân Dụng Công Nghiệp
Thể loại đồ án tốt nghiệp
Năm xuất bản 2010
Thành phố Hải Phòng
Định dạng
Số trang 92
Dung lượng 2,63 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 biệt, 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 là 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 Ngược lại, mạng máy tính thường chú trọng hơn đến độ bảo mật thông tin.

Mạng máy tính có thể có phạm vi khác nhau, từ nhỏ như mạng LAN cho một nhóm máy tính đến lớn như mạng Internet 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 các hệ thống mạng công nghiệp thường hoạt động độc lập và có phạm vi 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à khả năng ứng dụng, bao gồm các hệ thống điều khiển phân tán, giám sát điều khiển 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 sản xuất giúp tổ chức các chức năng thành nhiều cấp khác nhau, tạo ra sự rõ ràng và hiệu quả trong quản lý.

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 yêu cầu độ nhạy thời gian phản ứng cao hơn, trong khi cấp trên không cần thời gian phản ứng nhanh nhưng lại phải xử lý một lượng thông tin lớn.

Bus trường, hay bus thiết bị (fieldbus), là công nghệ truyền tin số dùng để 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 Các bus trường thường chỉ hoạt động với các bộ điều khiển, được gọi là bus chấp hành/cảm biến, 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 như PROFIBUS, ControlNet, CAN, WorldFIP, Modbus, Foundation Fieldbus, DeviceNet, AS-I, EIB và Bitbus là những ví dụ tiêu biểu được sử dụng rộng rãi trong ngành công nghiệp.

Bus hệ thống và bus quá trình là hai loại 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 Bus hệ thống (system bus) và bus quá trình (process bus) thường có thời gian phản ứng chỉ vài trăm miligiây, với tốc độ truyền dữ liệu từ vài trăm Kbit/s đến vài Mbit/s Các loại bus này bao gồm Ethernet và Industrial Ethernet, được sử dụng rộng rãi trong các ứng dụng công nghiệp.

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 văn phòng giữa cấp điều hành và cấp giám sát mà không yêu cầu khắt khe về thời gian thực Hai loại dung phổ biến được sử dụng là Ethernet và Token-Ring, dựa trên các giao thức TCP/IP và IPX/SPX.

Mạng công ty trong mô hình phân cáp hệ thống truyền thông của một 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 Điều này đòi hỏi tốc độ truyền thông cao và độ an toàn, tin cậy trong việc xử lý dữ liệu.

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 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ề một vấn đề cụ thể.

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ố 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ấ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 là khái niệm liên quan đến việc giảm bớt sự bất định, và giá trị của thông tin được đo bằng đơn vị "bit" Thông tin giúp nâng cao mức độ hiểu biết và làm rõ những điều chưa chắc chắn.

Tín hiệu là sự diễn biến của một đại lượng vật lý mang thông tin và dữ liệu có khả năng truyền dẫn Các tham số của tín hiệu thường được sử dụng để biểu thị nội dung thông tin, bao gồm biên độ, tần số, nhịp xung, độ rộng xung, sườn xung và pha 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 các dạng tương tự, rời rạc, liên tục và 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 đối tác theo phương pháp đã được quy định Đối tác có thể là con 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 tập trung vào truyền tín hiệu số, với các chuẩn giao tiếp số là điều quan trọng.

Mã hóa là quá trình chuyển đổi thông tin (dữ liệu) cần trao đổi thành một chuỗi tín hiệu phù hợp để truyền tải Quá trình này bao gồm ít nhất hai bước: mã hóa nguồn và mã hóa đường truyền Để phân biệt giữa các bit dữ liệu nối tiếp nhau, cần áp dụng phương pháp đồng bộ hóa Cuối cùng, quá trình giải mã sẽ chuyển đổi tín hiệu nhận được 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ế tạo ra tín hiệu mang thông tin thông qua việc điều chỉnh biên độ, tần số hoặc pha, cho phép tham số thông tin có thể có nhiều giá trị khác nhau Trong khi đó, điều biến sử dụng tín hiệu mang thông tin để điều khiển và thay đổi các tham số của một tín hiệu thứ hai 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ố, đồng thời giảm thiểu nguy cơ nhiễu trong quá trình truyền dẫn ở 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 được truyền đi trong mỗi 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 một bit dữ liệu Nó được tính bằng giá trị nghịch đảo của tốc độ truyền tải, cho thấy mối quan hệ giữa thời gian và hiệu suất truyền thông.

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 sang đầu dây khác, 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 được xác định 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 Hệ số k đượ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ụ như Polyethylen có ε = 2.3 và k = 0.66 Do đó, thời gian lan truyền Ts sẽ tỷ lệ thuận với chiều dài dây dẫn, cho thấy Ts = 1 / 200.000.000.

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

Tính năng thời gian thực là một trong những đặc trưng quan trọng nhất của các hệ thống tự động hóa, đặc biệt là bus trường Sự chính xác của kết quả đầu ra phụ thuộc vào thời điểm đưa ra kết quả Một hệ thống thời gian thực không chỉ cần phản ứng nhanh mà còn phải kịp thời với các yêu cầu tác động bên ngoài Do đó, hệ thống truyền thông cần đảm bảo khả năng truyền tải thông tin một cách tin cậy và kịp thời Đặ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 Để đảm bảo tính năng thời gian thực, hệ thống bus phải đáp ứng các đặc tính 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 là yếu tố quan trọng trong việc vận chuyển dữ liệu, đả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 khoảng cách nhất định được thực hiện một cách hiệu quả và đá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 được sử dụng 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 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 tính chính xác và hiệu quả trong quá trình truyền tải dữ liệu.

Phương pháp nối tiếp từng bit cho phép truyền dữ liệu qua một đường truyền duy nhất, mặc dù có hạn chế về tốc độ, nhưng lại đảm bảo tính đơn giản và độ tin cậy cao trong quá trình thực hiện.

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à độ lệch pha không đổi Một trạm có thể được chỉ đị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ã hóa bit thích hợp, giúp bên nhận có thể nhận diện tín hiệu một cách chính xác.

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à tiêu chuẩn quốc tế cho việc phát triển 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ụ và giao thức tương ứng của MMS đã đượ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ừ quy trình kỹ thuật Điều này tạo nền tảng cho việc xây dựng các ứng dụng điều khiển phân tán, không bị ràng buộc vào 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à tên gọi được hãng General Instrument đặt cho vi điều khiển đầu tiên của họ, PIC1650, được thiết kế cho các thiết bị ngoại vi của vi điều khiển CP1600 Vi điều khiển này đã trải qua quá trình nghiên cứu và phát triển, dẫn đến sự hình thành của dòng vi điều khiển PIC hiện 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, trong đó họ 8051 thường được giảng dạy cơ bản tại các trường đại học Tuy nhiên, việc lựa chọn họ vi điều khiển PIC để mở rộng kiến thức và phát triển ứng dụng là hợp lý vì những ưu điểm nổi bật của 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á thành hợp lý 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 8051 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 Tại Việt Nam và trên toàn thế giới, vi điều khiển PIC đang được sử dụng phổ biến, mang lại nhiều lợi ích cho việc nghiên cứu và phát triển ứng dụng Sự phong phú của tài liệu và các ứng dụng đã được phát triển thành công giúp người dùng dễ dàng trao đổi, học hỏi và tìm kiếm hướng dẫn khi gặp khó khăn Hơn nữa, nhà sản xuất cung cấp nhiều công cụ hỗ trợ từ trình biên dịch đến nạp chương trình, 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 sử dụng.

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

Tổ chức 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 biệt Trong kiến trúc Von-Neumann, cả hai bộ nhớ này nằm chung trong một bộ nhớ, cho phép tổ chức linh hoạt nhưng chỉ cho phép CPU tương tác với một 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ả bộ nhớ dữ liệu và bộ nhớ chương trì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, như ví dụ ở vi điều khiển dòng 16F với độ dài lệnh cố định 14 bit, trong khi kiến trúc Von-Neumann yêu cầu độ dài lệnh là bội số của 1 byte.

RISC và CISC

Kiến trúc Harvard là một khái niệm mới hơn so với kiến trúc Von-Neumann, được phát triển để 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 với bus chương trình và bus dữ liệu, CPU có khả năng 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 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 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à thực thi trong một chu kỳ xung clock, ngoại trừ một số lệnh đặc biệt cần hai chu kỳ Điều này dẫn đến việc vi điều khiển theo kiến trúc Harvard có tập lệnh 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-Neumann đượ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 sẽ đạ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

TCY4: Lệnh 4 không được thực thi theo quy trình thông thường, mà phải bắt đầu từ label SUB_1, do đó chu kỳ thực thi của lệnh này chỉ để đọc lệnh đầu tiên tại SUB_1, yêu cầu 2 chu kỳ xung clock để hoàn tất TCY5: Thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo trong SUB_1 Quá trình này lặp lại cho các lệnh tiếp theo trong chương trình Thông thường, để thực thi một lệnh, cần một chu kỳ để gọi lệnh và một chu kỳ nữa để giải mã và thực thi Với cơ chế pipelining, các lệnh có thể thay đổi giá trị thanh ghi.

PC (Program Counter) cần hai chu kỳ lệnh để thực thi, do phải gọi lệnh tại địa chỉ mà thanh ghi PC chỉ tới 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 thành 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ũ

Vi điều khiển PIC, sản phẩm của hãng Microchip, rất phổ biến tại Việt Nam và được phân loại theo các ký hiệu như xxFxxx, trong đó xxFxxx là EEPROM và xxFxxxA là flash (ví dụ: PIC16F877 là EEPROM, còn PIC16F877A là flash) Ngoài ra, dòng vi điều khiển mới là dsPIC cũng được giới thiệu Khi lựa chọn vi điều khiển PIC phù hợp cho ứng dụng, cần chú ý đến số chân của vi điều khiển, vì có nhiều loại với số lượng chân khác nhau, từ 8 chân đến 28, 40, 44 chân, đáp ứng nhu cầu đa dạng của người sử dụng.

Khi chọn vi điều khiển PIC, cần ưu tiên những loại có bộ nhớ flash để dễ dàng nạp và xóa chương trình nhiều lần Đồng thời, hãy 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, cần lưu ý đến 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 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ú và đa dạng Các ngôn ngữ lập trình cấp thấp như MPLAB, được cung cấp miễn phí bởi Microchip, là lựa chọn phổ biến Bên cạnh đó, các ngôn ngữ lập trình cấp cao hơn như C, Basic, và Pascal cũng được sử dụng rộng rãi Ngoài ra, còn có những ngôn ngữ lập trình chuyên biệt cho PIC như PICBasic và MikroBasic, đáp ứng nhu cầu phát triển ứng dụng cho vi điều khiển này.

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, giúp hỗ trợ tối ưu trong quá trình phát triển.

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:

Mạch nạp JDM cho phép nạp các vi điều khiển PIC qua chương trình Icprog với tính năng nạp điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết các mạch nạp hiện nay đều hỗ trợ tính năng này WARP-13A và MCP-USB tương tự như mạch nạp 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 cho vi điều khiển PIC mà không cần phần mềm nạp khác như Icprog P16PRO40, được thiết kế bởi Nigel, cũng khá nổi tiếng và hỗ trợ cả chương trình nạp riêng của ông lẫn 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, chi phí thấp và dễ dàng tự lắp ráp Thông tin về sơ đồ mạch, cách 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 các mạch nạp này là số lượng vi điều khiển được hỗ trợ hạn chế, và mỗi mạch nạp cần đi kèm với 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 cho phép là 20 MHz và chu kỳ lệnh là 200ns Hệ thống sở hữu bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu RAM 368x8 byte và bộ nhớ dữ liệu EEPROM 256x8 byte Ngoài ra, có tổng cộng 5 PORT I/O 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à một bộ đếm 16 bit tích hợp bộ chia tần số, cho phép thực hiện chức năng đếm dựa trên xung clock ngoại vi ngay cả khi vi điều khiển đang ở 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 có dung lượng 1 từ (14 bit) Để mã hóa địa chỉ cho 8K từ của bộ nhớ chương trình, 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ẽ trỏ đến địa chỉ 0004h (Interrupt vector) Lưu ý rằng 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 đề cập 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 (SFG) ở 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ư thanh ghi STATUS, được phân bổ ở tất cả các bank của bộ nhớ dữ liệu, giúp dễ dàng truy xuất và giảm thiểu số lệnh trong chương trình Sơ đồ bộ nhớ dữ liệu PIC16F877A được trình bày cụ thể như sau:

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 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 và PWM 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ề các khối chức năng đó.

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

Thanh ghi OPTION_REG (81h, 181h) cho phép thực hiện đọc và ghi, điều khiển chức năng pull-up của các chân trong PORTB, đồng thời xác 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 và bộ đếm Timer0.

Thanh ghi INTCON (0Bh, 8Bh, 10Bh, 18Bh) cho phép thực hiện thao tác đọc và ghi, bao gồm các bit điều khiển và cờ hiệu khi timer0 xảy ra tình trạng tràn, cũng như các 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, trong khi các ngắt này được kích hoạt thông qua các bit điều khiển trong thanh ghi PIE1.

Thanh ghi PIE2 (8Dh) quản lý các bit điều khiển cho ngắt của các khối chức năng như CCP2, SSP bus, 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 linh hoạt lưu trữ biến số, hằng số, kết quả hoặc tham số tùy 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 quá trình tương tác đa dạng này, chức năng của vi điều khiển được thể hiện một cách 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 từng loại vi điều khiển Ngoài vai trò chính là cổng xuất nhập, một số chân còn tích hợp thêm chức năng giao tiếp ngoại vi, cho phép chúng thực hiện nhiều tác vụ khác nhau Các chức năng này có thể được điều khiển và thiết lập thông qua các thanh ghi SFR liên quan đến từng chân xuất nhập.

Vi điều khiển PIC16F877A được trang bị 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE Mỗi cổng có cấu trúc và chức năng riêng, sẽ được trình bày chi tiết 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 tín hiệ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 thành input, cần "set" bit điều khiển tương ứng trong TRISA; ngược lại, để thiết lập thành output, cần "clear" bit đó Quy trình này tương tự cho các PORT khác với các thanh ghi điều khiển tương ứng là TRISB, TRISC, TRISD và TRISE Ngoài ra, PORTA còn đóng vai trò là ngõ ra cho bộ ADC, bộ so sánh, ngõ vào analog, xung clock của Timer0 và ngõ vào cho bộ giao tiếp MSSP Các thanh ghi SFR liên quan đến PORTA cũng rất 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 để 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 Thêm vào đó, PORTB còn 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, được thiết kế dưới dạng bộ đếm 8 bit 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 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, với bit TMR0IE (INTCON) đóng vai trò là bit điều khiển của Timer0.

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, cần xem lại 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 Khi Timer0 là đối tượng tác động, việc thay đổi giá trị thanh ghi TMR0 sẽ xóa prescaler nhưng không thay đổi đối tượng tác động của nó Đối với WDT, lệnh CLRWDT sẽ xóa prescaler và đồng thời ngừng chức năng hỗ trợ cho WDT Các thanh ghi điều khiển liên quan đến Timer0 cần được chú ý.

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ị trong 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 từ FFh trở 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) Xung tác động cho bộ đếm được lấy từ chân RA4/TOCK1 Bit OPTION_REG cho phép lựa chọn cạnh tác động vào bộ đếm, với cạnh lên khi TOSE=0 và cạnh xuống khi TOSE=1.

Khi thanh ghi TMR0 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 qua chương trình trước khi bộ đếm bắt đầu lại 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, WDT sẽ không nhận được hỗ trợ từ prescaler và ngược lại Prescaler được điều khiển bởi thanh ghi OPTION_REG, với 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 được xác định bởi bit TMR1IF (PIR1), trong khi bit điều khiển TMR1IE (PIE) cho phép kích hoạt ngắt Timer1 hoạt động với hai chế độ: chế độ định thời (timer) sử dụng xung clock của oscillator, và chế độ đếm (counter) nhận xung từ các sự kiện bên ngoài qua chân RC0/T1OSO/T1CKI Chế độ hoạt động được chọn thông qua bit TMR1CS (T1CON).

Timer1 có chức năng reset input bên trong, được điều khiển bởi một trong hai 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: đồ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 ở chế độ sleep, và ngắt do Timer1 gây ra khi bị tràn có khả năng xảy ra.

“đá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

Trong chế độ Khi=0, xung đếm vào sẽ đồng bộ hóa Timer1 với xung clock nội bộ Ở 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 rất quan trọng cho việc điều khiển và quản lý thời gian.

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, được hỗ trợ bởi hai bộ chia tần số prescaler và postscaler Thanh ghi TMR2 chứa giá trị đếm của Timer2, trong khi bit TMR2ON (T2CON) cho phép ngắt Timer2 hoạt động Cờ ngắt của Timer2 được xác định bởi bit TMR2IF (PIR1) Tần số xung ngừ 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 hoạt động với thanh ghi PR2, nơi giá trị đếm trong thanh ghi TMR2 tăng từ 00h đến giá trị trong PR2 trước khi được reset về 00h Khi reset, thanh ghi 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 tỷ lệ chia từ 1:1 đến 1:16, được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0 Ngõ ra của postscaler có 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 tạo ra xung clock đồng bộ cho khối giao tiếp này Các thanh ghi liên quan đến Timer2 là rất quan trọng trong việc quản lý và điều khiển hoạt động của nó.

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

Timer0 có khả năng nhận xung tác động với sự hỗ trợ của prescaler và có thể được cấu hình ở nhiều chế độ khác nhau, bao gồm tần số và cạnh tác động Ngược lại, các thông số xung tác động lên Timer1 là cố định Timer2 được trang bị hai bộ chia tần số độc lập, prescaler và postcaler, nhưng cạnh tác động vẫn được giữ cố định ở cạnh lên Trong khi Timer1 liên quan đến khối CCP, Timer2 lại 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

GIỚI THIỆU CÁC PHẦN TỬ TRONG MẠCH

Vi điều khiển PIC16Fxxx có tập lệnh gồm 35 lệnh với độ dài 14 bit, mỗi lệnh được thực thi trong một chu kỳ xung clock Tốc độ hoạt động tối đa là 20 MHz, tương đương với chu kỳ lệnh 200ns Bộ nhớ chương trình đạt 8Kx14 bit, trong khi bộ nhớ dữ liệu bao gồm 368x8 byte RAM và 256x8 byte EEPROM Vi điều khiển này có 5 PORT I/O với tổng cộng 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 tích hợp bộ 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 đang ở chế độ sleep.

Timer2: bộ đếm 8 bit với bộ chia tần số, 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

Bộ nhớ EEPROM với khả năng ghi xóa đƣợc 1.000.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

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

Led 7 thanh bao gồm nhiều loại led tích hợp bên trong các led đƣợc nối chung nhau 1 chân Trong thực tế có 2 loại led 7 thanh là loại anot chung và loại katot chung Trong chương trình này sử dụng loại anot chung , các led sẽ có chung nhau chân nguồn (chân dương) chân còn lại a,b,c,d,e,f,g của led nào đƣợc nối đất thì led đó sẽ sáng.Thay vì sử dụng loại led 7 thanh trên thị trường đang sử dụng,ở đây em thiết kế led 7 thanh được tích hợp bởi nhiều led đơn trong đó.Điện áp đƣa vào anot chung là 12 VDC, Imax của led 7 thanh là khoảng 1,4A.Bảng logic nhƣ sau: a b c d e f G h

- Sơ đồ chân và sơ đồ logic

- Sơ đồ nguyên lý cấu tạo trong của ULN2003:(1cặp darlington) Đặc tính của ULN2003:

• Đầu ra điện áp cao: 50V

• Thích hợp với nhiều kiểu logic

• Ứng dụng điều khiển rơle Đầu vào đƣợc mở với điện áp là3.85V,dòng là 1.85mA;Đầu ra có thể đƣa 500mA xuống mass

Ngoài các linh kiện chính, còn có một số linh kiện quan trọng khác như điện trở, điốt, LED, rơle 12VDC, tụ điện, cầu chì và các nút nhấn Tuy nhiên, do điều kiện hạn chế, tôi chỉ đề cập đến những linh kiện thiết yếu này.

SƠ ĐỒ MẠCH IN VÀ MẠCH NGUYÊN LÝ V À LƯU ĐỒ THUẬT TOÁN

3.8 SƠ ĐỒ MẠCH NGUYÊN LÝ

Khởi tạo các modul cần thiết: Timer, cổng truyền thông Đọc thông số từ cảm biến

Có nhận dữ liệu Đọc dữ liệu nhận

Ngày đăng: 16/11/2023, 07:34

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

TÀI LIỆU LIÊN QUAN

w