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

Thiết kế cài đặt một web server đơn giản trên một board vi xử lý (microcontroller)

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.23 MB, 102 trang )

UỶ BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN

BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN

THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN
TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER)

Mã số đề tài : SV2015-27

Thuộc nhóm ngành khoa học : ĐIỆN TỬ - VIỄN THÔNG
Chủ nhiệm đề tài: TRẦN VĂN CHÂU
Thành viên tham gia:
1. NGUYỄN TUẤN ANH

Giáo viên hướng dẫn :ThS. BÙI CÔNG GIAO

Tp. Hồ Chí Minh, tháng 04 năm 2016


ỦY BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN

BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN

THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN
TRÊN MỘT BOARD VI XỬ LÝ (MICROCONTROLLER)


Mã số đề tài : SV2015-27

Xác nhận của Khoa

Giáo viên hướng dẫn

(ký, họ tên)

(ký, họ tên)

Tp. Hồ Chí Minh, tháng 4 năm 2016

Chủ nhiệm đề tài
(ký, họ tên)


BẢNG TÓM TẮT
THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN
TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER)
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN

Mã số : SV2015-27

1. Vấn đề nghiên cứu(vấn đề, tính cấp thiết)
Thiết kế cài đặt một Web Server đơn giản trên một board vi xử lý(microcontroller)
là mạch stm32f4-Discovery
2.Mục đích nghiên cứu/mục tiêu nghiên cứu
Web Server này được dùng để cài đặt các thông số cho các chương trình ứng dụng
trên Board sau này
3.Nhiệm vụ/nội dung nghiên cứu/câu hỏi nghiên cứu

- Nghiên cứu mạch stm32f4-Discovery
- Nghiên cứu giao thức HTTP , ngôn ngữ HTML, ngôn ngữ JavaScript , trình biên
dịch Keil C ,
4. Phương pháp nghiên cứu
Nghiên cứu qua sách,mạng,giáo trình về các giao thức ngôn ngữ lập trình,viết các
chương trình con để hiểu được các cấu trúc câu lệnh nhằm phục vụ cho việc thiết kế
chương trình Web Server nhúng vào mạch stm32f4-Discovery
5. Kết quả nghiên cứu (ý nghĩa của các kết quả) và các sản phẩm (Bài báo khoa học,
phần mềm máy tính, quy trình công nghệ, mẫu, sáng chế, …)(nếu có)
Thiết lập được một Web Server đơn giản để cài đặt trên board vi xử lý
Web server này sẽ dùng để cài đặt các thông số cho các chương trình ứng dụng
trên board stm32f4 như : Vòng lặp kiểm soát , hệ thống ngắt điều khiển . . .


MỤC LỤC

DANH MỤC BẢNG BIỂU
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
MỞ ĐẦU
1.Lý do chọn đề tài .......................................................................................................... 1
2.Nội dung và bố cục đề tài.............................................................................................. 2
3.Kết luận ........................................................................................................................ 3
CHƯƠNG I : NGHIÊN CỨU MẠCH PHÁT TRIỂN STM32F4-DISCOVERY .............. 4
1)Lịch sử phát triển của kit stm32f4 ................................................................................. 4
2)Đặc điểm ...................................................................................................................... 5
3)Tính năng của kit stm32f4 discovery ............................................................................ 5
4)Ứng dụng .................................................................................................................. 11
CHƯƠNG II : NGHIÊN CỨU NGÔN NGỮ HTML .................................................... 14
1)Định nghĩa ................................................................................................................. 14
2)Cấu trúc cơ bản .......................................................................................................... 15

3)Các thẻ cơ bản trong HTML ...................................................................................... 15
4)Các phần tử của HTML ............................................................................................. 18
5)Ưu điểm,nhược điểm của HTML ............................................................................... 19
6) Ứng dụng .................................................................................................................. 20
CHƯƠNG III : NGHIÊN CỨU JAVASCRIPT ............................................................. 21
1)Định nghĩa ................................................................................................................. 21
2)Vị trí Javascript trong HTML .................................................................................... 21
3)Các lệnh trong Javascript ........................................................................................... 22
4)Các đối tượng trong Javascript ................................................................................... 26


