《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的接口電路設(shè)計(jì)
一種基于FPGA的接口電路設(shè)計(jì)
摘要: 在簡(jiǎn)要介紹了PC/AT鍵碼、旋轉(zhuǎn)開關(guān)和EPM7128結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,,介紹了利用FPGA實(shí)現(xiàn)旋轉(zhuǎn)開關(guān)信號(hào)到PC/AT鍵碼轉(zhuǎn)換的設(shè)計(jì)方法,。
關(guān)鍵詞: FPGA 接口
Abstract:
Key words :

        【摘 要】 在簡(jiǎn)要介紹了PC/AT鍵碼、旋轉(zhuǎn)開關(guān)和EPM7128結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,,介紹了利用FPGA" title="FPGA">FPGA實(shí)現(xiàn)旋轉(zhuǎn)開關(guān)信號(hào)到PC/AT鍵碼轉(zhuǎn)換的設(shè)計(jì)方法。 

        關(guān)鍵詞:接口" title="接口">接口電路,F(xiàn)PGA,,鍵碼 

  在專用電路設(shè)計(jì)中,為了方便操作與控制,,要對(duì)電路設(shè)計(jì)提出各種具體要求,。本文即為一設(shè)計(jì)實(shí)例,其設(shè)計(jì)要求為:在旋轉(zhuǎn)開關(guān)的控制下,,產(chǎn)生所需的PC/AT鍵碼控制信號(hào),,即當(dāng)旋轉(zhuǎn)開關(guān)左轉(zhuǎn)時(shí),每轉(zhuǎn)動(dòng)一個(gè)位置,,產(chǎn)生一個(gè)左箭頭鍵碼和斷開碼(E0,、6B、E0,、F0,、6B)信號(hào),控制光標(biāo)左移一個(gè)位置;旋轉(zhuǎn)開關(guān)右轉(zhuǎn)時(shí),,每轉(zhuǎn)動(dòng)一個(gè)位置,,產(chǎn)生一個(gè)右箭頭鍵碼和斷開碼(E0、74,、E0,、F0、74)信號(hào),,控制光標(biāo)右移一個(gè)位置,;當(dāng)按下一次旋轉(zhuǎn)開關(guān)的接通按鍵時(shí),產(chǎn)生一個(gè)回車鍵碼和斷開碼(50,、F0,、50)信號(hào),控制光標(biāo)換行,。為了實(shí)現(xiàn)這一設(shè)計(jì)要求,,設(shè)計(jì)中采用Altera公司生產(chǎn)的可編程邏輯芯片EPM7128SLC,利用Maxplus2軟件完成設(shè)計(jì)任務(wù),。

1 基本概念

1.1 旋轉(zhuǎn)開關(guān)簡(jiǎn)介

  旋轉(zhuǎn)開關(guān)由A,、B兩個(gè)通道開關(guān)、一個(gè)按壓通斷開關(guān)構(gòu)成,,當(dāng)左右旋轉(zhuǎn)時(shí),,A、B通道分別輸出具有90度相位差的控制信號(hào),;當(dāng)按下通斷開關(guān)時(shí),,輸出一個(gè)通斷控制信號(hào)。旋轉(zhuǎn)開關(guān)的構(gòu)成及輸出波形如圖1所示,。
1.2 PC/AT鍵碼特點(diǎn)

  PC/AT鍵碼由接通碼與斷開碼構(gòu)成,,當(dāng)鍵按下時(shí),產(chǎn)生相應(yīng)的PC/AT鍵碼,,當(dāng)鍵釋放后,,產(chǎn)生對(duì)應(yīng)的斷開碼,不同的按鍵對(duì)應(yīng)不同的鍵碼和斷開碼,,如左箭頭的鍵碼為E0,、6B,斷開碼E0,、F0,、6B;右箭頭的鍵碼為E0,、74,,斷開碼E0,、F0、74,;回車鍵的鍵碼為50,斷開碼為F0,、50,。每發(fā)送一個(gè)鍵碼包含11個(gè)數(shù)據(jù)位,即1個(gè)起始位,、8個(gè)數(shù)據(jù)位(低位在前,,高位在后)、1個(gè)奇偶校驗(yàn)位,、1個(gè)停止位,;在鍵碼傳送的同時(shí),還傳送一個(gè)與鍵碼同步的時(shí)鐘信號(hào),,用于同步鍵碼數(shù)據(jù)的接收,;鍵碼中每個(gè)數(shù)據(jù)位的傳送發(fā)生在鍵碼時(shí)鐘的下降沿,時(shí)鐘的波特率為16Kbps左右,。
 


1.3 EPM7128簡(jiǎn)介

  EPM7128是Altera公司生產(chǎn)的建立在多陣列結(jié)構(gòu)基礎(chǔ)上的高性能可編程邏輯器件,,其內(nèi)部具有符合IEEE1149.1標(biāo)準(zhǔn)的JTAG接口用于在線下載和修改程序,其內(nèi)部具有2500個(gè)可使用門陣列,、128個(gè)宏單元,、8個(gè)邏輯陣列塊,EPM7128SLC84具有68個(gè)用戶可使用I/O接口,。

