Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011
VCCA-2011
Nghiên cứu và phát triển phần mềm nhúng đo thông số môi trường trực
tuyến qua mạng internet trên cơ sở ARM core
Researching and developing the embedded software to measure online
environmental parameters via internet based on ARM core
Nguyễn Anh Tuấn, Chu Ngọc Liêm, Thái Quang Vinh, Phạm Ngọc Minh
Nguyễn Đăng Chung, Nguyễn Thành Long, Châu Văn Tú
Phòng Công nghệ tự động hóa - Viện Công nghệ thông tin
18 Hoàng Quốc Việt, Cầu Giấy, Hà Nội
Tel : 0437563558 e-Mail: [email protected]
Tóm tắt: Gần đây với sự phát triển mạnh mẽ của
internet, cùng với nền tảng bộ xử lý ARM core kích
thước nhỏ, nhẹ, tiết kiệm năng lượng và hiệu năng
cao. Việc tích hợp web server trên ARM core và hệ
điều hành nhúng thời gian thực đã mở ra khả năng
kết hợp giữa ARM core và internet tạo nên thiết bị
nhúng nhỏ, gọn ứng dụng trong đo lường trực tuyến
qua mạng internet và nhiều ứng dụng khác. Bài báo
này giới thiệu phần mềm nhúng đo thông số môi
trường trực tuyến qua mạng internet trên nền cơ sở
ARM core.
Abstract: Recently with the strong development of
the internet, along with powered by processors
based on the ARM architecture, lightweight,
energy-saving and high performance. The
integrated web server on the ARM core to open up
the possibility of combining ARM core and
embedded software internet makes compact
measurement applications online through the
Internet and many other applications. This paper
introduces the embedded software to measure
online environmental parameters via internet based
on ARM core
Chữ viết tắt
ARM Acorn RISC Machine
CAN Controller Area Network
HTTP Hypertext Transfer Protocol
MCB Main Control Board
RTL_ARM Run Time Library ARM
RTOS Real-time operating system
SBC Single Board Computer
TCP/IP Internet protocol suite
UART Universal Asynchronous
Receiver/Transmitter
1. Giới thiệu Chúng ta thường biết đến máy chủ web server là
máy chủ có dung lượng lớn, tốc độ cao, được dùng
để lưu trữ thông tin như một ngân hàng dữ liệu,
chứa những website đã được thiết kế cùng với
những thông tin liên quan khác. (các mã Script, các
chương trình, và các file Multimedia). Hệ thống
máy chủ hoạt động dựa trên nền tảng hệ điều hành
Linux hoặc windows server. Các trang web hoặc
các ứng dụng yêu cầu cần phải có máy chủ có bộ
nhớ lớn, phần cứng đủ sức mạnh để có thể đáp ứng
yêu cầu từ các máy trạm.
H. 1 Cấu trúc Client – Server
Chức năng của web server là đưa trang web đến
máy trạm. Điều này có nghĩa là đưa tài liệu của
HTML và bất cứ nội dung nào mà có thể bao gồm
một tài liệu như là: hình ảnh, dữ liệu …
Một máy trạm, thông thường là một web browser
hoặc web crawler, khởi tạo giao tiếp băng cách thực
hiện một yêu cầu cho một nguồn cụ thể bằng cách
sử dụng HTTP và server đáp ứng nội dung tương
ứng với nguồn đó hoặc một tín hiệu báo lỗi nếu
không cho phép truy cập hoặc không tìm thấy.
Trong khi đó, chức năng chính của web server là
cung cấp nội dung, một sự thực hiện đầy đủ cũng
bao gồm một cách thu nôi dung của khách hàng.
Nhiều web server cũng được hỗ trợ server-side-
scripting. Điều đó có nghĩa là cách xử lý của web
server có thể đọc theo kịch bản trong cách tệp tin
riêng. Trong khi đó phần mền web server thực tế lại
không thay đổi được. Thông thường chức năng này
thường để tạo ra cách trang web HTML động trái
với trả về một tài liệu HTML tĩnh. Đó coi lần lượt
là nội dung động vã tĩnh. Cái thứ nhất được sử dụng
cho việc thu và chỉnh sửa thông tin trong cơ sở dữ
liệu. Cái thứ hai nhanh hơn và dễ dành lưu trữ hơn.
Web server nhúng là bộ vi điều khiển có chứa phần
mềm internet cũng như các mã ứng dụng để theo
dõi và kiểm soát hệ thống, hình 2 thể hiện rõ điều
này, ở đây hệ thống yêu cầu bộ nhớ rất nhỏ chỉ
577
Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011
VCCA-2011
khoảng vài MB, bộ xử lý nhanh, hệ điều hành đa
nhiệm. Web server được nhúng vào trong thiết bị để
có thể truy cập từ xa đến thiết bị từ trình duyệt web.
H. 2 Cấu trúc web server nhúng
Những trang web cho web server nhúng được tạo ra
cũng giống như những trang web cho các web
server khác. Ta có thể sử dụng các trình soạn thảo
để biên soạn mã HTML. Đó là một ý tưởng để thể
hiện trang web.
Như vậy với web server nhúng dựa trên nền tảng là
phần cứng sử dụng bộ xử lý hiệu năng cao cùng với
việc nhúng hệ điều hành thời gian thực ( RTOS )
cho phép giải quyết bài toán đo lường trực tuyến
qua mạng internet giá thành hạ, hoạt động bền bỉ,
ổn định và tiết kiệm năng lượng.
2. Phân tích thiết kế hệ thống phần cứng
Hệ thống được thiết kế theo trình tự như hình 2.
Các yêu cầu từ client được phân tích dựa trên
RTOS, web server, TCP/IP và phần cứng là bo
mạch chủ nhúng chương trình web server.
H. 3 Thiết kế cơ bản của hệ thống
H. 4 Tổng quan thiết kế hệ thống
Phần cứng: Hệ thống dựa trên nền tảng phần cứng
của Keil Board MCB 2400 và thiết bị đo thông số
môi trường kết nối với Board MCB 2400 qua cổng
UART.
Board MCB 2400 được Keil thiết kế sử dụng
ARM 7 TDMI-S và tích hợp đầy đủ các ngoại
vi căn bản như: Ethernet, RS232, CAN, SD,
USB host/client, TFT LCD… có thể coi như
một SBC (single board computer). MCB 2400
có ngoại vi đầy đủ thuận tiện cho việc phát
triển ứng dụng đặt ra: Hệ thống giám sát thông
số môi trường thông qua mạng internet. Web
server nhúng phục vụ giám sát môi trường trực
tuyến được thiết kế tu theo yêu cầu và mục
đích cụ thể.
H. 5 Sơ đồ khối phần cứng hệ thống
H. 6 Hình ảnh thực tế MCB2400
578
Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011
VCCA-2011
Bộ đo thông số môi trường đo các thông số
sau: nhiệt độ, độ ẩm, CO, CH4. thiết bị đo gửi
số liệu theo chu kì 30 giây 1 lần qua cổng
UART.
RTOS RTOS là một hệ điều hành đa nhiệm, nhỏ,
gọn đóng vai trò là nhân trong thư viện RTL_ARM,
thư viện RTL_ARM là một tập hợp gồm các thành
phần trung gian dễ dàng cho người dùng trong việc
sử dụng TCP/IP stack, FLASH file system, trình
điều khiển USB, CAN, hỗ trợ gỡ rối và nhân
RTOS. Các thành phần trung gian có thể được sử
dụng độc lập hoặc có thể sử dụng như các dịch vụ
của RTOS.
H. 7 Cấu trúc của RTL_ARM
RL – TCPnet là một sự thực hiện đầy đủ giao thức
RL - TCP Stack. Điểm nổi bật của Stack là giảm
dung lượng bộ nhớ và kích thước code. Chính điều
này làm cho nó phù hợp cho sử dụng client nhỏ với
tài nguyên hạn chế, như hệ thống nhúng. Thư viện
RL – TCPnet cung cấp đầy đủ các phần mềm lập
trình cho ARM7, ARM9 và nhiều sự hỗ trợ khác
H. 8 Cấu trúc RL-TCP
Chương trình được viết bằng cấu trúc C và sau đó
được biên dịch thành mã hex. Để tạo ra ứng dụng,
chúng ta phải có các header và liên kết các thư viện
trong RL – TCPnet vào trong chương trình.
TCP socket
Giao thức điều khiển chuyển đổi (TCP) chạy trên
đỉnh giao thức internet (IP).TCP là một định hướng
kết nối và dịch vụ chuỗi byte đáng tin cậy. Thuật
ngữ kết nối định hướng có nghĩa là hai ứng dụng sử
dụng TCP để thiết lập một kiết nối TCP với nhau ,
trước khi chúng có thể truyền dữ liệu cho nhau.
TCP là một giao thức song công đầy đủ. Điều này
có nghĩa là mỗi kết nối là một cặp chuỗi byte , một
cho mỗi cái. Nó chú ý truyền lại dữ liệu nào mà
không đến được đích cuối cùng và cũng truyền lại
dữ liệu nếu mà có sự sai lệch của dữ liệu thu được.
Giao thức TCP là giao thức truyền dữ liệu trình tự.
Như ta đã biết RL – TCPnet dựa trên mô hình hoạt
động chủ/tớ và sự thiết lập kết nối TCP dựa trên vai
trò ngang nhau. Cả máy chủ và máy tớ đều chuẩn bị
cho sự kết nối bằng một hoạt dộng mở . Tuy nhiên
có hai loai hệ thống open khác nhau
Active open: Quá trình client sử dụng TCP để
lấy quyền chủ động , khởi tạo sự kết nối bằng
việc gửi đi một tin nhắn để bắt đầu kết nối.
Passive open: Quá trình một server được thiết
kế để sử dụng giao thức TCP. Đó là một cách
tiếp cận tốt hơn . Nó thực hiện 1passive open
bằng cách liên lạc với TCP. Cũng giống như
câu nói “ Tôi ở đây và đợi khách hành nói
chuyện với tôi bằng cách gửi tin nhắn cho tôi
thông qua cổng. Open gọi là passive vì ngoài
những chỉ dẫn thì quá trình là lắng nghe, máy
chủ không làm gì cả.
Trong thực tế , 1 passive open có thể chỉ rõ một
máy chủ đợi 1 active open từ một máy tớ cụ thể .
Tuy nhiên không phải mọi RL – TCPnet cũng được
hỗ trợ khả năng này.
Giao thức TCP là dịch vụ chuỗi byte . Nó không
biết gì về khung dữ liệu được chuyển đi. Nó đơn
giản là lấy dữ liệu và đóng gói nó vào trong gói tin
TCP, và gửi nó tới ở máy ở xa. TCP socket sau đó
giữ gói tin trong bộ nhớ và đợi sự xác nhận về từ
máy ở xa.
Nếu gói tin không được xác nhận khi mà thời gian
chờ đợi đã hết thì nó sẽ gửi lại gói tin đó. Xử lý
này lặp lại ở một vài lần trước khi được xác nhận
hoặc dỡ bỏ sự kết nối. Mục đích chính giữ gói tin
nhỏ .Vì lý do đó, TCP socket không thể giữ một số
lượng lớn dữ liệu trong bộ đệm chờ cho tới khi
được xác nhận , nó chỉ giữ gói tin cuối cùng được
gửi trong bộ nhớ cho tới khi nó được xác nhận.
Khi gói tin được xác nhận thì nó sẽ được giải
phóng khỏi bộ nhớ.
3. Phát triển phần mềm nhúng đo
Thiết kế trang web bằng ngôn ngữ HTML.Ta
có thể cho hình ảnh vào trong trang web.
Nếu trang web cần hiển thị các giá trị động, mã
trang trong ngôn ngữ kịch bản .Ta phải cập
nhật CGI để gọi lại hàm cgi_func( ) phù hợp.
Nếu cần thiết ,vẽ hoặc thêm ảnh, mà có thể là
bất cứ loại nào như gif, jpq hoặc pnq. Nhưng
tốt nhất là chọn file nén bởi vì những file này
có trong code và chiếm ít bộ nhớ.
Nạp tất cả các file của trang web vào trong file
điều khiển chuyển đổi có trong FCRAM mà
đầu ra là một file C trong project.
Chương trình web server hoạt động theo chu
trình như hình vẽ dưới đây:
H. 9 Chu trình hoạt động của web server nhúng
579
Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011
VCCA-2011
Sử dụng trình biên dịch Keil uVision3 để nhúng
chương trình web server lên board MCB 2400.
H. 10 File chương trình web server nhúng
Cấu hình thông số mạng cho board MCB 2400, sử
dụng file cấu hình Net_Config.c
H. 11 Cấu hình thông số mạng cho MCB 2400
Cấu hình cổng truyền thông UART1 trong file
HTTP_demo.c
H. 12 Cấu hình cổng truyền thông UART1
Tách số liệu môi trường từ dữ liệu nhận về qua
cổng UART1 trong file HTTP_cgi.c
H. 13 Đoạn chương trình tách số liệu đo
4. Kết quả thử nghiệm
Sau quá trình nghiên cứu và phát triển dựa trên cơ
sở kế thừa và sử dụng những công cụ hữu ích, Sản
phẩm đã hoàn thành với đầy đủ các nội dung yêu
cầu:
Nghiên cứu và phân tích hệ thống giám sát
nhiệt độ, độ ẩm online. Nghiên cứu công nghệ
ARM core bao gồm phần cứng và phần mềm
dùng cho hệ thống giám sát.
Nghiên cứu thiết kế thiết bị xử lí trung tâm đo
nhiệt độ, độ ẩm chạy trên nền Web server dùng
công nghệ ARM core.
H. 14 Hình ảnh thực tế thiết bị đang thử nghiệm
Chế tạo, thử nghiệm thiết bị xử lí trung tâm đo
nhiệt độ, độ ẩm chạy trên nền Web server dùng
công nghệ ARM core và đánh giá nghiên cứu. Hệ thống được cấu hình thử nghiệm sử dụng tài
nguyên IP Tĩnh của viện công nghệ thông tin tại địa
chi:
http://210.245.62.44:80/
Hệ thống được cài đặt để có thể đáp ứng cùng lúc
nhiều máy trạm truy cập, thời gian cập nhật số liệu
được cài đặt là 30s. được thử nghiệm liên tục trong
khoảng thời gian 1 tháng. Kết quả hệ thống đáp ứng
tốt, ổn định. So sánh giữa số liệu thu thập tại chỗ và
580
Hội nghị toàn quốc về Điều khiển và Tự động hoá - VCCA-2011
VCCA-2011
số liệu giám sát trên mạng cho thấy tính ổn định và
tin cậy của thiết bị.
Tuy nhiên do hạn chế về phần cứng sử dụng chip
ARM7, vì vậy web server chỉ cho phép phục vụ tối
đa được 10 truy cập (session) ở cùng một khoảng
thời gian. Các thông số đo có thể được mở rộng ra
thêm nhiều thông số khác tùy thuộc vào thiết bị đo,
chuẩn truyền thông vì ARM7 hỗ trợ nhiều chuẩn
truyền thông khác nhau như UART, CAN, I2C…
Hệ điều hành RTL_ARM nhỏ nhẹ đảm bảo tính
thời gian thực cho hệ thống một cách hiệu quả.
Giao diện Web giám sát thông số môi trường trực
tuyến thông qua mạng Internet
H. 15 Màn hình giao diện web server hiển thị thông
số môi trường
6. Kết luận
Như vậy với nền tảng ARM core cùng với các hệ
điều hành nhúng thời gian thực gọn nhẹ cho phép
tích hợp web server lên ARM core ứng dụng trong
đo lường, giám sát từ xa qua mạng internet. Cùng
với đó là nền tảng ARM core ngày càng trở lên
mạnh mẽ hơn, internet băng thông rộng, không dây
và chuẩn IPv6 mở ra khả năng và nhu cầu rất lớn
trong lĩnh vực đo lường và giám sát từ xa qua mạng
internet.
Tài liệu tham khảo
[1] http://www.arm.vn: Quá trình phát triển của Công nghệ nhúng
[2] Andrew N.SLOSS, Dominic SYMES, Chris WRIGHT: ARM System Developer’s Guide Designing and Optimizing System Software
[3] Edward L. Lamie: Real-Time Embedded Multithreading: Using ThreadX and ARM
[4] Rick Grehan, Robert Moote and Ingo Cyliax: Real-Time Programming: A Guide to 32-bit Embedded Development.
[5] http://www.arm.com
[6] Billy Rakesh Roy, Sanket Dessai and S. G.Shiva Prasad Yadav Design and Development of ARM Processor Based Web ServerV.
[7] www.hitex.co.uk: The insider’s guide to the NXP LPC2300/2400 based microcontrollers
581