5)Các công cụ phát triển Javascript ................................................................................ 27
6)Ưu điểm,nhược điểm của việc sử dụng Javascript ...................................................... 28
7)Ứng dụng của Javascript ............................................................................................ 29
CHƯƠNG IV : NGHIÊN CỨU CƠ CHẾ LẬP TRÌNH WEB TRONG BỘ CÔNG CỤ
KEIL C ......................................................................................................................... 30
1)Khái niệm .................................................................................................................. 30
2)Các toán tử trong keil C ............................................................................................. 30
3)Cấu trúc lệnh cơ bản trong keil C .............................................................................. 31
4)Cấu trúc cơ bản của một trình biên dịch cho vi điều khiển ......................................... 34
CHƯƠNG V : NGHIÊN CỨU CÔNG CỤ LẬP TRÌNH KEIL C ................................. 38
1)Khái niệm .................................................................................................................. 38
2)Các biến trong keil C ................................................................................................. 38
3)Cách khai báo và sử dụng .......................................................................................... 38
4)Các hàm sử dụng trong Keil C ................................................................................... 39
CHƯƠNG VI : NGHIÊN CỨU GIAO THỨC HTTP ................................................... 41
1)Định nghĩa ................................................................................................................. 41
2)Mô hình HTTP .......................................................................................................... 42
3)Các đặc trưng cơ bản ................................................................................................. 44
4)Cấu trúc cơ bản.......................................................................................................... 44

5)Ưu điểm,nhược điểm của HTTP ................................................................................ 46
6)Ứng dụng .................................................................................................................. 47
CHƯƠNG VII : VIẾT CHƯƠNG TRÌNH WEB SERVER NHÚNG TRONG MẠCH
PHÁT TRIỂN STM32F4-DISCOVERY ....................................................................... 48
CHƯƠNG VIII : KẾT LUẬN-KIẾN NGHỊ ................................................................. 91
1) Kết luận .................................................................................................................... 91
2) Kiến nghị ................................................................................................................. 91


DANH MỤC BẢNG BIỂU
Bảng 1 : Các chân giao tiếp thiết bị của mạch STM32F4-DISCOVERY ......................... 6
Bảng 2 : Các thẻ dùng trong HTML .............................................................................. 18
Bảng 3 : Các ký tự đại diện của các lệnh trong các file script ........................................ 26
Bảng 4 : Các toán tử sử dụng trong Keil C .................................................................... 30


DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Từ viết tắt

Cụm từ đầy đủ

API

Application Programming Interface

BTS

Base Transceiver Station


CLR

Common Language Runtime

CGI

Common Graphics Interface

DSL

Digital Subcriber Line

FCL

Framework Class Library

HTTP

Hypertext Transfer Protocol

GPRS

General Packet Radio Service

HTML

Hypertext Mark-up Language

JS


JavaScript

IPTV

Internet Protocol TV

JIT

Just-In-Time

JVM

Java Virtual Machine

LAN

Local Area Network

HTML5

Hypertext Mark-up Language version 5

MSIL

Microsoft Intermediate Language

NMS

Network Management Station


PSTN

Public Switch Telephone Network

RTOS

RealTime Operating Systems

URI

Uniform Resource Identifier

TCP/IP

Transmission Control Protocol / Internet Protocol


Từ viết tắt

Cụm từ đầy đủ

ADSL

Asymmetric Digital Subscriber Line

SSL

Secure Socket Layer

TLS


Transport Layer Security

RAM

Random Access Memory

ROM

Read Only Memory

GPRS

General Packet Radio Service


THÔNG TIN KẾT QUẢ NGHIÊN CỨU
Đề tài : “THIẾT KẾ CÀI ĐẶT MỘT WEB SERVER ĐƠN GIẢN
TRÊN MỘT BOARD VI XỬ LÝ(MICROCONTROLLER)”
Mã số : SV2015-27
Qua thời gian nghiên cứu với sự nỗ lực cố gắng của bản thân và sự hướng dẫn
nhiệt tình, tận tâm của Thầy Bùi Công Giao, báo cáo đề tài đã được hoàn thành đúng
thời gian như đã định và đã đạt được yêu cầu đặt ra là thiết kế được một Web server đơn
giản trên một board vi xử lý stm32f4 . Từ quá trình thực hiện đề tài, chúng em đã thu
được những kết quả nhất định khi dùng Web Server này để setup các thông số cho các
chương trình ứng dụng trên board như :
- Các hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ như ở các hệ
thống không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn đường,
- Các hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn
đường máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,

