pc104-8210雙口智能can卡使用說明書_第1頁
pc104-8210雙口智能can卡使用說明書_第2頁
pc104-8210雙口智能can卡使用說明書_第3頁
pc104-8210雙口智能can卡使用說明書_第4頁
pc104-8210雙口智能can卡使用說明書_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、PC104-8210 雙口智能 CAN 卡使用說明書科瑞科技28 號開源商務(wù)寫字樓 212、213 室傳真:科瑞科技地址:市海淀區(qū):ht:100086Sales: Tech Support: li1 綜述PC104-8210 智能卡是高性能的基于 PC104 PLUS 總線的通訊卡,為你的主板和 CAN總線連接提供了方便可靠的解決方案。PCI104 PLUS 總線符合 PCI2.1 標準,CAN 接口符合CAN2.0B 協(xié)議。卡上集成兩個獨立且的 CAN 總線數(shù)據(jù)通道,提高了在惡劣環(huán)境下工作的產(chǎn)品可靠性。支持 WIN98,WIN2000,WINXP 多種操作系統(tǒng),同時提供 VC+的程序舉例,方

2、便用戶快速開發(fā)自己的應(yīng)用程序。支持多卡工作,最多可支持 4 塊卡在同一塊主板上運行。2 技術(shù)參數(shù) PCI104 PLUS 接口 :符合 PCI2.1 規(guī)范,支持 PNP; 數(shù)據(jù)器:FPGA集成 8KB 雙口 RAM 作為數(shù)據(jù)緩沖區(qū);CAN 控制器:NXP SJA1000T;CAN 傳輸器:PHILIPS PCA82C250;數(shù)據(jù)傳輸速率:可編程的傳輸速率,支持 5Kbps 到 1Mbps;CAN 通訊接口:采用 DB9;CAN 通訊協(xié)議:CAN2.0B 協(xié)議(PeliCAN),兼容 CAN2.0A 協(xié)議;電壓:1000V ; 工作溫度:0-70;板卡尺寸:標準 PC104 PLUS 板卡尺寸

3、96mm X 90mm;操作系統(tǒng)支持:WIN98,WIN2000/XP;3 硬件原理3.1 硬件原理框圖卡上采用單片 FPGA 集成 PCI9052 核,雙口 RAM 和單片機的控制功能,高集成度的設(shè)計提高了產(chǎn)品的可靠性。DB92PCI104 PLUS SLOTFPGASJA1000TCTM8251ATDB9SIA1000TCTM8251AT3.2主要連接器位置圖J1 為 CAN0 連接器,J2 為 CAN1 連接器,SW1 和 SW2 為板卡 ID 選擇,J3 為 CAN0終端匹配電阻跳線器,J4 為 CAN1 口終端匹配電阻跳線器。3.3硬件連接器,跳線和撥碼開關(guān)說明DB9 連接器引腳定義

4、3引腳號信號功能2CAN_LCAN_L 信號7CAN_HCAN_H 信號3,6GND信號地5GND_SHIELD地1,4,8,9NC空腳3.3.2 終端匹配電阻跳線器說明卡上可通過跳線選擇是否采用終結(jié)電阻,J3 為 CAN0 口的終結(jié)電阻跳線器,J4 為 CAN1口終結(jié)電阻的跳線器。如果采用終結(jié)電阻的話,須將加跳帽使能,如下圖:J33.3.3 板卡撥碼 ID 說明如果需要在一塊主板上支持多卡,每塊卡需要設(shè)置不同的 ID 號,一臺機器最多可支持4 塊卡,ID 號從 0 到 3,通過板上 SW1 和 SW2 可設(shè)置板卡的 ID 號。出廠 ID 的默認設(shè)置為0.SW1SW2出廠默認 ID 設(shè)置為 0

5、SW1SW2設(shè)置板卡 ID 為 1SW1SW2設(shè)置板卡 ID 為 24SW1SW2設(shè)置板卡 ID 為 34 CAN 總線連接節(jié)點 2節(jié)點 n節(jié)點 1CAN_H終結(jié)電 阻終結(jié)電阻 CAN_L為了提高 CAN 總線通訊的可靠性,每個 CAN 口都集成了一個 120 歐終端匹配電阻,終端匹配電阻的阻值是由 CAN 總線通訊電纜的阻抗來決定的,本卡的終端匹配電阻是按照雙絞線的阻抗來決定的??赏ㄟ^ J3 和 J4 的跳線來選擇是否采用終端匹配電阻,在 CAN 通訊網(wǎng)絡(luò)的首末節(jié)點時應(yīng)采用終端匹配電阻來保證傳輸信號的可靠性。另外,請注意當傳輸距離超過 1公里時,傳輸電纜的線徑應(yīng)大于 1MM。傳輸電纜可采絞線

