亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        艦用PS/2鍵鼠切換模塊設(shè)計與實現(xiàn)中FPGA和ARM的應(yīng)用

        2021-11-03 06:41:56海軍裝備部駐連云港地區(qū)軍事代表室張志華
        電子世界 2021年19期
        關(guān)鍵詞:鍵鼠主鍵枚舉

        海軍裝備部駐連云港地區(qū)軍事代表室 張志華

        江蘇自動化研究所 蔡欣榮 劉青春

        基于FPGA和ARM的艦用PS/2接口協(xié)議鍵盤、鼠標(biāo)切換模塊,采用FPGA作為PS/2接口協(xié)議編解碼及PS主機和PS/2設(shè)備數(shù)據(jù)傳輸芯片。ARM作為主控芯片,接收按鍵或者遠(yuǎn)程軟件切換操作命令,控制FPGA切換相應(yīng)的主機和設(shè)備連接。模塊實現(xiàn)1至2路PS/2鍵鼠,1至4路主機的任意切換。通過測試和應(yīng)用,模塊能夠?qū)崿F(xiàn)2路PS/2鍵盤、4路PS/2主機的任意切換。

        艦用顯控臺環(huán)境下,很多鍵盤、軌跡球(鼠標(biāo)的一種)模塊仍使用PS/2接口協(xié)議,為了滿足一套鍵盤、軌跡球能夠操控顯控臺的所有計算機,一般在臺體上安裝鍵盤、鼠標(biāo)及顯示器切換模塊,俗稱基于PS/2協(xié)議的KVM切換器。傳統(tǒng)的PS/2協(xié)議KVM切換器有多種實現(xiàn)方案,有采用機械開關(guān)或電子開關(guān)實現(xiàn)物理通道切換或連接,有采用FPGA或?qū)S们袚Q芯片。采用電子開關(guān)芯片或機械開關(guān),設(shè)備加電后,通過開關(guān)連接實現(xiàn)計算機和鍵盤、鼠標(biāo)通信。如果要切換到另外一路主機,只需要控制電子切換開關(guān)或者撥動機械開關(guān),顯控臺上電時,首先要確定加電的計算機和PS/2設(shè)備邏輯或物理通道要連接上,如果某路計算機上電時,沒有識別到PS/2鍵盤鼠標(biāo)設(shè)備時,那么系統(tǒng)在運行過程中,即使再接入PS/2鍵盤鼠標(biāo)也不能被識別。同時機械開關(guān)或電子開關(guān)切換過程存在抖動,造成信號干擾或誤觸發(fā)。另外一個問題是傳統(tǒng)的PS/2切換模塊只能接入1路PS/2鍵盤鼠標(biāo),如果用戶需要擴展一路備用商用調(diào)試鍵鼠,傳統(tǒng)的PS/2協(xié)議切換器也不支持。

        艦用環(huán)境下,須要設(shè)計一種艦用PS/2協(xié)議鍵鼠切換矩陣,支持兩套鍵鼠設(shè)備的接入,即支持主鍵鼠、備用鍵鼠,備用鍵鼠主要是調(diào)試或診斷時接入使用;同時支持最少4路計算機,主鍵鼠、備用鍵鼠通過按鍵或者軟件協(xié)議可以任意切換至某路計算機,當(dāng)周圍存在電磁干擾時,電路能夠濾除干擾信號,提取有效信號。設(shè)備加電后,模塊能夠自動實現(xiàn)下行PS/2鍵盤鼠標(biāo)的識別、上行PS/2主機控制器命令解釋,PS/2鍵鼠設(shè)備和主機之間的通路連接。

        1 PS/2協(xié)議鍵鼠切換模塊整體結(jié)構(gòu)

        艦用顯控臺一般有時安裝多至4路計算機主板,顯控臺面安裝一套PS/2鍵盤、軌跡球模塊。軌跡球是一種特殊的鼠標(biāo)設(shè)備,依靠球體轉(zhuǎn)動實現(xiàn)操作系統(tǒng)桌面定位的裝置,接口通訊協(xié)議同鼠標(biāo)。其使用靈活性沒有鼠標(biāo)高,但是適用于艦船、戰(zhàn)車等顛簸環(huán)境下。為提高系統(tǒng)的可靠性和靈活性,支持主鍵鼠、備用鍵鼠兩套PS/2接口,主、備鍵鼠均為PS2接口,初始時主鍵鼠、備用鍵鼠都呈“斷開”狀態(tài),待切換后與設(shè)備連接,任一設(shè)備同一時間可以使用一套鍵鼠或者兩套同時使用(主鍵鼠或者備用鍵鼠),由外部按鍵或者軟件通信進行切換。主鍵鼠通常就是臺面安裝的PS/2鍵盤、軌跡球。臺面留有備用鍵鼠PS/2接口,便于接入通用PS/2接口鍵盤或者鼠標(biāo)。圖1是本文實現(xiàn)的PS/2接口協(xié)議鍵盤、鼠標(biāo)切換模塊組成框圖。

        圖1 基FPGA和ARM的PS/2接口協(xié)議鍵盤、鼠標(biāo)切換模塊結(jié)構(gòu)框圖

        2 硬件實現(xiàn)

        硬件部分主要由四大部分組成:(1)PS/2接口信號轉(zhuǎn)換電路;(2)FPGA邏輯電路;(3)ARM主控、按鍵控制電路;(4)外圍輔助電路,包含電源電路、信號指示電路、JTAG下載電路等。下面敘述了前三部分電路。

        2.1 PS/2接口信號轉(zhuǎn)換電路設(shè)計

        PS/2鍵鼠切換電路包含4路主機和2路設(shè)備接口。每路主機或設(shè)備各包含1路PS/2協(xié)議鍵盤、PS/2協(xié)議鼠標(biāo)接口。PS/2鍵盤鼠標(biāo)接口是開漏(集)輸出,需要上拉1kΩ~10kΩ電阻,輸入輸出接口首先要經(jīng)過ESD防護芯片,保護板卡后端電路不被靜電損壞。IDTQS3861QG是雙向電壓轉(zhuǎn)換芯片,該芯片的VCC是通過5V串接一個二極管供電的,二極管1N4148正常壓降在0.7V左右,VCC在4.3V左右,當(dāng)兩邊數(shù)據(jù)管腳的電壓小于VCC-1.0V(3.3Vdc)時,左右電壓一致,當(dāng)任何一邊的電壓高于VCC-1.0V時,對應(yīng)輸出邊的電壓維持在VCC-1.0V,當(dāng)然每邊的管腳最高輸入電壓都不能超過7.0V。2路主機PS/2接口電路見圖2,另主鍵鼠、備用鍵鼠設(shè)備端PS/2接口電路相似。經(jīng)過電壓轉(zhuǎn)換芯片的PS/2接口信號直接進入FPGA芯片,PS/2接口信號是雙向信號,主機具有高優(yōu)先級,可以任意時刻發(fā)送數(shù)據(jù)給設(shè)備,一般顯控臺上電后主機發(fā)送數(shù)據(jù)給設(shè)備,完成設(shè)備的初始化。初始化完成后,大部分情況下都是設(shè)備上傳鍵鼠數(shù)據(jù)給主機,少部分情況主機發(fā)送點燈數(shù)據(jù)給鍵盤。

        圖2 2路主機PS/2接口電路

        2.2 FPGA邏輯電路

        如圖3所示,F(xiàn)PGA芯片選用Altera公司的EP4CE15E22I7芯片,該芯片是144個管腳EQFP表貼芯片,最大有81個IO管腳供用戶使用。該芯片含有15408個LE邏輯單元,每個LE邏輯單元包含一個四口輸入LUT查找表和一個可編程的寄存器。選用這個芯片的依據(jù)是邏輯資源的用量,考慮到四路主機,每路主機包含2個PS/2接口,每路接口要識別相應(yīng)的上行主機接口命令并響應(yīng)。兩套鍵鼠,每套鍵鼠包含2個PS/2接口,共4個PS/2接口,每路PS/2接口需要和對應(yīng)的下行設(shè)備通訊,完成相應(yīng)接口鍵鼠的識別和數(shù)據(jù)收發(fā)。FPGA芯片內(nèi)部還有相應(yīng)的FIFO電路,實行對應(yīng)數(shù)據(jù)的存儲轉(zhuǎn)發(fā),還有鍵盤Lock燈的存儲和轉(zhuǎn)發(fā)邏輯。實際使用中,經(jīng)過編譯只用了70%左右資源,為后期功能擴展提供了很大的便利性。FPGA外接一路Uart接口,可以根據(jù)ARM的指令,實時監(jiān)控PS/2主機端某路或設(shè)備端某路的收發(fā)數(shù)據(jù)。

        圖3 FPGA邏輯電路框圖

        2.3 ARM主控、按鍵控制電路

        如圖4所示,ARM主控芯片選用ST公司的STM32F103VCT6芯片,這是Cortex-M3架構(gòu)芯片,是目前最通用的ARM處理器之一,片內(nèi)集成大量的通用外設(shè),不需要用戶再擴展外部芯片,國內(nèi)多個廠家提供了大量的參考程序,主要有庫函數(shù)版本、寄存器版本等。

        圖4 ARM主控、按鍵及指示電路

        按鍵部分一端接信號地,另一端接入ARM芯片,ARM芯片內(nèi)部上拉信號使能,并打開相應(yīng)的中斷線,當(dāng)按鍵接觸后,ARM輸入端采集到低電平信號中斷響應(yīng),并根據(jù)FPGA和ARM之間的邏輯判斷,點亮相應(yīng)的指示燈。ARM外接一個Uart端口,與外部設(shè)備擴展通信使用。

        四路主鍵鼠按鍵,按下某路按鍵后,如果該路主機、該路設(shè)備均可滿足切換要求,原先主鍵鼠和主機的連接關(guān)系切斷,熄滅該路指示燈。切換至新的主鍵鼠和主機連接,同時點亮按鍵指示燈。滿足切換要求指的是要切換到的主機上電且已完成初始化,同時主鍵鼠或備用鍵鼠也完成初始化。如1、2、4路主機已上電并系統(tǒng)啟動完成,主鍵鼠接入,備用鍵鼠未接入。此時按第3路主鍵鼠按鍵,第3路主鍵鼠按鍵指示燈點亮,同時主鍵鼠可以操控第3路主機,如果此時按下第4路的備用鍵鼠按鍵,沒有任何相應(yīng),因為備用鍵鼠未接入,一般要求主鍵鼠或備用鍵鼠接入時鍵盤、軌跡球都要接入。

        3 軟件設(shè)計

        3.1 PS/2接口協(xié)議分析

        PS/2鼠標(biāo)和鍵盤是一種雙向同步串行協(xié)議,鍵盤/鼠標(biāo)可以發(fā)送數(shù)據(jù)到主機,而主機也可以發(fā)送數(shù)據(jù)到設(shè)備。但主機總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤/鼠標(biāo)的通訊,主機只要把時鐘拉低即可。由于PS/2接口協(xié)議并不是一個十分標(biāo)準(zhǔn)的協(xié)議,這里我們按照一般的設(shè)備設(shè)置,將時鐘頻率設(shè)置為12.5MHz。這里需要主機,不管通信方向是從主機到設(shè)備還是從設(shè)備到主機,時鐘都是由設(shè)備產(chǎn)生。

        (1)PS/2設(shè)備到主機通訊協(xié)議分析

        從鍵盤/鼠標(biāo)發(fā)送到主機的數(shù)據(jù)在時鐘信號的下降沿,即當(dāng)時鐘從高變到低的時候被主機讀取。PS/2設(shè)備到主機通訊過程如圖5所示。

        圖5 PS/2設(shè)備到主機通訊過程

        PS/2設(shè)備要向主機發(fā)送數(shù)據(jù)時,首先檢測時鐘、數(shù)據(jù)線是否都是高電平,以此來判斷主機是否需要對設(shè)備進行通信。如果時鐘數(shù)據(jù)線都為高,PS/2設(shè)備先將數(shù)據(jù)線拉低,之后產(chǎn)生時鐘下降沿以產(chǎn)生一個Start信號,通知主機數(shù)據(jù)發(fā)送開始。主機在每個時鐘的下降沿讀入數(shù)據(jù),并在讀取8 bit的data后校驗設(shè)備發(fā)來的奇偶校驗位,最后產(chǎn)生一個Stop停止信號完成本次設(shè)備到主機的通信。PS/2接口協(xié)議鍵盤輸入y按鍵,y按鍵第二套鍵盤掃描碼按下通碼是0x35,斷碼前面加一個0xf0。主鼠標(biāo)在上電后,F(xiàn)PGA首先要初始化鼠標(biāo),之后鼠標(biāo)才能正常發(fā)送數(shù)據(jù)給FPGA。

        (2)PS/2主機到設(shè)備通訊協(xié)議分析

        從主機發(fā)送到設(shè)備的數(shù)據(jù)在時鐘信號的上升沿,即當(dāng)時鐘從低變到高的時候被設(shè)備讀取。PS /2主機到設(shè)備通訊過程如圖6所示。圖6是PS/2主機到設(shè)備通訊過程主機要向PS/2設(shè)備發(fā)送數(shù)據(jù)時,首先將時鐘信號拉低100us以上,然后拉低數(shù)據(jù)線產(chǎn)生一個Start起始信號。當(dāng)設(shè)備檢測到這個狀態(tài)后,將開始產(chǎn)生時鐘信號,并且時鐘脈沖標(biāo)記下輸入八個數(shù)據(jù)位、一個奇偶校驗位和一個停止位。之后拉低數(shù)據(jù)線產(chǎn)生一個Ack回應(yīng)位,以應(yīng)答主機,表明數(shù)據(jù)已收到。最后拉高數(shù)據(jù)線完成本次主機到設(shè)備的通信。PS/2主機到設(shè)備通訊各時間參數(shù)可以參考PS/2接口協(xié)議。

        圖6 PS/2主機到設(shè)備通訊過程

        3.2 PS/2設(shè)備側(cè)初始化流程

        PS/2設(shè)備鍵盤、鼠標(biāo)必須初始化才能正確工作,PS/2鍵盤有默認(rèn)工作狀態(tài):默認(rèn)的機打延時、默認(rèn)的機打速率、默認(rèn)的Lock指示燈點亮狀態(tài)。一般默認(rèn)的機打延時和機打速率都需要重新設(shè)置。如果不設(shè)置,PS/2鍵盤可以按照默認(rèn)參數(shù)上傳按鍵數(shù)據(jù)并和主機交互點亮Lock指示燈。PS/2鼠標(biāo)必須初始化相關(guān)的參數(shù),才能正確工作,不然不會發(fā)送數(shù)據(jù)給主機。

        (1)PS/2鍵盤設(shè)備初始化流程

        這是常用的PS/2鍵盤上電后初始化時間序列,主要初始化鍵盤的機打速率、機打延時、Lock燈的點滅設(shè)置??梢栽O(shè)置點亮也可以設(shè)置點滅Num Lock燈,設(shè)置完成后,鍵盤即可按照第二套鍵盤掃描碼發(fā)送和接收數(shù)據(jù)。特別注意引導(dǎo)鍵盤進入reset模式后,需要至少等待500ms,才能發(fā)送下一條設(shè)置語句,不然很容易收到鍵盤的錯誤反饋碼。

        (2)PS/2鼠標(biāo)設(shè)備初始化流程

        PS/2鼠標(biāo)和PS/2鍵盤在初始化方面有區(qū)別,PS/2鍵盤不初始化也能發(fā)送按鍵值給上位機,但是PS/2鼠標(biāo)不行,必須經(jīng)過初始化才能將鼠標(biāo)位移數(shù)據(jù)、左中右按鍵狀態(tài)發(fā)送給主機。PS/2鼠標(biāo)的初始化時間序列,按照此時間序列進行,才能正確識別帶有滾輪的鼠標(biāo)。

        3.3 PS/2主機側(cè)初始化流程

        PS/2主機初始化流程包含PS/2鍵盤接口、PS/2鼠標(biāo)接口的初始化。FPGA被動分別接收主機發(fā)送過來的指令并響應(yīng),將響應(yīng)數(shù)據(jù)發(fā)送給主機。

        (1)PS/2鍵盤主機接口初始化流程

        艦用計算機主板上電后,F(xiàn)PGA邏輯芯片狀態(tài)機按照上位機發(fā)送的不同指令分別響應(yīng)。

        (2)PS/2鼠標(biāo)主機接口初始化流程

        艦用計算機主板上電后PS/2鼠標(biāo)接口的發(fā)送序列,F(xiàn)PGA邏輯芯片狀態(tài)機按照上位機發(fā)送的不同指令分別響應(yīng)。一般情況下,上電POST自檢密碼或者BIOS密碼敲入之前沒有任何命令交互。

        3.4 模塊工作流程

        基于FPGA的艦用PS/2鍵盤鼠標(biāo)切換模塊上電后,ARM程序為切換指令主動發(fā)起者,實施相應(yīng)的切換操作并點亮指示燈。只有完成上電并且枚舉識別的主機、完成枚舉識別的設(shè)備才可以切換。如果某路主機沒有上電或者枚舉失敗,發(fā)送切換指令,不能成功切換至該路主機。如果鍵鼠設(shè)備某路不能識別,該設(shè)備也不能切換,不能切換成功的指令仍維持上次的狀態(tài)結(jié)果,若成功切換后點亮該路指示燈。設(shè)備上電前,要求鍵盤鼠標(biāo)都要連接上。ARM切換功能子函數(shù)見下述流程圖7(a)。

        FPGA程序功能:(1)識別主機接口鍵盤、鼠標(biāo)的指令,完成主機的枚舉識別;(2)識別設(shè)備接口鍵盤、鼠標(biāo)的指令,完成兩路鍵盤、鼠標(biāo)的枚舉識別;(3)響應(yīng)ARM切換操作指令,完成切換數(shù)據(jù)流的連接;(4)響應(yīng)ARM切換狀態(tài)查詢,能夠?qū)嵤┍O(jiān)控切換過程中的各狀態(tài)量。FPGA主機鍵盤、鼠標(biāo)各子程序見下述流程圖7(b)、(c)。FPGA程序持續(xù)檢測主機是否上電,如果主機上電,F(xiàn)PGA初始化模塊開始工作,分別模擬設(shè)備與主機側(cè)進行初始化、模擬主機與設(shè)備側(cè)進行初始化。FPGA主機鍵盤、鼠標(biāo)功能函數(shù)有區(qū)別,鍵盤數(shù)據(jù)有上行、下行,枚舉完成后下行通訊主要是主機發(fā)送點燈碼數(shù)據(jù)給設(shè)備。而主機鼠標(biāo)接口完成枚舉后,一般不再發(fā)送數(shù)據(jù)給設(shè)備,只有設(shè)備發(fā)送位移和按鍵碼數(shù)據(jù)給主機,如果有特殊指令如初始化指令,由FPGA的IP核應(yīng)答主機。PS/2設(shè)備端鍵盤接口功能主要完成鍵盤設(shè)備的枚舉,響應(yīng)鍵盤的點燈指令,發(fā)送鍵盤數(shù)據(jù)至連接的主機鍵盤接收FIFO隊列中。PS/2設(shè)備端鼠標(biāo)接口功能主要完成鼠標(biāo)設(shè)備的枚舉,完成枚舉后,使能鼠標(biāo)設(shè)備,即時將鼠標(biāo)位移數(shù)據(jù)、左中右按鍵數(shù)據(jù)發(fā)送至連接的主機鼠標(biāo)接收FIFO隊列中。因功能不復(fù)雜,這里不再給出流程圖。

        圖7 基于FPGA和ARM的艦用PS/2鍵鼠切換模塊工作流程圖

        4 模塊測試及應(yīng)用

        基于FPGA和ARM的艦用PS/2鍵鼠切換模塊電路,實際使用時主鍵鼠、備用鍵鼠至少連接1路,4路主機至少連接1路。測試時,2路設(shè)備端(各包含鍵盤、鼠標(biāo))全部連接,4路主機端(各包含鍵盤、鼠標(biāo)接口)全部連接。設(shè)備端鍵盤、鼠標(biāo)要求都必須連接。4路主機分別為服務(wù)器1、服務(wù)器2、外接設(shè)備1、外界設(shè)備2。

        模塊的測試項包括:(1)主機開機后能否切換;(2)主機不加電能否切換;(3)設(shè)備未連接能否切換;(4)鍵盤切換后指示燈狀態(tài)是否隨即更新;(5)鼠標(biāo)、鍵盤按鍵動作過程時切換是否出現(xiàn)故障等現(xiàn)象。

        計算機通過串口和模塊控制板連接,點擊應(yīng)用軟件的按鈕,可以將主鍵鼠或備用鍵鼠切換至任意某一主機,需要注意的是某路主機沒有開機或枚舉失敗,主鍵鼠或備用鍵鼠不能切換至該路主機。某路設(shè)備沒有接入時,設(shè)備也不能參與切換。切換不成功時,維持上一個狀態(tài)。系統(tǒng)應(yīng)用時,需要注意的是切換過程中盡量避免按鍵、鼠標(biāo)有動作,容易丟失數(shù)據(jù)。

        總結(jié):本文實現(xiàn)了基于FPGA和ARM的艦用PS/2鍵鼠切換模塊,通過按鍵或者遠(yuǎn)程軟件操作,實現(xiàn)2路PS/2鍵鼠,4路主機的任意切換。模塊支持2路或1路鍵鼠,1路至4路主機的任意裁剪使用。經(jīng)過一段時間的艦用環(huán)境下運行和操作,該模塊運行可靠穩(wěn)定。基于PS/2接口協(xié)議的鍵鼠切換模塊設(shè)計與實現(xiàn)推進了艦用裝備PS/2接口協(xié)議操控部件的改造、加裝及共享。

        猜你喜歡
        鍵鼠主鍵枚舉
        基于Go 實現(xiàn)的分布式主鍵系統(tǒng)研究
        基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
        速讀·上旬(2022年2期)2022-04-10 16:42:14
        一種高效的概率圖上Top-K極大團枚舉算法
        基于外鍵的E-R圖繪制方法研究
        基于太陽影子定位枚舉法模型的研究
        無線鍵鼠套裝 熱銷排行榜
        消費電子(2015年3期)2015-03-30 16:01:42
        數(shù)據(jù)庫主鍵的設(shè)計方法探討
        USB開發(fā)中易混淆的概念剖析
        淺談數(shù)據(jù)庫主鍵設(shè)計的原則
        暢玩一夏,超值游戲鍵鼠套裝推薦
        97精品人妻一区二区三区在线| 一区五码在线| av网站影片在线观看| 色综合久久加勒比高清88| 日美韩精品一区二区三区 | 日韩中文字幕网站| 国产午夜福利小视频在线观看| 国产一区二区三区视频在线观看| 宅男66lu国产在线观看| 亚洲国产高清在线观看视频| AV中文码一区二区三区| 谷原希美中文字幕在线| 欧美国产综合欧美视频| 无码丰满少妇2在线观看| 国产精品亚洲综合色区丝瓜| 黄色国产一区二区99| 色婷婷综合久久久久中文字幕| 97成人精品| 白色橄榄树在线阅读免费| 人妻少妇中文字幕在线| 国产精品沙发午睡系列990531| 免费一区二区三区视频狠狠| 伊人五月亚洲综合在线| 精品伊人久久大线蕉色首页| 人妻av一区二区三区精品| 蜜桃在线观看免费高清完整版| 射进去av一区二区三区| 久爱www人成免费网站| 99亚洲精品久久久99| 亚洲国产综合精品久久av| 中文字幕乱码熟女人妻在线| 亚洲人成国产精品无码果冻| 富婆如狼似虎找黑人老外| 亚洲国产精品一区二区第一 | 4444亚洲人成无码网在线观看| 天堂网av在线| 一区二区国产av网站| 久久综合九色综合欧美狠狠| 免费一级黄色大片久久久| 情av一区二区三区在线观看| 免费高清av一区二区三区|