NI-CAN的Channel API和Frame API



硬體: Industrial Communications>>CAN

問題: 使用CAN communication時,我注意到有兩種不同的APIs: Channel API和Frame API。針對不同的應用,我應該使用哪一種API呢?

解答:

要使用Channel API或是Frame API,其決定端視你應用程式的需求及個人喜好而定。Channel API由於提供較簡單的方法來存取CAN network,因此較為受歡迎。使用Channel API,NI-CAN軟體會將CAN所傳遞的原始未經處理的raw data轉換成在設定channel時所使用的物理單位。然而,Frame API提供較低階的函數及功能來存取CAN network,因此在某些情況下會建議使用Frame API。下面列出需要使用Frame API的狀況有哪些:

1. 目前你所發展的應用程式其使用的NI-CAN版本為1.6或先前的版本。
2. 你需要針對你的裝置完成一個"命令/反應"的傳輸介面,換言之,你的應用是傳送命令給你的裝
     置,然後裝置再傳送反應回來。
3. 你需要針對的你的裝置使用remote frames。若使用Channel API則不支援這項功能。
4. 你的CAN communication需要和DAQ卡片的資料擷取任務做同步的動作。相較於Channel API,
     Frame API提供更低階的RTSI功能,因此更適合進階的同步動作。
5. 目前你使用的是NI USB-847x介面。USB-CAN產品並不支援Channel API或CAN Objects。你可以利用
     Frame API來控制USB-CAN,但是有些函數的使用會有所限制。相關受限的函數,可以參考下面的連
     結所提供的文件說明。

  • 注意:針對同一個CAN介面,你不能同時使用Channel API和Frame API。如果你針對CAN0使用Frame API,你就不能執行另ㄧ個呼叫Channel API的程式來控制CAN0。如果你有雙埠的CAN卡片,你可以針對不同的介面,使用不同的API。



  • 相關連結: NI-CAN Hardware and Software Manual
    KnowledgeBase 3ECCNE7T: How Do I Synchronize DAQmx with CAN in LabVIEW?
    KnowledgeBase 3LH7HD4B: NI-CAN Self-Reception and Filtering
    KnowledgeBase 46JCHSJL: Which NI-CAN API function calls are supported with my NI USB-847x device?

    附加檔案:





    報告日期: 01/24/2005
    最後更新: 05/28/2008
    文件偏號: 3HNHF5HS