8772|20

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何实现遥控器与wince之间的红外通信 [复制链接]

大家好呀,最近在做一个遥控器跟wince开发板间的红外通信,遥控器使用单片机,故考虑wince开放板上的原始IR端口,现在不知道wince如何接收遥控器发送过来的数据并识别,有没有做过这方面的的朋友呀,恳请指教呀!

最新回复

驱动不是能用pb添加吗?  详情 回复 发表于 2009-11-16 12:38
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
IRDA有它自己的协议,也可以请厂商定制自己的CODE,要识别接收到的信号要看遥控器的定义
以前做过一个设备就是用IRDA来跟遥控器通信的,可以先学习遥控器的功能,然后通过记忆功能把CE设备当做遥控器来使用
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
mark
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
CE端做红外解码?
这个好做,需要用一个Timer(硬件的不是硬件的不精准),在CE端用一个HS0038应三个腿的,红外接收管,输出的电平信号接Timer的测量脚,然后写个驱动,检测中断测量脉冲宽度,判断是0还是1(有很多红外遥控器的协议),具体解码按照协议解码即可。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
wince自带那个可用吗?

单片机下通常使用定时器编码解码的。楼主可以参考单片机移植。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 friendfish 的回复:
CE端做红外解码?
这个好做,需要用一个Timer(硬件的不是硬件的不精准),在CE端用一个HS0038应三个腿的,红外接收管,输出的电平信号接Timer的测量脚,然后写个驱动,检测中断测量脉冲宽度,判断是0还是1(有很多红外遥控器的协议),具体解码按照协议解码即可。

up
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
以前弄个,我自己做了个红外接收的电路,把IR转成串口发送到WinCE上。呵呵。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

8
 
郁闷 没法上传原理图图片
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 xajhuang 的回复:
郁闷 没法上传原理图图片


要先上传到博客,才可以链接过来的。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
太感谢大家了,谢谢各位!
因为遥控器用的是单片机,没法跟wince开发板建立红外协议(自己的理解,不知道对不对)
遥控器用的红外发射芯片是ht6222,wince开发板上用的红外接收芯片是HSDL-3600,红外接收芯片直接跟主芯片PXA270相连。
现在不知道驱动要怎么写,是不是改串口驱动?
有没有可以参考的代码?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
ht6222应该是NEC的协议

为什么要改串口的协议呢?红外解码主要问题是脉冲宽度的测量
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
“然后写个驱动,检测中断测量脉冲宽度,判断是0还是1(有很多红外遥控器的协议),具体解码按照协议解码即可”?
楼上的你好,那是不是也要写个驱动判断0还是1?
如果要写的话,应该怎么写呢?
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

13
 
这个么,红外的解码实际上最重要的就是解析通过红外接收器的电平信号的时间;
这个时间决定着是0还是1;(时间由协议来决定,国内通常使用的是NEC协议)

举个例子,在国内,常用的红外遥控器的协议是NEC协议(还有好多协议,比如Sharp,Sony等),该协议规定了一帧的数据是如何构成的:NEC的是一帧32位数据,加头码和结束码,这些都规定了红外发送时发送的信号;
红外发送器则在控制芯片的控制下,发送低电平的红外信号,高电平的红外信号,以及持续的时间;
NEC的头码:低电平9ms,高电平4.5ms;
NEC数据码:数据1:高电平0.56ms,低电平1.68ms

也就是说如果你测量的脉冲宽度高电平为0.56ms(有个适当的误差)低电平为1.68ms的话,你就判读该位为1;这样你一共判断32位(NEC格式),然后你就有了一帧的NEC格式数据,然后按照格式的内容把按键值解出来;

原理就是这些,所有工作的重点就在测量脉冲宽度上,如果你有硬件Timer可用(测脉宽模式),你就写个这个Timer的驱动;如果没有的话,就得用软件的方法了,这个比较麻烦也不太准(不过还可以),我原来在51下做,就是因为没有硬件Timer用软件做的,也凑活能用(出错率不大,因为红外载波的频率比较低)
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

14
 
我看了下开发板的电路,红外接收芯片HSDL-3600跟pxa270的UART相连,即IR端口跟串行端口相连,现在我想读取数据,是不是重新写一下串口驱动函数就可以了。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 sqju1983 的回复:
我看了下开发板的电路,红外接收芯片HSDL-3600跟pxa270的UART相连,即IR端口跟串行端口相连,现在我想读取数据,是不是重新写一下串口驱动函数就可以了。


wince有自带的红外串口以及相关的DLL附加的。以前我们还要把红外串口变成普通的串口来用呢。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

16
 
"wince有自带的红外串口以及相关的DLL附加的。以前我们还要把红外串口变成普通的串口来用呢。"?
那是不是直接调用红外串口的DLL就行了,驱动不用改
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

17
 
楼主先确定下做的是遥控器还是数据传输,两种有差别;

WinCE提供的红外串口是用来传输数据的;

IRDA标准的格式跟电视遥控器的红外格式不一样,一个是用来作数据传输的(有效距离在1m内),另外一个只是传输简单的脉冲调制序列(有效距离可达10米);

如果要做遥控器,楼主可能要做驱动,如果做数据传输,那不用做驱动CE本身就有;
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

18
 
红外码格式各有不同,空调之类的,都是自己编码,乱的很。采用串口接收的那种,硬件上要能把红外信号,转成串口信号才行。
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

19
 
谢谢LS的几位!
做的是遥控器,红外遥控器的协议是NEC的协议,只是传输简单的脉冲调制序列
wince开发板硬件上能把红外信号转成串口信号
如果要做驱动的话,应该怎么做呢?
能不能给点思路
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

20
 
我用的开发板是主芯片为pxa270的,红外接收器为HSDL-3600,我在网上看到下面这段:
    “PXA270的标准UART口集成有符合IrDA 1.0协议的红外编、解码器,将其与安捷伦SIR标准型红外收发器HSDL-3600连接便可组成串口红外通信系统。”
    我们实现的是遥控器与开发板通信,没用用到IrDA协议,所以还要自己实现红外的解码,这样理解对吗?
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表