2 軟件設(shè)計(jì)

  為了利用FPGA將旋轉(zhuǎn)開關(guān)信號(hào)轉(zhuǎn)換成PC/AT鍵碼信號(hào),,所設(shè)計(jì)的FPGA軟件由時(shí)鐘發(fā)生器模塊(clk)、時(shí)鐘編碼模塊(pd_clk),、旋轉(zhuǎn)開關(guān)狀態(tài)識(shí)別模塊(pd identify),、輸出數(shù)據(jù)編碼控制模塊(pd_control)、碼器模塊(pd coder),、輸出模塊(pd out)構(gòu)成,,其功能連接如圖2所示
 


時(shí)鐘發(fā)生器模塊的功能為:在reset信號(hào)的控制下,產(chǎn)生頻率為15.5kHz的時(shí)鐘信號(hào),,其振蕩源為由5個(gè)非門構(gòu)成的串聯(lián)環(huán)路,,該振蕩器產(chǎn)生的振蕩信號(hào)經(jīng)分頻電路分頻,獲得所需頻率的振蕩信號(hào)clk,。

  時(shí)鐘編碼模塊的功能有兩個(gè),,一是產(chǎn)生其它功能模塊所需的基準(zhǔn)控制信號(hào)clk/16;二是產(chǎn)生所需的PC/AT時(shí)鐘信號(hào)pd clk,,如圖3所示,。

  旋轉(zhuǎn)開關(guān)狀態(tài)識(shí)別模塊的功能是正確地識(shí)別旋轉(zhuǎn)開關(guān)的狀態(tài),并產(chǎn)生相應(yīng)的控制信號(hào);如果旋轉(zhuǎn)開關(guān)向左旋轉(zhuǎn)一個(gè)位置,,則輸出一個(gè)Left turn識(shí)別信號(hào),;如果旋轉(zhuǎn)開關(guān)向右旋轉(zhuǎn)一個(gè)位置,則輸出一個(gè)識(shí)別信號(hào),;如果按壓一次旋轉(zhuǎn)開關(guān)上的接通開關(guān),,則輸出一個(gè)Up/Down識(shí)別信號(hào)。

  輸出編碼控制模塊和編碼器模塊的功能是在旋轉(zhuǎn)開關(guān)識(shí)別信號(hào)的控制下,,產(chǎn)生相應(yīng)的輸出編碼控制信號(hào),,控制編碼器,使編碼器產(chǎn)生相應(yīng)的編碼信號(hào),;如果輸入一個(gè)Left turn識(shí)別信號(hào),,則依次輸出E0、6B,、E0,、F0、6B五個(gè)編碼信號(hào),;如果輸入一個(gè)  識(shí)別信號(hào),,則依次輸出E0、74,、E0,、F0、 74五個(gè)編碼信號(hào),;如果輸入一個(gè)Up/Down識(shí)別信號(hào),,則依次輸出50、F0,、50三個(gè)編碼信號(hào),。

  輸出模塊的功能是:根據(jù)輸入的編碼信號(hào),確定校驗(yàn)位的值,,如編碼信號(hào)中有奇數(shù)個(gè)1,,則校驗(yàn)位為0,否則為1,;根據(jù)輸入的編碼信號(hào)與生成的校驗(yàn)位,,產(chǎn)生符合PC/AT鍵碼格式要求的鍵碼信號(hào)。
 


3 仿真結(jié)果

  按照設(shè)計(jì)要求,,利用Maxplus2軟件進(jìn)行功能設(shè)計(jì)與仿真,,在完成模塊功能設(shè)計(jì)與各功能模塊仿真之后,進(jìn)行整體功能模塊連接與仿真,,整體模塊連接如圖2所示,,功能仿真結(jié)果如圖4所示,。其中,reset信號(hào)為復(fù)位信號(hào),,A,、B、ON/OFF信號(hào)為來(lái)自旋轉(zhuǎn)開關(guān)的輸出信號(hào),,所設(shè)計(jì)的
FPGA輸出的PC/AT鍵碼時(shí)鐘與數(shù)據(jù)信號(hào)分別為pd_clk和pd_data,。

4 硬件結(jié)構(gòu) 

        所設(shè)計(jì)的FPGA程序,通過(guò)JTAG口與旋轉(zhuǎn)開關(guān)相連接的輸入接口,、用于輸出PC/AT鍵碼和時(shí)鐘的輸出端口。
 


5 結(jié)束語(yǔ)

  所設(shè)計(jì)的FPGA芯片可通過(guò)計(jì)算機(jī)鍵盤口進(jìn)行測(cè)試,,當(dāng)左,、右轉(zhuǎn)動(dòng)旋轉(zhuǎn)開關(guān)時(shí),控制顯示器上的光標(biāo)隨之左,、右移動(dòng),;當(dāng)按壓旋轉(zhuǎn)開關(guān)上的通斷按鍵時(shí),控制顯示器上的光標(biāo)換行,。所設(shè)計(jì)的FPGA芯片已被實(shí)際工程項(xiàng)目應(yīng)用,,實(shí)現(xiàn)了設(shè)計(jì)目的,滿足了要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。