一种基于上位机控制的CAN总线通讯系统及方法与流程

文档序号:16753836发布日期:2019-01-29 17:09阅读:1630来源:国知局
一种基于上位机控制的CAN总线通讯系统及方法与流程

本发明属于新能源纯电动汽车技术领域,尤其涉及一种基于上位机控制的can总线通讯系统及方法。



背景技术:

随着社会的发展,新能源电动汽车将成为现代和未来汽车发展的必然趋势。传统的点对点式线束的弊端日趋明显。据统计,近年来民用汽车中使用的电子器件以每年12%的速度增加,而随着混合动力汽车和纯电动汽车等新能源汽车的普及,电子器件在汽车上的使用也开始呈现出井喷的势头。新能源汽车电子化、智能化程度越来越高,人们对经济性、安全性和操控性都有了更高的需求。公开号为cn108600065a的专利公开了一种车辆的can总线系统及车辆。车辆的can总线系统,包括:动力总线,所述动力总线上连接有多个动力电器;车身信息总线,所述车身信息总线上连接有多个车身电器;底盘总线,所述底盘总线用于实现底盘电器的控制;车身中央控制单元,所述车身中央控制单元分别与所述动力总线、所述车身信息总线和所述底盘总线相连,以对所述动力总线、所述车身信息总线和所述底盘总线上的报文进行监控和转发。公开号为cn208140883u的专利公开了一种高压断路器运行状态实时监测的can总线系统,包括用于连接监测传感器并监测n个高压断路器实时运行状态的现场监测装置1、现场监测装置2、现场监测装置n,n的大小取决于区域内高压断路器的台套数,can总线及can集线器,区域监测上位机。本实用新型的有益效果在于:把can总线技术引入到高压断路器实时状态监测系统中,以一组高压断路器为单位设置现场监测装置

综上所述,设计具有测试和监控功能的整车can总线通讯测试系统,成为新能源汽车电子化进程中的一种发展趋势。目前大多数can总线通讯系统使用的是价格昂贵的vectorcanoe模块。



技术实现要素:

本发明的目的在于提供一种能够克服上述技术问题的基于上位机控制的can总线通讯系统及方法,本发明所述系统包括依次连接的控制器、zlg—usbcan2、cansressdr、canscope。控制器包括依次连接的整车控制器、bms控制器、mcu控制器、scu控制器。控制器程序是实现根据协议编写对应的程序。参数动态修改是根据can协议修改参数值得到想要的数据。saej1939协议定义了数据帧和远程帧两种类型的帧,同时根据标识符的长度又定义了标准帧和扩展帧两种不同格式的数据帧。本系统使用的扩展数据帧,从帧起始位开始,之后是仲裁场,与标准数据帧不同之处在于扩展数据帧的仲裁场为38位。其中,前11位为29位标识符的最高有效位。紧跟这11位之后是以隐性状态发送的替代远程请求(srr)位。然后是ide位,扩展can帧的srr位为隐性。ide位之后为标识符的其余18位和一个远程发送请求位。仲裁场之后是一个由6位组成的控制场,其前两位为显性状态发送的保留位,其余4位为规定数据字节数的dlc。

本发明的基于上位机控制软件和j1939协议的can总线报文的收发多任务处理方法包括以下步骤:

步骤1、采用生产者/消费者循环数据结构,生产者循环使用元素入队列函数向报文簇队列中添加数据,消费者循环使用元素出队列函数从报文簇队列中移出数据;

步骤2、循环间采用队列的方式进行操作,消除多任务的竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用以使报文数据不丢失;

步骤3、接收报文id解析过滤的识别,确定报文标识符id的枚举型状态变量识别报文,根据状态变量条件结构过滤报文;

步骤4、pdu1、pdu2格式单帧报文全部入队列;

步骤5、数据场大于8字节的对话式、广播式多帧报文按j1939协议多帧数据合成重组后入队列;

步骤6、其他数据的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示;

步骤7、发送报文id解析封装的识别;

步骤8、报文解析确定帧类型状态变量,根据状态变量的条件判断,进行报文格式的封装定义;

步骤9、数据场小于或者等于8字节的pdu1、pdu2单帧发送报文直接入队列;

步骤10、数据场大于8字节的对话式、广播式多帧报文按j1939协议多帧数据处理打包封装簇合后入队列;

步骤11、处理完的j1939发送报文簇分解后出队列写入can口。

本发明的优越效果是:使用上位机控制软件替代了传统vectorcanoe模块,节约了采购与维护成本,便于can系统的推广使用;上位机控制软件便于根据开发使用需求进行程序上的修改并对功能进行了调节,增加了实用性且大大降低了成本。

附图说明

图1为本发明的扩展数据帧格式结构图;

图2为本发明的上位机控制软件处理流程图。

具体实施方式

下面结合附图对本发明的实施方式进行详细描述。本发明所述系统包括依次连接的控制器、zlg—usbcan2、cansressdr、canscope。控制器包括依次连接的整车控制器、bms控制器、mcu控制器、scu控制器。控制器程序是实现根据协议编写对应的程序。参数动态修改是根据can协议修改参数值得到想要的数据。saej1939协议定义了数据帧和远程帧两种类型的帧,同时根据标识符的长度又定义了标准帧和扩展帧两种不同格式的数据帧。本系统使用的扩展数据帧,从帧起始位开始,之后是仲裁场,与标准数据帧不同之处在于扩展数据帧的仲裁场为38位。其中,前11位为29位标识符的最高有效位。紧跟这11位之后是以隐性状态发送的替代远程请求(srr)位。然后是ide位,扩展can帧的srr位为隐性。ide位之后为标识符的其余18位和一个远程发送请求位。仲裁场之后是一个由6位组成的控制场,其前两位为显性状态发送的保留位,其余4位为规定数据字节数的dlc,扩展数据帧格式如图1所示。

本发明的基于上位机控制软件和j1939协议的can总线报文的收发多任务处理方法包括以下步骤:如图2所示,

步骤1、采用生产者/消费者循环数据结构,生产者循环使用元素入队列函数向报文簇队列中添加数据,消费者循环使用元素出队列函数从报文簇队列中移出数据;

步骤2、循环间采用队列的方式进行操作,消除多任务的竞争状态,当生产数据比消费处理数据的速度快时,队列的缓冲作用以使报文数据不丢失;

步骤3、接收报文id解析过滤的识别,确定报文标识符id的枚举型状态变量识别报文,根据状态变量条件结构过滤报文;

步骤4、pdu1、pdu2格式单帧报文全部入队列;

步骤5、数据场大于8字节的对话式、广播式多帧报文按j1939协议多帧数据合成重组后入队列;

步骤6、其他数据的报文帧舍去,处理完的接收报文簇分解后出队列计算、存贮和显示;

步骤7、发送报文id解析封装的识别;

步骤8、报文解析确定帧类型状态变量,根据状态变量的条件判断,进行报文格式的封装定义;

步骤9、数据场小于或者等于8字节的pdu1、pdu2单帧发送报文直接入队列;

步骤10、数据场大于8字节的对话式、广播式多帧报文按j1939协议多帧数据处理打包封装簇合后入队列;

步骤11、处理完的j1939发送报文簇分解后出队列写入can口。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的范围内,能够轻易想到的变化或替换,都应涵盖在本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1