溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

海思Hi3518EV200(5)圖像sensor驅(qū)動開發(fā)

發(fā)布時間:2020-07-21 06:52:44 來源:網(wǎng)絡(luò) 閱讀:25064 作者:shugenyin 欄目:編程語言

1. sensor開發(fā)框圖


海思Hi3518EV200(5)圖像sensor驅(qū)動開發(fā)


2. 設(shè)備驅(qū)動加載及硬件系統(tǒng)配置

cd?mpp/ko
#?default?online
./load3518e?-a?-sensor?xxxx?-osmem?32?-total?64
#?vi_vpss?offline
./load3518e?-a?-sensor?xxxx?-osmem?32?-total?64?-offline

load3518e腳本主要是用來配置硬件系統(tǒng)的參數(shù)(引腳復(fù)用、sensor時鐘、VI時鐘)加載驅(qū)動(.ko),包括訪問sensor的I2C接口驅(qū)動。

離線模式時圖像存入DDR中,在線模式時圖像不存入DDR中。

在load3518e腳本中添加sensor的相關(guān)配置。

insert_sns()
{
	case?$SNS_TYPE?in
		xxxx)
			himm?0x200f0040?0x2;????			#?I2C0_SCL
			himm?0x200f0044?0x2;????			#?I2C0_SDA

			#cmos?pinmux
			himm?0x200f007c?0x1;????			#?VI_DATA13
			himm?0x200f0080?0x1;????			#?VI_DATA10
			himm?0x200f0084?0x1;????			#?VI_DATA12
			himm?0x200f0088?0x1;????			#?VI_DATA11
			himm?0x200f008c?0x2;????			#?VI_VS
			himm?0x200f0090?0x2;????			#?VI_HS
			himm?0x200f0094?0x1;????			#?VI_DATA9
			
			himm?0x2003002c?0xb4001;			#?sensor?unreset,?clk?27MHz,?VI?148.5MHz
#			himm?0x20030104?0x1;				#?vpss?148.5MHz
			;;
		*)
			echo?"xxxx?Invalid?sensor?type?$SNS_TYPE?xxxx"
			report_error;;
	esac
}
			
insert_ko()
{
	#?sys?config
	sys_config;

	#?driver?load
	insmod?mmz.ko?mmz=anonymous,0,$mmz_start,$mmz_size?anony=1?||?report_error
	insmod?hi_media.ko
	insmod?hi3518e_base.ko

	insmod?hi3518e_sys.ko?vi_vpss_online=$b_arg_online?sensor=$SNS_TYPE

	insmod?hi3518e_tde.ko
	insmod?hi3518e_region.ko
	insmod?hi3518e_vgs.ko

	insmod?hi3518e_isp.ko
	insmod?hi3518e_viu.ko?detect_err_frame=10;
	insmod?hi3518e_vpss.ko?rfr_frame_comp=1;
	insmod?hi3518e_vou.ko
	#insmod?hi3518e_vou.ko?transparentTransmit=1?#enable?transparentTransmit
	insmod?hifb.ko?video="hifb:vram0_size:1620"?????#?default?pal

	insmod?hi3518e_rc.ko
	insmod?hi3518e_venc.ko?
	insmod?hi3518e_chnl.ko?ChnlLowPower=1
	insmod?hi3518e_h364e.ko
	insmod?hi3518e_jpege.ko
	insmod?hi3518e_ive.ko?save_power=0;
#	insmod?hi3518e_ive.ko	
	insmod?extdrv/sensor_i2c.ko
	echo?"====?Your?input?Sensor?type?is?$SNS_TYPE?===="
	insmod?extdrv/pwm.ko
	insmod?extdrv/piris.ko

	#insert_sns?>?/dev/null
	insert_sns
	insert_audio

	insmod?hi_mipi.ko
	echo?"====?Your?input?Sensor?type?is?$SNS_TYPE?===="
}			
			


3. sensor的庫文件生成(.so)

sensor的庫文件需要在Linux服務(wù)器中的SDK包中編譯得到,將生成的.so文件放到SDK包中的stream軟件包中的Hi3518E_Stream_xxx/libs目錄下。

sensor_ctl.c實現(xiàn)sensor的讀寫初始化。

