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 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á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ệ : 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át triể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ụ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 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át triể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át triể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át triển bản Java Development Kit 1.0 vào
năm 1996 hoàn toàn miễn phí để các nhà phát triể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át triể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át triể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át triển nó theo một hướng khác. Ngoài ra,
Java còn được dùng để phát triển các applications – các ứng dụng độc
lập. Các bước phát triển một ứng dụng Java:
Hình 1.1.1.1: Các bước phát triể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át triể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át triể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át triể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át triể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át triển các ứng dụng sử dụng J2EE vào các IDE của họ.
J2ME là bộ phận được phát triển sau cùng. Tuy nhiên, nhiều chuyên
gia đã dự đoán về sự phát triển lớn mạnh của thị trường phát triể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át triển các IDE J2ME đơn.
Java đã trải qua 3 bước phát triể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ùng bộ 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
11
Phần II : Giới thiệu về bộ VXL Java
Dòng chip aJ-200
Giới thiệu chung
Hình 2.1.1.2: Dòng chip aJ-200
Dòng chip aJ-200 của aJile là sản phẩm chip SOC thứ ba, nó
thực hiện các trực tiếp các tập lệnh bytecode cho Java Virtual Machine
(JVM), và các hệ thống Java thời gian thực cơ bản. Bytecode JVM sẽ
thực hiện việc loại bỏ các thông dịch và các lớp phần mềm JIT đặc
trưng, và thực hiện tối ưu hóa cho các yêu cầu về bộ nhớ và thời gian.
Dựa trên nền tảng về chip Java cơ bản, dòng chip aJ-200 luôn thực hiện
các tác vụ, đồng bộ hóa các đối tượng, lập trình và xử lí ngắt một cách
nhanh chóng.
Chip aJ-200 rất thích hợp để sản xuất các sản phẩm thiết bị đầu
cuối POS di động, các thiết bị cầm tay, các webpad, hệ thống điều
khiển cá nhân, các thiết bị chơi game và đồ chơi, IP camera, hệ thống
video giám sát, và các ứng dụng nhỏ khác.
1.1. Bộ xử lí Java trong chip aJ-200
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn 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, giao diện APB, và giao
diện JTAG. Sơ đồ các khối của bộ xử lí Java được mô tả như hình vẽ
dưới đây.
Hình 2.1.1.3: Các khối chức năng trong bộ xử lí Java trong chup aJ-200
1.2. Lõi xử lí JMECore – II
JEMCore-II thực hiện trực tiếp các lệnh bytecode Java Vỉtual
MachineTM (JVM), real-time Java cơ bản và một số các lệnh bytecode
mở rộng cho multimedia và các ứng dụng nhúng trong mạng.
JEMCore-II cải thiện hiệu quả thực hiện các lệnh Java việc loải bỏ lớp
trình diễn Java và nhân RTOS. Kết quả dẫn đến thời gian chuyển đổi
ngữ cảnh thread-to-thread được giảm đáng kể(<1µs). Vì tập lệnh
bytecode được thực hiện như các lệnh cơ bản nên JEMCore của Java
hoạt động giồng như bộ xử lí RISC thực hiện vệc biên dịch trong C.
Thêm vào đó, các hoạt động Java cơ bản (wait, yield, thông báo, giảm
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
13
sát việc enter/exit) được thực hiện như các lệnh bytecode mở rộng, loại
bỏ các yêu cầu cho một RTOS truyền thống. Dựa trên sự phong phú
của nền tảng Java multimedia , JEMCore-II đã được cải tiến với một
microcode chuyên dụng-dựa trên dữ liệu DSP-để làm tăng thêm các
thuật toán khác nhau cho các ứng dụng audio, điều khiển nhúng, điều
khiển động cơ phụ, ghi lại giọng nói và chữ viết tay.
Hình dưới minh họa đơn giản các khối của lõi JEMCore-II cải
tiến:
Hình 2.1.1.4: Sơ đồ khối lõi JMECore - II
1.3. Các đặc tính của hệ thống aJ-200
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
14
Bộ xử lý Java 32-bit
• Các tập lệnh bytecode cơ bản
• Các tập lệnh bytecode mở rộng
• Các phép toán số học sử dụng dấu phẩy động theo chuẩn
IEEE-754
• Fixed-point Multiplier Accumulator (MAC)
• Lõi nhúng RTOS
o Thực hiện thread-to-thread ít hơn 1us
• Hai máy ảo Java độc lập trong phần cứng
• Cho phép ghi 32KB (writeable control store–WCS
32 KB Unified instruction & Data Cache
Giao diện BUS ngoài (External Bus interface – EBI)
• FLASH (NOR & NAND), ROM, SRAM
• SDRAM và SDRAM động
Điều khiển ngắt bởi các thiết bị ngoại vi
Ba bộ Timer/Counter 24-bit
Tám bộ điều chế độ rộng xung ( Pulse Width Modulations – PWM)
Bộ giám sát Timer
Four 16550 Compatible UART’s
General Purpose I/O Ports
Điều khiển truy cập trực tiếp bộ nhớ-DMA (Direct Memory Access)
Cổng đồng bộ nối tiếp (SSP-Synchronous Serial Port)
Giao tiếp I
2
S/AC97/SPI
Giao tiếp I
2
C
Hỗ trợ thẻ nhớ SD/ SDIO/ MMC
CF Memory Card Interface version 1.4
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
15
Chip đơn điều khiển USB OTG phiên bản 2.0
Chip đơn điều khiển 10/100 T-Base Ethernet
Mã hóa/giải mã máy
Màn hình LCD
• Giao diện TFT LCD 24-bit
• Độ phân giải lên tới 1280x1280
• Chế độ đầu vào (RGB, bảng màu, YcbCr422/420)
• 256 entries 16-bit RGB color palette RAM
• 2 cửa sổ PiP
• Picture out of Picture (PoP)
• Định dạng đầu ra (bảng màu RGB, ITU-R BT, 656)
• Video Scalar (up & down)
• Cổng video ra (ITU-R BT. 656)
Ba cổng lấy ảnh
• Độ phân giải 1920x1080
• Định dạng đầu vào(ITU-R BT. 656/.1120, YCrCb 4:2:2)
• Định dạng đầu ra(RGB 888/565, YCbCr 4:4:4, 4:2:2, 4:2:0)
Hỗ trợ các định dạng media
• Định dạng MPEG-4 đơn giản chuẩn L0 ~ L3
• Sub QCIF, QCIF, CIF, VGA, 4CIF, & D1
• Chuẩn hình ảnh JPEG (ISO/IEC 10918-1) cơ bản
• Short video header (H.263 baseline)
• Các phương pháp lượng tử hóa H.263/MPEG/JPEG
Giao diện JTAG chuẩn IEEE 1149.1
Clock and PLL’s
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
16
Fully static operation up to 180 MHz
• Core @ 1.8V
• I/O’s @ 1.8, 2.5V or 3.3V
• Commercial temperature
Chip xử lý CMOS chỉ 0.18um
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 Bytecode, dựa trên các nền tảng về JAVA cơ bản, network, đồ
họa, định dạng video MPEG4, và các khối chức năng I/O. Kit aJ-
200MEK được 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át triể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 aJ-
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
18
200MEK giúp người sử dụng phát triể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 aJ-200MEK
Bộ 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ình bộ 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 Các phím gần giống trên bàn phím điện thoại
o 4 phím thô
o 4 phím mũi tên các hướng
Cổng Ethernet 10/100 base-T:
• Bộ nối RJ-45
Hai kênh dẫn:
• RS 232
• Bộ nối DB9M
Cổng USB:
• Cổng kết nối USB loại A
Các khe cắm mở rộng:
• SD/SDIO
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
21
• Thẻ nhớ
• WLAN 802.11b/g
Cổng thu video:
• VGA
• 8-bit YcrCb
• Omnivision CMOS sensor “OV7740”
Các định dạng media:
• MPEG-4 các chuẩn đơn giản L0~L3
• Sub QCIF, QCIF, CIF, VGA, 4CIF, and D1 @ 30 fps
• JPEG (ISO/IEC 10918-1)
• Short video header (H.263 baseline)
• H.263/MPEG/JPEG
Các định dạng audio:
• AC97 compliance
• Left and right audio input
• Left and right audio output
• Speaker (8Ω) header
• Microphone
Đồng hồ thời gian thực hỗ trợ một pin cổng GPIO 8-bit, bộ nối
UMTS/HSDPA:
• 50-pin slimstack receptacle
• Cinterion HC-25/28 module (option)
Bộ nối module Zigbee:
• 20-pin header
• Xbee/Xbee-Pro module (option)
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
22
Trạng thái các LED:
• Ethernet port
• USB port
• SD slot
• WLAN
• UMTS/HSPDA
• Zigbee
• Power on
Nguồn nuôi:
• Nguồn ngoài 100-240V 5V/3A DC.
• Pin @ 3.7V 1800 mAhcó thể nạp lại được
JTAG:
• Giao diện debug
• Nguồn cấp 5V qua cổng USB
• Debug qua 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 cách đồng thời và độc lập theo một lịch
trình nhất định một cách nhanh chóng. Điều này cho phép các ứng
dụng cứng real-time chạy độc lập và an toàn với các ứng dụng mạng.
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
23
Hình 2.1.1.8: Hê thống aJile RTOS
Các thành phần chính của một hệ điều hành thời gian thực aJile:
• JME API’s
o CLDC 1.1
o CDC 1.1/Foundation Profile (FP)
o MIDP2.0
• Stack mạng, file hệ thống, và định khung an toàn:
o chạy trên các thư viện TCP/IPJME và bổ sung aJile's Java của
JNI, các đồ họa gốc
o Ngăn xếp mạng TCP/IP bao gồm các dịch vụ PPP, DHCP, DNS,
SNMP
o File hệ thống định dạng FAT 32 cho USB và các thẻ nhớ SD
o stack USB 2.0 chủ/khách
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
24
o Định khung an toàn
o Bộ nạp khởi động cho việc cập nhật các ứng dụng.
• Các driver cho các phần mềm Java:
o Hợp nhất tất cả các I/O
o Điều khiển nối tiếp qua cổng ÚB cho bọ nhớ, bàn phím, và chuột
o Thé 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 hoạt động trong Applications ( trạng thái ngủ, chờ,
các thông báo, yield, quản lí nhập, quản lí xuất, và ngắt) để hỗ trợ việc
điều hành hệ thống một cách nhanh chóng và không bị gián đoạn. Các
chip thời gian thực quản lí các hoạt động dựa trên mức độ ưu tiên của
các chúng với thời gian chuyển đổi vô cùng nhanh- ít hơn 1 µs.
Ngoài ra, kỹ thuật Multiple JVM (MJM) của aJile còn cho phép
các ứng dụng chạy một cách đồng thời và độc lập theo một lịch trình
nhất định. Mỗi JVM tận dụng các đặc trưng riêng 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 độc lập và
an toàn song song với các ứ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 board
o Bộ chuyển đổi JTAG – to - USB
o USB cable
o AC power adapter
o Các sơ đồ và tập tin Gerber (là một chuẩn vẽ mạch PCB) có thể
được download tại website của aJile :www.ajile.com
Hai môi trường phát triển này đều có những ưu điểm riêng của
mình và chúng đều có thể đươc sử dụng miễn phí. Tuy nhiên Eclipse
có phần nổi trội hơn vì:
* Khác với NetBean, luôn phát hành dưới dạng Beta, có nghĩa là có
thể trở thành bản thương mại bất kỳ lúc nào khi SUN quyết định đưa ra
bản chính thức, Eclipse là phiên bản hoàn chỉnh mã nguồn mở.
* Các plug-in phục vụ cho việc phát triển Java application rất tốt, hỗ
trợ nhiều tính năng cao cấp. IDE hỗ trợ nhiều cách nhìn vào code, sáng
sủa và đễ định hướng.
* Làm quen với Eclipse đồng nghĩa với cơ hội làm quen với cách
làm việc của một trong những môi trường phát triển Web mạnnh nhất
hiện nay là Websphere (vì bản chất WebShpere cũng là một plug-in
của Eclipse). Những kinh nghiệm có được trên Eclipse hoàn toàn có thể
dùng ngay khi chuyển sang WebSphere.
* Tìm hiểu Eclipse có thể tạo ra các plug-in phục vụ riêng cho công
việc cá nhân và cho cộng đồng phát triển mã nguồn mở.
Một số thủ thuật trong Eclipse
• Hiển thị tiếng Việt:
GVHD: TS. Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1