Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
663,7 KB
Nội dung
DKS GROUP http://www.embestdks.com 1 Chương 1: Giớithiệuchungvềviđiềukhiển I. Giớithiệuchung - Lịch sử viđiềukhiển Ngày nay, các bộ viđiềukhiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và đời sống xã hội, đặc biệt là trong kỹ thuật tự động hoá và điềukhiển từ xa. Cùng với sự phát triển nhanh chóng của khoa học kỹ thuật, nghệ chế tạo vi mạch tích hợp thay đổi từng ngày từng giờ đáp ứng yêu cầu sản xuất công nghiệp về tính chuyên dụng hoá, tối ưu (thời gian, không gian, giá thành), bảo mật, tính chủ động trong công việc . ngày càng đòi hỏi khắt khe. Việc đưa ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn cấp thiết mang tính thực tế cao. Lịch sử của Viđiềukhiển bắt đầu khi - Kiến trúc của viđiềukhiển (RISC + CISC) II. Các khối chính trong viđiềukhiển I.1 Khối bộ nhớ ROM + RAM I.2 Khối xử lý trung tâm (CPU) I.3 Tổ chức Bus I.4 Các đường vào/ra I.5 Khối giao tiếp nối tiếp I.6 Khối Timer I.7 Watchdog I.8 Bộ chuyển đổi tương tự - số (ADC) DKS GROUP http://www.embestdks.com 2 Chương 2: Viđiềukhiển PIC Giớithiệuchung Trong chương này chúng ta sẽ đi tìm hiểu vềViđiềukhiển PIC, mà cụ thể là dòng Viđiềukhiển PIC18F4331. Tại sao lại chọn PIC18F4331, điều này khá đơn giản. Thực ra khi bắt đầu học PIC thì bạn có thể chọn bất cứ con PIC nào để tìm hiểu, bởi hầu hết các dòng PIC đều có cấu trúc phần cứng về cơ bản là giống nhau, và tùy từng dòng PIC mà sẽ có những tính năng nâng cao khác, chính điều đó giúp ta làm việc được với nhiều loại PIC một cách nhanh chóng. Đầu tiên chúng ta sẽ cùng tìm hiểu về cấu trúc phần cứng chung của PIC, các khối chức năng và cách và cách lập trình ứng dụng. Sau đó sẽ tìm hiều về những tính năng riêng của PIC18F4331 và PIC18F4550 - Kiến trúc RISC của viđiềukhiển PIC PIC được tổ chức phần cứng theo kiến trúc Harvard, và tập lệnh RISC (reduced instruction set computer - máy tính với tập lệnh giản lược). Trong kiến trúc Harvard, bộ nhớ dữ liệu và bộ nhớ chương trình nằm riêng biệt, do đó CPU có thể làm việc trực tiếp với cả hai bộ nhớ dữ liệu và bộ nhớ chương trình cùng một lúc, làm cho tốc độ xử lý nhanh hơn. Việc bộ nhớ chương trình và bộ nhớ dữ liệu được tách riêng, do đó, tập lệnh trong kiến trúc Harvard có thể được tối ưu tùy theo yêu cầu kiến trúc của viđiều khiển. Bằng chứng, độ dài lệnh của dòng PIC16 luôn luôn là 14 bit. Trong khi đó, độ dài lệnh của các viđiềukhiển kiến trúc von-Neumann là bội số của 1 byte (8 bit). PIC là một Viđiềukhiển RISC, tập lệnh của PIC chỉ có 35 lệnh, phần lớn các lệnh này chỉ thực hiện trong một chu kỳ máy. Chính nhờ kiến trúc phần cứng tiên tiến, PIC tỏ ra vướt trội so với các loại Viđiềukhiển 8 bít khác về mặt tốc độ và hiệu năng sử dụng. - Xử lý song song (Pipeline) Việc xử lý lệnh trong PIC được thực hiện song song, trong khi xử lý một lệnh thì đồng thời CPU cũng nạp lệnh mới vào để quá trình xử lý lệnh là liên tục. Chính phương thức xử lý đó giúp cho tốc độ hoạt động của PIC nhanh hơn rất nhiều. DKS GROUP http://www.embestdks.com 3 - Sơ đồ chân PIC18F4331 DKS GROUP http://www.embestdks.com 4 - Sơ lược tính năng nổi bật của PIC18F4331 Nguồn dao động nội đến 8MHz, dao động thach anh lên tới 40MHz Tiêu thụ nguồn thấp (nanoWatt) 5 Kênh vào ra (Port A, B, C, D, E) ADC 10 - bit tốc độ cao với 9 kênh vào (AN0 ~ AN8) 4 kênh PWM 14-bit Khối phản hồi chuyển động (Encoder) 2 kênh CCCP 3 chân ngắt ngoài Giao tiếp nối tiếp RS232, RS485, I2C, SPI ICSP và ICD DKS GROUP http://www.embestdks.com 5 - Cấu trúc bên trong viđiềukhiển PIC DKS GROUP http://www.embestdks.com 6 DKS GROUP http://www.embestdks.com 7 Cấu trúc và khối chức năng cơ bản trong Viđiềukhiển PIC 2.1 Khối tạo xung dao động Mạch tạo dao động được sử dụng để cung cấp xung đồng hồ cho Viđiều khiển. Xung đồng hồ là cần thiết để Viđiềukhiển có thể thực thi chương trình lập trình bên trong nó. Mỗi loại Viđiềukhiển PIC hỗ trợ những kiểu mach tạo dao động khác nhau như mạch dao động thạch anh (XT, HS), mạch dao động RC, mạch dao động nội, các nguồn dao động chuẩn bên ngoài khác. Trong các loại mạch dao động trên thì mạch dao động RC và mạch dao động thạch anh là 2 loại thường hay được sử dụng, nhất là mạch dao động thạch anh. Mạch dao động thạch anh (XT, HS): Sơ đồ mạch dao động thạch anh dưới đây là mạch dao động phổ biến cho PIC. Đây chính là nguồn cung cấp xung đồng hồ chính cho CPU và tất cả các khối trong PIC. Hai chân OSC1 (chân 13) và OSC2 (chân 14) được mắc với mạch dao động thạch anh bên ngoài. Các điện trở C1 và C2 là cần thiết khi mắc mạch dao động thạch anh cho PIC. Trị số của chúng xem bảng dưới đây. Ưu điểm của mạch này là tần số dao động chính xác và cho tần số dao động cao. Mạch dao động RC: Mạch này gồm một điện trở và một tự điện mắc nối tiếp như hình dưới đây. Xung dao động đươc đưa vào chân OSC1, khi đó chân OSC2 là chân xuất dao động, có thể cung cấp dao động cho các IC PIC khác. DKS GROUP http://www.embestdks.com 8 2.2 . Khối Reset, Chân MCLR và mạch Reset cho PIC Reset is used for putting the microcontroller into a 'known' condition. That practically means that microcontroller can behave rather inaccurately under certain undesirable conditions. In order to continue its proper functioning it has to be reset, meaning all registers would be placed in a starting position. Reset is not only used when microcontroller doesn't behave the way we want it to, but can also be used when trying out a device as an interrupt in program execution, or to get a microcontroller ready when loading a program. DKS GROUP http://www.embestdks.com 9 Các nguyên nhân làm Reset PIC (POR, manual reset…) - Reset khi PIC được cấp nguồn (Power-On Reset) - Reset bằng tay khi cấp mức logic ‘0’ cho chân MCLR của PIC - Reset khi đang ở chế độ SLEEP - Reset do bộ watchdog timer xảy ra tràn … Microcontroller PIC16F84 knows several sources of resets: a) Reset during power on, POR (Power-On Reset) b) Reset during regular work by bringing logical zero to MCLR microcontroller's pin. c) Reset during SLEEP regime d) Reset at watchdog timer (WDT) overflow e) Reset during at WDT overflow during SLEEP work regime. 2.3 Khối xử lý trung tâm và các thanh ghi trạng thái Là bộ não của PIC Central processing unit (CPU) is the brain of a microcontroller. That part is responsible for finding and fetching the right instruction which needs to be executed, for decoding that instruction, and finally for its execution. Central processing unit connects all parts of the microcontroller into one whole. Surely, its most important function is to decode program instructions. When programmer writes a program, instructions have a clear form like MOVLW 0x20. However, in order for a microcontroller to understand that, this 'letter' form of an instruction must be translated into a series of zeros and ones which is called an 'opcode'. This transition from a letter to binary form is done by translators such as assembler translator (also known as an assembler). Instruction thus fetched from program memory must be DKS GROUP http://www.embestdks.com 10 decoded by a central processing unit. We can then select from the table of all the instructions a set of actions which execute a assigned task defined by instruction. As instructions may within themselves contain assignments which require different transfers of data from one memory into another, from memory onto ports, or some other calculations, CPU must be connected with all parts of the microcontroller. This is made possible through a data bus and an address bus. Arithmetic logic unit is responsible for performing operations of adding, subtracting, moving (left or right within a register) and logic operations. Moving data inside a register is also known as 'shifting'. PIC16F84 contains an 8-bit arithmetic logic unit and 8-bit work registers. In instructions with two operands, ordinarily one operand is in work register (W register), and the other is one of the registers or a constant. By operand we mean the contents on which some operation is being done, and a register is any one of the GPR or SFR registers. GPR is an abbreviation for 'General Purposes Registers', and SFR for 'Special Function Registers'. In instructions with one operand, an operand is either W register or one of the registers. As an addition in doing operations in arithmetic and logic, ALU controls status bits (bits found in STATUS register). Execution of some instructions affects status bits, which depends on the result itself. Depending on which instruction is being executed, ALU can affect values of Carry (C), Digit Carry (DC), and Zero (Z) bits in STATUS register. STATUS Register bit 7 IRP (Register Bank Select bit) Bit whose role is to be an eighth bit for purposes of indirect addressing the internal RAM. 1 = bank 2 and 3 0 = bank 0 and 1 (from 00h to FFh) bits 6:5 RP1:RP0 (Register Bank Select bits) These two bits are upper part of the address for direct addressing. As instructions which address the memory directly have only seven bits, they need one more bit in order to address all 256 bytes which is how many bytes [...]... chức vào/ra trong PIC Giới thiệuchungvề các cổng vào/ra trong PIC: Cổng là một nhóm các chân của Viđiều khiển, chúng có thể được truy cập đồng thời hay theo từng bit một, đọc trạng thái hiện có trên cổng Về mặt vật lý, mỗi cổng là một thanh ghi nằm bên trong Viđiềukhiển và được kết nối đến các chân của Viđiềukhiển Cổng đóng vai trò là một kết nối vật lý giữa CPU và thế giới bên ngoài Physically,... Timer là thành phần không thể thiếu trong mỗi con Vi điều khiển, nó cần thiết cho vi c xác định chính xác một khoảng thời gian trôi qua Các bộ Timer trong PIC (0,1,2…) Mỗi Vi điềukhiển PIC có một số lượng các bộ Timer nhất định, tối thiểu là 3 bộ Timer là Timer0, Timer1, Timer2 Trong đó Timer0 và Timer2 là 8 bit, còn Timer1 la 16 bit Thanh ghi điềukhiển Tính toán thời gian cho Timer Lập trình cho... 2.4.1.2 Các thanh ghi điềukhiển Có bốn thanh ghi đảm nhận chức năng điềukhiển quá trình trao đổi dữ liệu với bộ nhớ Flash, đó là: – EECON1 – EECON2 – TABLAT – TBLPTR Thanh ghi EECON1 và EECON2: Thanh ghi EECON1 là thanh ghi điềukhiểnvi c truy cập bộ nhớ Flash và EEPROM Thanh ghi EECON2 không phải là một thanh ghi vật lý, đọc EECON2 sẽ luôn cho kêt quả là ‘0’ EECON2 được dành riêng cho vi c ghi và xóa... Thanh ghi điềukhiển Tốc độ Baud và tính toán Chế độ Master (Truyền – nhận) Chế độ Slave (Truyền – nhận) 20 DKS GROUP http://www.embestdks.com 2.8 Tổ chức ngắt Cấu trúc và các nguồn ngắt Thanh ghi điềukhiển Quá trình xảy ra và thực hiện 1 ngắt Lập trình xử lý ngắt (INT, On-change RB, RS232, Timer…) Phần cứng và tính năng mở rộng trong PIC ADC Cấu trúc khối ADC Các thanh ghi điềukhiển Chế độ làm vi c,... bit Không giống như AT8051, các cổng của PIC ngoài thanh ghi cổng còn có thêm một thanh ghi điềukhiển chế độ vào ra cho từng chân của cổng đó PORTA có thanh ghi TRISA, PORTB có thanh ghi TRISB… Khi lập trình điềukhiển vào ra cho PIC ta cần chú ý tới điều này để tránh gặp những sai sót không đáng có Vì các cổng về cơ bản là giống nhau, dưới đây ta sẽ đi tìm hiều một vài PORT cụ thể của PIC PORTA và TRISA... ghi/xóa 0 = Không cho phép ghi/xóa WR: Kiểm soát vi c ghi/xóa bộ nhớ Flash/Data EE 1 = Bắt đầu quá trình ghi/xóa bộ nhớ Flash/ Bộ nhớ EEPROM 0 = Quá trình ghi thực hiện xong RD: Kiểm soát vi c đọc bộ nhớ Flash/Data EE 1 = Bắt đầu quá trình đọc 0 = Quá trình đọc dữ liệu hoàn tất 14 DKS GROUP http://www.embestdks.com 4 Bộ nhớ EEPROM Thanh ghi điều khiểnvi c truy cập bộ nhớ Lập trình đọc dữ liệu từ EEPROM,... Bộ nhớ Flash RAM Bank và Thanh ghi điều khiểnvi c truy cập bộ nhớ Các chế độ truy cập RAM (trực tiếp,gián tiếp…) Lập trình truy cập bộ nhớ RAM 12 DKS GROUP http://www.embestdks.com 2.4 Tổ chức bộ nhớ ROM + EEPROM 2.4.1 Bộ nhớ chương trình – Flash Program Memory Bộ nhớ chương trình (sau đây vi t tắt là bộ nhớ flash) là nới lưu trữ các chương trình mà người lập trình vi t ra, nhằm làm cho PIC thực hiện... the configuration registers An illustration of this is the fifth bit T0CS in OPTION register By selecting one of the functions the other one is disabled Thanh ghi cổng và thanh ghi điềukhiển chế độ vào/ra Trong mỗi Viđiềukhiển PIC có thể có từ 2 cho đến 10 cổng, số lượng tùy theo từng loại PIC Đối với loại PIC 40 chân mà ta thường hay sử dụng có tất cả là 5 cổng đó là: - PORTA: Độ rộng là 6 bit -... từng byte mỗi lần, quá trình ghi vào bộ nhớ thực hiện theo môi khối 8 bytes cho một lần ghi và vi c xóa bộ nhớ flash sẽ thực hiện xóa từng khối 64 bytes cho mỗi lần thực hiện 2.4.1.1 Đọc ghi dữ liệu giữa bộ nhớ flash và RAM Để thực hiện vi c đọc, ghi bộ nhớ flash, có hai hoạt động cho phép vi xử lý thực hiện vi c di chuyển các byte dữ liệu giữa bộ nhớ flash và bộ nhớ RAM đó là : Table Read (TBLRD) và... này trong vi c quét ma trận bàn phím, khi các hàng của phím được nối đến 4 chân này, vi c xử lý ngắt sẽ xác định phím nào được nhấn Ngoài ra PORTB còn có chân RB0 là chân vào ngắt ngoài (INT0), các chân RB7PGD, RB6-PGC, RB3-PGM được kết hợp khi sử dụng tính năng In-Circuit Debugger và Low-Voltage Programming PORTC và TRISC 18 DKS GROUP http://www.embestdks.com 2.6 Timer/Counter Mô tả chungvề Timer . http://www.embestdks.com 1 Chương 1: Giới thiệu chung về vi điều khiển I. Giới thiệu chung - Lịch sử vi điều khiển Ngày nay, các bộ vi điều khiển đang có ứng dụng ngày. http://www.embestdks.com 2 Chương 2: Vi điều khiển PIC Giới thiệu chung Trong chương này chúng ta sẽ đi tìm hiểu về Vi điều khiển PIC, mà cụ thể là dòng Vi điều khiển PIC18F4331.