Tổng quan Xu phát triển ngành công nghệ thông tin không chỉ đơn khía cạnh xoay quanh máy vi tính trước mà ứng dụng hệ nhúng Nếu thiết bị phần cứng xác phần mềm nhúng làm nên hồn thiết bị, tạo nhiều tính chiếm tỷ lệ ngày cao giá trị sản phẩm Thị trường cho hệ nhúng đa dạng, lớn gấp nhiều lần thị trường PC Hệ nhúng trải rộng tất ngành từ sản phẩm truyền thông, di động sản phẩm điện tử gia dụng, ô tô, phương tiện vận chuyển, máy móc, thiết bị y tế, thiết bị lượng, thiết bị cảnh báo, đồ chơi trẻ em … Các tập đoàn quốc tế lớn sản xuất đồ điện tử Việt Nam Samsung Electronics LG Electronics (LGE) cho thấy Samsung Electronics LGE trọng đến sản phẩm điện tử gia dụng mà phần lõi hệ điều khiển nhúng Vậy hệ thống nhúng là gì? 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 phềm để thực một nhóm chức chuyên biệt cụ thể Hệ thống nhúng (HTN) 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 chỉ thực một vài chức định
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THƠNG TIN BỘ MƠN KỸ THUẬT MÁY TÍNH -o0o - BÀI TIỂU LUẬN MƠN HỌC: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG NHÚNG Đề tài: Thiết kế hệ thống điều kiển vi xử lý ARM STM32F4 Giảng viên hướng dẫn : TS Ngô Lam Trung Học viên thực : Nguyễn Văn Dũng Đoàn Văn Hưng Lớp : 18ACĐT.KH Hà Nội, T02 - 2019 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - YÊU CẦU ĐỀ TÀI Xây dựng ứng dụng hoàn chỉnh - Mạch khởi động: nháy Orange LED - Khi người dùng bấm User button chuyển sang chế độ đo gia tốc - Khi người dùng nghiêng mạch hướng LED hướng sáng Độ sáng tỷ lệ thuận với góc nghiêng Bảo vệ - Nhóm người - Có báo cáo trình bày phân tích thiết kế, module phần mềm sử dụng, lưu đồ thuật tốn - Trình bày, vấn đáp trực tiếp PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - PHẦN GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG NHÚNG 1.1 Tổng quan Xu phát triển ngành công nghệ thông tin không chỉ đơn khía cạnh xoay quanh máy vi tính trước mà ứng dụng hệ nhúng Nếu thiết bị phần cứng xác phần mềm nhúng làm nên hồn thiết bị, tạo nhiều tính chiếm tỷ lệ ngày cao giá trị sản phẩm Thị trường cho hệ nhúng đa dạng, lớn gấp nhiều lần thị trường PC Hệ nhúng trải rộng tất ngành từ sản phẩm truyền thông, di động sản phẩm điện tử gia dụng, ô tô, phương tiện vận chuyển, máy móc, thiết bị y tế, thiết bị lượng, thiết bị cảnh báo, đồ chơi trẻ em … Các tập đoàn quốc tế lớn sản xuất đồ điện tử Việt Nam Samsung Electronics LG Electronics (LGE) cho thấy Samsung Electronics LGE trọng đến sản phẩm điện tử gia dụng mà phần lõi hệ điều khiển nhúng Vậy hệ thống nhúng là gì? 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 phềm để thực một nhóm chức chuyên biệt cụ thể Hệ thống nhúng (HTN) 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 chỉ 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 chun dụng mà ta khơng tìm thấy máy tính đa nói chung Vì hệ thống chỉ 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 HTN đ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 soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Xét PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG độ 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 Hệ thống nhúng hệ thống tích hợp phần cứng phần mềm phục vụ cho toán chuyên dụng nhiều lĩnh vực cơng nghiệp, tự động hóa điều khiển, quan trắc truyền thông 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 Hệ thống địi hỏi độ ổn định tự động hóa cao Do sử dụng cho nhiệm vụ chuyên biệt sản xuất với số lượng lớn nên chúng thiết kế cách tối ưu nhằm giảm thiểu kích thước giá thành sản xuất Độ phức tạp khác theo yêu cầu công việc mà chúng đảm nhận, 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 Một sớ ví dụ điển hình hệ thống nhúng: - Các hệ thống dẫn đường không lưu, hệ thống định vị toàn cầu, vệ tinh - Các thiết bị gia dụng: tủ lạnh, lị vi sóng, lò nướng,… - Các thiết bị kết nối mạng: router, hub, gateway,… - Các thiết bị văn phòng: máy photocopy, máy fax, máy in, máy scan,… - Các thiết bị y tế: máy thẩm thấu, máy điều hòa nhịp tim,… - Các máy trả lời tự động - Dây chuyền sản xuất tự động công nghiệp, robots - Các thiết bị PDA, Smartphone, Netbook, … gọi hệ thống nhúng “lai” chúng 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 thiết bị không thật hệ thống nhúng, chúng thiết bị đa dụng, kết nối đến nhiều thiết bị ngoại vi tương tác với giới thực không chặt chẽ PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG 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 MITnăm 1960 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, AutoneticsD-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 II đưa thuật tốn lập trình lại sau để làm cho tên lửa chính 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 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 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 1.3 Xu hướng phát triển hệ thống nhúng Sau máy tính lớn (mainframe), PC Internet hệ thống nhúng sóng đổi thứ công nghệ thông tin truyền thông Xu hướng phát triển hệ thống nhúng là: - Phần mềm ngày chiếm tỷ trọng cao trở thành thành phần cấu tạo nên thiết bị bình đẳng phần khí, linh kiện điện tử, linh kiện quang học… PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - Các hệ nhúng ngày phức tạp đáp ứng yêu cầu khắt khe thời gian thực, tiêu ít lượng hoạt động tin cậy ổn định - Các hệ nhúng ngày có độ mềm dẻo cao đáp ứng yêu cầu nhanh chóng đưa sản phẩm thương trường, có khả bảo trì từ xa, có tính cá nhân cao - Các hệ nhúng ngày có khả hội thoại cao, có khả kết nối mạng hội thoại với người sử dụng - Các hệ nhúng ngày có tính thích nghi, tự tổ chức cao có khả tái cấu thực thể, tác nhân - Các hệ nhúng ngày có khả tiếp nhận lượng từ nhiều nguồn khác (ánh sáng, rung động, điện từ trường, sinh học….) để tạo nên hệ thống tự tiếp nhận lượng trình hoạt động 1.4 Những thách thức vấn đề cịn tồn với hệ thớng nhúng Hệ thống nhúng phải đối mặt với vấn đề sau: - Độ phức tạp liên kết đa ngành phối hợp cứng - mềm.Độ phức tạp hệ thống tăng cao kết hợp nhiều lĩnh vực đa ngành, kết hợp phần cứng - mềm, phương pháp thiết kế kiểm tra chưa chín muồi Khoảng cách lý thuyết thực hành lớn thiếu phương pháp lý thuyết hồn chỉnh cho khảo sát phân tích tồn cục hệ nhúng - Thiếu phương pháp tích hợp tối ưu thành phần tạo nên hệ nhúng bao gồm lý thuyết điều khiển tự động, thiết kế máy, công nghệ phần mềm, điện tử, vi xử lý, công nghệ hỗ trợ khác - Thách thức độ tin cậy tính mở hệ thống: Do hệ thống nhúng thường phải hội thoại với môi trường xung quanh nên nhiều gặp tình khơng thiết kế trước dễ dẫn đến hệ thống bị loạn Trong trình hoạt động số phần mềm thường phải chỉnh lại thay đổi nên hệ thống phần mềm khơng kiểm sốt Đối với hệ PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG thống mở, hãng thứ đưa module mới, thành phần vào gây nên hoạt động thiếu tin cậy 1.5 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ụ chun dụng khơng phải đó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 Một 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ớ chỉ đọc (ROM - 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, sâu, xem xét cụ thể đặc điểm thành phần hệ thống nhúng 1.5.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ỏ chỉ hiển thị số, thường kèm với hệ thống menu đơn giản 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 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG 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 1.5.2 Kiến trúc CPU 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… Đ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 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 thêm vào phần thiết kế chip Một chiến lược tương tự sử dụng FPGA (fieldprogrammable gate array) lập trình cho với thành phần ngun lý thiết kế bao gồm CPU 1.5.3 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 - Universal Serial Bus (USB) - Networks: Controller Area Network, LonWorks - Bộ định thời: PLL(s), Capture/Compare Time Processing Units PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - Discrete IO: General Purpose Input/Output (GPIO) 1.5.4 Công cụ phát triển 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ư: - 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 1.5.5 Độ 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 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG 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 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 … Sơ đồ tổng quát quy trình thiết kế hệ thống nhúng tổng quát: 1.6.1 Đặc tả hệ thống Đặc tả hệ thống cung cấp mơ hình hệ thống thiết kế Định nghĩa mơ hình: đơn giản hóa thực thể khác, đối tượng vật lí mơ hình khác Mơ hình chứa xác tồn đặc điểm thuộc tính có liên quan đến tác vụ 10 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG + LD1 (đỏ / xanh cây) để giao tiếp USB + LD2 (màu đỏ) báo hiệu nguồn 3,3 V on + Bốn đèn LED màu: LD3 (màu cam), LD4 (màu xanh cây), LD5 (màu đỏ) LD6 (màu xanh dương) + Hai USB OTG LED LD7 (màu xanh cây) VBUS LD8 (màu đỏ) - Hai nút bấm (nút bấm User màu xanh, nút bấm Reset màu đen) - OTG FS USB với cổng nối micro-AB - Header mở rộng cho tất LQFP100 I/O - Phần mềm miễn phí bao gồm loạt ví dụ, sử dụng thư viện chuẩn ST 18 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - PHẦN PHÂN TÍCH - THIẾT KẾ HỆ THỐNG NHÚNG 3.1 Mạch khởi động nháy Led Orange Đầu sáng LED - Cài đặt chế độ GPIO_Output cho chân PD12,PD13, PD14, PD15 - Chân mạch PIN_12: Orange LED - Cài đặt PIN_12 GPIO_OUTPUT - Cấp PIN_12=1 100ms PIN_12= 100ms Nhấp nháy Orange LED 3.2 Sử dụng nút ấn User Button - Cài đặt chế độ GPIO_Input cho chân PA0 - Vì giá trị PA0 =1 ấn, k ấn PA0=0 - Cần biến trì RunPWM, PA0=1 >>RunPWM=1, bấm nút Reset->> RunPWM=0 19 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG 3.3 Thay đổi cường độ sáng LED cảm biến góc Cấu hình thạch anh RCC 3.4 Băm xung PWM - Tpwm = T2 = 10 ms - ftimer = 1MHz Ttimer = 1/ftimer = 10^-6 prescaler= 84 Ta có T2/Ttimer=10000 >> Tức timer đến 10000 lần chu kỳ PWM (T2) - Độ phân giải mà cảm biến đọc 0.5 mg tương ứng với lần lặp timer - Chia T2 thành 10000 khoảng 20 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG - 3.5 Cài đặt Timer Cài đặt Prescaler =84 Counter mode : Up >> đếm lên Period =0 tương ứng với chu kỳ timer 21 PHÂN TÍCH VÀ ĐIỀU KIỂN HỆ THỐNG NHÚNG 3.6 Lưu đồ thuật toán Bấm nút Reset User Button (PA0=RunPWM=? ) PIN_13=1 or Đọc cảm biến gia tốc, LED 12 nhấp nháy tính X, Y, Z XYZ[0]>0 Timer6 chạy, a++ (tính TPWM) PIN_13=PIN_14=PIN_15 RESET&PIN_12 SET a