- Các hệ thống không thể ngừng hoạt động sẽ gây tổn thất rất nhiều tiền của ví dụ
như các dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các
nhà máy
- Hệ thống có thể điều khiển được thiết bị điện từ xa , người dùng có thể dùng máy
tính đăng nhập vào Webserver và thực thi điều khiển thiết bị ngay trên giao điện Web.
- Các hệ thống có tính năng cảnh báo khi nhiệt độ cao :
+ Khối cảm biến đo nhiệt độ DS18B20 được kết nối tới vi điều khiển cho biết
nhiệt độ phòng.
+ Có chức năng báo động và gửi tín nhăn tới người dùng khi nhiệt độ tăng cao
quá giới hạn cho phép.
Chúng em hy vọng với những kết quả nêu trên cùng với những ý tưởng, góp ý
khác của các thầy cô giáo , các bạn đọc sẽ phát triển hơn nữa đề tài này , khắc phục
những hạn chế , tồn tại của đề tài , làm cho đề tài trở nên phong phú hơn , mang tính
ứng dụng cao hơn vào trong thực tế cuộc sống , phục vụ cho những lợi ích của con
người trong tương lai .


MỞ ĐẦU
1 / Lý do chọn đề tài :
Trong giai đoạn Việt Nam đang hội nhập vào ASEAN , tất cả các lĩnh vực văn hóa
, xã hội , thông tin liên lạc , sản xuất . . .đều cần cải tiến thật tốt để chúng ta được sánh
ngang với các nước bạn ,nên đòi hỏicác hệ thống được dùng để vận hành nền kinh tế
phải đem lại cho nhà sản xuất ngày càng tối đa hóa lợi nhuận , tối thiểu hóa chi phí , tạo
nên tiện ích lớn nhất cho người sử dụng , trong đó có web server nhúng được thiết kế để
thực hiện một số nhiệm vụ chuyên dụng chứ không phải đóng vai trò là các hệ thống máy
tính đa chức năng .
Chúng ta đã từng biết đến các web server trên các máy tính server lớn, bởi vì nó
tương đối quen thuộc trong kỷ nguyên web hiện nay. Tuy nhiên,việc thực hiện một web
server ngay trên hệ thống nhúng chỉ mới phát triển gần đây. Bởi vì việc thực hiện một
server vốn chỉ có thể cài đặt trên các máy tính trước đây lên một hệ thống nhúng không

hề đơn giản, nhất là hệ thống vi điều khiển.
Cùng với sự phát triển của các hệ thống nhúng, vi xử lý. Các ứng dụng trên
internet cũng đã dần dần được tích hợp vào các hệ thống nhúng, hay ngay cả các hệ vi xử
lý. Và một webserver nhúng điển hình nhất chúng ta hay gặp đó là các router kết nối
ADSL gần như đã có mặt trong mỗi nhà
Đó là một thiết bị bé bằng bàn tay (hoặc nhỏ hơn) có khả năng kết nối với internet
và đưa tất cả mọi thứ mình muốn lên mạng internet, và từ đó cho phép chúng ta kiểm
soát, điều khiển , đo đạc, quản lý... từ bất cứ đâu, từ bất cứ thiết bị nào, miễn là có một
kết nối internet, nó mở ra cho chúng ta một khái niệm mới về điều khiển, về quản lý và
kể cả về cuộc sống,
Quay trở lại với web server nhúng, đó là một thiết bị dựa trên hệ thống nhúng, hay
hệ vi xử lý mà có thể giao tiếp được với internet ở cấp độ vật lý (kết nối với đường dây
mạng hay wifi hay GPRS hay 3G ...) và đồng thời phải hỗ trợ được các giao thức mạng
(internet protocol hay TCP/IP Protocol) cho phép chúng ta truy cập web, gởi mail,...
Sự phát triển mạnh mẽ của mạng toàn cầu đã mang đến cho những nhà thiết kế hệ
nhúng một lựa chọn mới là sử dụng một giao diện web thông qua việc kết nối mạng. Điều
Thiết kế Web Server

Page 1


này có thể giúp tránh được chi phí cho những màn hình phức tạp nhưng đồng thời vẫn
cung cấp khả năng hiển thị và nhập liệu phức tạp khi cần đến, thông qua một máy tính
khác. Điều này là hết sức hữu dụng đối với các thiết bị điều khiển từ xa, cài đặt vĩnh viễn.
Các hệ thống nhúng thường nằm trong các cỗ máy được kỳ vọng là sẽ chạy hàng
năm trời liên tục mà không bị lỗi hoặc có thể khôi phục hệ thống khi gặp lỗi. Vì thế, các
phần mềm hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn là phần
mềm cho máy tính cá nhân. Một số vấn đề cụ thể về độ tin cậy như:
Hệ thống không thể ngừng để sửa chữa một cách an toàn, ví dụ như ở các hệ
thống không gian, hệ thống dây cáp dưới đáy biển, các đèn hiệu dẫn đường,… Giải pháp

