當前位置: 首頁 > 傳感測量產(chǎn)品 > 工業(yè)傳感器 > 力傳感器
發(fā)布日期:2022-10-09 點擊率:94
前言
之前搞過的默認橫屏大都都是強制性的,靜止了自動旋轉(zhuǎn),那是因為本身也不帶重力傳感器。之前的改法過于暴力不太正統(tǒng),
這次仔細研究了下 android 橫豎屏控制相關(guān)的代碼,整理了一套合適的修改方案。
大多情況下豎屏橫用是常見的應(yīng)用場景,這樣做應(yīng)該能節(jié)省成本,但給系統(tǒng)軟件帶來的麻煩不小。
而在安卓版本的迭代中,谷歌和 MTK 已經(jīng)將屏幕旋轉(zhuǎn)這塊做的很完善了, 這里就以 MTK 平臺 android11 最新源碼分析。
1、Uboot Logo(開機第一屏)方向控制
MTK 的 UbootLogo 繪制在 lk 代碼中,算是比較完善的框架了,不管版本怎么迭代,幾乎沒怎么變動。
代碼路徑如下
vendormediatekproprietaryootableootloaderlkplatformmt6765mt_logo.c
看到核心方法 init_fb_screen(),其中根據(jù) MTK_LCM_PHYSICAL_ROTATION 來設(shè)置 ubootlogo 旋轉(zhuǎn)角度,說明 MTK 已經(jīng)做好了兼容
我們只需找到 MTK_LCM_PHYSICAL_ROTATION 配置為想要的方向角度即可。
經(jīng)過搜索在 project/$(PROJECT).mk 中找到定義
alpsvendormediatekproprietaryootableootloaderlkprojectk62v1_64_bsp.mk
lk 的編譯規(guī)則定義在 alpsvendormediatekproprietaryootableootloaderlkmakefile
2、Kernel Logo(開機第二屏)方向控制
KernelLogo 的繪制在 libshowlogo 庫中,調(diào)用 show_kernel_logo()
alpsvendormediatekproprietaryexternalchargerootlogo.cpp
alpsvendormediatekproprietaryexternallibshowlogocharging_animation.cpp
在調(diào)用繪制之前進行了 fb_fd 初始化,核心方法為 anim_fb_init(void),其中根據(jù) int rotation = getRotation();
來設(shè)置 kernellogo 旋轉(zhuǎn)角度,找到 getRotation() 實現(xiàn)方法位于
alpsvendormediatekproprietaryexternallibshowlogo.cpp
從中讀取 prop 屬性 primary_display_orientation_values 對應(yīng)值,繼續(xù)尋找在哪里賦值
primary_display_orientation_values定義
位于 alpsdevicemediatekcommondevice.mk
不難發(fā)現(xiàn) primary_display_orientation 值由宏定義 MTK_LCM_PHYSICAL_ROTATION 決定
alpsdevicemediateksamplek62v1_64_bspProjectConfig.mk
3、關(guān)機充電 Logo 方向控制
關(guān)機充電 Logo 繪制代碼也在 libshowlogo 中
alpsvendormediatekproprietaryexternallibshowlogoshow_animation_common.c
也是根據(jù) int rotation = getRotation(); 來決定旋轉(zhuǎn)角度,和上面的 kernel logo 一樣由 MTK_LCM_PHYSICAL_ROTATION 決定。
4、開機動畫方向控制
開機動畫播放代碼位置如下
alpsframeworksasecmdsootanimationBootAnimation.cpp
播放繪制核心方法為 BootAnimation::readyToRun(),其中可通過 Transaction t 的 displayProjection
來決定方向。 ui::ROTATION_0 ui::ROTATION_90 ui::ROTATION_180 ui::ROTATION_270
這里添加的是 ui::ROTATION_0 為了解決播放動畫后半段有一半顯示不完整問題。
5、RecoveryUI 方向控制
RecoveryUI 繪制代碼位于,alpsootable
ecoveryminuigraphics.cpp
谷歌已經(jīng)為我們提供了兼容旋轉(zhuǎn)顯示
核心方法 gr_init() 中讀取 prop ro.minui.default_rotation 值決定繪制方向
搜索后發(fā)現(xiàn)并沒有定義賦值的地方,那我們就自己加一個賦值為橫屏 ROTATION_LEFT
alpsdevicemediateksamplek62v1_64_bspdevice.mk
6、系統(tǒng) TP 觸控 x y 方向控制
核心控制邏輯如下
alpskernel-4.19driversinput ouchscreenmtk_tpd.c
alpskernel-4.19driversinput ouchscreenGT911gt9xx_driver.c
得到由宏定義 CONFIG_MTK_LCM_PHYSICAL_ROTATION 決定 x y 坐標
alpskernel-4.19archarm64configsk62v1_64_bsp_defconfig
7、開機默認橫屏顯示
修改完上面的步驟后開機已經(jīng)是橫屏了,具體和 MTK_LCM_PHYSICAL_ROTATION
所決定 ro.surface_flinger.primary_display_orientation 值有關(guān)系
核心代碼如下
alpshardwareinterfacesconfigstore1.1defaultsurfaceflinger.mk
alpshardwareinterfacesconfigstore1.1defaultSurfaceFlingerConfigs.cpp
alpsframeworks
ativeservicessurfaceflingerSurfaceFlinger.cpp
alpsframeworks
ativeservicessurfaceflingerSurfaceFlingerProperties.cpp
8、重力傳感器驅(qū)動調(diào)試
參考這篇
MTK 9.0平臺調(diào)試 gsensor
9、默認橫屏兼容重力傳感器自動旋轉(zhuǎn)
打開系統(tǒng)自動旋轉(zhuǎn)功能按鈕,屏幕可跟隨當前方向旋轉(zhuǎn)顯示
關(guān)閉系統(tǒng)自動旋轉(zhuǎn)功能按鈕,強制所有 APP 默認橫屏顯示,不管 portrait 屬性
alpsframeworksaseservicescorejavacomandroidserverwmDisplayRotation.java
frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java
10、參考資料
Android 屏幕顯示方向分析
一種ASG驅(qū)動電路、平板傳感器以及電子裝置。所述ASG驅(qū)動電路包括:多個第一ASG移位寄存器和多個第二ASG移位寄存器,所述第一ASG移位寄存器和所述第二ASG移位寄存器分別交替級聯(lián);僅所述第一ASG移位寄存器連接對應(yīng)行的掃描線以為所述掃描線提供柵驅(qū)動信號,所述第二ASG移位寄存器為與其級聯(lián)的兩個所述第一ASG移位寄存器的柵驅(qū)動信號提供時間間隔。本發(fā)明專利技術(shù)提高了尺寸較小的ASG驅(qū)動電路柵驅(qū)動信號讀取的準確性。
全部詳細技術(shù)資料下載
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及平板傳感器
,尤其涉及一種ASG(Amorphous Silicon Gate,非晶硅柵極)驅(qū)動電路、平板傳感器以及電子裝置。
技術(shù)介紹
平板傳感器是一種將入射光按照光強轉(zhuǎn)換為電信號的裝置,入射光可以是X光、可見光或者紅外光。入射光照射物體后經(jīng)物體反射或者透射后,會發(fā)生吸收、散射以及反射等作用,由于物體不同區(qū)域的結(jié)構(gòu)不同,所以經(jīng)過不同區(qū)域的光強不同,最后通過平板傳感器對光強的表達,形成一個與物體表面或者內(nèi)部結(jié)構(gòu)相應(yīng)的灰階圖,以便于對物體進行分析。由于平板傳感器可有效地對物體進行無損檢測,所以在醫(yī)療、安檢、工業(yè)無損探測等領(lǐng)域都得到了廣泛的發(fā)展和應(yīng)用。參考圖1所示,平板傳感器包括多條掃描線11 (Scan Line或者Gate Line)和多條數(shù)據(jù)線12(Data Line),掃描線11和數(shù)據(jù)線12按照X軸和Y軸交錯排列形成一個像素陣列,像素陣列包括多個像素單元,每個像素單元包括:一個光電二極管13和一個TFT 14(薄膜晶體管),光電二極管用于將可見光轉(zhuǎn)換為電荷,TFT 14用于控制像素單元的開和關(guān),每行像素單元的TFT 14的柵極連接至同一條掃描線,每列像素單元的TFT的漏極連接至同一數(shù)據(jù)線,掃描線由柵極驅(qū)動電路15 (Gate Driver Circuit)控制,數(shù)據(jù)線由讀出芯片16(ReadOut IC)控制。目前平板傳感器的柵極驅(qū)動電路普遍采用多晶硅柵極驅(qū)動電路,該驅(qū)動電路通過FOG(FiIm On Glass,芯片在薄膜上)或者C0G(Chip On Glass,芯片在玻璃上)等方式綁定在平板傳感器,實現(xiàn)平板傳感器與柵極驅(qū)動電路的電連接和導(dǎo)通。具體地,當多晶硅柵極驅(qū)動電路通過FOG方式綁定在平板傳感器上時,先將多晶石圭柵極驅(qū)動電路封裝在一個柔性導(dǎo)電薄膜上,形成一個COF(Chip On Film,芯片在薄膜上的封裝)模塊,再通過熱壓合的工藝方式并以各向異性導(dǎo)電膠(ACF, anisotropicconductive film)作為連接介質(zhì)將COF模塊綁定到平板傳感器裸露的導(dǎo)電襯墊上;當多晶硅柵極驅(qū)動電路通過COG方式綁定在平板傳感器上時,直接將硅晶柵極驅(qū)動電路的導(dǎo)電凸塊與玻璃上裸露導(dǎo)電襯底連接起來,也是以各向異性導(dǎo)電膠作為連接介質(zhì),此綁定方法避免了器件之間以線或者引腳作為連結(jié),也避免了由此引起的一系列問題,如材料成本、封裝成本以及信號傳輸過程中電阻過大等,因此COG方式較FOG方式的應(yīng)用更為普遍。參考圖2所示,當多晶硅柵極驅(qū)動電路通過COG方式綁定在平板傳感器上時,柵極驅(qū)動電路15與柔性電路板23電連接以將信號輸入至該柔性電路板23,平板傳感器的外圍布線24呈扇形分布。由于COG綁定時為了防止綁定機臺壓到像素陣列22區(qū)域,所以要求柵極驅(qū)動電路15離像素陣列22有一定的距離;而柔性電路板23也是通過壓合工藝綁定到平板傳感器上,所以柔性線路板23距離柵極驅(qū)動電路15也需一定距離;柵極驅(qū)動電路15和柔性電路板23自身也有一定的尺寸;因此平板傳感器的外圍部分(即從像素陣列外圍到平板傳感器切割線25)總共寬12?15mm。對于尺寸較大的平板傳感器來說,12?15mm的外圍部分對其不會產(chǎn)生影響。但是對于中小尺寸的平板傳感器,如只有幾十條或者幾百條掃描線,12?15mm的外圍部分則會對其產(chǎn)生較大的影響,例如因外圍部分空間太大因而不能滿足機械尺寸的需要以致不能滿足應(yīng)用。另外,外圍部分較大對于小尺寸的平板傳感器(如:像素陣列22區(qū)域?qū)挾戎挥袔桌迕?來說,采用FOG或者COG綁定方式難度較大,不容易對位和壓合,因此增加了生產(chǎn)難度,降低了良率;而且采用多晶硅柵極驅(qū)動電路會導(dǎo)致外圍電路太大,從而導(dǎo)致整個平板傳感器太大,不能滿足機械要求。為了減小柵極驅(qū)動電路的尺寸,可以考慮采用尺寸較小的ASG驅(qū)動電路。參考圖3所示,現(xiàn)有技術(shù)中ASG驅(qū)動電路包括:初始信號提供單元31,用于為第一個移位寄存器提供開啟控制信號;結(jié)束信號提供單元32,用于為最后一個移位寄存器提供關(guān)閉控制信號;第一時鐘信號提供單元33,用于提供第一時鐘信號;第二時鐘信號提供單元34,用于提供第二時鐘信號,所述第二時鐘信號和所述第一時鐘信號反向;η個級聯(lián)的移位寄存器,第i個移位寄存器Stage i包括:開啟控制端STP1、關(guān)閉控制端END1、第一時鐘信號輸入端CKl1、第二時鐘信號輸入端CK2i和輸出端OUTi, i ^ 1,其中:奇數(shù)行移位寄存器的第一時鐘信號輸入端均連接第一時鐘信號提供單元33,奇數(shù)行移位寄存器的第二時鐘信號輸入端均連接第二時鐘信號提供單元34,偶數(shù)行移位寄存器的第二時鐘信號輸入端均連接第一時鐘信號提供單元33,偶數(shù)行移位寄存器的第一時鐘信號輸入端均連接第二時鐘信號提供單元34,每個移位寄存器的輸出端分別連接前一個移位寄存器的關(guān)閉控制端、后一個移位寄存器的開啟控制端以及對應(yīng)行的掃描線(即柵極),第一個移位寄存器的開啟控制端STPl連接初始信號提供單元31,最后一個移位寄存器的關(guān)閉控制端ENDn連接結(jié)束信號提供單元32。結(jié)合參考圖4所示,第一時鐘信號提供單元提供第一時鐘信號CKl且第二時鐘信號提供單元提供第二時鐘信號CK2,當初始信號提供單元提供的STP信號傳輸至第一級移位寄存器時,第一級移位寄存器將輸出第一行柵驅(qū)動信號Gl,第一行柵驅(qū)動信號Gl將打開第一行TFT以把對應(yīng)的第一行源端信號進行寫入,同時第一行柵驅(qū)動信號Gl將觸發(fā)下一級移位寄存器打開并進行工作;當?shù)诙壱莆患拇嫫鏖_始工作時,則輸出第二行柵驅(qū)動信號G2,第二行柵驅(qū)動信號G2反饋到上一級移位寄存器并將其關(guān)斷,依次類推,直至最后一級移位寄存器由結(jié)束信號提供單元提供的END信號進行關(guān)斷。此時,一行信號讀取的時間Line Time等于每行柵驅(qū)動信號(如:第一行柵驅(qū)動信號Gl)的時長。但是,在現(xiàn)有技術(shù)的柵極驅(qū)動電路中,ASG驅(qū)動電路是由非晶硅TFT形成,所以存在一定的延時,即上一行TFT關(guān)閉的下降沿和下一行TFT開啟的上升沿可能存在重疊的時間,這樣會造成上一行的TFT還沒有關(guān)閉,下一行的TFT已經(jīng)開啟,由于平板傳感器是讀出信號,所以不允許此現(xiàn)象存在,否則導(dǎo)致信號讀取有誤,因此限制了 ASG驅(qū)動電路在平板傳感器中的應(yīng)用。
技術(shù)實現(xiàn)思路
本專利技術(shù)解決的問題是提供一種ASG驅(qū)動電路、平板傳感器以及電子裝置,在減小平板傳感器的尺寸的前提下,可以提高ASG驅(qū)動電路柵驅(qū)動信號讀取的準確性。為解決上述問題,本專利技術(shù)提供一種ASG驅(qū)動電路,包括:多個第一 ASG移位寄存器和多個第二 ASG移位寄存器,所述第一 ASG移位寄存器和所述第二 ASG移位寄存器分別交替級聯(lián);僅所述第一 ASG移位寄存器連接對應(yīng)行的掃描線以為所述掃描線提供柵驅(qū)動信號,所述第二 ASG移位寄存器為與其級聯(lián)的兩個所述第一 ASG移位寄存器的柵驅(qū)動信號提供時間間隔。當前第1頁1 2 3 4 本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種ASG驅(qū)動電路,其特征在于,包括:多個第一ASG移位寄存器和多個第二ASG移位寄存器,所述第一ASG移位寄存器和所述第二ASG移位寄存器分別交替級聯(lián);僅所述第一ASG移位寄存器連接對應(yīng)行的掃描線以為所述掃描線提供柵驅(qū)動信號,所述第二ASG移位寄存器為與其級聯(lián)的兩個所述第一ASG移位寄存器的柵驅(qū)動信號提供時間間隔。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:鄭婭潔,凌嚴,
申請(專利權(quán))人:上海籮箕技術(shù)有限公司,
類型:發(fā)明
國別省市:上海;31
全部詳細技術(shù)資料下載 我是這個專利的主人
觸摸屏作為一種輸入設(shè)備具有易于使用、堅固耐用、反應(yīng)速度快、節(jié)省空間等優(yōu)點,用戶使用時可以直接通過觸摸屏幕來實現(xiàn)操作,無需借助鍵盤或鼠標,實用性很強且應(yīng)用廣泛。
觸摸屏的主要元件有處理用戶選擇的傳感器單元、感知觸摸并定位的控制器、傳送觸摸信號到操作系統(tǒng)的軟件驅(qū)動。這三類元件構(gòu)成了觸摸屏的工作機制。觸摸屏除了元件之外,還有電容式觸摸屏、電阻式觸摸屏、紅外線觸摸屏、表面聲波觸摸屏和近場成像觸摸屏這幾種技術(shù)類型。
電容式觸摸屏表面涂有透明電導(dǎo)層ITO,電壓連接到四角,微小直流電散部在屏表面,形成均勻的電場,操作時趣味性強、支持多點觸控,而且不會誤觸。因為它只有在感應(yīng)到人體的電流時,才能做出相應(yīng)的反應(yīng)。
電阻式觸摸屏是由顯示屏和電阻薄膜屏構(gòu)成的,電阻薄膜屏分為兩層,一層以玻璃為基層,表面涂有透明的導(dǎo)電層;基層外是同樣有導(dǎo)電層的塑料層。每當按壓或觸摸屏幕時,導(dǎo)電層之間就會相觸從而形成接觸信號,實現(xiàn)操作。
紅外觸摸屏是基于光線的中斷技術(shù),在顯示器周圍設(shè)置一個外框,外框的一邊有光源線或者LED,另一邊有光線探測器或光電傳感器,兩邊對應(yīng)形成交叉的紅外線網(wǎng)絡(luò)。每當用物體觸摸顯示屏?xí)r,紅外線就會被擋住,由此即可判斷出觸摸點在屏幕的位置。
聲波觸控屏是將傳感器安裝在玻璃屏幕邊緣用來發(fā)送超聲波信號。超聲波穿過屏幕反射,由傳感器接受。表面聲波信號,是把反射條紋匯聚成的表面聲波能轉(zhuǎn)變?yōu)殡娦盘枺粚?dǎo)向聲波技術(shù)則是把控制器通過屏幕電纜送來的電信號轉(zhuǎn)化為聲波能
近場成像觸摸屏是由兩個薄型玻璃層組成,在導(dǎo)電層施加交流信號,屏幕的表面就會產(chǎn)生電場,當用手指或?qū)щ姽P接觸傳感器時,電場一產(chǎn)生擾動,屏幕就能得到信號。
這幾種觸摸屏技術(shù)類型中,電阻式觸摸屏在工作時只能判斷一個控制點,超過一個就無法做出正確判斷,不適用在具有多功能的手機、平板上,僅適用于點擊、拖拽等簡單動作的判斷。紅外觸摸屏的分辨率較低、觸控方式比較受限制,易受環(huán)境干擾而且對光照環(huán)境因素比較敏感,這些技術(shù)上的局限使紅外觸摸屏在市場上受歡迎程度較低。表面聲波屏需要定期維護,屏幕表面一旦沾染上灰塵、油污或是液體時,觸摸屏表面的導(dǎo)波槽就會被阻塞,使波無法正常發(fā)射和識別,從而導(dǎo)致觸摸屏無法正常使用。
而電容式觸摸屏的耐用度很高,有防塵、防水、耐磨的特性,而且它的多點觸控功能可以將用戶的觸摸動作分解,完成對復(fù)雜動作的判斷,因此是非常理想的可用于手機、平板的觸摸屏幕。
傳感器 HID 類驅(qū)動程序
08/16/2021
m
o
請為你的體驗評分
還有其他反饋嗎?
反饋將發(fā)送到 Microsoft:按“提交”按鈕,你的反饋將用于改進 Microsoft 產(chǎn)品和服務(wù)。 隱私策略。
謝謝。
本文內(nèi)容
從 Windows 8 開始,Windows操作系統(tǒng)包括一個箱內(nèi)傳感器 HID 類驅(qū)動程序 (SensorsHIDClassDriver.dll) ,該驅(qū)動程序支持使用 HID 傳輸進行通信的十一種類型的傳感器。
下面是支持的傳感器列表:
加速計 3D
環(huán)境光
環(huán)境溫度
氣壓
Compass 3D
設(shè)備方向
Gyroscope 3D
濕度
傾斜計 3D
狀態(tài)
鄰近幫助
下圖描繪了兩個傳感器應(yīng)用程序之間來回流動的數(shù)據(jù)流,這些應(yīng)用程序通過驅(qū)動程序堆棧向下流動,最后到硬件本身。
對自定義傳感器的支持
除了前面列表中介紹的 11 個傳感器之外,類驅(qū)動程序還支持自定義類。 此類允許傳感器制造商集成在上一列表中找不到的設(shè)備:例如,一氧化碳傳感器。 自定義傳感器以具有唯一屬性的自定義設(shè)備向傳感器 API 呈現(xiàn)自身。
體系結(jié)構(gòu)和概述
如果要為兼容的傳感器創(chuàng)建固件,則需要基本了解類驅(qū)動程序支持的 I/O 模型。
傳感器將功能報告或輸入報告發(fā)送到 HID 類驅(qū)動程序。 將發(fā)送功能報告以響應(yīng)來自驅(qū)動程序的請求。 此報表包含屬性數(shù)據(jù),包括傳感器的區(qū)分更改設(shè)置、其報告間隔和報告狀態(tài)。 輸入報告根據(jù)請求發(fā)送,或異步發(fā)送以響應(yīng)事件。 此報表包含實際傳感器數(shù)據(jù)。 例如,對于加速計,報表包含沿 x 軸、y 軸和 z 軸的 G) 。
HID 類驅(qū)動程序?qū)⒐δ軋蟾姘l(fā)送到傳感器。 例如,當應(yīng)用程序請求新的更改敏感度或報告間隔時,驅(qū)動程序?qū)⑦@些值打包到功能報告中,并使用此報告將請求發(fā)送到傳感器的固件。
下圖演示了 I/O 模型:
示例報表描述符
如果傳感器支持類驅(qū)動程序原生的七個類別之一,則其固件將需要支持特定功能報告和輸入報告。 功能報告包括傳感器的當前報告狀態(tài)、其狀態(tài)、更改敏感度和報告 (以及其他可能的屬性) 。 輸入報告包含傳感器讀數(shù):開關(guān)的 True 或 False、加速計的 G-force 值或環(huán)境光傳感器的照度值。
加速計功能報告示例
下面的代碼示例顯示了加速計的 HID 功能報告。 請注意此報表的自我描述性。 它包括最小值和最大值,以及各個字段的計數(shù)和大小。
示例加速計輸入報告
下面的代碼示例顯示了同一設(shè)備的 HID 輸入報告。 同樣,請注意此報告中字段的自我描述性。
舊版文檔
博客
參與
隱私和 cookie
使用條款
商標
? Microsoft 2021
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原