[发明专利]基于CAN总线的长帧数据传输卡和长帧数据传输方法无效
申请号: | 201110057979.2 | 申请日: | 2011-03-11 |
公开(公告)号: | CN102681969A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 刘晓宏;左钦文;王惠军;宋永强;蔡晶;仲妍 | 申请(专利权)人: | 山西国营大众机械厂军品第一研究所;中国人民解放军63973部队 |
主分类号: | G06F13/42 | 分类号: | G06F13/42 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 030024 山西省*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 can 总线 帧数 据传 方法 | ||
技术领域
本发明属于计算机应用技术领域,尤其涉及电子信息系统中所需的基于CAN总线的长帧数据传输卡和长帧数据传输方法。
背景技术
目前在电子信息系统,中特别是在车辆电子信息系统中,CAN总线技术得到了越来越多的应用,而现有技术只局限于短帧数据在CAN总线上的传输,目前在车电系统中通过CAN总线连接的计算机和外部设备很难进行长帧数据的传输。现有的解决办法多是对应用层协议进行处理,将长帧数据通过应用层软件进行拆分,为了保证拆分后数据包的同一性,必须给拆分后的每一帧数据加上时标。该方法最大的缺点是通用性差、实时性不强、会过多占用有限的CPU资源。随着对电子信息系统的数据量、数据复杂性与数据访问的实时性要求的提高,旧有的处理方法很难满足要求。因此本设计提出一种基于CAN总线的长帧数据传输方法,在板卡上通过DSP实现CAN总线长帧数据的传输,在保证实时性的同时,又不占用上位机的资源。
发明内容
本发明的技术方案是为了解决现有技术中无法通过CAN总线进行长帧数据的传输,提供一种能够支持CAN总线长帧数据传输的方法,该方法适合于各种电子信息系统,特别是车辆电子信息系统,具有通用性强、实时性高等特点。
本发明的技术解决方案是:
设计一种基于CAN总线的长帧数据传输卡,采用即插即用的以DSP作为核心处理器的PCI卡。所述的PCI卡上包括DSP芯片、PCI转换器、CAN收发器、FLASH芯片、双端口RAM、A/D转换器和电源模块。PCI卡通过PCI总线与计算机连接。该方法具体步骤如下:
步骤1:将长帧传输卡通过PCI总线连接到计算机上,安装驱动程序;
步骤2:创建共享内存映射,开辟通信缓冲区;
步骤3:通过调用DLL接口函数进行相应参数的设置;
步骤4:本节点开机后,广播在线信息;
步骤5:与在线节点建立连接,创建接收线程和发送线程;
用户节点应用程序通过调用接口DLL函数进行数据发送,接口函数将数据写入双端口RAM,DSP芯片中的发送线程从双端口RAM中取出后发送信息,接收线程接收信息,如果收到数据,放入双端口RAM,并通过DLL接口直接通过消息发送给应用程序。
具体实现方法为:
程序启动后,新建接收线程、分发线程、长帧发送线程、长帧接收线程。线程之间通过信号量进行同步。各自的属性为:
接收线程:无限循环,收到数据包存到环形接收队列,然后进入等待。
分发线程:无限循环,判断环形接收队列是否有数,依次逐包读取,如为短帧,直接通过接口函数输出。如为长帧首包,开启长帧接收任务。不同源点开启不同长帧接收任务,支持多源点同时长帧传输。
长帧发送线程:无限循,环判断环形发送队列有数,依次逐包发送,直到发送完毕进入等待状态。
长帧接收线程:单任务循环,当分发任务收到发送请求帧后启动,分包数据全部接收完毕后,将收的数据打包,放入数据共享区,通过消息发送到应用程序。如接收过程中发生超时,发送中断命令,自动退出。
当某个节点传送一条请求发送消息(TP.CM_RTS)给一个目标地址时,连接就开始了。请求发送消息包含了整个消息的字节大小,要传送的独立消息的数目,以及它设定的参数群编号。
在一个节点接收到请求发送消息后,它可以选择接收连接或者拒绝连接。如果选择接收连接,响应者将发送一条准备发送消息(TP.CM_CTS)。准备发送消息包含了节点可接收数据包的数目,和它将要接收的第一个数据包的序列编号。响应者必须确认自己有充足的资源来处理即将接收的这么多数目的数据包。在刚刚开放连接的时候,数据包的序列编号是1。
如果选择拒绝连接,响应者将发送一条放弃连接消息(TP.Conn_Abort)。连接被拒绝可以有很多种原因,例如,缺少资源、存储空间不足等等。
当发送者(例如,RTS设备)接收到来自响应者(例如,CTS设备)的相应的CTS消息,那么可以认为已经为发送者建立了连接。当响应者已经成功传送了它的CTS消息作为对一个RTS消息的响应,那么可以认为已经为响应者建立了连接。这些定义将用于决定什么时候需要发送连接放弃消息来关闭连接。
如果响应者收到RTS消息并决定不建立连接,那么它应该发送一条放弃连接消息。这样可以让发送者转移到一个新的连接而不必等到超时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山西国营大众机械厂军品第一研究所;中国人民解放军63973部队,未经山西国营大众机械厂军品第一研究所;中国人民解放军63973部队许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110057979.2/2.html,转载请声明来源钻瓜专利网。