Tầng hạt nhân Linux (Linux Kernel):
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt nhân Linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi hành thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process).
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng của bộ nhớ, kích thước màn hình, nhu cầu kết nối mạng khơng dây,…
Tầng này có các thành phần chủ yếu:
Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người sử dụng lên màn hình (di chuyển, cảm ứng, ...).
Camera Driver: Điều khiển hoạt động của camera, nhận dữ liệu từ camera trả về. Bluetooth Driver: Điều khiển thiết bị phát và thu Bluetooth.
USB driver: Quản lý hoạt động của các cổng giao tiếp USB.
Keypad driver: Điều khiển hoạt động của bàn phím cứng trên máy. Wifi Driver: Quan lý thu phát sóng wifi.
Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tín hiệu dạng audio thành tín hiệu số và ngược lại.
Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như GSM, 3G, 4G để đảm bảo những chức năng truyền thông được thực hiện.
M-System Driver: Quản lý việc đọc ghi… lên các thiết bị nhớ như thẻ SD, flash. Power management: Quản lý, giám sát việc tiêu thụ điện năng.
Tầng thư viện (Libraries):
Bao gồm các thư viện C/C++ được sử dụng bởi các thành phần khác nhau trong hệ thống Android. Một số các thư viện cơ bản:
System C library: Sử dụng hệ thống C chuẩn, được điều hưởng cho những thiết bị nền tảng Linux nhúng.
Media framework: Dựa trên nền tảng PacketVideo’s OpenCore, các thư viện hỗ trợ phát và ghi cho các định dạng âm thanh, hình ảnh thơng dụng bao gồm MPEG4, H.264, MP3, ACC, MR, JPG, và PNG.
Surface manager: Quản lý việc truy xuất vào hệ thống hiển thị.
Webkit: Cung cấp kỹ thuật duyệt wed hiện đại thông qua việc kết hợp sức mạnh giữa trình duyệt wed của Android với một trang wed nhúng.
SGL: Cung cấp các công cụ đồ họa 2D.
OpenGL/ES: Thi hành các hàm API dựa trên thư viện đồ họa OpenGL/ES 1.0, cung cấp công cụ đồ họa 3D đối với phần cứng được hỗ trợ và phần mềm.
Free Type: Bộ tạo phông chữ dạng bitmap và vector.
SQLite: Hệ quản lý cơ sở dữ liệu cho các ứng dụng với đặc điểm chạy nhẹ nhàng và việc quản lý mạnh.
Android runtime:
Phần này chứa các thư viện mà một chương trình viết bằng ngơn ngữ Java có thể hoạt động. Phần này có hai bộ phận tương tự như mơ hình chạy Jave trên máy tính thường. Thứ nhất là các thư viện lõi (Core library), chứa các lớp như JAVA IO, Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine).
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành Android không được chạy bằng JRE của Sun (nay là Oracle) mà chạy bằng máy ảo dalvik do Google phát triển. Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu. VM là dựa trên nền tảng thanh ghi, và chạy các lớp đã được biên dịch bởi một trình biên dịch java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp.
Android framework:
Bằng việc phát triển trên nền tảng mã nguồn mở (Open source code), Android cung cấp cho các nhà phát triển phần mềm khả năng xây dựng các ứng dụng cực kỳ phong phú, sinh động và sáng tạo. Họ được tận dụng tự do các tài nguyên về thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy, các thiết lập báo cáo, thơng báo trạng
thái,… Nhà phát triển có thể truy cập vào các hàm API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi. Các kiến trúc thiết kế đơn giản hóa việc sử dụng lại các thành phần.
Tầng Applycations Framework bao gồm nhiều dịch vụ cho việc quản lý:
Activity manager: Quản lý vòng đời (lifecycle) của các ứng dụng điều hướng cho activity.
Window Manager: Cung cấp khả năng quản lý giao diện người dùng.
View System: Tập hợp rất nhiều các view có khả năng kế thừa lẫn nhau để thiết kế phần giao diện ứng dụng như: TextView, EditText, GirdView, …
Content providers: Cho phép các ứng dụng truy xuất dữ liệu từ các ứng khác (tính kế thừa).
Resource Manager: Cung cấp truy xuất tới các tài nguyên không phải mã nguồn (source code), chẳng hạn như graphics, layout, …
Location manager, Noitifycation Manager: Cho phép tất cả ứng dụng có thể hiển thị các loại thơng báo khác nhau (custom arlets) trong status bar.
Telephony Manager: Dịch vụ thoại (phone’s services), cho phép các ứng dụng thông qua dịch vụ này truy xuất các thao tác liên quan đến điện thoại.
Package Manager: Quản lý các gói ứng dụng, các chương trình đã cài đặt, các thư viện.
Tầng ứng dụng (Application):
Tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts, phone, browser, camera…Tất cả ứng dụng chạy trên Android đều được viết trên nền tảng Java. Các ứng dụng được cài đặt như phần mềm, trò chơi, từ điển….
Các chương trình có đặc điểm là:
Viết bằng Java, có phần mở rộng là apk.
Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho hệ thống. Nó có thể là một Active program: chương trình có giao diện với người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ. Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi.
Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một ứng dụng bên thứ ba được phép chạy nền.
Ứng dụng khơng có điểm vào cố định, khơng có phương thức main để bắt đầu.
Cơng cụ xấp xỉ đường cong (Curve fitting toolbox): Giới thiệu:
Curve Fitting Toolbox của MATLAB cung cấp một ứng dụng và những hàm để xấp xỉ những đường cong và bề mặt dữ liệu. Bộ cơng cụ cho phép chúng ta thực hiện phân tích dữ liệu tham dị, tiền xử lý – hậu xử lý dữ liệu, so sánh những mơ hình ứng cử viên và loại bỏ giá trị ngoại lai. Bạn có thể dẫn đến những phân tích dùng thư viện của những mơ hình tuyến tính và khơng tuyến tính đê cung cấp hoặc định rõ những phương trình tùy chỉnh của chính bạn. Thư viện cung cấp lời giải tối ưu những thông số và điều kiện ban đầu để cải thiện chất lượng của những bộ xấp xỉ của bạn. Bộ công cụ cũng hỗ trợ kỹ thuật mơ hình phi tham số như splines, nội suy (interpolation) và làm mượt (smoothing).
2.4 MỘT SỐ MODULE SỬ DỤNG TRONG MƠ HÌNH:2.4.1 Vi điều khiển: 2.4.1 Vi điều khiển:
a. Giới thiệu về vi điều khiển:
Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi
xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng
trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số,... Ở máy tính thì các mơ đun thường được xây dựng bởi các chíp và mạch ngồi.