Tùy chỉnh các Thiết kế C/C++ với NI FPGA

19/03/2012 0 2273

Mảng cổng lập trình được dạng trường (Field-programmable gate arrays - FPGA) tạo ra một hộp thử nghiệm (sandbox) phần cứng tùy chỉnh hoàn hảo cho các ứng dụng ngày càng phức tạp ngày nay. Chẳng hạn, khi giám sát các dạng sóng của dòng điện và điện áp để giám sát và hiệu chỉnh hệ số công suất, các nhà phát triển phải đồng bộ hóa việc lấy mẫu của cả dòng điện và điện áp cần thiết, và tính toán thời gian sao cho một số nguyên chính xác các mẫu được lấy trong mỗi dạng sóng hình sin. Vì tần số công suất phân phối trên đường dây thay đổi một cách chậm rãi, đó là một thử thách để bảo đảm các mẫu của một phép đo cho trước cũng được đồng bộ hóa và tần số được điều chỉnh theo sự thay đổi của tín hiệu đưa vào.
Đối với các nhà phát triển sử dụng thiết bị thu thập dữ liệu không theo công nghệ FPGA, phương pháp lí tưởng để đạt được các đặc tính lấy mẫu như mong muốn đòi hỏi phải lấy vượt mẫu (oversampling) các tín hiệu đầu vào ở một tốc độ rất cao. Sau đó hậu xử lí (postprocessing) dữ liệu để rút ra các mẫu mà kết quả là một số chính xác các mẫu trong một dạng sóng cho trước. Các nhà phát triển sử dụng thiết bị thu thập dữ liệu xây dựng theo công nghệ FPGA có thể tùy chỉnh chế độ của thiết bị để chủ động thay đổi tốc độ lấy mẫu cho phù hợp với tần số tín hiệu đầu vào, đảm bảo một số chính xác các điểm được bấm giờ trong mỗi chu kì dạng sóng trên bộ phận điều chỉnh tốc độ (fly). Điều này làm giảm lượng dữ liệu cần phải đạt được và phân tích, mà không làm giảm chất lượng của phép đo công suất.
Đối với hầu hết các lập trình viên C, sử dụng công nghệ FPGA trên các thiết bị hiện có đòi hỏi kiến thức cao cấp về VHDL hoặc các ngôn ngữ mô tả phần cứng khác nằm ngoài chuyên môn của họ. National Instruments đã tạo ra thiết bị nhập xuất tái cấu hình được (RIO) dựa theo công nghệ FPGA được lập trình với NI LabVIEW thay vì VHDL. NI đưa ra một giao diện C cho các đối tượng LabVIEW FPGA giúp cho các nhà phát triển C/C++ dễ dàng thêm các chức năng tùy chỉnh của RIO vào các ứng dụng chủ (host applications) của họ.

Hình. Các nhà phát triển C/C++ giờ đây có thể dễ dàng giao tiếp với phần cứng theo công nghệ FPGA của NI sử dụng giao diện C mới cho LabVIEW FPGA.


Giao diện C mới của LabVIEW FPGA mở ra cho phần cứng theo công nghệ FPGA của NI, như là NI CompactRIO, NI FlexRIO, và R Series data acquisition (DAQ), đến các ứng dụng chủ dựa trên LabVIEW và C/C++. Giao diện lập trình này giúp cho các nhà phát triển C/C++ tận dụng lợi ích của LabVIEW FPGA và phần cứng nhập xuất tái cấu hình được (RIO) của NI cho việc điều khiển nhúng và thu thập dữ liệu. Với giao diện C mới cho LabVIEW FPGA, các nhà phát triển có thể sử dụng các công cụ đồ họa LabVIEW để lập trình FPGA trong phần cứng của NI và lựa chọn các công cụ của LabVIEW hoặc C/C++ để lập trình bộ xử lí trong hệ thống. Tính năng mới này của LabVIEW FPGA cho các kĩ sư và nhà khoa học với chuyên môn về C khả năng sử dụng FPGA trong các thiết kế của họ mà không cần phải học về thiết kế phần cứng, trong khi đó cũng cho họ lựa chọn sử dụng lại mã C chủ.
Mô-đun LabVIEW FPGA đơn giản hóa lập trình FPGA bằng việc đưa ra một môi trường phát triển trực giác làm trừu tượng đi mã ngôn ngữ mô tả phần cứng và mở ra lập trình FPGA cho tất cả các kĩ sư bất kể kinh nghiệm về thiết kế phần cứng của họ. Hướng tiếp cận dòng dữ liệu đồ họa trong Mô-đun LabVIEW FPGA làm cho việc miêu tả hoạt động xử lí song song vốn có trong FPGA trở nên lí tưởng. Ngoài ra, các nhà phát triển có thể tăng tốc việc phát triển ứng dụng LabVIEW FPGA với hơn 200 khối IP (intellectual property) FPGA được xây dựng sẵn trong Mô-đun LabVIEW FPGA, trong một số bộ công cụ LabVIEW, và trên trang web ni.com. Giao diện C API đi đầu trong công nghệ FPGA có trên NI Labs, phòng nghiên cứu ảo của National Instruments.
NI Labs trưng bày các công nghệ phát triển mới nhất từ bộ phận Nghiên cứu và Phát triển (R&D) của National Instruments. Phòng nghiên cứu ảo đem lại cơ hội tải về và làm việc với những tiến triển hàng đầu và cung cấp phản hồi sản phẩm. Tốt nghiệp từ chương trình NI Labs bao gồm Bộ công cụ lọc thích nghi (LabVIEW Adaptive Filter Toolkit) và Thư viện toán điểm cố định (Fixed-Point Math Library) cho LabVIEW FPGA. Mỗi công nghệ NI Labs được gói vào một chương trình cài đặt độc lập với tài liệu và các ví dụ. Đội ngũ R&D đặc trưng về công nghệ giải quyết các thắc mắc và vấn đề kĩ thuật chi tiết cho việc tải về.
Các nhà phát triển có thể sử dụng giao diện C mới cho LabVIEW FPGA để lập trình bộ xử lí thời gian thực trên phần cứng dựa theo công nghệ FPGA của NI sử dụng các công cụ C như là NI LabWindows™/CVI, Microsoft Visual Studio, hoặc Wind River Workbench và giao diện mã LabVIEW FPGA chạy trên FPGA. Lựa chọn một công cụ phát triển C và giải pháp trình biên dịch thích hợp phụ thuộc vào đối tượng phần cứng triển khai sau cùng và hệ điều hành liên kết. Các nhà phát triển cũng có thể chọn lập trình bộ xử lí sử dụng mô-đun thời gian thực (LabVIEW Real-Time Module), bao gồm các công cụ dò lỗi hệ thống cấp thấp, định thời gian thực thi chính xác, và đa xử lí đối xứng (SMP) đa luồng để tăng độ linh hoạt và chức năng trong các ứng dụng tất định thời gian thực.
Giao diện C API cho FPGA đầu tiên được tung ra bao gồm gần như tất cả chức năng giống với giao diện FPGA chủ của LabVIEW, trong đó có khả năng đọc và viết bảng điều khiển mặt trước (FPGA front panel controls), dòng truy xuất bộ nhớ trực tiếp (DMA streaming) mục tiêu - máy chủ và máy chủ - mục tiêu, và xác nhận yêu cầu ngắt (IRQ assertion and acknowledgement). Đội ngũ R&D của NI sẽ tiếp tục phát triển và hỗ trợ tính năng này thông qua NI Labs và phân phối các cập nhật với chức năng thêm vào theo thời gian cho đến khi tính năng được tích hợp trong các phiên bản của phần mềm LabVIEW FPGA và các driver sẵn sàng để giao hàng.
Nhãn hiệu LabWindows được sử dụng dưới sự cho phép từ công ty Microsoft. Windows là thương hiệu đã đăng kí của công ty Microsoft ở Hoa Kỳ và các nước khác.

Nguồn: iavietnam

Đăng nhập

Chat