999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于USB的虛擬IO橋接器的設計與實現

2023-10-12 09:41:24朱紹英顧云鷺
微型電腦應用 2023年9期
關鍵詞:設備設計

朱紹英, 顧云鷺

(上海民航職業技術學院,大飛機學院,上海 200232)

0 引言

新型筆記本電腦為了便攜性,一方面其主板通過緊湊的設計布局提高集成度,另一方面其屏上也集成各種新傳感器及圖標實現更方便、更智能的交互式使用。比如普通的觸摸、虛擬鍵盤、攝像頭以及自動開關屏幕電源,用戶姿態感知,更高安全性的攝像頭電子開關等。這些“智能”功能的實現都要求在屏上集成更多的傳感器、攝像頭、電子開關和微處理器,在傳統的系統設計中,主板通過各種IO總線與這些模塊直接進行通信,比如I2C、SPI、GPIO,這些IO線從主板穿過轉軸Hinge連接屏上的各種傳感器,由于轉軸的耐用性設計,越來越多的連接線對成本和穩定性帶來了極大的挑戰,根據OEM提供的信息,每減少1根線就能節省約0.25美元且提高轉軸的耐用性。本文通過設計一種通用的IO橋接器解決這個問題,滿足原有IO性能的同時,大幅減少轉軸連接線的需求,既提高轉軸的壽命,又降低系統成本。

1 虛擬IO橋接器

筆記本電腦屏上的傳感器等設備采用的接口主要包括I2C、SPI和GPIO等低速數據總線,所以設計中采用通用USB總線作為主板與屏的唯一高速數據通道,主板系統通過USB傳輸各種IO數據來控制具體傳感器等設備。

1.1 硬件架構

綜合考慮性能與成本,硬件設計采用Cypress公司CY8C5868控制器,通過可編程控制USB設備、SPI、I2C和GPIO等接口[1-2]。如圖1所示,主板上分配1個USB端口,連接4根USB總線穿過轉軸,并與屏上的CY8C5868控制器的USB設備端口連接,CY8C5868控制器帶有各種可配置的接口,用于連接各種傳感器、攝像頭和電子開關[3]。

圖1 IO橋接器硬件架構

相比傳統的硬件設計,本文設計只需要從轉軸穿過4根USB總線,節省近12根IO線,并靈活支持數量可變的IO總線設備,降低了成本且提高了穩定性。

1.2 軟件架構

在上述硬件設計基礎上,需要一步考慮主機驅動、橋接器協議控制軟件和驅動的設計,從而提供單轉接設備更大的靈活性和性能。

如圖2所示,在主機系統(比如Windows)下實現基于USB的虛擬I2C、SPI、GPIO驅動,使得上層軟件能以同樣的方式操作這類IO接口,底層與IO橋接器之間實現一套命令協議,由IO橋接器上的軟件操作實際IO控制器,與具體設備進行通信。

圖2 IO橋接器軟件架構

2 系統設計與實現

基于該軟件架構,主機端各模塊有成熟的操作系統和各類驅動,框架可以直接利用,而在橋接器這端,考慮到成本和效率。采用的內存和Flash空間較小,處理器頻率也低,所以橋接器接口傳輸協議的設計與實現是關鍵。

2.1 接口傳輸協議

由于采用的USB設備端控制器只支持USB全速模式,根據規范,其bulk傳輸模式下packet的最大長度為64字節[4],相比簡單的GPIO操作,I2C和SPI可能需要支持超過64字節的數據傳輸,所以接口協議的設計在統一的基礎上也要考慮分包的靈活性[5-6]。如表1所示,統一的數據包頭用于區分從主機到橋接器的命令與數據,或者反方向的響應數據,具體由cmd_id指定,表示各種IO操作或者管理命令。

表1 USB數據傳輸格式

USB總線協議是主從模式,所有傳輸都由主機端發起,IO橋接器端的USB設備從OUT端點接受命令,并將響應數據放到IN端點由主機端讀取,如圖3所示。底層驅動提供異步讀寫接口,設計中定義了3個緩存隊列,分別為空閑、命令、響應隊列。初始化時命令和響應隊列為空,從空閑隊列分配緩存給USB驅動去從主機端收取數據包,驅動完成后觸發USB中斷,將數據包加入命令隊列,由主線程解析命令,如果不是異步IO,比如GPIO讀寫,就直接操作響應的GPIO管腳,然后將響應設置到該數據包,加入響應隊列,觸發USB發送函數。如果是異步IO,為了不阻礙其他命令的處理,由具體IO驅動重新分配緩存,獲取響應的數據,加入響應隊列并觸發USB發送函數。當最終發送完成時,在USB中斷例程中釋放該緩存并加入空閑隊列。

