Irda解读
来源:互联网 发布:电脑共享网络给手机 编辑:程序博客网 时间:2024/04/28 11:04
Irda(infrared data associastion),这个暑假就做这个了。我们所要研究的其实就是一个UART(Universal Asynchronous Receiver Transmitter)和一个解码器(encoder和decoder)。数据收发的任务由UART完成,而coder完成将数据站换成符合Irda协议的格式。
这样一来我们的任务就是要搞清楚UART得结构和工作原理。我们所要研究的UART由fifo完成receiver和transmitter中数据缓存的角色,传输的数据格式为start bit+data bit+parity bit +stop bit。其中的receiver负责把从外界接收到的信号经decoder解码后得到的串行数据转换成并行数据,然后交给cpu,而transmitter则是把cpu的数据进行并-串转换然后由encoder编码发送出去。
receiver有一个Receiver Buffer Register (RBR) and Receiver Shift Register(RSR)。因为接受的串行数据桢和接受clock不是同步的,所以从穿行接收端口过来的一个从1到0得跳边就被视为开始位,同时为了防止一般的干扰信号(毛刺),所以通常要求start bit(1 to 0)的长度必须至少为接受波特率时钟周期的50%。因为器件内部时钟频率是接受/发射器时钟频率得16倍(16clk),所以也就是说start bit 的长度最少要使内部时钟周期的8倍,即8clk 。一旦start bit 被接受后,就开始接受(其实是抽样,每16个内部时钟一次)data bit 和parity bit 。如果start bit正好是16clk长,那么后面每个bit都会在其中间被抽样。线性状态寄存器(lsr)会一直更新纪录又没有先行错误(Overrun error, Parity error, Framing error, Break)。一旦帧错误(framing error)被发现,那么UART会假设这个错误是由于下一个帧的start bit造成的,于是就重新同步这一帧——在一个接受周期(16clk)内抽样start bit 两次。如果两次抽样值都是0的话,UART就会接受这一帧得数据。如果帧错误是由中断(break)造成的,这一再同步的过程不会发生。当接受缓存(RBR)的数据可用是,RxRDYn会被置0,然后接收数据可用标志被置1,通知cpu数据可以读取了。
- Irda解读
- irDA数据传输
- IrDA协议栈
- 让手机的IrDA成为遥控器,:-)
- irda-objs和irda-obj的差别,烧写一个字母的悲剧
- 支持 Linux 操作系统的高速 IrDA 红外控制器
- UART之二:通讯本质及与IRDA的关系
- 【译】s3c2410中的irda红外驱动数据手册和原理图
- linux下的irda (remote control)驱动分析
- 解读
- 花了一下午,弄明白四个名词 USCI,USI,LIN,IrDa
- Sapphire 手机连接打印机控件Sapphire IrDA Utility龙博方案网详细介绍
- GPIO、UART、USB、IrDA、I2C、SPI、CAN总线、蓝牙接口、以太网
- 解读数据?解读“人”!
- 解读数据?解读“人”!
- 解读P2P
- 解读深圳
- 解读睡眠
- 有效和正确定义hashCode()和equals() (转载)
- 爱上牛牛
- 失心痛
- 测试一下
- VMwareTools的安装总结
- Irda解读
- 61条面向对象设计的经验原则
- Gmail application
- Windows Media Player 检测缓冲区载入百分比函数
- [翻译] Effective C++, 3rd Edition, Item 19: 视 class design(类设计)为 type design(类型设计)
- [原创]windows和COM中的字符数据类型
- 常用的tar和rpm命令参数列表
- 边工作边学习
- 鬼迷心窍