đưa ra là chuyển sang sử dụng các hệ thống con dự trữ hoặc các phần mềm cung cấp một
phần chức năng.
Hệ thống phải được chạy liên tục vì tính an toàn, ví dụ như các thiết bị dẫn đường
máy bay, thiết bị kiểm soát độ an toàn trong các nhà máy hóa chất,… Giải pháp đưa ra là
lựa chọn backup hệ thống.
Nếu hệ thống ngừng hoạt động sẽ gây tổn thất rất nhiều tiền của ví dụ như các
dịch vụ buôn bán tự động, hệ thống chuyển tiền, hệ thống kiểm soát trong các nhà máy
Chính vì vậy , để đầy nhanh tốc độ công nghiệp hóa , hiện đại hóa chúng ta cần
phải thiết kế được một chương trình Web Server nhúng vào board phát triển stm32f4discovery. Web Server này sẽ dùng để setup các thông số cho các chương trình ứng dụng
trên board như :
Vòng lặp kiểm soát đơn giản
Hệ thống ngắt điều khiển :
Đa nhiệm tương tác
Vì những phức tạp nói trên nên một giải pháp thường được đưa ra đó là sử dụng
một hệ điều hành thời gian thực. Lúc đó, các nhà lập trình có thể tập trung vào việc phát
triển các chức năng của thiết bị chứ không cần quan tâm đến các dịch vụ của hệ điều
hành nữa .

Thiết kế Web Server

Page 2


2 / Nội dung và bố cục đề tài :
Nội dung đề tài được tổ chúc thành các phần chính nhự sau :
Phần mở đầu: Trình bày lý do và mục tiêu nghiên cứu thiết kế chương trìnhWeb
server đơn giản nhúng vào board phát triển stm32f4 - discovery .

-


Chương 1: Nghiên cứu mạch phát triển stm32f4-discovery

-

Chương 2: Nghiên cứu ngôn ngữ HTML
Chương 3: Nghiên cứu Javascript

-

Chương 4: Nghiên cứu cơ chế lập trình web trong bộ công cụ Keil C

-

Chương 5: Nghiên cứu công cụ lập trình Keil C

-

Chương 6: Nghiên cứu giao thức HTTP

-

Chương 7: Viết chương trình Web Server nhúng trong mạch phát
triển stm32f4-discovery
Chương 8: Kết luận + Kiến nghị

3/ Kết luận :
Nghiên cứu thiết kế chương trình Web Server nhúng trong mạch phát triển
stm32f4 – discovery có ý nghĩa rất quan trọng trong việc dùng Web Server này để setup
các thông số cho các chương trình ứng dụngtrên borad sau này , giúp nâng cao hiệu quả
kinh tế . Hơn nữa hoàn toàn có thể ứng dụng cho các hệ thống cần vận hành liên tục

trong quá trình hoạt động .

Thiết kế Web Server

Page 3


Chương I : NGHIÊN CỨU MẠCH PHÁT TRIỂN STM32F4-DISCOVERY
1 / Lịch sử phát triển của kit stm32f4
Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng đã giảm
giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên hướng đến người tiêu
dùng là Intel 4004, được phát minh phục vụ máy tính điện tử và những hệ thống nhỏ
khác.
Tuy nhiên nó vẫn cần các chip nhớ ngoài và những hỗ trợ khác. Vào những năm
cuối 1970, những bộ xử lý 8 bit đã được sản xuất,nhưng nhìn chung chúng vẫn cần đến
những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn đến nhiều
thành phần có thể đưa vào một chip xử lý. Các bộ vi xử lý được gọi là các vi điều khiển
và được chấp nhận rộng rãi. Với giá cả thấp, các vi điều khiển đã trở nên rất hấp dẫn để
xây dựng các hệ thống chuyên dụng. Đã có một sự bùng nổ về số lượng các hệ thống
nhúng trong tất cả các lĩnh vực thị trường và số các nhà đầu tư sản xuất theo hướng này.
Ví dụ, rất nhiều chip xử lý đặc biệt xuất hiện với nhiều giao diện lập trình hơn là
kiểu song song truyền thống để kết nối các vi xử lý. Vào cuối những năm 80, các hệ
thống nhúng đã trở nên phổ biến trong hầu hết các thiết bị điện tử và khuynh hướng này
vẫn còn tiếp tục cho đến nay trong đó có kit stm32f4 discovery là khái niệm hệ thống
nhúng được nhiều người chấp nhận nhất , là hệ thống thực hiện một số chức năng đặc
biệt .
2 / Đặc điểm:
Hệ thống nhúng kit stm32f4 discovery thường có một số đặc điểm chung như sau:
• Các hệ thống nhúng được thiết kế để thực hiện một số nhiệm vụ chuyên dụng

