RS232串行口CAN总线转换器CAN232使用手册.docx

上传人:b****6 文档编号:15723761 上传时间:2023-07-07 格式:DOCX 页数:19 大小:63.04KB
下载 相关 举报
RS232串行口CAN总线转换器CAN232使用手册.docx_第1页
第1页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第2页
第2页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第3页
第3页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第4页
第4页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第5页
第5页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第6页
第6页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第7页
第7页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第8页
第8页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第9页
第9页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第10页
第10页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第11页
第11页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第12页
第12页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第13页
第13页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第14页
第14页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第15页
第15页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第16页
第16页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第17页
第17页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第18页
第18页 / 共19页
RS232串行口CAN总线转换器CAN232使用手册.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

RS232串行口CAN总线转换器CAN232使用手册.docx

《RS232串行口CAN总线转换器CAN232使用手册.docx》由会员分享,可在线阅读,更多相关《RS232串行口CAN总线转换器CAN232使用手册.docx(19页珍藏版)》请在冰点文库上搜索。

RS232串行口CAN总线转换器CAN232使用手册.docx

RS232串行口CAN总线转换器CAN232使用手册

PCI非智能卡函数使用说明

--forWindows95/98/2000

    Pcicandrv.LIB-CAN总线函数库(适用于Windows95/98/2000):

1.自定义数据结构说明

1.1PORT_STRUCT结构定义

    PORT_STRUCT结构:

定义读取的PCI板卡

    typedefstruct_tagPORT_STRUCT

    {

     BYTEcard;//indexofcard(startfrom0)

     BYTEvalue;//forsomeparticularuse

     }PORT_STRUCT;

    成员变量说明:

          card:

表示读取哪一个PCI非智能卡,基值必须从0开始;

          value:

为将来功能的扩展预留;

1.2PORT_CONFIG结构定义

    PORT_CONFIG结构:

配置PCI非智能卡的工作方式、ID和波特率

    typedefstruct_tagPORT_CONFIG

    {

            WORDworkMode;//0for11-bit;

                          //1for29-bit

            WORDfilterMode;//0forsinglefiltermode,

                            //1fordualfiltermode;

            DWORDaccCode;//acceptcode

            DWORDaccMask;//acceptmask

            BYTEtimer0;//timer0register(setbaudrate)

            BYTEtimer1;//timer1register

            BYTEcontrol;//enableinterrupt

    }PORT_CONFIG;

    成员变量说明:

            workMode:

0-使用11位CAN_ID;

                       1-使用29位CAN_ID;

            filterMode:

0-CAN控制器采用单滤波方式;

                         1-CAN控制器采用双滤波方式;

            accCode:

设定的CAN控制器节点ID;

            accMask:

设定的与CAN_ID对应的屏蔽码;

            timer0:

设定的CAN控制器time0寄存器内容(用于设定波特率);

            timer1:

设定的CAN控制器time1寄存器内容(用于设定波特率);

            control:

用于设定允许开放的中断0-禁止中断1-开放中断

            control.7control.0

BEIE

ALIE

EPIE

WUIE

DOIE

EIE

TIE

RIE

            BEIE:

buserrorinterruptenable

            ALIE:

arbitrationlostinterruptenable

            EPIE:

errorpassiveinterruptenable

            WUIE:

wake-upinterruptenable

            DOID:

dataoverruninterruptenable

            EIE:

errorwarninginterruptenable

            TIE:

transmitinterruptenable

            RIE:

receiveinterruptenable

            波特率与Time0、Time1寄存器设定对照表

Baudrate(bps)

Timer0

Timer1

5k

3fh

Ffh

10k

1fh

Ffh

20k

0fh

Ffh

40k

07h

Ffh

50K

07h

2fh

80k

03h

Ffh

100k

03h

2fh

125k

03h

1ch

160k

01h

Ffh

250k

01h

1ch

320k

00h

Ffh

500k

00h

1ch

800k

00h

16h

1000k

00h

14h

1.3PORT_REG结构定义

    PORT_REG结构:

用于读/写CAN控制器内的寄存器的数据结构。

    typedefstruct_tagPORT_REG

    {

        BYTEcard;//indexofcard(startfrom0)

        BYTEreg;//oneofregisterinSJA1000

        BYTEvalue;//forReading:

valuereadfromoneregister

                   //forwritting:

valuewanttowritetooneregister

    }PORT_REG;

    成员变量说明:

        card:

表示读取哪一个PCI非智能卡,基值必须从0开始;

        reg:

设定读取的CAN控制器的寄存器;

        value:

读/写的寄存器内容

               读操作:

保存从寄存器读取的数据

               写操作:

保存写到寄存器的数据

1.4CAN_PACKET结构定义

    PORT_PACKET结构:

CAN数据帧结构,用于发送和接收函数。

    typedefstruct_tagCAN_PACKET

    {

        DWORDCAN_ID;//CANIDfield(32-bitunsignedinteger)

        BYTErtr;//CANRTRbit.

        BYTElength;//Lengthofdatafield.

        BYTEdata[8];//Data(8bytesmaximum)

        DWORDtime;//Reservedforfutureuse

        BYTEreserved;//Reservedbyte

     }CAN_PACKET;

     成员变量说明:

        CAN_ID;CAN_ID(无符号32位数)

        rtr:

CANRTR位0-数据帧1-远程帧

        length:

数据长度(以字节为单位,最多8个字节)

        data[8]:

数据(最多8个字节);

        time:

为将来功能扩展预留;

        reserved:

为将来功能扩展预留;

1.5CAN_PACKET1000结构定义

    PORT_PACKET1000结构:

定义此数据结构用于一次性全部读取数据缓冲区内容;

    typedefstruct_tagCAN_PACKET1000

    {

          WORDnum;

          CAN_PACKETpacket[1000];

     }CAN_PACKET1000;

     成员变量说明:

          num:

实际从数据缓冲区内读取的CAN数据帧数量(0~1000)

          packet[1000]:

保存从数据缓冲区内读取的CAN数据帧内容

2.函数使用说明

2.1打开PCI非智能卡函数

    intCAN_Open(void)

        参数:

        返回值:

1-成功

                0-失败

2.2初始化函数

    intCAN_Init(PORT_STRUCT*ptrStruct,PORT_CONFIG*ptrConfig)

        参数:

ptrStruct-结构PORT_STRUCT的指针

               ptrConfig-结构PORT_CONFIG的指针

        返回值:

1-打开PCI卡成功

                0-打开PCI卡失败

               -1-设定的PCI板卡不存在

    说明:

ptrStruct结构中的card用以选择操作的PCI板卡,ptrConfig中的参数用以

         设定CAN控制器的工作方式、滤波方式、波特率以及控制器开放的中断。

          CAN控制器的波特率的设定以16MHZ晶振为标准。

如果使用内存缓冲区模式

         (使用计算机内存,最多可存储1000帧数据),请开放CAN控制器的接收

         中断允许。

    注意:

以下对各函数中的ptrStruct结构不再加以说明,如非特别声明,均

        用于选择操作的PCI板卡。

