CDMA 视频传输

[复制链接]
2975|6
 楼主| kingpin1 发表于 2008-10-30 16:52 | 显示全部楼层 |阅读模式
有个项目,需要用CDMA传输摄像头采集的视频。<br />各位有没有现成的设备可以用的?多少钱?<br /><br />另外我想用随便一台机器输入密码就可以访问摄像头,能做得到么?<br />都还另外需要什么设备?<br /><br />大家留下联系方式和建议吧,最好在北京
armecos 发表于 2008-10-30 17:50 | 显示全部楼层

无法提供产品,但是可以提方案,

随便看看吧!<br /><br />你需要一台服务器,ADSL接入,动态域名.<br />设备需要开通CDMA包年<br />查询设备可以用PC机访问服务器,或者用支持WINCE的手机查看.<br />这样可以实现多对多监控.<br /><br /><b>更多内容,详见:</b><br /><b>《培训系列“丛书”》</b><br /><b>www.armecos.com</b><br />-----------------------------------<br /><b>More&nbsp;details,&nbsp;see:</b><br /><b>《&quot;Series&nbsp;Books&quot;&nbsp;of&nbsp;Training》</b><br /><b>www.armecos.com</b><br /><br />*****************************************<br />*&nbsp;ecos增值包应用举例---视频监控终端方案&nbsp;*<br />*****************************************<br />&nbsp;&nbsp;&nbsp;&nbsp;2007/03/15&nbsp;&nbsp;asdjf@163.com&nbsp;&nbsp;www.armecos.com<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ecos增值包提供了多线程调度、文件系统、TCP/IP协议栈、图形用户界面等完整功能,裁减配置能力强,特别适合中高端嵌入式应用开发。税控机、行驶记录仪、视频监控终端、网络传输设备等都可以考虑使用ecos平台简化设计,减少代码量。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;下图是一个视频监控终端示意图:<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;键盘、烟雾/温度/红外传感器、I/O输出控制<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DMA/中断&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|---------&gt蓝牙模块<br />&nbsp;&nbsp;&nbsp;&nbsp;四路视频输入---------&gt|&nbsp;SAA7111&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;视音频&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|---------&gt以太网Ethernet<br />&nbsp;&nbsp;&nbsp;&nbsp;一路音频输入/输出----&gt|&nbsp;A/D、D/A&nbsp;&nbsp;&nbsp;编解码器&nbsp;&nbsp;&nbsp;MCU&nbsp;&nbsp;&nbsp;|---------&gtGPRS、CDMA串口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;硬盘/CF卡/SD卡/USB存储设备<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;此系统包括四路视频输入(一路选通,支持CMOS摄像头、PAL/NTSC/用户自定义制式);一路音频输入输出;多种大容量存储外设,满足配置文件和视频文件存储;输入输出I/O设备;各种传感器探测;网络通信部分,满足远近距离音视频传输。<br />&nbsp;&nbsp;&nbsp;&nbsp;系统内部由A/D、D/A转换器,视音频编解码器,MCU子系统组成。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;对于这么一个小系统,使用ecos增值包来设计是非常方便的。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;存储设备:直接挂装文件系统,mount&nbsp;/hd、/cf、/sd、/usb,然后利用标准的文件操作函数读写各种介质上的数据。(项目进度可控)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;输入输出设备:采用《第二讲硬件IO操作》和《第三讲ecos中断操作》可以非常容易地实现输入输出控制。键盘中断结构直接抄模板,I/O操作使用宏,便于移植。(项目进度可控)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;网络传输设备:采用《第六讲串口操作》,将GPRS/CDMA的MODEM串口挂装到/dev/ser1上,ecos自动枚举串口,会自动识别出MODEM串口和各种版本的16C55x工业标准,编译时已经配置好是否需要RAM缓冲区及其大小(带缓冲区的自动基于中断驱动),用户只要操作抽象的串口文件即可。ecos自带完整协议栈,支持PPP、UDP、TCP,用户只要使用标准的socket编程(多播、组播、RTP/RTCP)即可。(项目进度可控)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;A/D、D/A设备:视频数据量大,采用DMA能大大减少压栈、出栈操作,提高效率。中断操作参考《第三讲》。SAA7111采用I2C接口,操作复杂,适宜使用C++编程,参考《第十三讲&nbsp;宏、汇编、C和C++混合编程》。抽象I2C、EEPROM和SAA7111为C++对象:<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />//======================================================<br />&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;CIICBus<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;private:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;video&nbsp;iic<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//for&nbsp;eeprom&nbsp;iic<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CIICBus(int&nbsp;who&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;SCLOut(&nbsp;IIC_LEVEL&nbsp;Level&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;SDAOut(&nbsp;IIC_LEVEL&nbsp;Level&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;IIC_LEVEL&nbsp;&nbsp;SCLIn(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;IIC_LEVEL&nbsp;&nbsp;SDAIn(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;BusDelay(&nbsp;int&nbsp;Count&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;CheckBusState(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;BusStart(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;BusRepeatStart(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;BusStop(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;WriteByte(&nbsp;unsigned&nbsp;char&nbsp;Data&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;ReadByte(&nbsp;unsigned&nbsp;char&nbsp;&Data&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;GetAck(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;SetAck(&nbsp;IIC_LEVEL&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;&nbsp;Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;&nbsp;Lock();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;&nbsp;Unlock();<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />//======================================================<br />&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;CEeprom&nbsp;:&nbsp;public&nbsp;CIICBus<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;private:<br />&nbsp;&nbsp;&nbsp;&nbsp;cyg_mutex_t&nbsp;hMutex;<br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;CEeprom();&nbsp;&nbsp;//:CIICBus(&nbsp;0&nbsp;)&nbsp;{&nbsp;BusStop();&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;Write(&nbsp;unsigned&nbsp;char&nbsp;*buf,&nbsp;unsigned&nbsp;char&nbsp;pos,&nbsp;unsigned&nbsp;char&nbsp;size&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;Read(&nbsp;unsigned&nbsp;char&nbsp;*buf,&nbsp;unsigned&nbsp;char&nbsp;pos,&nbsp;unsigned&nbsp;char&nbsp;size&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />//======================================================<br />&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;CSAA7111&nbsp;:&nbsp;public&nbsp;CIICBus<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;private:<br />#ifdef&nbsp;__ECOS__<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//寄存器地址<br />#endif<br />&nbsp;&nbsp;&nbsp;&nbsp;protected:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;&nbsp;m_BusTimeout;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSAA7111(&nbsp;unsigned&nbsp;int&nbsp;DelayConst&nbsp;=&nbsp;10,&nbsp;unsigned&nbsp;int&nbsp;BusTimeout&nbsp;=&nbsp;3&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:CIICBus(1),&nbsp;m_BusTimeout(&nbsp;BusTimeout&nbsp;)&nbsp;&nbsp;&nbsp;{}&nbsp;&nbsp;<br /><br />#ifdef&nbsp;__ECOS__<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;Reset(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;PowerSave(&nbsp;BOOL&nbsp;Enable&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;ForbidOutput(&nbsp;BOOL&nbsp;Enable&nbsp;);&nbsp;&nbsp;//&nbsp;operate&nbsp;CE,&nbsp;not&nbsp;FEI#<br />#endif<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;Initialize(&nbsp;void&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;WriteReg(&nbsp;unsigned&nbsp;char&nbsp;Reg,&nbsp;unsigned&nbsp;char&nbsp;Data&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;ReadReg(&nbsp;unsigned&nbsp;char&nbsp;Reg,&nbsp;unsigned&nbsp;char&nbsp;&Data&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;SetVideoSource(&nbsp;int&nbsp;CamNo&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;GetVideoSource(&nbsp;int&nbsp;&CamNo&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;&nbsp;CheckVideoSingal(&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;SetBusTimeout(&nbsp;unsigned&nbsp;int&nbsp;BusTimeout&nbsp;&nbsp;)&nbsp;{&nbsp;m_BusTimeout&nbsp;=&nbsp;BusTimeout;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;&nbsp;GetBusTimeout(&nbsp;unsigned&nbsp;int&nbsp;&BusTimeout&nbsp;)&nbsp;{&nbsp;BusTimeout&nbsp;=&nbsp;m_BusTimeout;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;对象化的SAA7111操作接近人类的思维习惯,初始化、读写寄存器、设置视频源、检测视频信号等思路非常清晰。利用《第十二讲&nbsp;多目录下makefile的通用写法》中介绍的宏定义可以根据实际情况调节代码,如“#ifdef&nbsp;__ECOS__”。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;视音频编解码器:采用自行设计的ASIC芯片HJV进行H.264视频压缩,视频编码器寄存器种类繁多,采用面向对象的设计方法可以保证代码质量。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;CHJVCodec<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;private:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;HJ602&nbsp;status<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Video&nbsp;input<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Display&nbsp;generation<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Video&nbsp;output<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Codec&nbsp;operation&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Chip&nbsp;operation<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;video&nbsp;buffer&nbsp;management<br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteDecBuf<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteDecBuf<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ReadDecBuf<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;private:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ValueBitrate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ValueChunkThreshold<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;public:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHJVCodec<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Chip&nbsp;IO<br />#ifdef&nbsp;_ECOS_<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ReadReg<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteReg<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteRegNoMask<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ReadDram<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ReadDram<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteDram<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteDram<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Vstrm_Out<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetStatus<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;CheckHW<br />#endif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ReadTLB<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;WriteTLB<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;RegDump<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Chip&nbsp;Initialization<br />#ifdef&nbsp;_ECOS_<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;HwReset<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SwReset<br />#endif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;Initialize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;InitReg<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;InitTLB<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Clock&nbsp;Setting<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetClock<br />&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;PowerSave<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Video&nbsp;Input<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetViControl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetViFilter<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetViSource<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetViTvFormat<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;SetViScaling<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL&nbsp;SetEncImgSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDecImgSize<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Codec&nbsp;Operation<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetIPFrame<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetAlgorithm<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;EncFastUpdate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetEncVideoMode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetEncPolicy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetEncBitRate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetStatisticsCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetMBFresh<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Display&nbsp;Generation<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDeBlock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipSrc<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipBorder<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipPos<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipScaling<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipBitmapSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPipMirror<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;MainMirror<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetOSDCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetFrameBufSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDispScaling<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDispUpdate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ManualUpdate<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Display&nbsp;Interface<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetVoTvFormat<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetRGBDAC<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDvOut<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDoubleImgSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetPixelFetch<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDispTiming<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDispMode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetDispLayout<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Chip&nbsp;Operation<br />#ifdef&nbsp;_ECOS_<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetOperationMode<br />#endif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetHwIntLoop<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Member&nbsp;data&nbsp;retrievel&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetDramSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetClock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetViSource<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetViControl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetViFilter<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetViScaling<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetEncImgSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetDecImgSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetIPFrame<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetAlgorithm<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetEncVideoMode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetEncPolicy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetEncBitRate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetStatisticsCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetDeBlock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetPipCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetMirror<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetOsdCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetFrameBufSize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetDispUpdate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetVoCtl<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetOperationMode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;GetHwIntLoop<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetEncodeMode<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;StartEncoding<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetVideoFormat<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetFrameRate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetEncQuality<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;SetIFrameInterval<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;ResetBuffer<br />&nbsp;&nbsp;&nbsp;&nbsp;};<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;经过H.264和g.723.1/g.729压缩的视音频数据加上H.245控制经H.223合路,就可以实现串型码流的音频、视频、数据同时传输,Windows上的DirectX可以直接解码此音视频流数据。ecos库里带有H.264、MP4、MP3、G系列音视频编解码库,但软件运行太慢,即使DSP也显得芯片面积太大了,这里使用一小颗视音频编解码ASIC芯片。不过合路时的数据量仍然很大,对MCU速率有较高要求。<br />&nbsp;&nbsp;&nbsp;&nbsp;因为网络传输速率可变,所以需要实时调整视频源编码速率,以保证视频的连续实时,此时,要用到《第十讲&nbsp;时间管理》里介绍的时间相关函数辅助计算编码速率,按照码源速率控制算法控制数据生成。<br />&nbsp;&nbsp;&nbsp;&nbsp;在访问一些临界资源时要采用《第十一讲&nbsp;同步原语》介绍的同步函数进行控制。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;好了,这只是ecos增值包的一个简单应用例子,介绍它的目的主要是让使用者明白文档中各章节的讲解是如何与实际项目联系起来的。以后再介绍行使记录仪的方案、路由器方案、***/防火墙方案等。<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;总之,ecos是一个不错的平台,学习和使用ecos增值包很有益处。
xwj 发表于 2008-10-30 17:52 | 显示全部楼层

