SF9623隔离型CAN总线通讯板_第1页
SF9623隔离型CAN总线通讯板_第2页
SF9623隔离型CAN总线通讯板_第3页
SF9623隔离型CAN总线通讯板_第4页
SF9623隔离型CAN总线通讯板_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SF-9623隔离型CAN总线通讯板1. 综述SF-9623是一种隔离型CAN总线通讯板,可方便地应用于装有PC104+ 总线插槽的微机。PC操作系统可选用目前流行的 Windows 系列、Unix等多种操作系统环境。CAN是一种数字化总线通讯标准,采用总线仲裁方式进行网络管理,实时性很高,可保证系统对事件的响应,而且通讯可靠性高,CAN主要应用于可靠性要求价高的系统中。2. 性能与技术参数2.1. 技术参数= CAN通道数:两个= CAN网络通讯最高速率1Mbit/s= 隔离耐压:1000Vdc2.2. 使用环境要求= 工作温度:-1040;相对湿度:4080; 存贮温度:-55+85;2.

2、3. 电源功耗= +5V/300mA2.4. 外形尺寸=外型尺寸(不含档板):长×高120mm X 92mm3. 工作原理SF-9623隔离型CAN总线通讯板有104+总线接口部分和CAN通讯部分。104+总线接口部分实现通讯板与PC机数据接口,控制逻辑由CPLD电路内部设计的逻辑实现,总线宽度8位。CAN通讯部分实现了CAN物理层和数据链路层协议,主要由CAN网络接口控制器SJA1000T(Philips)实现,网络收发器使用82C250(Philips),连接接口通过DB-9实现。Bus-HBus-L PCI BUSBus-LBus-HCAN82C50CAN82C50SJA100

3、0TSJA1000TPCIBUS接口逻辑4. 安装及使用注意安装本卡的安装十分简便,只要将主机机壳打开,在关电情况下,将本卡插入104+的槽中即可。DB-9插头可从主机后面引出并与外设连接。使用注意在安装或用手触摸本卡时,应避免直接用手接触器件管脚,以免损坏器件。 本卡跳线器较多,使用中应严格按照说明书进行设置操作。禁止带电插拔插本接口卡。设置接口卡开关、跳线和安装接口电缆均应在关电状态下进行。5. 使用与操作5.1. 插座接口定义与连接方式 CAN接口DB-9管脚(XS1、XS2)接口信号定义说明Bus-H:CAN通讯信号高电平Bus-L:CAN通讯信号低电平GND: 地5.2. 跳线设置终

4、端电阻连接XF1对应端口一、XF3对应端口二,跳接上则可以匹配120电阻以消除传送过程中的反射,提高抗干扰能力。6. 软件简要说明随机提供的软件是北京科尔特兴业测控研究所为用户提供的测试软件及其开发包。用户如果使用科尔特提供的驱动程序,则可以通过随机的开发包,开发自己的用户控制程序;并可以通过测试软件检测PCI9623的硬件是否正常工作,并了解PCI9623进行CAN通讯控制的参数控制 和操作特性。注意:软件应用及其使用说明建立在本公司提供的设备驱动程序上。本说明不涉及用户通过技术说明书编制自己的驱动程序以及根据驱动接口编制的用户控制程序的内容。7. 提供的软件内容随板卡提供的软件包括:驱动及

5、安装、测试程序、接口动态连接库和函数说明、编程举例驱动程序与驱动安装文件,目录路径:Product_PCI9623PCI9623 Driver Product_PCI9623PCI9623 Driver win98 Windows 98驱动目录Product_PCI9623PCI9623 Driver win2k Windows 2000驱动目录Product_PCI9623PCI9623 Driver winXP Windows xp驱动目录Product_PCI9623PCI9623 Driver winNT Windows NT驱动目录接口动态连接库路径Product_PCI9623De

6、velop PCI9623LibDLL接口函数定义文件Product_PCI9623Develop PCI9623Include测试程序路径Product_PCI9623Test PCI9623编程举例源码路径Product_PCI9623Samples Source8. 驱动安装与设备管理对于在windows的操作系统下安装驱动程序的方法如下Windows 98驱动安装:1、关闭计算机的电源;2、将PCI9623板卡插入PCI查槽中;3、打开计算机电源,启动Windows 98;4、Windows 98将会显示找到新硬件(将显示找到PCI简易通讯设备),进行下一步;5、在添加硬件向导窗口中选

