Các khối chức năng của PIC16F887

Một phần của tài liệu Thiết kế hệ thống giám sát và điều khiển nhiệt độ lò sấy (Trang 26)

Về cơ bản kiến trúc của một vi điều khiển gồm những phần cứng sau: Đơn vị xử lý trung tâm CPU (Central Processing Unit), các bộ nhớ (Memories), các cổng

http://www.ebook.edu.vn 27 vào/ra song song (Parallel I/O Ports), các cổng vào/ra nối tiếp (Serial I/O Ports), các bộ đếm/bộ định thời (Timers)… Các khối được mô tả như hình 2.6 ở trên.

Ngồi ra với từng loại vi điều khiển cụ thể cịn có thể có thêm một số phần cứng khác như bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, điều chế độ rộng xung PWM…

Bộ não của vi điều khiển chính là CPU, các phần cứng khác chỉ là các cơ quan chấp hành dưới quyền của CPU. Mỗi cơ quan này đều có một cơ chế hoạt động nhất định mà CPU phải tuân theo khi giao tiếp với chúng. Để có thể giao tiếp và điều khiển các cơ quan chấp hành (các ngoại vi), CPU sử dụng 3 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu (Data) và tín hiệu điều khiển (Control). Về mặt vật lý thì các tín hiệu này là các đường nhỏ dẫn điện nối từ CPU đến các ngoại vi hoặc thậm chí là giữa các ngoại vi với nhau. Tập hợp các đường tín hiệu có cùng chức năng gọi là các bus. Như vậy ta có các bus địa chỉ, bus dữ liệu và bus điều khiển.

Sau đây là mô tả sơ bộ về một số các phần cứng bên trong vi điều khiển:

a. Đơn vị xử lý trung tâm CPU.

CPU có cấu tạo gồm có đơn vị xử lý số học và lôgic (ALU), các thanh ghi, các khối lôgic và các mạch giao tiếp. Chức năng của CPU là tiến hành các thao tác tính tốn xử lý, đưa ra các tín hiệu địa chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập trình đưa ra thơng qua các lệnh (Instructions).

b. Bộ nhớ.

Nhìn chung có hai loại bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ nhớ chương trình dùng để chứa mã chương trình hướng dẫn CPU thực hiện một nhiệm vụ nào đó. Thơng thường thì bộ nhớ chương trình là các loại bộ nhớ “khơng bay hơi” (non-volatile), nghĩa là không bị mất nội dung chứa bên trong khi ngừng cung cấp nguồn ni. Có thể kể ra một số bộ nhớ thuộc loại này như ROM, PROM, EPROM, EEPROM, Flash. Bộ nhớ dữ liệu là bộ nhớ dùng để chứa dữ liệu (bao gồm các tham số, các biến tạm thời…). Tuỳ thuộc loại dữ liệu mà bộ nhớ loại này có thể là loại “không bay hơi” hoặc “bay hơi” (mất dữ liệu khi cắt nguồn nuôi). Loại “bay hơi” thường thấy là các bộ nhớ SRAM.

c. Cổng vào/ra song song.

Đây là các đường tín hiệu được nối với một số chân của IC dùng để giao tiếp với thế giới bên ngoài IC. Giao tiếp ở đây là đưa điện áp ra hoặc đọc vào giá trị điện áp tại chân cổng. Các giá trị điện áp đưa ra hay đọc vào chỉ có thể được biểu diễn bởi một trong hai giá trị lôgic (0 hoặc 1). Trong kỹ thuật điện tử, người ta thường dùng quy ước giá trị lôgic 0 ứng với mức điện áp thấp xấp xỉ 0 VDC, giá trị lôgic 1 ứng với mức điện áp cao xấp xỉ +5 VDC. Tùy loại vi điều khiển mà

http://www.ebook.edu.vn 28 “khoảng xấp xỉ” đó là khác nhau nhưng nhìn chung là tương thích với mức lơgic TTL. Mỗi cổng vào/ra song song thường gồm 08 đường vào/ra khác nhau và gọi là các cổng 8 bit. Các đường tín hiệu vào/ra của các cổng và thuộc cùng một cổng là độc lập với nhau. Điều đó có nghĩa là ta có thể đưa ra hay đọc vào các giá trị lôgic khác nhau đối với từng chân cổng (từng đường tín hiệu vào/ra). Một điều cần chú ý nữa đối với các cổng vào/ra đó là chúng có thể được tích hợp thêm các chức năng đặc biệt liên quan đến các ngoại vi khác.

d. Cổng vào/ra nối tiếp.

