Tải bản đầy đủ (.pdf) (68 trang)

Tìm hiểu công nghệ bluetooth và lập trình mobile, xây dựng ứng dụng minh họa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.95 MB, 68 trang )

Giỏo viờn hng dn: Nguyn Cụng Nht

tr-ờng đại học vinh
khoa công nghệ thông tin
--------------

INH HU QUYT

Tìm hiểu về công cụ bluetooth và
lập trình mobile, xây dựng
ứng dụng minh h
Khóa luận tốt nghiệp đại học

C NHN CễNG NGH THễNG TIN

Vinh -5/ 2010

Sinh viên thực hiện: Đinh Hữu Quyết

1


Giáo viên hướng dẫn: Nguyễn Công Nhật
LỜI CẢM ƠN
Em xin chân thành cảm ơn ban chủ nhiệm khoa Công nghệ thơng tin, các
thầy cơ giáo, gia đình và bạn bè đã động viên giúp đỡ em rất nhiều trong quá
trình hồn thành khóa luận này.
Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo hướng dẫn
Thạc sỹ Nguyễn Cơng Nhật về sự chỉ dẫn tận tình và tận tâm hướng dẫn em
từ những ý tưởng ban đầu cho đến lúc hồn thành khóa luận này.
Cho em bày tỏ lịng biết ơn tới gia đình thân u, những người bạn thân


đã luôn quan tâm, tin tưởng, động viên, giúp đỡ em trong thời gian qua.
Mặc dù đã rất cố gắng nhưng chắc chắn luận văn không khỏi có những
thiếu sót. Em rất mong đón nhận sự đánh giá, bổ sung và những lời chỉ bảo
của các thầy cơ giúp em có thể tiếp tục nghiên cứu kĩ hơn về lĩnh vực này.
Em xin chân thành cảm ơn!
Vinh, tháng 5/2010
Sinh viên

Đinh Hữu Quyết

Sinh viên thực hiện: Đinh Hữu Quyết

2


Giáo viên hướng dẫn: Nguyễn Công Nhật
LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên
nhu cầu về trao đổi thơng tin, giải trí, nhu cầu về điều khiển thiết bị từ xa,…
ngày càng cao. Và những hệ thống dây cáp phức tạp lại không thể đáp ứng tốt
nhu cầu này, nhất là ở những khu vực chật hẹp, những nơi xa xôi, trên các
phương tiện vận chuyển,… Vì thế cơng nghệ khơng dây đã ra đời và đang
phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con người trong đời sống hằng
ngày. Kỹ thuật không dây phục vụ rất nhiều nhu cầu khác nhau của con
người, từ nhu cầu làm việc, học tập đến các nhu cầu giải trí như chơi game,
xem phim, nghe nhạc, v.v… Với các nhu cầu đa dạng và phức tạp đó, kỹ
thuật không dây đã đưa ra nhiều chuẩn với các đặc điểm kỹ thuật khác nhau
để có thể phù hợp với từng nhu cầu, mục đích và khả năng của người sử dụng
như IrDA, WLAN với chuẩn 802.11, ZigBee, OpenAir, UWB, Bluetooth,…

Mỗi chuẩn kỹ thuật đều có những ưu, khuyết điểm riêng của nó, và
Bluetooth đang dần nổi lên là kỹ thuật khơng dây tầm ngắn có nhiều ưu điểm,
rất thuận lợi cho những thiết bị di động. Với một tổ chức nghiên cứu đông
đảo, hiện đại và số lượng nhà sản xuất hỗ trợ kỹ thuật Bluetooth vào sản
phẩm của họ ngày càng tăng, Bluetooth đang dần lan rộng ra khắp thế giới,
xâm nhập vào mọi lĩnh vực của thiết bị điện tử và trong tương lai mọi thiết bị
điện tử đều có thể được hỗ trợ kỹ thuật này.
Xuất phát từ các lý do trên, em chọn đề tài “Tìm hiểu cơng nghệ
Bluetooth và lập trình Mobile, xây dựng ứng dụng minh hoạ”. Trong đề
tài này, em tìm hiểu về kỹ thuật không dây Bluetooth và xây dựng một
chương trình truyền file qua Bluetooth giữa các điện thoại sử dụng hệ điều
hành Windows Mobile 6.

Sinh viên thực hiện: Đinh Hữu Quyết

3


Giáo viên hướng dẫn: Nguyễn Cơng Nhật
2. Mục đích nghiên cứu
Mục tiêu của đề tài là tìm hiểu cơng nghệ Bluetooth và xây dựng một
ứng dụng thông qua Bluetooth của các điện thoại cài đặt hệ điều hành
Windows Mobile 6 và máy tính để minh họa hoạt động của kỹ thuật này …
Các nội dung chính của đề tài bao gồm:
• Tìm hiểu về hoạt động của kỹ thuật Bluetooth.
• Tìm hiểu về hệ điều hành Windows Mobile 6.
• Xây dựng ứng dụng chạy trên điện thoại di động truyền file giữa hai
điện thoại di động với nhau, và giữa điện thoại di động và máy tính.
3. Bố cục luận văn
Luận văn gồm 03 phần:

