智能相机项目旨在为图像算法开发者或者软件工程师提供一种快速产品化的嵌入式硬件解决方案,相机在硬件上经过了充分测试,保证了硬件平台的稳定和可靠性。同时为了保证可编程性,采用了TI公司的TMS320DM6437处理器,详细性能指标见TI官网。
开发者得到相机的同时会得到TMS320DM6437的嵌入式开发工程、用户API函数手册和底层算法开发说明书,如果用户调用UART或者网口进行通信,可以直接查阅嵌入式API函数手册,按照手册说明进行调用即可,无需要对底层嵌入有深入了解。用户想在相机中实现算法,可以按照要求将算法放置在工程指定位置,进行编译,完成后通过PC端的相机配置管理软件进行升级即可。
为了配合相机工作,在PC上提供配置管理软件,主要用于智能相机的配置、升级、调试。包括工作参数设置、串口网口通信配置、GPIO状态设置、相机系统升级、算法参数设置、算法加密、图像采集与保护、相机系统恢复出厂设置等。对于算法开发者而言,直接在嵌入式平台上开发调试存在着一定的困难,可以通过相机配置管理工具,设定相机的运行状态,在PC上对图像进行采集和保存,通过用户熟悉的开发工具对图像算法进行验证调试,完成之后再将算法移植到相机平台,会相当程度上减轻工程开发难度。
项目正式立项于2015年2月到2016年10月,相机的前期硬件和外壳结构委托无锡速波公司来设计和生产,后期的硬件设计以及嵌入式驱动是由自己来实现的。本文记录开发的大体过程,留作以后进行参考。
数据流程
相机结构上最前面是镜头,后面是由三块板卡堆叠而成,依次是Sensor板、处理板、接口板。根据Sensor板上传感器,处理器会得到不同的数据,譬如如果是MT9V034或者是AR0134处理器会得到RAW图像数据;如果是TVP5151的话,处理器会得到BT656图像数据。处理器会通过I2C自动检测Sensor板卡的类型,根据不同类型配置处理器上的VP口,当VP口接收到一帧数据后,处理器会将该数据入队到图像帧队列中。如果队列不为空,处理器会从队列中出队一帧数据,进行算法处理、网络发送或者模拟视频显示等。
Sensor板卡目前有三种形态:1、采用TVP5151芯片可以采集模拟视频信号 2、采用安森美公司MT9V034,图像分辨率736*480,全局曝光 3、采用安森美公司AR0134,图像分辨率1280*960,全局曝光。
处理器板卡,核心芯片均在该板卡,处理器采用TI公司TMS320DM6437;DDR2采用Micron公司二片MT47H64M16HR-37E芯片、PHY采用Microchip公司的LAN8710A、RS232、RS485、SPI FLASH等主要芯片全在该处理器板卡上。
接口板,光电隔离的GPIO输入输出各两路、一个百兆网口座,一路模拟视频信号输出,复位电路、拨码开关、JTAG连接器等。
相机技术指标:1、可以接各种类型的数字视频信号,目前生产3种:TVP5151模拟视频信号输入,MT9V034数字视频信号输入, AR0134数字视频信号输入,也可以定制其他CMOS数字视频板卡
2、相机处理器采用TI TMS320DM6437,运行速度是4800MIPS 3、外接DDR2 存储容量256MB, SPI FLASH 8MB 4、接口一路100Mbps网口、一路RS232接口、一路RS485接口、二路光电隔离IO输出、二路光电隔离IO输入、一路模拟视频信号输出 5、可以进行算法加密(DS28CN01) 6、输入电压为 9V-36V 功率小于5W 7、工作温度 -40~70度。 8、带硬件看门狗功能 9、可以通过BootLoader恢复出厂设置。
实物图: