Để xây dựng thiết bị đầu cuối 4G LTE có 02 công nghệ hay được sử dụng là ASIC và SDR, mỗi công nghệ đều có điểm đặc trưng riêng:
ASIC (Application-Specific Integrated Circuit): là kỹ thuật sử dụng các IC chuyên dụng phần cứng và tích hợp chúng lại với nhau. ASIC sử dụng nhiều phần cứng, giá có thể sẽ cao hơn so với SDR, tuy nhiên xét về độ ổn định, mặt hiệu năng và công suất tiêu thụ thì ASIC luôn vượt trội.
SDR (Software Defined Radio): là kỹ thuật sử dụng phần mềm thực hiện chức năng của lớp vật lý PHY, về mặt bản chất là sử dụng các bộ ADC/DAC để chuyển từ tín hiệu analog thu được thành tín hiệu số và sử dụng phần mềm để xử lý các chức
26
năng của lớp vật lý như điều chế, mã hóa, giải mã, ghép kênh, đồng bộ, HARQ. Chính vì lý do tiêu thụ năng lượng nhiều hơn ASIC nên SDR thường chỉ sử dụng cho các trạm phát sóng (eNodeB)
Dự án KC.01.10/11-15 lựa chọn sử dụng công nghệ ASIC vì lý do tiết kiệm năng lượng và giảm thiểu thời gian phát triển đồng thời áp dụng chu trình nghiên cứu phát triển và đưa sản phẩm thiết bị đầu cuối 4G LTE ra thị trường theo các bước như sau:
1. Thiết kế mô phỏng (thiết kế và mô phỏng phần vô tuyến),
2. Phát triển/lựa chọn chipset gồm có: module vô tuyến ( bao gồm sản phẩm mẫu và các module chipset), module xử lý băng gốc lớp 1, phát triển các giao thức lớp 2 và lớp 3
3. Thiết kế và tích hợp phần vô tuyến và phần xử lý băng gốc ( thường sử dụng chuẩn giao tiếp DigRF v4.
4. Kiểm tra thiết kế và test thử nghiệm phần vô tuyến.
5. Chuẩn bị rà soát để thực hiện bước kiểm tra mức độ phù hợp với các chuẩn và môi trường hoạt động
6. Kiểm tra mức độ phù hợp với các chuẩn và môi trường hoạt động 7. Kiểm tra hoạt động của thiết bị tại các khai thác nhà mạng
8. Sản xuất hàng loại
9. Phân phối sản phẩm ra thị trường.
Tất cả các bước trên được mô tả trong sơ đồ dưới đây:
27
Trong phạm vi của đề tài, Nhà sản xuất chip đã cung cấp mã nguồn hệ điều hành linux cùng với BSP đã được điều chỉnh phù hợp với SoC (Chip xử lý tín hiệu băng gốc). Công việc thiết kế phần cứng và bo mạch đã được các nhóm khác thực hiện, nhóm thực hiện luận văn chỉ cần thực hiện các bước sau để phát triển phần mềm LTE lớp 2 và cài đặt nó lên NAND Flash của bo mạch modem 4G LTE:
Thiết lập môi trường biên dịch nhân linux và ứng dụng: Thực hiện cài đặt
Toolchain, thường sử dụng máy tính chạy hệ điều hành linux, tải về các bộ công cụ arm- linux-gcc trên mạng hoặc có thể sử dụng bộ công cụ đi kèm của các hãng sản xuất chip (trong phạm vi của đề tài. Đề tài phải mua bản quyền).
Tải nhân Linux, tùy biến và biên dịch nhân: có thể tải về từ www.kernel.org, giải nén cấu trúc thư mục chứa nhân linux gồm khá nhiều thư mục, tuy nhiên được tổ chức rất trật tự và khoa học. Công việc vài đặt mã nguồn BSP vào nhân linux mới tải về rất đơn giản chỉ là giải nén và copy mã nguồn BSP vào các thư mục tương ứng của mã nguồn nhân linux. Trong các gói BSP được cung cấp từ nhà sản xuất chip, có 02 file rất quan trọng cho phép người dùng tùy biến theo mục đích sử dụng:
- Tập tin device tree: Để cho nhân linux có thể hiểu được cấu hình phần cứng bên dưới, chúng ta cần cung cấp cho nhân tập tin device-tree được tạo ra ở bước viết BSP hoặc được nhà sản xuất chip cung cấp sẵn. Tập tin dts này là một tập tin văn bản, được tổ chức theo dạng “cây”. Nó chứa các module phần cứng, địa chỉ được map vào trong bộ nhớ, cùng một số tham số khác. Các thông tin này sẽ được nhân sử dụng lúc boot và lúc nạp các trình điều khiển. Chúng ta sẽ điều chỉnh và chép tập tin dts này vào thư mục arch/arm/boot/dts.
- Tập tin rootfs.cpio: Tập tin *.cpio là tập tin sẽ được nhân linux sử dụng để tạo ra hệ thống file khi nhân vừa khởi động. Hệ thống file này còn thường được gọi với tên “init RAM disk” (trong các nhân linux cũ) hoặc “init RAM file system” (đối với các nhân mới). Đối với các trường hợp đặc biệt (hệ thống không có bộ nhớ flash) thì có thể sử dụng luôn hệ thống file này làm hệ thống file chính, sau khi nhân linux khởi động xong.
- Một tập tin quan trọng cần phải có trong RAM-fs này là tập tin init. Tập tin này sẽ được nhân linux khởi chạy sau khi quá trình nạp của nhân kết thúc. Chương trình init
28
sau đó sẽ có nhiệm vụ khởi tạo các tiến trình cần thiết cho hệ thống. Với mục đích sử dụng cho modem 4G LTE tập tin init sẽ chứa các ứng dụng điều khiển các driver LTE stack, các ứng dụng trace, ghi log,...
Nhân linux xử dụng cơ chế Kconfig để thực hiện việc cấu hình. Kconfig là cơ chế cấu hình tiêu chuẩn hiện nay, nó được sử dụng trong hầu hết các dự án quan trọng hàng đầu của mã nguồn mở như nhân linux, busybox, thư viện μC… Kconfig có cấu trúc khá đơn giản, cho phép sinh ra các menu một cách tự động, trong cả chế độ đồ họa và văn bản, giúp cho việc cấu hình trở nên trực quan và dễ dàng. Việc tìm hiểu về Kconfig vượt ngoài nội dung của luận văn này, chúng ta có thể tìm hiểu thêm tại địa chỉ
http://kernel.org/doc/Documentation/kbuild/kconfig-language.txt
Sau khi hoàn tất việc cấu hình nhân linux và các trình điều khiển đi kèm (LTE lớp 2, lớp 3) ta sẽ chuyển sang thư mục chứa mã nguồn của nhân, và chạy các lệnh biên dịch ví dụ như sau:
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi- make zImage dtbs modules
Kết quả của bước biên dịch nhân linux sẽ cho ra: zImage, dtbs, modules. Để cài đặt nhân linux lên bo mạch thông thường là cài đặt vào NAND flash.
Viết các trình điều khiển thực hiện chức năng LTE Lớp2 và Lớp3: Trên môi trường linux, hạt nhân linux và các module (trình điều khiển thiết bị) cung cấp hàng loạt các hàm cho phép ứng dụng lớp người dùng (user space) tương tác với phần cứng. Một trình điểu khiển tên linux nếu nhìn từ phía không gian người dùng nó thực chất là một file, và người dùng truy xuất đến thiết bị phần cứng thông qua hành động đọc và ghi. Hình 12 dưới đây mô tả giao tiếp của phần kernel với không gian người dùng và thiết bị phần cứng
29
Hình 12. Tương tác giữa trình diều khiển và không gian người dùng cùng thiết bị phần cứng
Trong đó Table 2 function sẽ tùy thuộc vào thiết bị phần cứng đặc trưng và được nhà sản xuất phần cứng cung cấp. Table 1 functions được mô tả như bên dưới tương ứng với các hàm cần thiết phục vụ điều khiển việc truyền tải dữ liệu qua mạng LTE từ bước tải trình điều khiển lên hạt nhân linux, thiết lập kết nối LTE đến mạng, thực hiện gửi/nhận dữ liệu và giải phóng kết nối LTE và cuối cùng là gỡ bỏ trình điều khiển ra khỏi hạt nhân linux.
Events User functions Kernel functions Ghi chú
Load module insmod module_init() Nạp module
Open device fopen file_operations: open Thiết lập phiên LTE Close device fread file_operations: read Nhận dữ liệu
Write device fwrite file_operations: write Truyền dữ liệu
Close device fclose file_operations: release Giải phóng kết nối LTE Remove
module
30
Trên hệ điều hành Linux. Một driver không thể tự nó thực thi mà hoạt động tương tự như một thư viện được nạp và đăng ký các hàm bởi một ứng dụng đang chạy. Driver được viết bằng C, nhưng không có hàm main(). Hơn nữa, bởi vì driver được nạp và liên kết với hệ điều hành, nên nó cần được biên dịch giống cách biên dịch nhân hệ điều hành, và các header files được sử dụng trong mã nguồn driver chỉ là những cái mà nhân hệ điều hành cung cấp, không bao giờ có các hàm của thư viện lập trình C (mà thường để trong thư mục /usr/include).
Quá trình xây dựng trình điều khiển LTE cho hạt nhân linux được thực hiện trên cơ sở tổ chức lại các module phần mềm LTE lớp 2, lớp 3 và đóng gói chúng thành một trình điều khiển sau đó đưa vào trong quá trình biên dịch nhân linux như đã đề cập đến trong các bước bên trên.
Phát triển phần mềm thực hiện các nhiệm vụ xử lý giao thức trong lĩnh vực viễn thông đòi hỏi phải có một bộ khung hỗ trợ cơ chế lập trình hướng sự kiện và buộc phải có bộ định thời có độ phân giải cao và hoạt động chính xác, phần tiếp theo của luận văn sẽ trình bày thiết kế khung ứng dụng libmain và thư viện timer làm nền tảng cho phát triển phần mềm xử lý băng gốc LTE.