基于DSP芯片和VxWorks操作系统的RTOS视频网络检测系统
在远程测控系统中,嵌入式系统由于其稳定性和实时性优于传统平台而得到迅速发展。本文提出了一种以DSP芯片和VxWorks为操作系统的新型嵌入式系统设计方法。
1 测试系统工作原理
测试系统的主要任务是采用DSP芯片处理通过摄像头拍摄并经过A/D转换的图像。整个系统由视频解码器、DSP和PCI总线专用芯片组成。系统通过PCI总线同通信平台交换数据,同时通过网络进行检测控制。
2 关键设计及器件选择 本系统设计的关键是视频处理卡的设计,一般的视频检测卡功能有限,不能满足本项目的需求,为此,笔者自行设计了一块视频检测卡。
2.1 TMS320C32的功能特点 本测试系统中的DSP芯片选用T I公司的T M S 3 2 0 C 3 x系列产品,该器件的工作频率为40MHz;采用哈佛总线结构。并且拥有独特的指令系统和硬件乘加运算;外带256K×32Bit的 FLASH、2k×8Bit的NVRAM和256K×32Bit的SRAM。该芯片是在TMS320C30的基础上简化而来的, 含有TMS320C30的CPU内核。 TMS320C32的主要功能如下: ●带有程序引导功能;●串行接口传输和存储器均可支持8、16、32位的数据; ●可产生边沿中断和电平中断;●可由用户编程设定中断向量表地址; ● 具有空等待和低功耗两种电源管理方式;●具有两个DMA通道; ●功能强大的外部存储器接口既可以满足视频解码接口8位数据的要求,又可以实现PCI接口32位数据的高速数据传输; ●灵活的程序加载可实现在系统编程; 一般情况下,S5933和DSP之间的硬件连接就是利用DSP的读写信号R/ W、地址选通控制信号IOSTRB、外部设备就绪信号RDY和部分地址信号以及S5933的FIFO状态信号WRFULL来进行简单的时序和逻辑组合,从 而生成对S5933外加总线接口的读写控制信号。
2.2 其它器件的选择 本系统中的CPLD芯片选用ALTERA公司的EPM9320RC208。两组帧存储器A和B采用CYPRESS公司生产的两块CY7C1049芯片,该 芯片的容量为512k×8bit,存取时间不超过15ns,能满足图像实时采集要求。通过CPLD内部的一个乒乓开关控制模块可自动完成帧间 读写两个通道接口的切换。而DSP和SAA7113之间的所有控制信号接口逻辑和时序转换都由CPLD来完成,并可编程修改,因而提高了系统的使用灵活性 和可靠性。 SAA7113的作用是实现模拟图像的A/D转换。DSP与SAA7113之间的硬件接口的控制逻辑包括两个子模块:帧图像写入控制器和乒乓开关,这两种功能可由一块CPLD来完成。 在视频卡设计中,电源模块的设计也非常关键,它直接影响着视频卡的最后实现和稳定运行。 本监控系统采用TI公司的TPS3307-33D来作为电源检测IC。该器件的Reset有效电源复位电压值定义为VDD=1.1V。TPS3307-33D可同时监视两种独立电压,还可控制另外一种电压,这种电压可以独立调整并在内部与复位逻辑电路相连。
3 通信平台的嵌入式系统设计 本设计的软件系统包括底层软件和系统软件两部分,其中底层软件主要是DSP图像处理算法以及启动等运行程序,这些程序可在CCS环境下由C语言编写并进行汇编优化,CCS是TI公司发布的DSP软件运行环境; 在系统软件方面,基于PCI总线的图像处理系统所面临的难点颇多,其中难度最大的是PCI驱动问题。
3.1 系统软件的设计 系统软件可以选用以VxWorks为操作系统的嵌入式设计方法。 VxWorks操作系统的集成环境叫Tornado。Tor-nado集成环境是一个高效明晰的图形化实时应用开发平台,它包括一套完整的、面向嵌入式系统的开发和调测工具。VxWorks的优点如下: (1)具有较好的可裁减性; (2)支持应用程序的动态链接和动态下载; (3)具有较好的兼容性; (4)具有很高的可靠性和稳定性; (5)具有很好的实时性; VxWorks的多任务机制对任务的控制采用优先级抢占和轮转调度机制,从而充分保证了实时性,并可用同样的硬件配置满足更强的实时性要求,以便为应用开发留下更大的余地。 PCI设备有三种物理存储空间:配置空间、存储器空间和I/O空间。其中配置空间是长度为256字节的一段连续空间,空间定义如图4所示,在配置空间中, 只读空间包括设备标识、供应商代码、修改版本、分类代码以及头标类型。其中供应商代码用来标识设备供应商的代码;设备标识用来标识某一特殊的设备;修改版 本标识设备的版本号;分类代码用来标识设备的种类;而头标类型用来标识头类型以及是否为多功能设备。除供应商代码之外,其他字段的值可由供应商分配。 基地址寄存器最重要的功能是分配PCI设备的系统地址空间。在基地址寄存器中,bit0(最低位)可用来标识到底是存储器空间还是I/O地址空间。基地址 寄存器映射到存储器空间时,bit0为“0”,而当其映射到I/O地址空间时,bit0为“1”。 在驱动PCI设备时,首先是PCI设备的查找。嵌入式操作系统一般都提供有相应的API函数查找。而在VxWorks操作系统中,通过函数 pciFindDevicePCI_VENDOR_IDPCI_DEVICEindex &pciBus &pciDevice,&pciFunc_可以找到供应商代码为PCI_VENDOR_ID、设备标识为PCI_DEVICE的第n(index+1)个 设备,并且返回总线号、设备号以及功能号,然后分别保存于&pciBus、&pciDevice、&pci-Func中。 其次是PCI设备的配置。通过操作系统提供的API函数可以访问PCI设备的配置空间,从而完成PCI设备基址寄存器的配置、中断配置、以及ROM基地址 寄存器的配置,最终得到PCI存储器空间和I/O地址空间的映射以及设备中断号等。在VxWorks操作系统中,访问PCI设备配置空间的API函数有: pciConfigOutLong和pciConfigInLong等,它们可分别完成对PCI设备配置空间的读写操作。 然后是根据PCI设备的配置参数来编写不同设备的初始化程序、中断服务程序以及对PCI设备存储空间的访问程序。
3.2 远程控制与通信链路 由于基于串行口的PPP协通信方式现已被各种ISP所接受。而且VxWorks系统也支持PPP协议,因此,在VxWorks下通过Modem建立与ISP的物理连接,然后再完成设备的PPP数据链路设置,就可以通过Internet实现远程控制。
|