chứ không phải đóng vai trò là các hệ thống máy tính đa chức năng. Một số hệ thống đòi
hỏi ràng buộc về tính hoạt động thời gian thực để đảm bảo độ an toàn và tính ứng dụng;
một số hệ thống không đòi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn giản hóa hệ thống
phần cứng để giảm thiểu chi phí sản xuất.
• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ
thống phức tạp nằm trong thiết bị mà nó điều khiển.
Thiết kế Web Server

Page 4


• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và được lưu
trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash chứ không phải là trong một ổ đĩa
• Phần mềm thường chạy với số tài nguyên phần cứng hạn chế: không có bàn
phím, màn hình hoặc có nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp
3/ Tính năng kit stm32f4 discovery
STM32F4-DISCOVERY giúp khám phá các tính năng của chip ARM
nhằm phát triển các ứng dụng một cách dễ dàng. Nó bao gồm tất cả tính năng cần thiết
cho người mới bắt đầu cũng như người dùng có kinh nghiệm tiếp cận chip ARM một
cách nhanh chóng.
 Vi điều khiển STM32F407VGT6 với 1 MB bộ nhớ Flash, 192 KB bộ nhớ.
ST-LINK / V2 được sử dụng cho việc nạp và debug.
 Nguồn : được cung cấp thông qua cổng USB hoặc từ một nguồn cung cấp điện áp
5V bên ngoài.
 Nguồn cung cấp ra bên ngoài: 3V và 5V.
 LIS302DL hoặc LIS3DSH, cảm biến chuyển động ST MEMS, 3 trục đầu ra kỹ
thuật số gia tốc.
 MP45DT02, ST MEMS cảm biến âm thanh, microphone kỹ thuật số đa hướng.
 CS43L22, DAC âm thanh với lớp tích hợp trình điều khiển loa D.
 LD1 (màu đỏ / màu xanh lá cây) để giao tiếp USB.

 LD2 (màu đỏ) cho điện 3.3V.
 Bốn đèn LED dành cho người dùng sử dụng, LD3 (màu cam), LD4 (màu xanh),
LD5 (màu đỏ) và LD6 (màu xanh).
 2 USB OTG LED LD7 (màu xanh) và VBus LD8 (màu đỏ) quá dòng.
 Hai nút bấm (USER và RESET).
 USB OTG với kết nối micro-AB.
Các chân I/O mở rộng để kết nối nhanh nhằm mục đích tạo các bảng mạch mẫu và
dễ dàng tìm kiếm.
Thiết kế Web Server

Page 5


Bảng 1 : Các chân của mạch giao tiếp sử dụng trong đề tài :

STT

Chân(pin)

Các cổng

USART2_RTS/
USART4_RX/
ETH_RMII_REF_CLK/
1

PA1

ETH_MII_RX_CLK/
TIM5_CH2/

TIMM2_CH2/
ADC123_IN1

USART2_TX/
TIM5_CH3/
2

PA2

TIM9_CH1/
TIM2_CH3/
ETH_MDIO/
ADC123_IN2

USART2_RX/
TIM5_CH4/
TIM9_CH2/
3

PA3

TIM2_CH4/
OTG_HS_ULPI_D0/
ETH_MII_COL/

Thiết kế Web Server

Page 6



STT

Chân(pin)

Các cổng

SPI1_MOSI/
TIM8_CH1N/
TIM14_CH1TIM3_CH2/
4

PA7

ETH_MII_RX_DV/
TIM1_CH1N/
RMII_CRS_DV/
ADC12_IN7

MCO1/
USART1_CK/
5

PA8

TIM1_CH1/
I2C3_SCL/
OTG_FS_SOF

JTDI/
SPI3_NSS/

6

PA15

I2S3_WS/
TIM2_CH1_ETR/
SPI1_NSS

I2C1_SDA/
FSMC_NL/
DCMI_VSYNC/
7

PB7

USART1_RX/
TIM4_CH2

Thiết kế Web Server

Page 7


STT

Chân(pin)

Các cổng

TIM4_CH3/

SDIO_D4/
TIM10_CH1/
8

PB8

DCMI_D6/
OTG_FS_SCL/
ETH_MII_TXD3/
I2C1_SCL/
CAN1_RX

I2C2_SDA/
USART3_RX/
OTG_HS_ULPI_D4/
9

PB11

ETH_RMII_TX_EN/
ETH_MII_TX_EN/
OTG_HS_SDA/
TIM2_CH4

SPI2_NSS/
I2S2_WS/
I2C2_SMBA/
USART3_CK/
10


PB12

TIM1_BKIN/
CAN2_RX/
OTG_HS_ULPI_D5/
ETH_RMII_TXD0/
ETH_MII_TXD0/
OTG_HS_ID

