由于可靠性、實(shí)時(shí)性、低成本、抗干擾性、兼容能力等多方面的優(yōu)勢(shì),CAN-bus與其高層協(xié)議CANopen已成為車輛數(shù)據(jù)通信系統(tǒng)的事實(shí)標(biāo)準(zhǔn),并普遍應(yīng)用于所有的可移動(dòng)設(shè)施。符合CANopen協(xié)議標(biāo)準(zhǔn)及其設(shè)備協(xié)議子集標(biāo)準(zhǔn)的系統(tǒng),就可以在功能和接口上保證各廠商設(shè)備的互用性和可交換性。
前幾期文章中介紹了CANopen從站設(shè)備 (XGate-COP10),本期文章將介紹CANopen網(wǎng)絡(luò)中具有主站功能的設(shè)備如何開(kāi)發(fā)。
盡管在CiA組織的CANopen規(guī)范中沒(méi)有明確地定義主站設(shè)備和從站設(shè)備,但大家還是習(xí)慣把具有網(wǎng)絡(luò)管理(NMT)能力的 CANopen設(shè)備稱之為 CANopen主站設(shè)備。除此之外CANopen主站還應(yīng)具有服務(wù)數(shù)據(jù)(SDO)客服端功能,這樣CANopen主站能夠控制以及訪問(wèn)網(wǎng)絡(luò)中的所有CANopen從站。PCI-5010P就是具有這些功能的CANopen主站板卡(PCI接口)。下文將介紹如何基于該產(chǎn)品快速實(shí)現(xiàn)功能強(qiáng)大的CANopen主站設(shè)備。
一個(gè)CANopen網(wǎng)絡(luò)中的主站設(shè)備管理著其他的從站設(shè)備,而且一個(gè)網(wǎng)絡(luò)只允許有一個(gè)CANopen主站設(shè)備和最多127個(gè)從站設(shè)備存在。圖 1所示為PCI-5010P在CANopen網(wǎng)絡(luò)中的典型應(yīng)用形式。
PCI-5010P系列工業(yè)級(jí)CAN通信卡支持CANopen主站協(xié)議,支持CiA建議的標(biāo)準(zhǔn)波特率以及自定義波特率,并提供多個(gè)操作系統(tǒng)的設(shè)備驅(qū)動(dòng)、工具軟件等,能真正地滿足客戶的各種應(yīng)用需求,為工業(yè)通信CANopen網(wǎng)絡(luò)提供了可靠、高效率的解決方案,在計(jì)算機(jī)中的硬件與軟件結(jié)構(gòu)如圖2所示。
PCI-5010P具有如下特性:
·通用 PCI總線,兼容 PCI 2.2規(guī)范;
·支持CAN2.0A協(xié)議;
·支持CANopen協(xié)議;
·符合ISO/DIS 11898-2規(guī)范;
·集成1路電氣完全隔離的CAN通道;
·DC 2 500 V電氣隔離保護(hù);
·增強(qiáng)ESD/EMI性能;
·遵守工業(yè)應(yīng)用規(guī)范。
PCI-5010P通信卡沒(méi)有任何開(kāi)關(guān)和跳線用于分配中斷和I/O地址,這些都是由BIOS自動(dòng)分配。因此在安裝驅(qū)動(dòng)程序之前板卡必須事先安裝到PCI槽上,以下是安裝步驟。通常在新加裝PCI板卡后,啟動(dòng)計(jì)算機(jī)之后會(huì)彈出“找到新硬件”的界面,這時(shí)需要手動(dòng)把PCI-5010P的驅(qū)動(dòng)所在的文件夾添加到搜索的位置,這樣直接點(diǎn)擊下一步,驅(qū)動(dòng)程序加載程序就自動(dòng)地把驅(qū)動(dòng)程序安裝完成。
圖3所示為PCI-5010P的操作流程,其概括性地描述了PCI-5010P的所有功能及相應(yīng)的API函數(shù)調(diào)用結(jié)構(gòu)。以下將詳細(xì)介紹常用的API函數(shù)功能及使用。
(1)
PCI-5010P
PCI-5010P被打開(kāi)時(shí),必須按照?qǐng)D 3所示的順序來(lái)操作,即需要經(jīng)歷打開(kāi)、初始化參數(shù)、添加節(jié)點(diǎn)、啟動(dòng)CANopen主站等步驟。在關(guān)閉PCI-5010P時(shí),其操作與初始化的流程相反,操作代碼如下:
CANopen主站設(shè)備能接收來(lái)自CANopen網(wǎng)絡(luò)中的所有PDO數(shù)據(jù),PCI-5010P CANopen主站卡同樣也接收任意的PDO數(shù)據(jù),但是需要在接收指定的PDO數(shù)據(jù)之前把該P(yáng)DO的COB-ID注冊(cè)到CANopen協(xié)議棧中。其實(shí)現(xiàn)可參考以下代碼:
作為一個(gè)CANopen主站設(shè)備應(yīng)該具備SDO客服端功能,這樣就可以通過(guò)SDO來(lái)訪問(wèn)網(wǎng)絡(luò)中節(jié)點(diǎn)的任意對(duì)象字典,其中包括下載和上傳數(shù)據(jù)。其操作可參考以下代碼:
PCI-5010P作為CANopen主站設(shè)備,其最主要的特征就是擁有對(duì)整個(gè)網(wǎng)絡(luò)的控制權(quán),即網(wǎng)絡(luò)管理功能(NMT)??墒咕W(wǎng)絡(luò)中的CANopen設(shè)備進(jìn)入到不同的操作狀態(tài)(啟動(dòng)從站、停止從站、進(jìn)入預(yù)操作狀態(tài)、復(fù)位協(xié)議棧、復(fù)位通信參數(shù)等)。其操作示例可參考以下程序代碼:
PCI-5010P不僅具有如上所述的基本功能,還具有其他一些CANopen相關(guān)的功能特性,例如獲取指定從站的當(dāng)前工作狀態(tài)、發(fā)送網(wǎng)絡(luò)時(shí)間標(biāo)識(shí)、PDO的遠(yuǎn)程請(qǐng)求以及緊急錯(cuò)誤代碼功能等(具體操作可參考API函數(shù)庫(kù)手冊(cè))。這些功能都為開(kāi)發(fā)一個(gè)完整的CANopen主站設(shè)備提供了必備條件。
經(jīng)過(guò)以上步驟,通過(guò)調(diào)用PCI-5010P的API函數(shù)庫(kù)實(shí)現(xiàn)一個(gè)特定功能的CANopen主站設(shè)備。因?yàn)镻CI-5010P CANopen協(xié)議棧通過(guò)了CiA的一致性測(cè)試,所以能很好地兼容其他的CANopen設(shè)備。
廣州致遠(yuǎn)電子有限公司提供各種接口的CANopen接口卡、CANopen終端設(shè)備(包括數(shù)據(jù)采集、電機(jī)控制等)、CANopen分析儀、網(wǎng)關(guān)及網(wǎng)橋、OPC服務(wù)器以及基于CANopen協(xié)議的整套組網(wǎng)方案及應(yīng)用開(kāi)發(fā)。