單片機(jī)實(shí)現(xiàn)數(shù)字化B超鍵盤設(shè)計(jì)
摘要:針對(duì)目前使用的RS232接口數(shù)字化B超鍵盤存在PC主機(jī)啟動(dòng)時(shí)不能設(shè)置BIOS,提出一種PS2鍵盤的設(shè)計(jì)方法。基于W78E052D單片機(jī),采用8通道串行A/D轉(zhuǎn)換器設(shè)計(jì)了8個(gè)TGC電位器信息采集電路,電位器位置信息以鍵盤掃描碼序列形式發(fā)送,正交編碼器信號(hào)通過XC9536XL轉(zhuǎn)換為單片機(jī)可接收的中斷信號(hào),軟件接收到中斷信息后等效處理成按鍵。結(jié)果表明,在滿足開機(jī)可設(shè)置BIOS同時(shí),又可實(shí)現(xiàn)超聲特有功能,不需要專門設(shè)計(jì)驅(qū)動(dòng)程序,接口簡單,成本低。
關(guān)鍵詞:RS232;單片機(jī);PS2;鍵盤
早期B超產(chǎn)品設(shè)計(jì)大多采用單片機(jī)和可編程器件(CPLD)來控制整個(gè)系統(tǒng),鍵盤直接由主控單片機(jī)掃描處理,或?qū)iT用單片機(jī)處理鍵掃并經(jīng)RS232接口與主控單片機(jī)通訊。隨著B超數(shù)字化技術(shù)的誕生,需要大量控制數(shù)據(jù)存儲(chǔ)并可下傳給超聲模塊,主控單片機(jī)逐漸被計(jì)算機(jī)取代。在B超數(shù)字化過程中,RS232接口的鍵盤存在需要設(shè)計(jì)驅(qū)動(dòng)程序,且存在PC啟動(dòng)時(shí)無法進(jìn)入BIOS設(shè)置的問題,而且串口有逐漸被取消的趨勢。如果直接采用PS2或USB標(biāo)準(zhǔn)鍵盤,則需要另行設(shè)計(jì)超聲特有的功能模塊、該模塊與主機(jī)的接口及其驅(qū)動(dòng)程序,而且PC鍵盤的外觀會(huì)影響B(tài)超整體造型設(shè)計(jì)。
本文提出了一種用單片微機(jī)實(shí)現(xiàn)PS2超聲鍵盤的設(shè)計(jì)方法,鍵盤包括字母數(shù)字按鍵和超聲功能模塊,設(shè)計(jì)兼顧BIOS設(shè)置,直接可使用操作系統(tǒng)(Windows)提供的驅(qū)動(dòng)程序。
1 接口協(xié)議
PS2接口協(xié)議是現(xiàn)在大多數(shù)鍵盤、鼠標(biāo)與PC機(jī)通訊的標(biāo)準(zhǔn)協(xié)議。鍵盤與鼠標(biāo)在傳輸協(xié)議上,只是傳輸數(shù)據(jù)內(nèi)容不一樣。
充分理解該接口協(xié)議,可以幫助設(shè)計(jì)者自主開發(fā)專用的多功能鍵盤。
PS2接口協(xié)議是一種雙向同步串行協(xié)議,換句話說,PS2設(shè)備可以發(fā)送數(shù)據(jù)到主機(jī),而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時(shí)候抑制來自于設(shè)備的通訊——即把時(shí)鐘拉低。
從設(shè)備發(fā)送到主機(jī)的數(shù)據(jù)在時(shí)鐘信號(hào)的下降沿被讀取,從主機(jī)發(fā)送到設(shè)備的數(shù)據(jù)在上升沿被讀取。不管通訊的方向怎樣,設(shè)備總是產(chǎn)生時(shí)鐘信號(hào),如果主機(jī)要發(fā)送數(shù)據(jù)它必須首先告訴設(shè)備開始產(chǎn)生時(shí)鐘信號(hào)。最大時(shí)鐘頻率是33 kHz,而且大多數(shù)設(shè)備工作在10~20 kHz。
PS2連接器、發(fā)送或接收數(shù)據(jù)的細(xì)節(jié)、命令集在《PS/2技術(shù)參考》一文中有詳細(xì)描述。
2 掃描碼
鍵盤處理器獲得有鍵按下、釋放或按住的信息,信息最終以掃描碼的形式發(fā)給計(jì)算機(jī)。
標(biāo)準(zhǔn)計(jì)算機(jī)上的每個(gè)按鍵都有唯一的通碼和斷碼,所有這些通斷碼組成了掃描碼集。掃描碼集一共有3套,分別對(duì)應(yīng)3種鍵盤,現(xiàn)代鍵盤默認(rèn)的是第二套掃描碼集。
1)掃描碼分通碼和斷碼。根據(jù)掃描碼的不同,可將按鍵分為3種;
2)通碼為1字節(jié),斷碼為0xF0+通碼形式;
3)通碼為2字節(jié),0xE0+0xXX形式,斷碼為0xE0+0xF0+0xXX形式;
特殊按鍵,有兩個(gè),Pause和Print screen。
掃描碼個(gè)數(shù)是固定的,無法隨意增加,自行設(shè)計(jì)PS2鍵盤就是要靈活運(yùn)用第二套掃描碼集。B超鍵盤用到了數(shù)字字符鍵,這一部分跟計(jì)算機(jī)鍵盤基本相同。除數(shù)字字符鍵外的標(biāo)準(zhǔn)鍵盤按鍵和預(yù)留按鍵的掃描碼就當(dāng)作功能操作調(diào)節(jié)時(shí)的信息代碼。
3 鍵盤方案及硬件設(shè)計(jì)
3.1 鍵盤方案設(shè)計(jì)
數(shù)字化B超鍵盤由字母數(shù)字(Alphanumeric)鍵、功能鍵、功能調(diào)節(jié)編碼器、總增益調(diào)節(jié)編碼器、八段TGC(時(shí)間增益補(bǔ)償,Time Gain Compensation)調(diào)節(jié)電位器等幾部分組成,如圖1所示。
按鍵總數(shù)為88個(gè),且需今后擴(kuò)充,故采用行列結(jié)構(gòu),字母數(shù)字鍵的掃描碼參照標(biāo)準(zhǔn)鍵盤設(shè)計(jì),功能鍵則直接使用字母數(shù)字鍵除外的掃描碼,這樣B超鍵盤相當(dāng)于在標(biāo)準(zhǔn)鍵盤的基礎(chǔ)上增加編碼器處理和TGC電位器數(shù)據(jù)采集兩個(gè)模塊。
編碼器輸出具有A相、B相的方波正交信號(hào),而且二者相序取決于編碼器的正反轉(zhuǎn)方向,文獻(xiàn)中對(duì)原理及處理方法有詳細(xì)描述。不同的是,只用鑒相器,兩個(gè)編碼器正轉(zhuǎn)時(shí)產(chǎn)生的脈沖信號(hào)分別輸出至,反轉(zhuǎn)時(shí)分別輸出至。
8個(gè)TGC電位器以前采用8通道并行ADC或單通道ADC+8選1模擬開關(guān)完成模擬量到數(shù)字量的轉(zhuǎn)換,占用單片機(jī)I/O口較多,電路接口復(fù)雜,現(xiàn)采用串行8通道ADC,控制簡單,跟MAX111相比不需要轉(zhuǎn)換時(shí)間,而且集成度更高。
評(píng)論