Nối tiếp phần 1, Bài giảng Hệ thống nhúng: Phần 2 tiếp tục trình bày những nội dung về thiết kế và cài đặt các hệ thống nhúng; phát triển hệ thống nhúng dựa trên VXL ARM; cài đặt và thử nghiệm hệ thống nhúng; kiến trúc của hệ vi xử lý nhúng ARM; thiết kế điều khiển giao tiếp với thiết bị tương tự: ADC, DAC; thiết lập hệ điều hành nhúng trên nền ARM;... Mời các bạn cùng tham khảo!
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG NGUYỄN NGỌC MINH NGUYỄN TRUNG HIẾU BÀI GIẢNG HỆ THỐNG NHÚNG HÀ NỘI – 12.2014 CHƯƠNG 4: THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚNG 4.1 Thiết kế hệ thống 4.1.1 Xác định yêu cầu Một đặc điểm hệ thống nhúng phần cứng phần mềm phải tính tốn, cân nhắc thời gian thiết kế chúng Bởi vậy, loại thiết kế gọi đồng thiết kế phần cứng/phần mềm (hardware/software codesign) Mục đích cuối tìm kết hợp thích hợp phần cứng phần mềm để sản phẩm tạo có đầy đủ đặc điểm kỹ thuật đề Bởi vậy, hệ thống nhúng khơng thể thiết kế q trình tổng hợp ghi chép lại đáp ứng kỹ thuật vào kê khai Tốt hơn, phần tử cấu thành sẵn có để dùng phải đươc liệt kê cho hệ thống Cũng có lý khác cho điều bắt buộc này: giảm thiểu việc tăng độ phức tạp hệ thống nhúng, yêu cầu nghiêm ngặt thời gian đưa sản phẩm tới khách hàng, khả dùng lại sản phẩm Điều dẫn đến thuật ngữ platform-based design (thiết kế nền): Một platform (nền) họ kiến trúc thoả mãn tập hợp ràng buộc áp đặt phép dùng lại phần tử phần cứng phần mềm Tuy nhiên, phần cứng chưa đủ Các thiết kế nhanh, tin cậy, có tính dẫn xuất cao thường u cầu sử dụng giao diện lập trình ứng dụng (API) để từ phát triển, mở rộng để đạt tới phần mềm ứng dụng Nhìn chung, (platform) lớp khái niệm trừu tượng bao gồm nhiêù sàng lọc để đưa tới mức thấp Thiết kế sở cách tiếp cận meet-in-the-middle: Theo dòng thiết kế từ đỉnh xuống, người thiết kế lập đồ từ cao tới thấp, công bố ràng buộc thiết kế chúng [Sangiovanni-Vincentelli, 2002] Việc lập đồ trình lặp lặp lại, cơng cụ đánh giá hoạt động q trình hướng dẫn phần Hình 4-1 thể cách tiếp cận Hoạt động thiết kế phải tính đến tồn platform sẵn có ghi chúng vào bảng kê khai Trên thực tế có lượng lớn hoạt động thiết kế, vài hoạt động số chúng trình bày việc tham chiếu đến platform sẵn có khơng phải ln ln thể Các hoạt động thiết kế bao gồm: Quản lý nhiệm vụ mức: Hoạt động có liên quan với việc xác định nhiệm vụ phải diện hệ thống nhúng cuối Những nhiệm vụ khác với nhiệm vụ bao gồm đặc điểm kỹ thuật, từ có lý tốt việc sát nhập chia tách nhiệm vụ Các biến đổi cấp cao: Người ta nhận thấy có nhiều biến đổi cấp cao tối ưu ứng dụng kỹ thuật Ví dụ, vịng lặp thay đổi để truy xuất đến phần tử mảng nhiều vùng khác Ngồi ra, phép tốn số học dấu phẩy động thường xuyên thay các phép toán số học dấu phẩy cố định mà khơng có tổn thất đáng kể chất lượng Những biến đổi cấp cao 79 thường vượt ngồi khả trình biên dịch có sẵn phải áp dụng trước bắt đầu trình biên dịch Phân hoạch phần cứng/phần mềm: Chúng ta thấy trường hợp chung, số chức phải thực phần cứng đặc biệt để đáp ứng u cầu tăng tốc độ tính tốn hệ thống [De Man, 2002] Phân hoạch phần cứng/phần mềm hoạt động phân chia chức cần thực cho phần cứng phần mềm Biên dịch: Những phần đặc điểm kỹ thuật ánh xạ tới phần mềm phải biên dịch Hiệu mã tạo cải thiện trình biên dịch khai thác tốt kiến thức vi xử lý (và nhớ) nằm bên phần cứng Bởi vậy, có chương trình biên dịch "nhận thức phần cứng" đặc biệt cho hệ thống nhúng Hình 4-1 Thiết kế (platform) Lập lịch trình: Lập lịch trình (sắp đặt thời gian bắt đầu hoạt động) phải thực vài bối cảnh Lịch trình phải chừng (gần xác) thời gian phân vùng phần cứng/phần mềm, thời gian quản lý nhiệm vụ đồng mức thời gian biên dịch Lịch trình xác nhận cho mã chương trình cuối Khảo sát khơng gian thiết kế: Trong hầu hết trường hợp, có vài thiết kế đáp ứng thông số kỹ thuật Khảo sát khơng gian thiết kế q trình phân tích chi tiết tập thiết kế (có thể thực hiện) Trong số thiết kế đáp ứng thông số kỹ thuật, thiết kế chọn Những luồng thiết kế riêng biệt sử dụng hoạt động theo trình tự khác Khơng có tập tiêu chuẩn hoạt động thiết kế 4.1.2 Đặc tả Có thể trường hợp mà đặc tả kỹ thuật hệ thống nhúng thu thập ngôn ngữ tự nhiên, tiếng Anh Tuy nhiên, cách tiếp cận hồn tồn khơng thích hợp thiếu u cầu quan trọng cho kỹ thuật đặc tả: cần thiết để kiểm tra đặc điểm kỹ thuật đầy đủ, khơng có mâu thuẫn phải triển khai xuất phát từ đặc điểm kỹ thuật theo cách có hệ thống Vì vậy, đặc tả kỹ 80 thuật nên thu thập ngơn ngữ máy thức đọc Ngôn ngữ đặc tả kỹ thuật cho hệ thống nhúng phải có khả đại diện cho tính sau đây: Sự phân cấp: Con người thường khơng có khả thấu hiểu hệ thống có chứa nhiều đối tượng (các trạng thái, thành phần) có quan hệ phức tạp với Việc mơ tả tất hệ thống thực tế cần nhiều đối tượng mà người hiểu Phân cấp chế giúp giải tình trạng khó xử Phân cấp đưa vào mà người cần phải xử lý số nhỏ đối tượng thời điểm Có hai loại phân cấp: - Các phân cấp theo hành vi : phân cấp theo hành vi phân cấp chứa đối tượng cần thiết để mô tả hành vi hệ thống Các trạng thái, kiện tín hiệu đầu ví dụ cho đối tượng - Các phân cấp cấu trúc: phân cấp cấu trúc mô tả hệ thống bao gồm thành phần vật lý Ví dụ, hệ thống nhúng bao gồm vi xử lý, nhớ, cấu chấp hành cảm biến Các xử lý, theo trình tự, lại bao gồm ghi, dồn kênh cộng Các dồn kênh lại bao gồm cổng logic Thời gian-hành vi: u cầu tính tốn thời gian rõ ràng (chính xác) đặc trưng hệ thống nhúng, u cầu tính tốn thời gian phải thu thập đặc tả kỹ thuật Hành vi định hướng trạng thái: Nó đề cập chương mà thiết bị tự động cung cấp chế tốt cho mơ hình hóa hệ thống phản ứng Vì vậy, hành vi định hướng trạng thái cung cấp thiết bị tự động dễ mơ tả Tuy nhiên, mơ hình thiết bị tự động cổ điển khơng đủ, chúng khơng thể mơ hình hố thời gian phân cấp không hỗ trợ Xử lý-sự kiện : Do tính chất phản ứng tự nhiên hệ thống nhúng, chế cho việc mô tả kiện phải tồn Các kiện kiện bên ngồi (gây môi trường) kiện nội (gây thành phần hệ thống) Khơng có trở ngại cho việc tạo thực thi hiệu quả: hệ thống nhúng phải hiệu quả, khơng có trở ngại ngăn cản việc tạo thực hiệu cần phải thể đặc tả Hỗ trợ cho việc thiết kế hệ thống đáng tin cậy: Các kỹ thuật đặc tả cần phải cung cấp hỗ trợ cho việc thiết kế hệ thống đáng tin cậy Ví dụ, ngơn ngữ đặc tả kỹ thuật nên có ngữ nghĩa rõ ràng, tạo điều kiện thuận lợi cho xác minh hình thức có khả mơ tả bảo mật yêu cầu an toàn Hành vi hướng ngoại lệ: Trong nhiều trường hợp thực tế, ngoại lệ hệ thống xuất Để thiết kế hệ thống đáng tin cậy, phải thật để mô tả hoạt động để xử lý ngoại lệ cách dễ dàng Không chấp nhận ngoại lệ phải thị cho trạng thái (giống trường hợp sơ đồ trạng thái cổ điển) Ví dụ: Trong Hình 4-2, đầu vào k tương ứng tới ngoại lệ 81 Việc rõ ngoại lệ trạng thái làm cho sơ đồ phức tạp Tình hình tồi tệ cho sơ đồ trạng thái lớn với nhiều chuyển tiếp Chúng ta sau biểu thị, làm tất trình chuyển tiếp thay chuyển tiếp Hình 4-2 Sơ đồ trạng thái với ngoại lệ k Truy cập đồng thời: hệ thống thực hệ thống phân tán, tồn đồng thời Do đó, cần thiết để xác định đồng thời thuận tiện Đồng hóa truyền thơng: hoạt động đồng thời phải có khả liên lạc phải phù hợp với việc sử dụng tài nguyên Chẳng hạn, cần thiết biểu thị loại trừ lẫn Sự diện yếu tố lập trình: ngơn ngữ lập trình thơng thường chứng minh phương tiện thuận tiện để thể tính tốn cần phải thực Do đó, yếu tố ngơn ngữ lập trình nên có sẵn kỹ thuật đặc tả sử dụng Những sơ đồ trạng thái cổ điển khơng đáp ứng u cầu Có thể thực được: Những đặc tả không tự động phù hợp với ý tưởng đầu người Thực đặc tả kỹ thuật phương tiện kiểm tra đáng tin cậy Các đặc tả kỹ thuật sử dụng ngơn ngữ lập trình có lợi rõ ràng ngữ cảnh Hỗ trợ cho việc thiết kế hệ thống lớn: Có xu hướng tới chương trình phần mềm nhúng lớn phức tạp Cơng nghệ phần mềm tìm chế để thiết kế hệ thống lớn Chẳng hạn, hướng đối tượng chế Nó cần phải sẵn sàng phương pháp đặc tả kỹ thuật Hỗ trợ lĩnh vực chuyên biệt: Tất nhiên tốt kỹ thuật đặc tả áp dụng cho tất loại khác hệ thống nhúng, điều giảm thiểu nỗ lực để phát triển kỹ thuật đặc tả kỹ thuật công cụ hỗ trợ Tuy nhiên, phạm vi rộng lĩnh vực ứng dụng, có hy vọng ngơn ngữ sử dụng để đại diện hiệu cho đặc tả kỹ thuật lĩnh vực Chẳng hạn, lĩnh vực ứng dụng tập trung phân tán, thiên điều khiển, thiên xử lý liệu hưởng lợi từ tính ngơn ngữ chun dụng lĩnh vực Có thể đọc được: Tất nhiên, đặc tả kỹ thuật phải đọc người Tốt là, chúng đọc máy trình tự để xử lý chúng máy tính Tính khả chuyển linh hoạt: Các đặc tả kỹ thuật phải độc lập với tảng phần cứng cụ thể để chúng dễ dàng sử dụng cho loạt tảng 82 mục tiêu Chúng cần phải linh hoạt cho thay đổi nhỏ tính hệ thống yêu cầu thay đổi nhỏ đặc tả Điểm kết thúc: Nó phải có tính khả thi để xác định q trình hồn thành từ đặc tả kỹ thuật Hỗ trợ thiết bị I/0 không tiêu chuẩn: Nhiều hệ thống nhúng sử dụng thiết bị I/O khác với thiết bị thơng thường tìm thấy máy PC Cần phải có khả mơ tả đầu vào đầu cho thiết bị thuận tiện Những thuộc tính khơng hoạt động: hệ thống thực tế phải thể số thuộc tính khơng hoạt động, chẳng hạn sai hỏng cho phép, kích thước, tính co dãn, thời gian sống dự kiến, công suất tiêu thụ, trọng lượng, thân thiện với người sử dụng, tương thích điện từ (EMC) v.v Khơng có hy vọng tất thuộc tính định nghĩa cách thức Mơ hình tính tốn thích hợp: Để mơ tả tính tốn, mơ hình tính tốn bắt buộc Các mơ mơ tả phần Từ danh sách yêu cầu, thể rõ ràng khơng có ngơn ngữ thức có khả đáp ứng tất yêu cầu Bởi vậy, thực tế, phải sống với thỏa hiệp Việc lựa chọn ngôn ngữ sử dụng cho thiết kế thực tế phụ thuộc vào miền ứng dụng mơi trường mà thiết kế thực Trong phần sau, trình bày khảo sát ngơn ngữ sử dụng cho thiết kế thực tế a Mô hình tính tốn Những ứng dụng cơng nghệ thơng tin tồn nhiều dựa vào mơ hình máy tính von Neumann tính tốn Mơ hình khơng thích hợp cho hệ thống nhúng, đặc biệt hệ thống có u cầu thời gian thực, khơng có khái niệm thời gian máy tính von Neumann Các mơ hình tính tốn khác đầy đủ b Biểu đồ trạng thái (StateCharts) Ngôn ngữ thực tế trình bày StateCharts StateCharts giới thiệu vào năm 1987 David Harel sau mơ tả xác StateCharts mơ tả việc truyền thơng máy trạng thái hữu hạn Nó dựa khái niệm nhớ chia sẻ truyền thông c Những đặc trưng ngôn ngữ khái quát Phần trước cung cấp cho số ví dụ thuộc tính ngơn ngữ đặc tả kỹ thuật Những ví dụ giúp hiểu thảo luận tổng quát thuộc tính ngơn ngữ phần trước tiếp tục thảo luận ngôn ngữ phần Có số đặc điểm mà so sánh thuộc tính ngơn ngữ Thuộc tính liên quan đến việc phân biệt mơ hình xác định không xác định đề cập đến thảo luận StateCharts 83 4.1.3 Phân hoạch phần cứng - phần mềm Trong trình thiết kế, phải giải vấn đề thực đặc tả kỹ thuật phần cứng dạng chương trình chạy vi xử lý Phần mô tả số kỹ thuật để lập đồ Áp dụng kỹ thuật này, định phần phải thực phần cứng phần thực phần mềm Bởi phân hoạch phần cứng/phần mềm, có nghĩa ánh xạ nút biểu đồ nhiệm vụ cho hai phần cứng phần mềm Một thủ tục tiêu chuẩn cho việc nhúng phân vùng phần cứng/phần mềm vào tiến trình thiết kế tổng thể hiển thị Hình 4-3 Chúng ta đại diện chung đặc tả kỹ thuật, ví dụ dạng đồ thị nhiệm vụ thông tin (platform) Đối với nút đồ thị nhiệm vụ, cần thông tin liên quan đến nỗ lực cần thiết lợi ích nhận từ việc lựa chọn thực nút Ví dụ, thời gian thực phải dự đốn Rất khó để dự đốn thời gian cần thiết cho truyền thơng Tuy nhiên, hai nhiệm vụ địi hỏi băng thông truyền thông cao tốt nên ánh xạ tới thành phần giống Phương pháp lặp sử dụng nhiều trường hợp Một giải pháp ban đầu cho vấn đề phân vùng tạo ra, phân tích sau cải thiện Một số phương pháp tiếp cận cho phân hoạch giới hạn để ánh xạ nút đồ thị nhiệm vụ tới phần cứng chức chuyên biệt phần mềm chạy xử lý đơn Việc phân hoạch thực với thuật tốn bipartitioning (phân đơi) cho đồ thị nhiệm vụ Những thuật toán phân hoạch phức tạp có khả lập đồ nút đồ thị cho hệ thống đa xử lý phần cứng Trong phần sau, mô tả cách làm việc thuật toán cách sử dụng kỹ thuật tối ưu hóa tiêu chuẩn từ hoạt động nghiên cứu, lập trình số nguyên Trình bày dựa phiên đơn giản hóa đề xuất tối ưu hóa cho cơng cụ thiết kế COOL (codesign tool) Hình 4-3 Tổng quan phân hoạch phần cứng/phần mềm a COOL Đối với COOL, đầu vào bao gồm ba phần: Công nghệ mục tiêu: Phần đầu vào cho COOL bao gồm thông tin thành phần phần cứng sẵn có COOL hỗ trợ hệ thống đa xử, 84 yêu cầu tất xử lý loại, khơng bao gồm lựa chọn vi xử lý tự động hay tay Tên xử lý sử dụng (cũng thơng tin trình biên dịch tương ứng) phải bao gồm phần đầu vào cho COOL Đối với phần cứng ứng dụng chuyên biệt, thơng tin phải có đủ để bắt đầu tổng hợp phần cứng tự động với tất thông số cần thiết Đặc biệt, thông tin thư viện công nghệ phải cung cấp Những ràng buộc thiết kế: Phần thứ hai đầu vào bao gồm ràng buộc thiết kế thông lượng yêu cầu , độ trễ, kích thước nhớ tối đa, diện tích tối đa cho phần cứng ứng dụng chuyên biệt Hành vi: Phần thứ ba đầu vào mô tả hành vi tổng thể yêu cầu Đồ thị nhiệm vụ phân cấp sử dụng cho việc Chúng ta nghĩ ra, ví dụ cách sử dụng đồ thị nhiệm vụ phân cấp cho việc COOL sử dụng hai loại giới hạn (edge): giới hạn truyền thông giới hạn phân định thời gian Giới hạn truyền thơng chứa thơng tin số lượng thông tin trao đổi Giới hạn phân định thời gian cung cấp ràng buộc phân định thời gian COOL đòi hỏi cách xử lý nút nút (leaf node) phân cấp đồ thị biết COOL cho cách xử lý quy định VHDL Đối với phân vùng, COOL sử dụng bước sau: Chuyển đổi hành vi thành mơ hình đồ thị nội Chuyển đổi hành vi nút từ VHDL vào C Biên dịch tất chương trình C cho xử lý mục tiêu chọn, tính tốn kích thước chương trình kết quả, dự toán thời gian thực kết Nếu mơ sử dụng sau đó, liệu đầu vào mô phải sẵn sàng Tổng hợp thành phần phần cứng: Đối với nút lá, phần cứng ứng dụng chuyên biệt phải tổng hợp Từ số lớn thành phần phần cứng phải tổng hợp, tổng hợp phần cứng khơng nên q chậm Có thể nhận thấy công cụ tổng hợp thương mại tập trung tổng hợp mức cổng chậm để có ích cho COOL Tuy nhiên, công cụ tổng hợp cao cấp làm việc mức-chuyển đổithanh ghi (sử dụng cộng, ghi, dồn kênh thành phần, thay cổng) cung cấp tốc độ tổng hợp đầy đủ Ngoài ra, cơng cụ cung cấp đầy đủ giá trị xác cho thời gian trì hỗn diện tích silic u cầu Trong thực thực tế, công cụ tổng hợp cấp cao OSCAR [Landwehr and Marwedel, 1997] sử dụng Trải phẳng phân cấp: Bước khai triển đồ thị nhiệm vụ phẳng từ lưu đồ có phân cấp Khi khơng có việc sát nhập chia tách nút thực hiện, độ chi tiết sử dụng nhà thiết kế trì Chi phí thơng tin thực thu từ q trình biên tập tổng hợp phần cứng bổ sung vào nút Đây thực ý tưởng COOL: thơng tin cần thiết cho phân vùng phần cứng/phần mềm tính tốn trước tính với độ xác tốt Thơng tin thiết lập sở để tạo thiết kế chi phí tối thiểu thoả mãn ràng buộc thiết kế Tạo giải mô hình tốn vấn đề tối ưu hóa: COOL sử dụng lập trình số nguyên (IP) để giải vấn đề tối ưu hóa Một thiết bị giải IP thương 85 mại dùng để tìm giá trị cho biến định đến việc tối thiểu hoá chi phí Giải pháp tối ưu hàm chi phí bắt nguồn từ thơng tin có sẵn Tuy nhiên, chi phí bao gồm xấp xỉ thô thời gian truyền thông Thời gian truyền thông hai nút đồ thị nhiệm vụ phụ thuộc vào việc ánh xạ nút tương ứng tới xử lý phần cứng Nếu hai nút ánh xạ tới xử lý, truyền thông cục nhanh Nếu nút ánh xạ tới thành phần phần cứng khác nhau, truyền thơng khơng-cục bị chậm Mơ hình hóa chi phí truyền thơng cho tất ánh xạ có nút đồ thị nhiệm vụ làm cho mô hình phức tạp thay cải tiến lặp giải pháp ban đầu Chi tiết bước trình bày Các cải tiến lặp: Để làm việc với ước lượng tốt thời gian truyền thông, nút liền kề ánh xạ tới thành phần phần cứng hợp Sự hợp thể Hình 4-4 Chúng ta giả định nhiệm vụ T1, T2 T5 ánh xạ tới thành phần phần cứng H1 H2, T3 T4 ánh xạ tới xử lý P1 Tương ứng, truyền thông T3 T4 truyền thông cục Vì vậy, hợp T3 T4, thừa nhận việc giao tiếp hai nhiệm vụ khơng địi hỏi kênh truyền thơng Thời gian truyền thơng ước lượng với độ xác cải thiện Đồ thị kết sau sử dụng đầu vào cho việc tối ưu hóa tốn học Các bước trước lặp lại khơng cịn nút đồ thị sát nhập Hình 4-4 Hợp nút nhiệm vụ ánh xạ đến thành phần phần cứng Tổng hợp giao diện: Sau phân vùng, theo trình tự logic đòi hỏi phải tạo giao diện xử lý, phần cứng ứng dụng chuyên biệt nhớ Tiếp theo, mô tả bước chi tiết Các mơ hình IP cung cấp phương pháp tiếp cận chung để mơ hình hóa vấn đề tối ưu hóa Các mơ hình IP bao gồm hai phần: hàm chi phí tập ràng buộc Cả hai phần bao hàm tham chiếu đến tập X = {xi} biến giá trị nguyên Những hàm chi phí phải hàm tuyến tính biến Vì vậy, chúng phải có dạng chung: C a x , with a xi X i i ý giá trị để tạo tính mở rộng cho ứng dụng cụ thể #include "LPC23xx.h" void ADC_init( void ) { /* Enable CLOCK into ADC controller */ PCONP |= (1