6、或帶的雙絞線。5 安裝驅(qū)動程序為了確保任何時候安裝都可以正確指定相應(yīng)的驅(qū)動程序,請嚴格按照以下步驟進行安裝處理。如果PC104-8210智能卡已經(jīng)裝好,則在重啟操作系統(tǒng)后一般都會提示發(fā)現(xiàn)新硬件,如下圖所示,此時應(yīng)該選擇“從列表或指定位置安裝(高級)”,然后單擊“下一步”,5圖 5-1 歡迎使用找到新硬件向?qū)М敵霈F(xiàn)如下所示的框,選擇“不要搜索,我要自己選擇要安裝的驅(qū)動程序”項然后單擊“下一步”,圖 5-2 請選擇你的搜索和安裝選項當出現(xiàn)“選擇要為此硬件安裝的設(shè)備驅(qū)動程序”框時,單擊“型號”欄中的空白處,暫時不選中任何型號,接著單擊“從磁盤安裝”按鈕以指定PC104-8210驅(qū)動文件目錄位置。當出

7、現(xiàn)如下所示框時,可以通過“瀏覽”按鍵找到驅(qū)動程序的 inf 文件。6圖 5-3 從磁盤安裝查找文件,選中相應(yīng)文件“PC104-8210.inf ”后單擊“打開”。當出現(xiàn)再次出現(xiàn)”從磁盤安裝”框并確定(目錄正確后目錄不對的話必須單擊“上一步”重新查找到對為止),單擊“確定”鍵,接著如下圖所示,這時才選中相應(yīng)的板卡型號,確定選中正確型號后單擊“下一步”,圖 5-3 選擇要為此硬件安裝的設(shè)備驅(qū)動程序如果安裝過程沒有出現(xiàn)任何錯誤,最后應(yīng)該出現(xiàn)”完成找到新硬件向?qū)А笨颍瑔螕簟巴瓿伞本涂梢粤?。安裝成功后“設(shè)備管理器”中將列出所安裝的PC104-8210。下圖為安裝完成1塊PC104-8210智能卡后的設(shè)備

8、管理器界面。7圖 5-4 Win XP 的設(shè)備管理器需要注意的是;任何時候安裝都要盡可能手工選擇,而不要使用自動安裝。6接口函數(shù)PC104-8210智能卡采用WDM驅(qū)動程序,支持WIN98、WIN2000、WinXP操作系統(tǒng),支持一機多卡;同時提供完整VC+開發(fā)例程示范代碼,用戶進行開發(fā)。6.1 接口卡設(shè)備類型定義接口卡的類型定義如下:設(shè)備名稱: PC104-8210設(shè)備類型號: 116.2 錯誤碼定義8名稱值描述ERR_CAN_OVERFLOW0 x00000001CAN控制器FIFO溢出ERR_CAN_ERRALARM0 x00000002CAN控制器錯誤ERR_CAN_PASSIVE0

9、x00000004CAN控制器消極錯誤6.3 函數(shù)庫中的數(shù)據(jù)結(jié)構(gòu)定義VCI_BOARD_INFO描述VCI_BOARD_INFO結(jié)構(gòu)體包含接口卡的設(shè)備信息。結(jié)構(gòu)體將在VCI_ReadBoardInfo函數(shù)中被填充。typedef struct _VCI_BOARD_INFO USHORT hw_Ver USHORT fw_Ver USHORT dr_Ver USHORT in_Ver USHORT irq_Num; BYTE can_Num;CHAR str_Serial_Num20; CHAR str_hw_Type40;USHORT4; VCI_BOARD_INFO, *PVCI_BOAR

10、D_INFO;成員hw_Ver硬件版本號,用16進制表示。比如0 x0100表示V1.00。fw_Ver固件版本號,用16進制表示。dr_Ver驅(qū)動程序版本號,用16進制表示。in_Ver接口庫版本號,用16進制表示。irq_Num板卡所使用的中斷號。can_Num表示有幾路CAN通道。str_Serial_Num此板卡的序列號。str_hw_Type硬件類型,比如“Double CAN V1.00”(注意:包括字符串結(jié)束符0)。系統(tǒng)保留。9ERR_CAN_LOSE0 x00000008CAN控制器仲裁丟失ERR_CAN_BUSERR0 x00000010CAN控制器總線錯誤ERR_DEVIC

11、EOPENED0 x00000100設(shè)備已經(jīng)打開ERR_DEVICEOPEN0 x00000200打開設(shè)備錯誤ERR_DEVICENOTOPEN0 x00000400設(shè)備沒有打開ERR_BUFFEROVERFLOW0 x00000800緩沖區(qū)溢出ERR_DEVICENOTEXIST0 x00001000此設(shè)備不存在VCI_CAN_OBJ描述VCI_CAN_OBJ結(jié)構(gòu)體在VCI_Transmit和VCI_Receive函數(shù)中被用來傳送CAN信息幀。 typedef struct _VCI_CAN_OBJ U UID;TimeSt;BYTE TimeFlag; BYTE SendType; BYT

