社区
驱动开发/核心开发
帖子详情
wince系统中,GPIO如何模拟串口 ——新手请教*可加分
snow_haoxue
2008-06-19 10:24:11
现在需要在winCE系统下,使用GPIO来模拟串口
...全文
271
8
打赏
收藏
wince系统中,GPIO如何模拟串口 ——新手请教*可加分
现在需要在winCE系统下,使用GPIO来模拟串口
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
snow_haoxue
2008-06-23
打赏
举报
回复
谢了,呵呵,好久没有更新了——不过,我会好好学习的
能否交个朋友,硬件/嵌入式开发相关方面我还是很无知的,完全是个新手,有很多想要学习,但并不知道怎样一步一步来学习,如果可以跟你学习一下^_^
zhujinqiang
2008-06-20
打赏
举报
回复
winCE系统下,使用模拟串口会有好效果吗?
shuiyan
2008-06-20
打赏
举报
回复
你做应用程序?不做驱动?
也就是说你必须在应用程序级别模拟串口?
驱动给你开放了操作IO口的权限吗?
看来你对串口并不了解,那先去看看串口到底是什么,以及相应的协议。
shuiyan
2008-06-20
打赏
举报
回复
说的严重了,哪里是什么“质问”,只是希望在回答具体问题前,能弄清楚问题的背景,不然答非所问。
同样,也希望你问问题的时候,能描述清楚问题的环境及背景,不然我们以自己的经验简单判断,可能与你的需要相差很远的。
多的不说了,给你推荐个地方:
http://www.gjwtech.com/serialcomm.htm
龚建伟的网站,他的串口调试助手是很常见的PC上的工具,应用很广。你将他网站的文章看一下,肯定能对串口有深入的了解。不要心急,大概2天就能看完的。
snow_haoxue
2008-06-20
打赏
举报
回复
[Quote=引用 4 楼 shuiyan 的回复:]
你做应用程序?不做驱动?
也就是说你必须在应用程序级别模拟串口?
驱动给你开放了操作IO口的权限吗?
看来你对串口并不了解,那先去看看串口到底是什么,以及相应的协议。
[/Quote]
谢谢你的质问,呵呵,我快要无语了
是的,之前,在dll中写一些算法,编写一些界面相关的应用程序,但不写驱动
而我现在是要做另一份工作,不是要在应用程序级别写驱动,是要针对一个终端的硬件写
因此啊,我说我是新手,要从头来学习的,还请您赐教
至于串口是什么以及相应的协议,我在大学理学过一些,但是仅是皮毛,我会进一步学习
如果您有什么好的资料可以给我借鉴一下,我不胜感激
ps:如果我这里相关问题得到解决,分数全部奉上
snow_haoxue
2008-06-19
打赏
举报
回复
各位,发帖时不小心就按了回车,晕哪
给分还没来得及选择:100,一天内帖子不能加分……
希望大侠们给点建议,我才接触这个东西,想学习一下,当然也是工作需要
snow_haoxue
2008-06-19
打赏
举报
回复
谢谢大虾的指点
如果我是设计者,我一定慎重考虑你所说的串行模拟带来的问题
不过,眼前的问题是,我一点也没有头绪,这个很郁闷
以前是做应用程序的,和硬件没有任何接触,啊——疯了
现在要做这个,只有大学里仅剩的一点硬件相关的底子了,可是很皮毛
请您具体指教一下,不胜感谢^_^
shuiyan
2008-06-19
打赏
举报
回复
串口模拟在单片机上就能做,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。
做事先没有最好,只有最不坏。先考虑可能碰到的问题,再去做,免得浪费自己的时间精力。
linux
gpio
模拟
串口
,
GPIO
模拟
Uart 通信 (soft uart/serial)
GPIO
模拟
Uart 通信 (soft uart/serial)在Uart不够用的时候可以通过
GPIO
来
模拟
,但是
GPIO
模拟
有一个缺点就是时钟可能不准,Uart是异步的,我们可以设置两个定时器来
模拟
其对应的输出。流程linux下的
GPIO
模拟
Uart...
linux下
gpio
模拟
串口
uart 驱动
linux下 利用
gpio
口
模拟
串口
uart接收数据 设计思路
串口
数据类型 在没有校验位的情况下,
串口
第一位数据(起始位)是一个低电平,接着是8位的数据位,然后接着一个结束位(一个高电平)。 所以我们设计是: 1.利用...
GPIO
模拟
UART
串口
发送和接收
GPIO
模拟
UART
串口
发送和接收
STM32学习笔记六——
GPIO
模拟
USART
在实际开发当
中
会遇到
串口
不够的情况,此时我们可以通过
GPIO
模拟
USART。 IO口
模拟
串口
的思路也比较简单,一切按照
串口
协议进行操作即可。 对于发送,计算好不同波特率对应的延时时间进行数据发送。 对于接收,...
gpio
模拟
串口
通信
gpio
模拟
串口
通信 以晶振频率11.0592M为时钟的芯片为例,实现波特率为9600BPS的
串口
通信(即传输一个位需要1/9600秒),定时时间=定时器计数值*机器周期=定时器计数值*12/晶振频率,现在定时时间为1/9600秒,定时器计...
驱动开发/核心开发
21,600
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章