Báo cáo bài tập lớn lập trình nhúng cơ bản tìm hiểu giao diện SPI

35 1.7K 3
Báo cáo bài tập lớn lập trình nhúng cơ bản tìm hiểu giao diện SPI

Đ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

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  BÁO CÁO BÀI TẬP LỚN Lập trình nhúng cơ bản Đề tài: Tìm hiểu giao diện SPI Giảng viên hướng dẫn: T.S Phạm Văn Hà Sinh viên thực hiện: Nhóm 21 Tăng Quang Khải Nguyễn Tuấn Anh Hà Nội 2014 MỤC LỤC 2 DANH MỤC HÌNH 3 DANH MỤC BẢNG 4 LỜI NÓI ĐẦU Hiện nay, các vi xử lý hay vi điều khiển đang được sử dụng rộng rãi trong nhiều lĩnh vực như: điều khiển, tự động hóa, đo đạc, truyền thông So với các phương pháp điều khiển, đo đạc truyền thống (cơ khí, điện tử tương tự ) thì sử dụng vi xử lý có các ưu điểm như: nhỏ gọn, ít tốn năng lượng, thời gian đáp ứng nhanh, có thể lập trình được Cùng với đó giao diện SPI ngày càng được sử dụng rộng rãi trong ngành công nghiệp cơ điện tử. Nhận thức được tầm quan trọng của giao diện SPI trong việc ứng dụng vào lập trình vi điều khiển là cơ sở để chúng em chọn đề tài bài tập lớn “Tìm hiểu giao diện SPI”. Dưới sự hướng dẫn, chỉ bảo nhiệt tình của thầy Phạm Văn Hà cùng với sự cố gắng nỗ lực của các thành viên trong nhóm chúng em đã hoàn thành đề tài đúng thời gian cho phép. Tuy nhiên do thời gian hạn chế, cũng như với tầm hiểu biết có hạn nên chúng em không tránh khỏi sai sót. Vì vậy chúng em rất mong nhận được nhiều ý kiến đánh giá, góp ý của thầy giáo và các bạn để chúng em có thể hoàn thiện thêm đề tài này. Chúng em xin chân thành cảm ơn! 5 PHẦN 1: MỞ ĐẦU 1. Tên đề tài Tìm hiểu giao diện SPI 2. Lý do chọn đề tài Ngày nay, khoa học kỹ thuật phát triển như vũ bão. Hệ thống thiết bị điện tử, mạch điện tử, điện tử kỹ thuật số đã làm thay đổi sâu sắc toàn bộ hoạt động sản xuất của con người. Kỹ thuật điện tử số đã và đang thay thế dần các kỹ thuật tương tự và còn đóng vai trò then chốt trong cuộc cách mạng kỹ thuật và công nghệ. Song song với sự phát triển thần kì của cuộc cách mạng khoa học – công nghệ, kỹ thuật số đã dần dần có mặt trong hầu hết tất cả các thiết bị từ dân dụng đến thiết bị công nghiệp đặc biệt là trong lĩnh vực thông tin liên lạc, phát thanh truyền hình, điều khiển tự động Nó giải quyết khối lượng công việc lớn, giảm kích thước của các mạch điện tử đồng thời chúng có nhiều tính năng và độ chính xác cao. Có thể nói rằng kỹ thuật số ra đời là cuộc cách mạng trong ngành kỹ thuật điện tử. Thế kỷ 21 chứng kiến sự phát triển với tốc độ chóng mặt của khoa học công nghệ, nó đóng vai trò then chốt trên tất cả các lĩnh vực của cuộc sống vì vậy trong mỗi chúng ta, đặc biệt là thế hệ trẻ, sinh viên ngành kỹ thuật cần phải hiểu rõ và nắm bắt được các kiến thức về công nghệ kỹ thuật số. Do đó chúng em quyết định chọn đề tài “Tìm hiểu giao diện SPI” làm đề bài tập lớn. 3. Mục tiêu nghiên cứu - Sinh viên bước đầu tìm hiểu về nghiên cứu khoa học. - Hiểu được chuẩn nối tiếp truyền thông. - Nắm được kiến thức về chuẩn giao tiếp SPI. - Phân tích được ưu, được điểm của giao tiếp SPI. 4. Bố cục đề tài Nội dung chính của đề tài gồm ba chương:  Chương I: Giới thiệu giao diện SPI  Chương II: Ứng dụng giao diện SPI trên vi điều khiển AVR  Chương III: Nhận xét về giao diện SPI 6 PHẦN 2: NỘI DUNG CHƯƠNG I: GIỚI THIỆU GIAO DIỆN SPI 1.1. Giới thiệu SPI (Serial Peripheral Interface – Giao diện Ngoại vi Nối tiếp) 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), 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. Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình truyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave. SPI cung cấp một giao diện nối tiếp đơn giản giữa vi xử lý và thiết bị ngoại vi. Giống với các Bus nối tiếp khác như I2C, CAN hoặc USB. Chuẩn giao tiếp SPI ngày càng được sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp trao đổi dữ liệu với các thiết bị ngoại vi. Giao diện SPI được sử dụng tích hợp trong một số loại thiết bị như: + Các bộ chuyển đổi (ADC và DAC) + Các loại bộ nhớ (EEPROM và FLASH) + Các loại IC thời gian thực + Các loại cảm biến (nhiệt độ, áp suất ) + Và một số loại thiết bị khác như: bộ trộn tín hiệu analog, LCD, Graphic LCD 1.2. Chuẩn truyền thông SPI 1.2.1. Cấu trúc SPI Giao diện SPI được thực hiện thông qua Bus 4 dây MISO, MOSI, SCK và SS nên đôi khi SPI còn được gọi là “giao diện 4 dây”. a. MISO – Master Input/ Slave Output Chân MISO dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình là Slave và nhận dữ liệu khi đặt cấu hình là Master. MISO của Master và các Slaves được nối trực tiếp với nhau. b. MOSI – Master Output/ Slave Input 7 Chân MOSI dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình là Master và nhận dữ liệu khi đặt cấu hình là Slave. MISO của Master và các Slaves được nối trực tiếp với nhau. c. SCK – Serial Clock Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền thông đồng bộ nên cần một đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. Sự tồn tại của chân SCK giúp quá trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt hiệu quả cao. Xung nhịp chỉ được tạo ra bởi chip Master. d. SS – Slave Select SS là đường chọn Slave cần giao tiếp, trên các chip Slave đường SS sẽ ở mức cao khi không làm việc. Nếu chip Master kéo đường SS của một Slave nào đó xuống mức thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó. Chỉ có một đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển trên Master tùy thuộc vào thiết kế của người dùng. 8 Hình 1: Giao diện SPI • Có thể mô tả tóm tắt các tín hiệu của giao diện SPI bằng bảng sau: Tên tín hiệu Chiều Mô tả SCK Master: đầu ra Slave: đầu vào Clock đồng bộ truyền/nhận dữ liệu luôn được cung cấp bởi Master SS Master: đầu ra Slave: đầu vào Tín hiệu kết nối với Slave. Master kích hoạt tín hiệu này nếu muốn truyền/nhận dữ liệu với Slave. Master: MOSI Slave: SDO hoặc SO Đầu ra Đầu ra dữ liệu nối tiếp - Với Master tín hiệu có tên Master Out Slave In - Với Slave tín hiệu có tên Slave Data Out Master: MISO Slave: SDI hoặc SI Đầu vào Đầu vào dữ liệu nối tiếp - Với Master tín hiệu có tên Master In Slave Out - Với Slave tín hiệu có tên Slave Data In Bảng 1: Các tín hiệu của giao diện SPI 1.2.2. SPI truyền thông như thế nào? • Mô tả cơ chế Hình dưới đây mô tả quá trình truyền một gói dữ liệu thực hiện bởi module SPI trong AVR, bên trái là chip Master và bên phải là Slave. 9 Hình 2: Truyền dữ liệu SPI • Giản đồ định thời giao tiếp SPI – Motorola Khi Master muốn truyền/nhận dữ liệu, nó kéo tín hiệu chọn chip SS xuống mức thấp. Sau đó, Master cung cấp Clock đồng bộ việc truyền/nhận dữ liệu trên đường SCK. Vị trí lấy mẫu dữ liệu và dịch dữ liệu theo xung SCK phụ thuộc vào hai thông số cấu hình được quy định bởi chuẩn SPI là pha của Clock (CPHS – Clock Phase) và cực của Clock (CPOL – Clock Polarity) Hình 3: Giản đồ timing của giao tiếp SPI theo Motorola Cực của Clock quyết định trạng thái rảnh (idle) của tín hiệu SCK. Nếu CPOL = 0 thì mức logic khi idle của SCK là mức 0. Nếu CPOL = 1 thì ngược lại. 10 [...]... Rs232, Rs485 hay CAN 33 KẾT LUẬN Qua việc hoàn thành bài tập lớn này đã giúp nhóm chúng em hiểu rõ thêm về:  Thế nào là chuẩn giao tiếp SPI  Cấu trúc, các chức năng và hoạt động của giao tiếp SPI  Ứng dụng giao tiếp SPI để giải quyết các vấn đề mắc phải trong Lập trình nhúng  Phân tích ưu, nhược điểm của giao tiếp SPI Vận dụng kiến thức đồ họa cơ sở được học ở trường, kết hợp với những tài liệu... em đã hoàn thành bài tập được giao Với tầm hiểu biết có hạn nên trong quá trình hoàn thiện không tránh khỏi thiếu sót nên nhóm chúng em rất mong nhận được sự chỉ dẫn, bổ sung, góp ý và sự cảm thông sâu sắc của thầy để bài tập của chúng em được hoàn thiện hơn Chúng em xin chân thành cảm ơn.!! Hà Nội, ngày 12 tháng 12 năm 2014 34 TÀI LIỆU THAM KHẢO • • Giáo trình Lập trình nhúng cơ bản – TS Phạm Văn... 5 loại giao tiếp ngoại vi khác nhau STM32 có giao diện SPI và I2C để giao tiếp với các mạch tích hợp khác Hỗ trợ giao tiếp CAN cho các module, USB cho giao tiếp với các mạch tích hợp khác, STM cung cấp 2 khối điều khiển SPI có khả năng chạy ở chế độ song công (full duplex) với tốc độ truyền dữ liệu lên tới 18MHz Khối SPI tốc độ cao nằm trên APB2, khối SPI tốc độ thấp nằm trên APB1 Mỗi khối SPI có hệ... cần thiết khi sử dụng SPI để giao tiếp với MMC/SD card 25 Hình 20: Kết nối giữa SPI và MMC/SD card 1.5 Thiết lập SPI trên STM32 Đầu tiên các module SPI được khởi tạo bằng cách xác định một kiểu biến “HardwareSPI” được sử dụng để điều khiển cách cổng SPI Để làm được điều này hãy bổ sung dãy mã sau: Song song với đó, xác định một biến toàn cục với tên SRM là một con trỏ đến cấu trúc spi_ reg_map trong đó... bit đầu tiên của nhóm thiết lập phần CNF và hai bit cuối cùng của nhóm thiết lập MODE được thiết lập giá trị dịch theo thiết lập sau: SCK: PA5: 1011: chức năng thay thế Push-pull MOSI: PA7: 1011: chức năng thay thế Push-pull MISO: PA6: 0100: Input nổi / Input Pull-up CSS: PB5: 0011: Mục đích chung đầu ra Push-pull 32 CHƯƠNG III: NHẬN XÉT VỀ GIAO DIỆN SPI 3.1 Những ưu điểm của SPI - Truyền thông song công... một quá trình trao đổi dữ liệu bằng giao thức SPI giữa thiết bị Slave đó và chính nó Nếu tín 11 hiệu trên đường SS là 0 thì chứng tỏ giao thức SPI đang hoạt động Ngược lại là mức 1 thì giao thức SPI sẽ không hoạt động Một đặc điểm khá quan trọng của tín hiệu SS là nó có tác dụng làm tăng cường khả năng miễn nhiễm cho hệ thống Lí do là SS sẽ Reset Slave để nó có thể nhận Byte dữ liệu tiếp theo SPI có... đồng hồ, tín hiệu SCK sẽ ở mức thấp trong quá trình nghỉ và chuyển sang mức cao trong quá trình truyền dữ liệu Ngược lại, đối với trường hợp cực dương của xung đồng hồ, tín hiệu SCK ở mức cao trong quá trình nghỉ và chuyển sang mức thấp khi truyền dữ liệu: SPI Mode 0 1 2 3 CPOL 0 0 1 1 CPHS 0 1 0 1 Bảng 2: Các chế độ truyền thông trong giao thức SPI + SPI Mode 0: Mô tả: Xung dương, dữ liệu được chốt... gian của SPI ở Mode 0 + SPI Mode 1: Mô tả: Xung dương, dữ liệu được dịch đi trước khi chốt Giản đồ thời gian Hình 5: Giản đồ thời gian của SPI ở Mode 1 + SPI Mode 2: Mô tả: Xung âm, dữ liệu được chốt lại trước khi dịch Giản đồ thời gian 13 Hình 6: Giản đồ thời gian của SPI ở Mode 2 + SPI Mode 3: Mô tả: Xung âm, dữ liệu bị dịch đi trước khi chốt lại Giản đồ thời gian Hình 7: Giản đồ thời gian của SPI ở... của nó để thiết lập địa chỉ bắt đầu của module SPI trong các bản đồ bộ nhớ chụp màn hình từ trước Trong Reference Manual ta có thể thấy rằng SPI_ CR1 đăng ký tại địa chỉ offset 0x00, đăng ký SPI_ CR2 tại offset 0x04, SPI_ SR tại offset 0x08 và như vậy, mộ cái khác sau đó Điều này phù hợp với cấu trúc và sau khi xác định các SRM biến toàn cầu trong đoạn code ta có thể truy cập vào đăng ký SPI như thế này:... bước Busy (bước này được thiết lập và xóa bởi phần cứng) o 0 : SPI không hoạt động o 1 : SPI đang truyền thông hoặc vùng đệm Tx là rỗng • bit 6 – OVR: bước Overrun (bước này được thiết lập bởi phần cứng và được thiết lập lại bởi chuỗi các phần mềm) o 0 : không xảy ra Overrun o 1 : xảy ra Overrun • bit 5 – MODF: chế độ lỗi (bước này được thiết lập bởi phần cứng và được thiết lập lại bởi chuỗi các phần mềm) . nghiệp cơ điện tử. Nhận thức được tầm quan trọng của giao diện SPI trong việc ứng dụng vào lập trình vi điều khiển là cơ sở để chúng em chọn đề tài bài tập lớn Tìm hiểu giao diện SPI . Dưới. thiệu giao diện SPI  Chương II: Ứng dụng giao diện SPI trên vi điều khiển AVR  Chương III: Nhận xét về giao diện SPI 6 PHẦN 2: NỘI DUNG CHƯƠNG I: GIỚI THIỆU GIAO DIỆN SPI 1.1. Giới thiệu SPI. NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN  BÁO CÁO BÀI TẬP LỚN Lập trình nhúng cơ bản Đề tài: Tìm hiểu giao diện SPI Giảng viên hướng dẫn: T.S Phạm Văn Hà Sinh viên thực hiện: Nhóm