Chương 1: Tổng quan về Windows Mobile và lập trình với Pocket PC –
Giới thiệu về hệ điều hành Windows Mobile và các công cụ sử dụng để lập
trình với Pocket PC
Chương 2: Giới thiệu về công nghệ Bluetooth
Chương 3: Cài đặt thiết bị ảo và xây dựng ứng dụng minh hoạ
4. Các kết quả đạt được
Đề tài “Tìm hiểu về cơng nghệ Bluetooth, lập trình Mobile và xây
dựng ứng dụng minh hoạ” xuất phát từ thực tế phát triển nhanh chóng của
cơng nghệ Bluetooth và ứng dụng ngày càng rộng rãi của công nghệ này.
Mặc dù cố gắng tìm hiểu thêm tài liệu sách vở và trên Internet nhưng do
hạn chế về mặt thời gian nên khố luận đã hồn thành ở những mức độ sau:
+ Tìm hiểu về Bluetooth
+ Tìm hiểu về C# và viết ứng dụng minh hoạ

Sinh viên thực hiện: Đinh Hữu Quyết

4


Giáo viên hướng dẫn: Nguyễn Công Nhật

CHƯƠNG I: TỔNG QUAN VỀ WINDOWS MOBILE VÀ
LẬP TRÌNH VỚI POCKET PC

1. Giới thiệu
Windows Mobile là một hệ điều hành nhỏ gọn kết hợp với một bộ ứng
dụng cơ bản cho thiết bị di động dựa trên Microsoft Win32 API. Những thiết
bị chạy Windows Mobile bao gồm Pocket PC, Smartphones, Portable Media
Centers, Ngoài ra, một số máy tính xách tay loại nhỏ (Ultra-Portable
Notebook) cũng có thể sử dụng hệ điều hành này. Windows Mobile được thiết

kế để có vẻ ngồi và các tính năng tương tự với các phiên bản máy tính để
bàn (desktop) của Windows, tính năng thơng minh và thẩm mỹ. Ban đầu xuất
hiện như là hệ điều hành Pocket PC 2000, Windows Mobile đã được cập nhật
nhiều lần, với phiên bản hiện tại là Windows Mobile 6.5, phiên bản Windows
Mobile 7 đã được Microsoft giới thiệu đầu năm nay.
Các Pocket PC dự kiến ban đầu là nền tảng cho hệ điều hành Windows
Mobile. Các thiết bị này bao gồm cả hai thiết bị Pocket PC độc lập mà khơng
có khả năng như điện thoại di động, và những thiết bị có tính năng như điện
thoại di động. Cái tên mới nhất của Windows Mobile dự định để sử dụng trên
Pocket PC chính thức "Windows Mobile 6 Professional" cho các thiết bị với
các khả năng như điện thoại di động và "Windows Mobile 6 Classic" cho các
thiết bị mà khơng có khả năng điện thoại di động, các thiết bị mà không có
một màn hình cảm ứng được gọi là các thiết bị tiêu chuẩn Windows Mobile.
2. Lập trình với PPC
So với các nền tảng khác như Palm, Symbian, Linux - PPC được coi là
dễ lập trình nhất, do chạy Windows nên cách lập trình cũng tương tự so với
Windows Desktop cho PC. Nếu đã từng lập trình cho PC, nhất là nền tảng
.NET thì càng dễ, gần như khơng có khác biệt là mấy.
Sinh viên thực hiện: Đinh Hữu Quyết

5


Giáo viên hướng dẫn: Nguyễn Công Nhật
Hiện nay tùy thuộc vào công nghệ sử dụng, các ứng dụng phát triển cho
PPC được chia thành hai dịng chính như sau:
- Native Application: Các ứng dụng được viết trên các ngôn ngữ lập
trình khơng phải .NET, như C, C++ và sử dụng các API của Windows. Ưu
điểm của các ứng dụng loại này là chương trình nhỏ gọn, khi cài đặt khơng
cần thêm các thư viện đi kèm, có khi chỉ cần copy nguyên file EXE là chạy.

Tuy vậy, các ứng dụng kiểu này khó viết hơn, do sử dụng các ngơn ngữ lập
trình bậc thấp hơn (C, C++). Chỉ các ứng dụng thực sự cần sự nhỏ gọn, như
các driver, các trình thường trú như keyboard, system… mới cần phát triển
theo kiểu này.
- .NET Application: Như một sự cạnh tranh với sự phát triển ồ ạt và rất
thành công của ngôn ngữ lập trình Java, từ năm 2000, Microsoft đã bắt đầu
phát triển nền tảng .NET cho các ứng dụng, với mục tiêu dùng một nền tảng
ngơn ngữ lập trình cho nhiều nền tảng phần cứng, phần mềm khác nhau. Đến
nay .NET vô cùng phát triển và tỏ rõ được thế mạnh của mình. Tất cả các hệ
điều hành Windows XP, Windows 2000, 2003 server đến Windows Mobile,
Windows for Smart Phone đều hỗ trợ rất tốt .NET. Nếu bạn đã từng lập trình
.NET cho Windows XP rồi thì chuyển sang Windows Mobile chỉ cần tìm hiểu
thêm một số thư viện làm việc với những đặc thù cho Mobile là đã có thể phát
triển các ứng dụng.
- Ngồi ra, cịn có một số nền tảng và ngơn ngữ lập trình của các hãng
khác nữa nhưng không phổ biến.
3. Các công cụ sử dụng
Để lập trình .NET, ta cần sử dụng những cơng cụ sau đây:
- Bộ phần mềm Visual Studio.NET – phiên bản 2003, 2005 hoặc 2008.
- Các thư viện nâng cao có thể download trên Internet.
- Visual Studio.NET 2003 hỗ trợ .NET Framework 1.1
- Visual Studio.NET 2005 hỗ trợ .NET Framework 2.0
Sinh viên thực hiện: Đinh Hữu Quyết

