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

下载本文档

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

文档简介

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

2、. 外形尺寸=外型尺寸(不含档板):长高160mm X 96mm3. 工作原理SFISA-7621隔离型CAN总线通讯板有ISA总线接口部分和CAN通讯部分。ISA总线接口部分实现通讯板与PC机数据接口,控制逻辑由CPLD电路内部设计的逻辑实现,总线宽度8位。CAN通讯部分实现了CAN物理层和数据链路层协议,主要由CAN网络接口控制器SJA1000T(Philips)实现,网络收发器使用82C250(Philips),连接接口通过DB-9实现。Bus-HBus-L ISA BUSBus-LBus-HCAN82C50CAN82C50SJA1000TSJA1000TISABUS接口逻辑4. 安装及

3、使用注意安装本卡的安装十分简便,只要将主机机壳打开,在关电情况下,将本卡插入主机的任何一个ISA总线空余扩展槽中,再将档板固定螺丝压紧即可。DB-9插头可从主机后面引出并与外设连接。使用注意在安装或用手触摸本卡时,应避免直接用手接触器件管脚,以免损坏器件。 本卡跳线器较多,使用中应严格按照说明书进行设置操作。禁止带电插拔插本接口卡。设置接口卡开关、跳线和安装接口电缆均应在关电状态下进行。5. 使用与操作5.1. 插座接口定义与连接方式 GNDGNDBus-LBus-H CAN接口DB-9管脚(XS1、XS2)接口信号定义说明Bus-H:CAN通讯信号高电平Bus-L:CAN通讯信号低电平GND

4、: 地5.2. 跳线设置板基地址选择 A3A4 A5 A6 A7A8 A9XF4 选择扳基地址=280h(640) 计算方法: 按位权相加.例如:A0位权20=1;. 24=16; 27=128; 29=512; 选择扳基地址280h=27+29=128+512=640; 290h=24+27+29=16+128+512=656; 跨接套连上对应地址选择位权为0,断开为1中断选择 XF5(XF7) XF6(XF8)从左向右为:无中断、IRQ4、IRQ5、IRQ6、IRQ7、IRQ9、IRQ14、IRQ13、IRQ12、IRQ11、IRQ10、XF5、XF6为端口0中断选择XF7、XF8为端口1

5、中断选择终端电阻连接XF1对应端口一、XF3对应端口二,跳接上则可以匹配120电阻以消除传送过程中的反射,提高抗干扰能力。5.3. 地址端口分配与控制寄存器描述本卡上的IO及控制字数据操作均为8位 SFISA7621卡内部地址分配表地址 写读板基地址0CAN端口0地址寄存器未使用板基地址1CAN端口0数据寄存器板基地址2CAN端口0中断复位未使用板基地址3CAN端口1地址寄存器未使用板基地址4CAN端口1数据寄存器板基地址5CAN端口1中断复位未使用板基地址6控制寄存器状态寄存器通道端口控制地址选择寄存器(板基地址0、板基地址3写)执行地址寄存器8位写操作,可以选择SJA1000T的CAN通讯

6、控制寄存器。通道端口控制数据收发寄存器(板基地址1、板基地址4读写)执行8位写操作,可以对选择好的SJA1000T的CAN通讯控制寄存器进行设置。执行8位读操作,可以读去选择好的SJA1000T的CAN通讯控制寄存器状态。通道端口中断复位(板基地址2、板基地址5写) 执行写操作复位对应端口产生的通讯事件中断。接口板控制寄存器设置(板基地址6写)表5.2 模拟输入通道选择数据格式D7D6D5D4D3D2D1D0NCNCNCNCC1C0E1E0E0、E1用于端口中断屏蔽E0 = 1 端口0中断使能E0 = 0 端口0中断屏蔽E1 = 1 端口1中断使能E1 = 0 端口1中断屏蔽C0、C1用于SJ