12、E RemoteFlag; BYTE ExternFlag; BYTE DataLen; BYTE Data8;BYTE3; VCI_CAN_OBJ, *PVCI_CAN_OBJ;成員ID報文ID。TimeSt接收到信息幀時的時間標識,用于區(qū)別相同的幀。TimeFlag是否使用時間標識,為1時TimeSt有意義。SendType有效,TimeFlag和TimeSt只在此幀為接收幀時發(fā)送幀類型,=0時為正常發(fā)送,=1時為單次發(fā)送,=2時為自發(fā)自收,=3時為單次自發(fā)自收,只在此幀為發(fā)送幀時有意義。RemoteFlag是否是ExternFlag幀。是否是擴展幀。DataLen數(shù)據(jù)長度(AccCode

13、AccCode對應(yīng)SJA1000中的四個寄存器ACR0,ACR1,ACR2,ACR3,其中高字節(jié)對應(yīng)ACR0,低字節(jié)對應(yīng)ACR3;AccMask對應(yīng)SJA1000中的四個寄存器 AMR0,AMR1,AMR2,AMR3,其中高字節(jié)對應(yīng)AMR0,低字節(jié)對應(yīng)AMR3。(請看表后說明)pInitConfig-AccMaskpInitConfig-保留pInitConfig-Filter濾波方式,1表示單濾波,0表示雙濾波pInitConfig-Timing0定時器0pInitConfig-Timing1定時器1pInitConfig-Mode模式,0表示正常模式,1表示只聽模式RTR對應(yīng)VCI_CAN

14、_OBJ中的RemoteFlag當濾波方式為單濾波,接收幀為擴展幀時:15當濾波方式為雙濾波,接收幀為標準幀時:16當濾波方式為雙濾波,接收幀為擴展幀時:返回值為1表示操作成功,0表示操作失敗。示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; VCI_INIT_CONFIG vic;DWORD dwRel;dwRel = VCI_OpenDevice(nDeviceType, nDeviceInd, n);if (dwRel != SUS_OK)MessageBox(_T(打開設(shè)備失敗!), _T(警告),

15、 MB_OK|MB_ICONQUESTION); return FALSE;17dwRel = VCI_InitCAN(nDeviceType, nDeviceInd, nCANInd, &vic);if (dwRel = SUS_ERR)VCI_CloseDevice(nDeviceType, nDeviceInd);MessageBox(_T(初始化設(shè)備失敗!), _T(警告), MB_OK|MB_ICONQUESTION); return FALSE;VCI_ReadBoardInfo描述此函數(shù)用以獲取設(shè)備信息。DWORDstdcallVCI_ReadBoardInfo(DWORDDev

16、Type,DWORDDevIndex,PVCI_BOARD_INFO pInfo);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。pInfo用來返回值設(shè)備信息的VCI_BOARD_INFO結(jié)構(gòu)指針。為1表示操作成功,0表示操作失敗。示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; VCI_INIT_CONFIG vic; VCI_BOARD_INFO vbi;DWORD dwRel;bRel = VCI_ReadBoardInfo(nDeviceType, nDeviceInd, nCANInd,

17、 &vbi);VCI_ReadErrInfo描述此函數(shù)用以獲取最后一次錯誤信息。DWORD stdcall VCI_ReadErrInfo(DWORD DevType, DWORD DevIndex, CANIndex, PVCI_ERR_INFO pErrInfo);參數(shù)DevType設(shè)備類型號。DWORD18DevIndex撥碼ID。CANIndex第幾路CAN。pErrInfo用來錯誤信息的VCI_ERR_INFO結(jié)構(gòu)指針。返回值為1表示操作成功,0表示操作失敗。備注當(PErrInfo-ErrCode&0 x0004)=0 x0004時,存在CAN控制器消極錯誤。PErrInfo-Pa

18、ssive_ErrData0錯誤代碼捕捉位功能表示。錯誤代碼類型功能說明錯誤屬性bit5 =0; 表示發(fā)送時發(fā)生的錯誤。=1; 表示接收時發(fā)生的錯誤。錯誤段表示功能說明:19bit4bit 3bit 2bit 1bit 0功能00011幀開始00010ID.28-ID.2100110ID.20-ID.18位ECC.7位ECC.6功能00位錯01格式錯10填充錯11其它錯誤Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0錯誤代碼類型錯誤屬性錯誤段表示ErrCodePassive_ErrDataArLost_ErrData錯誤描述0 x0100無無設(shè)備已經(jīng)打開0 x0200無無打開

19、設(shè)備錯誤0 x0400無無設(shè)備沒有打開0 x0800無無緩沖區(qū)溢出0 x1000無無此設(shè)備不存在0 x2000無無裝載動態(tài)庫失敗0 x4000無無表示為執(zhí)行命令失敗錯誤0 x0001無無CAN控制器FIFO溢出0 x0002無無CAN控制器錯誤0 x0004有,具體值見表后無CAN控制器消極錯誤0 x0008無有,具體值見表后CAN控制器仲裁丟失0 x0010無無CAN控制器總線錯誤PErrInfo-Passive_ErrData1 表示接收錯誤計數(shù)器PErrInfo-Passive_ErrData2 表示發(fā)送錯誤計數(shù)器當(PErrInfo-ErrCode&0 x0008)=0 x0008時,

20、存在CAN控制器仲裁丟失錯誤。PErrInfo-ArLost_ErrData仲裁丟失代碼捕捉位功能表示錯誤段表示功能表示20位十進制值功能ALC.4ALC.3ALC.2ALC.1ALC.0000000仲裁丟失在識別碼的bit1000011仲裁丟失在識別碼的bit2000102仲裁丟失在識別碼的bit3000113仲裁丟失在識別碼的bit4001004仲裁丟失在識別碼的bit5001015仲裁丟失在識別碼的bit6001106仲裁丟失在識別碼的bit7001117仲裁丟失在識別碼的bit8010008仲裁丟失在識別碼的bit9010019仲裁丟失在識別碼的bit10Bit7Bit6Bit5Bit

21、4Bit3Bit2Bit1Bit0錯誤段表示00100SRTR位00101IDE位00111ID.17-ID.1301111ID.12-ID.501110ID.4-ID.001100RTR位01101保留位101001保留位001011數(shù)據(jù)長度代碼01010數(shù)據(jù)區(qū)01000CRC序列11000CRC定義符11001應(yīng)答通道11011應(yīng)答定義符11010幀結(jié)束10010中止10001活動錯誤標志10110消極錯誤標志10011支配(控制)位誤差10111錯誤定義符11100溢出標志示例DWORD dwRel;bRel = VCI_ReadErrInfo(nDeviceType, nDeviceI

22、nd, nCANInd, &vei);VCI_ReadCanS描述us此函數(shù)用以獲取CAN狀態(tài)。DWORD stdcall VCI_ReadCanSus(DWORD DevType, DWORDDevIndex, DWORDCANIndex, PVCI_CAN_S參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。US pCANSus);pCANS用來返回值usCAN狀態(tài)的VCI_CAN_SUS結(jié)構(gòu)指針。為1表示操作成功,0表示操作失敗。210101010仲裁丟失在識別碼的bit110101111仲裁丟失在SRTR位0110012仲裁丟失在IDE位011011

23、3仲裁丟失在識別碼的bit120111014仲裁丟失在識別碼的bit130111115仲裁丟失在識別碼的bit141000016仲裁丟失在識別碼的bit151000117仲裁丟失在識別碼的bit161001018仲裁丟失在識別碼的bit171001119仲裁丟失在識別碼的bit181010020仲裁丟失在識別碼的bit191010121仲裁丟失在識別碼的bit201011022仲裁丟失在識別碼的bit211011123仲裁丟失在識別碼的bit221100024仲裁丟失在識別碼的bit231100125仲裁丟失在識別碼的bit241101026仲裁丟失在識別碼的bit251101127仲裁丟失在

24、識別碼的bit261110028仲裁丟失在識別碼的bit271110129仲裁丟失在識別碼的bit281111030仲裁丟失在識別碼的bit291111131仲裁丟失在ERTR位示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; VCI_INIT_CONFIG vic;VCI_CAN_SDWORD dwRel;US vcs;bRel = VCI_ReadCANSus(nDeviceType, nDeviceInd, nCANInd, &vcs);VCI_GetReference描述此函數(shù)用以獲取設(shè)備的相應(yīng)參數(shù)

25、。DWORD stdcall VCI_GetReference(DWORD CANIndex, DWORD RefType, PVOID pData);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。RefType參數(shù)類型。pDataDevType,DWORDDevIndex,DWORD用來返回值參數(shù)有關(guān)數(shù)據(jù)緩沖區(qū)地址首指針。為1表示操作成功,0表示操作失敗。備注示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; UCHAR info2;22(1) 當設(shè)備類型為PC104

26、-8210: RefTypepData功能描述1 1總長度為2個字節(jié),pData0 表示CAN控制器的控制寄存器的地址,pData1表示要讀出CAN控制器的控制寄存器的值。CAN某個寄存器的值。例如要地址為9的寄存器值:UCHAR pData2 = 9,0;VCI_GetReference(DeviceType,DeviceI nd,CANInd,1,pData);如果調(diào)用成功,pData1將存放讀出的值。DWORD dwRel; info0 = 1;bRel = VCI_GetReference(nDeviceType, nDeviceInd, nCANInd, 1, (PVOID)info

27、);VCI_SetReference描述此函數(shù)用以設(shè)置設(shè)備的相應(yīng)參數(shù),主要處理不同設(shè)備的特定操作。 DWORD stdcall VCI_SetReference(DWORD DevType, DWORD CANIndex, DWORD RefType, PVOID pData);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。RefType參數(shù)類型。pDataDevIndex,DWORD用來返回值參數(shù)有關(guān)數(shù)據(jù)緩沖區(qū)地址首指針。為1表示操作成功,0表示操作失敗。備注VCI_SetReference和VCI_GetReference這兩個函數(shù)是用來針對各個不同

28、設(shè)備的一些特定操作的。示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; UCHAR info2; DWORD dwRel; info0 = 1;info1 = 2;bRel = VCI_SetReference(nDeviceType, nDeviceInd, nCANInd, 1, (PVOID)baud);23當設(shè)備類型為PC104-8210,RefTypepData功能描述11總長度為2個字節(jié),pData0表示CAN控制器的控制寄存器的地址,pData1 表示要寫入的數(shù)值。寫CAN控制器的指定控制寄存

29、器VCI_GetReceiveNum描述此函數(shù)用以獲取指定接收緩沖區(qū)中接收到但尚未被的幀數(shù)。ULONG stdcall VCI_GetReceiveNum(DWORD DevType, DWORD CANIndex);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。返回值DevIndex,DWORD返回尚未被示例的幀數(shù)。#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; DWORD dwRel;bRel = VCI_GetReceiveNum(nDeviceType, nDe

30、viceInd, nCANInd);VCI_ClearBuffer描述此函數(shù)用以清空指定緩沖區(qū)。DWORD stdcall VCI_ClearBuffer(DWORD CANIndex);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。返回值為1表示操作成功,0表示操作失敗。示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; DWORD dwRel;DevType, DWORDDevIndex,DWORDbRel = VCI_ClearBuffer(nDeviceType

31、, nDeviceInd, nCANInd);24VCI_StartCAN描述此函數(shù)用以啟動CAN。DWORDstdcallVCI_StartCAN(DWORD CANIndex);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。返回值為1表示操作成功,0表示操作失敗。示例#include ControlCan.h nDeviceType =1 1;nDeviceInd = 0;nCANInd = 0;DevType,DWORDDevIndex,DWORDVCI_INIT_CONFIGDWORD dwRel;vic;dwRel = VCI_OpenDevi

