Chương 4 57 Ứng dụng công nghệ SDR cho bộ thu GPS
4.1 Phần mềm Radio Xác định là gì?
4.2.2 Phân tích mã nguồn
Cấu trúc thư mục của mã nguồn
Hình 4.2: Cấu trúc thư mục GPS-SDR
Như chúng ta có thể thấy trên các phần mềm GPS-SDR có chín thư mục được tổ chức như sau:
• main: khởi tạo tất cả mọi thứ (phần cứng, ống dẫn, các đối tượng và chủ đề) và dễ dàng tắt tất cả mọi thứ nếu có điều gì sai trái xảy ra.
• includes: chứa các tập tin header.
• usrp: chứa một chương trình cho cấu hình USRP và một trình điều khiển DBSRX.
• simd: Mở rộng đa phương tiện SIMD.
• objects: thực hiện của các đối tượng ren.
• acquisition: thủ tục mua lại tín hiệu.
• accessories: thực hiện FFT, thế hệ của các mã GPS, thế hệ của sóng sin ...
• documentation: Doxygen các tập tin tài liệu.
Tại trang tiếp theo, chúng tôi sẽ mô tả các thư mục quan trọng nhất. Giải thích các đối tượng luồng riêng biệt.
MAIN
Hình 4.3: Nội dung của thư mục chính main/main.cpp
File này có chứa hàm main(). Nó khởi tạo tất cả mọi thứ (phần cứng, ống dẫn, các đối tượng và chủ đề) và sạch sẽ tắt tất cả mọi thứ nếu có điều gì sai trái xảy ra.
1. Phân tích lập luận: thiết lập giá trị mặc định bộ thông số và ghi đè lên chúng cho phù hợp với các đối số truyền cho chương trình chính GPS-SDR.
2. Phần cứng khởi động: dò tìm phần cứng và khởi tạo nó cho chế độ thời gian thực.
Các tùy chọn có thể dò tìm được định nghĩa tại simd/cpuid.cpp
3. Ống khởi tạo: xác định các đường ống để liên lạc giữa các tiến trình.
4. Đối tượng khởi tạo: tạo ra một đối tượng bàn phím để xử lý người dùng nhập, mua lại, Lịch thiên văn, dữ liệu đầu vào (USRP hoặc tập tin), các kênh tương quan, vv
5. Chủ đề khởi tạo: đặt cờ chạy toàn cầu (grun) để sự thật, bắt đầu các sợi bàn phím, các PVT (Vị trí-Vận tốc-Thời gian), các FIFO, các correlators, việc mua lại, các Lịch thiên văn, các sợi vệ tinh lựa chọn và từ xa này.
6. Giữ mọi thứ đang chạy trong khi tất cả các chủ đề đang hoạt động. Kiểm tra nó mỗi 10 ms.
7. Tắt tất cả mọi thứ.
Các chức năng tương ứng (Parse_Arguments(), Hardware_Init(), Pipes_Init() và vv) được quy định tại tập tin init.cpp, và đối tác của họ tắt máy được đặt tại shutdown.cpp.
main/init.cpp
file này khởi tạo phần cứng, các đường ống và các đối tượng ren và bắt đầu lên tất cả luồng.
main/shutdown.cpp
Dừng tất cả các chủ đề, tắt tất cả các đường ống và các đối tượng ren và xóa các biến toàn cầu.
INCLUDES includes/includes.h
Tập tin tiêu đề includes/includes.h bao gồm tiêu chuẩn hệ điều hành các tiêu đề (như stdlib.h, stdio.h, ctype.h, math.h, vv) và một số tập tin quan trọng khác:
• # include "config.h": nhận cấu hình
• # include "signaldef.h": Xác định các thuộc tính của dữ liệu đầu vào
• # include "defines.h": Định nghĩa từ SIS-GPS-200D và một số thứ khác
• # include "macros.h": Macros
• # include "structs.h": cấu trúc được sử dụng cho truyền thông InterProcess
• # include "protos.h": Chức năng và nguyên mẫu thread
• # include "simd.h": Bao gồm các chức năng SIMD Nó cũng bao gồm các đối tượng ren:
• # include "fft.h": đối tượng FFT điểm cố định
• # include "fifo.h": Thông tư đệm dữ liệu cho inporting IF
• # include "keyboard.h": Xử lý người dùng nhập vào từ bàn phím
• # include "correlator.h": tương quan
• # include "channel.h": Theo dõi các kênh
• # include "acquisition.h": Mua lại
• # include "pvt.h": giải pháp PVT
• # include "ephemeris.h": Lịch thiên văn giải mã
• # include "telemetry.h": kernel từ xa
• # include "select.h sv": mua ổ đĩa / reacquisition quá trình
• # include "process.h bài": Khởi nhận từ một tập tin
• # include "globals.h": các biến toàn cầu và đối tượng
include/globals.h
Trong file này có tuyên bố phần mềm như là biến toàn cục “extern”. Các từ khoá mở rộng được sử dụng để xác định rằng biến được khai báo trong một tập tin khác nhau. Đây là chủ yếu được sử dụng để khai báo các biến của phạm vi toàn cầu trong C + + dự án. Khi từ khoá extern sử dụng, các trình biên dịch sẽ không cấp phát bộ nhớ cho biến.
includes/defines.h
Tập tin này định nghĩa các thông số hệ thống một số danh nghĩa. Một trong số họ, đặc biệt là liên quan tần số phát 2048000bps.
includes/config.h
Tập tin này định nghĩa các thông số cấu hình như: số lượng các kênh, số lượng CPU. Lõi, loại dữ liệu và kênh tương quan, hoặc mua lại định nghĩa.
ACCESSORIES accessories/misc.cpp
• void sine_gen (CPX *_dest, double_f, double_fs, int32_samps) tạo ra một quy mô đầy đủ hình sin của tần số lấy mẫu fs e với tần số cho samps samps và đặt nó vào _dest.
• void sine_gen (CPX *_ dest, double_f, double_fs, int32_samps, double p) giống như trên, nhưng thêm một pha liên tục P.