Cảnh báo nhiệt độ từ xa qua RF“

30 652 0
Cảnh báo nhiệt độ từ xa qua RF“

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Bộ Thông Tin Và Truyền Thông Học Viện Công Nghệ Bưu Chính Viễn Thông ……………………………………. ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Đề tài : “ Cảnh báo nhiệt độ từ xa qua RF“ Người hướng dẫn : TS. Nguyễn Ngọc Minh Nhóm thực hiện : 13 Sinh viên : Lê Ngọc Sơn Lê Ngọc Tuấn Hoàng Quốc Hưng Nguyễn Duy Mạnh Lớp : D11XLTH Hệ : Đại học chính quy Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG LỜI CẢM ƠN Được sự đồng ý của Thầy giáo hướng dẫn TS. Nguyễn Ngọc Minh , chúng em đã thực hiện đề án “ Cảnh Báo Nhiệt Độ Từ Xa qua RF “ . Để hoàn thành bài báo cáo này , chúng em xin chân thành cảm ơn thầy giáo đã tận tình hướng dẫn , giảng dạy trong suốt quá trình học tập , nghiên cứu và rèn luyện ở trường Học Viện Công Nghệ Bưu Chính Viễn Thông . Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất . Song do buổi đầu mới làm quen với công tác nghiên cứu khoa học , tiếp cận tri thức mới với các tài liệu có hạn nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được . Chúng em rất mong được sự góp ý của quý Thầy và các bạn đồng học để bài báo cáo được hoàn chỉnh hơn . Chúng em xin chân thành cảm ơn ! Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Chương I :Đặt Vấn Đề 1. Lời mở đầu Ngày nay với những ứng dụng khoa học tiên tiến, thế giới của chúng ta ngày một hiện đại và văn minh hơn. Sự phát triển của kĩ thuật điện tử đã tạo ra hàng loạt những thiết bị với sự chính xác cao, tốc độ nhanh, gọn nhẹ đã đóng vai trò vô cùng quan trọng trong cuộc sống của con người, là chìa khóa đi vào công nghệ hiện đại. Máy móc dần đang thay thế sức lao động của con người, tự động hóa, điều khiển đóng vai trò vô cùng quan trọng trong công nghiệp, quản lí. Điện tử đang trở thành một ngành khoa học đa nhiệm vụ. Điện tử đã đang và không ngừng đáp ứng được nhu cầu của các ngành nông- lâm- ngư nghiệp đến các nhu cầu trong cuộc sống. Một trong những ứng dụng quan trọng của công nghệ Điện tử là kỹ thuật điều khiển từ xa. Nó đã góp phần rất lớn trong việc điều khiển các thiết bị phục vụ nhu cầu của sản xuất. Xuất phát từ ứng dụng trên, chúng em đã chọn đề tài “ Thiết kế hệ thống cảnh báo nhiệt độ từ xa qua RF ” 2. Nhiệm Vụ -Tìm hiểu tổng quan về module RF , KIT … và cơ chế hoạt động. -Tìm hiểu phần mềm Keil C, Altium. -Lập sơ đồ khối. -Đưa ra nguyên tắc hoạt động của các khối và các linh kiện sẽ sử dụng để thiết kế mạch phù hợp với yêu cầu từng khối. -Thực hiện viết code. -Thực hiện test. -Ráp mạch và kiểm tra sản phẩm có đạt yêu cầu đưa ra không. -Hoàn thành sản phẩm hoàn chỉnh. -Hoàn thành báo cáo. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 3. Mục Tiêu - Hiểu được nguyên tắc hoạt động của các khối. -Phát triển đề tài ứng dụng được vào trong cuộc sống. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG CHƯƠNG II: CƠ SỞ LÍ THUYẾT A. về RF nRF24L01 1 Giới thiệu về sóng RF. Trong một phiên truyền thông, vì tận cùng bản chất của dữ liệu bao gồm các bit 0 và 1, bên phát dữ liệu cần có một cách thức để gửi các bit 0 và 1 để gửi cho bên nhận. Một tín hiệu xoay chiều hay một chiều tự nó sẽ không thực hiện tác vụ này. Tuy nhiên, nếu một tín hiệu có thay đổi và có dao động, dù chỉ một ít, sự thay đổi này sẽ giúp phân biệt bit 0 và bit 1. Lúc đó, dữ liệu cần truyền sẽ có thể gửi và nhận dữ liệu thành công dựa vào sự thay đổi của tín hiệu. Dạng tín hiệu điều chế còn gọi là sóng mang. Có ba thành phần của dạng sóng có thể tạo ra sóng mang, đó là biên độ, tần số, và pha. Tất cả các dạng truyền thông dùng sóng vô tuyến đều dùng vài dạng điều chế để truyền dữ liệu. Để mã hóa dữ liệu vào trong một tín hiệu qua sóng AM/FM, điện thoại di động, truyền hình vệ tinh, ta phải thực hiện một vài kiểu điều chế trong sóng vô tuyến đang truyền. 1.1 Module RF nRF24L01 NRF24L01 được thiết kế để cài đặt và hoạt động dựa trên giao tiếp SPI (Serial Peripheral Interface). Do đó các thiết lập của NRF24L01 được lưu trong các thanh ghi (Register). Các thanh ghi này cho phép người lập trình có khả năng thay đổi các thông số, chế độ hoạt động hệ thống khi cấu hình theo mục đích riêng của người dùng. Một số thông số quan trọng của NRF24L01 bao gồm: Tần số Radio: • Băng tần quốc tế 2.4 GHz ISM (Sử dụng tự do mà không phải xin phép) • 126 kênh RF • GFSK module • Kênh 1 MHz không chồng lấn cho tốc độ truyền 1 Mbps • Kênh 2 MHz không chồng lấn cho tốc độ truyền 2 Mbps Bộ truyền tín hiệu: • Năng lượng ra khả trình: 0, -6, -12 và -18 dBm • Dòng ra 11.3 mA khi năng lượng ra là 0 dBm Bộ nhận tín hiệu: • • • Bộ lọc kênh tích hợp Dòng ra 12.4 mA ở tốc độ 2 Mbps Độ nhạy -85 dBm ở tốc độ 2 Mbps Giao tiếp: • • • 4 pins SPI cứng (hardware SPI) Tần số hoạt động tối đa 8 MHz 3 bộ đệm dữ liệu RF 32 bytes FIFOs Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Hình 1.1 Sơ đồ kết nối vi điều khiển Quản lý năng lượng: • Dải điện áp đầu vào từ 1.9 – 3.6 v. 1.2 Chế độ hoạt động NRF24L01 có 4 chế độ hoạt động: -Power Down Mode: Ở chế độ này NRF24L01 không hoạt động để giảm tối đa dòng tiêu thụ hệ thống. Để cấu hình chế độ này cần thiết lập bit PWR_UP = 0 trong thanh ghi CONFIG. -Standby Mode: Đây là chế độ chờ. Bao gồm 2 chế độ Standby-I và Standby-II: +Standby-I: Tối thiểu hóa dòng tiêu thụ trung bình trong thời gian khởi động. +Standby-II: Chế độ này được kích hoạt khi cần thêm thời gian upload gói dữ liệu tx packet lên bộ đệm FIFO (TX-FIFO) để truyền dữ liệu đi. Tx FIFO lúc này trống không có dữ liệu gửi đi. -TX Mode: Chế độ truyền dữ liệu đi. Để vào chế độ này cần để bit PWR_UP, PRIM_TX = 1 và chân CE cấu hình mức cao. Chế độ TX Mode không hoạt động quá 4ms một phiên hoạt động. TX Mode hoạt động cho phép đẩy dữ liệu lên TX FIFO để truyền cho bên nhận. -RX Mode: Chế độ nhận dữ liệu đến. Để vào chế độ này cần đặt bit PWR_UP, PRIM_RX = 1 và chân CE cấu hình mức cao. Trong chế độ RX bên nhận giải điều chế tín hiệu từ kênh RF, liên tục gửi dữ liệu đã tách sóng đến bên nhận. Hệ thống liên tục tìm gói tin phù hợp. Nếu gói tin đúng địa chị và phù hợp mã kiểm tra CRC, gói payload chứa gói tin phù hợp sẽ được đưa vào khe trống trên bộ đệm RX. Nếu bộ đệm RX đã đầy thì gói tin sẽ bị loại bỏ. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Hình 1.2 Module NRF24L01 1.3 Sơ đồ chân của chip nRF24L01 Hình 1.3 Sơ đồ chân nRF24L01 Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Bảng 1.1: Chú giải sơ đồ chân nRF24L01 P Tên Chân Loại tín hiệu Chú giải 1 CE Digital input Chân Enable kích hoạt chế độ RX hoặc TX 2 CSN Digital input Chọn chip SPI 3 SCK Digital input SPI Clock 4 MOSI Digital input SPI chủ gửi , tớ nhận dữ liệu 5 MISO Digital input SPI chủ nhận , tớ gửi dữ liệu 6 IRQ Digital input Ngắt cứng . kích hoạt thấp 7 VDD Power 8 VSS Power 9 XC2 Analog Output Thạch anh 1 XC1 Analog Input Thạch anh 1 VDD_ PA Power Output 1 ANT1 RF Kết nối anten1 1 ANT2 RF Kết nối anten2 1 VSS Power Chân đất (0v) 1 VDD Power in 0 1 Nguồn cung cấp từ +1,9v đên +3,6v , một chiều Chân đất( 0v) Nguồn ra 1,8 cung cấp cho các khối nội bộ trong nrf 2 3 4 5 Nguồn cung cấp từ +1.9v đến +3.6v, một chiều Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 1 IREF Anlog Input 1 VSS Power 1 VDD Power 1 DVD D Power Output 2 VSS Power 6 Chân tham chiếu. Nối với một điện trở 22KΩ xuống đất. Chân đất (0v) 7 8 9 Nguồn cung cấp từ +1.9v đên +3.6v, một chiều. Nguồn số nội bộ Chân đất (0v) 0 1.4 Cách thức sử dụng của nRF24L01 Cách thức sử dụng và kết nối: Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi trường có vật cản. Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận dữ liệu trên nhiều kênh khác nhau. Modul có khả năng thay đổi công suất phát bằng chương trình, điều này giúp nó có thể hoạt động trong chế độ tiết kiệm năng lượng. Chú ý: Điện áp cung cấp cho Module là 1.9V và 3.6V. Điện áp thường cung cấp là 3.3V. Nhưng các chân IO tương thích với chuẩn 5V. Điều này giúp nó giao tiếp rộng rãi với các dòng vi điều khiển. 1.5 Một số ứng dụng của nRF24L01 -Thiết bị ngoại vi điều khiển từ xa máy tính -Game pad và key pad không dây -Robot điều khiển từ xa -Thu phát radio khoảng cách ngắn Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG B. Về ds18b20 I. Tổng quan DS18B20 là IC cảm biến nhiệt độ, chỉ bao gồm 3 chân, đóng gói dạng TO92 3 chân nhỏ gọn. Đặc điểm chính của DS18B20 như sau: + Lấy nhiệt độ theo giao thức 1 dây (1wire) + Cung cấp nhiệt độ với độ phân giải config 9,10,11,12 bit, tùy theo sử dụng. Trong trường hợp không config thì nó tự động ở chế độ 12 bit. +Thời gian chuyển đổi nhiệt độ tối đa là 750ms cho mã hóa 12 bit +Có thể đo nhiệt độ trong khoảng -55 -> +125°C. Với khoảng nhiệt độ là -10°C to +85°C thì độ chính xác ±0.5°C,±0.25°C ,±0.125°C,±0.0625°C. theo số bít config. + Có chức năng cảnh báo nhiệt khi nhiệt độ vượt ngưỡng cho phép. Người dùng có thể lập trình chức năng này cho DS18B20. Bộ nhớ nhiệt độ cảnh báo không bị mất khi mất nguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia laze. + Cảm biến nhiệt độ DS18B20 có mã nhận diện lên đến 64-bit, vì vậy bạn có thể kiểm tra nhiệt độ với nhiều IC DS18B20 mà chỉ dùng 1 dây dẫn duy nhất để giao tiếp với các IC này. Với DS18B20 bạn hoàn toàn có thể tạo cho mình mạch cảm biến nhiệt độ theo ý muốn. + Điện áp sử dụng : 3 – 5.5 V + Dòng tiêu thụ tại chế độ nghỉ rất nhỏ. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG II: Lấy nhiệt độ với ds18b20 a. Tìm hiểu về các lệnh ROM liên quan đến DS18b20 - READ ROM (33h) Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị tớ cùng đáp ứng. - MATCH ROM (55h) Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây. - SKIP ROM (CCh) Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quả khi chỉ có một cảm biến. - SEARCH ROM (F0h) Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm. - ALARM SEARCH (ECh) Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820. khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có thể được mô tả ngắn gọn như sau: - WRITE SCRATCHPAD (4Eh) Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện. - READ SCRATCHPAD (BEh) Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 - CRC). Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc. - COPYSCRATCHPAD (48h) Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM. Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo. - CONVERT T (44h) Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0. - READ POWER SUPPLY (B4h) Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG b. Cách config độ phân giải cho ds18b20 Sơ đồ bộ nhớ của ds18b20 Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Các byte thứ 5 của bộ nhớ đệm có chức năng đăng ký cấu hình (config) cho ds18b20, và các bít được tổ chức như sau: Các bit từ 0 đến 4 luôn được đọc giá trị là 1, bít số 7 luôn được đọc giá trị là 0. Cấu hình độ phân giải cho ds18b20 được quyết định bởi R1 và R0 ta có bảng thiết lập như sau. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG c. Sơ đồ kết nối cảm biến nhiệt ds18b20 - Sơ đồ khi sử dụng một cảm biến. - Sơ đồ khi mắc nhiều cảm biến. (Chúng ta cũng chỉ cần 1 dây để lấy mẫu nhiệt độ) Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG d. Đọc nhiệt độ Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổi xong nhiệt độ. Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào chân DQ treo lên nguồn như sơ đồ mắc. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG C. Về Module điều khiển chính Trong quá trình được học trên ghế nhà trường trong các môn học chúng em được thì có rất nhiều loại vi điều khiển phù hợp với đề tài này như: họ vi điều khiển 8051, PIC, AVR..... Nhưng sau khi tìm hiểu trong thực tế thì em nhận thấy rằng có một dòng vi điều khiển mới 32 bit đang được sử dụng rất rộng rãi rất linh hoạt và giá cả cũng rất hợp lí. Đó là dòng vi điều khiển họ ARM và cụ thể là vi điều khiển STM32F103C8T6 đồng thời KIT ARM NANOBOARD do các anh sinh viên khóa trước trong trường phát triển cũng được sự dụng rất nhiều, vì vậy em chọn vi điều khiển này cho đề án vì nhưng tiện ích mà nó mang lại. 1. Lịch sử hình thành và phát triển ARM (Advanced RISC Machine) là một họ vi xử lý 32-bit được sử dụng rộng rãi trong các thiết bị nhúng. Do có những ưu điểm như tiết kiệm, giá thành và năng lượng là những mục tiêu hàng đầu cho việc thiết kế CPU (Central Processing Unit) nên ARM chiếm ưu thế trong các sản phẩm di dộng. Hiện nay, 75% CPU nhúng 32-bit là thuộc họ ARM khiến cho họ vi xử lý ARM trở thành họ vi xử lý 32-bit được sản xuất nhiều nhất trên thế giới. CPU sử dụng bộ vi xử lý ARM được tìm thấy ở khắp các thiết bị sản phẩm điện tử từ thiết bị cầm tay (PDA, điện thoại di động, trò chơi cầm tay, máy tính cầm tay…) cho đến các thiết bị ngoại vi( bộ nhớ, bộ định tuyến để bàn….). Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn. Nhóm thiết kế đứng đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triển một bộ vi xử lý có nhiều điểm kỹ thuật sử dụng trong dòng 6502 (Tên gọi một CPU 8-bit của hãng Rockwell International có thể dùng được 64-Kb địa chỉ bộ nhớ) tiên tiến. Acorn đã từng sản xuất nhiều máy tính dựa trên 6502, vì vậy việc tạo ra một chip như vậy là một bước tiến đáng kể của công ty này. Ngày 26/4/1985, mẫu sản phẩm ARM đầu tiên sản xuất tại công ty kĩ thuật VLSI, SanJose, bang Califonia được chuyển tới trung tâm máy tính Acorn ở Cambridge, Anh Quốc. Vào năm sau, nhóm hoàn thành sản phẩm “thực” gọi là ARM2. ARM2 có bus dữ liệu 32-bit, không gian địa chỉ 26-bit tức cho phép quản lý đến 64 Mb địa chỉ và 16 thanh ghi 32-bit. Một trong những thanh ghi này đóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp nhất lưu giữ các cờ trạng thái của bộ vi xử lý. Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm của Motorola là 68000 với khoảng 68.000 transistor). Sự đơn giản như vậy có được nhờ ARM không có vi chương trình (mà chiếm khoảng 1/4 đến 1/3 trong 68000) và cũng giống như hầu hết các CPU vào thời đó, không hề chứa caches. Sự đơn giản này đưa đến đặc điểm tiêu thụ công suất thấp của ARM, mà lại có tính năng tốt hơn cả 80286. (Tên bộ vi xử lý 16-bit của Intel, xuất hiện năm 1982, phổ biến trong các máy IBM PC/AT và các máy tương thích, có thanh ghi 16-bit, 16-bit bus dữ liệu và có khả năng địa chỉ hóa đến 24- bit). Thế hệ sau, ARM3, được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa. Nửa thập niên sau đó, ARM được phát Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG triển rất nhanh chóng để làm nhân máy tính để bàn của Acorn, nền tảng cho các máy tính hỗ trợ giáo dục ở Anh. Trong thập niên 1990, dưới sự phát triển của Acorn Limited, ARM đã thành một thương hiệu đứng đầu thế giới về các ứng dụng sản phẩm nhúng đòi hỏi tính năng cao, sử dụng năng lượng ít và giá thành thấp. Chính nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều phiên bản mới. Những thành công quan trọng trong việc phát triển ARM ở thập niên sau này: - Giới thiệu ý tưởng về định dạng các chỉ lệnh được nén lại (thumb) cho phép tiết kiệm năng lượng và giá thành ở những hệ thống nhỏ. - Giới thiệu họ điều khiển ARM9, ARM10 và “Strong ARM”. - Phát triển môi trường làm việc ảo của ARM trên PC. - Các ứng dụng cho hệ thống nhúng dựa trên nhân xử lý ARM ngày càng trở nên rộng rãi. Hầu hết các nguyên lý của hệ thống trên chip (Systems on chip-SoC) và cách thiết kế bộ xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới (như giải nén động các dòng lệnh). Việc sử dụng ba trạng thái nhận lệnh, giải mã, thực thi trong mỗi chu kỳ máy mang tính quy phạm để thiết kế các hệ thống xử lý thực. Do đó, nhân xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp. 2. Giới thiệu về dòng vi điều khiển stm32 Những đặc điểm nổi trội của dòng ARM Cortex đã thu hút các nhà sản xuất IC, hơn 240 dòng vi điều khiển dựa vào nhân Cortex đã được giới thiệu. Không nằm ngoài xu hướng đó, hãng sản xuất chip ST Microelectronic đã nhanh chóng đưa ra dòng STM32. STM32 là vi điều khiển dựa trên nền tảng lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế. Lõi ARM Cortex-M3 là sự cải tiến từ lõi ARM7 truyền thống từng mang lại thành công vang dội cho công ty ARM. Hình 3.1: Kiến trúc của STM32 nhánh Performance và Access Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG ST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưng STM32 là một bước tiến quan trọng trên sự hiệu quả giữa kinh phí và hiệu năng (price/performance), giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật sự với các vi điều khiển 8 và 16-bit truyền thống. STM32 đầu tiên gồm 14 biến thể khác nhau, được phân thành hai dòng: dòng Performance có tần số hoạt động của CPU lên tới 72Mhz và dòng Access có tần số hoạt động lên tới 36Mhz. Các biến thể STM32 trong hai nhóm này tương thích hoàn toàn về cách bố trí chân (pin) và phần mềm, đồng thời kích thước bộ nhớ FLASH ROM có thể lên tới 512K và 64K SRAM. Nhánh Performance hoạt động với xung nhịp lên đến 72Mhz và có đầy đủ các ngoại vi, nhánh Access hoạt động với xung nhịp tối đa 36Mhz và có ít ngoại vi hơn so với nhánh Performance. 2.a Các ngoại vi của STM32 Thoạt nhìn thì các ngoại vi của STM32 cũng giống như những vi điều khiển khác, như hai bộ chuyển đổi ADC, timer, I2C, SPI, CAN, USB và RTC. Tuy nhiên mỗi ngoại vi trên đều có rất nhiều đặc điểm thú vị. Ví dụ như bộ ADC 12-bit có tích hợp một cảm biến nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay đổi và hỗ trợ nhiều chế độ chuyển đổi. Mỗi bộ định thời có 4 khối capture compare (dùng để bắt sự kiện với tính năng input capture và tạo dạng sóng ở ngõ ra với output compare), mỗi khối định thời có thể liên kết với các khối định thời khác để tạo ra một mảng các định thời tinh vi hơn. Một bộ định thời cao cấp chuyên hỗ trợ điều khiển động cơ, với 6 đầu ra PWM với dead time (khoảng thời gian được chèn vào giữa hai đầu tín hiệu xuất PWM bù nhau trong điều khiển mạch cầu H) lập trình được và một đường break input (khi phát hiện điều kiện dừng khẩn cấp) sẽ buộc tín hiệu PWM sang một trạng thái an toàn đã được cài sẵn. Ngoại vi nối tiếp SPI có một khối kiểm tổng (CRC) bằng phần cứng cho 8 và 16 word hỗ trợ tích cực cho giao tiếp thẻ nhớ SD hoặc MMC. STM32 có hỗ trợ thêm tối đa 12 kênh DMA (Direct Memory Access). Mỗi kênh có thể được dùng để truyền dữ liệu đến các thanh ghi ngoại vi hoặc từ các thanh ghi ngoại vi đi với kích thước từ (word) dữ liệu truyền đi có thể là 8/16 hoặc 32-bit. Mỗi ngoại vi có thể có một bộ điều khiển DMA (DMA controller) đi kèm dùng để gửi hoặc đòi hỏi dữ liệu như yêu cầu. Một bộ phân xử bus nội (bus arbiter) và ma trận bus (bus matrix) tối thiểu hoá sự tranh chấp bus giữa truy cập dữ liệu thông qua CPU (CPU data access) và các kênh DMA. Điều đó cho phép các đơn vị DMA hoạt động linh hoạt, dễ dùng và tự động điều khiển các luồng dữ liệu bên trong vi điều khiển. STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu suất cao. Nó có thể hoạt động ở điện áp 2V, chạy ở tần số 72MHz và dòng tiêu thụ chỉ có 36mA với tất cả các khối bên trong vi điều khiển đều được hoạt động. Kết hợp với các chế độ tiết kiệm năng lượng của Cortex, STM32 chỉ tiêu thụ 2μA khi ở chế độ Standby. Một bộ dao động nội RC 8MHz cho phép chip nhanh chóng thoát khỏi chế độ tiết kiệm năng lượng trong khi bộ dao động ngoài đang khởi động. Khả năng nhanh đi vào và thoát khỏi các chế độ tiết kiệm năng lượng làm giảm nhiều sự tiêu thụ năng lượng tổng thể. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 2.b Sự an toàn Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi trường khắc khe, đòi hỏi tính an toàn cao, cũng như đòi hỏi sức mạnh xử lý và càng nhiều thiết bị ngoại vi tinh vi. Để đáp ứng các yêu cầu khắc khe đó, STM32 cung cấp một số tính năng phần cứng hỗ trợ các ứng dụng một cách tốt nhất. Chúng bao gồm một bộ phát hiện điện áp thấp, một hệ thống bảo vệ xung Clock và hai bộ Watchdogs. Bộ đầu tiên là một Watchdog cửa sổ (windowed watchdog). Watchdog này phải được làm mới trong một khung thời gian xác định. Nếu nhấn nó quá sớm, hoặc quá muộn, thì Watchdog sẽ kích hoạt. Bộ thứ hai là một Watchdog độc lập (independent watchdog), có bộ dao động bên ngoài tách biệt với xung nhịp hệ thống chính. Hệ thống bảo vệ xung nhịp có thể phát hiện lỗi của bộ dao động chính bên ngoài (thường là thạch anh) và tự động chuyển sang dùng bộ dao động nội RC 8MHz. 2.c Tính bảo mật Một trong những yêu cầu khắc khe khác của thiết kế hiện đại là nhu cầu bảo mật mã chương trình để ngăn chặn sao chép trái phép phần mềm. Bộ nhớ Flash của STM32 có thể được khóa để chống truy cập đọc Flash thông qua cổng Debug. Khi tính năng bảo vệ đọc được kích hoạt, bộ nhớ Flash cũng được bảo vệ chống ghi để ngăn chặn mã không tin cậy được chèn vào bảng vector ngắt. Hơn nữa bảo vệ ghi có thể được cho phép trong phần còn lại của bộ nhớ Flash. STM32 cũng có một đồng hồ thời gian thực và một khu vực nhỏ dữ liệu trên SRAM được nuôi nhờ nguồn pin. Khu vực này có một đầu vào chống giả mạo (anti-tamper input), có thể kích hoạt một sự kiện ngắt khi có sự thay đổi trạng thái ở đầu vào này. Ngoài ra một sự kiện chống giả mạo sẽ tự động xóa dữ liệu được lưu trữ trên SRAM được nuôi bằng nguồn pin. 2.d Phát triển phần mềm Nếu bạn đã sử dụng một vi điều khiển dựa trên lõi ARM, thì các công cụ phát triển cho ARM hiện có đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex. Ngoài ra STM 32 cũng cung cấp một thư viện điều khiển thiết bị ngoại vi, một bộ thư viện phát triển USB như là một thư viện ANSI C và mã nguồn đó là tương thích với các thư viện trước đó được công bố cho vi điều khiển STR7 và STR9. Có rất nhiều RTOS mã nguồn mở và thương mại và middleware (TCP/IP, hệ thống tập tin, v.v.) hỗ trợ cho họ Cortex. Dòng Cortex-M3 cũng đi kèm với một hệ thống gỡ lỗi hoàn toàn mới gọi là CoreSight. Truy cập vào hệ thống CoreSight thông qua cổng truy cập Debug (Debug Access Port), cổng này hỗ trợ kết nối chuẩn JTAG hoặc giao diện 2 dây (serial wire-2 Pin), cũng như cung cấp trình điều khiển chạy gỡ lỗi, hệ thống CoreSight trên STM32 cung cấp hệ thống điểm truy cập (data watchpoint) và một công cụ theo dõi (instrumentation trace). Công cụ này có thể gửi thông tin về ứng dụng được lựa chọn đến công cụ gỡ lỗi. Điều này có thể cung cấp thêm các thông tin gỡ lỗi và cũng có thể được sử dụng trong quá trình thử nghiệm phần mềm. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 2.e Dòng Performance và Access của STM32 Họ STM32 có hai nhánh đầu tiên riêng biệt: dòng Performance và dòng Access. Dòng Performance tập hợp đầy đủ các thiết bị ngoại vi và chạy với xung nhịp tối đa 72MHz. Dòng Access có các thiết bị ngoại vi ít hơn và chạy tối đa 36MHz. Quan trọng hơn là cách bố trí chân (pins layout) và các kiểu đóng gói chip (package type) là như nhau giữa dòng Access và dòng Performance. Điều này cho phép các phiên bản khác nhau của STM32 được hoán vị mà không cần phải sửa đổi sắp sếp lại footprint (mô hình chân của chip trong công cụ layout bo mạch) trên PCB (Printed Circuit Board). Ngoài hai dòng Performance và Access đầu tiên, hiện nay ST đã đưa ra thị trường thêm hai dòng USB Access và Connectivity. 3. Kiến trúc và tính năng xử lý của lõi Cortex M3 Dòng vi xử lý ARM Cortex dựa trên một kiến trúc chuẩn đủ để đáp ứng hầu hết các yêu cầu về hiệu năng làm việc trong tất cả các lĩnh vực trên. Dòng ARM Cortex bao gồm ba cấu hình khác nhau của kiến trúc ARMv7: cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy trên các hệ điều hành mở và phức tạp như Linux, Android…, cấu hình R dành cho các hệ thống thời gian thực và cấu hình M được tối ưu cho các ứng dụng vi điều khiển, cần tiết kiệm chi phí. Bộ vi xử lý Cortex-M3 là bộ vi xử lý ARM đầu tiên dựa trên kiến trúc ARMv7- M và được thiết kế đặc biệt để đạt được hiệu suất cao trong các ứng dụng nhúng cần tiết kiệm năng lượng và chi phí, chẳng hạn như các vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và hệ thống mạng không dây. Thêm vào đó là việc lập trình được đơn giản hóa đáng kể giúp kiến trúc ARM trở thành một lựa chọn tốt cho ngay cả những ứng dụng đơn giản nhất. 3.a Lõi Cortex-M3 Lõi trung tâm Cortex-M3 dựa trên kiến trúc Harvard, được đặc trưng bằng sự tách biệt giữa vùng nhớ chứa dữ liệu và chương trình do đó có các bus riêng để truy cập. Đặc tính này khác với dòng ARM7 dựa trên kiến trúc Von Neumann sử dụng chung vùng nhớ để chứa dữ liệu và chương trình, do đó dùng chung bus cho việc truy xuất. Vì có thể đọc cùng lúc lệnh và dữ liệu từ bộ nhớ, bộ vi xử lý Cortex-M3 có thể thực hiện nhiều hoạt động song song, tăng tốc thực thi ứng dụng. Bộ vi xử lý Cortex-M3 là một bộ vi xử lý 32-bit, với độ rộng của đường dẫn dữ liệu 32 bit, các dải thanh ghi và giao tiếp bộ nhớ. Có 13 thanh ghi đa dụng, hai con trỏ ngăn xếp, một thanh ghi liên kết, một bộ đếm chương trình và một số thanh ghi đặc biệt trong đó có một thanh ghi trạng thái chương trình. Bộ vi xử lý Cortex-M3 hỗ trợ hai chế độ hoạt động (Thread và Handler) và hai mức truy cập tài nguyên của lõi xử lí (đặc quyền và không đặc quyền), tạo điều kiện cho việc cài đặt các hệ thống mở và phức tạp nhưng vẫn bảo mật. Những dòng mã không đặc quyền bị giới hạn hoặc không cho phép truy cập vào một số tài nguyên quan trọng (một số lệnh đặc biệt và các vùng nhớ nhất định). Chế độ Thread là chế độ hoạt động tiêu biểu hỗ trợ cả mã đặc quyền và không đặc quyền. Bộ vi xử lý sẽ vào chế độ Handler khi một ngoại lệ (exception) xảy ra và tất cả các mã là đặc quyền trong chế độ này. Ngoài ra, tất cả các hoạt động trong bộ vi xử lý đều thuộc một trong hai trạng thái hoạt động: Thumb cho chế độ thực thi bình thường và Debug cho việc gỡ lỗi. Bộ vi xử lý Cortex-M3 là một hệ thống ánh xạ bộ nhớ đơn giản, quản lí vùng nhớ cố định lên tới 4 gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong và bên ngoài. Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp. Bộ vi xử lý Cortex-M3 cho phép truy cập trực tiếp đến từng bit dữ liệu trong các hệ thống đơn giản bằng cách thực thi một kỹ thuật được gọi là bit-banding. Bộ nhớ bao gồm hai vùng bit-band (mỗi vùng 1MB) trong SRAM và vùng bí danh 32MB của vùng không gian ngoại vi (Mỗi byte trong vùng bí danh sẽ tương ứng với một bit trong vùng bitband). Mỗi hoạt động nạp/lưu tại một địa chỉ trong khu vực bí danh (alias region) sẽ trực tiếp tương ứng với hoạt động trên bit được đại diện bởi bí danh đó. Cụ thể, khi ghi giá trị 0x01 vào một địa chỉ trên vùng bí danh thì có nghĩa là xác định bit tương ứng sẽ có giá trị là 1, tương tự giá trị 0x00 sẽ xác định bit tương ứng có giá trị 0. Còn đọc giá trị tại một địa chỉ vùng bí danh có nghĩa là đọc được giá trị của bit tương ứng. Một vấn đề cần chú ý nữa là hoạt động này mang tính nguyên tử (không chia nhỏ được nữa), không thể bị gián đoạn bởi các hoạt động khác trên bus. Các hệ thống cũ dựa trên ARM7 chỉ hỗ trợ truy xuất dữ liệu thẳng hàng, chỉ cho phép lưu trữ và truy xuất dữ liệu của một khối bộ nhớ mà mỗi phần tử có đơn vị là một word. Bộ vi xử lý Cortex-M3 hỗ trợ truy xuất dữ liệu không thẳng hàng, cho phép chuyển dữ liệu không thẳng hàng trong một truy xuất đơn. Thực tế, việc chuyển dữ liệu không thẳng hàng được biến thành việc chuyển nhiều lần dữ liệu thẳng hàng và có tính trong suốt đối với lập trình viên (nghĩa là lập trình viên hoàn toàn không cần quan tâm đến điều này). Ngoài ra bộ vi xử lý Cortex-M3 cũng hỗ trợ phép nhân 32-bit hoạt động trong một chu trình đơn và các phép chia có dấu, không dấu với các lệnh SDIV và UDIV, mất từ 2 đến 12 chu kỳ phụ thuộc vào kích thước của toán hạng. Phép chia được thực thi nhanh hơn nếu số chia và số bị chia có kích thước tương tự nhau. Những cải tiến trong khả năng toán học giúp Cortex-M3 trở thành bộ vi xử lý lý tưởng cho các ứng dụng thiên về tính toán như đọc cảm biến hoặc các hệ thống mô phỏng 3.b Kiến trúc tập lệnh Thumb-2 Tập lệnh Thumb-2 là sự pha trộn giữa tập lệnh 16 và 32 bit, đạt được hiệu suất của các lệnh ARM 32 bit, đồng thời phù hợp với mật độ mã cũng như tương thích ngược với tập lệnh gốc Thumb 16 bit. Quan hệ giữa tập lệnh Thumb-2 và tập lệnh Thumb: Trong một hệ thống dựa trên bộ vi xử lý ARM7, việc chuyển đổi nhân xử lý giữa chế độ Thumb (có lợi về mật độ mã) và ARM (có lợi về mặt hiệu suất) là cần thiết cho một số ứng dụng. Còn bộ vi xử lý Cortex-M3 có các lệnh 16 bit và 32 bit tồn tại trong cùng một chế độ, cho phép mật độ mã cũng như hiệu suất đều cao hơn mà không cần phải chuyển đổi phức tạp. Vì tập lệnh Thumb-2 là tập bao hàm của tập lệnh Thumb 16 bit nên bộ vi xử lý Cortex-M3 có thể thực thi các đoạn mã trước đây viết cho Thumb 16 bit. Do được cài đặt tập lệnh Thumb-2 nên bộ vi xử lý Cortex-M3 có khả năng tương thích với các thành viên khác của dòng ARM Cortex. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Hình 3.2: Mối tương quan giữa hiệu suất và kích thước code của ARM , thumb và thumb-2. Tập lệnh Thumb-2 có các lệnh đặc biệt giúp lập trình viên dễ dàng viết mã cho nhiều ứng dụng khác nhau. Các lệnh BFI và BFC là các lệnh thao tác trên bit, rất có ích trong các ứng dụng xử lý gói tin mạng. Các lệnh SBFX và UBFX giúp việc chèn vào hoặc trích xuất một số bit trong thanh ghi được nhanh chóng. Lệnh RBIT đảo bit trong một WORD, có ích trong các thuật toán DSP như DFT. Các lệnh bảng rẽ nhánh TBB và TBH tạo sự cân bằng giữa mật độ mã và hiệu suất. Tập lệnh Thumb-2 cũng giới thiệu cấu trúc If-Then mới có thể xác định điều kiện thực hiện tối đa bốn lệnh tiếp theo. Các tính năng chính mới trong tập lệnh Thumb-2 bao gồm việc thực hiện mã lệnh C một cách tự nhiên hơn, thao tác trực tiếp trên các bit, phép chia phần cứng và lệnh If/Then. Hơn nữa, nhìn từ góc độ phát triển ứng dụng, Thumb-2 tăng tốc độ phát triển, đơn giản hóa việc bảo trì, hỗ trợ các đối tượng biên dịch thông qua tối ưu hóa tự động cho cả hiệu suất và mật độ mã mà không cần quan tâm đến việc mã được biên dịch cho chế độ ARM hoặc Thumb. Kết quả là lập trình viên có thể để mã nguồn của họ trong ngôn ngữ C mà không cần tạo ra các thư viện đối tượng biên dịch sẵn, có nghĩa là khả năng tái sử dụng mã nguồn lớn hơn nhiều. 3.c Cách tổ chức và thực thi tập lệnh Cách tổ chức của nhân ARM là dòng chảy lệnh 3 tác vụ: - Fetch (nhận lệnh). - Decode (giải mã). - Excute (thực thi). Khi gặp một lệnh nhánh, tầng decode chứa một chỉ thị nạp lệnh suy đoán có thể dẫn đến việc thực thi nhanh hơn. Bộ xử lý nạp lệnh dự định rẽ nhánh trong giai đoạn giải mã. Sau đó, trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tích xem đâu là lệnh thực thi kế tiếp. Nếu việc rẽ nhánh không được chọn thì lệnh tiếp theo đã sẵn sàng. Còn nếu việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian rỗi chỉ còn một chu kỳ. 3.d Bộ nhớ Bộ vi xử lý Cortex-M3 quản lí vùng nhớ cố định lên tới 4 gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong và bên ngoài. Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Hình 3.3 Sơ đồ bộ nhớ Code có thể lưu ở vùng mã lệnh,SRAM hoặc RAM ngoài, tuy nhiên khi lưu ở vùng mã lệnh, việc gọi lệnh và truy cập dữ liệu được xử lý đồng thời trên các bus. Sơ đồ bộ nhớ: - Truy cập vùng SRAM thực hiện thông qua các bus. Trong vùng này, có hai thành phần: vùng bit-band 1MB và vùng bí danh (Bit-band Alias) 32 MB. - Vùng nhớ thiêt bị ngoại vi 0.5GB tương tự như vùng SRAM với hai thành phần cơ bản. Tuy nhiên, các lệnh không được thực thi ở vùng này, kĩ thuật bit-band được sử dụng để thay đổi các trạng thái bit, dễ dàng điều khiển ngoại vi. -Vùng bộ nhớ và thiết bị bên ngoài: mỗi vùng 1GB, sự khác biệt hai vùng này là lệnh không được thực hiện ở vùng thiết bị bên ngoài, ngoài ra có một số khác biệt về cách lưu trữ giữa hai vùng. 4. Giới thiệu về vi điều khiển STM32F103C8T6 STM32F103C8T6 là một vi điều khiển 32 bit dòng ARM Cortex-M3 của hãng STMicroelectronic. Đây là một vi điều khiển có khả năng ứng dụng cao trong nhiều ứng dụng thời gian thực. STM 32 được chia làm 2 nhóm: • Performance với tần số hoạt động lên tới 72 MHz • Access với tần số hoạt động 36 MHz Một vài đặc điểm nổi bật của STM32: • Năng lượng tiêu thụ thấp (2V, 36mA) cho các khối bên trong vi điều khiển Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Hiệu suất hoạt động cao An toàn và đáp ứng xử lý ngoại vi với tốc độ cao Thiết kế cho phép sử dụng hệ điều hành thời gian thực (RTOS) Giá thành rẻ và đáp ứng nhiều chức năng so với vi điều khiển 8 bit • • • • Hình 3.4: Sơ đồ kit ARM STM32F103C8T6 STM32F103C8T6 có đặc điểm kĩ thuật như sau: • • • • • • • Nhân xử lý ARM 32 bit Cortex-M3 Tốc độ xử lý lên tới 72 MHz (Thuộc dòng Performance) 64 Kbytes bộ nhớ Flash 20 Kbytes SRAM Điện áp hoạt động 2V – 3.6V Tích hợp dao động thạch anh nội (RC) tần số 8 MHz Có các chế độ Sleep, Stand By, Stop Kết nối ngoại vi bao gồm: • 2 bộ 16 kênh A/D 12 bits • Bộ DAC gồm 2 kênh D/A 12 bits • 7 kênh DMA (Direct Memory Access) hỗ trợ giao tiếp SPI, I2C, USART, timers, ADC. • JTAG (nạp code, debug và gỡ lỗi chương trình) • GPIO gồm 35 chân I/O giao tiếp với bên ngoài • 4 bộ timer 4 kênh (TIM1, TIM2, TIM3, TIM4) • Tích hợp bộ kiểm tra lỗi CRC • Các ngoại vi khác: USB, SDIO, CAN. 5. Cách thức lập trình cho STM32F103C8T6 Có rất nhiều phần mềm, ngôn ngữ lập trình để có thể lập trình cho vi điều khiển nói chung và STM32 nói riêng. Các phần mềm có thể kể tới như MicroC, Keil C, Processing 2, CodeVision, ... Các ngôn ngữ lập trình cho vi điều khiển cũng rất phong phú như C, Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG C++, java, Python, ... Nhưng được sử dụng rộng rãi nhất vẫn là phần mềm lập trình Keil C với ngôn ngữ lập trình truyền thống là C. Đồng thời, cũng có bộ thư viện mở cho dòng STM32F1xx có thể tải miễn phí trên các mạng rất tiện lợi cho người mới học lập trình dòng STM32. Cách thức nạp chương trình có STM32 cũng có nhiều cách. Có thể nạp thông qua chuẩn JTAG với mạch nạp chuyên dụng hoặc nạp qua bootloader thông qua UART với mạch nạp sử dụng FT232. Trong quá trình thực hiện đồ án thì việc kiểm tra, quan sát các giá trị của tham số, cảm biến là rất quan trọng có một chương trình hỗ trợ việc này qua UART truyền từ vi điều khiển kết nối với máy tính thông qua cổng COM cho hiển thì trên màn hình giao diện của chương trình. Đó là chương trình Hercules. Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG CHƯƠNG III: THIẾT KẾ HỆ THỐNG CẢNH BÁO NHIỆT ĐỘ TỪ XA BẰNG SÓNG RF 1. Sơ đồ khối Khối phát Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Khối Thu Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 2. Lưu đồ thuật toán Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng [...]... lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn –... có STM32 cũng có nhiều cách Có thể nạp thông qua chuẩn JTAG với mạch nạp chuyên dụng hoặc nạp qua bootloader thông qua UART với mạch nạp sử dụng FT232 Trong quá trình thực hiện đồ án thì việc kiểm tra, quan sát các giá trị của tham số, cảm biến là rất quan trọng có một chương trình hỗ trợ việc này qua UART truyền từ vi điều khiển kết nối với máy tính thông qua cổng COM cho hiển thì trên màn hình giao... cảm biến nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay đổi và hỗ trợ nhiều chế độ chuyển đổi Mỗi bộ định thời có 4 khối capture compare (dùng để bắt sự kiện với tính năng input capture và tạo dạng sóng ở ngõ ra với output compare), mỗi khối định thời có thể liên kết với các khối định thời khác để tạo ra một mảng các định thời tinh vi hơn Một bộ định thời cao cấp chuyên hỗ trợ điều khiển động cơ,... byte 3) vào bộ nhớ EEPROM Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo - CONVERT T (44h) Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân) Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì... hoạt động linh hoạt, dễ dùng và tự động điều khiển các luồng dữ liệu bên trong vi điều khiển STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu suất cao Nó có thể hoạt động ở điện áp 2V, chạy ở tần số 72MHz và dòng tiêu thụ chỉ có 36mA với tất cả các khối bên trong vi điều khiển đều được hoạt động Kết hợp với các chế độ tiết kiệm năng lượng của Cortex, STM32 chỉ tiêu thụ 2μA khi ở chế độ. .. Standby Một bộ dao động nội RC 8MHz cho phép chip nhanh chóng thoát khỏi chế độ tiết kiệm năng lượng trong khi bộ dao động ngoài đang khởi động Khả năng nhanh đi vào và thoát khỏi các chế độ tiết kiệm năng lượng làm giảm nhiều sự tiêu thụ năng lượng tổng thể Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG 2.b Sự an toàn Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi... Cortex-M3 hỗ trợ hai chế độ hoạt động (Thread và Handler) và hai mức truy cập tài nguyên của lõi xử lí (đặc quyền và không đặc quyền), tạo điều kiện cho việc cài đặt các hệ thống mở và phức tạp nhưng vẫn bảo mật Những dòng mã không đặc quyền bị giới hạn hoặc không cho phép truy cập vào một số tài nguyên quan trọng (một số lệnh đặc biệt và các vùng nhớ nhất định) Chế độ Thread là chế độ hoạt động tiêu biểu hỗ... với mật độ mã cũng như tương thích ngược với tập lệnh gốc Thumb 16 bit Quan hệ giữa tập lệnh Thumb-2 và tập lệnh Thumb: Trong một hệ thống dựa trên bộ vi xử lý ARM7, việc chuyển đổi nhân xử lý giữa chế độ Thumb (có lợi về mật độ mã) và ARM (có lợi về mặt hiệu suất) là cần thiết cho một số ứng dụng Còn bộ vi xử lý Cortex-M3 có các lệnh 16 bit và 32 bit tồn tại trong cùng một chế độ, cho phép mật độ mã... để lấy mẫu nhiệt độ) Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG d Đọc nhiệt độ Khi bắt đầu chuyển đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao.Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổi xong nhiệt độ Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào chân DQ treo lên nguồn như sơ đồ mắc Nhóm 13... COM cho hiển thì trên màn hình giao diện của chương trình Đó là chương trình Hercules Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG CHƯƠNG III: THIẾT KẾ HỆ THỐNG CẢNH BÁO NHIỆT ĐỘ TỪ XA BẰNG SÓNG RF 1 Sơ đồ khối Khối phát Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG Khối Thu Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG ... ứng lệnh xuất điều kiện cảnh báo phép đo nhiệt độ cuối Điều kiện cảnh báo định nghĩa giá trị nhiệt độ đo lớn giá trị TH nhỏ giá trị TL hai giá trị nhiệt độ cao nhiệt độ thấp đặt ghi nhớ cảm biến... hợp không config tự động chế độ 12 bit +Thời gian chuyển đổi nhiệt độ tối đa 750ms cho mã hóa 12 bit +Có thể đo nhiệt độ khoảng -55 -> +125°C Với khoảng nhiệt độ -10°C to +85°C độ xác ±0.5°C,±0.25°C... ,±0.125°C,±0.0625°C theo số bít config + Có chức cảnh báo nhiệt nhiệt độ vượt ngưỡng cho phép Người dùng lập trình chức cho DS18B20 Bộ nhớ nhiệt độ cảnh báo không bị mất nguồn có mã định danh 64 bit

