Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1

Tóm tắt: FLEET là một giao thức đặc trưng duy nhất chỉ có trên QNX, là giao

thức mạng cực nhẹ, tốc độ cao. Về mặt logic, nhờ có thiết kế sáng tạo và tính năng

phong phú, QNX FLEET có thể “biến” các máy tính độc lập trở thành một siêu máy

tính. Khối BM-1 là khối máy tính điều khiển máy КБ163П trong hệ thống điều khiển

phóng tên lửa 3M-24Э trên tàu (КАСУ).Bài báo này trình bày một số ứng dụng kỹ

thuật truyền thông điệp trên giao thức QNX FLEET trong kiểm tra tình trạng kỹ

thuật của khối BM-1.

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 1

Trang 1

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 2

Trang 2

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 3

Trang 3

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 4

Trang 4

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 5

Trang 5

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 6

Trang 6

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1 trang 7

Trang 7

pdf 7 trang xuanhieu 4300
Bạn đang xem tài liệu "Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1

Ứng dụng kỹ thuật truyền thông điệp trên giao thức mạng FLEET đặc trưng của QNX 4 trong kiểm tra kỹ thuật khối máy tính MB-1
ng thông mạng bằng 
cách sử dụng nhiều card mạng trên mỗi máy tính và kết nối chúng qua các đường 
cáp khác nhau, thậm chí còn còn thể phối hợp đồng thời các card mạng trên cùng 
một máy tính. Chẳng hạn, trên card máy tính K30 của hệ thống M360 của tàu 
ngầm kilo sử dụng đồng thời tới 4 card mạng ethernet. 
 Các driver mạng FLEET được thiết kế cho hầu hết các hạ tầng mạng. Khi một 
tiến trình gửi một khối lượng lớn dữ liệu thông qua mạng ethernet tới một tiến 
trình khác, thông lượng trên mạng đạt được là rất ấn tượng như bảng thống kê 
dưới đây: 
 Bảng 1. Bảng so sánh hiệu năng QNX FLEET. 
Mạng Số lượng tiến trình client Thông lượng 
Ethernet 10 Mbit 1 1,1 triệu byte/giây 
Ethernet 100 Mbit 1 7,4 triệu byte/giây 
 Nhờ FLEET, mạng QNX có khả năng linh hoạt hết sức mạnh mẽ. Các tiến 
trình mạng được thiết kế độc lập với hệ điều hành, cho phép ta có thể chạy hay 
dừng hệ điều hành bất cứ lúc nào. Điều này có nghĩa là chúng ta có thể bổ sung 
thêm các node vào mạng hoặc bớt các node ra mà không cần cấu hình lại hệ thống. 
Nhờ khả năng nối cầu mạng tự động, ta thậm chí còn có thể thêm một mạng vật lý 
khác vào mạng đang có. 
 Các tiến trình mạng của FLEET được tích hợp sâu vào trong trái tim của hệ 
thống truyền thông điệp và quản lý tiến trình, làm cho IPC trên một node và trên 
toàn mạng là hoàn toàn như nhau. Do IPC là trong suốt đối với mạng, nên một 
mạng lưới các nút máy tính độc lập sẽ hoạt động giống như một siêu máy tính. Do 
đó, chúng ta sẽ không cần phải cấu hình các ứng dụng để chạy trên mạng nữa. 
 QNX 4 chứa một số bộ công cụ phân tích, duy trì hoạt động của mạng rất 
mạnh như: alive thống kê các node máy đang hoạt động trên mạng, netboot cho 
phép khởi động một node máy tính thông qua mạng, netinfo thống kê thông tin sử 
dụng mạng 
2.2. Kỹ thuật truyền thông điệp 
 Trên hệ thống các node máy tính QNX 4 kết nối với nhau thông qua mạng 
ethernet, các tiến trình trên node máy này có thể trao đổi thông tin với tiến trình 
trên node máy khác thông qua các phương thức: 
 - Gửi/nhận/phản hồi với những gói tin đơn giản 
 - Bộ nhớ chia sẻ theo tiêu chuẩn POSIX với những dữ liệu lớn. 
 QNX cung cấp thư viện các hàm truyền thông điệp cơ bản, cho phép các tiến 
trình có thể linh hoạt gửi/nhận/phản hồi cho nhau như bảng dưới đây. 
250 P. X. Công, D. M. Cường, N. Đ. Thịnh, “Ứng dụng kỹ thuật truyền  máy tính BM-1.” 
Thông tin khoa học công nghệ 
 Bảng 2. Bảng các hàm truyền thông điệp đặc trưng QNX. 