2.3波特率自动设定函数

    intCAN_Detect_Baudrate(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-自动设定波特率成功

                0-自动设定波特率失败

                -1-设定的PCI板卡不存在

        说明:

自动测试的波特率只能从给定的波特率列表中选择,而且只能工作于

              网络上多个CAN节点(>2)同时工作的情况。

2.4禁止数据接收函数

    intCAN_Disable_Receive(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-禁止数据接收成功

                0-禁止数据接收失败

               -1-设定的PCI板卡不存在

        说明:

禁止接收函数可以使CAN控制器不再接收其它节点发送的数据,但依

              然能够正常发送数据。

2.5开放数据接收函数

    intCAN_Enable_Receive(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-开放数据接收成功

                0-开放数据接收失败

               -1-设定的PCI板卡不存在

        说明:

使已禁止接收数据的CAN控制器恢复接收数据功能。

2.6读取错误警告限制函数(ErrorWarningLimit)

    intCAN_Get_ErrorWarningLimit(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-读取错误警告成功

                0-读取错误警告失败

               -1-设定的PCI板卡不存在

        说明:

CAN控制器复位后默认的错误警告数为96。

       注意:

读取的错误警告数从ptrStruct结构的value变量获得。

2.7设置错误警告限制函数(ErrorWarningLimit)

    intCAN_Set_ErrorWarningLimit(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-设置错误警告成功

                0-设置错误警告失败

               -1-设定的PCI板卡不存在

        说明:

重新设置的错误警告限制值(<255)请赋于ptrStruct结构的value变

              量后调用此函数。

2.8读取发送错误计数器函数

    intCAN_Get_TxErrorCount(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-读取发送错误计数成功

                0-读取发送错误计数失败

               -1-设定的PCI板卡不存在

        说明:

CAN控制器复位后默认的发送错误计数器数值为0。

       注意:

读取的发送错误计数从ptrStruct结构的value变量获得。

2.9设置发送错误计数器函数

    intCAN_Set_TxErrorCount(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-设置发送错误计数成功

                0-设置发送错误计数失败

               -1-设定的PCI板卡不存在

        说明:

重新设置的发送错误计数(<255)请赋于ptrStruct结构的value变量

              后调用此函数。

2.10读取接收错误计数器函数

    intCAN_Get_RxErrorCount(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-读取接收错误计数成功

                0-读取接收错误计数失败

               -1-设定的PCI板卡不存在

        说明:

CAN控制器复位后默认的接收错误计数器数值为0。

       注意:

读取的接收错误计数从ptrStruct结构的value变量获得。

2.11读取总线错误代码函数

    intCAN_Get_ErrorCode(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-读取总线错误代码成功

                0-读取总线错误代码失败

               -1-设定的PCI板卡不存在

        说明:

读取的总线错误代码从ptrStruct结构的value变量获得。

2.12查询是否有接收数据函数

    intCAN_Inquiry_Rece(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-有接收数据

                0-无接收数据

               -1-设定的PCI板卡不存在

        说明:

此函数从CAN控制器缓冲区或内存缓冲区内判断是否有已接收的数

             据。

2.13读取接收缓冲区内数据帧数量函数

    intCAN_Get_RxBufferCount(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

>=0-接收缓冲区内数据帧的数量

                -1-设定的PCI板卡不存在

        说明:

此函数从CAN控制器缓冲区或内存缓冲区内读取已接收的数据帧数

             量。

2.14清除接收缓冲区内数据函数

    intCAN_Clear_RxBuffer(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-清除接收缓冲区内数据成功

                0-清除接收缓冲区内数据失败

               -1-设定的PCI板卡不存在

        说明:

此函数清除CAN控制器缓冲区或内存缓冲区内已接收的数据帧。

2.15接收数据帧函数(一次只读取一帧数据)

    intCAN_Rece(PORT_STRUCT*ptrStruct,CAN_PACKET*ptrPacket)

        参数:

ptrStruct-结构PORT_STRUCT的指针

               ptrPacket-结构CAN_PACKET的指针

        返回值:

1-接收数据成功

                0-无接收数据

               -1-设定的PCI板卡不存在

        说明:

此函数从CAN控制器缓冲区或内存缓冲区内读取已接收的数据帧。

              接收的数据从ptrPacket的成员变量Data中读取。

详细数据结构请参看

              自定义的CAN_PACKET结构。

       注意:

以下各函数中的ptrPacket结构均指CAN数据帧结构,不再加以说

            明。

2.16读缓冲区数据帧函数(一次读取全部帧数据)

    intCAN_Read_RxBuffer(PORT_STRUCT*ptrStruct,CAN_PACKET1000        *ptrPacket1000)参数:

ptrStruct-结构PORT_STRUCT的指针

        ptrPacket1000-结构CAN_PACKET1000的指针

        返回值:

1-接收数据成功

                0-无接收数据

               -1-设定的PCI板卡不存在

        说明:

此函数从CAN控制器缓冲区或内存缓冲区内一次性全部读取已接收的

              数据帧。

接收的数据帧从ptrPacket1000的成员变量ptrPacket1000中

             读取,实际接收到的数据帧数量从ptrPacket1000的成员变量num中

             读取。

详细的数据结构请参看自定义的CAN_PACKET1000结构。

2.17查询是否可以发送数据函数

    intCAN_Inquiry_Trans(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-CAN控制器空闲,可以发送数据

                0-CAN控制器正在发送数据…

                              -1-设定的PCI板卡不存在

        说明:

此函数判断CAN控制器状态,判断是否可以发送新的数据帧。

2.18清除正在发送的数据函数

    intCAN_Clear_TxBuffer(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-清除正在发送的数据成功

                0-清除正在发送的数据失败

               -1-设定的PCI板卡不存在

        说明:

如果CAN控制器内有正在发送的数据帧,则使此数据帧夭折发送。

2.19发送数据帧函数

    intCAN-Trans(PORT_STRUCT*ptrStruct,CAN_PACKET*ptrPacket)

        参数:

ptrStruct-结构PORT_STRUCT的指针

               ptrPacket-结构CAN_PACKET的指针

        返回值:

1-数据帧成功写入发送缓冲区等待发送

                0-CAN控制器无法发送数据帧

               -1-设定的PCI板卡不存在

        说明:

此函数将要发送的数据帧写入发送缓冲区等待发送,但无法保证数据

              帧一定发送成功;如果用户需要判断,可以调用CAN_Inquiry_Trans

              ()函数判断是否已经发送成功。

2.20查询CAN控制器状态函数

    intCAN_Inquiry_Status(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

16Bit值高位字节:

CAN中断寄存器内容

        低位字节:

CAN状态寄存器内容

        说明:

此函数读取CAN中断寄存器和CAN状态寄存器内容

2.21清除数据过载函数

    intCAN_Clear_Overrun(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-清除数据过载成功

                0-清除数据过载失败

               -1-设定的PCI板卡不存在

2.22CAN控制器软件复位函数

    intCAN_Soft_Reset(PORT_STRUCT*ptrStruct)

        参数:

ptrStruct-结构PORT_STRUCT的指针

        返回值:

1-软件复位成功

                

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2