CHƯƠNG 2: TỔNG QUAN VỀ VI ĐIỀU KHIỂN
2.1.
2.1.1.
Vi điều khiển là gì?
Giới thiệu chung
Vi điều khiển (VĐK) là một máy tính được tích hợp trên một chíp, nó thường
được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ
thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các
bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ,
các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số... Ở
máy tính thì các module thường được xây dựng bởi các chíp và mạch ngoài.
VĐK có khả năng như một máy tính, nhưng có ưu điểm đặc biệt về kích
thước rất nhỏ (rộng cỡ 2cm, dài từ 3÷8 cm, với số chân từ 18, 28, 40, 48, 64), nên
đã xâm nhập sâu hơn nữa vào các thiết bị đo lường, điều khiển tự động hóa và đặc
biệt vào các thiết bị của đời sống hàng ngày như đồng hồ thời gian, đồng hồ báo
giờ, đầu máy ghi và phát âm hay phát hình (video, VCD,DVD…). Đỉnh cao của
việc dùng vi điều khiển là dùng trong người máy (ROBOT) và thiết bị PLC để điều
khiển logic chương trình hóa dây chuyền sản xuất tự động.
VĐK thường được dùng để xây dựng các hệ thống nhúng. Nó xuất hiện khá
nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu
đọc DVD, thiết bị đa phương tiện, dây chuyền tự động…
2.1.2.
Phân loại
Độ dài thanh ghi
Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia ra
các loại vi điều khiển 8 bit, 16 bit hay 32 bit …
Các loại VĐK 16 bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều
hơn, phong phú hơn. Tuy nhiên bất cứ chương trình nào viết bằng VĐK 16 bit
chúng ta đều có thể viết trên vi điều khiển 8 bit với chương trình thích hợp.
Kiến trúc CISC và RISC
Vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp. Các VĐK này có
một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễ dàng
hơn khi viết chương trình. Vi điều khiển RISC là vi điều khiển có tập lệnh đơn
giản. Chúng có một số lượng nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần
cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên nó đòi hỏi
người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.
Kiến trúc Harvard và kiến trúc Von-Neumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu.
Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn
giản hơn. Kiến trúc Von-Neumann sử dụng chung bộ nhớ cho chương trình và dữ
liệu. Điều này làm cho VĐK gọn nhẹ hơn, giá thành rẻ hơn.
2.1.3.
Cấu trúc tổng quan của vi điều khiển
CPU:
Là trái tim của hệ thống. Là nơi quản lý tất cả các hoạt động của VĐK. Bên
trong CPU gồm:
-
ALU là bộ phận thao tác trên các dữ liệu.
Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực hiện.
Thanh ghi lệnh IR, lưu trữ opcode của lệnh được thực thi.
Thanh ghi PC, lưu giữ lại địa chỉ của lệnh kế tiếp cần thực thi.
Một tập các thanh ghi dùng để lưu thông tin tạm thời.
ROM:
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa số
liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá
trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ
thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.
RAM:
RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông tin,
lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xủa lí thông
tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát,
chuyển đổi dữ liệu.
BUS:
BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ, bus
dữ liệu, và bus điều khiển.
Bộ định thời: Được sử dụng cho các mục đích chung về thời gian.
Watchdog: Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất
thường”.
ADC: Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bên
ngoài đi vào vi điều khiển thường ở dạng analog. ADC sẽ chuyển tín hiệu
này về dạng tín hiệu digital mà vi điều khiển có thể hiểu được.
Các họ vi điều khiển hiện nay:
Họ vi điều khiển AMCC (do tập đoàn "Applied Micro Circuits Corporation"
sản xuất). Từ tháng 5 năm 2004, họ vi điều khiển này được phát triển và tung ra thị
trường bởi IBM.
+ 403 PowerPC CPU
+ PPC 403GCX
Họ vi điều khiển Atmel
+ Dòng 8051 (8031, 8051, 8751, 8951, 8032, 8052, 8752, 8952)
+ Dòng Atmel AT91 (Kiến trúc ARM THUMB)
Họ vi điều khiển Cypress MicroSystems
+ CY8C2xxxx (PSoC)
Họ vi điều khiển Freescale Semiconductor. Từ năm 2004, những vi điều
khiển này được phát triển và tung ra thị trường bởi Motorola.
+ Dòng 8-bit
Họ vi điều khiển Fujitsu
+ F²MC Family (8/16 bit)
+ FR Family (32 bit)
+ FR-V Family (32 bit RISC)
Họ vi điều khiển Intel
+ Dòng 8-bit
+ Dòng 16-bit
+ Dòng 32-bit
Họ vi điều khiển Microchip
+ PIC 8-bit (xử lý dữ liệu 8-bit, 8-bit data bus)
+ PIC 16-bit (xử lý dữ liệu 16-bit)
+ PIC 32-bit (xử lý dữ liệu 32-bit): PIC32MX
Trong đó họ vi điều khiển Microchip được ứng dụng phổ biến nhất.
2.2.
Họ vi điều khiển Microchip (PIC)
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là
“máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều
khiển đầu tiên của họ: PIC1650 được thiết kế để dung làm các thiết bị ngoại vi cho
vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm
và từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051, Motorola
68HC, AVR, ARM… Ngoài họ 8051 được hướng dẫn một cách căn bản ở môi
trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC để mở rộng vốn
kiến thức và phát triển các ứng dụng trên công cụ này vì các nguyên nhân sau:
+ Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam. Giá
thành không quá đắt
+ Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập.
+ Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều
khiển mang tính truyền thống: họ vi điều khiển 8051.
+ Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam cũng
như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo
nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng
tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi,
học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn …
+ Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp
chương trình từ đươn giản đến phức tạp.
+ Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không
ngừng phát triển.
2.2.1.
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-Neumann và kiến trúc Harvard.
Hình 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 Havard. Điểm khác
biệt giữa kiến trúc Havard và kiến trúc Von-Neumann là cấu trúc bộ nhớ dữ liệu và
bộ nhớ chương trình.
Đối với kiến trúc Von-Neumann, bộ nhớ dữ liệu và bộ nhớ chương trình
nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt
bộ nhớ chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc
độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời điểm CPU
chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như vậy có thể
nói kiến trúc Von-Neumann không thích hợp với cấu trúc của một vi điều khiển.
Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra
thành hai bộ nhớ riêng biệt. Do đó trong cùng một thời điểm CPU có thể tương tác
với cả hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể.
Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối
ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc
dữ liệu. Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi
dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neumann, độ dài
lệnh luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte).
RISC và CISC
Như trên, kiến trúc Harvard là khái niệm mới hơn so với kiến trúc Von-
Neumann. Khái niệm này được cải thiện nhằm cải tiến tốc độ thực thi của vi điều
khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus chương trình
và bus dữ liệu. CPU có thể cùng một lúc truy xuất cả bộ nhớ chương trình và bộ
nhớ dữ liệu, giúp tăng tốc độ xủa lí dữ liệu lên gấp đôi. Đồng thời cấu trúc lệnh
không còn phụ thuộc vào cấu trúc dữ liệu nữa mà có thể linh động điều chỉnh tùy
theo khả năng và tốc độ của từng VĐK. Và để tiếp tục cải tiến tốc độ thực thi lệnh,
tập lệnh của họ vi điều khiển PIC được thiết kế sao cho chiều dài mã lệnh luôn cố
định (ví dụ với họ 18Fxxxx chiều dài mã lệnh luôn là 16 bit), và cho phép thực thi
trong một chu kỳ xung clock (ngoại trừ một số trường hợp đặc biệt như lệnh nháy,
lệnh gọi chương trình con – cần hai xung đồng hồ). Điều này có nghĩa là tập lệnh
của VĐK thuộc cấu trúc Harvard sẽ ít lệnh hơn, ngắn hơn, đơn giản hơn để đáp
ứng yêu cầu mã hóa lệnh bằng một số lượng bit nhất định.
VĐK được tổ chức theo kiến trúc Harvard còn được gọi là vi điều khiển
RISC (Reducer Intruction Set Computer) hay là VĐK có tập lệnh rút gọn. VĐK
được thiết kế theo kiểu kiến trúc Von – Neumann còn được gọi là vi điều khiển
CISC (Complex Instruction Set Computer) hay VĐK có tập lệnh phức tạp vì lệnh
của nó không phải là một số cố định mà luôn là bội số của 8 bit (1 byte).
PIPELINING (xử lý song song)
Đây chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Đây là một kỹ
thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc.
Một chu kỳ lệnh của vi điều khiển sẽ bao gồm 4 xung clock. Ví dụ ta sử dụng
oscillator có tần số 4MHz thì xung lệnh có tần số là 1 MHz (chu kỳ lệnh là 1ns).
Giả sử ta có một đoạn chương trình như sau:
1.MOVLW 55h
2.MOVWF PORTB
3.CALL SUB_1
4.BSF PORTA,BIT3
5.instruction @ address SUB_1
Ở đây ta chỉ bàn đến quy trình VĐK xử lí đoạn chương trình trên thông qua từng
chu kỳ lệnh quá trình 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: vì lệnh không phải là lệnh sẽ được thực thi theo quy trình thực thi của
chương trình (lệnh tiếp theo được thực thi phải là lệnh đầu tiên tại label SUB_1) nên
chu trình thực thi của lệnh này chỉ được dùng để đọc lệnh đầu tiên tại label SUB_1.
Như vậy có thể xem lệnh 3 cần 2 chu kỳ xung clock để thực thi.
TCY5: thực thi lệnh đầu tiên của SUB_1 và đọc lệnh tiếp theo của SUB_1. Quá
trình này được thực hiện tương tự 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, ta cần một chu kỳ lệnh để gọi lệnh đó, và
một chu kỳ xung clock nữa để giải mã và thực thi lệnh. Với cơ chế pipelining đưuọc
trình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kỳ lệnh. Đối với
các lệnh mà quá trình thực thi làm thay đổi giá trị thanh PC (Program Counter) cần hai
chu kỳ lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉ thanh 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
để thực thi xong.
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ớ falsh hoạt động ở điện áp thấp.
LV: tương tự như LF, đây là kí hiệu cũ
Bên cạnh đó một số vi điều khiển có ký hiệu xxFxxx là EEPROM, nếu có
thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là
flash).
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC.
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip
sản xuất.
Cách lựa chọn một vi điều khiển PIC phù hợp:
Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng.
Có nhiều vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển
chỉ có 8 chân, ngoài ra còn có các vi điều khiển 28, 40, 44, … chân.
Cần chọn vi điều khiển PIC có bộ nhớ flash để có thể nạp xóa chương trình
được nhiều lần hơn.
Tiếp theo cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều
khiển, các chuẩn giao tiếp bên trong.
Sau cùng cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho phép.
Ngoài ra mọi thông tin 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 nhà sản xuất Microchip cung cấp.
2.2.2.
Ngôn ngữ lập trình cho PIC
Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có
MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập
trình cấp cao hơn bao gồm C, Basic, Pascal … Ngoài ra còn có một số ngôn ngữ
lập trình được phát triển dành riêng cho PIC như PICBasic, MikroBasic …
2.2.3.
Mạch nạp
Đây cũng là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC.
Có thể sử dụng các mạch nạp được cung cấp bởi các nhà sản xuất là hãng
Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE 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: mạch nạp này dung chương trình nạp Icprog cho phép
nạp các vi điều khiển PIC có 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 đều hỗ trợ tính
năng này.
WARP-13A và MCP-USB: hai mạch nạp này giống với mạch nạp
PICSTART plus do nhà sản xuất Microchip cung cấp, tương thích với trình
biên dịch MPLAB, nghĩa là ta có thể trực tiếp dùng chương trình MPLAB
để nạp cho VĐK mà không cần sử dụng một chương trình nạp khác, chẳng
hạn như Icprog.
P16PRO40: mạch này do Nigel thiết kế và cũng khá nổi tiếng. Ông còn thiết
kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng 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 dụng
dành cho PIC như P16PRO40.
Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn có
thể tự lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cách thiết kế,
thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được và download miễn
phí thông qua mạng Internet. Tuy nhiên các mạch nạp trên có nhược điểm là hạn
chế về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạch nạp cần được sử dụng
với một chương trình nạp thích hợp.
2.2.4.
Vi điều khiển PIC18F4520
Bộ điều khiển ghi tắt là Micro-controller là mạch tích hợp trên một chip có
thể lập trình được, dùng để điều khiển hoạt động của hệ thống. Theo các tập lệnh
của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, đo thời gian
và tiến hành đóng mở một cơ cấu nào đó.
Trong các thiết bị điện và điện tử các bộ vi điều khiển điều khiển hoạt động
của ti vi, máy giặt, đầu đọc lase, lò vi ba, điện thoại… Trong hệ thống sản xuất tự
động, bộ vi điều khiển sử dụng trong robot, các hệ thống đo lường giám sát. Các hệ
thống càng thông minh thì vai trò của VĐK ngày càng quan trọng. Hiện nay trên
thị trường có rất nhiều họ VĐK như: 6811 của Motorola, 8051 của Intel, Z8 của
Zilog, PIC của Microchip Technology…
Hình 2.3 là vi điều khiển PIC18F4520
Hình 2.3: Vi điều khiển PIC18F4520 (40 chân)
Trong đề tài này em sử dụng PIC18F4520 vì nó có nhiều ưu điểm hơn các
loại VĐK khác như: ADC 10 bit, PWM 10 bit, EEPROM 256 byte,
COMPARATER … ngoài ra nó còn được các trường đại học trên thế giới đặc biệt
là ở các nước Châu Âu hầu hết xem PIC là 1 môn học trong bộ môn vi điều khiển.
Ngoài ra PIC còn được rất nhiều nhà sản xuất phần mềm tạo ra các ngôn ngữ hỗ
trợ cho việc lập trình ngoài ngôn ngữ Asembly như: MPLAB, CCSC, HTPIC,
MIRKROBASIC…
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng,
nhưng chúng ta có thể điểm qua một vài nét như sau:
•
8/16 bit CPU, xây dựng theo kiến trúc trên kiến trúc Harvard sửa đổi, với tập
•
•
lệnh rút gọn (do vậy Pic thuộc loại RISC).
Flash và Rom có thể tùy chọn 256 byte đến 256 kbyte.
Các cổng xuất/nhập (mức logic thường từ 0v đến 5v, ứng với mức logic 0 và
1)
• 8/16 bit timer
• Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/không đồng bộ.
• Bộ chuyển đổi ADC
• Bộ so sánh điện áp
• MSSP Pripheral dung cho các giao tiếp 12C, SPI
• Bộ nhớ nội EEPROM – có thể ghi/xóa lên tới hàng triệu lần.
• Module điều khiển động cơ, đọc encoder.
• Hỗ trợ giao tiếp USB
• Hỗ trợ điều khiển Ethernet.
• Hỗ trợ giao tiếp CAN
• Hỗ trợ giao tiếp LIN
• Hỗ trợ giao tiếp IRDA
• DSP những tính năng xử lý tín hiệu số.
2.2.4.1.
Đặc điểm cơ bản của PIC18F4520
Vi điều khiển PIC18F4520 có các đặc điểm cơ bản:
-
-
-
Sử dụng công nghệ nanoWatl: Hiệu năng cao, tiêu thụ năng lượng ít.
Kiến trúc RISC
75 lệnh mạnh, hầu hết các lệnh thực hiện trong bốn chu kỳ xung.
Tốc độ thực hiện lên tới 10 triệu lệnh trong 1s với tần số 40Mhz
Có bộ nhân cứng.
Các bộ nhớ chương trình và dữ liệu cố định
32 Kbytes bộ nhớ flash có khả năng tự lập trình trong hệ thống có thể
thực hiện được 100.000 lần ghi/xóa
256 bytes EEPROM có thể thực hiện được 1.000.000 lần ghi/xóa
256 bytes SRAM
Những ngoại vi tiêu biểu
4 bộ định thời/bộ đếm 8 bit với các chế độ tỉ lệ đặt trước và chế độ so
sánh.
Bộ đếm thời gian thực với bộ tạo dao động riêng biệt
2 kênh PWM
13 kênh ADC 10 bit
Bộ truyền tin nối tiếp USART khả trình
Watchdog Timer khả trình với bộ tạo dao động bên trong riêng biệt
Bộ so sánh tương tự
- Các đặc điểm đặc biệt khác
Power on Reset và dò Brown out khả trình
Bộ tạo dao động RC được định cỡ bên trong
Các nguồn ngắt bên trong và bên ngoài
- I/O và các kiểu đóng gói
32 đường I/O khả trình
Đóng gói 40-pin PDIP, 44-lead TQFP, và 44-pad MLF
2.2.4.2.
Sơ đồ chân vi điều khiển PIC18F4520
Hình 2.4: Sơ đồ chân vi điều khiển PIC18F4520
2.2.4.3.
Các thông số của vi điều khiển PIC18f4520
• CPU tốc độ cao có 75 cấu trúc lệnh, nếu được cho
phép có thể kép dài đến
•
83 cấu trúc lệnh.
Hầu hết các cấu trúc lệnh chỉ mất một chu kỳ máy, ngoại trừ lệnh rẽ nhánh
•
•
•
•
•
•
•
chương trình mất hai chu kỳ máy.
Tốc độ làm việc: xung clock đến 40MHz, tốc độ thực thi lệnh 125ns.
Bộ nhớ chương trình (flash program memory) là 32 kbyte.
Bộ nhớ dữ liệu SRAM là 1536 byte.
Bộ nhớ dữ liệu EEPROM là 256 byte.
5 port vào hoặc ra.
4 bộ timer.
1 capture/compare/PWM modules.
•
•
•
•
•
1 enhanced capture/compare/PWM modules.
Giao tiếp nối tiếp: MSSP, anhanced USART.
Cổng giao tiếp song song.
13 bộ Analog to Digital module 10 bit
POR,BOR
Bên cạnh đó là một vài đặc tính khác của VĐK như:
Bộ nhớ Flash có 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.
Flash/Dữ liệu bộ nhớ EEPROM có thể lưu trữ hàng 100 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.
Watchdog timer với bộ dao động trong.
Chức năng bảo mật mã chương trình.
Chế độ SLEEP.
Có thể hoạt động với nhiều dạng Oscillator khác nhau.
2.2.4.4.
Sơ đồ khối của vi điều khiển PIC18F4520
Hì
nh 2.5: Sơ đồ khối của vi điều khiển PIC18F4520
2.2.4.5.
Bộ nhớ dữ liệu vi điều khiển PIC18F4520
Hình 2.6: Bộ nhớ dữ liệu vi điều khiển PIC18F4520