欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于fpga的擴展多串口裝置及其數(shù)據收發(fā)方法

文檔序號:6372469閱讀:258來源:國知局
專利名稱:一種基于fpga的擴展多串口裝置及其數(shù)據收發(fā)方法
技術領域
本發(fā)明涉及現(xiàn)場可編程門陣列FPGA技術領域,尤其涉及一種基于FPGA的多串ロ控制器設計,可用于DSP単一中斷源的多串ロ擴展。
背景技術
隨著電子技術的飛躍發(fā)展,通用數(shù)字信號處理器(DSP)的性能價格比不斷提高,數(shù)據處理能力不斷加強,其應用領域日益增多,在數(shù)據實時采集及高速數(shù)字信號處理中應用尤其廣泛。當DSP獨立構成ー個處理單元時,往往需要和外設進行數(shù)據交換,其通信能力至關重要,常用的通信方法就有串ロ通信。目前比較通用的實現(xiàn)方案是采用通用異步通信芯片實現(xiàn)串ロ擴展,采用FPGA實 現(xiàn)DSP與異步串ロ擴展芯片之間的邏輯控制,完全基于DSP接收和發(fā)送數(shù)據。該方案的缺點是當數(shù)據量較大、多串ロ同時工作時占用DSP的時間較長,影響DSP的工作效率,且會造成數(shù)據丟失。目前多串ロ擴展常用的技術是使用專用的串ロ擴展芯片,采用FPGA實現(xiàn)DSP與異步串ロ擴展芯片之間的邏輯控制,完全基于DSP接收和發(fā)送數(shù)據,例如GM8123、GM8125等,其功能是將ー個全雙エ串ロ擴展成多個串ロ,通過外部引腳控制串ロ擴展模式,并且波特率統(tǒng)ー調節(jié),最高波特率有一定限制,其特點是外部控制少,編程使用簡單。其存在的缺點也比較顯著,擴展出的串ロ個數(shù)有限且固定,擴展后的串口數(shù)據傳輸速度會降低,各個串ロ波特率無法單獨設置,使用擴展的接ロ為單ー的串ロ,無法對特定接ロ進行擴展。