Tên hàm Mục đích sử dụng 
Creceive() Kiểm tra xem có thông điệp nào được gửi đến từ tiến trình đặc 
Creceivemx() tả bởi PID 
Readmsg() Đọc n bytes vào bộ đệm từ tiến trình đặc tả bởi PID 
Readmsgmx() Đọc dữ liệu vào mảng các bộ đệm từ tiến trình đặc tả bởi PID 
Receive() 
 Chờ một thông điệp từ tiến trình đặc tả bởi PID 
Receivemx() 
 Lấy thông điệp nhận được từ một tiến trình nguồn, sau đó 
Relay() 
 chuyển tiếp thông điếp tới tiến trình đích 
Reply() Phản hồi dữ liệu tới tiến trình PID. Sendmx() cho phép gửi 
Replymx() thông điệp theo mảng nhiều gói tin nhỏ. 
Send() Gửi một thông điệp tới tiến trình PID. Sendmx() cho phép gửi 
Sendmx() thông điệp theo mảng nhiều gói tin nhỏ. 
 Gửi một thông điệp tới tiến trình gắn với một fd (file 
Sendfd() 
 descriptor) nhất định. Sendfdmx() cho phép gửi mảng các 
Sendfdmx() 
 thông điệp. 
Trigger() Kích thích một proxy để gửi thông điệp tới tiến trình sở hữu nó 
Writemsg() Ghi n bytes dữ liệu từ bộ đệm tới bộ đệm phản hồi đặc tả bởi 
Writemsgmx() một tiến trình PID 
 Vi nhân QNX cung cấp khả năng truyền thông điệp thông qua các phiên bản 
khóa chờ của hàm Send(), Receive() và Reply(). Tức là, khi một tiến trình thực 
hiện hàm gửi Send() tới một tiến trình khác, nó sẽ bị khóa cho tới khi tiến trình kia 
thực hiện hàm Receive() để xử lý thông điệp và gọi hàm Reply() để trả lời. Nếu 
một tiến trình gọi hàm Receive() mà không có thông điệp nào đang đợi thì nó cũng 
bị khóa cho tới khi có tiến trình gọi hàm Send() tới nó. Bởi vì thông điệp được sao 
chép nguyên thủy trực tiếp từ tiến trình này tới tiến trình kia, nên hiệu năng trao 
đổi thông tin sẽ phụ thuộc vào băng thông của phần cứng mạng. Mọi dịch vụ hệ 
thống đều được triển khai dựa trên cơ chế nguyên thủy này. 
 Hình 1. Các trạng thái thay đổi trong truyền thông điệp. 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 251 
 Công nghệ thông tin 
 Tiến trình có thể yêu cầu các thông điệp được giao trong thứ tự ưu tiên thay vì 
theo thứ tự thời gian, và hoạt động của tiến trình được xử lý ở mức ưu tiên của tiến 
trình có độ ưu tiên cao nhất đang bị khóa chờ dịch vụ. 
 Giao tiếp mạng mức thấp được cài đặt trực tiếp trong vi nhân QNX và được 
cung cấp bởi trình quản lý mạng, có đầy đủ các chức năng cần thiết đề truyền 
thông điệp giữa các vi nhân với nhau trong mạng LAN. 
2.3. Kỹ thuật gửi thông điệp nhiều mảnh kết hợp vùng nhớ chia sẻ 
 Truyền thông điệp trên QNX cũng cho phép các bên có thể gửi tin nhắn thành 
nhiều phần nhỏ, các tin nhắn sẽ không bị chiếm một vùng nhớ liên tục trong bộ 
nhớ. Thay vào đó, cả hai tiến trình gửi và nhận có thể chỉ định một bảng cho biết 
nơi gửi và nhận được mảnh tin tồn tại trong bộ nhớ. Các tin nhắn gửi đi sẽ là khối 
header tách khỏi khối dữ liệu, làm tăng hiệu suất truyền tin. Ngoài ra, nếu cấu trúc 
dữ liệu là bộ đệm vòng, ta có thể cài đặt thông điệp gồm 3 phần, 1 header và 2 
vùng riêng biệt bên trong bộ đệm vòng. Tệp tiêu đề thư viện sendmx.h chứa khai 
báo của hai kiểu cấu trúc dữ liệu MX _mxfer_entry và định nghĩa macro _setmx() 
để thiết lập cấu trúc này. 
 Vùng nhớ chia sẻ là một phương thức truyền thông liên tiến trình có băng 
