做過幾年的USB攝像頭,剛好可以回答這個問題。
絕大多數的USB攝像頭的結構是這個樣子的(excel手畫請見諒):
其中,sensor負責採集影像;主控晶片ASIC負責將sensor的影像訊號轉化成USB訊號,並且ASIC上往往含有多個GPIO口可以用來控制其他周邊電路,最典型的就是LED電路;早期還會外掛EEPROM或者FLASH來燒錄韌體(Firmware),現在很多都整合到ASIC中了。
不少知乎朋友在問,為什麼不直接把LED電路和直接把USB口連線起來?
這樣做不好的原因主要有2點:1. 內建USB攝像頭是和USB連線在一起的,如果直接連到USB介面會導致LED等常亮;如果要加以控制的話,會涉及到PC端的USB驅動問題,比較複雜。不像接到ASIC,就是攝像頭內建韌體的問題。內部問題總比外部問題好解決。2. LED燈的目的是指示USB攝像頭開始工作,而不是開始通電。這一點是最重要的一點。當USB攝像頭通電之後,sensor需要接收到一定時序的電源,以及一定時序的控制訊號(Powerdown,Reset,I2C等等)才會開始工作;ASIC接收到sensor端的影像訊號後,再透過GPIO口點亮LED電路。這樣可以確保LED亮的時候,攝像頭是在正常工作。
以上說了這麼多,總結起來就是兩點:1, LED是ASIC控制的。2,ASIC控制LED的方式是寫在攝像頭的韌體裡的。
那麼在控制了PC端後,如何能夠使得USB攝像頭的LED燈不亮,就很清楚了。寫一版新的攝像頭韌體燒錄到攝像頭中,將LED驅動電路的GPIO口功能去掉。寫起來這麼簡單,但是不同電腦的攝像頭晶片千差萬別,電路介面也各不一樣,實際上做起來難度很大。
wei chen:什麼是閉環式馬達鏡頭,有何特點,如何影響對焦速度和成像質量?
wei chen:為什麼會出現手機雙攝像頭技術?雙攝像頭是橫著好還是豎著好?
做過幾年的USB攝像頭,剛好可以回答這個問題。
絕大多數的USB攝像頭的結構是這個樣子的(excel手畫請見諒):
其中,sensor負責採集影像;主控晶片ASIC負責將sensor的影像訊號轉化成USB訊號,並且ASIC上往往含有多個GPIO口可以用來控制其他周邊電路,最典型的就是LED電路;早期還會外掛EEPROM或者FLASH來燒錄韌體(Firmware),現在很多都整合到ASIC中了。
不少知乎朋友在問,為什麼不直接把LED電路和直接把USB口連線起來?
這樣做不好的原因主要有2點:1. 內建USB攝像頭是和USB連線在一起的,如果直接連到USB介面會導致LED等常亮;如果要加以控制的話,會涉及到PC端的USB驅動問題,比較複雜。不像接到ASIC,就是攝像頭內建韌體的問題。內部問題總比外部問題好解決。2. LED燈的目的是指示USB攝像頭開始工作,而不是開始通電。這一點是最重要的一點。當USB攝像頭通電之後,sensor需要接收到一定時序的電源,以及一定時序的控制訊號(Powerdown,Reset,I2C等等)才會開始工作;ASIC接收到sensor端的影像訊號後,再透過GPIO口點亮LED電路。這樣可以確保LED亮的時候,攝像頭是在正常工作。
以上說了這麼多,總結起來就是兩點:1, LED是ASIC控制的。2,ASIC控制LED的方式是寫在攝像頭的韌體裡的。
那麼在控制了PC端後,如何能夠使得USB攝像頭的LED燈不亮,就很清楚了。寫一版新的攝像頭韌體燒錄到攝像頭中,將LED驅動電路的GPIO口功能去掉。寫起來這麼簡單,但是不同電腦的攝像頭晶片千差萬別,電路介面也各不一樣,實際上做起來難度很大。
wei chen:什麼是閉環式馬達鏡頭,有何特點,如何影響對焦速度和成像質量?
wei chen:為什麼會出現手機雙攝像頭技術?雙攝像頭是橫著好還是豎著好?