Thiết kế Web Server

Page 8


STT

Chân(pin)

Các cổng
SPI2_SCK/
I2S2_CK/
USART3_CTS/
TIM1_CH1N/

11

PB13

CAN2_TX/
OTG_HS_ULPI_D6/

ETH_RMII_TXD1/
ETH_MII_TXD1/
OTG_HS_VBUS

12

PC1

ETH_MDC/
ADC123_IN11
ETH_RMII_RX_D0/

13

PC4

ETH_MII_RX_D0/
ADC12_IN14
ETH_RMII_RX_D1/

14

PC5

ETH_MII_RX_D1/
ADC12_IN15

Thiết kế Web Server

Page 9



Board mạch stm32F4-DISCOVERY.

Thiết kế Web Server

Page 10


4 / Ứng dụng :
Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như :
KIT STM32F4 DISCOVERY Vòng lặp kiểm soát đơn giản
Theo thiết kế này, phần mềm được tổ chức thành một vòng lặp đơn giản.
Vòng lặp gọi đến các chương trình con, mỗi chương trình con quản lý một phần
của hệ thống phần cứng hoặc phần mềm.
KIT STM32F4 DISCOVERY Hệ thống ngắt điều khiển
Các hệ thống nhúng thường được điểu khiển bằng các ngắt. Có nghĩa là các tác vụ
của hệ thống nhúng được kích hoạt bởi các loại sự kiện khác nhau.
Ví dụ : một ngắt có thể được sinh ra bởi một bộ định thời sau một chu kỳ được
định nghĩa trước, hoặc bởi sự kiện khi cổng nối tiếp nhận được một byte nào đó.
Loại kiến trúc này thường được sử dụng trong các hệ thống có bộ quản lý sự kiện
đơn giản, ngắn gọn . Hệ thống này thường thực hiện một tác vụ đơn giản trong một vòng
lặp chính. Đôi khi, các tác vụ phức tạp hơn sẽ được thêm vào một cấu trúc hàng đợi trong
bộ quản lý ngắt để được vòng lặp xử lý sau đó. Lúc này, hệ thống gần giống với kiểu
nhân đa nhiệm với các tiến trình rời rạc.
KIT STM32F4 DISCOVERY Đa nhiệm tương tác
Một hệ thống đa nhiệm không ưu tiên cũng gần giống với kỹ thuật vòng lặp
kiểm soát đơn giản ngoại trừ việc vòng lặp này được ẩn giấu thông qua một giao
diện lập trình API. Các nhà lập trình định nghĩa một loạt các nhiệm vụ, mỗi
nhiệm vụ chạy trong một môi trường riêng của nó. Khi không cần thực hiện

nhiệm vụ đó thì nó gọi đến các tiến trình con tạm nghỉ (bằng cách gọi "pause", "wait",
"yield"

…).

Ưu điểm và nhược điểm của loại kiến trúc này cũng giống với kiểu vòng lặp kiểm
soát đơn giản. Tuy nhiên, việc thêm một phần mềm mới được thực hiện dễ dàng hơn
bằng cách lập trình một tác vụ mới hoặc thêm vào hàng đợi thông dịch (queueinterpreter).
a. Đa nhiệm ưu tiên
Ở loại kiến trúc này, hệ thống thường có một đoạn mã ở mức thấp thực hiện việc
Thiết kế Web Server

Page 11


chuyển đổi giữa các tác vụ khác nhau thông qua một bộ định thời. Đoạn mã này thường
nằm ở mức mà hệ thống được coi là có một hệ điều hành và vì thế cũng gặp phải tất cả
những phức tạp trong việc quản lý đa nhiệm.
Bất kỳ tác vụ nào có thể phá hủy dữ liệu của một tác vụ khác đều cần phải được
tách biệt một cách chính xác. Việc truy cập tới các dữ liệu chia sẻ có thể được quản lý
bằng một số kỹ thuật đồng bộ hóa như hàng đợi thông điệp (message queues),
semaphores … Vì những phức tạp nói trên nên một giải pháp thường được đưa ra đó là
sử dụng một hệ điều hành thời gian thực. nhà lập trình có thể tập trung vào việc phát triển
các chức năng của thiết bị chứ không cần quan tâm đến các dịch vụ của hệ điều hành nữa.
b. Vi nhân (Microkernel) và nhân ngoại (Exokernel)
Khái niệm vi nhân (microkernel) là một bước tiếp cận gần hơn tới khái niệm hệ
điều hành thời gian thực. Lúc này, nhân hệ điều hành thực hiện việc cấp phát bộ nhớ và
chuyển CPU cho các luồng thực thi. Còn các tiến trình người dùng sử dụng các chức
năng chính như hệ thống file, giao diện mạng lưới,… Nói chung,kiến trúc này thường
được áp dụng trong các hệ thống mà việc chuyển đổi và giao tiếp giữa các tác vụ là