7、择搜索设备的最新驱动程序,下一步;6、选择驱动所在目录,进行安装(PCI9623 Driver win98);7、Windows 98将显示找到PCI_9623 PCI Adapter,提示进行下一步;8、驱动已经安装完成注:安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号-不表示设备有问题,只是表示系统PCI9623板卡设备类型为其他设备),设备说明为: PCI_9623 PCI Adapter;Windows 2000驱动安装:1、关闭计算机的电源;2、将PCI9623板卡插入PCI查槽中;3、打开计算机电源,启动Windows 2000;4、进入设备管理器,选择其他设备中,未安

8、装程序的PCI简易通讯控制器5、打开其属性升级设备驱动程序;6、选择驱动所在目录,进行安装(PCI9623 Driver win2k);7、按找到新硬件向导的提示进行下一步;8、Windows 2000将显示完成添加/删除硬件向导,单击完成即可完成安装过程(提示重新启动计算机,则重新启动)注:安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号-不表示设备有问题,只是表示系统PCI9623板卡设备类型为其他设备),设备说明为: PCI_9623 PCI Adapter;Windows XP驱动安装:1、关闭计算机的电源;2、将PCI9623板卡插入PCI查槽中;3、打开计算机电源,启动W

9、indows XP;4、Windows XP将会显示找到新硬件,可按找到新硬件向导进行下一步;5、选择从搜索设备的最新驱动程序安装,下一步;6、选择驱动所在目录,进行安装(PCI9623 Driver winXP);7、按找到新硬件向导的提示进行下一步;8、Windows XP将显示完成添加/删除硬件向导,单击完成即可完成安装过程, 重新启动计算机.注:安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号-不表示设备有问题,只是表示系统PCI9623板卡设备类型为其他设备),设备说明为: PCI_9623 PCI Adapter;Windows NT驱动安装:1、关闭计算机的电源;2、将

10、PCI9623板卡插入PCI查槽中;3、打开计算机电源,启动Windows NT;4、选择驱动所在目录(PCI9623 Driver winNT),运行Setup.exe进行安装;5、在驱动列表中选择PCI9623,按驱动按钮;6、在弹出的文件选择对话框中选择PCI9623.sys,按确认退出7、重新启动计算机,即可完成安装过程注:安装完毕后将在设备管理器中出现一个其他设备(其他设备是问号-不表示设备有问题,只是表示系统PCI9623板卡设备类型为其他设备),设备说明为: PCI_9623 PCI Adapter;9. 测试程序使用说明9.1测试程序功能测试程序用于测试PCI9623的通讯功能

11、工作情况和调试板上参数。可以测试CAN端口的通讯信息收发。9.2. 端口参数设置1,选择传送速率2,设置端口0、端口1的地址掩码和本地地址,执行“初始化端口” 9.3. 端口数据发送编辑发送内容,执行“单步发送”; 9.4. 端口数据接收接收端口收到数据,会显示接收数据,可对照发送端口的发送内容;同时“已收数据帧数”加一。9.5. 端口数据连续收发设置“连续发送数据帧数”,执行“连续发送”;发送端口会按照设置的帧数发送数据帧;已收数据帧数,会显示接收到的数据帧数。10. 编程说明编程使用本公司提供的驱动时请注意,本公司为用户提供了VC和CBuilder两种格式的DLL。除CBuilder编程使

12、用CBuilder格式的Pci9623Cbdll.dll,其他编程环境建议用户使用标准格式的Pci9623Dll.dll。用户可以在Product_PCI9623Develop 控制方式举例由VC+程序说明,其它语言开发说明请参考在文档中提供的编程举例。10.1. 数据说明l SJA1000T CAN通讯速率选择参数(24M工作时钟下)#defineCAN_BPS_1M0xc0a3#defineCAN_BPS_500K0xc1a3#defineCAN_BPS_250K0xc2a3#defineCAN_BPS_125K0xc7a3#defineCAN_BPS_50K0xc7afl CAN2.0A

13、通讯信息帧说明typedef struct _CANFRAME UCHARmFrame10;CANFRAME,*PCANFRAME;信息帧分信息和数据两部分。头两个字节为信息部分,前11位(0-10)为标识符,标识符的前8位(ID)用于接收判断,应包含这一帧的目的站地址;第11位为RTR位,应设为0,最后是4位的DLC表示数据长度,单位为字节,几所发数据的实际长度。其余8个字节是数据部分。76543210字节1标识符(ID)字节2标识符RTRDLC字节3数 据字节4数 据字节5数 据字节6数 据字节7数 据字节8数 据字节9数 据字节10数 据l 接收地址屏蔽字(掩码)CAN_MASK接收屏蔽