6


Giáo viên hướng dẫn: Nguyễn Công Nhật
- Visual Studio.NET 2008 hỗ trợ .NET Compact Framework 2.0 sp2 và
3.5.

3.1. Thư viện lập trình:
Với lập trình Windows Mobile, ở đây ta cần phải có là bộ Windows
Mobile SDK. Tùy vào mỗi phiên bản của hệ điều hành Windows Mobile, mà
Microsoft cung cấp cho ta một bộ SDK tương ứng.
Một bộ SDK thường chứa:
- Tài liệu và các ví dụ cụ thể.
- Các hàm API (Application Programming Interface).
- Các cơng cụ cho trình soạn thảo (cụ thể là Visual Studio) và biên dịch
mã.
Đối với Visual Studio 2008, thì Microsoft đã tích hợp bộ Windows
Mobile 5 SDK có sẵn để có thể lập trình ứng dụng cho các thiết bị chạy
Windows Mobile 5. Sau này, chúng ta sử dụng Windows Mobile 6, do đó
Microsoft cũng đã cung cấp 1 bộ Windows Mobile 6 SDK. Trong Windows
Mobile 6 SDK bao gồm:
Windows Mobile 6 SDK Cung cấp thư viện, Emulator để phát triển
Standard

ứng dụng cho các hệ máy SmartPhone

Windows Mobile 6 SDK Cung cấp thư viện, Emulator để phát triển
Professional

ứng dụng cho các hệ Pocket PC

Ngoài ra, trong bộ Windows Mobile 6 SDK cịn tích hợp một số công cụ
để phát triển ứng dụng tùy thuộc vào từng trường hợp cụ thể.

Sinh viên thực hiện: Đinh Hữu Quyết

7



Giáo viên hướng dẫn: Nguyễn Công Nhật

FakeGPS

Giả lập dữ liệu GPS thông qua các hàm API

Local Server Framework Giả lập tương tự như một server. Khi đó ta
(aka FakeServer)

có thể kiểm tra tính kết nối của một ứng
dụng

Cellular Emulator

Giả lập song Radio thật như một thiết bị di
động với một đầy đủ tính năng như GPRS,
GSM, ….

3.2. Cơng cụ soạn thảo code:
Ở đây, chúng ta sử dụng Visual Studio để lập trình cho thiết bị.
Visual Studio cung cấp đầy đủ tính năng, sự thân thiện để ta có thể tiếp
cận lập trình Windows Mobile một cách nhanh nhất. Nó hỗ trợ đầy đủ các
chức năng, các loại ứng dụng phát triển, hỗ trợ ngôn ngữ C#, Visual Basic,
cũng như tạo các Setup Project để triển khai ứng dụng một cách dễ dàng.
* Các nền tảng được hỗ trợ trong Visual Studio:
- Windows Mobile 2003 SE Pocket PC
- Windows Mobile 2005 Pocket PC
- Windows Mobile 2005 Smartphone

- Windows Mobile 6 Classic
- Windows Mobile 6 Standard
- Windows Mobile 6 Professioncal

Sinh viên thực hiện: Đinh Hữu Quyết

8


Giáo viên hướng dẫn: Nguyễn Cơng Nhật

* Trình soạn thảo:

Hình 1-1: Giao diện soạn thảo

Hình 1-2: Các cơng cụ hỗ trợ

Sinh viên thực hiện: Đinh Hữu Quyết

9


Giáo viên hướng dẫn: Nguyễn Công Nhật

3.3. Thiết bị để kiểm tra ứng dụng:
3.3.1 Lợi ích của việc sử dụng Emulator:
+ Khơng tốn chi phí cho việc sắm thiết bị để kiểm tra ứng dụng. Điều
này đặc biệt quan trọng vì các thiết bị di động thường có cấu hình, khuôn
dạng (form) và các nhà sản xuất khác nhau.
+ Tất cả mọi lập trình viên đều có thể cài đặt lại thiết bị, có điều kiện để