nhanh.
Còn nhân ngoại (exokernel) tiến hành giao tiếp hiệu quả bằng cách sử dụng các lời
gọi chương trình con thông thường. Phần cứng và toàn bộ phần mềm trong hệ thống luôn
đáp ứng và có thể được mở rộng bởi các ứng dụng.
c. Nhân khối (monolithic kernels)
Trong kiến trúc này, một nhân đầy đủ với các khả năng phức tạp được
chuyển đổi để phù hợp với môi trường nhúng. Điều này giúp các nhà lập trình có được
một môi trường giống với hệ điều hành trong các máy để bàn như Linux hay Microsoft
Windows và vì thế rất thuận lợi cho việc phát triển. Tuy nhiên, nó lại đòi hỏi đáng kể các
tài nguyên phần cứng làm tăng chi phí của hệ thống. Một số loại nhân khối thông dụng là
Embedded Linux và Windows CE.
Mặc dù chi phí phần cứng tăng lên nhưng loại hệ thống nhúng này đang tăng
trưởng rất mạnh, đặc biệt là trong các thiết bị nhúng mạnh như Wireless routerhoặc hệ
thống định vị GPS.
Thiết kế Web Server

Page 12


Lý do của điều này là:
• Hệ thống này có cổng để kết nối đến các chip nhúng thông dụng.
• Hệ thống cho phép sử dụng lại các đoạn mã sẵn có phổ biến như các trìnhđiều
khiển thiết bị, Web Servers, Firewalls, …
• Việc phát triển hệ thống có thể được tiến hành với một tập nhiều loại đặc
tính, chức năng còn sau đó lúc phân phối sản phẩm, hệ thống có thể được cấuhình để loại
bỏ một số chức năng không cần thiết. Điều này giúp tiết kiệm đượcnhững vùng nhớ mà
các chức năng đó chiếm giữ.
• Hệ thống có chế độ người dùng để dễ dàng chạy các ứng dụng và gỡ rối.
Nhờ đó, qui trình phát triển được thực hiện dễ dàng hơn và việc lập trình có tínhlinh động
hơn.

• Có nhiều hệ thống nhúng thiếu các yêu cầu chặt chẽ về tính thời gian thựccủa hệ
thống quản lý

Thiết kế Web Server

Page 13


CHƯƠNG II : NGHIÊN CỨU NGÔN NGỮ HTML :
1/Định nghĩa :
HTML(HyperText Markup Language) là một ngôn ngữ dùng để thiết kế (soạn)
các trang Web. Cũng như các ngôn ngữ khác HTML có 02 thành phần chính là các ký
hiệu (Thẻ – Tag(Element)) và cách vận dụng các thẻ này để tạo thành các thành phần của
trang Web hoặc cả trang Web (cú pháp).
-

Dữ liệu của trang web (văn bản , âm thanh , hình ảnh . . .)

-

Các thẻ (tag) HTML dùng để định dạng mô tả cách thức các dữ liệu trên để hiển
thị trên trình duyệt .
Dùng HTML động hoặc Ajax, có thể được tạo ra và xử lý bởi số lượng lớn các

công cụ, từ một chương trình soạn thảo văn bản đơn giản, bạn có thể gõ vào ngay từ
những dòng đầu tiên, cho đến những công cụ xuất bản WYSIWYG phức tạp.
HTML nói chung tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào
mạng Internet. Các file này có chứa thẻ đánh dấu, nghĩa là, các chỉ thị cho chương trình
về cách hiển thị hay xử lý văn bản ở dạng văn bản thuần túy. Các file này thường được
truyền đi trên mạng internet thông qua giao thức mạng HTTP, và sau đó thì phần HTML

của chúng sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan
đảm nhiệm công việc đọc văn bản của trang cho người sử dụng), phần mềm đọc email ,
hay một thiết bị không dây như một chiếc điện thoại di động.
Ðể viết HTML cho trang Web, ta sẽ start chương trình NotePad của Microsoft có
đi kèm theo với Windows. Ðó là một ASCII Editor. Viết xong, y save nó vào một folder
nào đó dễ nhớ. Tên của file này bắt buộc phải có tận cùng là .htm hoặc .html Ví
dụ: file.htm , sau đó hãy open file đó bằng một Browser.
2. Cấu trúc cơ bản:
Một document HTML luôn bắt đầu bằng <html> và kết thúc bằng </html> (trong
đó ta có thể viết nhỏ hoặc viết hoa <html> và </html>). Nhờ có cặp TAG này mà
Browser biắt được đó là HTML – document để trình duyệt. Những chữ đó chỉ để dành
riêng cho Browser, người đọc chỉ nhận được những gì viết giữa cặp TAG <body> và
</body>.
Thiết kế Web Server

