[发明专利]基于CAN总线的长帧数据传输卡和长帧数据传输方法无效
申请号: | 201110057979.2 | 申请日: | 2011-03-11 |
公开(公告)号: | CN102681969A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 刘晓宏;左钦文;王惠军;宋永强;蔡晶;仲妍 | 申请(专利权)人: | 山西国营大众机械厂军品第一研究所;中国人民解放军63973部队 |
主分类号: | G06F13/42 | 分类号: | G06F13/42 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 030024 山西省*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 can 总线 帧数 据传 方法 | ||
1.一种基于CAN总线的长帧数据传输卡,其特征在于,所述的设备包括:DSP芯片、双端口RAM、FLASH存储器、CAN收发器、PCI转换器;其中,PCI转换器通过CPI总线与计算机主机相连接,并向主机系统提交数据以及接收主机系统的下发数据;双端口RAM、FLASH存储器存储DSP运算中的中间数据;CAN收发器用于和CAN总线连接,进行CAN总线上数据的收发;DSP用于控制系统内部各部分的工作,同时,长帧传输的各种控制程序也都在DSP中实现。
2.基于权利要求1所述的基于PCI总线的CAN总线长帧数据传输卡,其特征在于,DSP芯片、双端口RAM、FLASH存储器、CAN收发器、PCI转换器通过DSP外围总线连接。
3.一种基于权利要求1所述的设备实现的长帧数据传输方法,其特征在于,所述的方法包括以下步骤:
步骤一:将长帧传输卡通过PCI总线连接到计算机上,安装驱动程序;
步骤二:创建共享内存映射,开辟通信缓冲区;
步骤三:通过调用DLL接口函数进行相应参数的设置;
步骤四:当用户节点连接上CAN总线时,广播在线信息;
步骤五:与在线节点建立连接,创建接收线程和发送线程;用户节点应用程序通过调用接口DLL函数进行数据发送,接口函数将数据写入双端口RAM,DSP芯片中的发送线程从双端口RAM中取出后发送信息,接收线程接收信息,如果收到数据,放入双端口RAM,并通过DLL接口直接通过消息发送给应用程序;
具体实现方法为:
程序启动后,新建接收线程、分发线程、长帧发送线程、长帧接收线程。线程之间通过信号量进行同步;各自的属性为:
接收线程:无限循环,收到数据包存到环形接收队列,然后进入等待;
分发线程:无限循环,判断环形接收队列是否有数,依次逐包读取,如为短帧,直接通过接口函数输出;如为长帧首包,开启长帧接收任务;不同源点开启不同长帧接收任务,支持多源点同时长帧传输;
长帧发送线程:无限循环,判断环形发送队列有数,依次逐包发送,直到发送完毕进入等待状态;
长帧接收线程:单任务循环,当分发任务收到发送请求帧后启动,分包数据全部接收完毕后,将收的数据打包,放入数据共享区,通过消息发送到应用程序;如接收过程中发生超时,发送中断命令,自动退出;
当某个节点传送一条请求发送消息(TP.CM_RTS)给一个目标地址时,连接就开始了;请求发送消息包含了整个消息的字节大小,要传送的独立消息的数目,以及它设定的参数群编号;
在一个节点接收到请求发送消息后,它可以选择接收连接或者拒绝连接;如果选择接收连接,响应者将发送一条准备发送消息(TP.CM_CTS);准备发送消息包含了节点可接收数据包的数目,和它将要接收的第一个数据包的序列编号;响应者必须确认自己有充足的资源来处理即将接收的这么多数目的数据包;在刚刚开放连接的时候,数据包的序列编号是1;
如果选择拒绝连接,响应者将发送一条放弃连接消息(TP.Conn_Abort);连接被拒绝可以有很多种原因,例如,缺少资源、存储空间不足等;
当发送者(例如,RTS设备)接收到来自响应者(例如,CTS设备)的相应的CTS消息,那么可以认为已经为发送者建立了连接;当响应者已经成功传送了它的CTS消息作为对一个RTS消息的响应,那么可以认为已经为响应者建立了连接;这些定义将用于决定什么时候需要发送连接放弃消息来关闭连接;
如果响应者收到RTS消息并决定不建立连接,那么它应该发送一条放弃连接消息;这样可以让发送者转移到一个新的连接而不必等到超时;
当连接的发送者接收到准备发送消息后,数据传输正式开始;其中有一种例外的情况,就是当节点发送了广播公告消息(TP.CM_BAM)后开始数据传输,这时,不需要使用准备发送消息;
在传输没有错误的情况下,有两种关闭连接的情形;第一种是在发送给全局目标地址时,第二种是在发送给一个指定目标地址时;在第一种情形下,接收完数据后将没有关闭连接的操作;在第二种情形下,当接收到数据流的最后一个数据包时,响应者将发送一个消息结束应答(TP.CM_EndofMsgACK)给消息的发送者;
在进行全局目标地址传输时,响应者不允许使用“放弃连接”消息;在进行指定目标地址传输时,发送者或者响应者都可以在任何时候使用“放弃连接”消息来终止连接;
(两方中的)任一方发生传输故障也会导致连接的关闭;例如,当收到的最后一个数据包后等待下一个数据包(CTS允许有更多)的时间间隔大于(T1)秒;当一条CTS消息被发送后等待时间大于(T2)秒(发送者发生故障);当发送了一个数据包后等待CTS或者ACK消息的时间大于(T3)秒(响应者发生故障);在CTS(0)消息后等待下一条CTS来保持连接,但等待时间大于(T4)秒,这些都将会导致关闭连接发生;在实际传输过程中,无论发送者还是响应者,由于某一原因(包括超时)决定要关闭连接,它都应该发出一条放弃连接消息;
步骤六:当用户节点断开连接时,通信服务器关闭与它的连接,并结束相应的线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山西国营大众机械厂军品第一研究所;中国人民解放军63973部队,未经山西国营大众机械厂军品第一研究所;中国人民解放军63973部队许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110057979.2/1.html,转载请声明来源钻瓜专利网。