7、A1000T的工作时钟选择表5.3 接口板状态寄存器(板基地址6读)C1C0工作时钟0024Mhz0112Mhz106Mhz113Mhz6. 软件简要说明随机提供的软件是北京科尔特兴业测控研究所为用户提供的测试软件及其开发包。用户如果使用科尔特提供的驱动程序,则可以通过随机的开发包,开发自己的用户控制程序;并可以通过测试软件检测ISA7621的硬件是否正常工作,并了解ISA7621进行CAN通讯控制的参数控制 和操作特性。注意:软件应用及其使用说明建立在本公司提供的设备驱动程序上。本说明不涉及用户通过技术说明书编制自己的驱动程序以及根据驱动接口编制的用户控制程序的内容。7. 提供的软件内容随板

8、卡提供的软件包括:驱动及安装、测试程序、接口动态连接库和函数说明、编程举例驱动程序与驱动安装文件,目录路径:Product_ISA7621ISA7621 Driver Product_ISA7621ISA7621 Driver win98 Windows 98驱动目录Product_ISA7621ISA7621 Driver win2k Windows 2000驱动目录Product_ISA7621ISA7621 Driver winXP Windows xp驱动目录Product_ISA7621ISA7621 Driver winNT Windows NT驱动目录接口动态连接库路径Produ

9、ct_ISA7621Develop ISA7621LibDLL接口函数定义文件Product_ISA7621Develop ISA7621Include测试程序路径Product_ISA7621Test ISA7621编程举例源码路径Product_ISA7621Samples Source8. 驱动安装与设备管理对于在windows的操作系统下安装驱动程序的方法如下1、关闭计算机的电源;2、将ISA7621板卡插入ISA插槽中;3、打开计算机电源,启动计算机;4、进入Product_ISA7621ISA7621 Driver目录下,运行SFSetup.exe安装程序;5、确定设备列表中没有安

10、装ISA7621驱动,选择安装新驱动,进入下一步;6、从列表中选择“ISA7621:双路CAN通讯板进入下一步;7、在文件打开对话框中查找到Isa7621.sys驱动程序文件,按打开按钮,进入下一步;8、程序隐含安装一个设备,对这个设备的参数进行修改:双击对应参数项,弹出对应参数选择列表,选择硬件跳线设置的参数(该参数与系统其他设备不能发生冲突,否则设备不能使用,严重会造成死机);隐含设置参数为IO端口(PORTBASE)为280H,中断号IRQ_1为7,IRQ_2为5;按确认修改进入下一步;9、如果安装成功会提示成功安装,需要重新启动系统。如果需要安装多个设备,返回一级对话框,选择添加已安装

11、板卡的新设备(参照11.2)。各个设备的硬件资源占用情况不能存在冲突,也不能和系统其他设备冲突。设置的参数值必须与硬件调线一致。否则不能正常使用。注意:ISA7621上电初始工作频率为24Mhz。8. 3. 1 添加设备1、 启动SFSetup.exe,在当前设备列表中选择驱动名称为ISA7621的设备项;2、 选择“添加已安装板卡的新设备”,进入下一步,在弹出的提示框中,按确定;3、 如果在添加新设备对话框中的当前ISA7621设备数小于4个,进入下一步;4、 修改新添加的设备硬件配置参数:双击对应参数项,弹出对应参数选择列表,选择硬件跳线设置的参数(该参数与系统其他设备不能发生冲突,否则设

12、备不能使用,严重会造成死机);隐含设置参数为IO端口(PORTBASE)为280H,中断号IRQ1为7,IRQ2为5;按确认修改进入下一步;5、正确添加新设备,需要重新启动系统,才能正确控制设备。按确定立即启动,取消返回主界面。8. 3. 2 删除设备1、 启动SFSetup.exe,在当前设备列表中选择驱动名称为ISA7621的设备项;2、 选择“删除同类板卡序号最大的设备”,进入下一步,在弹出的提示框中,按确定;3、 成功删除设备后,需要重新启动系统,才能正确控制设备。按确定立即启动,取消返回主界面。 8. 3. 3 设置参数1、启动SFSetup.exe,在当前设备列表中选择需要修改参数

