4664|7

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince系统中,GPIO如何模拟串口 ——新手请教*可加分 [复制链接]

现在需要在winCE系统下,使用GPIO来模拟串口
此帖出自WindowsCE论坛

最新回复

谢了,呵呵,好久没有更新了——不过,我会好好学习的 能否交个朋友,硬件/嵌入式开发相关方面我还是很无知的,完全是个新手,有很多想要学习,但并不知道怎样一步一步来学习,如果可以跟你学习一下^_^  详情 回复 发表于 2008-6-23 10:36
点赞 关注
 

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
各位,发帖时不小心就按了回车,晕哪
给分还没来得及选择:100,一天内帖子不能加分……
希望大侠们给点建议,我才接触这个东西,想学习一下,当然也是工作需要
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
串口模拟在单片机上就能做,wince至少是ARM9等级,那想做是能做的,功能肯定是能实现的。当然,首先你得真正的理解串口通讯原理。
    发送,就按照串口协议,定时的将IO口拉高拉低就行了。
    接收,定时的读取IO的状态,逐次移位到一个8bit(1 char)数据类型中就行。从采样率定理讲,采样频率至少是通讯频率的2倍才能获得有效数据。

    只是,在wince操作系统中,强行模拟串口有如下的性能问题:
1. 高端CPU之所以加入N多的外设接口,本来就是想释放CPU以加强CPU的运算、处理能力的,尤其是编解码及刷屏。
   而GPIO的反复操作(配置、读取),是需要CPU直接参与的,将耗费大量的CPU时间。因此肯定会影响CPU的性能。

2. 串口是异步通讯,必须有一个严格精确(不是绝对精确)的时钟来进行采样定时。偏偏在操作系统里面,“定时”这个工作是很难完全实现的,因为系统有线程的存在,你必然需要将串口的线程设为最高优先级,不然很容易被别的线程给挤掉,除非你确定用户只运行你指定的有限程序。
    一个最低端的IO口操作,却不得不设为最高优先级,这样同样会影响系统原本的性能。

3. 系统的中断一大堆,比IO口中断等级高的太多了,只要中断2次,就能让串口丢掉一次正确的数据,这肯定是不希望看到的,但这又是很难解决的,除非禁止掉别的中断。这个和系统的线程优先级不是一个概念。

4. 因为以上原因,模拟串口,一般不建议高速率,常用都在9600及以下。即使如此,仍然需要考虑串口的FIFO。

    做事先没有最好,只有最不坏。先考虑可能碰到的问题,再去做,免得浪费自己的时间精力。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(中级)

4
 
谢谢大虾的指点
如果我是设计者,我一定慎重考虑你所说的串行模拟带来的问题
不过,眼前的问题是,我一点也没有头绪,这个很郁闷
以前是做应用程序的,和硬件没有任何接触,啊——疯了
现在要做这个,只有大学里仅剩的一点硬件相关的底子了,可是很皮毛
请您具体指教一下,不胜感谢^_^
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
你做应用程序?不做驱动?
也就是说你必须在应用程序级别模拟串口?
驱动给你开放了操作IO口的权限吗?

看来你对串口并不了解,那先去看看串口到底是什么,以及相应的协议。
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
winCE系统下,使用模拟串口会有好效果吗?
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 shuiyan 的回复:
你做应用程序?不做驱动?
也就是说你必须在应用程序级别模拟串口?
驱动给你开放了操作IO口的权限吗?

看来你对串口并不了解,那先去看看串口到底是什么,以及相应的协议。


谢谢你的质问,呵呵,我快要无语了
是的,之前,在dll中写一些算法,编写一些界面相关的应用程序,但不写驱动
而我现在是要做另一份工作,不是要在应用程序级别写驱动,是要针对一个终端的硬件写
因此啊,我说我是新手,要从头来学习的,还请您赐教
至于串口是什么以及相应的协议,我在大学理学过一些,但是仅是皮毛,我会进一步学习
如果您有什么好的资料可以给我借鉴一下,我不胜感激

ps:如果我这里相关问题得到解决,分数全部奉上
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢了,呵呵,好久没有更新了——不过,我会好好学习的
能否交个朋友,硬件/嵌入式开发相关方面我还是很无知的,完全是个新手,有很多想要学习,但并不知道怎样一步一步来学习,如果可以跟你学习一下^_^
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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