và Máy tính thông minh khả trình (Programmable Intelligent Computer-PIC)
Là một công nghệ phát tiển rất mạnh hiện nay, mà nền tảng cơ sơ là : hợp nhất tất cả các thành phần một máy vi tính, các vi mạch điện tử chuyên dụng như ADC/DAC, DSP … vào một vi mạch duy nhất với khả năng lập trình ứng dụng ngay trên vi mạch đó. Lĩnh vực ứng dụng là tạo ra các HTN với phổ cấu hình từ đơn giản tới phức tạp. Ở nước ta đây là xu hướng phát triển rất mạnh bởi dễ thực hiện và đặc biệt giá thành rất hợp lí.
PIC: PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).
Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các module
70
ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chương trình từ 512 word đến 32K word (1word=16 bít).
Về cấu trúc của PsoC/PIC: sự tích hợp nhiều thành phần trong một vi mạch
• Có một hay vài vi điều khiển (microcontroller), hay vi xử lý (microprocessor) và bộ xử lý tín hiệu số ( Digital Signal Processor-DSP ).
• Các khối bộ nhớ tùy chọn ROM, RAM, EEPROM và Flash.
• Nguồn đồng hồ chuẩn gồm bộ giao động thạch anh và mạch phản hồi dò chốt pha (phase- locked loops).
• Ngoại vi gồm bộ đếm định thời (counter-timers), đếm thời gian thực (real-time timers) và mạch tự động khởi động lại hệ thống (power-on reset).
• Ghép nối ngài theo chuẩn công nghiệp USB, FireWire, Ethernet, USART, SPI(Serial Peripheral Interface).
• Ghép nối với tín hiệu tương tự ADC và DAC 8, 10, 12 bit.
• Bộ nguồn chuẩn, có độ chính xác cao.
71
Các khối chức năng điển hình của CPU ARMv8-A (British company ARM Holdings)
Hình 2.37 Mô hình một vi điều khiển kiểu PSoC hay PIC kiểu Vi xử lí trong một Chip
(Microprocessor-based system on a chip)
ü Một số vi mạch PSoC là sảm phẩm của CYPRESS
Ví dụ CY8C29466:
■ Bộ xử lý kiểu Harvard rất mạnh * Tốc đọ tới 24 MHz
* Hai bộ nhân 8x8, Thanh ghi tích lũy ACC 32-bit
72 * Tiêu thụ nguồn thấp ngay cả ở tốc độ xử lí cao
* Nguồn nuôi : 3.0V to 5.25V
* Môi trường nhiệt độ : -40°C to +85°C * Hội đồng Điện tử và Tự động hóa (AEC) đã chứng nhận sản phẩm
■ Hệ thống các thiết bị ngoại vi tiên tiến (PSoC® Blocks)
* 12 Khối liên kết thiết bị tương tự cung cấp:
• Các ADC tới 14 bit • Các DACs tới 9 bit
• Các bộ khuyếch đại khả trình • Các bộ lọc và bộ so sánh khả trình * 16 khối kỉ thuật số cung cấp:
• các bộ đếm và định thời 8 tới 32 bit, và bộ điều chế theo độ rộng của xung (PWM)
• các module CRC và PRS • Có 4 UART chạy song công • Đa bus SPI™ Masters or Slaves * Bằng cách tổ hợp các khối tao ra thiết bị ngoại vi phức hợp
■ Đồng hồ khả trình, độ chính xác cao * Đồng hồ trong 24 tới 48 MHz , ±5.0% * Có thêm đồng hồ thạch anh ở tần số 32.768 kHz
* Tùy chọn đồng hồ ngoài tới 24 MHz * Giao động nội cho Watchdog và Sleep ■ Bộ nhớ linh hoạt trên chip
* 32K Bytes Flash cho chương trình * 2K Bytes SRAM cho Dữ liệu
* Lập trình trực tiếp qua liên kết nối tiếp (In-System Serial Programming -ISSP) * Nâng cấp Flash từng phần
* Có chế độ bảo vệ linh hoạt (Protection Modes)
■ Các chân nối khả trình chức năng
* Dòng đầu ra 25 mA Sink, 10 mA Drive trên tất cả các chân (GPIO) của chip
* Đẩy kéo, điện trở treo, trở kháng cao, hở mạch đầu ra ở tất cả các chân của chip.
* Có tới 12 đầu vào tương tự (Analog Inputs on GPIO)
* 4 đầu ra tương tự cung caaso tới 40 mA (Analog Outputs on GPIO)
* Các ngắt khả cấu hình trên tất cả các chân ngắt của chip
■ Các nguồn tài nguyên hệ thống khác: * Kết nối giữa các IC kiểu chủ/tớ với tốc độ 400 kHz (I2C Slave, Master, and Multi-Master to 400 kHz)
* Watchdog and Sleep Timers
* Khả cấu hình để phát hiện nguồn nuôi thấp
* Hợp nhất mạch giám sát (Integrated Supervisory Circuit)
* Có nguồn điện áp chuẩn chính xác trong chip
■ Công cụ phát triển đầy đủ * Phần mềm phát triển tự do (Free Development Software (PSoC Designer™))
* Đầu đủ công cụ mô phỏng hiajt động kiểu ICE (Full-Featured, In-Circuit Emulator and Programmer)
* Mô phỏng chạy với tần số tối đa (Full Speed Emulation)
* Ccó cấu trúc tìm lỗi hoàn hảo (Complex Breakpoint Structure) * 128K Bytes nhớ cho lưu dấu vết hoạt động (Trace Memory)
* Ghi nhận sự kiện đầy đủ
73
Hình 2.38 Vi điều khiển PSoC CY8C29466
ü Vi mạch PIC của hãng Microchip Technology
http://www.best-microcontroller-projects.com/pic-microcontroller.html
Một PIC giống như một thiết bị mạnh được thiết kế và tích hợp nhiều thành phần kiểu module như sau:
74
• EEPROM.
• Timers (các bộ định thời).
• Analogue comparators (các bộ so sánh tương tự).
• UART ( bộ thu phát dị bộ vạn năng).
• Các cổng kết nối ngoại vi, mở rộng bộ nhớ
Với các module như vậy, có thể triển khai các dự án ứng dụng như:
* Frequency counter – Đếm tần số, sử dụng các bộ định thời bên trong, kết quả thông báo ra ngoài bằng cách truyền thông đi xa UART (RS232), hay ra LCD tại chổ.
* Capacitance meter - Điện dung kế, bằng các bộ giao động so sánh tương tự.
* Event timer – Định thời sự kiện với các bộ định thời bên trong.
* Event data logger – Thu thập dữ liệu theo định thời và số hóa bằng DAC bên trong, lưu dữ liệu trong EEPROM hay lưu trong bộ nhớ ngoài qua tuyến truyền dữ liệu tốc độ cao I2C.
* Servo controller – Ứng dụng tự động hóa kiểuđiều khiển servo sử dụng bộ điều chế độ rộng xung PWM với phần mềm điều khiển servo, kết hợp truyền thông qua UART đến thiết bị đầu cuối.
Ví dụ PIC 12F675: 8 chân (Dual In Line) có các ngoại vi tích hợp như sau:
75
Hình 2.40 Mô hình khối chức năng PIC12F629/675 Đặc trưng:
• Two timers.
• One 10 bit ADC with 4 selectable inputs.
• An internal oscillator (or you can use an external crystal).
• An analogue comparator.
• 1024 words of program memory.
76
• 128 Bytes of EEPROM memory.
• External interrupt (as well as interrupts from internal peripherals).
• External crystal can go up to 20MHz.
• ICSP : PIC standard programming interface.
Các PIC hạng trung bình có không gian địa chỉ từ 1 KB đến 8 KB (ví dụ họ 18FXYZ). Bộ nhớ xem ra không nhiều, nhưng với tập lệnh hiệu quả có thể xây dựng các ứng dụng rất hữu ích. (Xem ví dụ ở PHỤ LỤC : LM35 temperature sensing project).
Lập trình: Sử dụnggiao diện nối tiếp ICSP để lập trình, có thể lập trình bằng hợp ngữ, hay C.
Vào/Ra - I/O: PIC có các cổng kết nối sử dụng cho nhiều mục đích, ví dụ cho điều khiển motor bước, đóng cắt các rele, đọc các nút ấn đóng/mở, hiển thị ra LCD/7--
segment/LED, đo tần số, sử dụng ADC với nhiều mục đích khác nhau …
Ngoại vi (Peripherals): Các thiết bị tích hợp bên trong rất nhiều và hữu hiệu cho các dữ án ứng dụng, tùy vào yêu cầu có thể chọn dòng PIC với các đặc trung khác nhau. Các đặc trưng tổng quát gồm có: PIC microcontroller Feature PIC microcontroller feature description
Flash memory Re-programmable program storage.
RAM Memory storage for variables.
EEPROM
Long term stable memory : Electrically Erasable Programmable Read
Only Memory.
I/O ports High current Input/Output ports (with pin
direction change).
Timers/Counters Typically 3.
USART Built in RS232 protocol (only needs level
77
CCP Capture/Compare/PWM module.
SSP I2C and SPI Interfaces.
Comparator An analogue comparator and internal
voltage reference.
ADC Analogue to digital converter.
PSP Parallel Slave Port (for 8 bit
microprocessor systems).
LCD LCD interface.
Special features ICSP,WDT,BOR,POR,PWRT,OST,SLEEP
ICSP Simple programming using In Circuit
Serial Programming.
Flash memory: Bộ nhớ cho chương trình.
ICSP (In Circuit Serial Programming): Cổng giao diện với hệ phát triển, lập trình trực tiếp cho PIC đã nằm trên bo mạch thiết kế. Qúa trình lập trình/thử nghiệm được đơn giản hóa theo kiểu in the circuit cho tới khi hoàn thiện phần mềm.
Cổng I/O: Sử dụng để ghép nối với các thiết bị ngoài.
Các chân nối:Hầu hết các chân nối có thể là IN hay OUT đơn lẽ hay nhóm qua lập trình. 1 chân nối có thể làm nhiều chức năng theo từng thời điểm khác nhau, ví dụ chân RA0 của cổng PORTA: out-đưa dữ liệu cho 7-segment LED, sau đó là cổng in-đọc dữ liệu vào. Công suất các cổng ra có thể cho tới 25 mA.
Định thời (Timer / Counters): Thường có 3 bộ đếm dùng để làm định thời, dung như bộ đếm hay định thời.
78
Timer 0: 8 bit, có khả năng đặt trước một giá trị với tín hiệu đầu vào có từ bên trong (Fosc/4) hay từ bên ngoài. Khi đếm tràn giá trị sẽ tạo ra một ngắt, được dùng như một watch dog.
Timer 1 : 16 bit, với khả năng đặt trước giá trị. Đếm tràn sẽ tạo ra một ngắt.
Timer 2 : 8 bit, với khả năng đặt trước giá trị. Sử dụng đặt giá trị gốc thờii gian cho module PWM.
USART: Cổng nối tiếp RS 232 dùng kết hợp với mạch tạo ra V24, ví dụ vi mạch MAX232, hay SP202ECP.
Baud Rates: đặt tốc độ cho UART, có thể hoạt động tới 38.4kbaud.
CCP (Capture/Compare/PWM) điều chế PWM với 3 chế độ: Capture – ghi nhận sự kiện
Compare – So sánh khi Timer 1 đạt giá trị đặt trước.
PWM - Pulse Width Modulation.
Capture : Lấy dữ liệu của Timer 2 khi chân CCP xuống lên cao hay xuống thấp do lập trình.
Compare: So sánh khi Timer 1 đạt giá trị, và đưa vào CCPR1. Dùng để khởi động ADC.
PWM: Điều chế PWM với độ phân giải 10 bit.
SSP (Synchronous Serial Port): kết nối với thiết bị theo giao thức SPI SPI (Serial Peripheral Interface) hay I2C(Inter IC communication). (project I2C here, more info I2C
here).
Comparator and comparator voltage reference: Module so sánh có 2 bộ so sánh tín hiệu tương tự, có thể lập 1 trong 8 cách làm việc khác nhau: đầu vào có thể là tương tự hay số, so sánh với các mức điện áp chuẩn. Điện áp chuẩn được tạo ra bên trong chip, nối vào 1 đầu vào của cả 2 bộ so sánh, với cách dồn kênh có thể ứng dụng cho 4 tín hiệu vào/bộ so sánh. Đầu ra của bộ so sánh có thể gởi ra ngoài qua một chân của vi mạch. Mức tín hiệu vào nằm trong giới hạn Vdd và Vss.
ADC : Phân giải cấp độ10 bit, 10 đầu vào tương tự dồn kênh.
PSP: Cổng song song 8 bit, đọc/ghi, chế độ slave, cho phép một hệ thống khác giao tiếp trực tiếp vào CPU từ ngoài với tín hiệu chọn chip (CS-chip select). Hệ bên ngoài nhìn CPU như thiết bị kiểu ánh xạ bộ nhớ (memory mapped I/O), như vậy PIC CPU là một hệ con (slave) của hệ kia, và có thể lạp trình cho PIC thực hiện các tác vụ theo yêu cầu.
LCD: Giao diện với LCD, ví dụ với LCD module HD44780.
Các đặc tả đặc biệt:
ICSP In Circuit Serial Programming
click here (jumps to ICSP section).
79
WDT Watch dog timer This is a software error protector.
BOR Brown Out reset
This detects if the power supply dips slightly and resets the device if so.
POR Power on reset This starts microcontroller initialization.
PWRT PoWeR up Time A time delay to let Vdd rise.
OST Oscillator start up timer
Wait for 1024 cycles after PWRT.
SLEEP PIC
microcontroller sleep mode
Enter low power mode.
WDT ( Watch dog timer): sử dụng khi phần mềm chạy có vấn đề, sẽ RESET cứng CPU về trạng thái ban đầu. Để cấm reset cứng CPU, khi phần mềm làm việc bình thường, cần phát sinh lệnh CLRWDT cài trong chu trình, và nạp lại giá trị định thời cho WDT. WDT chạy theo đồng hồ riêng.
POR (Power On Reset): Khởi động PIC microcontroller khi có sườn lên của tín hiệu MCLR.
PWRT: nếu cho phép PIC microcontroller sẽ khởi động sau 72 ms.
OST (Oscillator Startup Timer): độ trể cần 1024 chu kì để có tần số ổn định.
SLEEP (Sleep mode -or low power consumption mode) hoạt động khi thực hiện lệnh 'SLEEP'. PIC sẽ “thức dậy” bởi các sự kiện như: RESET ngoài, Watch Dog Timer, INT - peripheral interrupt.
80 PIC microcontroller Device PIC microcontroller No. Pins PIC microcontroller Flash memory WORDS 12F675 8 1k 16F88 18 4k 16F877A 40 8k
Dung lượng bộ nhớ Flash của PIC Microcontroller
Bộ nhớ của PIC thường không lớn, nhưng với tập lệnh RICS vẫn có thể chạy nhiều ứng dụng, tuy nhiên nếu cần bộ nhớ lớn hơn, hãy chọn PIC 16F với 4 - 8Kword (hay 8-16KB) hay mở rroojng qua liên kết I2C.
Dung lượng bộ nhớ RAM và EEPROM của PIC microcontroller
RAM chứa biến và các dữ liệu tức thì, hay tạm thời, lưu ý khi ứng dụng với độ dài dữ liệu không quá lớn. Không nên dùng dấu phẩy động, nên dùng số nguyên dài dấu phẩy cố định
PIC microcontroller EEROM : cho dữ liệu, hằng số.
PIC hiện nay rất phổ biến ở nước ta trong giảng dạy và thực hành ứng dụng. Có thể tham khảo tại: http://www.picvietnam.com/forum/showthread.php?t=10
81
82
CPU RISC hiệu năng cao:
• Chỉ cần 35 lệnh máy :
- Tất cả các lệnh đều thực hiện chỉ trong 1 chu kì lệnh, trừ các lệnh nhảy
• Tốc độ hoạt động:
- DC – 20 MHz tần số đầu vào (clock input) - DC – 200 ns cho một chu kì lệnh
• Ngắt
• 8-Level Deep Hardware Stack
• Csac chế độ địa chỉ: Direct, Indirect và Relative
Các đặc điểm đặc biệt của vi điều khiển:
• Giao động nội chính xác lập bởi nhà máy ±1%
- Khả trình lập tần số từ 8 MHz xuống đến 31 kHz
- Tinh chỉnh bằng phần mềm
- Hai tốc độ khởi động chọn khi khởi động - Phát hiện sự cố ở thạch anh cho các ứng dụng tới hạn
- Khả chuyển đồng hồ ngay khi đang hoạt động để tiết kiệm năng lượng
• Có chế độ “ngủ” tiết kiệm năng lượng • Thang nguồn nuôi rộng :2.0V-5.5V • Chụi đựng môi trường nhiệt công nghiệp cao
• Khởi động khi bật nguồn (Power-on Reset (POR))
• Định thời bật nguồn (Power-up Timer (PWRT)) và khởi động giao động ( Oscillator Start-up Timer (OST)) • Khởi động với phần mềm • Bảo vệ mã khả trình
• Flash/EEPROM Cell bền vững lâu dài với: - 100,000 lần ghi vàoFlash
- 1,000,000 lần ghi vào EEPROM - Flash/Data EEPROM sống tới hơn 40 years
• Gở rối trong chip (In-Circuit Debugger (on board))
Tiêu thụ năng lượng thấp:
• Dòng ở chế độ nghỉ (Standby Current): - 50 nA @ 2.0V
• Dòng làm việc (Operating Current): - 11μA @ 32 kHz, 2.0V,
- 220μA @ 4 MHz, 2.0V • Dòng với Watchdog Timer: - 1μA @ 2.0V, typical
Các ngoại vi:
• 24/35 chân vào/ra (I/O) khả năng kiểm soát hướng :
- Dòng tải trực toeesp cho đèn LED - Thay đổi chức năng ngắt ở chân chip - Khả trình ở từng chân chip • Module với các bộ so sánh: - 2 bộ so sánh tương tự - Khả trình điện áp chuẩn (CVREF) module (% of VDD) - Điện áp chuẩn cố định (0.6V) - Có mạch lật kiểu SR làm thanh chốt - Có công cho bộ đếm ngoài nối vào cho phép đếm
• Bộ biến đổi ADC:
- Độ phân giải 10-bit với 11/14 kênh