找回密码
 注册
搜索
查看: 671|回复: 1

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

[复制链接]
发表于 2008-7-7 23:44:06 | 显示全部楼层 |阅读模式
嵌入式linux下通信的方案咨询、感谢大拿指点

-------------------------------------------------------------------------------

/目标/:

实现 " ARM(s3c2410)-Linux2.4.18 " [/COLOR]与 " DSP LF2812 模块 "
两个系统之间大约 18KB/s 的三维实时数据通信[/COLOR]。

两个板子系统预留的通信接口方式有:CAN 或 串行RS422
(由于ARM系统上图形处理的需要,所以构建了系统,采用Linux)
(ARM系统由我负责硬件设计与系统构建,DSP模块为别人设计的)

-------------------------------------------------------------------------------

/现有问题/:

目前我一直采用CAN的方式,但是ARM系统的CAN接口是通过MCP2510外扩,
每帧数据都会产生一个中断,在CAN驱动程序中处理中断,
感觉ARM-linux对中断的频繁处理响应太慢,不能满足 18KB/s 的数据通信。

我做过测试,在CAN驱动里加入内核定时器,在中断处理程序中加入中断计数,
来测试CAN接口的吞吐率,发现系统可能对中断响应太频繁,每秒最多响应200~300个中断。
并且此时对应用程序影响很大。[/COLOR]

(如果采用CAN,若要满足通信要求,每秒需约4000个中断,即250us一次中断
并且还需要考虑在现有平台下,这些频繁中断对应用程序的影响)

-------------------------------------------------------------------------------

/问题请教/:

1. 我是否就不应该采用这种频繁中断的方式来进行 18KB/s 的数据传输?
   这种方案本来就是行不通的?是幼稚的?

2. 目前在现有平台(ARM9 S3C2410 - Linux2.4.18)下
   我是否可以采用RS422, 通过串口DMA传输的方式来满足通信?

3. 大家觉得这种通信最好采用什么样的方式呢?双口RAM?还是?
   (系统硬件目前没有设计双口RAM)[/COLOR]

-------------------------------------------------------------------------------

附件压缩包里包括:

linux2.4.18_ARM9-S3C2410_MCP2510_CAN_driver (s3c2410-can-mcp2510.c 与相关头文件)
CAN通信测试应用程序
ARM9-S3C2410_CAN接口扩展_硬件设计.JPG

请高手给我看看,给我个建议的方案,感谢[/COLOR]

【文件名】:0877@52RD_linux2.4.18_ARM9-S3C2410_MCP2510_CAN_driver.rar
【格 式】:rar
【大 小】:175K
【简 介】:linux2.4.18_ARM9-S3C2410_MCP2510_CAN_driver
【目 录】:s3c2410-can-mcp2510.c,
ARM9-S3C2410_CAN接口扩展_硬件设计.JPG,
CAN通信测试应用程序
发表于 2008-8-7 19:27:34 | 显示全部楼层
你的板子上的CAN一个FRAME能传输多少数据?
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-25 12:42 , Processed in 0.045374 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表