大话IPC产品系统设计 - 基于芯片商提供的SDK API开发之二

来源:互联网 发布:java思想 编辑:程序博客网 时间:2024/06/05 20:46
方案:安霸、海思(君正、Mstar、安凯)

1.每个模块都是开N(1,2,3...)个pthread线程,线程之间通过生产者,消费者模型(或者进程间通信机制)实现数据同步/异步。通过数据队列缓冲模块数据。

2.数据采集模块:
Video采集2、3个分辨率图像4K-30FPS,VGA-30FPS等;采集的数据放到内存队列通过应用计数把数据管理起来。

3.视频编码模块:(音频一样的道理)
模式一:采集视频数据不通过DDR送给硬件编码器的话(Online),那么直接开辟内存编码IP(B)帧队列,管理输出的视频数据。
模式二:采集视频数据输出到DDR,自己管理DDR采集的YUV数据,然后把数据送给编码器编码。最后把编码器输出数据做管理(基于内存队列的IP帧管理)。

4.PIR、温度传感器等外挂设备
通过I2C、SPI把外挂设备数据读取到内存队列缓冲并管理

5.按键:GPIO、ADC、中断。大致就这三种方式
这里没有可以说明的,打开设备直接读数据放到内存做队列管理就好。

6.TF卡模块:(可选模块)
获取视频、音频编码数据,PIR、温度传感器等数据写到文件系统

7.以太网(以太网和WIFI需要写线程进行管理)
实现各种数据传输协议:
Onvif,RTSP,RTP,RTCP,28181,自定义协议,Httpd, ftpd,smtp等协议、服务功能

8.WIFI
根据Socket请求,根据不同的协议交互数据。(3G、4G、P2P、QQ物联 道理是一样的)
3G、4G:AT指令
P2P、QQ物联:第三方SDK、或者自己架构服务器
云:第三方或者自己架构服务器

9. Power模块:(可选模块)
定时检查电池,低电量做事件处理。此处基本上是长时间电源用电,这个模块基本上不需要。

============================================================================

Icekirin.yuan - 冰火麒麟工作室

Q群:147565042
============================================================================

0 0
原创粉丝点击