USB2XXX 1.2
USB2XXX接口函数说明文档
载入中...
搜索中...
未找到
结构体 | 函数
USB转MeLiBu

USB转MeLiBu接口函数和数据类型定义 更多...

结构体

struct  _MELIBU_MSG
 
struct  _MELIBU_SCH_INFO
 

函数

int WINAPI MeLiBu_Init (int DevHandle, unsigned char Index, unsigned int BaudRate, unsigned char MasterMode, unsigned char ResEnable)
 MELIBU总线初始化,在使用LIN相关函数之前必须先调用该函数 更多...
 
int WINAPI MeLiBu_SetRevTime (int DevHandle, unsigned char Index, int TimeUs)
 设置接收数据时等待对方响应数据超时时间 更多...
 
int WINAPI MeLiBu_MasterStartSch (int DevHandle, unsigned char Index, MELIBU_MSG *pMsg, unsigned int MsgLen, unsigned int SendTimes, unsigned char ReadBackFlag)
 主机模式执行MeLiBu总线调度表,可以使用该函数发送数据,读取从机数据 更多...
 
int WINAPI MeLiBu_GetMsg (int DevHandle, unsigned char Index, MELIBU_MSG *pMsg, unsigned int BufferSize)
 获取帧缓冲区里面的帧数据,这些数据可能是发送出去的帧数据,也可能是从机模式下监控到的帧数据 更多...
 
unsigned short WINAPI MeLiBu_GetID (unsigned char MsgMode, unsigned char SlaveAddr, unsigned char RT, unsigned char F, unsigned char dlc, unsigned char InstrExt)
 根据参数自动生成ID数据 更多...
 
int WINAPI MeLiBu_MasterStopSch (int DevHandle, unsigned char Index)
 停止正在执行的调度表 更多...
 
int WINAPI MeLiBu_Stop (int DevHandle, unsigned char Index)
 停止MELIBU总线,调用该函数后,总线无法再进行数据收发,需要使用总线需要重新调用 MeLiBu_Init 函数 更多...
 
long long WINAPI MeLiBu_GetStartTime (int DevHandle, unsigned char Index)
 获取启动MELIBU总线时的起始时间戳,单位为毫秒,可以通过该时间戳转换成实时时间 更多...
 
int WINAPI MeLiBu_GetSchInfo (int DevHandle, unsigned char Index, MELIBU_SCH_INFO *pSchInfo)
 获取当前调度表执行信息,可以通过调用该函数获取帧发送情况 更多...
 

MELIBU帧结构定义

MELIBU帧类型定义

typedef struct _MELIBU_MSG MELIBU_MSG
 

MELIBU调度表信息

MELIBU调度表信息定义

typedef struct _MELIBU_SCH_INFO MELIBU_SCH_INFO
 

函数返回错误值宏定义

函数调用出错后返回值定义

#define MELIBU_SUCCESS   (0)
 函数执行成功
 
#define MELIBU_ERR_NOT_SUPPORT   (-1)
 适配器不支持该函数
 
#define MELIBU_ERR_USB_WRITE_FAIL   (-2)
 USB写数据失败
 
#define MELIBU_ERR_USB_READ_FAIL   (-3)
 USB读数据失败
 
#define MELIBU_ERR_CMD_FAIL   (-4)
 命令执行失败
 
#define MELIBU_ERR_PARAMETER   (-5)
 参数错误
 

设备工作模式

定义设备的工作模式,该参数在初始化的时候用到

#define MELIBU_MASTER   0x01
 设备工作在主机模式,可以控制总线收发数据
 
#define MELIBU_SLAVE   0x00
 设备工作在从机模式,可以用于监听总线数据
 

帧收发方向定义

帧收发方向定义,该参数在帧方向判断时用到

#define MELIBU_TX   0x00
 主机发送数据给从机
 
#define MELIBU_RX   0x01
 主机向从机读数据
 

ID里面包含的数据定义

ID包含的数据定义

#define MELIBU_ID_RT(ID)   ((ID>>9)&1)
 
#define MELIBU_ID_FS(ID)   ((ID>>8)&1)
 
#define MELIBU_ID_SADDR(ID)   ((ID>>10)&0xFC)
 

帧状态定义

帧状态定义,一个位表示一个状态

#define MELIBU_STATUS_NACK   0x01
 写无应答(非广播帧)
 
#define MELIBU_STATUS_RNRES   0x02
 读数据无应答
 
#define MELIBU_STATUS_ECRC   0x04
 CRC校验错误
 
#define MELIBU_STATUS_FERR   0x08
 帧异常,实际字节数跟规定的不匹配
 
#define MELIBU_STATUS_DLEN   0x10
 实际数据字节数跟帧头字节数不匹配
 