13、的ISA7621的设备项2、按修改设备参数按钮,进入参数修改对话框,双击对应参数项,弹出对应参数选择列表,选择硬件跳线设置的参数(该参数与系统其他设备不能发生冲突,否则设备不能使用,严重会造成死机); 3、 重复1、2修改完所需修改设备,重新启动机器,按新的设置工作。8. 3. 4 升级驱动程序1、 启动SFSetup.exe,在当前设备列表中选择驱动名称为ISA7621的设备项;2、 选择“添加已安装板卡的新设备”,进入下一步,在弹出的提示框中,按确定;3、 在文件打开对话框中查找到新的Isa7621.sys驱动程序文件,按打开按钮,进入下一步;4、 如果安装成功会提示成功安装,需要重新启动

14、系统,按确定立即启动,取消返回主界面;8. 3. 5 删除驱动1、 启动SFSetup.exe,在当前设备列表中选择驱动名称为ISA7621的设备项;2、 选择“删除驱动”,进入下一步,在弹出的提示框中,按确定;3、 如果正确删除驱动,需要重新启动系统,按确定立即启动,取消返回主界面。8. 3. 6 系统资源查询方法在NT/windows2000/xp系统中,使用系统信息工具,选择硬件资源可以查询到系统当前的硬件资源占用情况。(在开始菜单中的附件/系统工具/系统信息中启动)在windows9x系统中,使用设备管理器工具,选择计算机属性(鼠标指定列表中的计算机项,按右键,选择属性),可以查看资源

15、。进行参数设置时,选择系统没有占用的资源,设置ISA7621的硬件资源,并保证硬件板上跳线选择与设置参数一致(否则无法正常工作)。注意:如果出现中断资源不足,中断被PCI、USB设备大量占用时,可在计算机启动时,通过设置BIOS参数,使ISA设备独占选定的中断资源。9. 测试程序使用说明测试程序用于测试ISA7621的通讯功能工作情况和调试板上参数。可以测试CAN端口的通讯信息收发。9.2. 端口参数设置界面上的传送速率为24Mhz工作频率下的CAN通讯速率。1,选择传送速率和工作时钟:实际的CAN通讯速率 = 传送速率X工作时钟/24M2,设置端口0、端口1的地址掩码和本地地址,执行“初始化

16、端口” 9.3. 端口数据发送编辑发送内容,执行“单步发送”; 9.4. 端口数据接收接收端口收到数据,会显示接收数据,可对照发送端口的发送内容;同时“已收数据帧数”加一。9.5. 端口数据连续收发设置“连续发送数据帧数”,执行“连续发送”;发送端口会按照设置的帧数发送数据帧;已收数据帧数,会显示接收到的数据帧数。10. 编程说明编程使用本公司提供的驱动时请注意,本公司为用户提供了VC和CBuilder两种格式的DLL。除CBuilder编程使用CBuilder格式的Isa7621Cbdll.dll,其他编程环境建议用户使用标准格式的Isa7621Dll.dll。用户可以在Product_IS

17、A7621Develop 控制方式举例由VC+程序说明,其它语言开发说明请参考在文档中提供的编程举例。10.1. 数据说明l SJA1000T CAN通讯速率选择参数(24M工作时钟下)#defineCAN_BPS_1M0xc0a3#defineCAN_BPS_500K0xc1a3#defineCAN_BPS_250K0xc2a3#defineCAN_BPS_125K0xc7a3#defineCAN_BPS_50K0xc7afl CAN通讯信息帧说明typedef struct _CANFRAME UCHARmFrame10;CANFRAME,*PCANFRAME;信息帧分信息和数据两部分。头

18、两个字节为信息部分,前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接收屏蔽字用于接收数据的过滤,与本地地址共同作用决定本站可接收的信息帧。判断方式如下:ID | CAN_MASK = 本地地址 | CAN_MASK接收所有信息帧,CA