thử nghiệm nhiều hệ điều hành khác nhau cho việc kiểm tra chương trình.
+ Phục vụ việc triển khai ứng dụng nhanh hơn nhờ tính năng lưu giữ
trạng thái.
3.3.2. Visual Studio Device Emulator
Khi phát triển một ứng dụng, thì vấn đề là chúng ta phải kiểm tra được
ứng dụng đó. Windows Mobile SDK cung cấp 1 bộ công cụ Emulator để giả
lập thiết bị thật, nó hỗ trợ đầy đủ tính năng của 1 thiết bị thật.
Là công cụ giả lập giúp bạn chạy thử chương trình trong trường hợp bạn
khơng có chiếc PPC hay SmartPhone thật nào, hoặc bạn muốn kiểm tra
chương trình trên nhiều loại máy khác nhau như WM 2003,WM2005…
Emulator đi kèm với Windows Mobile 5.0 SDK nên chỉ cần cài đặt SDK là
đủ.
Tính năng hệ điều hành đầy đủ như thiết bị thật, cả Windows CE và
Windows Mobile.
Tính năng đầy đủ của thiết bị, hỗ trợ chipset ARM. Hỗ trợ phần cứng giả
lập như cổng COM, Network Card.
* Trình quản lý thiết bị ảo
+ Điều khiển thiết bị ảo:
- Start
- Shutdown
- Reset
Sinh viên thực hiện: Đinh Hữu Quyết

10


Giáo viên hướng dẫn: Nguyễn Cơng Nhật

Hình 1-3: Khởi động thiết bị ảo
+ Quản lý Image:

- Save State, filesystem và Memory
- Có thể lưu lại tình trạng cho mỗi platform.
- Khôi phục trạng thái image hệ điều hành.
+ Kết nối thiết bị ảo:
- Cradle
+ Synchronizes
- Mail
- Contacts
- To-Do list
- Tasks
+ Connects to the network using NAT
- Uncradle

Sinh viên thực hiện: Đinh Hữu Quyết

11


Giáo viên hướng dẫn: Nguyễn Công Nhật

3.4. ActiveSync:
+ Là công cụ cho phép kết nối giữa thiết bị Windows Mobile và máy
tính.

Hình 1-4: Khởi động chương trình ActiveSync
+ Để kết nối Emulator với ActiveSync:
- Sử dụng Device Emulator Manager với tùy chọn Cradle.
- Cài đặt kết nối trong ActiveSync phải cho phép kết nối DMA.
3.5. .NET Framework.
.NET Compact Framework là nền tảng cho 1 số ứng dụng cho PPC được

phát triển trên nền Visual Studio .NET.
Hình 1 và Hình 2 so sánh giữa .NET Framework và .NET Compact
Framework

Sinh viên thực hiện: Đinh Hữu Quyết

12


Giáo viên hướng dẫn: Nguyễn Cơng Nhật

Hình 1-5: .NET Framework

Hình 1-6: .NET Compact Framework
Ứng dụng chúng ta viết sử dụng .NET Compact Framework được gọi là
Managed Code, nghĩa là code của ứng dụng được quản lý bởi bộ thư viện
dùng chung CLR (Common Language Runtime). Việc quản lý tài nguyên bộ
nhớ, quản lý luồng và quản lý thực thi code đều được CLR xử lý.
3.5.1. Microsoft Visual Studio .NET 2005:
Là cơng cụ lập trình chính cho máy tính để bàn cũng như PPC chạy hệ
điều hành Windows. Bạn cũng có thể cài Microsoft Visual Studio .NET 2003
Sinh viên thực hiện: Đinh Hữu Quyết

13


Giáo viên hướng dẫn: Nguyễn Công Nhật
tuy nên cài phiên bản mới nhất Microsoft Visual Studio .NET 2008 vì nó hỗ
trợ nhiều tính năng hơn so với phiên bản cũ. Bạn có thể mua đĩa cài ở các của
hàng bán đĩa chương trình.

3.5.2. Windows Mobile 6 Professional SDK :
Chứa nhiều cơng cụ bổ sung để lập trình cho thiết bị di động như
Emulator (Giả lập), CABWIZ (Đóng gói) , Sample Source code, và tài liệu
lập trình khác.
Bạn có thể download miễn phí tại các địa chỉ sau:
* Chương trình chạy
+

Windows

Mobile

6

Professional

SDK

tại

địa

chỉ

/>+ Active Sync 4.5 đây là chương trình cài trên PC giúp bạn đồng bộ (kết
nối) PPC hoặc Smartphone với máy tính để bàn. Download miễn phí tại đây:
/>* Tài liệu:
+ thư viện lập trình Bluetooth bổ sung cho CF
+ thư viện bổ sung lập trình .NET CF
+ Nhiều ví dụ bổ ích

+ Những kỹ thuật nâng cao
+ Lập trình hệ thống PPC
+ Cộng đồng .NET Việt Nam
4. Ngơn ngữ lập trình C#
4.1. Giới thiệu về C#
C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khóa và hơn 10 kiểu
dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu
trúc, hướng đối tượng, hướng thành phần (component oriented).
Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ
liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có
Sinh viên thực hiện: Đinh Hữu Quyết

14