Ngày đăng: 22/05/2015, 09:05

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • PHẦN 1: MỞ ĐẦU

    • 1. Tên đề tài

    • 2. Lý do chọn đề tài

    • 3. Mục tiêu nghiên cứu

    • 4. Bố cục đề tài

    • PHẦN 2: NỘI DUNG

    • CHƯƠNG I: GIỚI THIỆU GIAO DIỆN SPI

      • 1.1. Giới thiệu

      • 1.2. Chuẩn truyền thông SPI

        • 1.2.1. Cấu trúc SPI

        • 1.2.2. SPI truyền thông như thế nào?

        • 1.2.3. SPI là giao thức đồng bộ

        • 1.2.4. SPI là giao thức trao đổi dữ liệu

        • 1.3. Các kiểu kết nối SPI

          • 1.3.1. Kết nối điểm – điểm ( point-to-point )

          • 1.3.2. Kết nối Multi-slave

          • 1.3.3. Kết nối Multi-master

          • CHƯƠNG II: GIAO DIỆN SPI TRÊN VI ĐIỀU KHIỂN STM32F4 VỚI LÕI ARM CORTEX-M4

            • 1.1. Tổng quan về ARM và Cortex-M

            • 1.2. Tổng quan về bộ vi xử lý Cortex-M4

            • 1.3. Lõi Cortex-M4 (CPU Cortex)

            • 1.4 SPI trên STM32

            • 1.5 Thiết lập SPI trên STM32

            • CHƯƠNG III: NHẬN XÉT VỀ GIAO DIỆN SPI

              • 3.1. Những ưu điểm của SPI

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

Tài liệu liên quan