基于以太网传输的视频服务区很多,不过有没有直接集成CDMA

不明白你为什么要限定CDMA,<br />如果只是想在手机上看到监视视频的话,随便买个视频服务器,再手机上网即可,<br />只是流量费用很高的哦
 楼主| kingpin1 发表于 2008-10-31 13:44 | 显示全部楼层

我的设备工作情况

设备工作在野外,需要太阳能供电,预先也没有铺设光纤等视频通信措施。<br />现在只能采用CDMA模块,传输速率没有太多要求,能传几幅图就可以,视频服务器<br />价格太高了吧?
db10 发表于 2008-10-31 14:27 | 显示全部楼层

。。。。

armecos&nbsp;发表于&nbsp;2008-10-30&nbsp;17:50&nbsp;创业|外包|承接&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />3楼:&nbsp;无法提供产品,但是可以提方案,&nbsp;<br /><br />随便看看吧!<br /><br />你需要一台服务器,ADSL接入,动态域名.<br />设备需要开通CDMA包年<br />查询设备可以用PC机访问服务器,或者用支持WINCE的手机查看.<br />这样可以实现多对多监控.&nbsp;<br />&nbsp;<br /><br />他说得这个方案很对,我们正在做通过GPRS得方式,整个项目快完成,只是GPRS和CDMA途径不同而已,其他方式与作用相同。
armecos 发表于 2008-10-31 23:32 | 显示全部楼层