19、N_MASK设为0xFF;只接收发给自己的信息帧,CAN_MASK设为0x0。10.2. 接口函数说明设备管理 BOOL _stdcall ISA7621_IsOpen(int mDev)用途: 确认设备是否已经打开;返回参数:返回值为BOOL,返回TRUE表示该设备已经正确打开,FALSE表示该设备未被打开;调用参数:mDev32位int设备序号。取值为范围0-3;BOOL _stdcall ISA7621_Open(int mDev)用途: 打开一个7621设备;返回参数:返回值为BOOL,返回TRUE表示该设备打开成功,FALSE表示该设备打开失败;调用参数:mDev32位int需要打开

20、的设备序号。取值为范围0-3;BOOL _stdcall ISA7621_Close(int mDev)用途: 关闭一个7621设备;返回参数:返回值为BOOL返回TRUE表示该设备关闭成功,FALSE表示该设备关闭失败;调用参数:mDev32位int需要打开的设备序号。取值为范围0-3;BOOL _stdcall ISA7621_GetVersion(int mDev,char *pVersion)用途: 获取7621设备驱动的版本号;返回参数:返回值为BOOL返回TRUE表示函数执行成功,FALSE表示函数执行失败;调用参数:mDev32位int设备序号。取值为范围0-3;pVersion