14、字用于接收数据的过滤,与本地地址共同作用决定本站可接收的信息帧。判断方式如下:ID | CAN_MASK = 本地地址 | CAN_MASK接收所有信息帧,CAN_MASK设为0xFF;只接收发给自己的信息帧,CAN_MASK设为0x0。10.2. 接口函数说明设备管理 BOOL _stdcall PCI9623_IsOpen(int mDev)用途: 确认设备是否已经打开;返回参数:返回值为BOOL,返回TRUE表示该设备已经正确打开,FALSE表示该设备未被打开;调用参数:mDev32位int设备序号。取值为范围0-3;BOOL _stdcall PCI9623_Open(int mDev

15、)用途: 打开一个7621设备;返回参数:返回值为BOOL,返回TRUE表示该设备打开成功,FALSE表示该设备打开失败;调用参数:mDev32位int需要打开的设备序号。取值为范围0-3;BOOL _stdcall PCI9623_Close(int mDev)用途: 关闭一个7621设备;返回参数:返回值为BOOL返回TRUE表示该设备关闭成功,FALSE表示该设备关闭失败;调用参数:mDev32位int需要打开的设备序号。取值为范围0-3;端口初始化BOOL_stdcallPci9623_InitState(int mDev,int nPort,UINTCAN_bps,UCHARCAN_

16、StationAddress,UCHARCAN_Mask,HANDLEhWnd);BOOL_stdcallPci9623_InitStateEx(int mDev,intnPort,UINTCAN_bps,UCHARCAN_StationAddress,UCHARCAN_Mask,HANDLEmRxEvent);用途: 用于PCI9623通讯端口的初始化;返回参数:返回值为BOOL返回TRUE表示初始化成功,FALSE表示初始化失败;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;CAN_bps 16位UINTSJA1000T CAN

17、通讯速率选择参数(24M工作时钟下)取值为:CAN_BPS_1M0xc0a3CAN_BPS_500K0xc1a3CAN_BPS_250K0xc2a3CAN_BPS_125K0xc7a3CAN_BPS_50K0xc7afCAN_StationAddress nPort端口对应的站地址CAN_Mask nPort端口数据接收屏蔽字mRxEvent事件句柄用于判断该端口接收到数据的信号量hWnd窗口句柄指示接收数据后需要通知的窗口数据发送BOOL_stdcallPci9623_Send(int mDev,int mPort,PCANFRAME pSendFrame);用途: 用于PCI9623通讯端

18、口的发送数据帧;返回参数:返回值为BOOL返回TRUE表示发送成功,FALSE表示发送失败;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame数据帧指针(数据帧定义见10.1节 数据说明)数据读取int_stdcallPci9623_ReadFrame(int mDev,int mPort,CANFRAME *pFrame);用途: 用于读取PCI9623通讯端口的接收到的数据帧;当采用高速连续帧传输时,建议使用使用Pci9623_ReadFrameEx。返回参数:返回值为32位int返回值小于0表示读取失败或没有数

19、据;返回值等于0,表示读取完成,并且没有剩余接收缓冲数据帧;返回值大于0,表示接收缓冲区还剩余的接收数据帧数;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame放置接收数据帧的缓冲区指针; int_stdcallPci9623_ReadFrameEx(int mDev,int mPort,CANFRAME *pFrame,int *rMax);用途: 用于读取PCI9623通讯端口的接收到的数据帧;当采用高速连续帧传输时,使用Pci9623_ReadFrameEx读取可以实现快速,不丢帧传输。返回参数:返回值为32位

20、int返回值小于0表示读取失败或没有数据;返回值等于0,表示读取完成,并且没有剩余接收缓冲数据帧;返回值大于0,表示接收缓冲区还剩余的接收数据帧数;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame放置接收数据帧的缓冲区指针; rMax32位int指针指向表示需要一次读出的数据帧数量,必须小于等于pSendFrame指向的以帧为单位的缓冲区大小值,调用结束后,表示实际读出的数据帧数;10.3. VC实现功能举例参照提供的VC+程序源码,在Product_PCI96231Samples SourceVcSample76