Khác với cổng song song, với cổng nối tiếp các bit dữ liệu được truyền lần lượt trên cùng một đường tín hiệu thay vì truyền cùng một lúc trên các đường tín hiệu khác nhau. Thơng thường thì việc truyền dữ liệu bằng cổng nối tiếp phải tuân theo một cơ chế, một giao thức hay một nguyên tắc nhất định. Có thể kể ra một số giao thức như SPI, I2C, SCI… Cổng nối tiếp có 02 kiểu truyền dữ liệu chính là truyền đồng bộ (synchronous), thiết bị truyền và thiết bị nhận đều dùng chung một xung nhịp (clock) và truyền dị bộ (asynchronous), thiết bị truyền và thiết bị nhận sử dụng hai nguồn xung nhịp riêng. Tuy nhiên hai nguồn xung nhịp này không được khác nhau quá nhiều. Xung nhịp là yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và nó có vai trị xác định giá trị của bit dữ liệu (hay nói đúng hơn là xác định thời điểm đọc mức lôgic trên đường truyền dữ liệu).Cổng nối tiếp có thể có một trong các tính năng như đơn cơng là thiết bị chỉ có thể hoặc truyền hoặc nhận dữ liệu.Bán song cơng là thiết bị có thể truyền và nhận dữ liệu nhưng tại một thời điểm chỉ có thể làm một trong hai việc đó. Song cơng là thiết bị có thể truyền và nhận dữ liệu đồng thời.

e. Bộ đếm/Bộ định thời.

Đây là các ngoại vi được thiết kế để thực hiện một nhiệm vụ đơn giản như đếm các xung nhịp. Mỗi khi có thêm một xung nhịp tại đầu vào đếm thì giá trị của bộ đếm sẽ được tăng lên 1 đơn vị (trong chế độ đếm tiến/đếm lên) hay giảm đi 1 đơn vị (trong chế độ đếm lùi/đếm xuống). Xung nhịp đưa vào đếm có thể là một trong hai loại là xung nhịp bên trong IC, đó là xung nhịp được tạo ra nhờ kết hợp mạch dao động bên trong IC và các linh kiện phụ bên ngoài nối với IC. Trong trường hợp sử dụng xung nhịp loại này, người ta gọi là các bộ định thời (timers). Do xung nhịp bên loại này thường đều đặn nên ta có thể dùng để đếm thời gian một cách khá chính xác. Xung nhịp bên ngồi IC là các tín hiệu lơgic thay đổi liên tục giữa 2 mức 0-1 và không nhất thiết phải là đều đặn. Trong trường hợp này người ta gọi là các bộ đếm (counters). Ứng dụng phổ biến của các bộ đếm là đếm các sự kiện bên ngoài như đếm các sản phẩm chạy trên băng chuyền, đếm xe ra/vào kho bãi…

http://www.ebook.edu.vn 29 Một khái niệm quan trọng cần phải nói đến là sự kiện “tràn” (overflow). Nó được hiểu là sự kiện bộ đếm đếm vượt quá giá trị tối đa mà nó có thể biểu diễn và quay trở về giá trị 0. Với bộ đếm 8 bit, giá trị tối đa là 255 và là 65535 với bộ đếm 16 bit.

f. Bộ chuyển đổi ADC.

Đây là bộ chuyển đổi tín hiệu tương tự và số. Pic 16F887 có 8 ngõ vào

analog từ RA0-RA4 và RE0-RE2. Kết quả chuyển đổi từ tín hiệu tương tự sang số là 10 bít số tương ứng được lưu vào thanh ghi ADRESH và ADRESL.

g. Bộ điều chế độ rộng xung PWM.

Có chức năng điều chế độ rộng xung, tín hiệu sau khi điều chế sẽ được đưa ra các chân của khối CCP. Các bước tiến hành:

• Thiết lập thời gian 1 chu kỳ xung điều chế PWM (period). • Thiết lập độ rộng xung cần điều chế (dutycycle).

• Điều khiển các chân của CCP là các chân output. • Thiết lập giá trị bộ chia tần số prescaler của timer2. • Cho phép timer2 hoạt động.

• Cho phép CCP hoạt động ở chế độ PWM.

2.6.2. Một số đặc tính cơ bản và sơ đồ chân chi tiết.

• Có 40 chân với dạng PIDP. • 5 cổng vào/ra (I/O).

• Có 14KB bộ nhớ Flash. • 256 bytes bộ nhớ EEPROM. • RAM 368 bytes.

• Dao động nội.