21、 byte串保存版本号的字符串(最小长度16字节)BOOL_stdcallIsa7621_SetClk(int mDev,int mClk);用途: 用于ISA7621板上的SJA1000T工作时钟选择;返回参数:返回值为BOOL返回TRUE表示成功,FALSE表示失败;调用参数:mDev32位int设备序号。取值为范围0-3;mClk32位int时钟选择参数(0-3);0 24Mhz1 12Mhz2 6Mhz0 3Mhz端口初始化BOOL_stdcallIsa7621_InitState(int mDev,int nPort,UINTCAN_bps,UCHARCAN_StationAddre

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

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

24、:返回值为BOOL返回TRUE表示发送成功,FALSE表示发送失败;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame数据帧指针(数据帧定义见10.1节 数据说明)数据读取int_stdcallIsa7621_ReadFrame(int mDev,int mPort,CANFRAME *pFrame);用途: 用于读取ISA7621通讯端口的接收到的数据帧;返回参数:返回值为32位int返回值小于0表示读取失败或没有数据;返回值等于0,表示读取完成,并且没有剩余接收缓冲数据帧;返回值大于0,表示接收缓冲区还剩余的接收

25、数据帧数;调用参数:mDev32位int设备序号。取值为范围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame放置接收数据帧的缓冲区指针; int_stdcallIsa7621_ReadFrameEx(int mDev,int mPort,CANFRAME *pFrame,int *rMax);用途: 用于读取ISA7621通讯端口的接收到的数据帧;返回参数:返回值为32位int返回值小于0表示读取失败或没有数据;返回值等于0,表示读取完成,并且没有剩余接收缓冲数据帧;返回值大于0,表示接收缓冲区还剩余的接收数据帧数;调用参数:mDev32位int设备序号。取值为范

26、围0-3;nPort32位int端口序号。取值为范围0-1;pSendFrame放置接收数据帧的缓冲区指针; rMax32位int指针指向表示需要一次读出的数据帧数量,必须小于等于pSendFrame指向的以帧为单位的缓冲区大小值,调用结束后,表示实际读出的数据帧数;10.3. VC实现功能举例参照提供的VC+程序源码,在Product_ISA76211Samples SourceVcSample7621用户编程时,在程序中包含接口说明文件ISA7621.h,在工程中添加动态连接库的导入库ISA762。或自己使用现实加载。设备打开if(!Isa7621_IsOpen(0) /判断0号设备是否打

27、开if(!Isa7621_Open(0)AfxMessageBox(Isa7621设备打开正确);else AfxMessageBox(Isa7621设备打开失败);初始化端口HANDLE mRx0Event=NULL;HANDLE mRx1Event=NULL;mRx0Event = CreateEvent(NULL,TRUE,FALSE,NULL);mRx1Event = CreateEvent(NULL,TRUE,FALSE,NULL);if(!Isa7621_InitStateEx(0,0,CAN_BPS_250K,1,0xff,mRx0Event)AfxMessageBox(端口0初

28、始化失败);elseAfxMessageBox(端口0初始化正确);if(!Isa7621_InitStateEx(0,1,CAN_BPS_250K,1,0xff,mRx1Event)AfxMessageBox(端口1初始化失败);elseAfxMessageBox(端口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.mF

29、rame6=0x35;ddd.mFrame7=0x36;ddd.mFrame8=0x37;ddd.mFrame9=0x38;if(!Isa7621_Send(0,0,&ddd)AfxMessageBox(端口0发送失败);return;if(WaitForSingleObject(mRx1Event,1000) = WAIT_OBJECT_0) ResetEvent(mRx1Event);AfxMessageBox(端口1收到数据);if(!Isa7621_ReadFrame(0,1,&ddd1)AfxMessageBox(端口1读取数据失败);elseAfxMessageBox(端口1读取数

30、据成功);设备关闭if(Isa7621_IsOpen(0)if(!Isa7621_Close(0)AfxMessageBox(Isa7621设备关闭正确);else AfxMessageBox(Isa7621设备关闭失败);10.4. CBuilder接口说明参照提供的CBuilder+程序源码,在Product_ISA7561Samples SourceCbSample7621。用户编程时,在程序中包含接口说明文件CbIsa7621dll.h,在工程中添加动态连接库的导入库CbIsa762。或自己使用现实加载。CBuilder是用自己独立的DLL:CbIsa7621dll.dll。编程的函数

31、调用与设备控制与VC相同。10.5. Delphi接口方法举例参照为用户提供的Delph程序源码,保存在Product_ISA7621 Samples SourceDelphSample7621目录下。用户编程时,在程序工程中包含接口类型说明文件ISA7621.pas。用户使用API函数控制编程时需要用HH:=LoadLibrary(ISA7621DLL.dll)显式加载动态连接库;退出时用FreeLibrary(HH)释放;使用GetProcAddress 函数导出接口API函数例如:varISA7621_IsOpen:TISA7621_IsOpen;implementation/ TISA

32、7621_IsOpen ISA7621_IsOpen := GetProcAddress(HH,ISA7621_IsOpen)在例子中给出了接口方法和一个完整的示例。帧结构定义type PCANFRAME = CANFRAME ; CANFRAME = record mFrame:Array 0.9 of byte;end;函数说明如下。type PInt = Integer; PWord = WORD; HANDLE = DWORD; TIsa7621_IsOpen=function(mDev:DWORD): bool; stdcall; TIsa7621_Open=function(mDe

33、v:DWORD): bool; stdcall; TIsa7621_Close=function(mDev:DWORD): bool; stdcall; TIsa7621_InitStateEx=function(mDev:DWORD;nPort:DWORD;CAN_bps:WORD; CAN_StationAddress:BYTE;CAN_Mask:BYTE;mRxEvent:HANDLE): bool; stdcall; TIsa7621_Send=function(mDev:DWORD;nPort:DWORD;pSendFrame:PCANFRAME): bool;stdcall; TI

34、sa7621_SetClk=function(mDev:DWORD;nPort:DWORD): bool; stdcall; TIsa7621_ReadFrame=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME): DWORD; stdcall; TIsa7621_ReadFrameEx=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME; rMax:PDWORD): DWORD; stdcall;10.6. VB接口方法举例参照提供的VB程序源码,在Product_ISA7621 Samples SourceVBSample7621用户编程时,在程序中包含接口说明文件ISA7621.BAS。在其中定义了V

温馨提示

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

评论

0/150

提交评论