3915|7

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

直接控制主板IO口输出方波??? [复制链接]

最近想直接控制主板IO口搞点东西,如并口,串口,,想输出如38K (26us)的方波,或者采集38K的波形输入。 我做了以下尝试,在循环中直接读取IO的状态变化, 发现采集的不是很精确,采集到的波形变化有漏 的,也很随机。说明这种方式达不到精度。  是否可以用中断来采集?
我找了一些资料,发现有这么用句话:“win 不是一个实时系统”,所以对我的想法产生了怀疑。难道windows不能做这样的事情? 想来也是,大都是计算机和芯片通讯,芯片做采集工作。
我也在想在usb线上不接任何芯片,在pc驱动程序上直接控制usb的一根线输出方波, 是否可行?  
请高手解惑这方面的疑问、。
我的采集代码如下:
            ULONG mCurrStatus,mTemp;
            int ircount;
            ircount = 0;            

            mCurrStatus = _inp(0x0379);            
            while(1)
            {
                if(ircount == 0)
                {
                    mTemp = _inp(0x0379);
                    if (mTemp!=mCurrStatus)
                    {                                
                        KeQueryTickCount(&tm1);
                        mCurrStatus = mTemp;
                        ircount++;
                    }
                } else                                
                {
                    mTemp = _inp(0x0379);
                    if (mTemp!=mCurrStatus)
                    {                        
                        KeQueryTickCount(&tm1);                        
                        mCurrStatus = mTemp;
                        ircount++;
                        if(ircount>6000)
                            break;
                    }else
                    {                        
                        KeQueryTickCount(&tm2);
                        if((tm2.QuadPart-tm1.QuadPart)>32)                        
                            break;
                    }
                }
            }

最新回复

38K在驱动中应该可以搞定。  详情 回复 发表于 2010-5-20 16:04
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不行,hoho

 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
可以每一个pc用的采集卡,1000-6000元都有, 研华什么的,


如果你熟悉硬件,就自己做一个,用单片机来采集,然后把数据发送给pc 也ok,
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
WINDOWS下是够呛了。。。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

5
 
计算机原理一知半解的我在琢磨: 计算机的cpu及其资源比起单片机丰富多了,为什么单片机绰绰有余的事情,PC干不了?但如串口的波特率可以达到比38K载波很多的精度了,为什么不能做这样的事情? 是微软设计windows的不是这个方向?我在想应该不是不可以,而是被win的“屏蔽”了或者是没有找到方法。
对于三楼的兄弟说采集卡。呵呵,1块钱的单片机芯片就可以了,用不到1千的。
刚在网上搜索到一个论文,说是在win的并口驱动的基础上实现了采集1m字节的精度,对驱动刚刚接触的我看不懂。
是不是可以在驱动的“优先级”上下文章,或者是执行采集的中间用“关闭中断”的方法。。。
我在arm7的linux上也是在驱动层采集的过程中把中断关闭,“一心一意”的去判断io的变化。 精度也可以达到几us,对于38K的足够了。
在windows上,哪个驱动高手指明下方向?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
windows做了一层有一层的封装,以至于很多的东西是无法自己直接操作的。这也是在开发的时候为了系统安全等因素刻意设计的。并不是说硬件本身不支持这种操作。相信双核的P4在性能上应该远远优于普通的arm芯片。把PC平台当成一个特殊的嵌入式平台的话,它的性能是相当不错的。

我一个哥们儿在PC上操作并口模拟过JTAG操作,是可以成功的,不过他PC程序设计基础有限,也没有时间做更多的尝试,所以最后速度上没有达到预想中的要求。实际上也有可能是操作并口需要调用Windows接口函数,导致控制起来没有直接操作那么得心应手的原因。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
windows 上控制硬件设备 的确有些麻烦。

楼主可以去 图书馆借几本相关的书籍看看,

现在有很多书籍 讲利用PC做数据采集,即虚拟仪器的书籍。

 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

8
 
38K在驱动中应该可以搞定。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表