32、ce(nDeviceType, nDeviceInd, n);if (dwRel != SUS_OK)MessageBox(_T(打開設(shè)備失敗!), _T(警告), MB_OK|MB_ICONQUESTION); return FALSE;dwRel = VCI_InitCAN(nDeviceType, nDeviceInd, nCANInd, &vic);if (dwRel = SUS_ERR)VCI_CloseDevice(nDeviceType, nDeviceInd);MessageBox(_T(初始化設(shè)備失敗!), _T(警告), MB_OK|MB_ICONQUESTION); re

33、turn FALSE;dwRel = VCI_StartCAN(nDeviceType, nDeviceInd, nCANInd);if (dwRel = SUS_ERR)VCI_CloseDevice(nDeviceType, nDeviceInd);MessageBox(_T(啟動設(shè)備失敗!), _T(警告), MB_OK|MB_ICONQUESTION); return FALSE;25VCI_ResetCAN描述此函數(shù)用以復(fù)位CAN。DWORD stdcallVCI_ResetCAN(DWORD CANIndex);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANInde

34、x第幾路CAN。返回值為1表示操作成功,0表示操作失敗。示例#include ControlCan.h nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; DWORD dwRel;DevType,DWORDDevIndex,DWORDbRel = VCI_ResetCAN(nDeviceType, nDeviceInd, nCANInd);VCI_Transmit描述返回實際發(fā)送的幀數(shù)。ULONG stdcallVCI_Transmit(DWORDDevType,DWORDDevIndex,DWORDCANIndex, PVCI_CAN_OBJ pSend