肯定要有视频服务器的,

否则只能点对点传输,一次只能有一个人查看,另外,图像数据最好备份到服务器中,再者,没有服务器,你就必须在设备上实现动态域名。有服务器的好处是多对多,比如:1000个人同时查看10000台设备,服务器采用P2P方式,看的人越多,速度越快,同时容易实现鉴权、计费。图像保存在数据库里,便于检索。<br /><br />设备具有不同工作模式:<br />拍照模式<br />追踪模式<br />监控模式<br />......<br />比如:植物病虫害监控就不需要很高速率,但要求清晰度比较高,每隔3分钟拍一次,放的时候正常播放,就能清楚地看到虫子吃叶子的过程。此时应采用拍照模式。<br />追踪模式在有活动物体时才录像,就象青蛙对运动物体敏感,却看不到静止物体一样,利用红外传感器进行运动识别,可以大大压缩数据量。例如:有小偷闯入时才开始录像取证,平时不录。<br /><br />野外使用时必须特殊处理,例如;东北天气寒冷,导致芯片死机电源失效;西北高原或沙漠地区太阳暴晒机箱使其内部温度高达100度以上,芯片/看门狗死机;南部沿海潮湿、盐雾腐蚀......极其容易失效,所以能在野外使用的设备成本非常高。<br /><br />CDMA使用的是无线信道,而Linux之类的操作系统的TCP/IP协议栈是按照有线铜网络设计的,所以必须重写协议栈代码,优化速度。<br /><br />此设备适合油田钻井设备无人监控、国土矿山资源监控、运钞车监控、草原牧场管理、车辆使用监视等等<br /><br />这种野外设备还有很多细节需要注意,做好实在不容易,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部