Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1145回复:16

请教串行设备的数据传输方案

楼主#
更多 发布于:2003-03-18 10:36
用户被禁言,该主题自动屏蔽!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-03-19 15:36
用户被禁言,该主题自动屏蔽!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-03-20 15:29
用户被禁言,该主题自动屏蔽!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2003-03-20 15:56
没玩过,不了解,帮你顶。
bag
bag
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-20 23:36
只在AP层用过,那应该不一样,不过感觉上read应该是polling的,这样的话读写策略应该都由你自己控制,只要控制得好,应该没问题。最优就比较难说了。

胡说一气,说得不对,请勿见笑 :D
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-03-21 09:37
用户被禁言,该主题自动屏蔽!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-03-21 09:42
用户被禁言,该主题自动屏蔽!
bag
bag
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-21 11:28
你的isr是如何触发的?
你怎么知道当前有数据到达?
在写的时候还会有要读的数据吗?
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2003-03-21 17:33
用户被禁言,该主题自动屏蔽!
ppl
ppl
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2006-05-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-21 18:41

我想这个问题好像比较简单吧。
 现在的串口都有比较大的缓冲区。
 假设 bps = 128000 ,缓冲区有10个字节。
 就可以有 14 * 8 /128000 = 0.000875 秒的延迟来接受中断。
 我想这个时间是比较长了。
 在我的P4 1.6G电脑上面,这么短的时间可以接受1000个中断了。
 顺便说,我的电脑,如果什么都不做,每秒钟有1200个中断。


 
 

 
 
 
bag
bag
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-21 18:47
数据到中断到。
在写的时候有有可能要读的数据的。
都是不定的。


据我所知串口是单工的,在写的时候不该会有数据到达,
再说,你在写数据之前怎么也得先关中吧
power_lei
驱动小牛
驱动小牛
  • 注册日期2002-05-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-21 22:04
我只用API的线程切换控制。
没有考虑过用驱动。
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2003-03-23 09:43
用户被禁言,该主题自动屏蔽!
bag
bag
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-23 16:36
[quote]据我所知串口是单工的,在写的时候不该会有数据到达,
再说,你在写数据之前怎么也得先关中吧

关不了的, [/quote]


?????
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2003-03-23 17:12
用户被禁言,该主题自动屏蔽!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2003-03-23 21:13
请教各位高人,先谢谢了。
比如串口的驱动,需要等待数据的到来,又要接收用户应用程序的写,如何协调它们之间的关系,不互相冲突,很安全。
这个我觉得是个很典型的问题,应该有最优的方案,我看微软的串口例子,代码太难看了,请大牛指点一下!!!分没有问题。

可以read一个buffer,write一个buffer,做成fifo的样式呀。
bag
bag
驱动牛犊
驱动牛犊
  • 注册日期2002-03-19
  • 最后登录2007-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-03-24 13:40
[quote][quote][quote]据我所知串口是单工的,在写的时候不该会有数据到达,
再说,你在写数据之前怎么也得先关中吧

关不了的, [/quote]


?????
 [/quote]
只能关接收的中断。 [/quote]

接收的中断关了不就结了,
只要在写的时候没数据进来,就不用操心读丢数据的问题,
读的时候有写的请求在程序中是可控制的
像arthurtu老大所说的那样,开两个buffer,一个供读,一个供写。
读写之间作好同步,保证同一时刻只对设备进行一种操作应该就行了
游客

返回顶部