• Giao tiếp số ngoại vi: 1-A/E/USART, 1-MSSP (SPI/I2C). • Capture/Compare/PWM: 1 CCP, 1 ECCP.

• 2 bộ định thời 16bit, 1 bộ định thời 8bit. • 2 bộ so sánh.

• 14 thanh ghi ADC 10bit. ã Di nhit : -40 ữ 125 0

C.

http://www.ebook.edu.vn 30 Hình 2.8: Sơ đồ chân PIC16F887.

2.6.3. Chức năng các chân.

• VDD: chân cấp nguồn. • VSS: nối đất.

• PORT A:

Có chức năng đầu vào cho chuyển đổi ADC. Khi chức năng ADC không được sử dụng PORT A hoạt động như một cổng I/O 8 bit thông thường.

Ngồi ra PORT A cịn có các chức năng khác như là đầu vào ra của bộ dao động nội RC, đầu vào ra của bộ so sánh, đầu vào của Timer.

• PORT B:

Là một cổng I/O thông thường. Đầu vào cho chuyển đổi ADC.

Đầu ra của PWM, điều khiển ngắt, kích theo sườn lên. Đầu vào ra của bộ so sánh.

• PORT C:

Cổng vào ra I/O thơng thường.

Đầu vào ra của chân PWM, timer, tạo xung đồng bộ, chuyển đổi/đầu vào

không đồng bộ và một số chức năng khác. • PORT D:

http://www.ebook.edu.vn 31 Là một cổng vào ra thông thường.

Đầu ra của PWM. • PORT E:

Là một cổng vào ra I/O thông thường. Đầu vào cho chuyển đổi ADC.

Nạp chương trình cho Pic.

2.7. Truyền thơng máy tính.

2.7.1. Giới thiệu vi mạch giao tiếp MAX 232.

Để giao tiếp giữa vi điều khiển với máy tính, ta sử dụng chuẩn giao tiếp RS232 qua cổng COM của máy tính. Chuẩn này quy định các yêu cầu cấp tín hiệu giữa bộ truyền và bộ nhận. Do đó để làm cho nó tương thích với các chuẩn đầu ra TTL ta cần sử dụng một vi mạch giao tiếp gián tiếp. Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên dụng trong việc giao tiếp nối tiếp vi điều khiển với máy tính. Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +10V hoặc –10V ở phía truyền và các mức +3…+15V hoặc -3…-15V thành mức TTL ở phía nhận.

Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối vào CTS, điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9 của vi mạch MAX 232. Còn chân RST (chân 10 của vi mạch MAX ) nối với đường dẫn bắt tay để điều khiển quá trình nhận. Thường thì các đường dẫn bắt tay được nối với cổng nối tiếp qua các cầu nối, để khi khơng dùng đến nữa có thể hở mạch các cầu này. Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND (mass).

http://www.ebook.edu.vn 32

2.7.2. Cổng nối tiếp RS232.

Cổng nối tiếp RS232 rất phổ biến và được sử dụng rộng rãi. Người ta còn gọi cổng này là cổng COM. Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp. Cổng COM khơng phải là một hệ thống bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin. Cổng nối tiếp RS232 có 2 kiểu, kiểu D25 chân và kiểu D9 chân, 2 kiểu này đều là giắc đực ở sau máy tính PC. Dưới đây là mơ tả các chân tín hiệu loại D9 chân và 25 chân.

Hình 2.10: Giắc nối 9 chân qua cổng COM.

Các chân dùng để truyền và nhận dữ liệu của giắc 9 chân là 3 và 2 cịn với giắc 25 chân thì chân truyền và nhận là 2 và 3.

Phích cắm COM có tổng cộng 8 đường dẫn, chưa kể đến đường nối đất. Trên thực tế có hai loại phích cắm, một loại 9 chân và một loại 25 chân. Cả hai loại đều có chung một đặc điểm, trong đề tài em sử dụng cáp USB converter232 vì sử dụng laptop khơng có cổng COM.

Việc truyền dữ liệu xảy ra ở trên hai đường dẫn. Qua chân cắm TXD máy tính gửi dữ liệu của nó đến vi điều khiển. Trong khi đó các dữ liệu mà máy tính nhận được lại được dẫn đến chân RXD, các tín hiệu khác đóng vai trị như là tín

http://www.ebook.edu.vn 33 hiệu hỗ trợ khi trao đổi thơng tin, vì thế khơng phải trong mọi trường hợp ứng dụng đều dùng hết.

2.7.3. Truyền thông qua cổng nối tiếp RS232.

