Kiến trúc bộ nhớ Von Newmann và Havard

Một phần của tài liệu Bài giảng Hệ thống nhúng 2010 (Trang 33)

Kiến trúc Havard tách/phân biệt vùng lưu mã chương trình và dữ liệu. Mã chương trình chỉ có thể được lưu và thực hiện trong vùng chứa ROM và dữ liệu cũng chỉ có thể lưu và trao đổi trong vùng RAM. Hầu hết các vi xử lý nhúng ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn chế để lấy dữ liệu ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard mở rộng thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng mã chương trình theo cách nhúng vào trong các lệnh tức thời. Một số Chip vi điều khiển nhúng tiêu biểu hiện nay sử dụng cấu trúc Havard là 8031, PIC, Atmel AVR90S. Nếu sử dụng Chip 8031 chúng ta sẽ nhận thấy điều này thông qua việc truy nhập lấy dữ liệu ra từ vùng dữ liệu RAM hoặc từ vùng mã chương trình. Chúng ta có một vài con trỏ được sử dụng để lấy dữ liệu ra từ bộ nhớ dữ liệu RAM, nhưng chỉ có duy nhất một con trỏ DPTR có thể được sử dụng để lấy dữ liệu ra từ vùng mã chương trình. Hình 13 mơ tả ngun lý kiến trúc của bộ nhớ von Neumann và Harvard.

Ưu điểm nổi bật của cấu trúc bộ nhớ Harvard so với kiến trúc von Neumann là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ mã chương trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể được truy nhập đồng thời và làm tăng tốc độ luồng trao đổi với bộ xử lý.

Bộ nhớ chương trình – PROM (Programmable Read Only Memory)

Vùng để lưu mã chương trình. Có ba loại bộ nhớ PROM thông dụng được sử dụng cho hệ nhúng và sẽ được giới thiệu lần lượt sau đây.

• EPROM

Bao gồm một mảng các transistor khả trình. Mã chương trình sẽ được ghi trực tiếp và vi xử lý có thể đọc ra để thực hiện. EPROM có thể xố được bằng tia cực tím và có thể được lập trình lại. Cấu trúc vật lý của EPROM được mơ tả như trong Hình 11.

Hình 13: Ngun lý cấu tạo và hoạt động xóa của EPROM

Cũng giống như EPROM được cấu tạo bởi một mảng transistor khả trình nhưng có thể xố được bằng điện và chính vì vậy có thể nạp lại chương trình mà khơng cần tách ra khỏi nền phần cứng VXL. Ưu điểm của bộ nhớ flash là có thể lập trình trực tiếp trên mạch cứng mà nó đang thực thi trên đó.

Bộ nhớ dữ liệu - RAM

Vùng để lưu hoặc trao đổi dữ liệu trung gian trong quá trình thực hiện chương trình. Có hai loại RAM được sử dụng trong thực tế là SRAM(static RAM) và DRAM(dynamic RAM).

Hình 14: Cấu trúc nguyên lý bộ nhớ RAMc) Giao tiếp ngoại vi c) Giao tiếp ngoại vi

 Giao diện song song 8bit/16bit

Các cổng song song là một dạng giao diện vào ra đơn giản và phổ biến nhất để kết nối thơng tin với ngoại vi. Có nhiều loại cấu trúc giao diện vật lý điện tử từ dạng cổng vào ra đơn giản cực Collector TTL hở trong các ứng dụng cổng máy in đến các loại cấu trúc giao diện cổng tốc độ cao như các chuẩn bus IEEE-488 hay SCSI. Hầu hết các chip điều khiển nhúng có một vài cổng vào ra song song khả trình (có thể cấu hình). Các giao diện đó phù hợp với các cổng vào

ra đơn giản như các khoá chuyển. Chúng cũng phù hợp trong các bài toán phục vụ giao diện kết nối điều khiển và giám sát theo các giao diện như kiểu rơle bán dẫn.

 Giao diện nối tiếp - I2C (Inter-IC)

Giao thức ưu tiên truyền thông nối tiếp được phát triển bởi Philips Semiconductor và được gọi là bus I2C. Vì nguồn gốc nó được thiết kế là để điều khiển liên thông IC (Inter IC) nên nó được đặt tên là I2C. Tất cả các chíp có tích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên Chip để truyền thơng trực tiếp với các thiết bị tương thích I2C khác. Việc truyền dữ liệu nối tiếp theo hai hướng 8 bit được thực thi theo 3 chếđộ sau:

