嵌入式linux下通信的方案咨询、感谢大拿指点

[复制链接]
2280|3
 楼主| niuniu711 发表于 2008-7-7 23:37 | 显示全部楼层 |阅读模式
---------------------------------------------------------------------<br /><br />/目标/:<br /><br />实现&nbsp;&quot;&nbsp;ARM(s3c2410)-Linux2.4.18&nbsp;&quot;&nbsp;与&nbsp;&quot;&nbsp;DSP&nbsp;LF2812&nbsp;模块&nbsp;&quot;&nbsp;<br />两个系统之间大约&nbsp;18KB/s&nbsp;的三维实时数据通信。<br /><br />两个板子系统预留的通信接口方式有:CAN&nbsp;或&nbsp;串行RS422<br />(由于ARM系统上图形处理的需要,所以构建了系统,采用Linux)<br />(ARM系统由我负责硬件设计与系统构建,DSP模块为别人设计的)<br /><br />---------------------------------------------------------------------<br /><br />/现有问题/:<br /><br />目前我一直采用CAN的方式,但是ARM系统的CAN接口是通过MCP2510外扩,<br />每帧数据都会产生一个中断,在CAN驱动程序中处理中断,<br />感觉ARM-linux对中断的频繁处理响应太慢,不能满足&nbsp;18KB/s&nbsp;的数据通信。<br /><br />我做过测试,在CAN驱动里加入内核定时器,在中断处理程序中加入中断计数,<br />来测试CAN接口的吞吐率,发现系统可能对中断响应太频繁,每秒最多响应200~300个中断。<br />并且此时对应用程序影响很大。<br /><br />(如果采用CAN,若要满足通信要求,每秒需约4000个中断,即250us一次中断<br />并且还需要考虑在现有平台下,这些频繁中断对应用程序的影响)<br /><br />---------------------------------------------------------------------<br /><br />/问题请教/:<br /><br />1.&nbsp;我是否就不应该采用这种频繁中断的方式来进行&nbsp;18KB/s&nbsp;的数据传输?<br />&nbsp;&nbsp;&nbsp;这种方案本来就是行不通的?是幼稚的?<br /><br />2.&nbsp;目前在现有平台(ARM9&nbsp;S3C2410&nbsp;-&nbsp;Linux2.4.18)下<br />&nbsp;&nbsp;&nbsp;我是否可以采用RS422,&nbsp;通过串口DMA传输的方式来满足通信?<br /><br />3.&nbsp;大家觉得这种通信最好采用什么样的方式呢?双口RAM?还是?<br />&nbsp;&nbsp;&nbsp;(系统硬件目前没有设计双口RAM)<br /><br /><br /><br />---------------------------------------------------------------------<br /><br />附件压缩包里包括:<br /><br />linux2.4.18_ARM9-S3C2410_MCP2510_CAN_driver&nbsp;(s3c2410-can-mcp2510.c&nbsp;与相关头文件)<br />CAN通信测试应用程序<br />ARM9-S3C2410_CAN接口扩展_硬件设计.JPG<br /><br />请高手给我看看,给我个建议的方案,感谢<br /><br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20078/2007822235255756.rar'>https://bbs.21ic.com/upfiles/img/20078/2007822235255756.rar</a>
dld2 发表于 2008-7-8 08:14 | 显示全部楼层

2812有HPI吗

居然没有。郁闷。
阿南 发表于 2008-7-8 12:50 | 显示全部楼层

呵呵,搞个CAN这么复杂,直接用串口啦,不行就直接通过总线

  
l0p0c 发表于 2008-7-8 14:02 | 显示全部楼层

CAN总线好像就是很复杂啊!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部