一种can总线通信的方法及装置的制造方法_2

文档序号:9551165阅读:来源:国知局
发明一实施例提供的一种CAN总线通信的装置的示意图;
[0052] 图6是本发明一实施例提供的另一种CAN总线通信的装置的示意图;
【具体实施方式】
[0053] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 如图1所示,本发明实施例提供了一种CAN总线通信的方法,该方法可以包括以下 步骤:
[0055] S0 :在主机的USB总线上挂载用于USB总线与UART(UniversalAsynchronous Receiver/Transmitter,通用异步收发传输器)总线转换的第一芯片,在所述主机中配置 用于UART总线与CAN总线转换的第二芯片,还包括:
[0056] S1 :通过USB总线将待传输数据发送给所述第一芯片;
[0057] S2 :通过所述第一芯片将所述待传输数据转换为UART总线数据,通过UART总线将 所述UART总线数据发送给所述第二芯片;
[0058] S3 :通过所述第二芯片将所述UART总线数据转换为CAN协议帧,将所述CAN协议 帧通过所述CAN总线传输。
[0059] 在本发明实施例提供的一种CAN总线通信的方法中,在主机上分别设置第一芯片 和第二芯片,通过第一芯片将待传输数据转换为UART总线数据,将UART总线数据通过第二 芯片转换为CAN数据帧,将CAN数据帧在CAN总线中传输,实现CAN总线的数据通信,该实 施例提供的方法中,无需对CAN总线编写复杂的驱动程序,能够更加简单的实现CAN总线通 ?目。
[0060] 为了便于对UART总线进行配置,可以将第一芯片识别为/dev/ttyUSBO,在一种可 能的实现方式中,在所述S1之前,还包括:
[0061] 识别所述第一芯片,生成所述第一芯片对应的/dev/ttyUSBO文件,接收第一配置 命令,根据所述第一配置命令,对所述/dev/ttyUSBO文件进行修改,实现对所述UART总线 的通信速率、流控方式、数据位、停止位、校验位的配置。
[0062] 在本实现方式中,通过操作/dev/ttyUSBO实现对UART总线的配置。其中,通信速 率支持常见的300~115200bps,流控模式可设置为不使用流控制、使用软件流控和使用硬 件流控三种方式。第一配置命令可以是上述的主机发出的。
[0063]CAN总线中有很多的通道,需要通过这些CAN通道进行数据传输,一种可能的实现 方式中,在所述S1之前,还包括:
[0064] 接收第二配置命令,根据所述第二配置命令,打开CAN总线中用于传输数据的CAN 通道;
[0065] 所述S3中,所述将所述CAN协议帧通过所述CAN总线传输,包括:将所述CAN协议 帧在CAN总线的打开的CAN通道上传输。
[0066] 在本实现方式中,通过第二配置命令,可以对CAN通道进行配置,处理打开CAN通 道外,还可以实现关闭通道、初始化、复位、清除缓存等操作。第二配置命令可以是上述主机 发出的。
[0067] 在一种可能的实现方式中,所述S3中,所述通过所述第二芯片将所述UART总线数 据转换为CAN协议帧,包括:
[0068] 将待传输数据以8位为一帧,在帧头处添加帧识别码、通道识别码、帧类别及格式 码、帧ID,在帧尾添加对数据位的校验和,生成所述CAN协议帧。
[0069] 其中,CAN协议帧的格式如表1所示。
[0070]表1 [00711
[0072] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本 发明作进一步地详细描述。
[0073] 在本发明实施例中,主机的系统为中标麒麟操作系统,该系统不支持CAN总线,支 持USB总线。
[0074] 如图2所示,本发明实施例提供了一种CAN总线通信的方法,该方法可以包括以下 步骤:
[0075] 步骤201:在主机的USB总线上挂载用于USB总线与UART总线转换的第一芯片, 在主机中配置用于UART总线与CAN总线转换的第二芯片,接收主机发来的第二配置命令, 根据所述第二配置命令,打开CAN总线中用于传输数据的CAN通道。
[0076] 具体地,由于该系统的内核为Linux2. 6. 25以上版本,系统中集成了cp210x的 驱动,能够对CP2102芯片进行驱动,第一芯片可以是:SILICONLABS的CP2102芯片;第 二芯片可以是:Nuvoton的NUC230LE3AE芯片,在NUC230LE3AE芯片中还包括:主控模块和 TJA1040CAN收发器,主控模块用于UART总线数据与CAN数据帧的转换,TJA1040CAN收发器 用于CAN数据的接收和发送。
[0077] 第一芯片接入主机后,在系统下被识别为/dev/ttyUSBO,将其作为普通串口进行 读写。
[0078] 步骤202 :通过USB总线将待传输数据发送给所述第一芯片。
[0079] 主机支持USB总线,当主机需要向外部发送数据时,将待传输数据发送到USB总线 上。
[0080] 步骤203:通过所述第一芯片将所述待传输数据转换为UART总线数据,通过UART 总线将所述UART总线数据发送给所述第二芯片。
[0081] 步骤204:通过所述第二芯片将所述UART总线数据转换为CAN协议帧,将所述CAN 协议帧在CAN总线的打开的CAN通道上传输。
[0082] 具体地,将待传输数据以8位为一帧,在帧头处添加帧识别码、通道识别码、帧类 别及格式码、帧ID,在帧尾添加对数据位的校验和,生成所述CAN协议帧。
[0083] 通过该实施例提供的方法,将主机要发送的数据通过USB总线传输到第一芯片, 转换成UART总线数据,通过UART总线传输到第二芯片,通过第二芯片转换成CAN协议帧, 通过CAN总线将转换出的CAN协议帧发送出去,实效了通过CAN总线的数据传输。
[0084] 如图3所示,本实施例提供的一种CAN总线通信的方法,包括:
[0085] A0 :在主机的USB总线上挂载用于USB总线与UART总线转换的第一芯片,在所述 主机中配置用于UART总线与CAN总线转换的第二芯片;
[0086]A1 :通过CAN总线接收外部发来的CAN协议帧,并通过CAN总线将所述CAN协议帧 发送给所述第二芯片;
[0087]A2 :通过所述第二芯片将所述CAN协议帧转换为UART总线数据,通过UART总线将 所述UART总线数据发送给所述第一芯片;
[0088] A3 :通过所述第一芯片将所述UART总线数据转换为USB总线数据,在USB总线上 传输所述USB总线数据。
[0089] 通过本发明实施例提供的一种CAN总线通信的方法,通过CAN总线接收外部发来 的CAN协议帧,将CAN协议帧通过第二芯片转换为UART总线数据,在通过第一芯片将UART 总线数据转换为USB总线数据,在USB总线上传输该数据,实现了CAN总线的通信。
[0090]当主机不支持CAN总线通信时,外部发来的数据无法被系统成功接收,需要将这 些数据转换为主机的系统能够识别的USB总线数据,通过本实施例提供的方法能够实现对CAN数据帧的成功接收。
[0091] 在一种可能的实现方式中,在所述A1之前,还包括:
[0092] 识别所述第一芯片,生成所述第一芯片对应的/dev/ttyUSBO文件,接收第一配置 命令,根据所述第一配置命令,对所述/dev/ttyUSBO文件进行修改,实现对所述UART总线 的通信速率、流控方式、数据位、停止位、校验位的配置。
[0093] 在一种可能的实现方式中,在所述A1之前,还包括:接收第二配置命令,根据所述 第二配置命令,打开CAN总线中用于传输数据的CAN通道;
[0094] 所述A1包括,包括:通过CAN总线的所述CAN通道接收外部发来的CAN协议帧,并 通过CAN总线的CAN通道将所述CAN协议帧发送给所述第二芯
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1