- Chuẩn (Standard)—100 Kbits/sec - Nhanh (Fast)—400 Kbits/sec

- Tốc độ cao (High‐Speed)—3.4 Mbits/sec

Đường bus thực hiện truyền thông nối tiếp I2C gồm hai đường là đường truyền dữ liệu nối tiếp SDA và đường truyền nhịp xung đồng hồ nối tiếp SCL. Vì cơ chế hoạt động là đồng bộ nên nó cần có một nhịp xung tín hiệu đồng bộ. Các thiết bị hỗ trợ I2C đều có một địa chỉ định nghĩa trước, trong đó một số bit địa chỉ là thấp có thể cấu hình. Đơn vị hoặc thiết bị khởi tạo q trình truyền thơng là đơn vị Chủ và cũng là đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc quá trình truyền. Nếu đơn vị Chủ muốn truyền thơng với đơn vị khác nó sẽ gửi kèm thơng tin địa chỉ của đơn vị mà nó muốn truyền trong dữ liệu truyền. Đơn vị Tớ đều được gán và đánh địa chỉ thơng qua đó đơn vị Chủ có thể thiết lập truyền thông và trao đổi dữ liệu. Bus dữ liệu được thiết kế để cho phép thực hiện nhiều đơn vị Chủ và Tớ ở trên cùng Bus.

Q trình truyền thơng I2C được bắt đầu bằng tín hiệu start tạo ra bởi đơn vị Chủ. Sau đó đơn vị Chủ sẽ truyền đi dữ liệu 7 bit chứa địa chỉ của đơn vị Tớ mà nó

Bài giảng Hệ thống nhúng 2010 – BM Kỹ thuật Máy tính – ĐH Kỹ thuật Cơng nghiệp Thái ngun