Truyền thông nối tiếp là một chuẩn giao tiếp thông dụng dùng để truyền phát dữ liệu giữa máy tính và các thiết bị ngoại. Có thể sử dụng phương pháp này khi tốc độ truyền dữ liệu thấp hoặc phải truyền dữ liệu trên một khoảng cách lớn. Truyền thông nối tiếp được sử dụng rất phổ biến bởi vì mỗi một máy tính đều có một hay nhiều cổng nối tiếp.

Hình 2.11: Giao tiếp máy tính với vi điều khiển qua cổng RS232.

Chuẩn RS232 được nối ra một giắc cắm (gọi là cổng COM). Khi sử dụng có thể sử dụng 2 hay tồn bộ chân (pin) của cổng này (có nhiều loại cổng COM phục vụ các chức năng khác nhau gồm loại 4, 9, 15, 37 chân). Nếu mục đích chỉ truyền hoặc nhận tín hiệu giữa hai thiết bị thì ta chỉ cần sử dụng 2 dây (một dây truyền hoặc nhận) và một dây nối đất (GND – ground, hay mass). RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất. Các cổng của RS–232 có ngưỡng điện áp qui ước là -15V (volt) tới -3V , và 3V tới 15V (hoặc -5V, +5V, sự khác biệt giữa hai giá trị 3, và 5V này được gọi là noise magin - biên độ dao động của nhiễu).

http://www.ebook.edu.vn 34 • Tín hiệu có áp lớn +3V được coi có logic 0 hoặc có giá trị cao (H)

• Tín hiệu có áp nhỏ hơn –3V được coi có logic 1 hoặc giá trị thấp (L). • Điện áp từ -3V tới +3V khơng có ý nghĩa.

Chính vì từ - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd (chiều dài cho phép 30 – 50 m). Đối với truyền thông nối tiếp ta cần phải quan tâm đến 4 tham số là baud rate (tốc độ baurd) truyền, số bít dữ liệu mã hóa một ký tự, bít chẵn lẻ, bít stop. Mỗi một ký tự truyền được đóng gói thành một khung ký tự bao gồm một bít start và sau bít này là các bít dữ liệu, sau bít các bít dữ liệu là bít chẵn lẻ (bít này có thể chọn), bít cuối của khung dữ liệu là bít stop.

Ví dụ một khung truyền dữ liệu có dạng như sau:

Hình 2.12: Khung truyền theo chuẩn RS232.

Tốc độ Baurd nói lên việc thu phát dữ liệu giữa thiết bị và cổng nối tiếp nhanh hay chậm. Cổng nối tiếp RS-232 chỉ sử dụng 2 trạng thái điện áp, mức 0 hay mức 1.

http://www.ebook.edu.vn 35 Bít Start là bít đầu tiên của khung truyền. Bít này là sự chuyển trạng thái từ điện áp âm sang điện áp dương. Khoảng thời gian của bít Start được tính bằng giây và tỉ lệ nghịch với tốc độ Baurd. Nếu thiết bị truyền với tốc độ Baurd là 9600, khoảng cách giữa bít Start với bít kế tiếp khoảng 0.104 ms. Tồn bộ khung truyền 11 bít truyền cỡ khoảng 1.146ms.

Các bít dữ liệu được truyền từ bít thấp nhất (LSB) tới các bít cao (MSB). Để dịch các bít dữ liệu trong khung truyền, bạn cần phải đọc từ phải sang trái và đọc mức 1 cho điện áp âm còn 0 cho điện áp dương. Hình trên là một khung truyền dữ liệu có mã 1101101 (Binary) hoặc ở dạng mã Hex là 6D.

Bít chẵn lẻ là bít ở sau các bít dữ liệu trong khung truyền. Nếu có bít chẵn lẻ, bít này cũng bị đảo ngược trạng thái (1 đối với điện áp âm, 0 đối với điện áp dương). Bít này thường dùng với chức năng kiểm tra lỗi.

Phần cuối cùng của khung truyền bao gồm 1, 1.5, 2 bit stop. Những bit này luôn luôn ở trạng thái âm.

2.7.4. Để truyền dữ liệu nhanh hơn.

Khi nói đến truyền thơng nối tiếp là ta phải quan tâm đến cấu trúc của khung truyền và tốc độ Baurd. Tốc độ này được tính bằng tốc độ Baud chia cho số bít

Một phần của tài liệu Thiết kế hệ thống giám sát và điều khiển nhiệt độ lò sấy (Trang 26)

Tải bản đầy đủ (PDF)

(64 trang)