#define MELIBU_STATUS_PERR   0x20
 P0 P1错误
 

详细描述

USB转MeLiBu接口函数和数据类型定义

函数说明

◆ MeLiBu_Init()

int WINAPI MeLiBu_Init ( int  DevHandle,
unsigned char  Index,
unsigned int  BaudRate,
unsigned char  MasterMode,
unsigned char  ResEnable 
)

MELIBU总线初始化,在使用LIN相关函数之前必须先调用该函数

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
BaudRateMELIBU总线波特率值,单位为bps,最小值为2000,最大值为5000000
MasterModeMELIBU工作模式,0-从机,1-主机
ResEnable总线上终端电阻使能设置,0-禁止,1-使能
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_SetRevTime()

int WINAPI MeLiBu_SetRevTime ( int  DevHandle,
unsigned char  Index,
int  TimeUs 
)

设置接收数据时等待对方响应数据超时时间

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexMeLiBu通道号,0-CAN1,1-CAN2
TimeUs等待对方响应数据超时时间,单位为us,最大值为65536微秒
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_MasterStartSch()

int WINAPI MeLiBu_MasterStartSch ( int  DevHandle,
unsigned char  Index,
MELIBU_MSG pMsg,
unsigned int  MsgLen,
unsigned int  SendTimes,
unsigned char  ReadBackFlag 
)

主机模式执行MeLiBu总线调度表,可以使用该函数发送数据,读取从机数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
pMsg需要执行的帧数组起始地址
MsgLen帧数组里面有效帧数,最大不能超过64
SendTimes帧数组里面的帧循环发送次数,若设置为0xFFFFFFFF则表示一直循环发送数据,需要通过调用 MeLiBu_MasterStopSch 函数停止发送
ReadBackFlag回读调度表收发帧消息标志,0-不回读,1-需要回读,通过调用 MeLiBu_GetMsg 函数获取
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_GetMsg()

int WINAPI MeLiBu_GetMsg ( int  DevHandle,
unsigned char  Index,
MELIBU_MSG pMsg,
unsigned int  BufferSize 
)

获取帧缓冲区里面的帧数据,这些数据可能是发送出去的帧数据,也可能是从机模式下监控到的帧数据

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
pMsg需要存储帧数据帧数组起始地址
BufferSize存储帧数据的帧数组大小
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_GetID()

unsigned short WINAPI MeLiBu_GetID ( unsigned char  MsgMode,
unsigned char  SlaveAddr,
unsigned char  RT,
unsigned char  F,
unsigned char  dlc,
unsigned char  InstrExt 
)

根据参数自动生成ID数据

参数
MsgMode当前帧模式,0-常规模式,1-增强模式
SlaveAddr从机地址,最大值为0x3F
RT方向选择,0-主机发送数据,从机接收数据,1-主机读取数据,从机发送数据
F功能选择位,设置为0或者1
dlc当前发送或者读取的数据字节数
InstrExt当F为0时,定义为帧类型,最大值为7,若F为1时,该参数无用
返回
通过传入的参数生成的ID值

◆ MeLiBu_MasterStopSch()

int WINAPI MeLiBu_MasterStopSch ( int  DevHandle,
unsigned char  Index 
)

停止正在执行的调度表

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_Stop()

int WINAPI MeLiBu_Stop ( int  DevHandle,
unsigned char  Index 
)

停止MELIBU总线,调用该函数后,总线无法再进行数据收发,需要使用总线需要重新调用 MeLiBu_Init 函数

参数
DevHandleDevHandle 设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
返回
函数执行状态
返回值
0函数调用成功
<0函数调用失败

◆ MeLiBu_GetStartTime()

long long WINAPI MeLiBu_GetStartTime ( int  DevHandle,
unsigned char  Index 
)

获取启动MELIBU总线时的起始时间戳,单位为毫秒,可以通过该时间戳转换成实时时间

参数
DevHandleDevHandle 设备号,通过调用 USB_ScanDevice 获取
IndexMELIBU通道号,0-CAN1,1-CAN2
返回

◆ MeLiBu_GetSchInfo()

int WINAPI MeLiBu_GetSchInfo ( int  DevHandle,
unsigned char  Index,
MELIBU_SCH_INFO pSchInfo 
)

获取当前调度表执行信息,可以通过调用该函数获取帧发送情况

参数
DevHandle设备号,通过调用 USB_ScanDevice 获取
IndexLUMIBUS通道号,0-CAN1,1-CAN2
pSchRunFlag调度表运行状态存储指针
pSchSendTimes调度表发送次数存储指针
pAllMsgNum调度表里面总帧数指针
pCurrentMsgIndex调度表当前正在发送的帧索引号指针
返回
获取到的时间戳