trước. Bit thứ tám tiếp theo sẽ chứa thông tin để xác định đơn vị Tớ sẽ thực hiện vai trò nhận (0) hay gửi (1) dữ liệu. Tiếp theo sẽ là một bit ACK xác nhận bởi đơn vị nhận đã nhận được 1 byte trước đó hay khơng. Đơn vị truyền (gửi) sẽ truyền đi 1 byte dữ liệu bắt đầu bởi MSB. Tại điểm cuối của byte truyền, đơn vị nhận sẽ tạo ra một bit xác nhận ACK mới. Khuôn mẫu 9 bit này (gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ được lặp lại nếu cần truyền tiếp byte nữa. Khi đơn vị Chủ đã trao đổi xong dữ liệu cần nó sẽ quan sát bit xác nhận ACK cuối cùng rồi sau đó sẽ tạo ra một tín hiệu dừng STOP để kết thúc q trình truyền thơng.

I2C là một giao diện truyền thơng đặc biệt thích hợp cho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảng cách ngắn và tốc độ thấp. Ví dụ như truyền thơng giữa CPU với các khối chức năng trên cùng một bo mạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực... Hầu hết các thiết bị hỗ trợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vài Mbps. I2C khá đơn giản để thực thi kết nối nhiều đơn vị vì nó hỗ trợ cơ chế xác định địa chỉ.

- SPI

SPI là một giao diện cổng nối tiếp đồng bộ ba dây cho phép kết nối truyền thông nhiều VĐK được phát triển bởi Motorola. Trong cấu hình mạng kết nối truyền thống này phảicó một VĐK giữ vai trị là Chủ (Master) và các VĐK cịn lại có thể hoặc là Chủ hoặc là Tớ. SPI có 4 tốc độ có thể lập trình, cực và pha nhịp đồng hồ khả trình và kết thúc ngắt truyền thơng. Nhịp đồng hồ khơng nằm trong dịng dữ liệu và phải được cung cấp như một tín hiệu tách độc lập. Có ba thanh ghi SPSR, SPCR và SPDR cho phép thực hiện các chức năng điều khiển, trạng thái và lữu trữ. Có bốn chân cơ bản cần thiết để thực thi chuẩn giao diện truyền thông này.

- Dữ liệu ra MOSI (Master Output – Slave Input) - Dữ liệu vào MISO (Master Input – Slave Output) - Nhịp xung chuẩn SCLK (Serial Clock)

Hình 15: Nguyên lý kết nối 1 Master và 1 Slave sử dụng SPI

Hình 17 chỉ ra nguyên lý kết nối giữa một đơn vị Chủ và một đơn vị Tớ trong truyền thơng SPI. Trong đó tín hiệu SCLK sẽ được tạo ra bởi đơn vị Chủ và là tín hiệu vào của đơn vị Tớ. MOSI là đường truyền dữ liệu ra từ đơn vị Chủ tới đơn vị Tớ và MISO là đường truyền dữ liệu vào đơn vị Chủ đến từ đơn vị Tớ. Đơn vị Tớ được lựa chọn khi đơn vị Chủ kích hoạt tín hiệu SS.

Nếu hệ thống có nhiều đơn vị tớ đơn vị Chủ sẽ tạo phải ra các tín hiệu tách biệt để chọn đơn vị Tớ. Cơ chế đó được thực hiện nhờ sơ đồ kết nối

nguyên lý mơ tả như

trong Hình 18. Đơn

vị Chủ sẽ tạo ra tín

hiệu chọn đơn vị Tớ

nhờ các chân tín

Bài giảng Hệ thống nhúng 2010 – BM Kỹ thuật Máy tính – ĐH Kỹ thuật Cơng nghiệp Thái ngun

thời gian để tránh trường hợp tín hiệu bị thay đổi trong q trình đang truyền dữ liệu. Một điều dễ nhận ra rằng SPI khơng hỗ trợ cơ chế xác nhận trong q trình thực hiện truyền thông. Điều này phụ thuộc vào giao thức định nghĩa hoặc phải thực hiện bổ sung thêm một số các mở rộng phụ bên ngồi. Khả năng truyền thơng đồng thời hai chiều với tốc độ lên đến khoảng vài Mbit/s và nguyên lý khá đơn giản nên SPI hoàn toàn phù hợp để thực hiện truyền thông giữa các thiết bị yêu cầu truyền thông tốc độ chậm, đặc biệt hiệu quả trong các ứng dụng một đơn vị Chủ và một đơn vị Tớ. Tuy nhiên trong các ứng dụng với nhiều đơn vị Tớ việc thực thi lại khá phức tạp vì thiếu cơ chế xác định địa chỉ, và sự phức tạp sẽ tăng lên khi số đơn vị Tớ tăng.

3.2. Một số nền phần cứng thông dụng

Hiện trên thị trường có rất nhiều nhà sản xuất phát triển nhiều loại chip VXL/VĐK nhúng khác nhau, mỗi loại đều có những tính năng và ưu việt riêng. Trong thực tế mỗi dòng chip ra đời được thiết kế chuyên biệt cho một phân khúc ứng dụng nào đấy, vì thế khơng có một ngun tắc chung hay một loại VXL/VĐK chung cho mọi bài toán. Tuỳ vào khả năng và nhiệm vụ cụ thể của hệ thống mà ta chọn lựa loại chip phù hợp. Trong một số bài toán và một số dịng chip thì sự phân biệt giữa các chip là khơng rõ dàng, nghĩa là có thể việc sử dụng các chip khác nhau nhưng mạng lại hiệu qua như nhau.

Ngoài vi xử lý của máy tính, ta có thể phân loại ra hai dòng chip nhúng là vi xử lý nhúng và vi điều khiển nhúng. Vi xử lý nhúng được sử dụng rộng rãi với thị phần lớn nhất hiện nay là ARM, cịn vi điều khiển thì có nhiều loại như AVR, PIC, 8051,... Tuy nhiên trong phạm vi bài giảng này chi trình bày tóm lược một số loại chip là PIC, 8051, ARM, …

3.3.1. Họ vi điều khiển 8051

Vi điều khiển 8051 là vi điều khiển 8bit được intel giới thiệu vào năm 1981, hiện nay họ 8051 được phát triển thành nhiều dịng với các đặc tính khác nhau về cấu hình, số các module tích hợp sẵn,…, một số dịng điển hình như 8052, 8031. Ngồi ra có rất nhiều hãng sãn xuất chip có kiến trúc tương thích với 8051 như Philip, Atmel,.. Tuy nhiên cấu trúc chung của một chip họ 8051 có thể được biểu thị như hình 20.

Hình 16: Cấu trúc tông quan của vi điều khiển họ 8051 của intel

Một số đặc tính chung của chip họ 8051:

- Dải điện áp hoạt động 4.0V đến 5.5V - Tần số hoạt động: 0 Hz to 33 MHz - 32 đường vào/ra lập trình được - Có thể mở rộng tối đa 64K ROM nội

- Có thể mở rộng tối đa 64K bộ nhớ dữ liệu ngồi - Có thể mở rộng tối đa 64K bộ nhớ lập trình ngồi - 128Byte RAM Nội

- Tích hợp sẵn cổng truyền thơng chuẩn RS232 - Tích hợp sẵn các bộ định thời Timer 8/16bit

3.3.2. Họ vi điều khiển AVR

AVR là một họ vi điều khiển do hãng Atmel sản xuất. AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa theo kiến trúc RISC(Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ xử lí.

So với các chip vi điều khiển 8 bits khác, AVR có nhiều đặc tính hơn hẳn, hơn

cả trong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng:

- AVR tích hợp gần như đầy đủ các module chức năng thơng dụng. - Thiết bị lập trình (mạch nạp) cho AVR đơn giản

- Bên cạnh lập trình bằng ASM, cấu trúc AVR được thiết kế tương thích với ngơn ngữ C.

- Các tính năng chung của AVR:

o Có thể sử dụng xung clock lên đến 16MHz, hoặc sử dụng xung clock nội lên đến 8 MHz (sai số 3%)

o Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn, có SRAM (Ram tĩnh) lớn, và đặc biệt có bộ nhớ lưu trữ lập trình được EEPROM.

o 8 bits, 16 bits timer/counter tích hợp PWM.

o Các bộ chuyển đối Analog – Digital phân giải 10 bits, nhiều kênh.

o Chức năng Analog comparator.

o Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232).

o Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và Slaver.

o Giao diện nối tiếp Serial Peripheral Interface (SPI)

o ...

Một số chip AVR thơng dụng:

• AT90S1200

• AT90S2313

• AT90S2323 and AT90S2343

• AT90S2333 and AT90S4433

• AT90S4414 and AT90S8515

• AT90S4434 and AT90S8535

• AT90C8534

• ATtiny10, ATtiny11 and ATtiny12

• ATtiny15 • ATtiny22 • ATtiny26 • ATtiny28 • ATmega8/8515/8535 • ATmega16 • ATmega161 • ATmega162 • ATmega163 • ATmega169 • ATmega32 • ATmega323 • ATmega103 • ATmega64/128/2560/2561 • AT86RF401. ....

3.3.3. Họ vi điều khiển PsoC

PSoC viết tắt từ Programmable System On Chip, nghĩa là hệ thống khả trình trên một chíp. Các chíp chế tạo theo cơng nghệ PSoC cho phép thay đổi được cấu hình bằng cách gán chức năng cho các khối tài ngun có sẵn trên chíp. PsoC là chip dựa trêm công nghệ CsoC(Configurable System on Chip - ) thực sự là một công nghệ ưu việt nó tích hợp cả Processor và bộ nhớ RAM, FLASH, cho phép ta lập trình các thuật tốn phức tạp một cách dễ dàng bằng ngôn ngữ C hoặc Assembler. So với các vi điều khiển thông dụng như 8051, Motorola 68HC908, Microchip PIC16Fxx có cấu trúc CPU và ngoại vi cố định (fixel digital and analog penpherals) thì chíp PSoC có khả năng mềm dẻo thích ứng với đa dạng ứng dụng và nhất là khả năng tái cấu hình (reconfigurable) tạo thành nhiều loại chip khác nhau trên một chip ở những thời điểm khác nhau trong một ứng dụng. Ví dụ chip PSoC của hãng Cypress Micro System, ta có thể thiết kế cho nó thành một chip điều khiển ổn định nhiệt độ lò, ổn định và điều khiển chiều quay, tốc độ quay của động cơ điện.

Công nghệ chế tạo chip thông minh trong đo lường và điều khiển trên cơ sở CSoC có tính hiệu quả kinh tế, nhất là đối với chip PSoC của Cypress Micro System vì có khả năng xử lý hỗn hợp dữ liệu tương tự và số. Nó cho ta khả năng phát triển các sản phẩm mới nhanh dễ dàng mở rộng những chức năng mới sau này. Công nghệ này cho nhiều giải pháp lựa chọn và hỗ trợ đa dạng ứng dụng từ đo lường, điều khiển, xử lý, truyền thông, kết nối mạng trên cùng một chip với giá thành thấp. Hệ thống phần mềm hỗ trợ thiết kế chip PSoC Disigner của Cypress Micro System có đầy đủ các chức năng thiết kế, sắp xếp các khối chức năng, mô phỏng, lập trình, tìm lỗi và nạp chíp hiện đại, có các module ứng dụng (user module) phong phú giúp ta không phải lập trình trên ngơn ngữ HDL (Hardware Description Languages) vừa khó bao quát, vừa khơng hiệu quả. Ngồi ra giá thành của các chíp PSoC trắng từ 1- 5 USD/ chip rẻ

Một phần của tài liệu Bài giảng Hệ thống nhúng 2010 (Trang 33)