Ngày đăng: 12/10/2015, 10:34

Từ khóa liên quan

Mục lục

  • CHƯƠNG II: CƠ SỞ LÍ THUYẾT

  • A. về RF nRF24L01

    • 1 Giới thiệu về sóng RF.

      • 1.1 Module RF nRF24L01

      • 1.2 Chế độ hoạt động

      • 1.3 Sơ đồ chân của chip nRF24L01

      • 1.4 Cách thức sử dụng của nRF24L01

      • 1.5 Một số ứng dụng của nRF24L01

    • C. Về Module điều khiển chính

      • 1. Lịch sử hình thành và phát triển

      • 2. Giới thiệu về dòng vi điều khiển stm32

        • 2.a Các ngoại vi của STM32

        • 2.b Sự an toàn

        • 2.c Tính bảo mật

        • 2.d Phát triển phần mềm

        • 2.e Dòng Performance và Access của STM32

      • 3. Kiến trúc và tính năng xử lý của lõi Cortex M3

        • 3.a Lõi Cortex-M3

        • 3.b Kiến trúc tập lệnh Thumb-2

        • 3.c Cách tổ chức và thực thi tập lệnh

        • 3.d Bộ nhớ

      • 4. Giới thiệu về vi điều khiển STM32F103C8T6

      • 5. Cách thức lập trình cho STM32F103C8T6

  • CHƯƠNG III: THIẾT KẾ HỆ THỐNG CẢNH BÁO NHIỆT ĐỘ TỪ XA BẰNG SÓNG RF

Tài liệu cùng người dùng

Tài liệu liên quan