thông cao nhất. Khi một đối tượng chia sẻ được tạo ra, các tiến trình truy cập đến 
nó có thể sử dụng con trỏ để trực tiếp đọc/ghi dữ liệu lên đó. Như thế, bản thân 
việc truy cập đến đối tượng chia sẻ là không đồng bộ. Nếu một tiến trình đang cập 
nhật dữ liệu trên vùng nhớ chia sẻ, nó cần phải có phương thức chặn các tiến trình 
khác can thiệp vào vùng nhớ này. Để giải quyết xung đột, vùng nhớ chia sẻ thường 
được cài đặt chung với các phương thức đồng bộ hóa nguyên thủy. Nếu các cập 
nhật dữ liệu là nhỏ lẻ, thì bản thân các phương thức đồng bộ hóa nguyên thủy lại 
làm mất lợi thế băng thông cao của vùng nhớ chia sẻ. Do đó, vùng nhớ chia sẻ chỉ 
hiệu quả nhất đối với các khối dữ liệu lớn. Sự kết hợp của truyền thông điệp và 
vùng nhớ chia sẻ sẽ đạt được đồng bộ hóa tự nhiên và hiệu suất rất cao. 
 Mô hình vùng nhớ chia sẻ đơn giản không thể được sử dụng giữa các tiến trình 
trên máy tính trong mạng. Nhưng, truyền thông điệp lại là mạng trong suốt. Như 
thế, server có thể sử dụng bộ nhớ chia sẻ cho các client cục bộ và truyền thông 
điệp đầy đủ dữ liệu cho các client ở xa. QNX là hệ điều hành dựa UNIX, nên nó 
cũng hỗ trợ giao thức trao đổi thông qua vùng nhớ chia sẻ theo tiêu chuẩn POSIX, 
với các hàm như trong bảng sau: 
 Bảng 3. Bảng các hàm truyền thông điệp được cung cấp trên QNX. 
Tên hàm Mô tả Phân loại 
mmap() Ánh xạ địa chỉ tiến trình tới bộ nhớ POSIX 
mprotect() Thay đổi bảo vệ bộ nhớ POSIX 
munmap() Bỏ ánh xạ địa chỉ tới vùng nhớ POSIX 
shm_open() Mở một vùng nhớ chia sẻ POSIX 
shm_unlink() Gỡ bỏ vùng nhớ chia sẻ POSIX 
close() Đóng vùng nhớ chia sẻ POSIX 
 Bỏ ánh xạ vùng nhớ, nhưng có thêm nhiều QNX Neutrino 
munmap_flags() 
 điều khiển hơn munmap() 
252 P. X. Công, D. M. Cường, N. Đ. Thịnh, “Ứng dụng kỹ thuật truyền  máy tính BM-1.” 
Thông tin khoa học công nghệ 
 Đồng bộ vùng nhớ chia sẻ với thiết bị lưu POSIX 
msync() 
 trữ vật lý 
shm_ctl(), Tạo thuộc tính đặc biệt cho vùng nhớ chia QNX Neutrino 
shm_ctl_special() sẻ 
 3. ỨNG DỤNG TRONG KIỂM TRA KỸ THUẬT KHỐI BM-1 
 Nhóm phát triển ứng dụng chỉ tập trung vào các thuật toán và phương pháp 
kiểm tra, nội dung và cấu trúc gói tin cần trao đổi với khối BM-1. Việc triển khai 
truyền tin như thế nào là hoàn toàn do hệ điều hành QNX thực hiện. 
3.1. Trao đổi thông tin với khối BM-1 
 Hệ thống КАСУ bao gồm 6 máy giao tiếp với nhau qua hai chuẩn kết nối là 
Ethernet và chuẩn đa truy cập nối tiếp MIL-STD-1553b. Cả 6 máy trên hệ thống 
đều cài hệ điều hành QNX 4.25, sử dụng chuẩn giao tiếp FLEET, được đánh số 
node từ 1 đến 6. Các khối BM-1 của thiết bị КБ163П được gắn node từ 3 đến 6, 
có các giắc cắm từ X1 đến X7. Toàn bộ quá trình trao đổi thông với khối BM-1 
cũng như các module bên trong khối đều thực hiện qua các giắc cắm từ X1 đến 
X6, riêng cáp X7 (COM) được nhà sản xuất sử dụng để cập nhật và chỉnh sửa 
phần mềm. 
3.2. Kiểm tra các module của khối BM-1 
a) Nguyên lý hoạt động của thiết bị kiểm tra 
 Quá trình kiểm tra có thể tóm lược như sau: 
 Khối BM-1 cần kiểm tra được ghép nối với thiết bị kiểm tra tạo thành một 