21、21用户编程时,在程序中包含接口说明文件PCI9623.h,在工程中添加动态连接库的导入库PCI9623dll.lib。或自己使用现实加载。设备打开if(!Pci9623_IsOpen(0) /判断0号设备是否打开if(!Pci9623_Open(0)AfxMessageBox("Pci9623设备打开正确");else AfxMessageBox("Pci9623设备打开失败");初始化端口HANDLE mRx0Event=NULL;HANDLE mRx1Event=NULL;mRx0Event = CreateEvent(NULL,TRUE,FALS

22、E,NULL);mRx1Event = CreateEvent(NULL,TRUE,FALSE,NULL);if(!Pci9623_InitStateEx(0,0,CAN_BPS_250K,1,0xff,mRx0Event)AfxMessageBox("端口0初始化失败");elseAfxMessageBox("端口0初始化正确");if(!Pci9623_InitStateEx(0,1,CAN_BPS_250K,1,0xff,mRx1Event)AfxMessageBox("端口1初始化失败");elseAfxMessageBox(

23、"端口1初始化正确");数据收发:CANFRAME ddd;CANFRAME ddd1;ddd.mFrame0=0x8f;/CAN ID0ddd.mFrame1=0x88;/CAN ID1ddd.mFrame2=0x31;ddd.mFrame3=0x32;ddd.mFrame4=0x33;ddd.mFrame5=0x34;ddd.mFrame6=0x35;ddd.mFrame7=0x36;ddd.mFrame8=0x37;ddd.mFrame9=0x38;if(!Pci9623_Send(0,0,&ddd)AfxMessageBox("端口0发送失败&qu

24、ot;);return;if(WaitForSingleObject(mRx1Event,1000) = WAIT_OBJECT_0) ResetEvent(mRx1Event);AfxMessageBox("端口1收到数据");if(!Pci9623_ReadFrame(0,1,&ddd1)AfxMessageBox("端口1读取数据失败");elseAfxMessageBox("端口1读取数据成功");设备关闭if(Pci9623_IsOpen(0)if(!Pci9623_Close(0)AfxMessageBox(&qu

25、ot;Pci9623设备关闭正确");else AfxMessageBox("Pci9623设备关闭失败");10.4. CBuilder接口说明参照提供的CBuilder+程序源码,在Product_ISA7561Samples SourceCbSample7621。用户编程时,在程序中包含接口说明文件CbPci9623dll.h,在工程中添加动态连接库的导入库CbPci9623dll.lib。或自己使用现实加载。CBuilder是用自己独立的DLL:CbPci9623dll.dll。编程的函数调用与设备控制与VC相同。10.5. Delphi接口方法举例参照为

26、用户提供的Delph程序源码,保存在Product_PCI9623 Samples SourceDelphSample7621目录下。用户编程时,在程序工程中包含接口类型说明文件PCI9623.pas。用户使用API函数控制编程时需要用HH:=LoadLibrary('PCI9623DLL.dll')显式加载动态连接库PCI9623DLL.dll;退出时用FreeLibrary(HH)释放;使用GetProcAddress 函数导出接口API函数例如:varPCI9623_IsOpen:TPCI9623_IsOpen;implementation/ TPCI9623_IsOpe

27、n在PCI9623.pas定义其类型 PCI9623_IsOpen := GetProcAddress(HH,'PCI9623_IsOpen')在例子中给出了接口方法和一个完整的示例。帧结构定义type PCANFRAME = CANFRAME ; CANFRAME = record mFrame:Array 0.9 of byte;end;函数说明如下。type PInt = Integer; PWord = WORD; HANDLE = DWORD; TPci9623_IsOpen=function(mDev:DWORD): bool; stdcall; TPci9623_

28、Open=function(mDev:DWORD): bool; stdcall; TPci9623_Close=function(mDev:DWORD): bool; stdcall; TPci9623_InitStateEx=function(mDev:DWORD;nPort:DWORD;CAN_bps:WORD; CAN_StationAddress:BYTE;CAN_Mask:BYTE;mRxEvent:HANDLE): bool; stdcall; TPci9623_Send=function(mDev:DWORD;nPort:DWORD;pSendFrame:PCANFRAME):

29、 bool;stdcall; TPci9623_ReadFrame=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME): DWORD; stdcall; TPci9623_ReadFrameEx=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME; rMax:PDWORD): DWORD; stdcall;10.6. VB接口方法举例参照提供的VB程序源码,在Product_PCI9623 Samples SourceVBSample7621用户编程时,在程序中包含接口说明文件PCI9623.BAS。在其中定义了VB调用的接口,说明如下:帧结构定义Public Type CANFRAME mFrame(0 To 9) As ByteEnd TypeAPI接口函数说明Public Declare Function PCI9623_IsOpen Lib "PCI96

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论