Page 14


Trong một HTML Document, ngoài phần body còn có phần head, được viết bởi
cặp tag <head></head>. Nếu ta sử dụng cặp tag này, bắt buộc phải viết thêm một cặp tag
nữa, đó là <title></title> Giữa <title> và </title> là tên của trang web được browser trình
bày phía trên cùng của menubar.
-

<html>. . .</html> : Định nghĩa phạm vi của văn bản .

-

<head>. . .</head> : Định nghĩa các mô tả về trang .


-

<tile> . . .</ tile > : Mô tả tiêu đề trang web .

-

<body>. . .</body> : Xác định vùng thân của trang web nơi chứa các thông tin
3. Các thẻ cơ bản trong HTML:

Một tài liệu HTML được tạo nên từ các cặp thẻ html


Thẻ HTML được bắt đầu bằng dấu < (dấu nhỏ hơn) và kết thúc bằng dấu > (dấu lớn hơn)



Nội dung nằm giữa dấu <> là tên thẻ. Ví dụ <b>, đọc là thẻ b



Cặp thẻ HTML được tạo nên từ thẻ mở và thẻ đóng



Các tag đầu tiên trong một cặp là thẻ bắt đầu, các thẻ thứ hai là thẻ kết thúc



Thẻ Bắt đầu và thẻ kết thúc còn được gọi là thẻ mở và thẻ đóng




Thẻ đóng kết thúc bằng dấu / (</tenthe>)



Nội dung của thẻ sẽ được nằm giữa thẻ đóng và thẻ mở



Một số thẻ chỉ có thẻ mở mà không có thẻ đóng (như các thẻ <img>,
, <hr />)
Ví dụ: Về cặp thẻ: <b>Nội dung thẻ</b>
Các thẻ thường sử dụng trong HTML
3.1. Các thẻ tiêu đề (HTML Headings):



Bao gồm các thẻ từ

đến

: thường được sử dụng để thể hiện cho tiêu đề bài
viết, bản tin, các mục nhấn mạnh . . .



Font chữ (size) của nội dung trong các thẻ giảm từ

đến

(h1 lớn nhất, h6 nhỏ
nhất).
3.2. Đoạn văn bản trong HTML (HTML Paragraphs):
Thiết kế Web Server

Page 15



Đoạn văn bản trong tài liệu HTML được định nghĩa bằng thẻ


3.3. Liên kết (HTML Links):


Một trang website bao gồm rất nhiều trang web (web page), các web page liên kết lại với
nhau để tạo lên website.



Liên kết trong HTML được định nghĩa bằng cặp thẻ <a>
Các thuộc tính (Attribute) của thẻ <a>



href: quy định địa chỉ (url) mà liên kết trỏ tới



target: (đích) thuộc tính này sẽ quy định liên kết sẽ được mở ra ở đâu: _self (trang hiện
tại), _blank (cửa sổ mới), . .
3.4. HTML Line Breaks
:
Sử dụng
để xuống dòng trong một đoạn văn bản
Tuy nhiên chúng ta không nên sử dụng thẻ
trong tài liệu HTML (khuyến cáo)
3.5. HTML Lines (<hr />):
Thẻ <hr /> sẽ tạo một đường kẻ ngang trong trang HTML. <hr /> là thẻ đơn không có thẻ
đóng
3.6. HTML images (Hình ảnh):


Để chèn hình ảnh vào tài liệu HTML ta sử dụng thẻ <img>, đây là thẻ HTML không có
thẻ đóng
-

src=”images.jpg”: Chỉ ra đường dẫn tập tin hình ảnh (có thể là đường dẫn tuyệt
đối hoặc tương đối, vấn đề này mình sẽ giải thích ở một topic khác)

-

alt=”Mô tả ”: Nội dung sẽ được hiển thị khi đường dẫn tới tập tin hình ảnh
không tồn tại

-

title=”Tiêu đề”: Nội dung hiển thị khi đưa trỏ chuột lên hình.

-

width, height: Độ rộng và độ cao của file hình được tính bằng px, nếu không có

thuộc tính width, height thì mặc định sẽ lấy kích thước gốc của file hình
3.7. Các thẻ định dạng khối văn bản :

Thiết kế Web Server

Page 16


×