主题:CAN延时 共有48886人关注过本帖 |
---|
高飞228 |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
CAN延时 Post By:2013-6-19 11:24:00 [只看该作者]
您好 我们买了贵公司的EM9170板子 现在出现了一个这样的问题。我们有一个罗盘通过CAN会主动发送数据给EM9170主板,发送频率是20帧/秒(都是标准帧,波特率设成了500K),
结果发现解析出来的数据延迟了20多秒,所以想问这个CAN本身有个很低的上限接收频率限制啊。 求教啊!
|
单帖管理 | 引用 | 回复 |
zhl |
2楼 |
Post By:2013-6-19 18:16:00 [只看该作者]
不会有这么长的延时,我们在EM9170做过接收CAN数据报文测试,对端发送频率为100帧/秒,接收响应正常。建议你将解析数据部分屏蔽,先测试数据接收是否正常。 |
|
单帖管理 | 引用 | 回复 |
高飞228 |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-6-20 15:44:00 [只看该作者]
您好 我已经解决了这个问题,是因为我开的数据包缓冲区有点问题
现在有个新的问题想请教一下,我在我写的程序运行的时候想看下系统内存消耗情况,但是通过EM9170的任务管理器看不到,请问有什么办法么?
|
单帖管理 | 引用 | 回复 |
yy |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-6-20 17:00:00 [只看该作者]
在桌面,“我的设备”上点右键,属性里面选择内存页就可以看内存的大概消耗情况了。
|
单帖管理 | 引用 | 回复 |
linzhongwei |
5楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-8-7 13:39:00 [只看该作者]
您好,是否可以把缓冲区的问题分享一下?谢谢 |
单帖管理 | 引用 | 回复 |
linzhongwei |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-8-7 14:38:00 [只看该作者]
怎样设置缓冲区可以避免接收延迟问题? |
单帖管理 | 引用 | 回复 |
yy |
7楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2013-8-8 11:09:00 [只看该作者]
之前也有客户反映这个问题。
原因是当CAN数据接收消息来的时候,可能BUFFER里面不止一条消息,需要反复读取,直到确认BUFFER读空为止。 如果只是读一条,然后等到下一次接收消息时才读下一条,(可能这中间间隔有20秒),就会出现你说的这个问题。C的例程相关代码如下
dwLen = 0;
bResult = ReadFile( pCAN->m_hCAN, (char*)&pCAN->rxmsg, sizeof(CAN_PACKET), &dwLen, 0 );
while (dwLen > 0)
{
pCAN->PackagePro( (char*)&pCAN->rxmsg, dwLen );
bResult = ReadFile( pCAN->m_hCAN, (char*)&pCAN->rxmsg, sizeof(CAN_PACKET), &dwLen, 0 );
} |
单帖管理 | 引用 | 回复 |