hệ thống kết nối mạng nội bộ thông qua các cáp nối và giắc cắm từ X1 tới X6 
(thuật ngữ hệ thống ở đây được hiểu là thiết bị kiểm tra đã kết nối đầy đủ với 
khối BM-1). 
 Khi bắt đầu quá trình kiểm tra, thiết bị sẽ cấp nguồn lên BM-1, khối BM-1 
thực hiện quá trình khởi động hệ điều hành và chế độ tự kiểm tra của nó. Khi khối 
BM-1 đã được kết nối với thiết bị kiểm tra và hệ thống đã hoạt động, phần mềm 
điều khiển trung tâm trên thiết bị kiểm tra sẽ gọi các phần mềm và phát ra các lệnh 
kích thích phần cứng để kiểm tra từng module của BM-1. Mạng QNX FLEET sẽ 
chuyển các phần mềm con lên BM-1 để thực hiện quá trình đó. 
 Các phần mềm kiểm tra được chạy trên cả thiết bị kiểm tra (node 1) và trên 
khối BM-1 (là một trong các node 3, 4, 5, 6). Trong suốt quá trình đó, chúng sẽ 
liên tục trao đổi thông tin với phần mềm điều khiển trung tâm chạy trên thiết bị 
kiểm tra. Các thông tin trao đổi bao gồm các lệnh thực hiện, các lệnh logic, các 
lệnh đọc/ghi trên các cổng phần cứng, các gói tin kết quả. Phần mềm điều khiển 
trung tâm sẽ dùng hàm qnx_name_attach() để đăng ký một tên trên hệ thống. Các 
phần mềm kiểm tra module sẽ sử dụng hàm qnx_name_locate() để xác định pid 
của phần mềm điều khiển trung tâm, từ đó gọi hàm Send() để truyền các thông báo 
kết quả kiểm tra về. 
 Việc kiểm tra các module khác nhau thì phương pháp thực hiện khác nhau, 
nhưng quá trình trao đổi với máy tính trung tâm cơ bản là hoàn toàn tương tự nhau. 
b) Một số kết quả thực hiện kiểm tra các module của khối BM-1 
 - Kiểm tra module CPU: Quá trình kiểm tra module CPU được tiến hành theo 
các bước sau: 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 253 
 Công nghệ thông tin 
Bước 1: Tiến hành quét tham số, xác định tính hợp lệ của tham số. Chuẩn bị 
kiểm tra. 
Bước 2: Tạo một vùng segment overlay để phục vụ lấy thông tin của hệ điều hành 
thông qua hàm qnx_osinfo(). 
Bước 3: Thực hiện quá trình kiểm tra chi tiết các thành phần có thể kiểm tra của 
CPU: CMOS, dung lượng RAM, các cổng LPT, COM1, COM2, Ethernet. 
Bước 4: Xử lý kết quả kiểm tra. Thông báo cho phần mềm trung tâm. Kết thúc. 
 - Kiểm tra module MCO: Quá trình kiểm tra module MCO được tiến hành theo 
các bước sau: 
Bước 1: Tiến hành quét tham số, xác định tính hợp lệ của tham số. Chuẩn bị kiểm 
tra. 
Bước 2: Thực hiện kiểm tra kết nối của MCO với CPU qua kênh giao tiếp ISA 8-bit 
Bước 3: Thực hiện kiểm tra kết nối của MCO với tên lửa qua kênh giao tiếp 
ARINC-429 trên cả 32 kênh. 
Bước 4: Xử lý kết quả kiểm tra. Thông báo cho phần mềm trung tâm. Kết thúc. 
 - Kiểm tra module TX1-MP: Việc kiểm tra TX1-MP phải sử dụng card TX1-
MP trên máy kiểm tra để tạo các gói tin trao đổi theo chuẩn MIL-STD-1553B. Quá 
trình kiểm tra tiến hành các bước như sau: 
Bước 1: Tiến hành quét tham số, xác định tính hợp lệ của tham số. Chuẩn bị 
kiểm tra. 
Bước 2: Mở kênh kết nối TMK. Kiểm tra ngắt và driver TX1. 
Bước 3: Thực hiện kiểm tra truyền dữ liệu trên cả 2 kênh cơ bản và dự phòng (bus 
A và bus B) trên cả 2 chế độ có giám sát và không giám sát (RT_MODE và 
BC_MODE). 
Bước 4: Xử lý kết quả kiểm tra. Thông báo cho phần mềm trung tâm. Kết thúc. 
 - Kiểm tra module DI-32-5: Khối BM-1 có 2 module DI-32 có địa chỉ cơ sở 
lần lượt là 0x100 và 0x110. Quá trình kiểm tra mỗi module bao gồm các bước 
như sau: 
Bước 1: Tiến hành quét tham số, xác định tính hợp lệ của tham số. Chuẩn bị 
kiểm tra. 
Bước 2: Tạo các kích thích phần cứng lên card DI để đọc dữ liệu vào. Việc kiểm 
tra được tiến hành đối với tất cả 32 kênh. 
Bước 3: Xử lý kết qủa kiểm tra. Thông báo cho phần mềm trung tâm.Kết thúc. 
 - Kiểm tra module DO-32-5: Quá trình kiểm tra bao gồm các bước như sau: 
Bước 1: Tiến hành quét tham số, xác định tính hợp lệ của tham số. Chuẩn bị 
kiểm tra. 
Bước 2: Đẩy dữ liệu ra card DO-32 đồng thời sử dụng card DI-32 để thu dữ liệu 
đối chiếu.Việc kiểm tra được tiến hành đối với tất cả 32 kênh. 
Bước 3: Xử lý kết qủa kiểm tra. Thông báo cho phần mềm trung tâm.Kết thúc. 
 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 
 FLEET là một giao thức đặc trưng duy nhất chỉ có trên QNX, là giao thức 
mạng cực nhẹ, tốc độ cao. Khi một hệ thống các máy tính QNX nối mạng với 
nhau, các ứng dụng có thể chạy trên các máy khác cũng hoàn toàn giống như chạy 
tại máy cục bộ. Các thiết bị của hệ thống KACY 3Р-60УЭ-1241.8 sử dụng giao 
254 P. X. Công, D. M. Cường, N. Đ. Thịnh, “Ứng dụng kỹ thuật truyền  máy tính BM-1.” 
Thông tin khoa học công nghệ 
thức này trong toàn bộ quá trình hoạt động điều khiển chuẩn bị phóng và phóng tên 
lửa, cũng như quá trình kiểm tra hệ thống. 
 Nhóm phát triển cũng sử dụng giao thức này trong việc thực hiện kiểm tra độc 
lập khối BM-1 bằng thiết bị kiểm tra chạy QNX 4. Kết quả thử nghiệm cho thấy 
quá trình hoạt động, truyền tải các ứng dụng, truyền tải lệnh, trao đổi thông 
tin..được thực hiện rất tốt và tính ổn định, độ tin cậy cao. 
 TÀI LIỆU THAM KHẢO 
[1]. Quân chủng Hải quân, Bộ Tài liệu Hướng dẫn sử dụng Tổ hợp 3Р-60УЭ-
 1241.8. 
[2]. Phạm Hồng Long và các cộng sự, Nghiên cứu, thiết kế hệ thống tổ hợp thiết bị 
 điều khiển phóng tên lửa КАСУ 3Р-60УЭ-12418 và thiết kế, chế thử máy 
 КБ163П, Báo cáo tổng kết đề tài KC-T.11 (2017). 
[3]. QNX Software Systems Ltd, FLEET™ High-performance Networking for the 
 QNX® RTOS, 1998. 
 ABSTRACT 
 APPLYING SOME MESSAGE-PASSING TECHNIQUES 
 ON NETWORK PROTOCOL OF QNX 4 FLEET 
 FOR BM-1 TECHNICAL DIANOGTICS 
 A unique feature of theQNX realtime operating system, FLEET is an ultralight, 
 high-speed networking protocol. Its innovative and feature-richdesign turns isolated 
 machines into a singlelogical supercomputer. The BM-1 block is the control unit of 
 the КБ163П in the 3M-24 missile control system on board (КАСУ). This article 
 presents some message-passing techniques on network protocol of QNX 4 FLEET 
 for BM-1 technical dianogtics. 
Keywords: 3M-24Э missile, КАСУ, BM-1, QNX, FLEET. 
 Nhận bài ngày 16 tháng 8 năm 2017 
 Hoàn thiện ngày 26 tháng 11 năm 2017 
 Chấp nhận đăng ngày 28 tháng 11 năm 2017 
Địa chỉ: 1Viện Công nghệ thông tin/Viện KH&CNQS; 
 2Ban CNTT/Bộ Tham mưu/Tổng cục Hậu cần. 
 *Email: congpx@gmail.com. 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 255 

File đính kèm:

  • pdfung_dung_ky_thuat_truyen_thong_diep_tren_giao_thuc_mang_flee.pdf