急需嵌入式电路板

[复制链接]
3095|4
 楼主| izico 发表于 2009-6-30 13:09 | 显示全部楼层 |阅读模式
急需嵌入式电路板,硬件必须符合以下要求:<br /><br />1。摄像头<br />&nbsp;&nbsp;&nbsp;&nbsp;1M像素,16位色以上,黯光下图片仍清晰,挂式<br />2。存储<br />&nbsp;&nbsp;&nbsp;2G可卸载存储,USB&nbsp;flash最好<br />3。RS-232<br />&nbsp;&nbsp;&nbsp;1个RS-232口<br />4。USB<br />&nbsp;&nbsp;&nbsp;两个以上USB&nbsp;host&nbsp;port,USB&nbsp;hub扩展也可<br /><br />软件:<br />1。Linux&nbsp;or&nbsp;uclinux&nbsp;or&nbsp;some&nbsp;Linux&nbsp;I&nbsp;don't&nbsp;know<br />&nbsp;&nbsp;&nbsp;必须支持linux&nbsp;or&nbsp;uclinux,有demo&nbsp;or&nbsp;script证明摄像头,存储,RS-232,USB&nbsp;host&nbsp;port都是运行正常。<br /><br />至于其他的软硬件细节,基本上没要求,只要符合上面几点,任何CPU,DRAM等等都可以。<br /><br />如果你没有摄像头和存储,但符合其他几点,价钱低我会考虑。<br /><br />如果是包装好的产品,最好。<br /><br />我会先买一个,至少要测试硬件能稳定运行几个星期(3&nbsp;or&nbsp;more),然后我才会下单。<br /><br />请有意者联系我:&nbsp;张毅<br />请直接与我联系,我不住在这个论坛里。<br /><br />skype:&nbsp;izicochang<br />GTalk:&nbsp;izicochang@gmail.com<br />MSN:&nbsp;izico@msn.com<br />邮箱:&nbsp;izicochang@gmail.com<br />手机:&nbsp;18923740125<br /> 相关链接:<a href='http://izico.appspot.com'>http://izico.appspot.com</a>
 楼主| izico 发表于 2009-7-2 11:54 | 显示全部楼层

有实力的电子厂商

几天了没回音,看来走错地了。<br /><br />哪位知道哪个网站最多有实力的电子厂商?Alibaba除外(已登)。
wenming 发表于 2009-7-2 12:08 | 显示全部楼层

如果可以的话,可以看看我们的9G20。

CPU:AT91SAM9G20&nbsp;<br />速度:400M<br />内存:64M,可以升级到128M<br />存储:256M&nbsp;FLASH,MICRO&nbsp;SD&nbsp;卡,或者16M串行&nbsp;FLASH<br />外部接口:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;两个USB&nbsp;HOST&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个USB&nbsp;SLAVE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4个串口,可以配置成RS232或者RS85<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个10/100M网卡<br />扩展口:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个IIC<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个SPI,包括两个片选信号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个MINI&nbsp;ISA接口,可以连接FPGA<br /><br />操作系统:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U-BOOT&nbsp;1.3.4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LINUX&nbsp;2.6.27&nbsp;内核,包括外围驱动<br /><br />尺寸:90*54(MM)<br /><br />温度范围:0--70度<br />
armecos 发表于 2009-7-2 14:32 | 显示全部楼层

Linux的成本太高了,还是用ecos方案吧,带视频压缩的,

*****************************************<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;|---------&gtWiFi<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增值包很有益处。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

235

主题

265

帖子

2

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