Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
1,92 MB
Nội dung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Thành phố Hồ Chí Minh ******** Báo cáo đề tài nhập môn công nghệ phần mềm Tên đề tài: Giới thiệu hệ thống nhúng, hệ điều hành nhúng, Linux nhúng Sinh viên thực hiện: NGUYỄN THÀNH TRUNG MSSV: N102104179 Lớp: Đ10CQCN03N Giáo viên: VÕ XUÂN THỂ Mục lục Mục lục Mở đầu Phần I : Hệ thống nhúng I/ Các khái niệm: II/ Các đặc điểm hệ thống nhúng: III/ Những điểm khác biệt hệ thống nhúng PC: IV/Hệ thống nhúng lai Phần II : Hệ điều hành Linux nhúng 15 I/ Hệ điều hành nhúng: II/ Hệ điều hành Linux nhúng Phần III : Xây dựng hệ thống nhúng 32 I/ Toolchain II/ Xây dựng hệ thống nhúng có hệ điều hành III/ Xây dựng hệ thống nhúng không hệ điều hành IV/ Mô hình lập trình hệ thống nhúng Phần IV: Phương pháp học tập hệ thống nhúng 37 I/ Kiến thức cần có II/Phương pháp: III/ Gioi thiệu Arduino Các tài liệu tham khảo 43 Mở đầu Trong phát triển mạnh mẽ khoa học kĩ thuật với kinh tế trí thức xu hướng hội nhập toàn cầu nay, giới Việt nam thực việc kết hợp ngành thuộc lĩnh vực công nghệ cao Khoa sở đào tạo Đó lĩnh vực khoa học cờ: Máy tính, Điện tửViễn thông Điều khiển tự động mà ta thường gọi “3 C” (Computer – Communication - Control) Có thể nói, trình sản xuất quản lí như: hệ thống đo lường điều khiển tự động sản xuất công nghiệp; hệ thống di động không dây tiên tiến, hệ thống thông tin vệ tinh, hệ thống thông tin dựa Web, phủ điện tử, thương mại điện tử, sở liệu nhiều ngành kinh tế Quốc gia, hệ thống thiết bị Y tế đại, thiết bị điện tử dân dụng, sản phẩm kết hợp lĩnh vực khoa học trên.Bài báo giới thiệu việc ứng dụng hệ thống nhúng phát triển lĩnh vực công nghệ cao”3C” Bài viết theo phát biểu PGS.TSKH Phạm Thượng Cát- Viện Công nghệ Thông tin Hiện thời đại hậu PC sau giai đoạn phát triển máy tính lớn (Mainframe) 1960-1980, phát triển PC-Internet giai đoạn 19802000 Giai đoạn hậu PC-Internet dự đoán từ năm 2000 đến 2020 giai đoạn môi trường thông minh mà hệ thống nhúng cốt lõi làm nên sóng đổi công nghệ thông tin nói riêng lĩnh vực công nghệ cao “3C”, nói chung Một thực tế khách quan thị trường hệ thống nhúng lớn gấp khoảng 100 lần thị trường PC, nhìn thấy bề công nghệ thông tin PC Internet phần chìm công nghệ thông tin chiếm 99% số processor toàn cầu nằm hệ nhúng biết đến Sức đẩy công nghệ đưa công nghệ vi điện tử, công nghệ vi điện, công nghệ sinh học hội tụ tạo nên chip công nghệ nano, tảng cho thay đổi lĩnh vực công nghệ cao “3C, sức kéo thị trường đòi hỏi thiết bị phải có nhiều chức thân thiện với người dùng, có mức độ thông minh ngày cải thiện đưa đến vai trò tầm quan trọng hệ thống nhúng ngày cao kinh tế quốc dân Phát triển hệ nhúng phần mềm nhúng (hệ điều hành nhúng, phần mềm ứng dụng nhúng) quốc sách nhiều quốc gia giới, giai đoạn hậu PC Ở nước ta đáng tiếc lĩnh vực lâu bị lãng quên, cần có điều chỉnh phù hợp chiến lược phát triển để theo kịp, rút ngắn khoảng cách tụt hậu nước khu vực giới trình hội nhập kinh tế toàn cầu tránh khỏi Phần I: HỆ THỐNG NHÚNG I/ Các khái niệm: Hệ thống gì? Hệ thống tập hợp phần tử tương tác tổ chức môi trường nhằm thực mục đích xác định Vi dụ: Trong tự nhiên dễ dàng bắt gặp hình ảnh hệ thống: thể người hệ thống gồm nhiều phần tử cấu tạo thành như: hệ cơ, hệ tuần hoàn, hệ hô hấp,… hệ (phần tử thể) phối hợp với tổ chức cụ thể nhằm mục đích tạo người trì sống cho người Một xe hệ thống với phần tử: bánh xe, khung xe, động cơ,… chúng tổ chức lại với để thực mục đích tạo máy dy chuyển vận chuyển Nhúng gì? Nhúng từ dùng để việc đưa thứ, phần nhỏ vào thứ, phần lớn cách dễ dàng thuận tiện nhất, giúp cho phần lớn có thêm giá trị hay hoàn thiện Ví dụ: nhúng lát bánh mì nhỏ vào ly sữa , có ăn ngon 3.Hệ thống nhúng gì? Hệ thống nhúng (Embedded system) thuật ngữ để hệ thống xử lý thông tin, hệ tính toán có khả hoạt động độc lập nhúng vào môi trường hay hệ thống lớn hơn, tạo thành phần hệ thống lớn thực số chức hệ thống Chúng tổ hợp phần cứng phần mềm để thực một nhóm chức chuyên biệt, cụ thể nhiều lĩnh vực công nghiệp, 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 hoá cao Chúng ta hiểu hệ thống nhúng máy tính có chức xác định hay chức nhúng vào hệ thống hay thiết bị khác Ở cách hiểu vấn đề “được nhúng vào” “chức xác định hay chức năng” đặc điểm hàng đầu, cách hiểu bám sát với khái niệm (1) Chúng ta hiểu hệ thống nhúng hệ thống mà bên có hệ thống tính toán (một máy tính) thực chức riêng biệt hệ thống mà hệ thống khác Ở cách hiểu này, hệ thống nhúng dường tất thiết bị, hệ thống có thành phần cấu tạo mà thành phần có khả xử lý tính toán, hay nói cách khác có câu tạo bao gồm máy tính những thứ khác Như vậy, khía cạnh này, vấn đề có “một máy tính bên trong” đặc điểm hàng đầu (2) Còn hiểu hệ thống nhúng hệ thống/thiết bị tính toán chuyên biệt theo tính xây dựng thành hệ thống/thiết bị lớn (3) (2) (3) gần với cách hiểu nhiều người chấp nhận phù hợp cho giới thiết bị ngày Theo (2) (3) nói hệ thống nhúng tất thiết bị có khả tính toán thiết kế khác với máy tính đa chức PC Trong tài liệu này, thiên cách hiểu (2) (3) cách hiểu (1) quan trọng Để dễ hình dung theo cách hiểu (1), ta xem ví dụ sau đây: xe trung bình có khoảng 70-80 chip vi xử lý (micro controller unit), vi xử lý đảm nhiệm nhiệm vụ, chẳng hạn đóng mở cửa, điều khiển đèn tín hiệu, đo nhiệt độ trong/ngoài xe, hiển thị giao diện người dùng (dashboard), điều khiển thắng (nếu dùng hệ thống thắng điện)… Mỗi ô tô trung bình có khoảng 70-80 chíp nhúng Mỗi phận hệ thống nhúng, tất thiết kế tích hợp vào hệ thống chung lớn hơn, xe Một ví dụ khác gần gũi với sống ngày, điện thoại di động Các chức điều khiển hình hiển thị, máy nghe nhạc radio, cảm ứng chụp hình, kết nối với máy tính thiết bị ngoại vi, cao cấp kết nối với hệ thống định vị toàn cầu (GPS), tất hệ thống nhúng tích hợp chung vào điện thoại Và hệ thống thường thực chuyên biệt chức chúng, thực chức khác Như giải thích điện thoại di động hệ thống hoàn chỉnh tạo nhiều hệ thống nhúng thành phần, điện thoại di đông nhìn tổng thể không kể cấu tạo không hệ thống nhúng xét hệ thống thông tin liên lạc GSM lại hệ thống nhúng mang chức chuyên biệt, hệ thống giúp nguoi sử dụng gửi/nhận thông tin Hiểu theo cách (1) hệ thống nhúng hạn chế ta biết hệ thống lớn mà nhúng vào Nếu hệ thống lớn mà nhúng vào dù có chức chuyên biệt không hệ thống nhúng Hiểu theo cách (2) (3) điện thoại đông hiển nhiên hệ thống nhúng có máy tính bên thiết kế máy tính đa chức (giống PC) Với cách hệ thống nhúng lại vô đa dạng TV, máy ảnh KTS, máy giặt, máy chơi game,.v.v.v Vậy, điện thoại thông sao? Câu trả lời: điện thoại thông hệ thống nhúng lai với máy tính đa chức năng, bạn chấp nhận cách hiểu (2) (3) chấp nhận cách hiểu (1) ta phải xem xét có nhúng vào hệ thống lớn không để định, không tìm hệ thống lớn mà nhúng vào với việc có chức phong phú điện thoại thông minh máy tính đa chức Vấn đề phân tích rõ phần sau Còn bây giờ, chấp nhận điện thoại thông “hệ thống nhúng lai” nói lúc đầu thiên cách hiểu (2) (3) Sở dĩ có nhiều cách hiểu có nhiều thiết bị có khả tính toán, mà thiết bị lại thường có chức phong phú Theo ý kiến chủ quan khái niệm hệ thống nhúng xây dựng để phân biệt với hệ thống máy tính đa chức (hay gọi hệ thống máy tính mục đích chung) PC Tôi nghĩ tương lai máy tính mục đích chung mà điển hình PC dần vị trung tâm việc tính toán thông tin khái niệm hệ thống nhúng (theo cách hiểu (2) (3) ) thay phân biệt vật/thiết bị thông (có khả tính toán, xử lý thông tin , kết nối) vật/thiết bị không thông (không có khả tính toán, xử lý thông tin, kết nối) Còn hiểu theo cách (1) rõ ràng luôn tồn hệ thống nhúng Cách hiểu (2) (3) thiên đặc điểm, chức thiết bị (nhìn mức thiết bị), tính cụ thể mô tả Nghĩa tất thiết bị có chức gọi hệ thống nhúng Cách hiểu (1) thiên cấu, phân lớp hệ thống (nhìn mức hệ thống), tính tổng thể Nghĩa hệ thống có cấu tạo nhiều thành phần thành phần hoàn chỉnh nhỏ thành phần nhúng, phân tích hệ thống (thiết bị) ta ý cấu tạo vị trí hệ thống tổng thể Một lần nữa, tài liệu này, thiên cách hiểu (2) (3) Hình ảnh hệ thống nhúng thông thường: Do tính chất chuyên biệt hệ thống nhúng chúng thường sản xuất với số lượng lớn nên nhà sản xuất thường yêu cầu phải tối ưu hóa chúng nhằm giảm thiểu kích thước chi phí sản xuất Hệ thống nhúng thời gian thực: Trong toán điều khiển ứng dụng hay gặp thuật ngữ “thời gian thực” Thời gian thực có phải thời gian phản ánh độ trung thực thời gian hay không? Thời gian thực có phải hiển thị xác đồng theo nhịp đồng hồ đếm thời gian hay không? Không phải hoàn toàn vậy! Thực chất, theo cách hiểu nói hệ thống kỹ thuật đặc biệt hệ thống yêu cầu khắt khe ràng buộc thời gian, thời gian thực hiểu yêu cầu hệ thống phải đảm bảo thoả mãn tính tiền định hoạt động hệ thống Tính tiền định nói lên hành vi hệ thống phải 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 xác Chính hệ thống không kiểm soát hoạt động (bất định) 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 Các hệ thống trả kết mà phải nhanh đáp ứng yêu cầu tốc độ hệ thống Trong hệ thống thời gian thực, tốc độ quan trọng không độ xác 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ệ thống 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 II/ Đặc điểm hệ thống nhúng: Các hệ thống nhúng thường có phần lớn đặc điểm sau đây: • Một hệ thống nhúng bao gồm hệ thống phần cứng chuyên biệt hệ thống phần mềm điều khiển chuyên biệt cho phần cứng (tính đóng gói cao) Mức hòa hợp phần cứng phần mềm hệ thống nhúng cao để thực cách tốt chức riêng biệt nó.Do đó, khác biệt hệ thống nhúng máy tính đa chức • Một hệ thống gọi hệ thống nhúng thực chức riêng biệt thường phải nhúng vào hệ thống lớn (cách hiểu (1) ), hay xây dựng thành hệ thống,thiết bị lớn (cách hiểu (2) (3) ) • Một hệ thống nhúng thưc chức định trước, chức trình sử dụng người dùng hay khó thay đổi • Các hệ thống nhúng nối với môi trường vật lý qua cảm biến để thu thập thông tin từ môi trường qua điều khiển/tác động để điều khiển môi trường,hay trả lại kết tính toán cho người dùng • Các hệ thống nhúng phải tin cậy “Tin cậy được” bao gồm độ tin cậy, tính bảo trì, tính khả dụng, an toàn bảo mật 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 Ngoà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 ngừng để sửa chữa cách an toà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 toàn, ví dụ thiết bị dẫn đường máy bay, thiết bị kiểm soát độ an toà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 … • Các hệ thống nhúng phải có hiệu cao: Hiệu hệ thống nhúng đánh giá theo độ đo sau: Năng lượng: Nhiều hệ thống nhúng hệ thống di động dùng lượng pin Công nghệ pin tiến với tốc độ chậm Nhưng yêu cầu tính toán lại tăng với tốc độ cao, đặc biệt ứng dụng multimedia, khách hàng muốn có pin chạy lâu hết Do đó, lượng điện phải sử dụng cách có hiệu Kích thước mã: Toàn mã chương trình chạy hệ nhúng phải lưu hệ thống Thông thường, đĩa cứng để lưu chương trình Việc bổ sung mã ngoại lệ giới hạn trường hợp điện thoại Java, điện thoại thông minh, set-top box (thiết bị giải mã tín hiệu truyền hình) Do tất hạn chế khác, điều có nghĩa kích thước mã nên nhỏ tốt Điều đặc biệt cho systems on a chip - hệ thống mà tất mạch xử lý thông tin chứa chip Nếu nhớ lệnh cần tích hợp vào chip này, nên dùng cách hiệu Hiệu chạy: Chỉ nên dùng lượng tài nguyên tối thiểu để thực chức yêu cầu Ta cần thỏa mãn ràng buộc thời gian với lượng tối thiểu tài nguyên phần cứng lượng Để giảm mức tiêu thụ lượng, tần số đồng hồ hiệu điện nên nhỏ hết mức Ngoài ra, hệ thống nên có thành phần phần cứng thiết yếu Có thể bỏ thành phần không cải thiện thời gian chạy trường hợp xấu (chẳng hạn nhiều cache hay đơn vị quản lý nhớ) Trọng lượng: Tất hệ thống xách tay phải có trọng lượng thấp Nhẹ cân thường điều quan trọng cân nhắc mua hệ thống Giá: Đối với hệ thống nhúng thông dụng, đặc biệt đồ điện gia dụng, sức cạnh tranh thị trường vấn đề quan trọng, cần sử dụng hiệu thành phần phần cứng chi phí phát triển phần mềm • Chức chuyên biệt hoá: Các vi xử lý hệ nhúng thường sử dụng để đảm nhiệm thực một nhóm chức độc lập đặc thù cho phần chức hệ thống lớn mà nhúng vào Ví dụ, vi xử lý chạy phần mềm điều khiển ô tô tầu hỏa chạy phần mềm đó, không định chạy trò chơi điện tử hay chương trình bảng tính vi xử lý Có hai lý chính: Chạy thêm chương trình khác làm giảm độ tin cậy hệ thống Việc chạy thêm chương trình khác khả thi tài nguyên nhớ rỗi Ở hệ thống hiệu quả, tài nguyên trạng thái không sử dụng Khả làm tăng thêm chuyên biệt hoá chức hệ thống lớn dễ dàng cho trính xây dựng, vận hành bảo trì Đặc điểm đặc điểm quan trọng hệ thống nhúng • Hầu hết hệ thống nhúng không dùng bàn phím, chuột hay để giao tiếp với người dùng Thay vào đó, chúng có giao tiếp dành riêng cho người dùng nút nhấn, bàn đạp,… • Khả thời gian thực: Các hệ thống gắn liền với việc đảm nhiệm chức phải thực theo khung thời gian qui định Thông thường chức hệ thống phải thực hoàn thành theo yêu cầu thời gian định trước để đảm bảo thông tin cập nhật kịp thời cho phần xử lý chức khác ảnh hưởng trực tiếp tới hoạt động xác toàn hệ thống Tuỳ thuộc vào toán yêu cầu hệ thống mà yêu cầu khả thời gian thực khác • Nhiều hệ thống nhúng hệ thống hỗn hợp (hybrid systems) theo nghĩa gồm hai phần analog số 10 • Các hệ thống nhúng hệ thống có phản ứng lại (reactive systems) Chúng định nghĩa sau: hệ thống có phản ứng lại hệ thống mà có tương tác liên tục với môi trường thực thi với tốc độ xác định môi trường [Bergé et al., 1995] III/ Những điểm khác biệt hệ thống nhúng máy tính đa chức (PC): • Một hệ thống máy tính đa chức hệ thống có chức đa dạng dễ dàng thay đổi dựa ứng dụng chạy nó, chức PC không định trước Trong khí chức hệ thống nhúng không đổi định trước • Khi phát triển hệ thống nhúng nhà phát triển thường biết rõ chức phát triển PC nhà phát triển rõ • Phần lớn hệ thống nhúng hệ thống thời gian thực, PC hệ thống thời gian thực • Hệ thống nhúng thiết kế phát triển để thực tối ưu hay vài chức chuyên biệt,nhất đị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 • PC máy tính đa chức năng, chức PC vào thời điểm tùy vào phần mềm ứng dụng chạy • Hệ thống nhúng sử dụng phát triển nhiều loại kiến trúc vi xử lý khác :ARM, AVR, PIC, x86,MIPS, PowerPC… PC sử dụng phát triển vài kiến trúc vi xử lý phổ biến kiến trúc x86 • Các vi xử lý thiết kế cho hệ thống nhúng có chức chuyên biệt cho loại hệ thống cụ thể Vi dụ: vi xử lý dùng máy ảnh kỹ thuật số chuyên biệt cho việc nhận xử lý ảnh từ cảm biến nó,… • Kiến trúc cấu trúc PC thay đổi theo thời gian đa dạng, kiến trúc cấu trúc hệ thống nhúng đa dạng thay đổi tùy thuộc vào loại hệ thống cụ thể • Hệ thống nhúng thường yêu cầu, vận hành số lượng giới hạn tài nguyên RAM, ROM hay thiết bị IO, chúng yêu cầu đủ để thực chức không giống PC thường có yêu cầu gần không giới hạn tài nguyên 30 Để giải vấn đề đó, tháng năm 2009, tổ chức OESF (Open Embedded Software Foundation) đời quy tụ nhiều công ty hàng đầu giới (ARM, MIPS, Fujitsu, NTT Data,…) phát triển hệ thống nhúng, phần mềm nhúng, thiết bị cho hệ thống nhúng Một nhiệm vụ OESF phát triển phổ biến tảng chuẩn dựa Android phục vụ cho việc phát triển hệ thống nhúng Dự án có tên gọi Embedded Master (EM) Hiện nay, OESF có gần 90 công ty thành viên từ quốc gia hàng đầu công nghệ thông tin Nhật, Hàn Quốc, Đài Loan, Mỹ, Canada, Ấn Độ Đáng ý, Việt Nam (thành phố Hồ Chí Minh) OESF chọn đặt Trung tâm Nghiên cứu Phát triển từ tháng năm 2010 Với đặc tính miễn phí, mã nguồn mở cung cấp sẵn tính quan trọng hỗ trợ cho nhiều loại hệ thống nhúng, OESF kỳ vọng EM trở thành tảng nhúng chuẩn tương lai cho công nghiệp nhúng Cấu trúc EM Có thể hiểu đơn giản EM Android tích hợp thêm tính mở rộng, hỗ trợ cho việc triển khai hệ thống nhúng Cấu trúc EM dựa tảng cấu trúc chuẩn Android, gồm HĐH, middleware ứng dụng Các mở rộng thiết kế tầng middleware ứng dụng nhằm mục đích cung cấp cho lập trình viên khả phát triển ứng dụng dễ dàng nhanh chóng Các mở rộng EM Phiên EM1 dùng cho kiến trúc ARM, phát hành vào ngày 8/3/2010 bao gồm mở rộng sau: • • • • • • 31 Hỗ trợ truyền hình HD Hỗ trợ điện thoại IP (IP Phone) Hỗ trợ điều khiển từ xa (Remote Control) Bluetooth Giao tiếp chuẩn DLNA cho thiết bị gia dụng Hỗ trợ hình hình điện thoại (UI) LWA OPB LWA OPB hai thành phần làm nên đặc trưng EM giúp đơn giản hóa việc phát triển sản phẩm nhúng, tăng hiệu sản phẩm Bằng việc loại bỏ thành phần không cần thiết, LWA thích hợp cho hệ thống nhỏ Trong OPB giúp cho lập trình viên thiết lập nhanh môi trường phát triển OPB thiết kế plug-in Eclipse Cách vận hành sau: • Lập trình viên chọn mẫu sản phẩm nhúng mục tiêu từ mẫu xây dựng sẵn Ví dụ STB, IP… • Căn vào lựa chọn đó, OPB định thành phần, mở rộng phù hợp thêm vào dự án phát triển • Nếu cần thiết, lập trình viên thay đổi thành phần, mở rộng theo nhu cầu 32 Phần III: XÂY DỰNG HỆ THỐNG NHÚNG I/ Tool-chain: Toolchain ? Là tập công cụ dùng để xây dựng ứng dụng tạo cho thiết bị nhúng Toolchain trình biên dịch mà sinh code thực thi cho hệ thống khác với hệ thống thực compile Vidu: biên dịch image ARM máy tính cá nhân xài hệ điều hành Linux Điều gọi cross-compiling compile gọi cross-compiler Thông thường máy PC làm chức Host cài đặt Cross Compiler, chương trình Embedded Linux(Target) compile từ Host kết compile load vào target để thực thi Cross Compiler dung lượng tương đối lớn, thời gian, nhớ dung để compile chương trình đòi hỏi phải thực môi trường thích hợp Các hệ thống Embedded thường giới hạn mặt dung lương nhớ khả xử lý Lấy Toolchain đâu ? Biên dịch ? Toolchain gốc tất thứ hệ thống nhúng, loại chip có nhiều toolchain khác ứng cho nhiều hệ thống khác Vidu sau: hệ thống nhúng xây dựng từ loại chip Arm dùng cho máy tính bảng thuộc loại hệ thống trung bình, tức ứng với môi trường ứng dụng chạy trung bình, này, toolchain config để thực hệ thống không cần phải quan trọng dung lượng nhớ, ngược lại với hệ thống nhỏ chíp Arm chạy điện thoại di động , Toolchain phải config cho ứng dụng sinh có dung lượng nhỏ tiêu tốn tài nguyên, ra, toolchain thay đổi để phù hợp với broad, device phần cứng máy Hiện nay, thông dụng muốn xây dựng hệ thống nhúng người ta xây dựng lại toolchain cho thích hợp với hệ thống nhất,nhưng dĩ nhiên việc nằm khả newbie , có số hãng cung cấp toolchain sẵn cho chúng ta, việc nằm tầm “chấp nhận được” bạn không “quá pro”, công ty Sourcery hãng vậy, cung cấp hầu hết toolchain cho đủ loại chip host builder linux hay windows,bao gồm hệ thống nhỏ uclib hay hệ thống trung bình gnu 33 II/ Xây dựng hệ thống nhúng có hệ điều hành: Các bước xây dựng phần cứng: 1> Lựa chọn kiến trúc CPU: - Có nhiều kiến trúc CPU support Linux OS ví dụ : ALPHA, ARM, SH, MIP, POWER PC Tuy nhiên, tập trung kiến trúc ARM nằm khuôn khổ forum 2> Lựa chọn CPU vendor: - Sau lựa chọn cấu trúc CPU, ta lựa chọn sản phẩm CPU từ nhà sản xuất chíp Hiện giới có nhiều hãng khác nhau, bao gồm : TI, SAMSUNG, Marvell, Freescale, NXP, ATMEL Theo nên khởi đầu với sản phẩm hãng có cộng đồng phát triển mã nguồn mở mạnh, có khả cấp tài liệu miễn phí (bao gồm cho cá nhân thay dành riêng cho công ty, doanh nghiệp) Việc lựa chọn có ảnh hưởng đến khả thành công dự án 3> CPU support hệ điều hành nào: - Sau lựa chọn CPU vendor, có danh sách CPU dòng sản phẩm Điều ta cần xác định rõ CPU hỗ trợ hệ điều hành nào, có phù hợp với hệ điều hành mà cần phát triển hay không Ví dụ cho hệ điều hành Linux: CPU cần có MMU (Memory Management Unit) hỗ trợ bus nhớ Ngoài cần xem xét đến tốc độ CPU, ngoại vi cần phải có hệ thống Và cuối giá thành CPU nào, có sẵn thị trường hay không 4> Tìm hiểu đặc tả, chế boot CPU: - Công việc kỹ sư thiết kế hardware không loại trừ việc đọc datasheet tìm hiểu tài liệu đặc tả cho CPU này: + Cấu hình chân CPU (package type): Cái quan trọng trường hợp VN Năng lực sản xuất PCB nước có hạn, việc lựa chọn cấu hình chân CPU trở nên khó khăn eo hẹp + Cơ chế boot CPU: Trước tiên xâu dựng dự án, chế boot CPU phần quan trọng mà cần phải xem xét đến Thông thường đặt tả từ nhà sản xuất đề cập đến vấn đề Khi có đầy đủ thông tin chế này, người thiết kế phần cứng có định lựa chọn linh kiện phù hợp cho kiểu boot Ví dụ : NAND Flash, NOR FLash, SPI Dataflash, I2C EEPROM, MMC 5> Xây dựng sơ đồ nguyên lý cho hệ thống: - Để có schematic hoàn chỉnh cho hệ thống, cần tập hợp thông tin từ CPU vendor nhiều tốt, bao gồm tài liệu schematic check list, CPU user manual, design application note 6> Thiết kế PCB: - Công đoạn thiết PCB tốn nhiều công sức, layout cần ý đến đường bus giao tiếp nhớ ngoài, tụ trở mạch lọc cho PLL, tụ lọc nguồn cho CPU 34 Các bước xây dựng phần mềm: Tương tự phần cứng, việc xây dựng phần mềm chia nhiều công đoạn: 1> Cài đặt boot loader: Thông thường hãng sản xuất chíp cung cấp cho mã nguồn, công cụ để xây dựng boot loader Đa số CPU sản xuất với ROM on chip cài sẵn chương trình boot Tuy nhiên, thông thường chương trình ko đủ khả boot Linux OS, người thiết kế hệ thống cần phải kết hợp chương trình với thiết bị lưu trữ (được nêu trên) để thực chương trình boot có tính mạnh Tùy vào loại CPU khác mà ta phải trải qua hay tầng boot loader để khởi động Linux OS Ví dụ MPU AT91SAM9 ATMEL có tầng bootloader : ROM boot -> AT91BootStrap > u-boot 2> Cài đặt Linux OS (porting): Thành phần nồng cốt Linux OS kernel, chất mã lệnh chương trình thực thi CPU Tuy nhiên, kernel giữ vai trò quản lý tiến trình hoạt động hệ thống Kernel Linux xây dựng code C số ASM cho loại kiến trúc CPU cụ thể Source code kernel quản lý tổ chức phát triển mã nguồn mở Linux, download miễn phí www.kernel.org Tuy nhiên, ta xây dựng phần cứng không hẳn chạy Linux OS, can phải đảm bảo mối tương quan phần cứng kernel Thông thường CPU vendor xây dựng phần cứng chuẩn gọi evaluation kit Họ chỉnh sửa source kernel (startup code, driver ) để board vận hành Linux OS Thao tác theo thuật ngữ người ta gọi porting Kết việc porting tạo vá (patch) 3> Phát triển driver : Source kernel Linux bao gồm tập hợp driver viết sẵn chuẩn hóa thành tài liệu Tuy nhiên, người phát triển tự viết driver cho riên để phù hợp với nhu cầu dự án Linux kernel hỗ trợ cho việc phát triển driver theo dạng: built-in module 4> Xây dựng root file system (rootfs): Khung sườn hệ điều hành Linux rootfs Đây tập hợp chương trình ứng dụng, tiện ích hệ điều hành Chúng ta xây dựng rootfs từ nhiều nguồn khác nhau: OpenEmbedded (Angstrom), LTIB, Buildroot, Debian 5> Phát triển phần mềm ứng dụng: Linux OS cung cấp cho tập hợp thư viện phong phú cho nhiều lĩnh vực khác nhau: mạng, đồ họa, image processing, telecom Người phát triển phần mềm dùng thư viện viet chương trình theo mong muốn 35 III/ Xây dựng hệ thống nhúng không hệ điều hành: Các bước xây dựng phần cứng: Các hệ thống nhúng không dùng hệ điều hành thường hệ thống đơn giản cần hay vài vi điều khiển (MCU) để xử lý chức hệ thống 1/ Chọn MCU phù hợp với nhu cầu: Trên thị trường có nhiều loại MCU khác nhau, loại có đặc tính tính riêng nhà sản xuất xây dựng sẵn phù hợp với loại hệ thống nhúng khác Chúng ta phải dựa vào nhu cầu hệ thống để lựa chon MCU cho phù hợp nhằm tránh lãng phí đạt hiệu cao Các thông số MCU thường quan tâm là: xung nhịp, nhớ Ram, Rom, Flash, số chân ra/vào, số chân xuất PWM, số timer,… 2/ Chọn họ MCU: Sau xác định thông số MCU cần thiết lựa chọn họ MCU hãng sản xuất MCU phù hợp với hệ thống dễ dàng phát triển với chúng ta, nên lựa chọn họ MCU mà ta lập trình thành thạo để tránh gây lãng phí thời gian để tìm hiểu Các nhà sản xuất MCU lớn là: Atmel với họ MCU tiếng như: ATMEGA, ATTINY, 89C52,…;MicroChip với họ PIC,… 3/ Xây dựng sơ đồ nguyên lý cho hệ thống: Để có schematic hoàn chỉnh cho hệ thống, cần tập hợp thông tin từ CPU vendor nhiều tốt, bao gồm tài liệu schematic check list, CPU user manual, design application note 4/ Thiết kế PCB: Công đoạn thiết PCB tốn nhiều công sức, layout cần ý đến đường bus giao tiếp nhớ ngoài, tụ trở mạch lọc cho PLL, tụ lọc nguồn cho CPU 2.Các bước xây dựng phần mềm: Ở bước tùy thuộc vào họ MCU cụ thể mà ta sử công cụ lập trình (Toolchain) phù hợp cho loại 36 IV/ Mô hình lập trình cho hệ thống nhúng: Host: hệ thống chứa môi trường phát triển Target: hệ nhúng cần phát triển ứng dụng • Khi lập trình cho hệ thống nhúng ta thường sử dụng môi trường phát triển chuyên biệt dành riêng cho loại hệ thống nhúng Ta sẻ sử dụng hệ thống host để chứa môi trường phát triển (thường PC) cho Target, hệ thống nhúng cần phát triển ứng dụng ta kết nối host target giao thức, chuẩn giao tiếp mà hai hỗ trợ thường USB, serial,… • Người lập trình thao tác hệ thống host phát triển ứng dụng sau nạp ứng dụng xuống cho hệ thông nhúng phát triến (Target) • Đối với loại hệ thống nhúng có môi trường phát triển riêng, công cụ Toolchain riêng Vi dụ: ta sử dụng công cụ AVRStudio để phát triển ứng dụng cho vi điều khiển AVR ATMEL,khi hệ thống ta dùng loại vi điều khiển AVR Nếu hệ thống dùng vi điều khiển PIC MicroChip ta phải dùng công cụ basicPic để phát triển ứng dụng cho nó, dùng AVRStudio để phát triến cho PIC • Thông thường môi trường phát triển phần mềm công cụ IDE, chạy hệ điều hành PC quen thuộc như: Windows, Linux, Mac OS,…sau viết ứng dụng ngôn ngữ lập trình C, basic, assembly,… ta dùng trình biên dịch có sẵn IDE để dịch mã hex (cross-compile) vi điều khiển tương ứng dùng mạch nạp để nạp cho vi điều khiển (nếu ta lập trình cho vi điều khiển) với số hệ thống nhúng có cung cấp sẵn cổng giao tiếp ta nối trực tiếp chúng với PC thực nạp mà không cần thông qua mạch nạp 37 (Có demo với Arduino LV2) 38 Phần IV: PHƯƠNG PHÁP HỌC TẬP HỆ THỐNG NHÚNG I/ Các kiến thức cần có: • • • • • • • • Kiến thức loại linh kiện điện tử thông dụng Kiến thức điện tử số Kiến thức kiến trúc cấu trúc máy tính Kiến thức nguyên lý hệ điều hành Kiến thức Linux, dòng lênh Linux Kiến thức mạng máy tính, lập trình mạng Kỹ lập trình, đặc biệt với ngôn ngữ C Kiến thức chuẩn giao tiếp thông dụng như: USB, COM, Bluetooth, Wifi, RF,… II/ Phương pháp: Phương pháp hữu hiệu học tập hệ thống nhúng thực hành nhiều tốt, cần có board, kít thí nghiệm thực tế để dễ dàng nắm bắt cách chạy thật hệ thống nhúng Khi bắt đầu, làm quen với việc lập trình cho MCU, sau dần phát triển qua hệ thống dùng hệ điều hành nhúng Luôn cập nhật thông tin dòng vi xử lý MCU để dễ dàng định hướng đường phát triển Arduino board phù hợp cho việc bắt đầu học lập trình nhúng, tính đơn giản việc lập trình triển khai mạch thực tế Khi bắt đầu với hệ điều hành nhúng dùng board friendlyARM mini2440, hay đơn giản dùng Raspberry Pi để làm quen với việc phát triển phần mềm Linux, hệ điều hành nhúng III/ Giới thiệu Arduino: Arduino sử dụng rộng rãi giới, ngày chứng tỏ sức mạnh chúng thông qua vô số ứng dụng độc đáo người dùng cộng đồng nguồn mở (open-source) Tuy nhiên Việt Nam Arduino chưa biết đến nhiều Bài viết cố gắng nhầm giới thiệu số thông tin Arduino với hy vọng cung cấp cho người dùng DIY thêm lựa chọn đầy tiềm để thực dự án 39 Hiện tượng Arduino Arduino thực gây sóng gió thị trường người dùng DIY (là người tự chế sản phẩm mình) toàn giới vài năm gần đây, gần giống với Apple làm thị trường thiết bị di động Số lượng người dùng cực lớn đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học làm cho người tạo chúng phải ngạc nhiên mức độ phổ biến Những thành viên khởi xướng Arduino Arduino mà khiến sinh viên nhà nghiên cứu trường đại học danh tiếng MIT, Stanford, Carnegie Mellon phải sử dụng; Google muốn hỗ trợ cho đời kit Arduino Mega ADK dùng để phát triển ứng dụng Android tương tác với cảm biến thiết bị khác? Arduino thật bo mạch vi xử lý dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Đặc điểm bật Arduino môi trường phát triển ứng dụng dễ sử dụng, với ngôn ngữ lập trình học cách nhanh chóng với người am hiểu điện tử lập trình Và điều làm nên tượng Arduino mức giá thấp tính chất nguồn mở từ 40 phần cứng tới phần mềm Chỉ với khoảng $30, người dùng sở hữu bo Arduino có 20 ngõ I/O tương tác điều khiển chừng thiết bị Arduino đời thị trấn Ivrea thuộc nước Ý đặt theo tên vị vua vào kỷ thứ King Arduin Arduino thức đưa giới thiệu vào năm 2005 công cụ khiêm tốn dành cho sinh viên giáo sư Massimo Banzi, người phát triển Arduino, trường Interaction Design Instistute Ivrea (IDII) Mặc dù không tiếp thị cả, tin tức Arduino lan truyền với tốc độ chóng mặt nhờ lời truyền miệng tốt đẹp người dùng Hiện Arduino tiếng tới nỗi có người tìm đến thị trấn Ivrea để tham quan nơi sản sinh Arduino Các ứng dụng bật bo mạch Arduino Arduino chọn làm não xử lý nhiều thiết bị từ đơn giản đến phức tạp Trong số có vài ứng dụng thực chứng tỏ khả vượt trội Arduino chúng có khả thực nhiều nhiệm vụ phức tạp Sau danh sách số ứng dụng bật Arduino Máy in 3D Một cách mạng khác âm thầm định hình nhờ vào Arduino, phát triển máy in 3D nguồn mở Reprap Máy in 3D công cụ giúp tạo vật thể thực trực tiếp từ file CAD 3D Công nghệ hứa hẹn nhiều ứng dụng thú vị có cách mạng hóa việc sản xuất cá nhân Máy in 3D Makerbot điều khiển Arduino Mega2560 http://www.makerbot.com/ 41 Robot Do kích thước nhỏ gọn khả xử lý mạnh mẽ, Arduino chọn làm xử lý trung tâm nhiều loại robot, đặc biệt robot di động Robot di động tránh vật cản dùng Arduino nano camera CMUCam http://letsmakerobots.com/node/2057 Khả bo mạch Arduino Bo mạch Arduino sử dụng dòng vi xử lý 8-bit megaAVR Atmel với hai chip phổ biến ATmega328 ATmega2560 Các dòng vi xử lý cho phép lập trình ứng dụng điều khiển phức tạp trang bị cấu hình mạnh với loại nhớ ROM, RAM Flash, ngõ vào digital I/O có nhiều ngõ có khả xuất tín hiệu PWM, ngõ đọc tín hiệu analog chuẩn giao tiếp đa dạng UART, SPI, TWI (I2C) Sức mạnh xử lý • • • • Xung nhịp: 16MHz EEPROM: 1KB (ATmega328) 4KB (ATmega2560) SRAM: 2KB (Atmega328) 8KB (Atmega2560) Flash: 32KB (Atmega328) 256KB (Atmega2560) Đọc tín hiệu cảm biến ngõ vào: Digital: Các bo mạch Arduino có cổng digital cấu hình làm ngõ vào ngõ phần mềm Do người dùng linh hoạt định số lượng ngõ vào ngõ Tổng số lượng cổng digital mạch dùng Atmega328 14, Atmega2560 54 42 Analog: Các bo mạch Arduino có trang bị ngõ vào analog với độ phân giải 10-bit (1024 phân mức, ví dụ với điện áp chuẩn 5V độ phân giải khoảng 0.5mV) Số lượng cổng vào analog Atmega328, 16 Atmega2560 Với tính đọc analog, người dùng đọc nhiều loại cảm biến nhiệt độ, áp suất, độ ẩm, ánh sáng, gyro, accelerometer… Xuất tín hiệu điều khiển ngõ ra: Digital output: Tương tự cổng vào digital, người dùng cấu hình phần mềm để định dùng ngõ digital ngõ ra.Tổng số lượng cổng digital mạch dùng Atmega328 14, Atmega2560 54 PWM output: Trong số cổng digital, người dùng chọn số cổng dùng để xuất tín hiệu điều chế xung PWM Độ phân giải tín hiệu PWM 8-bit Số lượng cổng PWM bo dùng Atmega328 6, bo dùng Atmega2560 14.PWM có nhiều ứng dụng viễn thông, xử lý âm điều khiển động mà phổ biến động servos máy bay mô hình Chuẩn Giao tiếp Serial:Đây chuẩn giao tiếp nối tiếp dùng phổ biến bo mạch Arduino Mỗi bo có trang bị số cổng Serial cứng (việc giao tiếp phần cứng chip thực hiện) Bên cạnh đó, tất cổng digital lại thực giao tiếp nối tiếp phần mềm (có thư viện chuẩn, người dùng không cần phải viết code) Mức tín hiệu cổng TTL 5V Lưu ý cổng nối tiếp RS-232 thiết bị PC có mức tín hiệu UART 12V Để giao tiếp hai mức tín hiệu, cần phải có chuyển mức, ví dụ chip MAX232 Số lượng cổng Serial cứng Atmega328 Atmega2560 Với tính giao tiếp nối tiếp, bo Arduino giao tiếp với nhiều thiết bị PC, touchscreen, game console… USB:Các bo Arduino tiêu chuẩn có trang bị cổng USB để thực kết nối với máy tính dùng cho việc tải chương trình Tuy nhiên chip AVR cổng USB, bo Ardunino phải trang bị thêm phần chuyển đổi từ USB thành tín hiệu UART Do máy tính nhận diện cổng USB cổng COM cổng USB tiêu chuẩn SPI: Đây chuẩn giao tiếp nối tiếp đồng có bus gồm có dây Với tính bo Arduino kết nối với thiết bị LCD, điều khiển video game, điều khiển cảm biến loại, đọc thẻ nhớ SD MMC… TWI (I2C) Đây chuẩn giao tiếp đồng khác bus có hai dây Với tính này, bo Arduino giao tiếp với số loại cảm biến thermostat CPU, tốc độ quạt, số hình OLED/LCD, đọc real-time clock, chỉnh âm lượng cho số loại loa… 43 Môi trường lập trình bo mạch Arduino Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính thông dụng mang lại nhiều lợi cho Arduino, nhiên sức mạnh thực Arduino nằm phần mềm Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu dựa tảng C/C++ quen thuộc với người làm kỹ thuật Và quan trọng số lượng thư viện code viết sẵn chia sẻ cộng đồng nguồn mở lớn Giao diện IDE Arduino Môi trường lập trình Arduino IDE chạy ba tảng phổ biến Windows, Macintosh OSX Linux Do có tính chất nguồn mở nên môi trường lập trình hoàn toàn miễn phí mở rộng thêm người dùng có kinh nghiệm Ngôn ngữ lập trình mở rộng thông qua thư viện C++ Và ngôn ngữ lập trình dựa tảng ngôn ngữ C AVR nên người dùng hoàn toàn nhúng thêm code viết AVR C vào chương trình muốn Các loại bo mạch Arduino Về mặt chức năng, bo mạch Arduino chia thành hai loại: loại bo mạch có chip Atmega loại mở rộng thêm chức cho bo mạch (thường gọi shield) Các bo mạch giống chức năng, nhiên mặt cấu số lượng I/O, dung lượng nhớ, hay kích thước có khác Một số bo có trang bị thêm tính kết nối Ethernet Bluetooth Các bo mở rộng chủ yếu mở rộng thêm số tính cho bo mạch ví dụ tính kết nối Ethernet, Wireless, điều khiển động v.v… 44 Tài liệu tham khảo: http://4tech.com.vn/forums/showthread.php/2140-H%E1%BB%87-th%E1%BB%91ng-nh %C3%BAng-th%E1%BB%9Di-gian-th%E1%BB%B1c http://diendan.congdongcviet.com/showthread.php?t=46689 http://vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_nh%C3%BAng http://mycomputer.vn/index.php/tin-tuc/tin-nuoc-ngoai/786-nen-tang-tuong-lai-he-thongnhung http://arm.vn/default.aspx?tabid=766&g=posts&t=74 http://www.ieev.org/2011/01/gioi-thieu-he-thong-nhung.html http://electronicctu.net/Thread-Gioi-thieu-ve-he-thong-nhung.html http://embeddedgurus.com/barr-code/2011/01/is-an-iphone-an-embedded-system/ https://sites.google.com/a/duytan.edu.vn/nguyenvantho/Home/he-thong-nhung http://spkt.net/diendan/showthread.php?75997-T%C3%ACm-hi%E1%BB%83u-h %E1%BB%87-th%E1%BB%91ng-nh%C3%BAng-l%E1%BA%ADp-tr%C3%ACnh-nh %C3%BAng&s=fb51fa017d56baa35e6e1766b2b85e5c http://spkt.net/diendan/showthread.php?75997-T%C3%ACm-hi%E1%BB%83u-h %E1%BB%87-th%E1%BB%91ng-nh%C3%BAng-l%E1%BA%ADp-tr%C3%ACnh-nh %C3%BAng&s=fb51fa017d56baa35e6e1766b2b85e5c http://arduino.cc/en/ http://arduino.cc/en/Tutorial/LiquidCrystal http://sotatec.com.vn/nhom-gioi-thieu-sotatec-94.html Embedded Software Know It All Embedded Linux System Design and Development Hệ thống điều khiển nhúng TS Lưu Hồng Việt ĐH Bách khoa Hà Nội Hệ nhúng GV: Phạm Văn Thuận Viện CNTT&TT- ĐH BKHN Và số tài liệu khác thư mục tài liệu tham khảo [...]... làm hệ thống nhúng hoàn chỉnh cho một hệ thống lớn hơn Vidu: Robot cho iOS Romo dùng điện thoại thông mình iPhone để làm hệ thống điều khiển phần thân của robot và xử lý các thuật toán về AI,… 15 Phần II: HỆ ĐIỀU HÀNH LINUX NHÚNG I/ Hệ điều hành: Vì sao chúng ta cần một hệ điều hành cho các hệ thống nhúng? Để phát triển một hệ thống nhúng chúng ta cần phải hiểu rất rõ về phần cứng của từng loại hệ thống. .. có hệ điều hành Nhiệm vụ chính khi phát triển hệ điều hành uClinux là cấu hình nhân hệ điều hành cho phù hợp với hệ thống cần phát triển , biên dịch nhân , phát triển các driver cho các ngoại vi và sau đó phát triển các ứng dụng cho hệ thống nhúng chạy trên môi trường hệ điều hành 23 2.1.2 Kiến trúc của hệ điều hành uClinux: uClinux là một hệ điều hành dùng phổ biến cho các hệ thống nhúng Linux Hệ. .. môi trường hệ điều hành Linux Do là một hệ điều hành mã nguồn mở nên các nhà phát triển có thể cấu hình hệ điều hành theo ý mình để tạo ra một hệ điều hành phù hợp với hệ thống cần phát triển 2.1.1 Lịch sử phát triển: Dự án hệ điều hành uClinux được bắt đầu phát triển từ năm 1997 , mục đích tạo ra hệ điều hành này là phát triển một phiên bản nhân hệ điều hành Linux 2.0 để nhúng vào các vi điều khiển... chứa thư điện tử 22 2.Một số hệ điều hành Linux nhúng phổ biến: 2.1 Hệ điều hành nhúng uClinux: Hệ điều hành uClinux là một phiên bản hệ điều hành sử dụng nhân Linux được thiết kế cho các hệ thống nhúng sử dụng bộ vi điều khiển không có đơn vị quản lý bộ nhớ Là một phiên bản hệ điều hành sử dụng nhân Linux nên uClinux có kiến trúc , cách thức hoạt động giống như hệ điều hành Linux chạy trên các PC... Torvalds và vật lấy phước chú chim cánh cụt 1.2 Các thành phần của hệ điều hành linux nhúng: 1.2.1 Kiến trúc nhân hệ điều hành Linux: Nhân được ví như trái tim của hệ điều hành Về bản chất nhân cũng là một chương trình phần mềm máy tính nhưng ở cấp độ hệ thống có vai trò điều khiển các thành phần của hệ thống máy tính , quản lý tài nguyên của hệ thống , cung cấp một số dịch vụ và phần mềm cơ bản cho... 1998 Trong hệ điều hành uClinux có một số thay đổi so với hệ điều hành Linux , thư viện uC-libc được thiết kế để thay cho thư viện libc và glibc trong hệ điều hành Linux Một cải tiến khác đã được thực hiện bởi SnapGear là thêm một định dạng mới Binary Flat – bFLT Hệ điều hành uClinux là một hệ điều hành đa nhiệm , các chương trình có thể chạy ở nhiều mức khác nhau của hệ thống Hệ điều hành cho phép... chuyên biệt mà hệ thống của ta yêu cầu, và nhúng nó vào một hệ thống lớn hơn Lúc này, điện thoại thông mình với ứng dụng đó trở thành một hệ thống nhúng thật sự Những khía cạnh nêu trên là hoàn toàn phù hợp với định nghĩa: “Một hệ thống nhúng là hệ thống tính toán được nhúng vào một hệ thống lơn hơn và thực hiện một phần chức năng của hệ thống lớn đó” (hiểu theo cách hiểu (1)) Hình ảnh minh họa về việc dùng... việc nhúng hệ điều hành uClinux vào các vi điều khiển đã giúp cho các nhà phát triển tạo ra các ứng dụng dễ dàng vì phương pháp lập trình giống như trên môi trường hệ điều hành Linux Hệ điều hành uClinux là một hệ điều hành thời gian thực , nhà phát triển có thể chạy các ứng dụng đa luồng trên môi trường hệ điều hành Điều này là rất khó khi phát triển một ứng dụng đa luồng chạy trực tiếp trên vi điều. .. loại 36 IV/ Mô hình lập trình cho hệ thống nhúng: Host: hệ thống chứa môi trường phát triển Target: hệ nhúng cần phát triển ứng dụng • Khi lập trình cho một hệ thống nhúng ta thường sử dụng một môi trường phát triển chuyên biệt dành riêng cho loại hệ thống nhúng đó Ta sẻ sử dụng một hệ thống host để chứa môi trường phát triển (thường là PC) cho Target, là hệ thống nhúng cần phát triển ứng dụng và ta... triển phần mềm sẽ dùng những thư viện này và viet chương trình theo mong muốn 35 III/ Xây dựng hệ thống nhúng không hệ điều hành: 1 Các bước xây dựng phần cứng: Các hệ thống nhúng không dùng hệ điều hành thường là các hệ thống đơn giản chỉ cần một hay một vài vi điều khiển (MCU) để xử lý các chức năng của hệ thống 1/ Chọn MCU phù hợp với nhu cầu: Trên thị trường có rất nhiều loại MCU khác nhau, mỗi loại