Chương 1: Tổng quan: Trong chương này, nhóm thực hiện đề tài trình bày tổng quan về tình hình nghiên cứu về mạng LoRa hiện nay. Mục tiêu, đối tượng và phạm vi nghiên cứu của đề tài. - Chương 2: Cơ sở lý thuyết: Trong chương này, nhóm thực hiện đề tài sẽ giới thiệu về sơ lược về VXL ARM STMF103VET6, Modul VS1003, Module TFT ILI9325, chuẩn giao tiếp SPI, giao tiếp thẻ nhớ SD, cách kết nối các module loa, VS1003, TFT, mạch sạc…với VXL trung tâm. - Chương 3: Thiết kế và thi công: Trong chương này, nhóm thực hiện đề tài sẽ đưa ra các yêu cầu khi thiết kế, các thiết kế về phần cứng và phần mềm.
- Chương 4: Kết quả thi công: Trong chương này, nhóm thực hiện đề tài sẽ đưa ra kết quả mà nhóm đạt được, video, số liệu, hình ảnh hệ thống sau khi thi công. - Chương 5: Kết luận và hướng phát triển: Trong chương này, nhóm sẽ đưa ra kết luận, những hạn chế và hướng phát triển của đề tài. 3 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. GIỚI THIỆU VI ĐIỀU KHIỂN ARM STM32F103VET6 [1].1 Sơ lược về ARM STM32F103VET6.
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý 32 bit kiểu RISC (thuộc kiến trúc Hardvard, có tập lệnh rút gọn) được sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu. Ngày nay ARM được ứng dụng và rộng rãi trên mọi lĩnh vưc của đời sống: Robot, máy tính, điện thoại, xe hơi, máy giặt… Hình 2.1 Kiến trúc của ARM. 4 do an Dòng ARM STM32F1 được chia ra làm 5 nhóm nhỏ, mỗi nhóm sẽ có số dung lượng bộ nhớ Flash, SRAM, số lượng ngõ vào ra và số lượng ngoại vi khác nhau.
- Low-density: Gồm các vi điều khiển STM32F101xx, STM32F102xx và STM32F103xx có bộ nhớ Flash từ 16 đến 32 Kbytes. - Medium-density: Gồm các dòngvi điều khiển có tên STM32F101xx, STM32F102xx và STM32F103xx có bộ nhớ Flash từ 64 đến 128 Kbytes. - High-density: Gồm các vi điều khiển STM32F101xx và STM32F103xx có bộ nhớ Flash từ 256 đến 512 Kbytes. - XL-density: Gồm các vi điều khiển có tên bắt đầu từ STM32F101xx và STM32F103xx có bộ nhớ Flash từ 768 đến 1 Mbyte.
- Connectivity line: Gồm các vi điều khiển có tên từ STM32F105xx và STM32F107xx. Ở đây VXL ARM được sử dụng là ARM STM32F103VET6 được sử dụng thuộc dòng High-density.1 Thông số kỹ thuật ARM STM32F103VET6. 5 do an Hình 2.2 VXL ARM STM32F103VET6. So sánh với các dòng PIC và ADRUINO ta dễ dàng thấy được những ưu điểm như: Nhỏ gọn, giá thành hợp lý.
Tốc độ xử lý nhanh hơn nhiều lần so với PIC và ADRUINO. Hỗ trợ nhiều chuẩn giao tiếp. Hỗ trợ ngoại vi mạnh hơn.2 Sơ lược về sơ đồ chân của VXL ARM STM32F103VET6. STM32F103VET6 là họ vi điều khiển có 100 chân, mỗi chân có một chức năng khác nhau.
Trong đó có một số chân đa công dụng (đa hợp): mỗi chân có thể họat động như một đường xuất nhập (I/O) hoặc là một chân chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi và có thể thay đổi chức năng của từng chân thông qua thư viện. GPIO (General-purpose input/output): có ý nghĩa ngõ vào - ngõ ra sử dụng chung. - Đối với các dong STM32 thì mỗi PORT có 16 chân I/O. - Ngoài chức năng là I/O nếu muốn sử dụng các chân này làm ngõ vào hoặc ngõ ra của ngoại vi ta phải thiết lập chân này là chức năng thay thế (Alternate Function) hoặc Analog.
- Để tiện cho thiết kế phần cứng nhà sản xuất xây dựng chức năng remap cho phép người dùng có thể thay đổi vị trí I/O của ngoại vi trong một phạm vi nhất định. - Mỗi chân I/O bên trong chip đều được gắn điện trở nội kéo lên và kéo xuống. 6 do an Hình 2.3 Sơ đồ chân của ARM STM32F103VET6.4 Cấu trúc 1 I/O của ARM STM32F103VET6.3 Các chân cấp nguồn của ARM STM32F103VET6. ARM STM32F103VET6 được cấp nguồn và sử dụng với mức điện áp VCC từ 2~3,6Vdc và dòng điện 0,7 mA.
Các chân Vref+ và Vref- là các chân điện áp tham chiếu cho ADC của ARM. Vss và Vdd là điện áp 2.4 ADC của ARM STM32F103VET6. ADC của họ ARM STM32 F1 có độ phân giải là 12 bit và có tất cả 18 kênh tương tự,trong đó 16 kênh nhận tín hiệu bên ngoài và 2 kênh nhận tín hiệu bên trong để chuyển đổi. Mỗi kênh ADC có thể được cấu hình độc lập để chuyển đổi tín hiệu tương tự sang số theo nhiều chế độ khác nhau như là chuyển đổi đơn, liên tục, quét.
Đối với kết quả chuyển đổi ADC người dùng có thể cài đặt canh phải hoặc canh trái khi lưu vào thanh ghi dữ liệu ADC. Bộ giám sát tín hiệu tương tự (analog watchdog) cho phép phát hiện việc điện áp vượt khỏi ngưỡng cao hoặc thấp do người dùng cài đặt. Xung clock cấp cho ADC được tạo ra bởi PLCK2 và đi qua một bộ chia sao cho khi cấp cho ADC tần số xung này không vượt quá 14 Mhz. Thời gian chuyển đổi: STM32F103xx: 1 µs khi hoạt động ở 56 MHz (1.
Thông số điện áp tham chiếu. - Điện áp cấp cho ADC từ 2. - Điện áp tương tự vào ADC: VREF- ≤ VIN ≤ VREF+. 8 do an Hình 2.5 Sơ đồ khối ADC của ARM STM32F103VET6.5 Giới thiệu chuẩn truyền của ARM STM32F103VET6.
VXL ARM STM32F103VET6 được trang bị những chuẩn truyền phổ biến và thông dụng như: I2C, UART, SPI, CAN… để có thể giao tiếp và kết nối với nhiều ngoại vi. Vì vậy lựa chọn linh kiện và kết nối với VXL ARM dễ dàng hơn. Khi thực hiện đồ án tốt nghiệp này nhóm đã quyết định sử dụng chuẩn truyền SPI. ARM STM32F103VET6 có 3 địa chỉ kết nối SPI tại các pin: - SPI1: Pin PA5, PA6, PA7.
- SPI2: Pin PB13, PB14, PB15. - SPI3: Pin PB3, PB4, PB5.6 SPI của ARM STM32F103VET6.1 Sơ lược về chuẩn truyền SPI. [11] SPI (tiếng Anh: Serial Peripheral Interface, SPI bus - Giao diện Ngoại vi Nối tiếp, bus SPI) là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song công toàn phần full-duplex (hai chiều, hai phía), do công ty Motorola thiết kế nhằm đảm bảo sư liên hợp giữa các vi điều khiển và thiết bị ngoại vi một cách đơn giản và giá rẻ. Đôi khi SPI còn được gọi là giao tiếp bốn dây (tiếng Anh: four-wire).
Khác với cổng nối tiếp chuẩn (tiếng Anh: standard serial port), SPI là giao diện đồng bộ, trong đó bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu đồng hồ tăc tơ chung, tín hiệu này sinh ra bởi thiết bị chủ động (bộ vi xử lý). Thiết bị ngoại vi bên phía nhận (bị động) làm đồng bộ quá trình nhận chuỗi bit với tín hiệu đồng hồ tăctơ. Có thể kết nối một số vi mạch vào mỗi giao diện ngoại vi nối tiếp của vi mạchthiết bị chủ động. Thiết bị chủ động chọn thiết bị động để truyền dữ liệu bằng cách kích hoạt tín hiệu "chọn chip" (tiếng Anh: chip select) trên vi mạch bị động.
Thiết bị ngoại vi nếu không được chọn bởi bộ vi xử lý sẽ không tham gia vào quá trình truyền theo giao diện SPI.7 Chuẩn truyền SPI. Trong giao diện SPI có sử dụng bốn tín hiệu số: - MOSI hay SI - cổng ra của bên chủ động, cổng vào của bên bị động (tiếng Anh: Master Out Slave In), dành cho việc truyền dữ liệu từ thiết bị chủ động đến thiết bị động. 11 do an - MISO hay SO - cổng vào của bên chủ động, cổng ra của bên bị động (tiếng Anh: Master In Slave Out), dành cho việc truyền dữ liệu từ thiết bị động đến thiết bị chủ động. - SCLK hay SCK - tín hiệu đồng hồ tăctơ nối tiếp (tiếng Anh: Serial Clock), dành cho việc truyền tín hiệu đồng hồ tăctơ dành cho thiết bị động.
- CS hay SS - chọn vi mạch, chọn bên bị động (tiếng Anh: Chip Select, Slave Select). Dưới đây là kết nối SPI giữa 1 và 2 thiết bị: - Kết nối 1 thiết bị chủ (master) và 1 thiết bị tớ (slave): Hình 2.8 1 thiết bị chủ và 1 thiết bị tớ. - Kết nối 1 thiết bị chủ (master) và nhiều thiết bị tớ (slave): Hình 2.9 1 thiết bị chủ và 3 thiết bị tớ.2 Nguyên lý hoạt động của chuẩn truyền SPI. Trong giao tiếp SPI mỗi thiết bị tớ(slave) sẽ có 1 thanh ghi địa chỉ.
Khi thiết bị chủ (master) muốn giao tiếp truyền dữ liệu cho 1 thiết bị tớ (slave) thì sẽ kéo ngõ ra có địa chỉ trùng với địa chỉ của thiết bị tớ xuống mức ‘0’ để báo rằng sẽ chọn thiết bị này làm để truyền và nhận dữ liệu.10: Thiết bị chủ chọn thiết bị có địa chỉ “00”. Ví dụ:như trên hình 2.10 mỗi thiết bị tớ (slave) đều có 1 địa chỉ riêng biệt. Khi thiết bị chủ(master) chọn thiết bị tớ có địa chỉ là “00” thì sẽ xuất ngõ ra SS0 để chọn. Giao tiếp SPI là một giao tiếp full-duplex nghĩa là dữ liệu có thể đồng thời được gửi trên cả hai chiều: từ SPI Master sang SPI Slave (trên đường MOSI) và từ SPI Slave sang SPI Master (trên đường MISO).
Khi truyền dữ liệu từ SPI Master sang SPI Slave: - Tại một cạnh lên hoặc xuống của tín hiệu SCLK, SPI Master tạo điện áp mức cao hoặc thấp để biểu diễn 1 hoặc 0 trên đường MOSI. SPI Master sẽ duy trì điện áp này trong một chu kỳ của SCLK trước khi chuyển sang một mức điện áp khác để gửi đi bit tiếp theo trong chu kỳ SCLK kế tiếp. Việc tạo điện áp được gọi là setup. 13 do an - SPI Slave nhận dữ liệu trên đường MOSI bằng cách lấy mẫu (sample) điện áp trên đường dây này.
Để thu được dữ liệu chính xác, SPI Slave phải lấy mẫu một bit dữ liệu trong khoảng thời gian từ khi SPI Master setup bit đó đến trước khi. SPI Master setup bit kế tiếp. Trong SPI Slave sample các bit dữ liệu ở các cạnh xuống (falling edge) của SCLK.11 Truyền nhận kí tự bằng chuẩn SPI.6 Ngắt của ARM STM32F103VET6.1 Khái niệm về ngắt: Khái niệm ngắt: Ngắt là việc vi điều khiển dừng tạm thời chương trình đang thực thi mà đi thực thi một chương trình khác có yêu cầu cấp thiết hơn. Sau khi thực thi xong CPU sẽ quay trở về thực hiện lại chương trình cũ.