Giáo viên hướng dẫn: Nguyễn Cơng Nhật
những từ khóa dành cho việc khai báo lớp, phương thức, thuộc tính (property)
mới. C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng
gói, thừa kế, đa hình.
Định nghĩa lớp trong C# khơng địi hỏi tách rời tập tin tiêu đề với tập tin
cài đặt như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực
tiếp trong tập tin mã nguồn. Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định
dạng XML.
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có
thể kế thừa duy nhất một lớp cha nhưng có thể cài đặt nhiều giao diện.
C# có kiểu cấu trúc, struct (khơng giống C++). Cấu trúc là kiểu hạng nhẹ
và bị giới hạn. Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể
cài đặt giao diện.
C# cung cấp những đặc trưng lập trình hướng thành phần như property,
sự kiện và dẫn hướng khai báo (được gọi attribute). Lập trình hướng

component được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ
liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thơng tin bảo
mật…
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên
là các thư viện liên kết động (dll) hay tập tin thực thi (exe). Trong .NET, một
Assembly là một đơn vị của việc tái sử dụng, xác định phiên bản, bảo mật, và
phân phối. CLR cung cấp một số các lớp để thao tác với Assembly.
C# cũng cho truy cập bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó
được xem như khơng an tồn. CLR sẽ khơng thực thi việc thu dọn rác tự động
các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải
phóng.

Sinh viên thực hiện: Đinh Hữu Quyết

15


Giáo viên hướng dẫn: Nguyễn Công Nhật

4.2. Một số đặc điểm của C#
4.2.1. C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java
và C++, bao gồm việc loại bỏ những Macro, những Template, đa kế thừa, và
lớp cơ sở ảo (virtual base class).
Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn
đề cho các người phát triển C++. Nếu chúng ta là người học ngơn ngữ này
đầu tiên thì chắc chắn là ta sẽ khơng trải qua những thời gian để học nó!
Nhưng khi đó ta sẽ khơng biết được hiệu quả của ngôn ngữ C# khi loại bỏ
những vấn đề trên.
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta

thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống
về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy
trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn
ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là
thêm vào những cú pháp thay đổi. Ví dụ như, trong C++ có ba tốn tử làm
việc với các thành viên là ::, . , và ->. Để biết khi nào dùng ba toán tử này
cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán
tử duy nhất gọi là . (dot). Đối với người mới học thì điều này và những việc
cải tiến khác làm bớt nhầm lẫn và đơn giản hơn.
* Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì
chúng ta cũng sẽ tìm thấy rằng C# cũng đơn giản. Hầu hết mọi người đều
không tin rằng Java là ngôn ngữ đơn giản. Tuy nhiên, C# thì dễ hơn là Java và
C++.
4.2.2. C# là ngơn ngữ hiện đại
Điều gì làm cho một ngơn ngữ hiện đại? Những đặc tính như là xử lý
ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật
Sinh viên thực hiện: Đinh Hữu Quyết

16


Giáo viên hướng dẫn: Nguyễn Công Nhật
mã nguồn là những đặc tính được mong đợi trong một ngơn ngữ hiện đại. C#
chứa tất cả những đặc tính trên. Nếu là người mới học lập trình có thể chúng
ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu.
* Ghi chú: Con trỏ được tích hợp vào ngơn ngữ C++. Chúng cũng là
nguyên nhân gây ra những rắc rối của ngôn ngữ này. C# loại bỏ những phức
tạp và rắc rối phát sinh bởi con trỏ.
Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an tồn được tích
hợp vào ngơn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++.

