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

30 476 0
  • Loading ...
1/30 trang

Thông tin tài liệu

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

Đồ án THIẾT KẾ HỆ THỐNG NHÚNGBộ Thông Tin Và Truyền ThôngHọc Viện Công Nghệ Bưu Chính Viễn Thông…………………………………….ĐỒ ÁNTHIẾ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 MinhNhóm thực hiện : 13Sinh viên :Lê Ngọc SơnLê Ngọc TuấnHoàng Quốc HưngNguyễn Duy MạnhLớp :D11XLTHHệ :Đại học chính quyNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGLỜI CẢM ƠNĐược sự đồng ý của Thầy giáo hướng dẫn TS. Nguyễn NgọcMinh , chúng em đã thực hiện đề án “ Cảnh Báo Nhiệt Độ Từ Xa quaRF “ .Để hoàn thành bài báo cáo này , chúng em xin chân thành cảm ơnthầ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ễnThông .Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoànchỉnh nhất . Song do buổi đầu mới làm quen với công tác nghiên cứukhoa 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ÚNGChương I :Đặt Vấn Đề1. Lời mở đầuNgà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ộthiệ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ữngthiết bị với sự chính xác cao, tốc độ nhanh, gọn nhẹ đã đóng vai trò vô cùng quan trọngtrong 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ùngquan 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ôngngừ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ầutrong 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ểntừ 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ảnxuấ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áonhiệ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ạchphù 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ÚNG3. 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ÚNGCHƯƠNG II: CƠ SỞ LÍ THUYẾTA. về RF nRF24L011 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ênphá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 xoaychiề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 đổivà 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ầntruyề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ềuchế để 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 đangtruyền.1.1 Module RF nRF24L01NRF24L01 được thiết kế để cài đặt và hoạt động dựa trên giao tiếp SPI (SerialPeripheral 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 MbpsBộ 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 dBmBộ nhận tín hiệu:•••Bộ lọc kênh tích hợpDòng ra 12.4 mA ở tốc độ 2 MbpsĐộ nhạy -85 dBm ở tốc độ 2 MbpsGiao tiếp:•••4 pins SPI cứng (hardware SPI)Tần số hoạt động tối đa 8 MHz3 bộ đệm dữ liệu RF 32 bytes FIFOsNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGHình 1.1 Sơ đồ kết nối vi điều khiểnQuả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 độngNRF24L01 có 4 chế độ hoạt động:-Power Down Mode: Ở chế độ này NRF24L01 không hoạt động để giảm tối đa dòngtiêu thụ hệ thống. Để cấu hình chế độ này cần thiết lập bit PWR_UP = 0 trong thanh ghiCONFIG.-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 uploadgói dữ liệu tx packet lên bộ đệm FIFO (TX-FIFO) để truyền dữ liệu đi. TxFIFO 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ìmgó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ứagó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ÚNGHình 1.2 Module NRF24L011.3 Sơ đồ chân của chip nRF24L01Hình 1.3 Sơ đồ chân nRF24L01Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGBảng 1.1: Chú giải sơ đồ chân nRF24L01PTênChânLoại tínhiệuChú giải1CEDigitalinputChân Enable kích hoạt chế độ RX hoặc TX2CSNDigitalinputChọn chip SPI3SCKDigitalinputSPI Clock4MOSIDigitalinputSPI chủ gửi , tớ nhận dữ liệu5MISODigitalinputSPI chủ nhận , tớ gửi dữ liệu6IRQDigitalinputNgắt cứng . kích hoạt thấp7VDDPower8VSSPower9XC2AnalogOutputThạch anh1XC1AnalogInputThạch anh1VDD_PAPowerOutput1ANT1RFKết nối anten11ANT2RFKết nối anten21VSSPowerChân đất (0v)1VDDPowerin01Nguồn cung cấp từ +1,9v đên +3,6v , mộtchiềuChân đất( 0v)Nguồn ra 1,8 cung cấp cho các khối nội bộtrong nrf2345Nguồn cung cấp từ +1.9v đến +3.6v, mộtchiềuNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG1IREFAnlogInput1VSSPower1VDDPower1DVDDPowerOutput2VSSPower6Chân tham chiếu. Nối với một điện trở22KΩ xuống đất.Chân đất (0v)789Nguồn cung cấp từ +1.9v đên +3.6v, mộtchiều.Nguồn số nội bộChân đất (0v)01.4 Cách thức sử dụng của nRF24L01Cá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ăngtruyề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ệutrê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ãivớ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ắnNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGB. Về ds18b20I.Tổng quanDS18B20 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. Trongtrườ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°Cthì độ 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ấtnguồn vì nó có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (onchip), 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ớicácICnà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ÚNGII: Lấy nhiệt độ với ds18b20a. 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ênlinh 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ênbus 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ếtbị 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 buschọ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ùngnố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 DS1820có 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ảmbiế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ủaDS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thờigian 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 chutrì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ÚNGSau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địachỉ 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ệnhchứ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àothanh 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 ghitrướ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ồnnhư 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ÚNGNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGb. Cách config độ phân giải cho ds18b20Sơ đồ bộ nhớ của ds18b20Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGCác byte thứ 5 của bộ nhớ đệm có chức năng đăng ký cấu hình (config) chods18b20, 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ậpnhư sau.Nhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGc. 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ÚNGd. Đọ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à khichuyể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 khinà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àochâ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ÚNGC. Về Module điều khiển chínhTrong 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ềukhiể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ờiKIT 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ểnARM (Advanced RISC Machine) là một họ vi xử lý 32-bit được sử dụng rộng rãi trongcá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ụctiêu hàng đầu cho việc thiết kế CPU (Central Processing Unit) nên ARM chiếm ưu thế trongcá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ộ địnhtuyế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áytính Acorn. Nhóm thiết kế đứng đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triển mộtbộ 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ủahãng Rockwell International có thể dùng được 64-Kb địa chỉ bộ nhớ) tiên tiến. Acorn đã từngsả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ộttrong 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ấpnhấ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ămcủa Motorola là 68000 với khoảng 68.000 transistor). Sự đơn giản như vậy có được nhờ ARMkhô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ếtcá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ôngsuấ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ấthiệ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ới4KB 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átNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGtriể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ànhmộ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 ranhiề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 saunà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ếtkiệ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ảiné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 chukỳ 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 đượcsử 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 stm32Nhữ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ơn240 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 xuhướ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 ARMthiế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ạithà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à AccessNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưngSTM32 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ácnhau, được phân thành hai dòng: dòng Performance có tần số hoạt động của CPU lên tới72Mhz và dòng Access có tần số hoạt động lên tới 36Mhz. Các biến thể STM32 trong hainhó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íchthướ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ạivi, 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ớinhánh Performance.2.a Các ngoại vi của STM32Thoạ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 vitrê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ếnnhiệ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 inputcapture 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ếtvớ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ộ địnhthờ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ảngthờ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ạchcầ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 SPIcó 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 giaotiế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ốithiể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áckhố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ănglượng của Cortex, STM32 chỉ tiêu thụ 2μA khi ở chế độ Standby. Một bộ dao động nộiRC 8MHz cho phép chip nhanh chóng thoát khỏi chế độ tiết kiệm năng lượng trong khibộ dao động ngoài đang khởi động. Khả năng nhanh đi vào và thoát khỏi các chế độ tiếtkiệ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ÚNG2.b Sự an toànNgà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 vitinh vi. Để đáp ứng các yêu cầu khắc khe đó, STM32 cung cấp một số tính năng phầncứ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 ápthấp, một hệ thống bảo vệ xung Clock và hai bộ Watchdogs. Bộ đầu tiên là mộtWatchdog cửa sổ (windowed watchdog). Watchdog này phải được làm mới trong mộtkhung thời gian xác định. Nếu nhấn nó quá sớm, hoặc quá muộn, thì Watchdog sẽ kíchhoạt. Bộ thứ hai là một Watchdog độc lập (independent watchdog), có bộ dao động bênngoà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ệnlỗ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ùngbộ dao động nội RC 8MHz.2.c Tính bảo mậtMộ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 tincậ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 trongphầ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 khuvự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àochống giả mạo (anti-tamper input), có thể kích hoạt một sự kiện ngắt khi có sự thay đổitrạ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ềmNế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ểncho ARM hiện có đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex. Ngoài ra STM 32cũ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 USBnhư 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òngCortex-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. Truycập vào hệ thống CoreSight thông qua cổng truy cập Debug (Debug Access Port), cổngnà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ư cungcấ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ểmtruy cập (data watchpoint) và một công cụ theo dõi (instrumentation trace). Công cụ nàycó 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ể cungcấ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ệmphầ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ÚNG2.e Dòng Performance và Access của STM32Họ 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 đa72MHz. Dòng Access có các thiết bị ngoại vi ít hơn và chạy tối đa 36MHz. Quan trọnghơ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ácnhau 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ìnhchâ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ườngthê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 M3Dò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êucầ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ấuhì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ạytrê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ốngthờ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ănglượ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ôngnghiệ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-M3Lõi trung tâm Cortex-M3 dựa trên kiến trúc Harvard, được đặc trưng bằng sự táchbiệ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. Đặctí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ể đọccù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ệu32 bit, các dải thanh ghi và giao tiếp bộ nhớ. Có 13 thanh ghi đa dụng, hai con trỏ ngănxế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 truycậ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áchệ 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ặckhô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 đặcquyề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 tronghai 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ố địnhlê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), SRAMNhó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ồmhai vùng bit-band (mỗi vùng 1MB) trong SRAM và vùng bí danh 32MB của vùng khônggian 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ựctiế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ỉ chophé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ộtword. Bộ vi xử lý Cortex-M3 hỗ trợ truy xuất dữ liệu không thẳng hàng, cho phép chuyểndữ 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ôngthẳ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 trongsuố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ềunà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ộtchu 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 nhanhhơ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ăngtoá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ínhtoán như đọc cảm biến hoặc các hệ thống mô phỏng3.b Kiến trúc tập lệnh Thumb-2Tậ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áclệ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ốcThumb 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épmậ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ệnhThumb-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 thicá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ÚNGHì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 ứngdụ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ụngxử 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 trongthanh ghi được nhanh chóng. Lệnh RBIT đảo bit trong một WORD, có ích trong các thuật toánDSP 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ệusuấ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ệntố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ộtcá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ậptrì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 đốitượ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ệnhCá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 đếnviệ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ếuviệ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 gianrỗ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ỉ địnhnghĩ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 chonhà 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ÚNGHì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ànhphầ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ệnhkhô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ưutrữ giữa hai vùng.4. Giới thiệu về vi điều khiển STM32F103C8T6STM32F103C8T6 là một vi điều khiển 32 bit dòng ARM Cortex-M3 của hãngSTMicroelectronic. Đây là một vi điều khiển có khả năng ứng dụng cao trong nhiều ứngdụ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 MHzMộ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ểnNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGHiệu suất hoạt động caoAn toàn và đáp ứng xử lý ngoại vi với tốc độ caoThiế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 STM32F103C8T6STM32F103C8T6 có đặc điểm kĩ thuật như sau:•••••••Nhân xử lý ARM 32 bit Cortex-M3Tốc độ xử lý lên tới 72 MHz (Thuộc dòng Performance)64 Kbytes bộ nhớ Flash20 Kbytes SRAMĐiện áp hoạt động 2V – 3.6VTích hợp dao động thạch anh nội (RC) tần số 8 MHzCó các chế độ Sleep, Stand By, StopKế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 STM32F103C8T6Có 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óichung và STM32 nói riêng. Các phần mềm có thể kể tới như MicroC, Keil C, Processing2, 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ÚNGC++, 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 KeilC 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òngSTM32F1xx 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ìnhdò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 quachuẩn JTAG với mạch nạp chuyên dụng hoặc nạp qua bootloader thông qua UART vớimạ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 giaodiệ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ÚNGCHƯƠNG III: THIẾT KẾ HỆ THỐNGCẢNH BÁO NHIỆT ĐỘ TỪ XA BẰNGSÓNG RF1. Sơ đồ khốiKhối phátNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNGKhối ThuNhóm 13 : Ngọc Sơn – Duy Mạnh – Tuấn – Hưng Đồ án THIẾT KẾ HỆ THỐNG NHÚNG2. Lưu đồ thuật toánNhó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
- Xem thêm -

Xem thêm: Cảnh báo nhiệt độ từ xa qua RF“, Cảnh báo nhiệt độ từ xa qua RF“, Cảnh báo nhiệt độ từ xa qua RF“, 1 Giới thiệu về sóng RF., 5 Một số ứng dụng của nRF24L01, Cách thức lập trình cho STM32F103C8T6

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn