ZigBee无线视频传输系统设计实现
ZigBee是以IEEE 802.15.4标准为基础的一种低成本、低功耗的无线网络技术,通过ZigBee协议栈,可将各ZigBee节点形成一个节点容量大、通信范围广的ZigBee网络。而H.264是当今最好的视频压缩标准,具有码流率低、图像质量高、容错能力强等优点。使用ZigBee网络来传输H.264视频码流,是实现无线视频传输系统的一种好方案。通过具体开发实例,从硬件和软件两个方面讨论了该方案的设计与实现。
ZigBee是以IEEE 802.15.4标准为基础的一种低成本、低功耗、网络容量大、通信范围广的无线网络技术,可支持多达65 000个节点。ZigBee的工作频段有3个,分别是868 MHz、915 MHz、2.4 GHz,当工作于2.4 GHz时,其拥有最高的传输速率250 KB/s。在存储量尽可能小的情况下获得好的图像质量和低带宽图像快速传输已成为视频压缩的两大难题。为此ISO/IEC和ITUT两大国际标准化组织联手制定了新一代视频压缩标准H.264[3]。H264具有图像质量好、连续性强、动态图像质量高、压缩比高、码流速率可调等优点。本文从硬件和软件两个方面讨论使用带H.264硬件编解码器、ARM9 CPU核的i.MX27和带ZigBee协议栈的微处理器CC2430来共同组建无线视频传输系统。
1 系统总体设计
系统总体设计如图1所示,整个ZigBee网络由一个ZigBee协调器、多个 ZigBee路由器和ZigBee无线视频终端组成[4]。由于CC2430集成了2.4 GHz DSSS射频收发器和单片机控制器,因此ZigBee设备可以使用CC2430单芯片来实现。ZigBee协调器用于组建最初的ZigBee网络,并为加入网络的每个ZigBee路由器和ZigBee无线视频终端分配16位网络短地址。ZigBee路由器在ZigBee网络中扮演路由和中继的角色,为各ZigBee无线视频终端传输数据并扩大无线数据传输的范围。ZigBee无线视频终端根据分配得到的16位网络短地址可以相互之间进行双向无线数据通信[5]。i.MX27上采用Linux操作系统,在Linux下通过对采集的图像进行硬件压缩编码,各ZigBee无线视频终端之间的数据以H.264码流的形式进行无线传输。
2 ZigBee无线视频终端的硬件设计
考虑到H.264软件编解码需要消耗大量的CPU资源,故本方案中选择了具有H.264硬件编解码器及ARM9 CPU核的Freescale微处理器i.MX27。ARM9 CPU核一方面负责将摄像头采集到的YUV图像数据送入H.264硬件编码器,并将硬件编码器输出的H.264码流通过ZigBee微处理器CC2430无线发送出去。另一方面通过CC2430接收H.264码流并送入H.264硬件解码器,然后将硬件解码器输出的YUV图像数据显示到液晶屏上。ZigBee微处理器CC2430负责H.264码流的收发工作,并通过SPI接口与i.MX27进行通信。 ZigBee无线视频终端的硬件组成如图2所示。
为了实现图像的采集,本方案采用含有OV9650芯片的CMOS摄像头,采集到的图像通过i.MX27的CSI接口传输到H.264硬件编码器中。对于图像的显示,则选择群创AT070TN83V.1(16∶9,800&TImes;480)7英寸TFT液晶屏。该屏支持18位数字RGB接口,格式为RGB666,即每个像素由6 bit红、6 bit绿、6 bit蓝构成18 bit数据。该屏与i.MX27的LCDC控制器主要通过18根数据线(LD[17:0])、帧同步(VSYNC)、行同步(HSYSNC)、时钟(LSCLK)进行连接。采用一片三星的K9F2G08R0A NAND Flash芯片(256 M&TImes;8 bit)来储存系统的Bootloader(RedBoot),Linux内核,文件系统和视频程序。由两片Infineon Technologies的HYB18M512160AF7.5芯片(4 Bank&TImes;8 M&TImes;16 bit)构成128 MB的DDR,主要用于加载Linux操作系统和运行视频编解码程序。
设计一个10针的JTAG接口,用来烧写系统的Bootloader、Linux内核和文件系统。使用MAX3232构成UART接口,用来将调试信息返回到MiniCom上显示。因处理器内核需要1.8 V、1.5 V电压,而存储器和外部I/O需要3.3 V电压,故把整个系统的输入电压设为5 V,经过DCDC转换器可完成到3.3 V、1.8 V、1.5 V的电压转换。采用26 MHz的有源晶振,晶振经过i.MX27片内的PLL电路倍频后最高可达到400 MHz。
ZigBee通信模块以CHIPCON公司的CC2430微处理器为核心。将CC2430的SPI接口与i.MX27的SPI接口连接,H.264码流通过SPI接口进行传输。