在專用電路設計中,為了方便操作與控制,要對電路設計提出各種具體要求。本文即為一設計實例,其設計要求為:在旋轉開關的控制下,產生所需的PC/AT鍵碼控制信號,即當旋轉開關左轉時,每轉動一個位置,產生一個左箭頭鍵碼和斷開碼(E0、6B、E0、F0、6B)信號,控制光標左移一個位置;旋轉開關右轉時,每轉動一個位置,產生一個右箭頭鍵碼和斷開碼(E0、74、E0、F0、74)信號,控制光標右移一個位置;當按下一次旋轉開關的接通按鍵時,產生一個回車鍵碼和斷開碼(50、F0、50)信號,控制光標換行。為了實現這一設計要求,設計中采用Altera公司生產的可編程邏輯芯片EPM7128SLC,利用Maxplus2軟件完成設計任務。
1基本概念
1.1旋轉開關簡介
旋轉開關由A、B兩個通道開關、一個按壓通斷開關構成,當左右旋轉時,A、B通道分別輸出具有90度相位差的控制信號;當按下通斷開關時,輸出一個通斷控制信號。旋轉開關的構成及輸出波形如圖1所示。
1.2PC/AT鍵碼特點
PC/AT鍵碼由接通碼與斷開碼構成,當鍵按下時,產生相應的PC/AT鍵碼,當鍵釋放后,產生對應的斷開碼,不同的按鍵對應不同的鍵碼和斷開碼,如左箭頭的鍵碼為E0、6B,斷開碼E0、F0、6B;右箭頭的鍵碼為E0、74,斷開碼E0、F0、74;回車鍵的鍵碼為50,斷開碼為F0、50。每發送一個鍵碼包含11個數據位,即1個起始位、8個數據位(低位在前,高位在后)、1個奇偶校驗位、1個停止位;在鍵碼傳送的同時,還傳送一個與鍵碼同步的時鐘信號,用于同步鍵碼數據的接收;鍵碼中每個數據位的傳送發生在鍵碼時鐘的下降沿,時鐘的波特率為16Kbps左右。
1.3EPM7128簡介
EPM7128是Altera公司生產的建立在多陣列結構基礎上的高性能可編程邏輯器件,其內部具有符合IEEE1149.1標準的JTAG接口用于在線下載和修改程序,其內部具有2500個可使用門陣列、128個宏單元、8個邏輯陣列塊,EPM7128SLC84具有68個用戶可使用I/O接口。
2軟件設計
為了利用FPGA將旋轉開關信號轉換成PC/AT鍵碼信號,所設計的FPGA軟件由時鐘發生器模塊(clk)、時鐘編碼模塊(pd_clk)、旋轉開關狀態識別模塊(pdidentify)、輸出數據編碼控制模塊(pd_control)、碼器模塊(pdcoder)、輸出模塊(pdout)構成,其功能連接如圖2所示
時鐘發生器模塊的功能為:在reset信號的控制下,產生頻率為15.5kHz的時鐘信號,其振蕩源為由5個非門構成的串聯環路,該振蕩器產生的振蕩信號經分頻電路分頻,獲得所需頻率的振蕩信號clk。
時鐘編碼模塊的功能有兩個,一是產生其它功能模塊所需的基準控制信號clk/16;二是產生所需的PC/AT時鐘信號pdclk,如圖3所示。
旋轉開關狀態識別模塊的功能是正確地識別旋轉開關的狀態,并產生相應的控制信號;如果旋轉開關向左旋轉一個位置,則輸出一個Leftturn識別信號;如果旋轉開關向右旋轉一個位置,則輸出一個識別信號;如果按壓一次旋轉開關上的接通開關,則輸出一個Up/Down識別信號。
輸出編碼控制模塊和編碼器模塊的功能是在旋轉開關識別信號的控制下,產生相應的輸出編碼控制信號,控制編碼器,使編碼器產生相應的編碼信號;如果輸入一個Leftturn識別信號,則依次輸出E0、6B、E0、F0、6B五個編碼信號;如果輸入一個識別信號,則依次輸出E0、74、E0、F0、 74五個編碼信號;如果輸入一個Up/Down識別信號,則依次輸出50、F0、50三個編碼信號。
輸出模塊的功能是:根據輸入的編碼信號,確定校驗位的值,如編碼信號中有奇數個1,則校驗位為0,否則為1;根據輸入的編碼信號與生成的校驗位,產生符合PC/AT鍵碼格式要求的鍵碼信號。
3仿真結果
按照設計要求,利用Maxplus2軟件進行功能設計與仿真,在完成模塊功能設計與各功能模塊仿真之后,進行整體功能模塊連接與仿真,整體模塊連接如圖2所示,功能仿真結果如圖4所示。其中,reset信號為復位信號,A、B、ON/OFF信號為來自旋轉開關的輸出信號,所設計的FPGA輸出的PC/AT鍵碼時鐘與數據信號分別為pd_clk和pd_data。
4硬件結構
所設計的FPGA程序,通過JTAG口與旋轉開關相連接的輸入接口、用于輸出PC/AT鍵碼和時鐘的輸出端口。
5結束語
所設計的FPGA芯片可通過計算機鍵盤口進行測試,當左、右轉動旋轉開關時,控制顯示器上的光標隨之左、右移動;當按壓旋轉開關上的通斷按鍵時,控制顯示器上的光標換行。所設計的FPGA芯片已被實際工程項目應用,實現了設計目的,滿足了要求。
-
FPGA
+關注
關注
1630文章
21776瀏覽量
604677 -
接口
+關注
關注
33文章
8668瀏覽量
151528
原文標題:一種基于FPGA的接口電路設計
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論