1. Trang chủ
  2. » Giáo án - Bài giảng

Hệ thống nhúng

166 13 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 166
Dung lượng 3,56 MB

Nội dung

  HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG NGUYỄN NGỌC MINH IT NGUYỄN TRUNG HIẾU PT BÀI GIẢNG HỆ THỐNG NHÚNG HÀ NỘI – 12.2014 IT PT     Mục lục PT IT Mục lục .3 CHƯƠNG 1- GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG 1.1 Khái niệm Hệ thống nhúng (Embedded system) 1.2 Lịch sử phát triển hệ thống nhúng 1.3 Các đặc điểm hệ thống nhúng 1.3.1 Giao diện 1.3.2 Kiến trúc CPU Kiến trúc điển hình hệ thống nhúng .9 Phân loại hệ thống nhúng 12 1.4 Phạm vi ứng dụng hệ thống nhúng 12 1.5 Các yêu cầu kĩ thiết kế hệ thống nhúng 13 1.5.1 Quản lý, tích hợp, thiết kế hệ thống: .15 1.5.2 Thiết kế, phát triển phần mềm ứng dụng 16 1.5.3 Thiết kế firmware 16 1.5.4 Thiết kế mạch, PCB: 17 1.5.5 Thiết kế vi điện tử : linh kiện, IP, IC, phụ kiện 17 Câu hỏi ôn tập 19 CHƯƠNG 2: CÁC THÀNH PHẦN HỆ THỐNG 20 2.1 Các thành phần phần cứng 20 2.1.1 Bộ xử lý nhúng .20 2.1.2 Bộ nhớ 29 2.1.3 Bảng mạch Vào/Ra 31 2.1.5 Hệ thống Bus 40 2.2 Các thành phần phần mềm hệ thống: 50 2.2.1 Trình điều khiển thiết bị 50 2.2.2 Hệ điều hành thời gian thực 51 2.2.3 Middleware .52 2.2.4 Phần mềm ứng dụng 55 Câu hỏi ôn tập 57 CHƯƠNG - HỆ ĐIỀU HÀNH THỜI GIAN THỰC DÙNG CHO CÁC HỆ THỐNG NHÚNG 58 3.1 Yêu cầu chung cho hệ điều hành thời gian thực 58 3.2 Các chức phần lõi hệ điều hành thời gian thực 59 3.2.1 Kernel 59 3.2.2 Tác vụ đa nhiệm 60 3.3.3 Lập lịch thời gian thực (Real-time Scheduling) .62 3.3.4 Đồng 64 3.2.5 HAL (Hardware Abstraction Layer) 66 3.3 Giới thiệu hệ điều hành thời gian thực 66 3.3.1 FreeRTOS: .66 3.3.3 Hệ điều hành Embedded Linux: 76 3.3.4 Hệ điều hành uCLinux: 77 Câu hỏi ôn tập 78 CHƯƠNG 4: THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚNG 79 4.1 Thiết kế hệ thống 79   PT IT 4.1.1 Xác định yêu cầu 79 4.1.2 Đặc tả .80 4.1.3 Phân hoạch phần cứng - phần mềm 84 4.1.4 Thiết kế hệ thống .92 4.2 Cài đặt thử nghiệm hệ thống nhúng 109 Câu hỏi ôn tập 112 CHƯƠNG PHÁT TRIỂN HỆ THỐNG NHÚNG DỰA TRÊN VXL ARM .113 5.1 Giới thiệu chung 113 5.2 Kiến trúc hệ vi xử lý nhúng ARM 113 5.2.1 Lõi ARM 113 5.2.2 Thanh ghi chế độ hoạt động .114 5.2.3 Pipeline 116 5.2.4 Cấu trúc bus 117 5.2.5 Bản đồ nhớ: .119 5.2.6 Tập lệnh ARM .122 5.2.7 Tập lệnh Thumb .130 5.3 Thiết kế thành phần xử lý nhúng 130 5.3.1 Lập trình ghi 130 5.3.2 Thiết kế điều khiển I/O 131 5.3.3 Lập trình điều khiển định thời (Timer) đếm (Counter) 135 5.3.4 Đồng hồ thời gian thực 138 5.3.5 Bộ điều chế độ rộng xung 141 5.3.6 Điều khiển ngắt 143 5.3.7 Giao tiếp UART 144 5.3.8 Giao tiếp I2C 148 5.3.9 Giao tiếp SPI 151 5.3.10 Thiết kế điều kiển giao tiếp với thiết bị tương tự: ADC, DAC 154 5.3.11 Vịng khóa pha .158 5.4 Thiết lập hệ điều hành nhúng ARM 159 5.4.1 Firmware Bootloader 159 5.4.2 Hệ thống file (Filesystem) .161 5.4.3 Thiết lập nhân (kernel) 161 Tài liệu tham khảo 166   CHƯƠNG 1- GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG 1.1 Khái niệm Hệ thống nhúng (Embedded system) Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ Đó hệ thống tích hợp phần cứng phần mềm phục vụ tốn chun dụng nhiều lĩnh vực cơng nghiệp: điện tử, viễn thông, công nghệ thông tin, tự động hoá điều khiển, quan trắc truyền tin Đặc điểm hệ thống nhúng hoạt động ổn định có tính tự động hố cao IT Hệ thống nhúng thường thiết kế để thực chức chuyên biệt Khác với máy tính đa chức năng, chẳng hạn máy tính cá nhân, hệ thống nhúng thực một vài chức định, thường kèm với yêu cầu cụ thể bao gồm số thiết bị máy móc phần cứng chuyên dụng mà ta khơng tìm thấy máy tính đa nói chung Vì hệ thống xây dựng cho số nhiệm vụ định nên nhà thiết kế tối ưu hóa nhằm giảm thiểu kích thước chi phí sản xuất Các hệ thống nhúng thường sản xuất hàng loạt với số lượng lớn PT Hệ thống nhúng đa dạng, phong phú chủng loại Đó thiết bị cầm tay nhỏ gọn đồng hồ kĩ thuật số máy chơi nhạc MP3, sản phẩm lớn đèn giao thơng, kiểm sốt nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét độ phức tạp, hệ thống nhúng đơn giản với vi điều khiển phức tạp với nhiều đơn vị, thiết bị ngoại vi mạng lưới nằm gọn lớp vỏ máy lớn Các thiết bị PDA máy tính cầm tay có số đặc điểm tương tự với hệ thống nhúng hệ điều hành vi xử lý điều khiển chúng thiết bị hệ thống nhúng thật chúng thiết bị đa năng, cho phép sử dụng nhiều ứng dụng kết nối đến nhiều thiết bị ngoại vi Cho đến nay, khái niệm hệ thống nhúng nhiều người chấp nhận là: hệ thống thực số chức đặc biệt có sử dụng vi xử lý Khơng có hệ thống nhúng có phần mềm 1.2 Lịch sử phát triển hệ thống nhúng Hệ thống nhúng Apollo Guidance Computer (Máy tính Dẫn đường Apollo) phát triển Charles Stark Draper phịng thí nghiệm trường đại học MIT Hệ thống nhúng sản xuất hàng loạt máy hướng dẫn cho tên lửa quân vào năm 1961 Nó máy hướng dẫn Autonetics D-17, xây dựng sử dụng   bóng bán dẫn đĩa cứng để trì nhớ Khi Minuteman II đưa vào sản xuất năm 1996, D-17 thay với máy tính sử dụng mạch tích hợp Tính thiết kế chủ yếu máy tính Minuteman đưa thuật tốn lập trình lại sau để làm cho tên lửa xác hơn, máy tính kiểm tra tên lửa, giảm trọng lượng cáp điện đầu nối điện Từ ứng dụng vào năm 1960, hệ thống nhúng giảm giá phát triển mạnh mẽ khả xử lý Bộ vi xử lý hướng đến người tiêu dùng Intel 4004, phát minh phục vụ máy tính điện tử hệ thống nhỏ khác Tuy nhiên cần chip nhớ hỗ trợ khác Vào năm cuối 1970, xử lý bit sản xuất, nhìn chung chúng cần đến chip nhớ bên 1.3 PT IT Vào thập niên 80, kỹ thuật mạch tích hợp đạt trình độ cao dẫn đến nhiều thành phần đưa vào chip xử lý Các vi xử lý gọi vi điều khiển chấp nhận rộng rãi Với giá thấp, vi điều khiển trở nên hấp dẫn để xây dựng hệ thống chuyên dụng Đã có bùng nổ số lượng hệ thống nhúng tất lĩnh vực thị trường số nhà đầu tư sản xuất theo hướng Ví dụ, nhiều chip xử lý đặc biệt xuất với nhiều giao diện lập trình kiểu song song truyền thống để kết nối vi xử lý Vào cuối năm 80, hệ thống nhúng trở nên phổ biến hầu hết thiết bị điện tử khuynh hướng tiếp tục Các đặc điểm hệ thống nhúng Hệ thống nhúng thường có số đặc điểm chung sau: • Các hệ thống nhúng thiết kế để thực số nhiệm vụ chuyên dụng đóng vai trị hệ thống máy tính đa chức Một số hệ thống đòi hỏi ràng buộc tính hoạt động thời gian thực để đảm bảo độ an tồn tính ứng dụng; số hệ thống khơng địi hỏi ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất • Một hệ thống nhúng thường khối riêng biệt mà hệ thống phức tạp nằm thiết bị mà điều khiển • Phần mềm viết cho hệ thống nhúng gọi firmware lưu trữ chip nhớ đọc (read-only memory) nhớ flash ổ đĩa Phần mềm thường chạy với số tài ngun phần cứng hạn chế: khơng có bàn phím, hình có với kích thước nhỏ, nhớ hạn chế Sau đây, ta sâu, xem xét cụ thể đặc điểm thành phần hệ thống nhúng   1.3.1 Giao diện Các hệ thống nhúng khơng có giao diện (đối với hệ thống đơn nhiệm) có đầy đủ giao diện giao tiếp với người dùng tương tự hệ điều hành thiết bị để bàn Đối với hệ thống đơn giản, thiết bị nhúng sử dụng nút bấm, đèn LED hiển thị chữ cỡ nhỏ hiển thị số, thường kèm với hệ thống menu đơn giản 1.3.2 Kiến trúc CPU IT Còn hệ thống phức tạp hơn, hình đồ họa, cảm ứng có nút bấm lề hình cho phép thực thao tác phức tạp mà tối thiểu hóa khoảng khơng gian cần sử dụng, ý nghĩa nút bấm thay đổi theo hình lựa chọn Các hệ thống nhúng thường có hình với nút bấm dạng cần điểu khiển (joystick button) Sự phát triển mạnh mẽ mạng toàn cầu mang đến cho nhà thiết kế hệ nhúng lựa chọn sử dụng giao diện web thơng qua việc kết nối mạng Điều giúp tránh chi phí cho hình phức tạp đồng thời cung cấp khả hiển thị nhập liệu phức tạp cần đến, thông qua máy tính khác Điều hữu dụng thiết bị điều khiển từ xa, cài đặt vĩnh viễn Ví dụ, router thiết bị ứng dụng tiện ích PT Các xử lý hệ thống nhúng chia thành hai loại: vi xử lý vi điều khiển Các vi điều khiển thường có thiết bị ngoại vi tích hợp chip nhằm giảm kích thước hệ thống Có nhiều loại kiến trúc CPU sử dụng thiết kế hệ nhúng ARM, MIPS, Coldfire/68k, PowerPC, x86, PIC, 8051, Atmel AVR, Renesas H8, SH, V850, FR-V, M32R, Z80, Z8 … Điều trái ngược với loại máy tính để bàn, thường bị hạn chế với vài kiến trúc máy tính định Các hệ thống nhúng có kích thước nhỏ thiết kế để hoạt động môi trường công nghiệp thường lựa chọn PC/104 PC/104++ làm tảng Những hệ thống thường sử dụng DOS, Linux, NetBSD hệ điều hành nhúng thời gian thực QNX hay VxWorks Còn hệ thống nhúng có kích thước lớn thường sử dụng cấu hình thơng dụng hệ thống on chip (System on a chip – SoC), bảng mạch tích hợp cho ứng dụng cụ thể (an application-specific integrated circuit – ASIC) Sau nhân CPU mua thêm vào phần thiết kế chip Một chiến lược tương tự sử dụng FPGA (field-programmable gate array) lập trình cho với thành phần ngun lý thiết kế bao gồm CPU Thiết bị ngoại vi Hệ thống nhúng giao tiếp với bên ngồi thơng qua thiết bị ngoại vi, ví dụ như:   • Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 • Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC ESSI • Universal Serial Bus (USB) • Networks: Controller Area Network, LonWorks • Bộ định thời: PLL(s), Capture/Compare Time Processing Units • Discrete IO: General Purpose Input/Output (GPIO) Cơng cụ phát triển IT Tương tự sản phẩm phần mềm khác, phần mềm hệ thống nhúng phát triển nhờ việc sử dụng trình biên dịch (compilers), chương trình dịch hợp ngữ (assembler) cơng cụ gỡ rối (debuggers) Tuy nhiên, nhà thiết kế hệ thống nhúng sử dụng số cơng cụ chuyên dụng như: PT • Bộ gỡ rối mạch chương trình mơ (emulator) • Tiện ích để thêm giá trị checksum CRC vào chương trình, giúp hệ thống nhúng kiểm tra tính hợp lệ chương trình • Đối với hệ thống xử lý tín hiệu số, người phát triển hệ thống sử dụng phần mềm workbench MathCad Mathematica để mơ phép tốn • Các trình biên dịch trình liên kết (linker) chuyên dụng sử dụng để tối ưu hóa thiết bị phần cứng • Một hệ thống nhúng có ngơn ngữ lập trình cơng cụ thiết kế riêng sử dụng cải tiến từ ngơn ngữ có sẵn Các cơng cụ phần mềm tạo cơng ty phần mềm chuyên dụng hệ thống nhúng chuyển đổi từ công cụ phát triển phần mềm GNU Đôi khi, công cụ phát triển dành cho máy tính cá nhân sử dụng xử lý hệ thống nhúng gần giống với xử lý máy PC thông dụng Độ tin cậy Các hệ thống nhúng thường nằm cỗ máy kỳ vọng chạy hàng năm trời liên tục mà khơng bị lỗi khơi phục hệ thống gặp lỗi Vì thế, phần mềm hệ thống nhúng phát triển kiểm thử cách cẩn thận phần mềm cho máy tính cá nhân Ngồi ra, thiết bị rời khơng đáng tin cậy ổ đĩa, công tắc nút bấm thường bị hạn chế sử dụng Việc khôi phục hệ thống gặp lỗi   thực cách sử dụng kỹ thuật watchdog timer – phần mềm không đặn nhận tín hiệu watchdog định kì hệ thống bị khởi động lại Một số vấn đề cụ thể độ tin cậy như: • Hệ thống khơng thể ngừng để sửa chữa cách an tồn, ví dụ hệ thống không gian, hệ thống dây cáp đáy biển, đèn hiệu dẫn đường,… Giải pháp đưa chuyển sang sử dụng hệ thống dự trữ phần mềm cung cấp phần chức • Hệ thống phải chạy liên tục tính an tồn, ví dụ thiết bị dẫn đường máy bay, thiết bị kiểm sốt độ an tồn nhà máy hóa chất,… Giải pháp đưa lựa chọn backup hệ thống • Nếu hệ thống ngừng hoạt động gây tổn thất nhiều tiền ví dụ dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát nhà máy … IT Kiến trúc điển hình hệ thống nhúng PT Kiến trúc hệ thống nhúng trừu tượng hóa thiết bị nhúng, điều có nghĩa tổng qt hóa hệ thống mà khơng rõ thông tin thực thi chi tiết hệ thống mã nguồn thiết kế mạch phần cứng Các thành phần phần cứng phần mềm mức kiến trúc hệ thống nhúng đại diện phần tử có tác động lẫn Các phần tử đại diện phần cứng phần mềm chi tiết trừu tượng hóa Do đó, có thơng tin mối quan hệ qua lại hoạt động chúng Các phần tử tích hợp bên thiết bị nhúng tồn bên hệ thống nhúng tương tác với phần tử bên Tóm lại, kiến trúc hệ thống nhúng bao gồm phần tử hệ thống nhúng, phần tử tương tác với hệ thống nhúng, tính chất phần tử riêng biệt mối quan hệ tương tác thành phần Các thông tin mức kiến trúc mô tả theo dạng cấu trúc Một cấu trúc bao gồm tập hợp phần tử, tính chất thơng tin mối quan hệ qua lại Do đó, cấu trúc hình ảnh phần cứng phần mềm hệ thống thời điểm thiết kế thời điểm chạy Do hệ thống thường có cấu trúc phức tạp, kiến trúc thường kết hợp nhiều cấu trúc khác Tất cấu trúc kiến trúc có mối quan hệ thừa kế qua lại với Một số kiểu cấu trúc sau:  Cấu trúc theo dạng module: Theo dạng này, phần tử thành phần có chức khác hệ thống (VD phần cứng phần mềm hệ thống hoạt động được) thiết bị nhúng Cấu trúc    thường trình bày theo dạng lớp (layers), theo phần mềm dịch vụ cho nhân (kernel services)… Cấu trúc theo dạng thành phần kết nối: Cấu trúc kết hợp thành phần (VD phần cứng, phần mềm, CPU, ) kết nối bus phần cứng, tin phần mềm, process hệ thống Mơ hình hệ thống nhúng Trên thực tế, có nhiều cấu trúc kiến trúc sử dụng Tuy nhiên, mức cao nhất, mơ hình hệ thống nhúng thường trình bày hình sau: IT Hình 1-1 Mơ hình chung hệ thống nhúng PT Từ mơ hình trên, thấy tất hệ thống nhúng có chung tương tự mức cao Cụ thể, chúng có lớp ( phần cứng, phần mềm hệ thống phần mềm ứng dụng) Lớp phần cứng bao gồm thành phần vật lý bo mạch nhúng Lớp phần mềm hệ thống phần mềm ứng dụng bao gồm phần mềm hệ thống nhúng Một số kiến trúc phần mềm hệ thống nhúng: Vòng lặp kiểm soát đơn giản Theo thiết kế này, phần mềm tổ chức thành vòng lặp đơn giản Vòng lặp gọi đến chương trình con, chương trình quản lý phần hệ thống phần cứng phần mềm Hệ thống ngắt điều khiển Các hệ thống nhúng thường điểu khiển ngắt Có nghĩa tác vụ hệ thống nhúng kích hoạt loại kiện khác Ví dụ, ngắt sinh định thời sau chu kỳ định nghĩa trước, kiện cổng nối tiếp nhận byte Loại kiến trúc thường sử dụng hệ thống có quản lý kiện đơn giản, ngắn gọn cần độ trễ thấp Hệ thống thường thực tác vụ đơn giản vịng lặp Đơi khi, tác vụ phức tạp thêm vào cấu trúc hàng đợi quản lý ngắt để vịng lặp xử lý sau Lúc này, hệ thống gần giống với kiểu nhân đa nhiệm với tiến trình rời rạc Đa nhiệm tương tác Một hệ thống đa nhiệm không ưu tiên gần giống với kỹ thuật vịng lặp kiểm sốt đơn giản ngoại trừ việc vịng lặp ẩn giấu thơng qua giao diện lập trình 10   Hình 5-25 Cấu hình master nhiều slave Giao tiếp SPI gồm đường tín hiệu : clock (SCLK), liệu từ master vào slave MOSI (Master Out Slave In), liệu vào master từ slave MISO (Master In Slave Out), tín hiệu chọn slave SS (Slave Select) IT Khi giao tiếp sử dụng SPI cần để ý cặp thông số cực clock CPOL (Clock Polarity) phase clock CPHA (Clock Phase), cặp thông số dùng để xác định sườn tín hiệu clock mà liệu lái lấy mẫu Mỗi thơng số có trạng thái mức cao – mức thấp nên tổng hợp lại có tổ hợp mà tổ hợp khơng tương thích với tổ hợp cịn lại Nên cặp giao tiếp master/slave phải sử dụng cặp thông số để giao tiếp Các tổ hợp CPOL CPHA xác định: Khi bít liệu thiết lập Khi bít liệu khác thiết lập Khi liệu lấy mẫu PT - Mối quan hệ biểu diễn bảng Tổ hợp CPOL Bit CPHA thiết lập CPOL = 0, CPHA =0 Trước sườn dương SCK CPOL = 0, CPHA =1 Sườn dương SCK CPOL = 1, CPHA =0 Trước sườn âm SCK CPOL = 1, CPHA =1 Sườn âm SCK Các bít khác Dữ liệu lấy thiết lập mẫu Sườn âm SCK Sườn dương SCK Sườn dương SCK Sườn âm SCK Sườn dương SCK Sườn âm SCK Sườn âm SCK Sườn dương SCK Mô tả ghi SPI: Register Mô tả S0SPCR SPI Control Register : ghi điều khiển hoạt động SPI S0SPSR SPI Status Register : ghi trạng thái SPI, Kiểu truy cập R/W RO 152   thông báo trạng thái SPI SPI Data Register : ghi chiều cung cấp liệu truyền nhận cho SPI Dữ liệu truyền cung cấp tới SPI0 ghi vào ghi liệu nhận SPI0 đọc từ ghi SPI Clock Counter Register : ghi điều khiển tần số master SCK0 SPI Interrupt Flag : chứa cờ ngắt cho giao diện SPI S0SPDR S0SPCCR S0SPINT R/W R/W R/W Ví dụ sau gồm hàm cho phép thực truyền nhận liệu SPI Các hàm sử dụng thư viện cho ứng dụng lớn #include "LPC23xx.h" void SPIInit( void ) { IT PCONP |= (1

Ngày đăng: 19/03/2021, 16:59

TỪ KHÓA LIÊN QUAN

w