目前,嵌入式系统已经进入了蓬勃发展的时代,越来越多的带红外通信功能的嵌入式设备走进人们的生活当中。红外通信是利用红外光进行通信的一种空间通信方式。红外通信标准IrDA(Infrared Data Association)是目前IT和通信业普遍支持的近距离无线数据传输规范。尽管通信距离只有几米,却有很多优势:红外连接比有线连接更安全可靠,并且避免了因线缆和连接器磨损和断裂造成的检修;它的小型化和低成本,很适合应用在便携式产品中;并且红外通信成本低廉,跨平台适应性好,传输速率高,适宜用于低成本、跨平台、点对点高速数据连接,尤其适用于嵌入式系统。
1 IrDA标准简介
红外标准IrDA的章程是建立通用的、低功率电源的、半双工红外串行数据互联标准、支持近距离、点到点、设备适应性广的用户模式。建立该标准是在各种设备之间较容易地进行低成本红外通信的关键。
IrDA就是一个点对点的协议,用在近距离进行异步串行传输。IrDA规范1.0定义了数据传输率最高到115.2 kb/s的红外通信;规范1.1将数据传输率提高到4 Mb/s,并保持了对版本1.0产品的兼容; 规范1.2定义了最高速度为 115.2 kb/s下的低功耗选择;规范1.3将这种低功耗选择功能推广到1.152 Mb/s和4 Mb/s[1],规范1.4废弃并替代了规范1.3,定义了最高速度为16 Mb/s下的低功耗选择[2]。
2 红外通信系统的总体方案
基于ARM920T的红外通信系统由软、硬件两部分组成。硬件部分包括基于ARM920T内核的微处理器S3C2440A及存储器等硬件开发平台和基于红外收发器ZHX1403的红外通信模块两部分;软件部分包括红外通信模块驱动程序、红外通信应用程序和嵌入式Linux操作系统三部分。
3 红外通信系统的硬件设计
3.1 硬件开发平台
嵌入式系统硬件开发平台采用S3C2440A为控制器。S3C2440A是32 bit RISC处理器,内嵌ARM920T核。它的低功耗,简洁,美观和全静态设计特别适用于对成本和功耗敏感的应用场合。S3C2440A提供手持设备和低功率的一般应用的方案,以及高性能的微控制器解决方案[3]。
S3C2440A有如下特点:(1)最高可达400 MHz的主频;(2)内部集成LCD控制器(高达4 K彩色STN和256 K色TFT)液晶显示专用的DMA;(3)3路异步串行通信接口(支持IrDA1.0,64 B的FIFO发送和64 B的FIFO接收);(4)IIS音频编解码器接口;(5)内置看门狗定时电路及实时时钟(RTC);(6)内部集成两路USB主控制器和1路USB设备控制器(版本1.1);(7)4路PWM定时器,1通道内部定时器/看门狗定时器;(8)130个通用I/O端口,24通道外部中断源;(9)8路10 bit ADC和触摸屏接口;(10)增强型ARM架构的MMU支持WinCE、嵌入式Linux操作系统。
3.2 红外通信模块
ZHX1403是ZiLOG公司出品的一款专用于PDA、网络应用、医疗电子、手持式设备的红外收发器,且与IrDA1.4协议标准兼容[4]。它支持所有红外通信协议支持的SIR红外传输速率,采用半双工串行传输方式,并具有Always On技术,使得长时间的红外功能开启成为可能,为红外设备的应用增加了更多的可能性。它具有极小巧的外型尺寸(7.3 mm×2.8 mm×1.9 mm),应用电路的空间也是非常小,只需要外接两个外部元件,与其他支持IrDA标准的收发器间的典型数据连接距离可达1 m。
ZHX1403有7个引脚,依次是NC、Vcc、GND、SD、RXD、TXD、LEDA。ZHX1403与S3C2440 处理器连接电路如图1所示。LEDA通过一个外接的电阻接到Vcc上,给红外管提供工作电流。ZHX1403接收数据输出端口TXD与S3C2440A的GPH4/TXD1连接,ZHX1403发送数据输入端口RXD与S3C2440A的GPH5/RXD1。掉电模式使能控制端SD与S3C2440A的GPB0/TOUT0连接,用来将内部的电路控制在关闭模式。ZHX1403把接收到的数据通过GPH5/RXD1传送给S3C2440A,S3C2440A把预发送的数据通过GPH4/TXD1发送给ZHX1403的TXD端口,再通过红外收发器发射管发送。
4 红外通信系统的软件设计
4.1 红外通信协议的实现
红外数据通信标准包括基本协议和特定应用领域的协议两类。类似于TCP-IP协议,它是一个层式结构,其结构形成一个栈,如表1所示[5]。