35、, ULONG Len);參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。pSend要發(fā)送的數(shù)據(jù)幀數(shù)組的首指針。Len要發(fā)送的數(shù)據(jù)幀數(shù)組的長度。返回值返回實際發(fā)送的幀數(shù)。示例#include ControlCan.h #include 26nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; DWORD dwRel; VCI_CAN_OBJ vco;ZeroMemory(&vco, sizeof (VCI_CAN_OBJ); vco.ID = 0 x00000000;vco.SendType = 0;vco.Remote

36、Flag = 0;vco.ExternFlag = 0;vco.DataLen = 8;lRet = VCI_Transmit(nDeviceType, nDeviceInd, nCANInd, &vco, i);VCI_Receive描述此函數(shù)從指定的設(shè)備數(shù)據(jù)。ULONG stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex,PVCI_CAN_OBJ pReceive, ULONG Len,參數(shù)DevType設(shè)備類型號。DevIndex撥碼ID。CANIndex第幾路CAN。pReceive用來接收的數(shù)據(jù)幀數(shù)組的首

37、指針。Len用來接收的數(shù)據(jù)幀數(shù)組的長度。WaitTimeWaitTime=1);等待超時時間,以毫秒為返回值。返回實際示例到的幀數(shù)。#include ControlCan.h #include nDeviceType = 11;nDeviceInd = 0;nCANInd = 0; DWORD dwRel; VCI_CAN_OBJ vco100;lRet = VCI_Receive(nDeviceType, nDeviceInd, nCANInd, vco, 100, 0);276.5 接口庫函數(shù)使用方法首先,把庫函數(shù)文件都放在工作目錄下。庫函數(shù)文件總共有三個文件:ControlCAN.h、C

38、ontrolCAN.lib、ControlCAN.dll。 VC調(diào)用動態(tài)庫的方法(1)在擴展名為.CPP的文件中包含ControlCAN.h頭文件。如:#include “ControlCAN.h”在工程的連接器設(shè)置中連接到ControlCAN.lib文件。如:在VC6環(huán)境下,在項目屬性頁里的配置屬性連接器輸入附加依賴項中添加ControlCAN.lib(2)286.6接口庫函數(shù)使用流程接口庫函數(shù)使用流程圖29VCI_CloseDeviceVCI_ReceiveVCI_TransmitVCI_ResetCANVCI_SetReferenceVCI_GetReferenceVCI_ClearBufferVCI_GetReceiveNumVCI_ReadCanSu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論