论文部分内容阅读
[摘要]阐述一个基于DSP的疲劳驾驶检测系统软件设计环节以及开发中的一些关键技术问题。首先疲劳驾驶实时检测系统的基本构成,该系统在Xc2s300控制下能实时将视频图像进行采集、处理、存储和显示;最后给出嵌入式系统的基本组成和开发流程中的一些问题。
[关键词]视频采集 嵌入式系统 TMS320DM642
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0420041-01
一、引言
视频采集系统是数字图像获取的最基本手段,是进行数字图像处理、多媒体和网络传输的前提,它可为各种图像处理算法提供待处理的原始数字图像和算法验证平台,嵌入式视频采集系统可完成视频的实时采集、传输以及各种视频压缩算法和图像处理算法的实现,根据不同的应用,可以编制不同的图像处理程序,所以具有更大的灵活性,并且设计与实现简单,DSP对采集的数据进行处理。嵌入式视频图像采集系统主要包括硬件设计、软件设计和操作系统3个部分。
二、驾驶疲劳检测系统开发设计
一个完整的基于DSP的疲劳驾驶检测系统,应具备对图像信号的采集功能、图像数据存储、对图像的处理和分析功能、对视频图像进行实时显示的功能。因此,一个基于DSP的疲劳驾驶检测系统通常可由如下五部分构成:视频图像的采集、图像数据存储、各种同步逻辑控制、视频图像的分析和处理、结果的显示及报警。基于DSP的疲劳驾驶实时检测系统的基本构成框图如图1所示。
图1基于DSP的驾驶疲劳检测系统框图
具体的系统结构框图应该包含图像采集、图像处理、数据存储、图像显示和电源五个部分,框图不再给出,具体功能阐述如下:
(一)图像采集
图像采集是将CCD摄像机采集到的人脸和眼睛图像,经高精度的A/D转换后得到数字人脸和眼睛图像。A/D转换器采用TI公司的TVP5145芯片,其采样精度达到10bit,输出支持CCIR-656和BT656等格式。
(二)图像处理
数字多媒体处理器TM320DM642属于TI公司C6000系列,是一款新型高性能的DSP。它是整个眼睛检测和疲劳识别系统的核心。它的任务是对得到的数字眼睛图像进行处理和识别,将处理的数据存入数据存储器,将识别的结果送到LCD显示器进行显示。
(三)数据存储
数据存储部分可以包括FLASH、SDRAM和CF卡三部分。FLASH存储器具有可在系统进行带电擦写,掉电后信息不丢失的功能,用它来保存系统自启动代码以及系统程序代码,本系统选用ATMEL公司的AT29LV020 FLASH芯片,它是NOR型的FLASH芯片,总容量为256KB,数据总线为8位。DSP 选择了EMIFA boot模式时,上电后自动从CE1空间装载程序,所以FLASH 必须接在EMIF的CE1空间。SDRAM存储器的存取速度较高,用它来存放系统运行时的代码以及临时图像数据,本系统选用四片三星公司的SDRAM K4S561632E,
每片为16位,32MB,接在DSP的EMIF接口的CE0空间。CF卡接在EMIF的CE2空间,用来存储原始图像数据和识别结果。
(四)图像显示
图像显示部分采用LCD,数模D/A转换芯片使用Phillips公司的SAA7121,另外还需一片可编程逻辑器件CPLD驱动LCD,该CPLD选用ALTERA公司的MAX3000系列的芯片。
(五)电源部分
电源部分在系统的硬件部分中占有重要的地位,它将影响到整机能否可靠运转。其中,要着重考虑以下两点:第一、要有一套保证DSP芯片内核和I/O能同时上电的解决方案,这样避免对芯片造成损害。本系统采用D型边沿触发器来开关电源输出,很好的解决了这个问题;第二、在高速电路板中,开关的电磁辐射和线路噪音会干扰器件的实际工作电压,而DSP芯片一般要求工作电压偏差不超过5%,否则,长时间工作在非正常电压容易缩短芯片寿命甚至于烧毁。因此,本系统中特别设计了电压监控电路来实时监控电压。根据本系统特点,采用了TI公司的TPS3307芯片。
系统从CCD输入PAL/NTSC制式的视频信号,通过视频信号输入与复合模块进行同步分离、A/D转换。视频解码器采用TI公司的TVP5145,PAL/NTSC、CVBS或Y/C模拟视频输入,8位BT.656数字视频数据流输出;视频编码器使用Phillips公司的SAA7121芯片。600MHz的DM642能以每秒30帧的速度同时处理多达4个MPEG2视频译码及D1(720*576)分辨率。根据不同的配置,视频编码器能够支持NTSC/PAL等不同格式的视频信息,并把信息输出到对应的输出端口,输出为4:2:2的YCbCr格式的图像数据。
由于整个系统过程为输入-处理-输出,因此在处理前和处理后都存在一个显示同步的问题。行同步、场同步信号和消隐信号的正确设定,可以避免由于奇偶场不同步造成图像混叠的现象。可以利用DM642的EDMA通道进行数据块的整体搬移,从而实现视频数据的传输。
下面为基于TMS320DM642的合众达公司的SEED-VPM642平台,见图2。
图2DM642 EVM
此SEED-VPM642采用TMS320DM642,专用于数字媒体应用的高性能32-位定点DSP,工作主频最高达720MHz,处理性能可达5760MIPS。主要集成了DSP、SDRAM、FLASH、VIDEO、AUDIO、EMIF、IIC、UART、IO、RTC、ESAM、ATA与网络接口等外设。这样使其能够应用在视频与语音的处理及其相关的领域。其中TVP5145是一款高性能视频解码器,可将 NTSC、PAL视频信号转换成数字色差信号 (YCbCr4:2:2),支持两个复合视频或一个S端子输入。视频编码器SAA7121H支持PAL与NTSC格式的视频编码。
一个完整的基于TMS320DM642的嵌入式系统由图3所示的4个部分组成。
图3嵌入式系统组成
图3中的底层是硬件系统,核心是嵌入式处理器(嵌入芯片),通常这样构成的系统又被称为是SOC(System on Chip)系统。在硬件系统的上面是BSP(板级支持包),包括各种必要的对底层硬件系统的屏蔽,引导上层操作系统在硬件系统上的正确运行。操作系统正确运行之后还需要开发各种设备驱动程序,目的是给用户的应用程序开发提供对底层设备的屏蔽,提供一个统一的用户开发接口(API)。
BSP是指系统内核在特定的硬件系统上面运行所需要的初始化代码和各种设备驱动程序。它主要包括:系统初始化,初始化CPU寄存器和测试CPU的型号版本等,它和Bootloader中的初始化部分共同完成所有的系统准备工作,使得系统处于预期的稳定工作状态;内存管理,在没有MMU(内存管理单元)的系统里面主要是数据cache和程序cache的管理,在具有MMU单元的系统中还要包括MMU的各种表的管理,它主要用来实现内存的映射;中断控制器管理,对于一个RTOS来说,中断是不可缺少的部分。
嵌入式操作系统相关技术已经成熟,由于Linux具有源代码开放、开发工具丰富、技术支持广泛等特点,视频图像采集系统往往选用嵌入式Linux操作系统(Embedded Linux Operation System)。Linux中的中断管理包括中断号的申请和释放、中断屏蔽和中断服务、中断向量分配等,时钟和设备驱动程序。
对于用户程序开发,与通用PC上面开发应用程序类似。但是在嵌入式应用中,应用程序一般是作为文件系统的一部分加入到操作系统的内核,然后重新编译内核,最后生成一个可以执行的二进制压缩映像文件加载到系统的存储空间。加载的加入了用户应用程序的操作系统一般还必须固化,烧到系统的Flash中。在系统运行时,根据操作系统的INIT函数转到用户程序执行。
软件设计的实现采用C语言和汇编语言混合编程的方法。汇编程序主要实现系统的初始化、图形操作和串口操作;C程序主要用来实现整个系统的流程控制以及图像处理算法的实现。
三、结束语
对于基于DSP的驾驶疲劳检测系统,处理图像的所有算法都是在CCS上实现的,软件设计中不仅要实现基本的功能,还要考虑程序的效率,使整个系统能够在最优化最快速的情况下运行。用C语言开发DSP程序可以缩短开发周期,提高程序开发的效率,还可以使程序的可读性、可移植性以及算法的通用性大大提高,为系统的改进和升级换代也带来了极大的便利。
参考文献:
[1]Texas Instruments TMS320DM642 Technical Overview [EO/BL].http://www.ti.com.
[2]Texas Instruments. Video and Imaging Developer's Kit(IDK) Video Devices Driver User's Guide.2001(9).
[3]Kenneth.R.Castleman.数字图像处理.北京:电子工业参出版社,1999.
[4]郑南宁,计算机视觉与模式识别,北京,国防工业出版社,1998.
作者简介:
陈佳,女,汉族,河南濮阳市人,河南省濮阳职业技术学院数学与信息工程系讲师。
[关键词]视频采集 嵌入式系统 TMS320DM642
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0420041-01
一、引言
视频采集系统是数字图像获取的最基本手段,是进行数字图像处理、多媒体和网络传输的前提,它可为各种图像处理算法提供待处理的原始数字图像和算法验证平台,嵌入式视频采集系统可完成视频的实时采集、传输以及各种视频压缩算法和图像处理算法的实现,根据不同的应用,可以编制不同的图像处理程序,所以具有更大的灵活性,并且设计与实现简单,DSP对采集的数据进行处理。嵌入式视频图像采集系统主要包括硬件设计、软件设计和操作系统3个部分。
二、驾驶疲劳检测系统开发设计
一个完整的基于DSP的疲劳驾驶检测系统,应具备对图像信号的采集功能、图像数据存储、对图像的处理和分析功能、对视频图像进行实时显示的功能。因此,一个基于DSP的疲劳驾驶检测系统通常可由如下五部分构成:视频图像的采集、图像数据存储、各种同步逻辑控制、视频图像的分析和处理、结果的显示及报警。基于DSP的疲劳驾驶实时检测系统的基本构成框图如图1所示。
图1基于DSP的驾驶疲劳检测系统框图
具体的系统结构框图应该包含图像采集、图像处理、数据存储、图像显示和电源五个部分,框图不再给出,具体功能阐述如下:
(一)图像采集
图像采集是将CCD摄像机采集到的人脸和眼睛图像,经高精度的A/D转换后得到数字人脸和眼睛图像。A/D转换器采用TI公司的TVP5145芯片,其采样精度达到10bit,输出支持CCIR-656和BT656等格式。
(二)图像处理
数字多媒体处理器TM320DM642属于TI公司C6000系列,是一款新型高性能的DSP。它是整个眼睛检测和疲劳识别系统的核心。它的任务是对得到的数字眼睛图像进行处理和识别,将处理的数据存入数据存储器,将识别的结果送到LCD显示器进行显示。
(三)数据存储
数据存储部分可以包括FLASH、SDRAM和CF卡三部分。FLASH存储器具有可在系统进行带电擦写,掉电后信息不丢失的功能,用它来保存系统自启动代码以及系统程序代码,本系统选用ATMEL公司的AT29LV020 FLASH芯片,它是NOR型的FLASH芯片,总容量为256KB,数据总线为8位。DSP 选择了EMIFA boot模式时,上电后自动从CE1空间装载程序,所以FLASH 必须接在EMIF的CE1空间。SDRAM存储器的存取速度较高,用它来存放系统运行时的代码以及临时图像数据,本系统选用四片三星公司的SDRAM K4S561632E,
每片为16位,32MB,接在DSP的EMIF接口的CE0空间。CF卡接在EMIF的CE2空间,用来存储原始图像数据和识别结果。
(四)图像显示
图像显示部分采用LCD,数模D/A转换芯片使用Phillips公司的SAA7121,另外还需一片可编程逻辑器件CPLD驱动LCD,该CPLD选用ALTERA公司的MAX3000系列的芯片。
(五)电源部分
电源部分在系统的硬件部分中占有重要的地位,它将影响到整机能否可靠运转。其中,要着重考虑以下两点:第一、要有一套保证DSP芯片内核和I/O能同时上电的解决方案,这样避免对芯片造成损害。本系统采用D型边沿触发器来开关电源输出,很好的解决了这个问题;第二、在高速电路板中,开关的电磁辐射和线路噪音会干扰器件的实际工作电压,而DSP芯片一般要求工作电压偏差不超过5%,否则,长时间工作在非正常电压容易缩短芯片寿命甚至于烧毁。因此,本系统中特别设计了电压监控电路来实时监控电压。根据本系统特点,采用了TI公司的TPS3307芯片。
系统从CCD输入PAL/NTSC制式的视频信号,通过视频信号输入与复合模块进行同步分离、A/D转换。视频解码器采用TI公司的TVP5145,PAL/NTSC、CVBS或Y/C模拟视频输入,8位BT.656数字视频数据流输出;视频编码器使用Phillips公司的SAA7121芯片。600MHz的DM642能以每秒30帧的速度同时处理多达4个MPEG2视频译码及D1(720*576)分辨率。根据不同的配置,视频编码器能够支持NTSC/PAL等不同格式的视频信息,并把信息输出到对应的输出端口,输出为4:2:2的YCbCr格式的图像数据。
由于整个系统过程为输入-处理-输出,因此在处理前和处理后都存在一个显示同步的问题。行同步、场同步信号和消隐信号的正确设定,可以避免由于奇偶场不同步造成图像混叠的现象。可以利用DM642的EDMA通道进行数据块的整体搬移,从而实现视频数据的传输。
下面为基于TMS320DM642的合众达公司的SEED-VPM642平台,见图2。
图2DM642 EVM
此SEED-VPM642采用TMS320DM642,专用于数字媒体应用的高性能32-位定点DSP,工作主频最高达720MHz,处理性能可达5760MIPS。主要集成了DSP、SDRAM、FLASH、VIDEO、AUDIO、EMIF、IIC、UART、IO、RTC、ESAM、ATA与网络接口等外设。这样使其能够应用在视频与语音的处理及其相关的领域。其中TVP5145是一款高性能视频解码器,可将 NTSC、PAL视频信号转换成数字色差信号 (YCbCr4:2:2),支持两个复合视频或一个S端子输入。视频编码器SAA7121H支持PAL与NTSC格式的视频编码。
一个完整的基于TMS320DM642的嵌入式系统由图3所示的4个部分组成。
图3嵌入式系统组成
图3中的底层是硬件系统,核心是嵌入式处理器(嵌入芯片),通常这样构成的系统又被称为是SOC(System on Chip)系统。在硬件系统的上面是BSP(板级支持包),包括各种必要的对底层硬件系统的屏蔽,引导上层操作系统在硬件系统上的正确运行。操作系统正确运行之后还需要开发各种设备驱动程序,目的是给用户的应用程序开发提供对底层设备的屏蔽,提供一个统一的用户开发接口(API)。
BSP是指系统内核在特定的硬件系统上面运行所需要的初始化代码和各种设备驱动程序。它主要包括:系统初始化,初始化CPU寄存器和测试CPU的型号版本等,它和Bootloader中的初始化部分共同完成所有的系统准备工作,使得系统处于预期的稳定工作状态;内存管理,在没有MMU(内存管理单元)的系统里面主要是数据cache和程序cache的管理,在具有MMU单元的系统中还要包括MMU的各种表的管理,它主要用来实现内存的映射;中断控制器管理,对于一个RTOS来说,中断是不可缺少的部分。
嵌入式操作系统相关技术已经成熟,由于Linux具有源代码开放、开发工具丰富、技术支持广泛等特点,视频图像采集系统往往选用嵌入式Linux操作系统(Embedded Linux Operation System)。Linux中的中断管理包括中断号的申请和释放、中断屏蔽和中断服务、中断向量分配等,时钟和设备驱动程序。
对于用户程序开发,与通用PC上面开发应用程序类似。但是在嵌入式应用中,应用程序一般是作为文件系统的一部分加入到操作系统的内核,然后重新编译内核,最后生成一个可以执行的二进制压缩映像文件加载到系统的存储空间。加载的加入了用户应用程序的操作系统一般还必须固化,烧到系统的Flash中。在系统运行时,根据操作系统的INIT函数转到用户程序执行。
软件设计的实现采用C语言和汇编语言混合编程的方法。汇编程序主要实现系统的初始化、图形操作和串口操作;C程序主要用来实现整个系统的流程控制以及图像处理算法的实现。
三、结束语
对于基于DSP的驾驶疲劳检测系统,处理图像的所有算法都是在CCS上实现的,软件设计中不仅要实现基本的功能,还要考虑程序的效率,使整个系统能够在最优化最快速的情况下运行。用C语言开发DSP程序可以缩短开发周期,提高程序开发的效率,还可以使程序的可读性、可移植性以及算法的通用性大大提高,为系统的改进和升级换代也带来了极大的便利。
参考文献:
[1]Texas Instruments TMS320DM642 Technical Overview [EO/BL].http://www.ti.com.
[2]Texas Instruments. Video and Imaging Developer's Kit(IDK) Video Devices Driver User's Guide.2001(9).
[3]Kenneth.R.Castleman.数字图像处理.北京:电子工业参出版社,1999.
[4]郑南宁,计算机视觉与模式识别,北京,国防工业出版社,1998.
作者简介:
陈佳,女,汉族,河南濮阳市人,河南省濮阳职业技术学院数学与信息工程系讲师。