發(fā)明內容
本發(fā)明ー種基于FPGA的多串ロ控制器設計解決了 DSP的單一中斷源的多串ロ擴展的問題,擴展的各個串ロ全雙エ收發(fā)互不影響,每個串ロ完全獨立,波特率可単獨設置且速度不會降低,所需的串ロ個數(shù)可以自由定制串ロ接收不存在中斷優(yōu)先級的問題。本發(fā)明提供了一種基于FPGA的擴展多串口裝置,采用現(xiàn)場可編程門陣列FPGA通過數(shù)據總線連接數(shù)字處理器DSP實現(xiàn)串ロ的擴展,所述擴展多串口裝置包括控制器,至少ー個串ロ模塊,以及連接所述控制器與串ロ模塊的緩存模塊。進ー步地,所述串ロ模塊包括波特率發(fā)生器子模塊,串ロ接收子模塊和串ロ發(fā)送子模塊。所述波特率發(fā)生器子模塊是分配器,用于將輸入時鐘分頻成所述串ロ模塊需要的時鐘。單個串ロ均設計有波特率發(fā)生器就從硬件上保證了擴展的每個串ロ波特率可調可設。每ー個所述串ロ模塊與控制器之間都具有単獨的緩存模塊,所述緩存模塊為FIFO緩存,所述串ロ模塊與FIFO緩存之間通過異步方式連接。FIFO深度可自由設置,串ロ與FIFO連接采用異步方式,該設計從硬件上保證了擴展的串ロ均為全雙エ串ロ,各個串ロ互不干擾,單個串ロ收發(fā)也互不影響。所述擴展多串口裝置多個串ロ模塊共用一個控制器,提供ー個中斷接ロ,用干與DSP之間傳遞中斷信號,采用單一的中斷源實現(xiàn)多串ロ擴展。本發(fā)明還提供了一種如權利要求I所述的基于FPGA的擴展多串口裝置數(shù)據收發(fā)方法,用于采用FPGA通過數(shù)據總線連接DSP實現(xiàn)多串口數(shù)據的收發(fā),其特征在于,所述包括步驟串ロ模塊接收外部串行數(shù)據的輸入,將串行數(shù)據轉換為并行數(shù)據寫入緩存模塊;當緩存模塊半滿時,通知控制器產生半滿標志位標識所述緩存模塊為半滿狀態(tài);DSP查詢緩存模塊的半滿標志位,通過數(shù)據總線從具有半滿標志位的緩存模塊讀取數(shù)據,直到該緩存模塊為空;DSP通過數(shù)據總線將數(shù)據寫入緩存模塊,緩存模塊立即將并行數(shù)據讀出到串ロ模塊,串ロ模塊將并行數(shù)據轉換為串行數(shù)據發(fā)送。 進ー步地,所述數(shù)據收發(fā)方法還包括步驟所述串ロ模塊中設置的波特率發(fā)生器將輸入時鐘分頻成所述串ロ模塊需要的時鐘。進ー步地,所述數(shù)據收發(fā)方法還包括步驟,當緩存模塊半滿時,通知控制器產生中斷信號,并將所述中斷信號上傳到DSP以觸發(fā)DSP從具有半滿標志位的緩存模塊讀取數(shù)據。本發(fā)明的有益效果是,擴展的各個串ロ全雙エ收發(fā)互不影響,每個串ロ完全獨立,波特率可単獨設置且速度不會降低,需要的串ロ個數(shù)可以自行定制,串ロ接收數(shù)據向DSP請求中斷后可由DSP選擇數(shù)據讀取方式,F(xiàn)PGA上串ロ接收不存在優(yōu)先級問題,DSP上只需ー個中斷源進行多串ロ擴展。


