Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
1,13 MB
Nội dung
1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ 1 ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: PháttriểnhệthốngthunhậnhìnhảnhsửdụngbộVXLjava-KitaJ-200MEK Giảng viên hướng dẫn : TS. NGUYỄN NGỌC MINH Sinh viên thực hiện: PHẠM VĂN HẢI Lớp : D07KTDT1 Khoá : 2007-2012 Hệ : Chính quy Hà Nội, tháng 11 /2009 GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 2 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ 1 ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: PháttriểnhệthốngthunhậnhìnhảnhsửdụngbộVXL java – Kit aJ-200MEK Giảng viên hướng dẫn : TS. NGUYỄN NGỌC MINH Sinh viên thực hiện: PHẠM VĂN HẢI Lớp : D07KTD1 Khoá : 2007-2012 Hệ : Chính quy Hà Nội, tháng … /2009 GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 3 MỞ ĐẦU Với sựpháttriển mạnh mẽ của nền công nghiệp điện tử, có rất nhiều các thiết bị điện tử đã ra đời thay làm thay đổi nhiều mặt trong cuộc sống. Con người có nhiều cách tiếp cận, các tiêu chuẩn khác thay thế với các cách thức truyền thống. Các thiết bị số cá nhân di động là một dòng thiết bị thể hiện rõ nhất điều đó, nó gần như đã tạo lên một văn hóa trong cuộc sống con người. Với mục đích áp dụng các kiến thức thiết kế điện tử đã biết, và bước đầu làm quen với phương thức thiêt kế hệthống nhúng sửdụngbộ VKL Java-32bit để xây dựng một ứng dụng thực tế - một ứng dụng nhỏ về quay video sửdụngbộ Kit aJ-200MEK. Dữ liệu hìnhảnh sẽ được thunhận qua một sessor sau đó đưa qua bộ xử lí chính, lưu trữ vào trong bộ nhớ chính, và hiển thị lên màn hình LCD. Nội dung của đồ án này bao gồm những phần sau: Phần I: Java Phần II: Giới thiệu về bộVXL Java Phần III: Quy trình xây dựng một ứng dụng trên Kit aJ-200MEK Các tài liệu tham khảo, sửdụng trong đồ án này đều được ghi lại tại mục Tài liệu tham khảo. Đồ án đã có những kết quả nhất định song do hạn chế về mặt thời gian và kiến thức nên trong đồ án này ko thể tránh được những thiếu sót, rất mong được sự đánh già và bổ sung của các thầy cô và các bạn. Em xin chân thành cảm ơn! Sinh viên thực hiện Phạm Văn Hải GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 4 Phần I : Java 1. Ngôn ngữ lập trình Java 1.1 Giới thiệu chung Java là một nền tảng pháttriển các ứng dụng phần mềm có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Đánh dấu sự trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong ngành phần mềm. Mô hình máy ảo Virtual Machine đã cho phép các ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau. Lần đầu tiên xuất hiện vào năm 1992, như là một ngôn ngữ dùng trong nội bộ tập đoàn Sun Microsystems để xây dựng ứng dụng điều khiển các bộ xử lý bên trong máy điện thoại cầm tay, lò vi sóng, các thiết bị điện tử dân dụng khác. Không chỉ là một ngôn ngữ, Java còn là một nền tảng pháttriển và triển khai ứng dụng trong đó máy ảo Java, bộthông dịch có vai trò trung tâm. Sun, công ty đã phát minh ra ngôn ngữ Java, chính thức ban hành bộ công cụ pháttriển bản Java Development Kit 1.0 vào năm 1996 hoàn toàn miễn phí để các nhà pháttriển có thể tải về, học Java, xây dựng các ứng dụng Java và triển khai chúng trên các hệ điều hành có hỗ trợ Java. Ban đầu, Java chủ yếu dùng để pháttriển các applet - các ứng dụng nhúng vào trình duyệt web, góp phần làm GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 5 sinh động các trang web tĩnh vốn hết sức tẻ nhạt hồi dó. Tuy nhiên, cùng với sựpháttriển của công nghệ thông tin và nhu cầu của xã hội, Java applet đã dần mất đi vị trí của nó và thay vào đó, các công ty, cộng đồng ủng hộ Java đã pháttriển nó theo một hướng khác. Ngoài ra, Java còn được dùng để pháttriển các applications – các ứng dụng độc lập. Các bước pháttriển một ứng dụng Java: Hình 1.1.1.1: Các bước pháttriển một ứng dụng Java Hiện nay, công nghệ Java được chia làm ba bộ phận: J2SE (Java 2 Standard Edittion) Gồm các đặc tả, công cụ, API - giao diện lập trình ứng dụng của Java giúp pháttriển các ứng dụng trên desktop và các máy tính kiểu trạm làm việc. J2EE (Java 2 Enterprise Edition) Gồm các đặc tả, công cụ, API mở rộng J2SE để pháttriển các ứng dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server). Bộ phận hay được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sửdụng Java để xây dựng các ứng dụng trên nền tảng web server. J2ME (Java 2 Micro Edition) GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 6 Gồm các đặc tả, công cụ, API mở rộng để pháttriển các ứng dụng Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo và những ứng dụng điện tử khác. Lúc đầu, các Java IDE tập trung vào pháttriển J2SE. Tuy nhiên, khi J2EE đạt được sự chấp thuận rộng rãi, các nhà cung cấp tiến hành hỗ trợ pháttriển các ứng dụngsửdụng J2EE vào các IDE của họ. J2ME là bộ phận được pháttriển sau cùng. Tuy nhiên, nhiều chuyên gia đã dự đoán về sựpháttriển lớn mạnh của thị trường pháttriển các ứng dụng J2ME, các nhà cung cấp đã đưa ra các phiên bản mở rộng cho các sản phẩm IDE của họ để hỗ trợ thêm J2ME. Ngoài ra, cácnhà cung cấp chuyên nghiệp cũng đã pháttriển các IDE J2ME đơn. Java đã trải qua 3 bước pháttriển quan trọng: Java 1.0 gắn liền với bản JDK đầu tiên, Java 2 gắn với JDK 1.2 và Java 5 gắn với J2SDK 1.5 Ngày nay, khi nhắc đến Java người ta không còn chỉ nhắc đến Java như là một ngôn ngữ mà nhắc đến Java như là một công nghệ hay một nền tảng phát triển. Nó bao gồm các bộ phận: - Máy ảo Java: JVM - Bộ công cụ phát triển: J2SDK - Các đặc tả chi tiết kĩ thuật (specifications) - Ngôn ngữ lập trình (programming language) 1.2 Một số điểm nổi bật của Java so với các ngôn ngữ lập trình khác Các ngôn ngữ lập trình được ra đời từ rất lâu, và tính cho đến nay đã có tới hàng chục loại khác nhau. Tuy nhiên số này được phân chia ra làm 2 loại, các ngôn ngữ lập trình bậc thấp và các ngôn ngữ lập tnình bậc cao. Những ngôn ngữ lập trình bậc thấp, (điển hình nh assembler) hỗ trợ rất ít cho ngời sử dụng, các câu lệnh thường khó hiểu vì nó đòi hỏi bạn phải trực tiếp điều khiển việc giao tiếp với máy và các ngôn ngữ bậc cao (có hỗ trợ cho ngời lập trình thông qua chơng trình dịch và một số môđun có sẵn - chẳng hạn như Turbo Pascal, C, Java ). Tất GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 7 nhiên nếu phải chọn lựa giữa ngôn ngữ lập trình bậc thấp và ngôn ngữ lập trình bậc cao, hầu hết các lập trình viên sẽ chọn giải pháp thứ hai vì họ sẽ tiết kiệm đợc nhiều thời gian, công sức và đạt hiệu quả cao hơn (ví dụ như phải viết một chương trình để truyền file giữa 2 máy qua mạng điện thoại, với ngôn ngữ assembler bạn cần phải có một khối lưỡng công việc cực kì lớn, với khoảng vài trăm dòng lệnh trong khi đó, nếu bạn thông thạo Java, bạn sẽ thấy điều này chẳng có gì khó khăn cả - đơn giản là viết vài chục dòng lệnh mà thôi). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy. Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C# và cú pháp trong Java được vay mượn nhiều từ C & C++. Tuy nhiên, Java có cú pháp hướng đối tượng đơn giản hơn và có tính năng xử lý cấp cao hơn. Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn. Dùngbộthư viện chuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy. Lập trình C rất hay xảy ra lỗi và khó sửa. Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó. Khả năng này thường được gọi là "viết một lần, chạy mọi nơi" (write once, run anywhere) là một lợi thế cực lớn. Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows. Ban đầu Sun Microsystems đã nghĩ ra Java Vỉtual Machine(JVM) – máy ảo Java để hỗ trợ các ứng dụng Java biên dịch bytecode, và cho tới nay đã sản xuất được 4.5 tỉ JVM. Không đúng khi nói rằng trình biên dịch Java không biên dịch ra mã máy - machine code. Thực chất file code Java sau khi đưa vào trình biên dịch sẽ được biên dịch ra thành bytecode dành cho cái máy ảo Java. Trên các platform thực, Java Runtime Environment (JRE) sẽ cho phép JVM biện dịch lại toàn bộ bytecode thành code gốc của platform đó. Để cho các GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 8 chương trình Java chạy trên nhiều platform khác nhau, Sun chỉ việc port cái emulator, tức JRE, sang các platform đó. Nhờ vậy mà một chương trình Java đồ sộ viết cho máy tính, đem sang điện thoại di động vẫn chạy được bình thường. Cụ thể một số đặc điểm nổi bật của ngôn ngự lập trình Java so với các ngôn ngữ lập trình khác: • Đơn giản (simple) • Hướng đối tượng (Object - oriented) • Độc lập với cấu trúc (architecture neutral). • Mạnh mẽ (robust) • An toàn (secure) • Di động (portable. • Đa luồng (multithreaded) • Động(dynamic) • Network-savvy GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 9 • Có thể thông dịch(interpreted) 1.3. Cấu hình thiết bị Hiện nay Sun Microsystem đã đưa ra 2 dạng cấu hình thiết bị. 1. CLDC : Cấu hình thiết bị kết nối giới hạn, CLDC được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị này thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ.Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless ), dạng như cho phép người sửdụng mua và tải về các ứng dụng Java, ví dụ như là Midlet. 2. CDC : Cấu hình thiết bị kết nối, CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệthống máy để bàn sửdụng J2SE. Những thiết bị này có nhiều bộ nhớ hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn. Các sản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị gia dụng trong gia đình … Cả 2 dạng cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine - JVM) và tập hợp các lớp (class) Java cơ bản để cung cấp một môi trường cho các ứng dụng J2ME. Tuy nhiên cần chú ý rằng đối với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử lý nên không thể yêu cầu máy ảo hổ trợ tất cả các tính năng như với máy ảo của J2SE, ví dụ, các thiết bị thuộc CLDC không có phần cứng yêu cầu các phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không được yêu cầu hỗ trợ kiểu float và double. Bảng so sánh các thông số kỹ thuật của CDC và CLDC Thông số CLDC CDC Ram >=32K,<=512K >=256K Rom >=128k,<=512k >=512k Nguồn năng Có giới hạn (nguồn pin) Không giới hạn GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 10 lượng Network Chậm Nhanh GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 [...]... người sửdụngpháttriển các thế hệ sản phẩm đa phương tiện dựa vào các ứng dụng đa phương tiện di động qua mạng Internet như IP camera, webs, các máy chủ camera, các thiết bị cầm tay và các ứng dụng nhỏ khác Sơ đồ các khối của Kit aJ-200MEK được mô tả như hình dưới: GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 19 Hình 2.1.1.7: Sơ đồ các khối trên Kit aJ-200MEK 2.2 Các đặc tính của bộ Kit... thiết kế với một màn hình cảm ứng kích thước 800x480, một thiết bị CMOS, một video định dạng MPEG4, âm thanh stereo, và cấu hình kiểu I/O đặc thù cho các thiết bị đa phương tiện di động qua mạng Internet Sửdụng các ưu thế của Java IDEs, người pháttriển ứng dụng có thể tạo ra các ứng dụng được viết hoàn toàn dùng ngôn ngữ lập trình Java với hiệu suất và hiệu quả bộ nhớ của hệthống cao Kit aJGVHD:... ứng dụng mạng 2.4 Môi trường phát triển GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 25 Môi trương phát triển như Eclipse hay Netbeans cho phép sửdụng các “off-the-shelf “IDE để tạo ra các file chuẩn Java.Nó thực hiện các công việc chính sau: • Tối ưu hóa Linker/Xây dựng các ứng dụng Applications builder ( JEMBuilder) • Các công cụ debugging ứng dụng • Multimedia Evaluation Kit o aJ-200MEK. .. 2.2 Các đặc tính của bộ Kit aJ-200MEKBộ xử lý: GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 20 • aJile network media direct execution SOC “aJ-200” for the JME platform Cấu hìnhbộ nhớ: • 32 MB SDRAM • 32 MB NAND Flash Màn hình cảm ứng: • Optrex 5” TFT panel • Độ phân giải 800x480 • Sửdụng 24-bit màu • Màn hình cảm ứng và backlight Các thiết bị vào: • Màn hình cảm ứng • Các phím số o... Hải, lớp D07-KTDT1 12 Bộ xử lí Java này của aJile là dòng thế hệthứ 3 sửdụng năng lượng thấp, thực hiện trực tiếp các xử lí trên nền tảng JME Java, “Java processor” Nó được ứng dụng để thiết kế các dòng thiết bị nhúng đa phương tiện, và các ứng dụng internet di động Bộ xử lí này bao gồm một lõi JEMCore-II nâng cao với byte, half word, word opteration, một gói dữ liệu DSP, 32KB bộ nhớ I&D, bus AHB,... kênh nối tiếp 2.3 Hệ thống hỗ trợ phát triển Kit aJ-200MEK đi kèm với aJile RTOS, nó là một ứng dụng builder tối ưu (JEMBuilder) và cung cấp một công cụ debugging hoàn chỉnh dựa trên silicon-base cho nền tảng JEM Các thành phần chính bao gồm: aJile RTOS: aJile RTOS được thực hiện hoàn toàn bằng ngôn ngữ Java ( hình minh họa) Ngoài ra, aJile Multiple JVM ( MVM) cho phép nhiều ứng dụng thực hiện một... Package • 324-pin TFBGA • 13 mm x 13 mm (0.65 mm ball pitch) • Tương thích ROHS Hình 2.1.1.5: Sơ đồ khối dòng Kit sửdụng Kit aJ-200 GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1 17 2 Dòng Kit aJ-200MEK 2.1 Giới thiệu chung Hình 2.1.1.6: Bộ Kit aJ-200MRK Kit aJ-200MEK là một sản phẩm của aJile, nó là một bộ kit nhỏ gọn và đa năng với aJ-200 SOC thực hiện linh hoạt các xử lý với Java Vỉtual... (file (file chỉ Các bước xây dựng một ứng dụng trên Kit aJile-200MEK Bước 1: Viết code và biên dịch file *.Java thành bytecode lưu trong file *.class Bước 2: Sửdụng các tool của aJile – JemBuilder biên dịch bytecode thành mã máy - file *.sod Bước 3: Sửdụng Charade for EVB(m) nạp file *.sod vào Kit để chạy ứng dụng Lưu ý: Trong đồ án này, Eclipse sửdụng version 3.6.2 và workspace tại D:\DoAn\code,... nhớ SD, WLAN card • aJile Real-time OS Kernel Bên trong bộ xử lý aJile chứa một lõi thời gian thực nhỏ đã được lập trình Nó thực hiện các chức năng quen thu c của hệ điều hành như: lập chương trình, chuyển chương trình, xử lý ngắt, xứ lý các lỗi và đồng bộ hóa các đối tượng) Ngôn ngữ Java cơ bản được dùng trong các bộ xử lý của aJile, và nó sửdụng các tập lệnh bytecode mở rộng để thực hiện thêm các... của mình và bộ nhớ để cho phép các ứng dụng chạy một cách đồng thời, độc lập với các ứng dụng trên mạng và không bị tạm dừng khi có các “cảnh báo rác”garbage collection (G.C) và các ngắt khác MJM có chể độ bảo mật “sandbox” Java đến cấp độ tiếp theo, cung cấp một cơ chế để dễ dàng cách ly các ứng dụng và phân chia tài nguyên hệ thống aJile RTOS cho phép các ứng dụng cứng real-time có thể chạy một cách . 1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA KỸ THU T ĐIỆN – ĐIỆN TỬ 1 ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: Phát triển hệ thống thu nhận hình ảnh sử dụng bộ VXL java-Kit aJ-200MEK Giảng viên. thức thiêt kế hệ thống nhúng sử dụng bộ VKL Java-32bit để xây dựng một ứng dụng thực tế - một ứng dụng nhỏ về quay video sử dụng bộ Kit aJ-200MEK. Dữ liệu hình ảnh sẽ được thu nhận qua một sessor. tài: Phát triển hệ thống thu nhận hình ảnh sử dụng bộ VXL java – Kit aJ-200MEK Giảng viên hướng dẫn : TS. NGUYỄN NGỌC MINH Sinh viên thực hiện: PHẠM VĂN HẢI Lớp : D07KTD1 Khoá : 2007-2012 Hệ :