Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
577,05 KB
Nội dung
Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng MỤC LỤC DANH MỤC HÌNH VẼ BẢNG BIỂU TRONG LUẬN VĂN BẢNG THUẬT NGỮ VÀ KÝ HIỆU SỬ DỤNG LỜI GIỚI THIỆU CHƢƠNG 1: TỔNG QUAN VỀ THIẾT KẾ HỆ THỐNG NHÚNG 1.1 Hệ nhúng khái niệm 1.1.1 Hệ thống nhúng 1.1.2 Hệ thống nhúng thời gian thực 1.2 Giới thiệu chung thiếtkế hệ thống nhúng 10 1.2.1 Xác định yêu cầu sản phẩm 11 1.2.2 Lựa chọn vi xử lý 11 1.2.2 Phân bổ phần cứng phầnmềm 12 1.2.3 Thực lặp lại 14 1.2.4 Thiếtkế chi tiết phần cứng phầnmềm 14 1.2.5 Tích hợp phần cứng phầnmềm 15 1.2.6 Kiểm thử Error! Bookmark not defined 1.2.7 Bảo trì cập nhật Error! Bookmark not defined CHƢƠNG 2: THIẾTKẾPHẦNMỀMNHÚNG Error! Bookmark not defined 2.1 Phầnmềmnhúng Error! Bookmark not defined 2.1.1 Sự khác biệt phầnmềmnhúngphầnmềm thông thường PC Error! Bookmark not defined 2.1.2 Nguyên tắc thiếtkế chung Error! Bookmark not defined 2.1.3 Thiếtkếphầnmềmnhúng với RTOS Error! Bookmark not defined 2.2 Kiến trúc phầnmềmnhúng Error! Bookmark not defined 2.2.1 Round robin Error! Bookmark not defined 2.2.2 Round robin với ngắt Error! Bookmark not defined 2.2.3 Kiến trúc Function – Queue - Scheduling Error! Bookmark not defined 2.2.4 Kiến trúc Hệ điều hành thời gian thực (RTOS) Error! Bookmark not defined 2.3 Các phương pháp đặc tả thiếtkếphầnmềmnhúng Error! Bookmark not defined 2.3.1 Phương pháp đặc tả hình thức (formal method) Error! Bookmark not defined 2.3.2 Phương pháp đặc tả bán hình thức (semi-formal method) Error! Bookmark not defined 2.4 Công cụ phát triển phầnmềmnhúng Error! Bookmark not defined 2.5 Case study thiếtkếphầnmềmnhúng Error! Bookmark not defined Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng 2.5.1 Phân tích yêu cầu Error! Bookmark not defined 2.5.2 Thiếtkế Error! Bookmark not defined 2.5.3 Phân chia tác vụ Error! Bookmark not defined 2.5.4 Kiến trúc phần cứng hệ thống Error! Bookmark not defined CHƢƠNG 3: HỆ ĐIỀU HÀNH THỜI GIAN THỰC Error! Bookmark not defined 3.1 Tính đa nhiệm Error! Bookmark not defined 3.1.1 Lập lịch ưu tiên (Preemptive Scheduling) Error! Bookmark not defined 3.1.2 Kích hoạt bỏ kích hoạt tác vụ (Activation and Deactivation of Tasks) Error! Bookmark not defined 3.1.3 Lập lịch hướng kiện (Event-Driven Scheduling) Error! Bookmark not defined 3.2 Theo dõi tác vụ Error! Bookmark not defined 3.3 Truyền thông tác vụ Error! Bookmark not defined 3.4 Quản lý nhớ Error! Bookmark not defined 3.5 Quản lý tài nguyên Error! Bookmark not defined 3.6 RTOS ngắt Error! Bookmark not defined 3.7 Liên lạc RTOS thông dụng Error! Bookmark not defined 3.8 Khả sử dụng RTOS Error! Bookmark not defined 3.9 Ưu nhược điểm hệ điều hành thời gian thực Error! Bookmark not defined 3.10 Hệ điều hành thời gian thực µC/OS Error! Bookmark not defined CHƢƠNG 4: CÁC CÁCH TIẾP CẬN VỚI BÀI TOÁN NHẬN DẠNG CHỮ NÔM Error! Bookmark not defined 4.1 Nhận dạng chữ Nôm mạng nơ-ron Error! Bookmark not defined 4.1.1 Áp dụng mạng nơ-ron nhận dạng chữ Nôm Error! Bookmark not defined 4.1.2 Thực nghiê ̣m Error! Bookmark not defined 4.2 Ứng dụng Tesseract để nhận dạng chữ Nôm Error! Bookmark not defined 4.2.1 Tóm tắt Tesseract Error! Bookmark not defined 4.2.2 Áp dụng với chữ Nôm Error! Bookmark not defined 4.3 So sánh thảo luận Error! Bookmark not defined CHƢƠNG 5: ỨNG DỤNG VÀ PHÁT TRIỂN PHẦNMỀM NHẬN DẠNG CHỮ NÔM CHO THIẾT BỊ NHÚNG Error! Bookmark not defined 5.1 Phân tích ứng dụng môi trường nhúng Error! Bookmark not defined 5.2 Thực nghiệm chương trình nhận dạng dựa Tesseract với môi trường µC/OS Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined TÀI LIỆU THAM KHẢO 15 PHỤ LỤC Error! Bookmark not defined Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng DANH MỤC HÌNH VẼ BẢNG BIỂU TRONG LUẬN VĂN DANH MỤC HÌNH VẼ Hình 1.1 Quan hệ hệ nhúng thời gian thực Hình 1.2 Quy trình thiếtkế co-design 10 Hình 1.3 Thiếtkế máy in laser 13 Hình 1.4 Một ví dụ vấn đề big endian/little endian Error! Bookmark not defined Hình 1.5 Mối liên hệ chi phí sửa lỗi cho giai đoạnError! Bookmark not defined Hình 2.1 Phầnmềmnhúng hệ thống Error! Bookmark not defined Hình 2.2 Thành phầnphầnmềmnhúng Error! Bookmark not defined Hình 2.3 Cấu trúc đề nghị tác vụ Error! Bookmark not defined Hình 2.4 Kiến trúc Round robin Error! Bookmark not defined Hình 2.5 Kiến trúc Round-robin with interrupts Error! Bookmark not defined Hình 2.6 Kiến trúc Function-Queue-Scheduling Error! Bookmark not defined Hình 2.7 Kiến trúc Hệ điều hành thời gian thực Error! Bookmark not defined Hình 2.8 Biểu đồ luồng liệu hệ thống đồng hồ báo thứcError! Bookmark not defined Hình 2.9 Biểu đồ trạng thái Error! Bookmark not defined Hình 2.10 Đặc tả theo giả mã Error! Bookmark not defined Hình 2.11 Qui trình phát triển blueprint Error! Bookmark not defined Hình 2.12 Cấu trúc SPT profile Error! Bookmark not defined Hình 2.13 Quá trình phát triển biên dịch phầnmềm nhúngError! Bookmark not defined Hình 2.14 Hình dáng thiết bị Error! Bookmark not defined Hình 2.15 Biểu đồ ngữ cảnh hệ thống Error! Bookmark not defined Hình 2.16 Biểu đồ Use Case Error! Bookmark not defined Hình 2.17 Biểu đồ cho ca sử dụng Playback a messageError! Bookmark not defined Hình 2.18 Alarm while playback a message Error! Bookmark not defined Hình 2.19 Ngữ cảnh vào khỏi chế độ stand-by Error! Bookmark not defined Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng Hình 2.20 Biểu đồ lớp hệ thống Error! Bookmark not defined Hình 2.21 Các hệ thống Digital Sound RecorderError! Bookmark not defined Hình 2.22 Biểu đồ lớp hệ thống Audio Error! Bookmark not defined Hình 2.23 Biểu đồ nghe thông điệp Error! Bookmark not defined Hình 2.24 Thiếtkếphần cứng hệ thống Error! Bookmark not defined Hình 3.1 Cấu trúc hệ điều hành thời gian thực Error! Bookmark not defined Hình 3.2 Hoạt động chia nhỏ thời gian Error! Bookmark not defined Hình 3.3 Một ví dụ semaphore Error! Bookmark not defined Hình 3.4 Truyền thông RTOS Error! Bookmark not defined Hình 3.5 Các khối nhớ gán RTOS Error! Bookmark not defined Hình 3.6 Cấu trúc tác vụ Error! Bookmark not defined Hình 3.7 Biểu đồ chuyển trạng thái tác vụ Error! Bookmark not defined Hình 3.8 Hàm dịch vụ ngắt µC/OS Error! Bookmark not defined Hình 4.2 Cấ u trúc mô-dun chương trin ̀ h Error! Bookmark not defined Hình 4.3 Lưu đồ huấ n luyê ̣n ma ̣ng Error! Bookmark not defined Hình 4.4 Kiến trúc tổng quát Tesseract Error! Bookmark not defined Hình 5.1 Quá trình học chữ Nôm Error! Bookmark not defined Hình 5.2 Quá trình nhận dạng Error! Bookmark not defined Hình 5.3 Biểu đồ ngữ cảnh hệ thống Error! Bookmark not defined Hình 5.4 Biểu đồ Use case hệ thống Error! Bookmark not defined Hình 5.5 Biểu đồ hệ thống nhận dạng chữ NômError! Bookmark not defined Hình 5.6 Biểu đồ lớp hệ thống nhận dạng chữ NômError! Bookmark not defined Hình 5.7 Trạng thái tác vụ thực thi hệ thốngError! Bookmark not defined Hình 5.8 Biểu đồ chuyển đổi tác vụ Error! Bookmark not defined DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng kiện tác động lên hệ thống Error! Bookmark not defined Bảng 2.2 Các đối tượng hệ thống Error! Bookmark not defined Bảng 4.1 Mô ̣t kế t quả nhận dạng Error! Bookmark not defined Bảng 4.2 Kế t quả nhâ ̣n da ̣ng chữ Nôm với Tesseract Error! Bookmark not defined Bảng 5.1 Các kiện tác động vào chương trình Error! Bookmark not defined Bảng 5.2 Kết thực tác vụ nhận dạng Error! Bookmark not defined Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Trần Minh Tuấn Phântích,Thiếtkếphầnmềmnhúng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng BẢNG THUẬT NGỮ VÀ KÝ HIỆU SỬ DỤNG ANN Kỹ thuật nhận dạng dựa mạng nơ ron (Artifical neural network) ASIC Vi mạch tích hợp chuyên dụng (Application Integrated IC) CPU Bộ xử lý trung tâm (Central Processing Unit) CSP Một ngôn ngữ hình thức mô tính tương tác hệ thống (Communicating Sequential Process) DMA Truy cập nhớ trực tiếp (Direct Memory Access) FPU Đơn vị xử lý dấu phải động (Float Processing Unit) IC Mạch tích hợp (Integrated Circuit) ISR Hàm dịch vụ ngắt (Interrupt Service Routine) JTAG K-NN Một chuẩn giao tiếp để truyền liệu đưa JTAG (Joint Test Action Group) Kỹ thuật nhận dạng dựa láng giềng gần (K-Nearest Neighbor) OMG Tên tổ chức (Object Management Group) PLD Thiết bị logic khả trình (Programmable Logic Device) ROOM Mô hình hoá hướng đối tượng thời gian thực (Real time Object Oriented Modelling) RTOS Hệ điều hành thời gian thực (Real time Operating System) UML-SPT Một chuẩn mô tả cho ứng dụng thời gian thực dựa UML TCB Khối điều khiển tác vụ (Task Control Block) VHDL UML Trần Minh Tuấn Một ngôn ngữ đặc tả phần cứng (Vhsic Hardware Description Language) Ngôn ngữ mô hình hoá thống (Unified Modelling Language) Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng LỜI GIỚI THIỆU Thời gian gần đây, Hệ thống nhúng – Thời gian thực quan tâm nhiều Việt Nam, giới hệ thống phát triển mạnh mẽ xu hướng thịnh hành nước Công nghiệp lợi ích to lớn, thiết thực mà mang lại Theo chuyên gia nhận định, phát triển máy tính (PC) chuyển sang giai đoạn thứ - giai đoạn môi trường thông minh mà hệ thống nhúng cốt lõi (còn gọi giai đoạn hậu PC - Internet) Phát triển hệ nhúngphầnmềmnhúng quốc sách nhiều quốc gia Tuy nhiên muốn xây dựng Hệ thống nhúng – Thời gian thực tốt, đáp ứng yêu cầu đòi hỏi người thiếtkế phát triển phải có hiểu biết sâu hệ thống, thiết bị phần cứng, vấn đề hệ điều hành thời gian thực (RTOS), lập trình nhúng, giải thuật lập lịch (Scheduling), cấp phát (Allocation), bố trí hệ thống (layout), phân chia phần cứng – phầnmềm (HW-SW partioning)…Việc thiếtkế xây dựng hệ thống nhúng cần phát triển theo hướng co-design [7] Nghĩa phải phát triển phần cứng phầnmềm đồng thời nhằm xác định giải pháp tối ưu cho hệ thống nhúng Mục đích luận văn sâu nghiên cứu phương pháp, cách thức nhằm phântích,thiếtkế tốt phầnmềmnhúng hệ thống nhúng - thời gian thực Bên cạnh mục đích trên, có mục tiêu quan trọng thiết thực nghiên cứu cách tiếp cận nhận dạng chữ Nôm để xây dựng ứng dụng cho toán thiết bị nhúng Về lĩnh vực nhận dạng, nhận dạng chữ toán hữu ích việc số hóa liệu dạng văn giấy ảnh Với chữ Latin toán nghiên cứu phát triển từ lâu có nhiều phầnmềm nhận dạng ký tự Latin với độ xác cao Gần số ngôn ngữ tượng chữ Trung Quốc hay chữ Nhật Bản giải nhiều phương pháp nhận dạng khác như: láng giềng gần [9], mạng nơ-ron [29] Ở Việt Nam, vấn đề nhận dạng chữ Quốc ngữ nhiều tổ chức thực hiện, ví dụ VnDOCR [5] cho phép quét, đọc ảnh văn với nhiều định dạng khác kết nhận dạng văn có kiểu phông tùy chọn Tuy nhiên với toán nhận dạng chữ Nôm, toán nhận dạng có ý nghĩa việc khôi phục gìn giữ di sản văn hóa dân tộc, chưa có nhiều nghiên cứu với kết khả quan Một số tổ chức nghiên cứu xây dựng số phầnmềm liên quan đến số hóa chữ Nôm như: phông chữ Nôm Viện Hán Nôm, phầnmềm Từ điển Hán Nôm PDA Trung tâm công nghệ thông tin Thừa Thiên Huế [5], phầnmềm đánh văn chữ Hán Nôm của tác giả Trần Uyên Thi Alexandre Lê, phầnmềm từ điển Trực tuyến Việt-Hán-Nôm biên soạn dựa Tự điển Hán -Việt Thiều Chửu nhóm tác giả Phan Anh Dũng Nguyễn Thế thực [4] Đây tảng cần Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúngthiết khích lệ nghiên cứu toán nhận dạng chữ Nôm để ứng dụng vào nguồn văn tồn nhiều thư viện, công trình văn hoá, đời sống hàng ngày xây dựng tiện ích nhận dạng chữ Nôm thiết bị nhúng để đáp ứng nhu cầu nhân dân Luận văn chia thành chương phụ lục Trong đó: Chƣơng 1: trình bày hệ thống nhúng thời gian thực tổng quan thiếtkế hệ thống Chƣơng 2: trình bày phầnmềmnhúng phương pháp thiếtkế Chƣơng 3: trình bày hệ điều hành thời gian thực (RTOS) dịch vụ Chƣơng 4: trình bày cách tiếp cận với toán nhận dạng chữ Nôm kết thực nghiệm phương pháp Chƣơng 5: trình bày phân tích chương trình nhận dạng chữ Nôm dựa Tesseract cho thiết bị nhúng thực nghiệm hệ điều hành thời gian thực µC/OS Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Phântích,Thiếtkếphầnmềmnhúng CHƢƠNG 1: TỔNG QUAN VỀ THIẾTKẾ HỆ THỐNG NHÚNG 1.1 Hệ nhúng khái niệm 1.1.1 Hệ thống nhúng Trong giới thực thiết bị hay hệ thống điện/điện tử có khả xử lý thông tin điều khiển tiềm ẩn thiết bị hay hệ nhúng, ví dụ thiết bị truyền thông, thiết bị đo lường điều khiển, thiết bị phục vụ sinh hoạt hàng ngày lò vi sóng, máy giặt, camera…Rất dễ dàng để kể hàng loạt thiết bị hay hệ thống tồn quanh ta, chúng hệ nhúng Vậy hệ nhúng thực chất nên hiểu hệ nhúng? Hiện chưa có định nghĩa thực thoả đáng để chuẩn hoá thừa nhận rộng rãi cho hệ nhúng mà khái niệm diễn tả chúng thông qua đặc thù chung [25] Tuy nhiên hiểu hệ nhúngphần hệ thống xử lý thông tin tích hợp hệ thống lớn, phức hợp độc lập ví dụ ôtô, thiết bị đo lường, điều khiển, truyền thông thiết bị thông minh nói chung Chúng tổ hợp phần cứng phầnmềm để thực một nhóm chức chuyên biệt, cụ thể (Trái ngược với máy tính PC mà thường thấy sử dụng cho chức mà nhiều chức hay phục vụ chung cho nhiều mục đích) Chúng ta kể nhiều ứng dụng hệ thống nhúng sử dụng nay, xu tiếp tục tăng nhanh Một số lĩnh vực hệ thống nhúng nhóm sau: Các thiết bị điều khiển Ôtô, tàu điện Truyền thông Thiết bị y tế Hệ thống đo lường thẩm định Toà nhà thông minh Thiết bị dây truyền sản xuất Rôbốt … 1.1.2 Hệ thống nhúng thời gian thực Hệ thống thời gian thực hệ thống mà tính đắn toàn hệ thống phụ thuộc vào tính đắn chức tính đắn thời gian Tính đắn thời gian hiểu yêu cầu hệ thống phải đảm bảo thoả mãn tính tiền Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 10 Phântích,Thiếtkếphầnmềmnhúng định hoạt động hệ thống Tính tiền định nói lên hành vi hệ thống thực khung thời gian cho trước hoàn toàn xác định Khung thời gian định đặc điểm yêu cầu hệ thống, vài giây vài nano giây nhỏ Ở phân biệt yếu tố thời gian gắn liền với khái niệm thời gian thực Không phải hệ thống thực nhanh đảm bảo tính thời gian thực nhanh hay chậm hoàn toàn phép so sánh có tính tương đối mili giây nhanh với hệ thống điều khiển nhiệt lại chậm đối tượng điều khiển điện dòng, áp… Hơn nhanh không chưa đủ mà phải đảm bảo trì ổn định chế hoạt động tin cậy Chính hệ thống không kiểm soát hoạt động hệ thống đảm bảo tính thời gian thực hệ thống cho đáp ứng nhanh, chí nhanh nhiều so với yêu cầu đặt Một ví dụ minh hoạ tiêu biểu chế truyền thông liệu qua đường truyền chuẩn Ethernet truyền thống, biết tốc độ truyền nhanh hệ hoạt động thời gian thực không thoả mãn tính tiền định chế truyền liệu (có thể nhanh chậm có canh trạnh giao thông đường truyền bị nghẽn) Người ta phân làm hai loại khái niệm thời gian thực cứng (hard real-time) mềm (soft real-time) Thời gian thực cứng hệ thống hoạt động với yêu cầu thoả mãn ràng buộc khung thời gian cứng tức vi phạm dẫn đến hoạt động toàn hệ thống bị sai bị phá huỷ Ví dụ hoạt động điều khiển cho lò phản ứng hạt nhân, chậm định dẫn đến thảm hoạ gây phản ứng phân hạch dẫn đến bùng nổ hệ thống Thời gian thực mềm hệ thống hoạt động với yêu cầu thoả mãn ràng buộc khung thời gian mềm, vi phạm sai lệch nằm khoảng cho phép hệ thống hoạt động chấp nhận Ví dụ hệ thống phát truyền hình, thông tin truyền từ trạm phát tới người nghe/nhìn chậm vài giây không ảnh hưởng đáng kể đến tính thời tin truyền hoàn toàn chấp nhận người theo dõi Thực tế thấy hầu hết hệ nhúng hệ thời gian thực hầu hết hệ thời gian thực hệ nhúng Điều phản ánh mối quan hệ mật thiết hệ nhúng thời gian thực tính thời gian thực trở thành thuộc tính tiêu biểu hệ nhúng Vì đề cập tới hệ nhúng người ta nói tới đặc tính tính thời gian thực Hình 1.1 Quan hệ hệ nhúng thời gian thực Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 11 Phântích,Thiếtkếphầnmềmnhúng 1.2 Giới thiệu chung thiếtkế hệ thống nhúng Các kỹ sư xây dựng hệ thống nhúng phải đối mặt với nhiều khó khăn trình thiếtkế hệ thống Từ việc xác định phân bổ phần cứng phầnmềm việc tính toán để thiếtkế đạt mục tiêu hiệu chi phí Việc xây dựng hệ thống nhúng ngày trở lên phức tạp yêu cầu ngày cao Họ phải xây dựng hệ thống ngày thông minh hơn, có nhiều chức lại phải gói gọn không gian nhỏ hơn, tiêu thụ điện hơn, thời gian sản xuất nhanh chi phí cho hệ thống giảm Có lẽ liên quan đến kết hợp hai nguyên tắc phức tạp sáng tạo: kỹ nghệ phầnmềmthiếtkế logic Vấn đề thường liên quan đến xây dựng mà người chưa xây dựng hay đơn giản có nhiều lựa chọn như: sử dụng vi xử lý cho phù hợp, cách xếp bus, triển khai ngôn ngữ lập trình nào, có sử dụng hệ điều hành hay không, môi trường phát triển …làm cho người phát triển nhiều lúc không Không giống với việc thiếtkế ứng dụng phầnmềm máy tính, việc thiếtkế hệ thống nhúng phải thực thiếtkếphần cứng phầnmềm cách song song Mặc dù lúc thực tế cho thấy cách thức tiếp cận việc thiếtkế hệ thống nhúng cách hiệu ảnh hưởng sâu sắc đến việc xây dựng hệ thống Quy trình thiếtkế hệ thống nhúng bao gồm bước sau: Xác định yêu cầu sản phẩm Phân bổ phần cứng phầnmềm Thực lặp lại Thiếtkếphần cứng/phần mềmnhúng Tích hợp phần cứng/phần mềm Kiểm tra Bảo trì nâng cấp Hình 1.2 Quy trình thiếtkế co-design Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 12 Phântích,Thiếtkếphầnmềmnhúng 1.2.1 Xác định yêu cầu sản phẩm Chúng ta cần phải xác định: Hệ thống làm gì? Những thành phần vào bao gồm gì? Giao diện hệ thống Trong hệ thống nhúng việc xác định yêu cầu quan trọng Nó giúp tránh vấn đề sau lượng RAM thiếtkế cho hệ thống nhúng không đủ cho hoạt động hay xử lý chọn có tốc độ chậm cho công việc…Sau yêu cầu sản phẩm xác định công việc xác định liệu sử dụng vi xử lý có phải lựa chọn tốt không Những câu hỏi sau hữu ích xác định xem sử dụng vi xử lý có hợp lý không: Đầu vào đầu xử lý cập nhật tốc độ nào? Mặc dù xung đồng hồ tăng lên có giới hạn thực tế với tốc độ vi xử lý đọc từ đầu vào cập nhật đầu thực công việc Nếu hệ thống phải thực việc xử lý quan trọng, xử lý đệm, tính toán khác tỉ lệ cập nhật giảm xuống Liệu có mạch tích hợp đơn (IC) thiết bị logic khả trình (PLD) thực công việc không? có sử dụng vi xử lý không cần thiết Hệ thống có nhiều đầu vào ra, công tắc hay hình hiển thị không? có vi xử lý giải công việc thuận lợi Những giao tiếp hệ thống bên ngoài? Nếu hệ thống phải nói chuyện với hệ thống khác dùng giao thức điều khiển liên kết liệu đồng (SDLC) vài giao thức truyền thông phức tạp khác sử dụng vi xử lý lựa chọn đắn Hệ thống có phải tính toán xử lý nhiều việc không? Ví dụ hệ thống đánh lửa (khởi động) điện tử đại có nhiều đầu vào (các cảm ứng không khí, động rpm …) với liên quan phức tạp có vài lựa chọn thay sử dụng vi xử lý Liệu thiếtkế có sửa đổi hoàn thành thay đổi trình thiếtkế không? Có cần phải tuỳ biến sản phẩm cho phiên đặc biệt không? yêu cầu ảnh hưởng đến việc có lựa chọn vi xử lý hay không Thật may công việc người thiếtkế trở lên dễ dàng chi phí vi xử lý giảm tốc độ hiệu tăng lên 1.2.2 Lựa chọn vi xử lý Giả sử định sử dụng vi xử lý cho hệ thống nhúng vấn đề lựa chọn vi xử lý cho phù hợp với hệ thống cần xây dựng Thực tế cho thấy có nhiều lựa chọn xử lý cho hệ thống nhúng có Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 13 Phântích,Thiếtkếphầnmềmnhúng vài xử lý đạt yêu cầu đặt Sự lựa chọn bao gồm việc cân yếu tố chi phí chức Một số vấn đề cần phải xem xét lựa chọn: Số lượng chân vào yêu cầu Những giao tiếp yêu cầu Yêu cầu nhớ Xem xét vấn đề thời gian thực Môi truờng phát triển Tốc độ xử lý yêu cầu Khả ROM Kiến trúc nhớ 1.2.2 Phân bổ phần cứng phầnmềmThiếtkế hệ nhúng liên quan đến hai vấn đề thiếtkế thành phầnphần cứng thành phầnphần mềm, người thiếtkế phải xác định xem vấn đề giải phần cứng vấn đề giải phầnmềm Sự lựa chọn gọi phân bổ định Những nhà phát triển ứng dụng thường phát triển với phần cứng xác định trước có khó khăn việc điều chỉnh phần cứng để nâng cao hiệu xử lý vấn đề Tuy nhiên họ gặp phải vấn đề lựa chọn cân nhắc phần cứng phầnmềm Ví dụ, ngày đầu PC (trước giới thiệu xử lý 80486), xử lý 8086, 80286 80386 đơn vị xử lý dấu phảy động chip Những xử lý yêu cầu thiết bị kèm, đơn vị xử lý dấu phảy động 8087, 80287 80387 (FPUs) để chạy trực tiếp thị dấu phảy động chương trình Nếu PC FPU, mã chương trình phải chặn thị dấu phảy động lại thực ngoại lệ hàm bẫy lỗi thực vấn đề xử lý dấu phảy động phầnmềm Tuy nhiên điều chậm nhiều so với có đơn vị xử lý dấu phảy động bảng mạch chí mã chương trình thực thi Một ví dụ khác phân bổ phần cứng phần mềm, ta mua thiết bị modem cho PC cắm vào khe ISA máy tính có mạch thực điều chế giải điều chế Nếu tiền ta mua win modem để cắm vào khe PCI sử dụng vi xử lý để trực tiếp xử lý chức modem Việc thiếtkế kết hợp thành phầnphần cứng phầnmềm giải pháp thiếtkếnhúng hiệu Chúng ta thực việc thiếtkế chức dựa phầnmềm (ví dụ CPU đơn vị FPU trên), dựa phần cứng dựa phần cứng phầnmềm Để làm rõ vấn đề phân chia phần cứng phầnmềm xét tiếp ví dụ thiếtkế máy in laser Hình 1.3 mô tả thiếtkế cho máy in laser Với giúp đỡ từ nhà thiếtkế máy in laser hình dung công việc thực Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 14 Phântích,Thiếtkếphầnmềmnhúng máy in laser (phần mềm) Bộ vi xử lý nắm bắt luồng liệu đến thông qua cổng song song, cổng RS-232C, cổng USB, cổng Ethernet vào đệm Hình 1.3 Thiếtkế máy in laser Cùng thời điểm, xử lý quản lý cổng liệu chuyển liệu đến thành luồng điều chế (stream of modulation) tín hiệu điều khiển cho ống phóng laser, gương xoay, trống xoay, phận quản lý giấy Chúng ta thấy điều làm cho xử lý phải làm nhiều việc giới hạn hiệu hệ thống Chúng ta tìm cách nâng cao hiệu hệ thống cách thêm nhiều xử lý phân chia nhiệm vụ đồng thời chúng Điều làm cho tốc độ xử lý tăng lên, chi phí tăng lên, nhiều thông tin để in Khi phân tích giải pháp thiếtkế thấy công việc mà ảnh hưởng đến hiệu hệ thống có cận giới hạn định mô tả đầy đủ Những công việc xử lý phương pháp thiếtkế cách dễ dàng thực theo giải pháp dựa phần cứng Ví dụ thiếtkế máy in laser này, sử dụng khối phần cứng cho việc ghi điểm laser bề mặt trống máy in Điều giải phóng cho xử lý để thực công việc khác yêu cầu khởi tạo phục vụ phần cứng có lỗi xảy Những yêu cầu cho phần cứng chặt chẽ nhiều so với phầnmềm phức tạp hơn, chi phí cho sửa lỗi phần cứng nhiều so với sửa lỗi phầnmềm Nếu phần cứng IC chuyên ứng dụng tùy biến (Custom - ASIC) cần phải xem xét nhiều tính phức tạp việc thiếtkế IC tùy biến Nếu cách tiết cận dường rủi ro cho dự án, đội thiếtkế chuyển sang giải pháp phầnmềm đội thiếtkế đưa định cần phải sử dụng xử lý hơn, mạnh để nâng cao hiệu Tuy nhiên điều liên quan đến vấn đề chi phí, công cụ mới, bố cục mạch mới, đường liệu rộng hơn, tính phức tạp cao Hai triết lý thiếtkế khác áp dụng thành công cho thiếtkế máy in laser công ty sản xuất máy in ngày Một bên thiếtkế khả điều chỉnh hiệu xử lý để tối thiểu hoá dùng thiết bị phần cứng chuyên biệt Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 15 Phântích,Thiếtkếphầnmềmnhúng Ngược lại bên sử dụng thiết bị phần cứng chuyên biệt để giảm gánh nặng cho xử lý Cả hai có sản phẩm cạnh tranh thực hai chiến lược thiếtkế khác cho phân chia thành phần cứng mềm Quyết định phân chia vấn đề tối ưu phức tạp Nhiều thiếtkế hệ thống nhúng yêu cầu: Nhạy cảm giá Người đầu giải pháp Không theo chuẩn Cạnh tranh thị trường Bản quyền Những yêu cầu dường mẫu thuẫn lẫn làm cho khó tạo thiếtkế tối ưu cho sản phẩm nhúng Giải pháp phân bổ phụ thuộc vào xử lý sử dụng thiết kế, cách thực thiếtkế tổng thể kinh nghiệm người thiếtkế 1.2.3 Thực lặp lại Phần thực lặp lại qui trình thể vùng phân chia mờ thực phân bổ phần cứng/phần mềm (được thể hình 1.2) Trong bước phầnthiếtkếphầnmềmphần cứng tách thực đồng thời Giai đoạn thể công việc thiếtkế trước đội phần cứng phầnmềm thực công việc cụ thể lĩnh vực Mặc dù vấn đề phân bổ thành phầnphần cứng phần mềm, nhiên vấn đề dịch chuyển ranh giới ràng buộc thiếtkế mô hình hoá hiểu rõ Trong giai đoạn đòi hỏi người thiếtkế thực nhiều lựa chọn liên quan đến công cụ, môi trường… Nhà thiếtkếphần cứng sử dụng công cụ mô để hỗ trợ cho trình thiếtkế mô kiến trúc Nhà thiếtkếphầnmềm chạy đoạn mã chuẩn bo mạch đơn độc lập sử dụng vi xử lý đích Những bo mạch thường liên quan đến mạch đánh giá chúng dùng để đánh giá hiệu vi xử lý chạy đoạn mã kiểm tra Những mạch đánh giá cung cấp môi trường gỡ lỗi thiếtkếphầnmềm thuận tiện hoàn thành xong phần cứng hệ thống 1.2.4 Thiếtkế chi tiết phần cứng phầnmềm Bước sâu vào thực thiếtkế chi tiết phần cứng phầnmềm sau có đặc tả phân chia thành phầnphần cứng, phầnmềm Ở giai đoạn cần có công cụ đặc biệt để hỗ trợ trình thiếtkế mô hình cách trực quan Ví dụ để thiếtkế chi tiết phần cứng cần có công cụ để mô tả phần cứng VHDL hay Verilog Đối với phầnmềm có nhiều công cụ hỗ trợ gia đoạn như: Timed CSP, Z, UML-Realtime…(sẽ trình bày chi tiết chương 2) Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 16 Phântích,Thiếtkếphầnmềmnhúng TÀI LIỆU THAM KHẢO Tiếng Việt [1] PGS TS Nguyễn Ngọc Bình, “Một số ý kiến phát triến, ứng dụng công nghệ thông tin Việt Nam”, Hội thảo Quốc gia Hội nhập Quốc tế Khoa học Công nghệ, 2005 [2] PGS TS Phạm Thượng Cát, “Hệ thống nhúng phát triển công nghệ thông tin”, Tạp chí Tin học điều khiển, 2005 [3] Phan Anh Dũng, Dương Văn Việt, Hoàng Thị Ngọc Dung – Trung tâm Công nghệ thông tin Thừa Thiên Huế, “Đưa Chữ Hán-Nôm Vào Thiế t Bi ̣ Cầ m Tay ”, Hội nghị chữ Nôm, 2006 [4] Phan Anh Dũng, Nguyễn Thế, “Từ điển Trực tuyến Việt-Hán-Nôm”, 2006 [5] Phòng nhận dạng xử lý ảnh Viện công nghệ thông tin , “Phầ n mề m nhận dạng chữ Viê ̣t in”, 1997-1998 Tiếng Anh [6] Arbib, Michael A (Ed.), “The Handbook of Brain Theory and Neural Networks”, MIT Press, 1995 [7] Arnold Berger, “Embedded Systems Design: An Introduction to Processes, Tool and Techniques ”, CMP Books, 2002 [8] Bentley, J L, “Multidimensional binary search tree used for associative searching”, Commun, ACM, 1975, pp 509–517 [9] Belur V Dasarathy, “Nearest Neighbor (NN) Norms: NN Pattern Classification Techniques”, IEEE Computer Society Press, 1991 [10] Bruce Powel Douglass, “Advances in the UML for Real-time System, Third Edition”, Addition Wesley, 2004 [11] Cheng-Lin Liu, Hiromichi Fujisawa, “Classification and Learning for Character Recognition: Comparasion of Methods and Remaining Problems”, NNLDAR Workshop, 2007 [12] Daniel Admassu, “Unicode Optical Character Recognition”, 2005 [13] David E Simon, “An Embedded Software Primer”, Addison Wesley, 1999 [14] Ivan Porres Paltor, Johan Lilius, “A Case Study on Designing Embedded Systems using UML notation”, TUCS Technial Report, 1999 [15] Jack Ganssle, “The Art of Designing Embedded Systems”, Newnes, 1999 [16] Jack Ganssel, Michael Barr, “Embedded Systems (World Class Designs)” Newnes, 2007 [17] Jean Labrosses, “Micro C OS II: The Real Kernel”, Newnes, 2002 Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 17 Phântích,Thiếtkếphầnmềmnhúng [18] Jiamei Cai, Tieming Chen, and Liying Zhu, “A Structure Modelling Method for Multi-task Embedded Software Design”, Zhejiang University of Technology, ICESS 2004 [19] Luciano Lavagno, Grant Martin and Bran Selic, “UML for real design of Embedded Real-Time Systems”, Kluwer Academic, 2004 [20] Michael Barr, “Programming Embedded Systems in C and C++”, O’Reilly, 1999 [21] Micrium Inc, “µC/OS-II Reference Manual”, Newnes, 2002 [22] Mingrui Wu, Bo Zhang, Ling Zhang, “A Neural Network Based Classifier for Handwritten Chinese Character Recognition”, ICPR'00 - Volume 2, 2000 [23] Object Management Group, “UML Profile for Schedulability, Performance, and Time”, OMG document ptc/02-03-02, Needham MA, 2002 [24] Olli S, Jaakko, “A Embedded Systems, Lecture Notes”, Helsinki University of Tech, 2006 [25] Peter Marweden, “Embedded Systems Design”, Springer, 2006 [26] Qing Li and Carolyn Yao, “Real-time Concepts for Embedded Systems”, CMP Books, 2003 [27] Ray Smith, “An Overview of the Tesseract OCR Engine”, OSCON, 2007 [28] Ray Smith, “A Simple and Efficient Skew Detection Algorithm via Text Row Accumulation”, Proc of the 3rd Int, Conf on Document Analysis and Recognition (Vol 2), IEEE 1995, pp 1145-1148 [29] Richard Romero, Robert Berger, Robert Thibadeau, David Touretzky, “Neural Network Classifiers for Optical Chinese Character Recognition”, In Proceedings of the Fourth Annual Symposium on Document Analysis and Information Retrieval, 1995 [30] Sacha Barber, “An introduction into Neural Networks”, 2003, pp 277-280 [31] Sargur N Srihari, Xuanshen Yang, Gregory R Ball, “Offline Chinese handwriting recognition: an assessment of current technology”, 2007 [32] Stephen V Rice, Frank R Jenkins, Thomas A Nartker, “The Fourth Annual Test of OCR Accuracy, Technical Report 95-03”, Information Science Research Institute, University of Nevada, Las Vegas, July 1995 [33] Stuart R.Ball, “Embedded Microprocessor Systems”, Newnes, 2002 Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 Trần Minh Tuấn 18 Phântích,Thiếtkếphầnmềmnhúng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội [...]... Việc thiếtkế là kết hợp giữa các thành phầnphần cứng và phầnmềm để cho ra một giải pháp thiếtkếnhúng hiệu quả nhất Chúng ta có thể thực hiện việc thiếtkế một chức năng nào đó dựa trên phầnmềm (ví dụ CPU không có đơn vị FPU ở trên), dựa trên phần cứng hoặc dựa trên cả phần cứng và phầnmềm Để làm rõ hơn về vấn đề phân chia giữa phần cứng và phầnmềm chúng ta sẽ xét tiếp một ví dụ về thiếtkế máy... lỗi và thiết kếphầnmềm thuận tiện cho đến khi hoàn thành xong phần cứng của hệ thống 1.2.4 Thiếtkế chi tiết phần cứng và phầnmềm Bước này đi sâu vào thực hiện thiếtkế chi tiết phần cứng và phầnmềm sau khi đã có những đặc tả và phân chia các thành phầnphần cứng, phầnmềm Ở giai đoạn này cần có những công cụ đặc biệt để hỗ trợ quá trình thiếtkế và mô hình một cách trực quan Ví dụ để thiếtkế chi... Phân bổ phần cứng phầnmềm Thực hiện và lặp lại Thiếtkếphần cứng /phần mềmnhúng Tích hợp phần cứng /phần mềm Kiểm tra Bảo trì và nâng cấp Hình 1.2 Quy trình thiếtkế co-design Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 12 Phântích, Thiết kếphầnmềm nhúng 1.2.1 Xác định yêu cầu sản phẩm Chúng ta cần phải xác định: Hệ thống làm gì? Những thành phần. .. ra một thiếtkế tối ưu cho sản phẩm nhúng Giải pháp phân bổ phụ thuộc vào bộ xử lý nào sử dụng trong thiết kế, cách thực hiện thiếtkế tổng thể và kinh nghiệm của người thiếtkế 1.2.3 Thực hiện và lặp lại Phần thực hiện và lặp lại của qui trình này thể hiện một vùng phân chia mờ giữa thực hiện và phân bổ phần cứng /phần mềm (được thể hiện ở hình 1.2) Trong bước này phần thiếtkếphầnmềm và phần cứng... trúc bộ nhớ 1.2.2 Phân bổ giữa phần cứng và phầnmềmThiếtkế hệ nhúng sẽ liên quan đến cả hai vấn đề là thiếtkế các thành phầnphần cứng và các thành phầnphần mềm, người thiếtkế phải xác định xem vấn đề nào được giải quyết trong phần cứng và vấn đề nào thì giải quyết ở phầnmềm Sự lựa chọn này được gọi là phân bổ quyết định Những nhà phát triển ứng dụng thường phát triển với phần cứng được xác...Luận văn Thạc sĩ 2008 11 Phântích,Thiếtkếphầnmềmnhúng 1.2 Giới thiệu chung về thiếtkế hệ thống nhúng Các kỹ sư xây dựng hệ thống nhúng luôn phải đối mặt với nhiều khó khăn trong quá trình thiếtkế hệ thống Từ việc xác định phân bổ giữa phần cứng và phầnmềm cho đến việc tính toán để thiếtkế đạt những mục tiêu về hiệu năng và chi phí Việc xây dựng hệ thống nhúng ngày càng trở lên phức tạp... đâu Không giống với việc thiếtkế các ứng dụng phầnmềm trên máy tính, việc thiếtkế một hệ thống nhúng phải thực hiện thiếtkế cả phần cứng và phầnmềm một cách song song Mặc dù không phải lúc nào cũng vậy nhưng thực tế cho thấy đây là cách thức tiếp cận việc thiếtkế hệ thống nhúng một cách hiệu quả và ảnh hưởng sâu sắc đến việc xây dựng hệ thống Quy trình thiếtkế hệ thống nhúng bao gồm các bước sau:... triết lý thiếtkế khác nhau này đã được áp dụng thành công cho thiếtkế máy in laser trong các công ty sản xuất máy in ngày nay Một bên thì thiếtkế khả năng điều chỉnh hiệu năng của bộ xử lý để tối thiểu hoá dùng các thiết bị phần cứng chuyên biệt Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 15 Phântích,Thiếtkếphầnmềmnhúng Ngược lại thì bên kia sử dụng các thiết. .. thể hiện những công việc thiếtkế đầu tiên trước khi đội phần cứng và phầnmềm thực hiện công việc cụ thể của lĩnh vực mình Mặc dù các vấn đề chính đã được phân bổ giữa các thành phầnphần cứng và phần mềm, tuy nhiên vẫn còn những vấn đề có thể dịch chuyển giữa ranh giới này khi các ràng buộc thiếtkế được mô hình hoá và hiểu rõ hơn Trong giai đoạn này đòi hỏi người thiếtkế thực hiện nhiều sự lựa... tiếp một ví dụ về thiếtkế máy in laser Hình 1.3 mô tả một thiếtkế cho máy in laser Với sự giúp đỡ từ những nhà thiếtkế máy in laser chúng ta có thể hình dung ra những công việc có thể thực hiện trong Trần Minh Tuấn Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2008 14 Phântích, Thiết kếphầnmềm nhúng máy in laser (phần mềm) Bộ vi xử lý nắm bắt luồng dữ liệu đến thông qua cổng song