4.2.3. C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngơn ngữ hướng đối tượng (Object-oriented
language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình
(polymorphism). C# hỗ trợ tất cả những đặc tính trên. Phần hướng đối tượng
của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau.
4.2.4. C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính
bởi bản thân hay là trí tưởng tượng của chúng ta. Ngơn ngữ này khơng đặt
những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các
dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản
tính, hay thậm chí những trình biên dịch cho các ngơn ngữ khác.
4.2.5. C# là ngơn ngữ ít từ khóa
C# là ngơn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa
được sử dụng để mơ tả thơng tin. Chúng ta có thể nghĩ rằng một ngơn ngữ có
nhiều từ khóa thì sẽ mạnh hơn. Điều này khơng phải sự thật, ít nhất là trong
trường hợp ngơn ngữ C#, chúng ta có thể tìm thấy rằng ngơn ngữ này có thể
được sử dụng để làm bất cứ nhiệm vụ nào. Bảng sau liệt kê các từ khóa của
ngơn ngữ C#.

abstract

default

foreach

object

Sinh viên thực hiện: Đinh Hữu Quyết

sizeof


unsafe
17


Giáo viên hướng dẫn: Nguyễn Công Nhật
as

delegate Goto

operator

stackalloc

ushort

base

Do

If

Out

static

using

bool


double

implicit

override

string

virtual

break

else

In

params

struct

volatile

byte

enum

Int

private


switch

void

case

event

interface

protected This

catch

explicit

internal

public

char

extern

Is

readonly True

checked false


Lock

Ref

Try

class

finally

Long

Return

typeof

const

fixed

namespace Sbyte

Uint

continue float

New

Sealed


ulong

decimal

Null

Short

unchecked

for

while

throw

Bảng 1.2: Từ khóa của ngơn ngữ C#.
4.2.6. C# là ngơn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp,
những lớp này chứa các phương thức thành viên của nó. Những lớp và những
phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình
khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức
chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả.
4.2.7. C# sẽ là một ngơn ngữ phổ biến
C# là một trong những ngơn ngữ lập trình mới nhất. Nhưng ngơn ngữ
này có một số lý do để trở thành một ngôn ngữ phổ biến. Một trong những lý
do chính là Microsoft và sự cam kết của .NET
Microsoft muốn ngôn ngữ C# trở nên phổ biến. Mặc dù một công ty
không thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ. Tuy
nhên, với C# thì khác, nó được sử dụng bởi Microsoft. Nhiều sản phẩm của

Sinh viên thực hiện: Đinh Hữu Quyết

18


Giáo viên hướng dẫn: Nguyễn Công Nhật
công ty này đa chuyển đổi và viết lại bằng C#. Bằng cách sử dụng ngôn ngữ
này Microsoft đa xác nhận khả năng của C# cần thiết cho những người lập
trình.
Micorosoft .NET là một lý do khác để đem đến sự thành công của C#.
.NET là một sự thay đổi trong cách tạo và thực thi những ứng dụng.
Ngồi hai lý do trên ngơn ngữ C# cũng sẽ trở nên phổ biến do những đặc
tính của ngơn ngữ này được đề cập trong mục trước như: đơn giản, hướng đối
tượng, mạnh mẽ...
4.2.8. So sánh ngơn ngữ C# và những ngơn ngữ khác
Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ
dàng của ngơn ngữ Visual Basic. Có thể nó không dễ như Visual Basic,
nhưng với phiên bản Visual Basic .NET (Version 7) thì ngang nhau. Bởi vì
chúng được viết lại từ một nền tảng. Chúng ta có thể viết nhiều chương trình
với ít mã nguồn hơn nếu dùng C#.
Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh
được những lỗi mà thường gặp trong ngơn ngữ C++. Điều này có thể tiết
kiệm được hàng giờ hay thậm chí hàng ngày trong việc hồn tất một chương
trình.
Một điều quan trọng khác với C++ là mã nguồn C# khơng địi hỏi phải
có tập tin header.
Tất cả mã nguồn được viết trong khai báo một lớp.
.NET runtime trong C# thực hiện việc thu gom bộ nhớ tự động. Do điều
này nên việc sử dụng con trỏ trong C# ít quan trọng hơn trong C++. Những
con trỏ cũng có thể được sử dụng trong C#, khi đó những đoạn mã nguồn này

sẽ được đánh dấu là khơng an tồn (unsafe code).
C# cũng từ bỏ ý tưởng đa kế thừa như trong C++. Và sự khác nhau khác
là C# đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic.

Sinh viên thực hiện: Đinh Hữu Quyết

19


Giáo viên hướng dẫn: Nguyễn Công Nhật
Và những thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với
C++ có nhiều cách gọi trong các tình huống khác nhau.
Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C#
được phát triển dựa trên C. Nếu chúng ta quyết định sẽ học Java sau này,
chúng ta sẽ tìm được nhiều cái mà học từ C# có thể được áp dụng.
Điểm giống nhau C# và Java là cả hai cùng biên dịch ra mã trung gian:
C# biên dịch ra MSIL còn Java biên dịch ra bytecode. Sau đó chúng được
thực hiện bằng cách thơng dịch hoặc biên dịch just-in-time trong từng máy ảo
tương ứng. Tuy nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biên
dịch mã ngôn ngữ trung gian sang mã máy. C# chứa nhiều kiểu dữ liệu cơ bản
hơn Java và cũng cho phép nhiều sự mở rộng với kiểu dữ liệu giá trị. Ví dụ,
ngơn ngữ C# hỗ trợ kiểu liệt kệ (enumerator), kiểu này được giới hạn đến một
tập hằng được định nghĩa trước, và kiểu dữ liệu cấu trúc đây là kiểu dữ liệu
giá trị do người dùng định nghĩa.
Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy
nhiên mơ hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao
diện.

Sinh viên thực hiện: Đinh Hữu Quyết


20


Giáo viên hướng dẫn: Nguyễn Cơng Nhật

CHƯƠNG II: TÌM HIỂU VỀ CÔNG NGHỆ BLUETOOTH

I. GIỚI THIỆU VỀ BLUETOOTH
1. Khái niệm Bluetooth.
Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử
giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vơ tuyến qua băng tần
chung ISM (Industrial, Scientific, Medical) trong dãy tầng 2.40- 2.48 GHz.
Đây là dãy băng tầng không cần đăng ký được dành riêng để dùng cho các
thiết bị không dây trong công nghiệp, khoa học, y tế.
Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính
và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử
lại với nhau một cách thuận lợi với giá thành rẻ.
Khi được kích hoạt, Bluetooth có thể tự động định vị những thiết bị khác
có chung cơng nghệ trong vùng xung quanh và bắt đầu kết nối với chúng. Nó
được định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói.
2. Lịch sử, hình thành và phát triển của Bluetooth.
2.1. Lịch sử tên Bluetooth:
Bluetooth là tên của nhà vua Đan Mạch- Harald I Bluetooth (Danish
Harald Blåtand) (910-985). Harald Bluetooth đã hợp nhất Đan Mạch và
Norway. Ngày nay Bluetooth là biểu tượng của sự thống nhất giữa Computer
và Telecom, giữa cơng nghệ máy tính và cơng nghệ truyền thơng đa phương
tiện.
2.2. Hình thành và phát triển của Bluetooth:
Lần đầu tiên hãng Ericsson đưa ra một đề án nhằm hợp nhất liên lạc giữa
các loại thiết bị điện tử khác nhau mà không cần phải dùng đến các sợi cáp

nối cồng kềnh, phức tạp vào năm 1994. Ðây thực chất là một mạng vô tuyến
không dây cự ly ngắn chỉ dùng một vi mạch cỡ 9mm có thể chuyển các tín
Sinh viên thực hiện: Đinh Hữu Quyết

21


Giáo viên hướng dẫn: Nguyễn Cơng Nhật
hiệu sóng vơ tuyến điều khiển thay thế cho các sợi dây cáp điều khiển rối rắm.
Đến năm 1998, 5 công ty lớn trên thế giới gồm Ericsson, Nokia, IBM, Intel và
Toshiba đã liên kết, hợp tác thiết kế và triển khai phát triển một chuẩn công
nghệ kết nối không dây mới mang tên BLUETOOTH nhằm kết nối các thiết
bị vi điện tử lại với nhau dùng sóng vơ tuyến.
Bluetooth hiện đang có tốc độ phát triển khá nhanh với khả năng ứng
dụng ngày càng đa dạng, theo tính tốn của cơng ty nghiên cứu thị trường
Frost & Sulivan, trong năm 2001 có 4.2 triệu sản phẩm sử dụng công nghệ
Bluetooth được đưa ra thị trường, con số này sẽ tăng lên 1.01 tỷ vào năm
2006.
Những năm gần đây, Bluetooth được coi là thị trường năng động và sôi
nổi nhất trong lĩnh vực truyền thơng. Với sự ra đời của cơng nghệ Bluetooth
thì ta có thể lạc quan nói rằng, thời kỳ kết nối bằng dây hữu tuyến giữa các
thiết bị đã đến hồi kết thúc, thay vào đó là khả năng kết nối không dây thông
minh và trong suốt, điều này sẽ là hiện thực chỉ trong một tương lai gần mà
thôi.
3. Một số đặc điểm của Bluetooth.
Tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết
bị, bao gồm cả các thiết bị cầm tay và điện thoại di động
Giá thành hạ (Giá một chip Bluetooth đang giảm dần, và có thể xuống
dưới mức 5$ một đơn vị).
Khoảng cách giao tiếp cho phép :

• Khoảng cách giữa hai thiết bị đầu cuối có thể lên đến 10m ngồi trời,
và 5m trong tịa nhà.
• Khoảng cách thiết bị đầu cuối và Access point có thể lên tới 100m
ngồi trời và 30m trong tịa nhà.
Bluetooth sử dụng băng tần khơng đăng ký 2.4Ghz trên dãy băng tần
ISM. Tốc độ truyền dữ liệu có thể đạt tới mức tối đa 1Mbps (do sử dụng tần
Sinh viên thực hiện: Đinh Hữu Quyết

22


Giáo viên hướng dẫn: Nguyễn Công Nhật
số cao) mà các thiết bị không cần phải thấy trực tiếp nhau (light-of-sight
requirements)
Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng
này với một ứng dụng khác thông qua các chuẩn “Bluetooth profiles”, do đó
có thể độc lập về phần cứng cũng như hệ điều hành sử dụng.
Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để
truyền tiếng nói, và 7 kênh để truyền dữ liệu trong một mạng cá nhân.
An toàn và bảo mật: được tích hợp với sự xác nhận và mã hóa (build in
authentication and encryption)
Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần
mềm hỗ trợ.
4. Ứng dụng của Bluetooth.
4.1. Thiết bị thơng minh.
Gồm có các loại điện thoại di động, PDA, PC, cellphone, smartphone…
Điện thoại di động: Sony Ericsson P800, P900, Nokia 3650, 7610, 7650…
Công nghệ Bluetooth gắn sẵn trên thiết bị di động nên không cần dùng cáp.
Có thể kết nối với tai nghe Bluetooth, camera kỹ thuật số hay máy tính, cho
phép người dùng xem tivi, chụp ảnh, quay phim, nghe MF3, FM, duyệt web

và email từ điện thoại…
4.2. Thiết bị truyền thanh.
Gồm các loại tai nghe (headset), loa và các trạm thu âm thanh…
Công ty Logitech chuyên sản xuất thiết bị ngoại vi cho máy tính PC vừa
giới thiệu loại tai nghe Bluetooth di động. So với các tai nghe bluetooth khác
trên thị trường, tai nghe HS02 hỗ trợ tiêu chuẩn Bluetooth phiên bản 1.2 và có
loa nghe lớn 2cm.
Tiêu chuẩn Bluetooth 1.2 giảm thời gian kết nối và tiêu thụ điện năng
khi nối với thiết bị Bluetooth 1.2 khác. Ngoài ra khả năng sử dụng công nghệ

Sinh viên thực hiện: Đinh Hữu Quyết

23


Giáo viên hướng dẫn: Nguyễn Công Nhật
tần số tiêu chuẩn 1.2 giúp tránh xung nhiễu từ các thiết bị tần số 2,4Ghz khác
như mạng không dây WiFi và các điện thoại không dây.
Với hỗ trợ Bluetooth 1.2, âm thanh nghe qua tai nghe to, như trên loa.
Tai nghe cung cấp tần số trả về lớn và có âm lượng tối đa lớn hơn cần
thiết để sử dụng trong trường hợp nhất định.
4.3. Thiết bị truyền dữ liệu.
Gồm chuột, bàn phím, joystick, camera, bút kỹ thuật số, máy in, LAN
access point…
4.4. Các ứng dụng nhúng.
Điều khiển nguồn năng lượng trong xe hơi, các loại nhạc cụ, trong công
nghiệp, y tế…
4.5. Một số ứng dụng khác.
Do số lượng công ty tham gia vào tổ chức SIG ngày càng nhiều, vì vậy,
số lượng các loại sản phẩm được tích hợp cơng nghệ Bluetooth được tung ra

thị trường ngày càng nhiều, bao gồm cả các thiết bị dân dụng như tủ lạnh, lị
vi sóng, máy điều hòa nhiệt độ, các loại đồ chơi...
II. KỸ THUẬT BLUETOOTH
1. Một số khái niệm dùng trong công nghệ Bluetooth.
1.1. Master Unit :
Là thiết bị duy nhất trong 1 Piconet, Master thiết lập đồng hồ đếm xung
và kiểu bước nhảy (hopping) để đồng bộ tất cả các thiết bị trong cùng piconet
mà nó đang quản lý, thường là thiết bị đầu tiên chuyển đổi dữ liệu. Master
cũng quyết định số kênh truyền thơng. Mỗi Piconet có một kiểu hopping duy
nhất.
1.1. Slaver Unit :
Là tất cả các thiết bị còn lại trong piconet, một thiết bị khơng là Master
thì phải là Slave. Tối đa 7 Slave dạng Active và 255 Slave dạng Parked
(Inactive) trong 1 Piconet.
Sinh viên thực hiện: Đinh Hữu Quyết

24


Giáo viên hướng dẫn: Nguyễn Cơng Nhật
Có 3 dạng Slave trong một Piconet:
• Active: Slave hoạt động, có khả năng trao đổi thông tin với Master và
các Slave Active khác trong Piconet. Các thiết bị ở trạng thái này được phân
biệt thông qua 1 địa chỉ MAC (Media Access Control) hay AMA (Active
Member Address ) - đó là con số gồm 3 bit. Nên trong 1 Piconet có tối đa 8
thiết bị ở trang thái này (1 cho Master và 7 cho Slave).
• Standby: Standby là một dạng inactive, thiết bị trong trạng thái này
khơng trao đổi dữ liệu, sóng radio khơng có tác động lên, cơng suất giảm đến
tối thiểu để tiết kiệm năng lượng, thiết bị khơng có khả năng dị được bất cứ
mã truy cập nào. Có thể coi là những thiết bị trong nằm ngoài vùng kiểm sốt

của Master.
• Parked: là một dạng inactive, chỉ 1 thiết bị trong 1 Piconet thường
xuyên được đồng bộ với Piconet, nhưng khơng có 1 địa chỉ MAC. Chúng như
ở trạng thái "ngủ" và sẽ được Master gọi dậy bằng tín hiệu "beacon" (tín hiệu
báo hiệu). Các thiết bị ở trạng thái Packed được đánh địa chỉ thông qua địa
chỉ PMA (Packed Member Address). Đây là con số 8 bits để phân biệt các
packed Slave với nhau và có tối đa 255 thiết bị ở trạng thái này trong 1
Piconet.
1.2. Piconet:
Picotnet là tập hợp các thiết bị được kết nối thơng qua kỹ thuật Bluetooth
theo mơ hình Ad-Hoc (đây là kiểu mạng được thiết lập cho nhu cầu truyền dữ
liệu hiện hành và tức thời, tốc độ nhanh và kết nối sẽ tự động huỷ sau khi
truyền xong). Trong 1 Piconet thì chỉ có 1 thiết bị là Master. Đây thường là
thiết bị đầu tiên tạo kết nối, nó có vai trị quyết định số kênh truyền thơng và
thực hiện đồng bộ giữa các thành phần trong Piconet, các thiết bị cịn lại là
Slave. Đó là các thiết bị gửi yêu cầu đến Master.
Lưu ý rằng, 2 Slave muốn thực hiện liên lạc phải thông qua Master bởi
chúng không bao giờ kết nối trực tiếp được với nhau, Master sẽ đồng bộ các
Sinh viên thực hiện: Đinh Hữu Quyết

25


×