圖I為本發(fā)明擴展多串口裝置結構示意圖;圖2為本發(fā)明實施例示意圖。
具體實施例方式下面結合附圖和實施例對本發(fā)明技術方案做進ー步詳細說明,以下實施例不構成對本發(fā)明的限定。本發(fā)明的實施例使用的是Xilinx的Spartan3系列的XC3S400FPGA與ー塊TMS320C6713DSP相連,實現(xiàn)單一中斷源的多串ロ擴展。如圖I所示,本發(fā)明基于FPGA的擴展多串口裝置采用Xilinx的Spartan3系列的現(xiàn)場可編程門陣列I (XC3S400FPGA,以下簡稱FPGA),通過數(shù)據總線連接數(shù)字信號處理器33(TMS320C6713DSP,以下簡稱DSP)實現(xiàn)串ロ的擴展。DSP作為上層主控制器,F(xiàn)PGA作為協(xié)處理器作串ロ擴展,DSP與FPGA采用同步方式進行數(shù)據通信。其中FPGA的輸入是串ロ接收總線rxd[N:0]2、時鐘CLK4、復位reset5、地址總線EA8、片選CE9、A0E10、讀使能11、寫使能12、DSP同步時鐘32 ;輸出是串ロ發(fā)送總線txd[N:0]3、中斷 INT6、數(shù)據總線 ED7。需要說明的是,DSP可同時外接多塊FPGA,通過片選信號CE9來選擇對應的FPGA。串ロ接收總線rxd [N: 0] 2和串ロ發(fā)送總線txd [N: 0] 3對應的一組串ロ接收和串ロ發(fā)送組成一個完整的擴展串ロ,在FPGA硬件允許,特別是FPGA中Block RAM容量允許的條件下,N的取值根據設計需要的串口數(shù)自行定制,當需要擴展三個串ロ時,設置N為2,rxd [2:0]和串ロ發(fā)送txd[2:0]表示有三個擴展串ロ,分別對應串ロ 0,串ロ I和串ロ 2。FPGA設計主要包括FPGA芯片電路、存儲器、輸入/輸出接ロ電路等幾個部分,其中芯片電路是最核心的部分,存儲器的設計可以參考芯片手冊的標準設計,輸入輸出管腳可以自行定義并配置電平標準,從FPGA管腳出來的串口數(shù)據信號可以通過電平轉換接至所需要的接ロ。核心部分芯片電路設計主要分為三部分單個串ロ收發(fā)模塊、對應的存儲模塊和控制模塊。單個的串ロ收發(fā)模塊由三個子模塊組成波特率發(fā)生器子模塊、串ロ接收子模塊、串ロ發(fā)送子模塊。其中波特率發(fā)生器實質上是ー個分頻器,將FPGA的輸入時鐘分頻成串ロ需要的時鐘,單個串ロ均設計有波特率發(fā)生器就從硬件上保證了擴展的每個串ロ波特率可調可設。串ロ接收子模塊和串ロ發(fā)送子模塊均根據串口數(shù)據定義,采用有限狀態(tài)機設計,每個串ロ收發(fā)子模塊與均有與之對應的存儲單元,存儲單元的結構選擇FIFO,F(xiàn)IFO深度可設,本例中為512字節(jié)。串ロ與FIFO連接采用異步方式,該設計從硬件上保證了擴展的串ロ均為全雙エ串ロ,各個串ロ互不干擾,單個串ロ收發(fā)也互不影響。 本例中對于串ロ接收,即對接收FIFO讀操作采取的策略是當FIFO半滿時產生半滿標志位和中斷信號,標明該FIFO半滿并告知TMS320C6713DSP讀取該FIFO中緩存的數(shù)據;這樣使得串ロ接收不存在優(yōu)先級問題;對于串ロ發(fā)送則是當發(fā)送FIFO中寫入有數(shù)據時,即將其讀出到串ロ發(fā)送子模塊發(fā)送出去。該控制設計使得多個串ロ不存在優(yōu)先級的區(qū)另IJ,讀取FIFO時只要中斷信號產生,即由DSP詢查半滿標志位讀出對應FIFO數(shù)據,有多個標志位則讀取多個標志位對應FIFO的數(shù)據;寫FIFO時只要FIFO有數(shù)據則硬件完成數(shù)據發(fā)送。本發(fā)明的ー個具體實施例以三串ロ擴展為例,如圖2所示,每個串ロ由三個部分相互連接構成串ロ模塊、FIFO、控制器,組成三串ロ的基于FPGA的擴展多串口裝置。其中每個串ロ模塊均包括串ロ波特率發(fā)生器、串ロ接收子模塊、串ロ發(fā)送子模塊,并通過FIFO與控制器相連,通過串ロ接收和串ロ發(fā)送接ロ接收和發(fā)送數(shù)據。具體地,串ロ模塊13包括波特率發(fā)生器14、串ロ接收子模塊15、串ロ發(fā)送子模塊16,通過接收FIF017和發(fā)送FIF018與控制器19相連,通過串ロ接收34接收數(shù)據,通過串ロ發(fā)送35發(fā)送數(shù)據,串ロ接收34對應于串ロ接收總線2的rxd
,串ロ發(fā)送35對應串ロ發(fā)送總線3的txd
;串ロ模塊20包括波特率發(fā)生器21、串ロ接收子模塊22、串ロ發(fā)送子模塊23,通過接收FIF024和發(fā)送FIF025與控制器19相連,通過串ロ接收36接收數(shù)據,通過串ロ發(fā)送36發(fā)送數(shù)據,串ロ接收36對應于串ロ接收總線2的rxd[l],串ロ發(fā)送37對應串ロ發(fā)送總線3的txd[l];串ロ模塊26包括波特率發(fā)生器27、串ロ接收子模塊28、串ロ發(fā)送子模塊29,通過接收FIF030和發(fā)送FIF031與控制器19相連,通過串ロ接收38接收數(shù)據,通過串ロ發(fā)送39發(fā)送數(shù)據,串ロ接收38對應于串ロ接收總線2的rxd [2],串ロ發(fā)送39對應串ロ發(fā)送總線3的txd[2]。圖中三個串ロ模塊共用一個控制器19,每個串ロ模塊具有各自的FIFO和串ロ收發(fā)接ロ,構成三個獨立的串ロ。下面以ー個串ロ為例說明連接原理,串ロ模塊13,由三個子模塊組成串ロ波特率發(fā)生器14、串ロ接收子模塊15、串ロ發(fā)送子模塊16。由于每個串ロ都有各自的三個子模塊,因此每個串ロ均是全雙エ的,收發(fā)互不影響,各自的波特率可調可設,各個串ロ相互獨立。串ロ模塊13的串ロ接收子模塊15與串ロ接收FIF017相連,串ロ發(fā)送FIF018與串ロ發(fā)送子模塊16相連。串口數(shù)據接收過程為從串ロ接收總線rxd[N:0](對應串ロ接收34)接收的對應串行數(shù)據經過串 ロ模塊13轉換為并行數(shù)據后寫入串ロ接收FIF017 ;當串ロ接收FIFO半滿后告知控制器19,由控制器19向上層DSP控制器產生中斷INT6,控制器19同時標識串ロ接收FIF017為半滿狀態(tài);等DSP給出DSP同步時鐘32、讀使能AREl I,并且片選CE9和A0E10信號有效時,控制器19根據地址總線EA8從指向的串ロ對應的接收FIFO (此處應為串ロ接收FIF017)中讀取數(shù)據到數(shù)據總線ED7上至串ロ接收FIF017為空。對DSP而言,當中斷INT6產生后,通過數(shù)據總線ED7和地址總線EA8向控制器19查詢半滿串ロ接收FIFO,然后告知控制器19讀取該串ロ接收FIFO ;若中斷產生時同時有多個串ロ產生半滿,則由DSP選擇讀取某一串ロ接收FIFO中的數(shù)據或者讀取所有串ロ接收FIFO,對FPGA來說,串ロ接收不存在優(yōu)先級問題。串口數(shù)據發(fā)送過程為控制器19與串ロ發(fā)送FIFO 18相連,當上層DSP通過地址總線EA8、數(shù)據總線ED7寫入數(shù)據時,控制器19將數(shù)據寫入串ロ發(fā)送FIF018 ;串ロ發(fā)送FIF018與串ロ發(fā)送子模塊16相連,當串ロ發(fā)送FIF018中有數(shù)據時,立即將該并行數(shù)據讀出到串ロ發(fā)送子模塊16轉換為串行串ロ發(fā)送數(shù)據,并寫入到串ロ發(fā)送總線txd[N:0](對應為串ロ發(fā)送35)。以上實施例僅用以說明本發(fā)明的技術方案而非對其進行限制,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種基于FPGA的擴展多串口裝置,采用現(xiàn)場可編程門陣列FPGA通過數(shù)據總線連接數(shù)字處理器DSP實現(xiàn)串口的擴展,其特征在于,所述擴展多串口裝置包括控制器,至少一個串口模塊,以及連接所述控制器與所述串口模塊的緩存模塊。
2.如權利要求I所述的基于FPGA的擴展多串口裝置,其特征在于,所述串口模塊包括波特率發(fā)生器子模塊,串口接收子模塊和串口發(fā)送子模塊。
3.如權利要求2所述的基于FPGA的擴展多串口裝置,其特征在于,所述波特率發(fā)生器子模塊是分配器,用于將輸入時鐘分頻成所述串口模塊需要的時鐘。
4.如權利要求I所述的基于FPGA的擴展多串口裝置,其特征在于,每一個所述串口模塊與控制器之間都具有單獨的緩存模塊,所述緩存模塊為先入先出FIFO緩存模塊。
5.如權利要求4所述的基于FPGA的擴展多串口裝置,其特征在于,所述串口模塊與FIFO緩存模塊之間通過異步方式連接。
6.如權利要求I所述的基于FPGA的擴展多串口裝置,其特征在于,所述串口模塊共用所述控制器。
7.如權利要求6所述的基于FPGA的擴展多串口裝置,其特征在于,所述擴展多串口裝置還包括中斷接口,用于與DSP之間傳遞中斷信號。
8.—種如權利要求I所述的基于FPGA的擴展多串口裝置數(shù)據收發(fā)方法,用于采用FPGA通過數(shù)據總線連接DSP實現(xiàn)多串口數(shù)據的收發(fā),其特征在于,所述包括步驟 串口模塊接收外部串行數(shù)據的輸入,將串行數(shù)據轉換為并行數(shù)據寫入緩存模塊; 當緩存模塊半滿時,通知控制器產生半滿標志位標識所述緩存模塊為半滿狀態(tài); DSP查詢緩存模塊的半滿標志位,通過數(shù)據總線從具有半滿標志位的緩存模塊讀取數(shù)據,直到該緩存模塊為空; DSP通過數(shù)據總線將數(shù)據寫入緩存模塊,緩存模塊立即將并行數(shù)據讀出到串口模塊,串口模塊將并行數(shù)據轉換為串行數(shù)據發(fā)送。
9.如權利要求8所述的數(shù)據收發(fā)方法,其特征在于,還包括步驟所述串口模塊中設置的波特率發(fā)生器將輸入時鐘分頻成所述串口模塊需要的時鐘。
10.如權利要求8所述的數(shù)據收發(fā)方法,其特征在于,還包括步驟,當所述緩存模塊半滿時,通知控制器產生中斷信號,并將所述中斷信號上傳到DSP以觸發(fā)DSP從具有半滿標志位的緩存模塊讀取數(shù)據。
全文摘要
本發(fā)明公開了一種基于FPGA的擴展多串口裝置,采用現(xiàn)場可編程門陣列FPGA通過數(shù)據總線連接DSP實現(xiàn)串口的擴展,包括控制器,至少一個串口模塊,以及連接控制器與串口模塊的緩存模塊,其中串口模塊包括波特率發(fā)生器子模塊,串口接收子模塊和串口發(fā)送子模塊。本發(fā)明還公開了基于FPGA的擴展多串口裝置的數(shù)據收發(fā)方法,當串口模塊接收收據后,將串行數(shù)據轉換為并行數(shù)據輸入到緩存模塊,當緩存模塊半滿時,產生半滿標志位和中斷信號,觸發(fā)DSP讀取數(shù)據,當有數(shù)據發(fā)送時,DSP直接將數(shù)據寫入緩存模塊,串口模塊從緩存模塊讀取數(shù)據,轉換為串行數(shù)據發(fā)送。本發(fā)明擴展的各個串口全雙工收發(fā)互不影響,串口個數(shù)可以自行定制,DSP上只需一個中斷源進行多串口擴展。
文檔編號G06F13/24GK102760111SQ201210223598
公開日2012年10月31日 申請日期2012年6月27日 優(yōu)先權日2012年6月27日
發(fā)明者李平, 郭首宇 申請人:浙江大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汝阳县| 土默特左旗| 荥阳市| 高州市| 汤阴县| 大渡口区| 南开区| 天峻县| 龙南县| 新巴尔虎左旗| 阳朔县| 横山县| 淅川县| 安仁县| 清徐县| 津市市| 水富县| 湖口县| 宜兴市| 乐亭县| 北碚区| 剑阁县| 洛扎县| 兴山县| 烟台市| 诏安县| 青龙| 海南省| 永宁县| 深水埗区| 温州市| 贡嘎县| 宜君县| 阿克| 勐海县| 嵊州市| 长宁区| 宜章县| 禹城市| 靖西县| 乾安县|