当前位置:首页 > 嵌入式 > 嵌入式硬件

摘 要: 提出了采用以基于内核ARM920T的嵌入式微处理器S3C2440A为核心,以基于嵌入式Linux的ZHX1403为红外收发器的红外通信系统的设计方案。设计了红外收发器在嵌入式Linux操作系统下的驱动程序,并给出了红外通信系统应用的设计编程方法。
关键词: 红外通信;ARM920T;S3C2440A;Linux;ZHX1403

目前,嵌入式系统已经进入了蓬勃发展的时代,越来越多的带红外通信功能的嵌入式设备走进人们的生活当中。红外通信是利用红外光进行通信的一种空间通信方式。红外通信标准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]。

其中有3个基本的规范和协议,即为必要协议:(1)红外物理层协议 IrPHY(Infrared Physical Layer);(2)红外连接访问协议层 IrLAP(Infrared Link Access Protocol);(3)红外连接管理协议层 IrLMP(Infrared Link Management Protocol)。以上每一层的功能是为上一层提供特定的服务。其中物理层协议制定了红外通信硬件设计上的目标和要求,处于最底层。其他两层属于软件协议的范围,负责对链接进行设置、管理和维护。
在IrLMP协议上层的协议都属于可选的红外数据通信协议,可用于特定应用领域的规范和协议:(1)流传输协议(TinyTP);(2)对象交换协议(IrOBEX);(3)模拟串口层协议(IrCOMM);(4)局域网访问协议(IrLAN);(5)信息访问服务协议(IAS)。
驱动部分是协议栈的最主要部分,包括了IrLAP、IrLMP、TinyTP、IAS、IrOBEX、IrCOMM和IrLAN等协议。IrLAP、IrLMP是两个必选的软件协议。物理层上的第一层为IrLAP,它的功能是支持链路初始化、设备地址目录、解决冲突、创建连接、数据交换、接触连接和链路关闭,并且规定了红外数据包的帧结构及红外通信的错误检测方法。IrLMP提供建立在IrLAP连接上的多路复用及数据链路管理。TinyTP对数据传输进行流控制。IAS提供一个设备所拥有的相关服务检索表。IrOBEX提供文件和其他数据对象的交换服务。IrCOMM使当前的应用能够在IrDA平台上使用串、并口通信,而不必进行转换。IrLAN能为笔记本电脑和其他设备开启IR局域网通道[6]。
整个红外协议栈比较庞大,在嵌入式系统中,由于微处理器的速度和存储器容量的限制,没有必要实现整个红外协议栈,可以将协议栈简化,根据实际需求,有选择地实现自己需要的协议和功能[7]。
4.2 红外通信模块驱动程序的设计
(1)初始化
IrDA不是单纯的串口物理通信规范,而是一种网络传输控制标准。在Linux操作系统下,红外通信是作为一类特殊的网络设备来支持的。Linux必须按网络设备驱动方法来组织红外数据的网络传输。在linux/net/irda中有红外设备的代码。可以用下面的函数初始化一个红外设备:
struct net_device *alloc_irdadev(int sizeof_priv)
{
return alloc_netdev(sizeof_priv,”irda%d”,irda_device_
setup);
}
当内核启动或加载网络驱动模块的时候,就会调用初始化过程。首先检测网络物理设备是否存在,通过检测系统中的红外串行接口完成,然后初始化与红外相关的寄存器,随后构造设备的device数据结构,用检测到的数值对device中的变量初始化。最后向Linux内核中注册该设备并申请内存空间。
(2)数据包的发送和接收
数据包的发送和接收是实现嵌入式Linux操作系统下红外驱动程序中两个最关键的过程[8]。首先在网络设备驱动加载时,通过device域中的init函数指针调用红外设备的初始化函数对设备进行初始化。初始化成功后可以通过调用红外设备的打开函数打开设备,申请红外中断,启动队列。数据包的发送通过调用s3c2440_irda_hard_xmit函数,禁止接收,关闭中断,将上层交付的数据帧放入到低层驱动的缓冲区中。进入发送模式,允许发送中断,在中断服务时把底层驱动缓冲区中的数据发送到红外接口。
数据包的接收通过中断来完成。当有数据到达时,就会产生中断信号,红外设备驱动功能层就调用接收中断处理程序,读取URXH(串口接收缓冲寄存器)中的数据。
4.3 红外通信程序设计
应用层的网络编程一般利用套接字建立双方的虚拟连接。红外通信的Socket称为红外套接字(IrSock)。在Linux中,每一种协议都有自己的网络地址数据结构,均以sockaddr_开头。Linux内核在af_irda.c文件中实现了IrDA套接字。定义红外套接字如下:
struct sockaddr_irda{
sa_family_t sir_family;//协议类型,一般是AF_IRDA
_u8 sir_lsap_sel;
_u32 sir_addr;
char sir_name[25];
}
分配完套接字后,用bind绑定地址,用listen建立侦听,等待接收客户连接。使用send和recv与客户端通信,最后使用closesocket关闭连接。
本文在以基于ARM920T内核的微处理器S3C2440A为核心的嵌入式开发平台上详细介绍了嵌入式Linux操作系统下红外通信系统的设计和实现过程。通过对照硬件规范,可以实现嵌入式Linux操作系统下将红外协议移植到特定的嵌入式系统中。在嵌入式Linux操作系统下红外通信系统的开发对今后的嵌入式系统的应用研究具有较强的实用性,使红外技术能在嵌入式系统中得到广泛的应用。
参考文献
[1] 张晓红,SASDAT S,乔为民,等.红外通信IrDA标准与应用[J].光电子技术,2003,23(4):261-265.
[2] Infrared Data Association(IrDA).Infrared Data Association Serial Infrared Physical Layer Specification,Version1.4[EB/OL].[2005-5-30].http://www.irda.org/standards/specifications.asp.
[3] S3C2440A 32-BIT CMOS Microcontraller User’s Manual[R].Samsung Electronics,2004.
[4] ZHX1403 SIR UltraSlim transceiver product specification[R].ZiLOG Worldwide Headquarters,2002.
[5] 叶辉.红外通讯协议在嵌入式系统中的实现[J].电子技术应用,2004,30(7):68-71.
[6] 邱磊,肖兵.基于IrDA协议栈的红外通信综述[J].无线通信技术,2004,13(4):28-32.
[7] 陈祖爵,王继凤,王加民.基于嵌入式Linux的红外通信系统设计[J].计算机工程与设计,2009,30(4):816-818,854.
[8] 周亦敏,佟国香.基于Linux的红外网络通信的实现[J].
仪器仪表学报,2005(Z2):478-481.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在工业自动化、能源管理等实时性要求严苛的场景中,Modbus通信系统的响应延迟直接关系到设备控制的精度与系统稳定性。从智能电表的功率调节到机器人关节的同步控制,微秒级的响应偏差都可能引发连锁故障。本文从硬件架构、软件设计...

关键字: Modbus 通信系统

在科技飞速发展的当下,汽车行业正经历着一场深刻变革,汽车通信系统作为其中的关键领域,展现出了极为光明的前景。其中,车对车(V2V)和车对基础设施(V2I)技术凭借其在避免事故方面的卓越潜力,成为了人们关注的焦点。

关键字: 汽车 通信系统 技术

在现代通信系统中,功率放大器(PA)作为关键组件,其效率的提升对于降低能耗、延长设备续航以及提高系统性能具有至关重要的意义。随着通信技术的不断发展,如 5G 乃至未来 6G 的演进,信号的峰均比(PAPR)不断提高,传统...

关键字: 通信系统 功率放大器 包络跟踪

在现代电子技术和科研领域中,交流小信号的高精度测量是一项极为关键的任务。从微弱的生物电信号检测,到通信系统中的微弱射频信号分析,再到精密仪器中的微小电压、电流测量,交流小信号的准确测量为众多领域的研究和应用提供了坚实的数...

关键字: 交流小信号 通信系统 高精度测量

在当今数字化时代,无线通信技术已然成为推动社会进步和经济发展的重要力量。从最初的 1G 语音通信到如今广泛应用的 5G,无线通信技术不断迭代升级,深刻改变了人们的生活方式和产业格局。然而,随着全球通信需求的爆炸式增长,现...

关键字: 无线通信 通信系统 智能应用

随着无线移动电话和智能手表等可穿戴设备的普及,无线电力传输系统(WPS)在可穿戴和便携式应用中的需求持续增长。然而,这类系统在实际应用中面临着一系列挑战,尤其是在提高传输效率和支持多接收器充电方面。

关键字: 低功率 高频无线电 通信系统

在当今社会,共享单车已成为城市出行的重要组成部分,其便捷性和灵活性深受人们喜爱。共享单车的背后,离不开先进的通信技术支撑。本文将深入探讨共享单车的通信原理,揭示其如何实现与云端、用户手机之间的无缝连接。

关键字: 共享单车 通信原理 通信系统

无论您是测试数据通信综合系统,该系统与板上的其他芯片交换数据,还是测试电信网络,发送数据多英里,您都需要测量震动--当数字信号的边缘发生时和实际发生时的区别。时钟的震动可能会导致电子和光学数据流中的位不一致,导致位错误。...

关键字: 通信系统 通讯抖动

在通信技术的快速发展历程中,射频(RF)设计方案的演变是推动通信效率和性能提升的关键因素之一。从早期的模拟组件主导,到现代数字技术的广泛应用,射频设计经历了深刻的变革。本文将探讨通信系统中常见的中射频设计方案,特别是RF...

关键字: 通信系统 射频

在通信系统的复杂世界中,调制技术扮演着至关重要的角色。其中,双边带调制(DSB)和单边带调制(SSB)作为两种常见的调制技术,各自在特定的应用场景中发挥着不可替代的作用。本文将从技术原理、应用场景以及性能特点等方面,对这...

关键字: 双边带调制 单边带调制 通信系统 调制技术
关闭