圖3 USB數據傳輸協議

2.1.1 I2C接口實現

基于上面的數據傳輸協議,為了實現I2C讀寫接口,設計的I2C主要命令格式如表2所示,由header中的命令ID指定驅動I2C讀或寫,通過bus_num指定I2C控制器。具體讀寫的設備和寄存器由slave_addr和reg_addr設置,總包的長度不超過64字節。Windows或Linux主機端基于該命令接口實現一個虛擬USB轉I2C驅動,對于超過64字節的傳輸則通過主機端分包實現,橋接器端通過特殊的flag做出相應處理,底層調用I2C控制器驅動完成實際的讀寫操作,并將響應結果或數據返回給主機端。

表2 I2C命令數據包

2.1.2 SPI接口實現

相對于400 kHz的快速模式I2C總線,處理器CY8C5868上的SPI控制器最高支持14 MHz,具有更大的帶寬用于批量數據傳輸[7]。在該方案中,上層通信協議使用最大2 kb的SPI數據包,實現更上層的通信數據傳輸。由于全速模式的USB塊傳輸的最大包的限制,主機端SPI轉USB驅動將實際的協議包拆成不定個數的SPI命令數據包,如表3所示,offset用于指定拆包系列號,在橋接器端,當收到offset為0的包時,調用SPI驅動使能片選信號并將數據寫入或讀出設備,后續SPI數據包的offset依次遞增,直接啟動SPI DMA進行數據傳輸,當收到offset為0xFF時,表示這是最后一個SPI命令數據包,要求在數據傳輸完成時將片選信號置為無效,結束這次總的傳輸。

表3 SPI命令數據包

設計SPI驅動時,需要將控制器的CS片選設置為GPIO模式,默認是由SPI讀寫自動執行的,這樣就無法實現上述的大數據包的處理,從而要求在橋接器這端先緩存從主機端發來的所有命令數據包,隨后再一次性啟動SPI讀寫,這個方案會影響效率且要求更大的內存。

2.1.3 GPIO接口實現

GPIO的讀寫相對簡單,如表4所示。只要標識管腳號和高低電平。為了支持GPIO中斷輸入,需要主機驅動端輪詢USB輸入端點,因為USB設備端不能主動發起數據傳輸,當橋接器端GPIO驅動檢測到GPIO中斷信號觸發,就準備好命令數據包,設置命令的ID為中斷類型,number為響應的中斷GPIO管腳,value為中斷類型,這樣主機端讀到這個數據包時就知道響應的GPIO發送中斷,實現完整的虛擬GPIO設備驅動[8]。

表4 GPIO命令數據包

2.2 watchdog可靠性設計

由于主機端與IO橋接器只有USB總線連接,與直接的IO控制器相比,后者具有更強的出錯恢復能力,如直接復位相應的IO控制寄存器,所以IO橋接器需要從可靠性方面進行設計。實現流程以一個硬件watchdog控制器為核心,設計了多個軟watchdog的靈活性監控[9],主要實現流程如圖4所示。

圖4 Watchdog實現流程

利用硬件watchdog兩次timeout中斷的機制,在第一次timeout中斷時檢查各個軟watchdog的到期時間,當出現非預期的故障導致軟watchdog的到期時間沒更新時,就直接等待第二次timeout中斷,從而觸發最終的系統復位。由于多個軟watchdog的支持,在設計監控時,可以針對重要的和易出問題的地方選擇各自不同的timeout時間來使用軟watchdog。

2.3 低功耗管理與實現

筆記本電腦對電源續航時間敏感,IO橋接器的一個重要指標是其功耗,設計中通過使能控制器的低功耗模式使得在空閑狀態下的功耗在2 mW以下。軟件的主要流程如圖5所示,當主機端在一定的時間內沒有數據傳輸請求且USB總線空閑時間超過300 ms,橋接器的USB設備控制器觸發suspend中斷,然后軟件完成必要的控制處理,將定時器、watchdog等暫停,然后進入低功耗模式。一旦主機有新的傳輸請求或者其他事件中斷發生,就會自動喚醒控制器,軟件就做恢復響應處理。

圖5 系統低功耗管理

3 性能測試

下面分別從IO性能和可靠性兩個方面對IO橋接器進行測試和分析。

3.1 IO性能測試

測試中在主機端設計測試用例,分別針對不同長度的IO讀寫請求重復1000次,統計時間并得到平均速度,如表5所示,結果表明快速模式下的I2C接口和14 MHz頻率下的SPI接口的讀寫性能隨著數據包的長度而增加,USB傳輸和IO橋接器的處理帶來了一定的處理開銷,符合方案中各設備的數據傳輸要求。更高性能就需要考慮選用支持高速USB總線和性能更高的控制器。

表5 IO性能

3.2 可靠性測試

根據上述可靠性設計測試IO橋接器在各種錯誤下的恢復情況,衡量系統的穩定性和可靠性。實際測試用例設計中,針對各種IO操作模擬產生一些錯誤場景,如使用一些控制開關讓響應的讀寫操作掛死[10]。主要包括:

① USB傳輸故障導致無法正常收發數據包;

② 系統性故障導致main task無法正常執行;

③ I2C控制器讀寫故障;

④ SPI控制器讀寫故障;

⑤ GPIO控制器讀寫故障。

測試結果顯示,當錯誤發生后,相應的軟watchdog能正確偵測并做出正確處理,主機端驅動能從錯誤中恢復。

4 總結

本文首先分析了IO橋接器的硬件和軟件架構,然后具體闡述了軟件的系統性設計,包括USB傳輸協議的設計與實現,I2C、SPI和GPIO接口的實現流程,并基于一個硬件watchdog設計實現了多個靈活的軟件watchdog,用于提高各個模塊的容錯能力,提高整個系統的可靠性,且滿足低于2 mW的功耗設計。最后,列出了系統性能測試流程與結果,分析了可靠性測試原理,表明本文設計在各種錯誤場景均能正常處理。

猜你喜歡
設備設計
諧響應分析在設備減振中的應用
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于VB6.0+Access2010開發的設備管理信息系統
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
主站蜘蛛池模板: 黑人巨大精品欧美一区二区区| 婷婷综合亚洲| 久热这里只有精品6| 欧美一级专区免费大片| 青青草原国产精品啪啪视频| a级毛片毛片免费观看久潮| 免费不卡视频| 一区二区日韩国产精久久| 亚洲精品自拍区在线观看| 1024国产在线| 亚洲国产清纯| 91精品视频网站| 国产精品毛片一区视频播| a级毛片免费看| 国产理论精品| 国产精品第| 人妻无码中文字幕第一区| 国产一区二区免费播放| 精品视频在线观看你懂的一区| 国产乱人伦精品一区二区| 在线观看国产精品一区| 欧美一区福利| 欧美精品综合视频一区二区| 国产精品污视频| a毛片在线| 亚洲an第二区国产精品| 精品国产99久久| 亚洲第一视频网| 色婷婷成人| 亚洲无码37.| 亚洲va欧美ⅴa国产va影院| 国产亚洲欧美另类一区二区| 91丝袜乱伦| 青青久久91| 欧美自拍另类欧美综合图区| 香蕉视频在线观看www| 国内丰满少妇猛烈精品播| 婷婷六月综合| 动漫精品啪啪一区二区三区| 亚洲一区二区黄色| 日本成人在线不卡视频| 在线视频一区二区三区不卡| 亚洲精品国偷自产在线91正片| 四虎影视库国产精品一区| 亚洲精品自产拍在线观看APP| 午夜a视频| 五月天丁香婷婷综合久久| 国产视频欧美| 国产一在线观看| 免费A级毛片无码无遮挡| 国产成人综合亚洲欧美在| 在线播放精品一区二区啪视频| 日韩精品毛片人妻AV不卡| 一本色道久久88亚洲综合| 99九九成人免费视频精品| 911亚洲精品| 国产成人久久777777| 在线中文字幕日韩| 国产精品55夜色66夜色| 国产精品hd在线播放| 热re99久久精品国99热| 凹凸精品免费精品视频| 亚洲人成网站色7799在线播放| 国产综合精品日本亚洲777| 欧美精品成人一区二区在线观看| 亚洲人成色在线观看| 网友自拍视频精品区| 亚洲日韩每日更新| 在线看免费无码av天堂的| 日本一区中文字幕最新在线| 国产99精品久久| 456亚洲人成高清在线| 成人免费网站久久久| 国产男女XX00免费观看| 国产性爱网站| 亚洲精品第1页| 成人一级免费视频| 熟女日韩精品2区| 亚洲成a人在线播放www| 国产精品对白刺激| 无码AV高清毛片中国一级毛片| 国产精鲁鲁网在线视频|