Các thiết bị được kết nối với mạch phát triển S3C2440 qua các cổng giao tiếp RS232 và cổng USB. Mỗi thiết bị là một nguồn tín hiệu riêng biệt độc lập, do đó việc thu thập xử lý thông tin từ các thiết bị này phải được tiến hành một cách riêng biệt trên từng thread riêng. Kỹ thuật lập trình này được gọi là multithread. Cấu trúc chương trình gồm có một Thread cho khối IMU, một Thread cho GPS, một thread cho Modem GPRS, và một thread cho Cảm biến từ. Để thỏa mãn điều kiện tính toán theo thời gian thực thì tất cả các tiến trình này cần phải được hoàn thành nhiệm vụ trong kỳ hạn của nó và trước mỗi chu kỳ tiếp theo. Bài toán lập lịch cho tiến trình dựa trên cơ cở thuật toán Rate-Monotonic Algorithm
Rate-Monotonic Algorithm:
Nếu có thể lập lịch được cho 1 tập các nhiệm vụ (nghĩa là các thời hạn và chu kỳ đều được đáp ứng) với các mức ưu tiên cố định thì việc gắn cho các nhiệm vụ đó các mức ưu tiên theo nguyên tắc nhiệm vụ có chu kỳ ngắn hơn có mức ưu tiên cao hơn sẽ cho phép đưa ra một thuật toán lập lịch tối ưu [57].
Qua đó có thể thấy rằng chu kỳ của IMU là 1/64 giây nên cần có mức ưu tiên cao nhât, tiếp đó là GPS có chu kỳ là 1 giây và GSM/GPRS có chu kỳ là 1 giây. Thông tin từ cảm biến từ 100ms là thông tin bổ trợ nên có mức ưu tiên thấp nhất.
Việc đồng bộ dữ liệu giữa các tiên trình khi dùng chung dữ liệu được sử dụng với kỹ thuật các từ khóa mutex. Khi mỗi tiến trình muốn truy nhập đọc hoặc viết vào dữ liệu chung thì cần khai báo vùng cấm (Cristal Section) bằng việc lock mutex. Sau khi sử dụng xong thì tiến trình đó cần phải unlock mutex cho các tiến trình khác có quyền truy cập dữ liệu này.