sensor_cmos.c主要實現(xiàn)ISP需要的回調(diào)函數(shù),包括ISP、AE、AWB等。

//ISP?function
HI_S32?cmos_init_sensor_exp_function(ISP_SENSOR_EXP_FUNC_S?*pstSensorExpFunc)
{
????memset(pstSensorExpFunc,?0,?sizeof(ISP_SENSOR_EXP_FUNC_S));

????pstSensorExpFunc->pfn_cmos_sensor_init?=?sensor_init;
????pstSensorExpFunc->pfn_cmos_sensor_exit?=?sensor_exit;
????pstSensorExpFunc->pfn_cmos_sensor_global_init?=?sensor_global_init;
????pstSensorExpFunc->pfn_cmos_set_p_w_picpath_mode?=?cmos_set_p_w_picpath_mode;
????pstSensorExpFunc->pfn_cmos_set_wdr_mode?=?cmos_set_wdr_mode;
????
????pstSensorExpFunc->pfn_cmos_get_isp_default?=?cmos_get_isp_default;
????pstSensorExpFunc->pfn_cmos_get_isp_black_level?=?cmos_get_isp_black_level;
????pstSensorExpFunc->pfn_cmos_set_pixel_detect?=?cmos_set_pixel_detect;
????pstSensorExpFunc->pfn_cmos_get_sns_reg_info?=?cmos_get_sns_regs_info;

????return?0;
}

//AE?function
HI_S32?cmos_init_ae_exp_function(AE_SENSOR_EXP_FUNC_S?*pstExpFuncs)
{
????memset(pstExpFuncs,?0,?sizeof(AE_SENSOR_EXP_FUNC_S));

????pstExpFuncs->pfn_cmos_get_ae_default????=?cmos_get_ae_default;
????pstExpFuncs->pfn_cmos_fps_set???????????=?cmos_fps_set;
????pstExpFuncs->pfn_cmos_slow_framerate_set=?cmos_slow_framerate_set;????
????pstExpFuncs->pfn_cmos_inttime_update????=?cmos_inttime_update;
????pstExpFuncs->pfn_cmos_gains_update??????=?cmos_gains_update;
????pstExpFuncs->pfn_cmos_again_calc_table??=?cmos_again_calc_table;
????pstExpFuncs->pfn_cmos_get_inttime_max???=?cmos_get_inttime_max;?

????return?0;
}

//AWB?function
HI_S32?cmos_init_awb_exp_function(AWB_SENSOR_EXP_FUNC_S?*pstExpFuncs)
{
????memset(pstExpFuncs,?0,?sizeof(AWB_SENSOR_EXP_FUNC_S));

????pstExpFuncs->pfn_cmos_get_awb_default?=?cmos_get_awb_default;

????return?0;
}


4. 修改stream軟件包的.ini文件

xxxx_1080p_line.ini文件在Hi3518E_Stream_xxx/configs目錄下,改文件主要指定.so文件的位置、輸入視頻的接口(LVDS/MIPI/DVP)、視頻格式(分辨率、同步方式、目標(biāo)幀率等)等系統(tǒng)配置。


5. 運(yùn)行stream軟件

運(yùn)行stream軟件包中的HiIspTool.sh腳本,通過以太網(wǎng)卡與上位機(jī)的PQTools建立通信。

cd?/Hi3518E_Stream_V1.0.2.0

./HiIspTool.sh?-a?-p?xxxx_1080p_line.ini

ittb_control進(jìn)程是基于TCP的服務(wù)端,負(fù)責(zé)控制信號的傳輸。

ittb_stream進(jìn)程也是基于TCP的服務(wù)端,負(fù)責(zé)播放H.264或YUV視頻流。

6. 運(yùn)行PQ Tools

雙擊PQ Tools圖片,彈出如下對話框,設(shè)置IP地址。

海思Hi3518EV200(5)圖像sensor驅(qū)動開發(fā)

在下拉菜單中選擇TTP_Stream.exe選項

海思Hi3518EV200(5)圖像sensor驅(qū)動開發(fā)


7. 最終結(jié)果

海思Hi3518EV200(5)圖像sensor驅(qū)動開發(fā)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI