基于TMS320C32的嵌入式RTOS视频网络检测系统
摘要:介绍了基于DSP芯片TMS320C32图像处理平台的网络测试系统,给出了使用专用视频输入处理芯片SAA711和CPLD实现高速连续视频帧采集的设计思路。同时给出了该系统在嵌入式系统中基于PPP协议的Internet的连接方法。
关键词:PCI总线;PPP协议;DSP;VxWorks操作系统;嵌入式
在远程测控系统中,嵌入式系统由于其稳定性和实时性优于传统平台而得到迅速发展。本文提出了一种以DSP芯片和VxWorks为操作系统的新型嵌入式系统设计方法。
1 测试系统工作原理
图1所示的测试系统的主要任务是采用DSP芯片处理通过摄像头拍摄并经过A/D转换的图像。整个系统由视频解码器、DSP和PCI总线专用芯片组成。系统通过PCI总线同通信平台交换数据,同时通过网络进行检测控制,图1所示是其系统框图。
2 关键设计及器件选择
本系统设计的关键是视频处理卡的设计,一般的视频检测卡功能有限,不能满足本项目的需求,为此,笔者自行设计了一块视频检测卡。其结构框图如图2所示。javascript:window.open(this.src);" style="cursor:pointer;"/>
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来完成,并可编程修改,因而提高了系统的使用灵活性和可靠性。图3所示是EPM9320RC208与CY7C1049的接口控制逻辑框图。
javascript:window.open(this.src);" style="cursor:pointer;"/>
PCI总线专用接口芯片S5933是一种功能强大且使用灵活的PCI总线控制器专用芯片,该芯片符合PCI局部总线规范2.1版本,它既可作为PCI总线目标设备来实现基本的传送;也可作为PCI总线主控设备访问其它PCI总线设备。S5933的峰值传送速率为132Mbps32位PCI数据线。该器件提供有3个物理总线接口:PCI总线接口、外加总线接口(ADD-ON BUS)以及可选的NV存储器接口。
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的优点如下:javascript:window.open(this.src);" style="cursor:pointer;"/>
(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实现远程控制。
javascript:window.open(this.src);" style="cursor:pointer;"/>
4 结束语
图像采集系统的关键是如何对大容量的信息进行暂存、压缩、传输和处理。本系统可以很好地解决这n个难题。在图像信息暂存方面充分利用DSP存储空间的可扩展性,可保证系统暂存信息量的足够大;而信息压缩则是DSP最擅长做的事情,DSP可以在很短的时间内完成大量的信息压缩工作;PCI总线的引入可保证信息在足够的带宽下进行快速传输。而采用嵌入式VxWorks操作系统又使得系统具有良好的灵活性和适应性,同时也大大降低了系统成本。