Tổng quan
Các nhà thiết kế theo truyền thống sử dụng những ngôn ngữ lập trình như C để phát triển các hệ thống nhúng dựa theo cấu trúc bộ vi xử lí hoặc vi điều khiển. Sự phổ biến của C dẫn đến một hệ sinh thái rộng lớn của các khả năng lựa chọn công nghệ cho các công cụ như là thư viện, trình biên dịch, và hệ điều hành. Mảng cổng lập trình được dạng trường (FPGA) là một công nghệ mới hơn trong lĩnh vực nhúng cung cấp khả năng tạo ra lôgic số tái cấu hình được sử dụng các ngôn ngữ mô tả phần cứng. Để tiêu biểu cho phần cứng và tận dụng bản chất song song hiệu năng cao của mạch số, ngôn ngữ mô tả phần cứng cung cấp những ngữ nghĩa rất khác biệt so với những gì các kĩ sư phần mềm quen sử dụng. Bằng việc đem lại những môi trường phát triển cho FPGA cung cấp các cấu trúc lập trình gần gũi với kĩ sư phần mềm, các kĩ sư phần mềm nhúng có thể tận hưởng những lợi ích của việc sử dụng FPGA trong các thiết kế của họ.
Phát triển FPGA
Việc đưa công nghệ FPGA vào thiết kế hệ thống nhúng cho phép tạo ra lôgic số hiệu suất cao mà không cần thiết kế ASIC tùy chỉnh. Theo truyền thống, việc phát triển FPGA được thực hiện với các ngôn ngữ mô tả phần cứng theo văn bản (text-based) như VHDL hoặc Verilog, được viết bởi các kĩ sư thiết kế số. Không may, do những thử thách về ngôn ngữ và ngữ nghĩa, các ngôn ngữ mô tả phần cứng này gây khó khăn cho việc tận dụng toàn bộ khả năng của thiết kế FPGA. Điều này được chứng minh qua việc truy tìm các ngành công nghiệp nhúng để tìm ra những sự trừu tượng (abstraction) cấp cao hơn cho thiết kế FPGA, như là công cụ C cho các cổng, hoặc các ngôn ngữ lập trình bằng đồ họa như LabVIEW FPGA.
Vì LabVIEW là một ngôn ngữ lập trình có đầy đủ tính năng, các nhà phát triển gần gũi với ngôn ngữ lập trình theo văn bản truyền thống như C sẽ cảm thấy thoải mái khi sử dụng môi trường này, đồng thời có thể tận dụng lợi ích của một nền tảng phần cứng mới – FPGA.
Nền tảng CompactRIO
Nền tảng NI Compact RIO cung cấp một hệ thống nhúng tái cấu hình được chi phí thấp được thiết kế cho các ứng dụng đòi hỏi hiệu năng và độ tin cậy cao. Hệ thống kết hợp một cấu trúc nhúng mở với các mô-đun I/O trong công nghiệp có kích thước nhỏ, cực kì vững chắc, và có thể “trao đổi nóng” (hot-swappable). Nền tảng là một hệ thống nhúng được tổ hợp vững chắc có thể chịu được các môi trường công nghiệp. Cùng với nền tảng CompactRIO, NI Single-Board RIO cung cấp một cấu trúc tương tự mà không cần sự tổ hợp.
Nền tảng RIO bao gồm hai đối tượng khả trình: bộ xử lí dựa trên PowerPC (PowerPC-based) và một FPGA. LabVIEW đặc biệt thích hợp cho lập trình FPGA vì nó tiêu biểu một cách rõ ràng cho tính song song và dòng dữ liệu. Với LabVIEW FPGA Module, quý vị có thể tạo ra phần cứng đo và điều khiển tùy chỉnh mà không cần ngôn ngữ mô tả phần cứng cấp thấp hoặc thiết kế cấp độ board mạch. Quý vị có thể sử dụng phần cứng tùy chỉnh này cho các chương trình định giờ và khởi động đơn nhất, điều khiển siêu tốc, giao tiếp với các giao thức số, xử lí tín hiệu số (DSP), và nhiều ứng dụng khác đòi hỏi độ tin cậy phần cứng tốc độ cao và tính tất định chặt chẽ.
Bộ xử lí PowerPC trong cấu trúc CompactRIO chạy hệ điều hành VxWorks từ Wind River. Có hai phương pháp phát triển phần mềm cho đối tượng VxWorks: LabVIEW Real-Time và C. Với LabVIEW Real-Time, quý vị có thể phát triển các ứng dụng LabVIEW để chạy trên hệ thống nhúng và giao tiếp một cách dễ dàng với đối tượng FPGA thông qua tính trừu tượng cấp cao. Với phiên bản mới nhất của các driver NI-RIO, các lập trình viên C có thể lập trình trực tiếp bộ xử lí PowerPC và giao tiếp với FPGA.
Sử dụng giao diện C đến LabVIEW FPGA
Với giao diện C đến LabVIEW FPGA, quý vị có thể lập trình các công cụ C trong hệ điều hành thời gian thực VxWorks như là Wind River Workbench hoặc chuỗi công cụ GNU GCC cho VxWorks.
Quý vị có thể có được chuỗi công cụ GNU cho VxWorks bằng cách mua bản quyền phát triển VxWorks từ Wind River hoặc tải về chuỗi công cụ GNU có thể phân phối lại (redistributable) được đính kèm trong tài liệu này. Khi mua VxWorks, quý vị có thể sử dụng Wind River Workbench IDE, có chức năng dò lỗi cấp độ mã nguồn và quản lí việc xây dựng. Chuỗi công cụ GNU có thể phân phối lại chỉ cung cấp dò lỗi ở cấp độ mã hợp ngữ, và quý vị phải sử dụng GNU Make được gộp vào để xây dựng mã nhị phân.
Một khi mã LabVIEW FPGA được phát triển, một file header được tạo ra. Nó cung cấp một giao diện cho việc truy cập các điều khiển, công cụ chỉ (indicator), DMA FIFO, ngắt (interrupt), và mảng (array). File header phải được đưa vào (include) ứng dụng theo C.
Việc include file header được cung cấp vào trong project VxWorks giúp giao diện lập trình giao tiếp được với LabVIEW FPGA.
Nguồn: iavietnam