中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

您当前所在位置: 汽车电子 > 查看内容

基于ARM处理器的CAN-Ethernet通信模块实现

文章作者头像
发布:清雅轩 作者: webmaster来源: job.cartech8.com
PostTime:16-5-2008 20:50

以下为文章全文:(本站微信公共账号:cartech8)


汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师

  3. 3  通信程序的实现

  处理器对SJA1000T和RTL8019AS 的操作都使用了中断方式,通信模块的软件程序可以分成SJA1000T 中断服务程序、RTL8019AS中断服务程序和主程序3 个部分,是典型的前、后台处理结构。在中断服务程序中,将收到的CAN 总线报文和以太网报文读入内存中的缓冲区,并累加缓冲区内还未处理的报文计数。在主程序循环中,轮流处理两个缓冲区中的报文,并减小报文计数值。图6 是SJA1000T的中断服务流程、RTL8019AS中断服务流程、主程序的流程。由于SJA1000T内部的接收缓冲区只有64B ,所以在程序中定义了容纳32个Frame结构体数组can- rbuf [ ]并组成环形缓冲区。同时也定义了相同大小的数组eth- rbuf [ ]组成以太网接收的环形缓冲区。

图6  通信模块软件流程图

  在调试过程中发现,如果转发过程被特定的中断程序打断,可能发生报文计数错误;如果向RTL80

19AS写入待发送报文的过程被以太网接收中断打断,就无法恢复写入过程了。因此在转发过程中应屏蔽相应的中断。

  4  结束语

  采用上述方法实现的CAN-Ethernet 通信模块,解决了以太网和现场总线CAN 总线之间互联问题,可以根据应用的需求,进行灵活的配置和改进,提高系统的性能和可靠性。实际证明,在局域网环境下模块工作可靠,在以太网负载适中时,只有很小的通信延迟。它为CAN-Ethernet 的互联提供了低成本、高性能及灵活的解决方案。

[文章纠错]

文章网友提供,仅供学习参考,版权为原作者所有,如侵犯到

你的权益请联系qchjl_admin@126.com,我们会及时处理。

1234

会员评价:

0 发表评论

渝公网安备 50010802001066号

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-5-2024 22:45 , Processed in 0.136877 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.