《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的串行通信控制系統(tǒng)的設計
基于FPGA的串行通信控制系統(tǒng)的設計
來源:微型機與應用2011年第5期
王媛媛,劉樹林,劉寧莊,童 軍
(西安科技大學 電氣與控制工程學院,陜西 西安 710054)
摘要: 在Altera Cyclone II平臺上采用“自頂向下”的模塊化設計思想及VHDL硬件描述語言,設計了串行通信控制系統(tǒng)。在Quartus II軟件上編譯、仿真后下載到FPGA芯片EP2C5Q208上,進行在線編程調試,實現(xiàn)了串行通信控制功能。基于FPGA的系統(tǒng)設計調試維護方便、可靠性高,而且設計具有靈活性,可以方便地進行擴展和移植。
Abstract:
Key words :

摘  要: 在Altera Cyclone II平臺上采用“自頂向下”的模塊化設計思想及VHDL硬件描述語言,設計了串行通信控制系統(tǒng)。在Quartus II軟件上編譯、仿真后下載到FPGA芯片EP2C5Q208上,進行在線編程調試,實現(xiàn)了串行通信控制功能。基于FPGA的系統(tǒng)設計調試維護方便、可靠性高,而且設計具有靈活性,可以方便地進行擴展和移植。
關鍵詞: FPGA;通信控制系統(tǒng);模塊化;VHDL

 基于現(xiàn)場可編程門陣列FPGA的系統(tǒng)開發(fā)可以廣泛應用于各行各業(yè),ASIC設計、通信、控制、電力電子等。其主要優(yōu)點有:設計周期短、功耗低,可實現(xiàn)更高集成度的數(shù)字系統(tǒng)和嵌入式系統(tǒng)等。用戶可對FPGA內部的邏輯模塊和I/O模塊重新進行配置,以實現(xiàn)數(shù)字邏輯電路以及基于FPGA的SRAM、查找表(LUT)等。FPGA還具有靜態(tài)可重復編程和動態(tài)在系統(tǒng)重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改,從而提高設計的可靠性、穩(wěn)定性和靈活性。傳統(tǒng)的設計中,F(xiàn)PGA的功能僅局限于集成電路的應用和驗證,然而隨著電子技術的迅猛發(fā)展,集成度更高,功耗更低,基于FPGA的電路設計將發(fā)揮出更大的優(yōu)勢,使得在一片F(xiàn)PGA中實現(xiàn)一個完備的數(shù)字處理系統(tǒng)成為可能[1-3]。本文提出的基于FPGA的串行通信控制系統(tǒng)的設計與實現(xiàn),是在Altera公司的FPGA Cyclone II芯片EP2C5的基礎上實現(xiàn)的,運用VHDL語言編程,在Quartus II軟件上進行編譯、仿真,最終在FPGA開發(fā)板上成功實現(xiàn)下載和調試驗證。
1  串行通信控制系統(tǒng)的基本原理
 基本的通信方式可分為并行通信和串行通信兩種。并行通信就是數(shù)據(jù)以成組的方式在多個并行信道上同時傳輸;而串行通信則是在傳輸過程中,二進制數(shù)據(jù)一位一位的通過一條通信信道,并且按照規(guī)定的規(guī)程依次傳輸,實現(xiàn)計算機與計算機或計算機與外部設備之間的通信(數(shù)據(jù)交換)。由于串行通信的收發(fā)方都只需要一條數(shù)據(jù)線,比較容易實現(xiàn),而且長距離傳輸時也更加可靠,因此其應用十分廣泛[4]。
 串行通信控制系統(tǒng)的模型如圖1所示,其基本原理是:信息源將待傳輸?shù)南⑥D換成原始電信號(如電話系統(tǒng)中的電話機就可看成是信息源);發(fā)送設備對原始電信號進行某種變換或處理,使電信號符合信道的傳輸特性要求;信道是信息傳輸?shù)耐ǖ溃诖型ㄐ艜r,代表信息的數(shù)字信號序列按時間順序一個接一個地在信道中傳輸;接收端從收到的信號中恢復出相應的原始信號;受信者則將復原的原始信號轉變成相應的消息(如電話機將對方傳來的電信號還原成了聲音);噪聲源是信道中的所有噪聲及通信系統(tǒng)中噪聲的集合[5]。

2 系統(tǒng)整體設計方案
2.1 系統(tǒng)功能

 (1)通過4×4鍵盤輸入0~F數(shù)據(jù),并將此輸入數(shù)據(jù)發(fā)送給上位機,上位機可以準確接收所發(fā)送的數(shù)據(jù)。
 (2)通過LED準確接收上位機串口調試助手發(fā)送的數(shù)據(jù)。
 (3)波特率可分為2 400 b/s、4 800 b/s、9 600 b/s、19 200 b/s、38 400 b/s,并且可以隨意修改。
2.2 設計方案
 整個設計在Altera Cyclone II平臺上采用了“自頂向下”的模塊化設計思想,并使用硬件描述語言VHDL對電路進行描述。
 根據(jù)功能要求,系統(tǒng)可分為4×4鍵盤掃描輸入模塊、LED顯示模塊、接收模塊、發(fā)送模塊和波特率產(chǎn)生模塊5個功能模塊,系統(tǒng)原理框圖如圖2所示。

 設計原理為:4×4鍵盤掃描輸入模塊將所輸入的數(shù)據(jù)轉換為二進制代碼傳輸給發(fā)送模塊,發(fā)送模塊再將此數(shù)據(jù)通過串口TXD發(fā)送到PC機;接收模塊通過串口RXD接收由上位機或串口調試助手發(fā)送的數(shù)據(jù),并且顯示在數(shù)碼管上;數(shù)據(jù)傳輸速率由波特率產(chǎn)生模塊的輸出頻率決定,可以根據(jù)需要進行設置,如可設置為2 400 b/s、4 800 b/s等。
3 功能子模塊的設計與實現(xiàn)
3.1 接收模塊的設計

 接收模塊的主要功能為接收PC機發(fā)送8 bit二進制數(shù)。根據(jù)功能要求,采用VHDL硬件描述語言對其功能進行描述,模塊頂層設計文件如圖3所示,各端口分別為:bclkr(傳輸速率控制端,輸入波特率產(chǎn)生模塊的輸出頻率)、resetr(復位端)、rxd(接收端口,串行輸入)、r_ready(接收就緒)、rbuf(接收寄存器)。該模塊采用有限狀態(tài)機設計。

3.2 發(fā)送模塊的設計
 發(fā)送模塊的主要功能是將鍵盤按鍵值以給定的波特率發(fā)送給PC機。本文的設計思想是:當不發(fā)送數(shù)據(jù)時,數(shù)據(jù)信號線表現(xiàn)為高電平,即空閑位;當開始發(fā)送數(shù)據(jù)后,數(shù)據(jù)信號為低電平,也就是起始位,為了保證能夠在發(fā)送數(shù)據(jù)時準確采樣,采用頻率為波特率16倍的輸入時鐘。輸入時鐘信號由波特率產(chǎn)生模塊的輸出提供。該模塊采用VHDL硬件描述語言進行描述,頂層設計文件如圖4所示,各端口分別為:bclkt(輸入時鐘)、resett(復位)、xmit_cmd_p(發(fā)送命令端)、txdbuf[7...0](發(fā)送緩沖器輸入端)、txd(發(fā)送數(shù)據(jù)端)、txd_done(發(fā)送完畢)。該模塊采用有限狀態(tài)機設計,根據(jù)功能要求,電路包括空閑、起始、等待、移位、停止5個狀態(tài)。

3.3 波特率產(chǎn)生模塊的設計
 波特率產(chǎn)生模塊的主要功能:當輸入不同數(shù)據(jù)時,將對輸入的時鐘信號有不同的分頻比,從而產(chǎn)生不同的波特率。波特率發(fā)生器采用加法計數(shù)器來實現(xiàn)多種分頻。產(chǎn)生38 400 b/s的VHDL程序如下:
process(clk,bo)
begin
 case bo is
                     when "100"=>clkout<=clk38400;
                     when others=>clkout<=null;
                  end case;
end process;
process(clk,res)
variable cnt5:integer range 39 downto 0;
begin
if res=′1′ then cnt5:=0; clk38400<=′0′;  //復位
elsif rising_edge(clk) then
if cnt5>=39 then cnt5:=0;clk38400<=not clk38400;
//設置分頻系數(shù)38 400波特率
    else cnt5:=cnt5+1;
    end if;
end if;
end process;
 波特率為38 400 b/s的仿真波形如圖5所示。其中,bo為波特率選擇設置端口,將其分配給FPGA開發(fā)板的3個撥動開關,通過撥動開關輸入相應的數(shù)據(jù)實現(xiàn)波特率設置;clk為系統(tǒng)時鐘信號,頻率為24 MHz;res為復位端;clkout為輸出時鐘,提供給接收和發(fā)送模塊,實現(xiàn)不同波特率傳輸。

3.4 鍵盤模塊設計
 鍵盤模塊的主要功能是將按鍵轉換為8 bit二進制數(shù),該功能的實現(xiàn)過程為:對于4×4鍵盤,通常連接為4行、4列,因此,要識別按鍵,只需要知道是哪一行和哪一列即可。為了完成這一按鍵識別過程,本設計首先確定行值,如果讀入的4行均為高電平,則肯定沒有鍵按下,如果讀入的4行有一位為低電平,則對應的該行肯定有一個鍵被按下,這樣便可以獲得按鍵的行值;然后通過加法計數(shù)器進行列掃描,獲得列值。將獲取到的行值和列值組合成一個8 bit的數(shù)據(jù),根據(jù)實現(xiàn)不同的編碼對每個按鍵進行匹配。鍵盤模塊仿真波形如圖6所示。

3.5 數(shù)碼管顯示模塊設計
 數(shù)碼管顯示模塊的主要功能是將所接收到的數(shù)據(jù)在8 bit七段數(shù)碼管上進行顯示。本設計中使用的是兩個4 bit一體、共陰極型的七段數(shù)碼管。因此,數(shù)碼管中被輸入高電平的這一段將會被點亮,反之則不亮。應用數(shù)碼管的這一特點,給數(shù)碼管相應的段輸入高電平,從而實現(xiàn)相應數(shù)據(jù)的顯示。通過位選端口來控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關閉。實現(xiàn)數(shù)碼管顯示的VHDL代碼如下[6]:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY led_display IS
        PORT
    (
        ledclk: IN STD_LOGIC;
        res: IN STD_LOGIC;
        data: IN STD_LOGIC_VECTOR(7 downto 0);
        ledout: OUT STD_LOGIC_VECTOR(7 downto 0);
        sel: OUT STD_LOGIC_VECTOR(2 downto 0)
    );    
END led_display;
ARCHITECTURE led_architecture OF led_display IS
BEGIN
process(ledclk,res,data)
      begin
        if ledclk′event and ledclk=′1′ then
            if res=′1′ then ledout<="00000000";
        end if;
        case data is
            when "00000000" =>ledout<="00111111";
//顯示數(shù)據(jù)0
            when "00000001" =>ledout<="00000110";
//顯示數(shù)據(jù)1
            when "00000010" =>ledout<="01011011";
//顯示數(shù)據(jù)2
                                :             :
                                :             :
            when "00001111" =>ledout<="01110001";
 //顯示數(shù)據(jù)F
            when others =>null;
         end case;
       end if;
   sel<="000"; end process;
END led_architecture;
4 系統(tǒng)下載與調試結果
 在Quartus II 7.2中建立項目后,輸入頂層設計文件及各個模塊的VHDL程序代碼,編譯、仿真、管腳分配之后產(chǎn)生編程文件,將編程文件下載到FPGA芯片EP2C5Q208上,通過串口線連接實驗箱與PC機進行調試及驗證。通過FPGA的4×4鍵盤輸入0~F數(shù)據(jù),并發(fā)送給PC機,PC機可以正確接收到所發(fā)送的數(shù)據(jù);同時,通過PC機串口調試助手發(fā)送數(shù)據(jù)給FPGA時,F(xiàn)PGA也可以準確接收到相應數(shù)據(jù),并且將接收到的數(shù)據(jù)在數(shù)碼管上顯示;改變波特率時也可以實現(xiàn)上述功能。實驗結果表明,本設計滿足設計要求。
 本設計運用FPGA開發(fā)平臺將串行通信控制系統(tǒng)集成在一片Altera EP2C5芯片中,提高了系統(tǒng)的質量和可靠性。同時,由于基于FPGA的系統(tǒng)設計能夠在現(xiàn)場進行編程及調試,具有很大的靈活性,可以方便地進行修改完善,用戶可以在不改變電路系統(tǒng)的情況下,進行反復編程和隨意修改。一旦設計成熟,也可以制成ASIC芯片,不但大大降低了設計風險,也可以節(jié)約成本。
參考文獻
[1] 李迎九,肖柳明.基于FPGA的數(shù)字通信系統(tǒng)同步電路的設計[J].湘潭師范學院學報(自然科學版),2005,27(1).
[2] KUNG Yingshieh, Chen Chiasheng, Wong Kiinging, et al. Development of a FPGA-based control IC for PMSM drive with adaptive fuzzy control[C]. Proceeding of IEEE Industial Electronics Society, IEOON 2005, 2005: 1544-1545.
[3] 潘松,黃繼業(yè).EDA技術與VHDL[M].北京:清華大學出版社,2009.
[4] 宋兵躍,吳軍輝,黃斌.單片機的高效串行通信研究[J].單片機與嵌入式系統(tǒng)應用,2010(1):27-29.
[5] 王興亮.通信系統(tǒng)原理教程[M].西安:西安電子科技大學出版社,2007.
[6] 李晶皎,李景宏,曹陽.邏輯與數(shù)字系統(tǒng)設計[M].北京:清華大學出版社,2008.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美精品一区二区三区蜜臀| 加勒比av一区二区| 久久精品一区中文字幕| 亚洲永久免费精品| 一区二区三区视频在线| 999亚洲国产精| 一本到12不卡视频在线dvd | 一本色道久久综合亚洲精品婷婷| 亚洲国产高清自拍| 亚洲东热激情| 亚洲福利电影| 亚洲激情专区| 日韩一区二区精品葵司在线| 亚洲精品一区二区三区不| 亚洲国产高潮在线观看| 亚洲国产欧美一区二区三区丁香婷| 亚洲国产导航| 亚洲精品乱码久久久久久按摩观| 91久久嫩草影院一区二区| 亚洲国产日韩一级| 亚洲人午夜精品免费| 亚洲精品国产精品乱码不99 | 亚洲精品一二三| 亚洲卡通欧美制服中文| aa国产精品| 亚洲一区二区三区四区五区午夜| 亚洲自啪免费| 久久精品国产亚洲aⅴ| 久久精品一区二区三区不卡| 亚洲欧洲精品一区| 一区二区三区av| 亚洲欧美激情在线视频| 亚洲欧美日韩直播| 久久国产色av| 老牛嫩草一区二区三区日本| 欧美国产一区二区| 欧美日一区二区在线观看 | 国产精品伦一区| 国产一区二区三区久久久| 亚洲女与黑人做爰| 亚洲精品国精品久久99热| 亚洲欧洲另类国产综合| 一本色道久久综合精品竹菊| 亚洲欧美韩国| 久久青草福利网站| 欧美精品999| 国产精品视频一区二区高潮| 激情另类综合| 99国产一区二区三精品乱码| 午夜在线a亚洲v天堂网2018| 亚洲区第一页| 亚洲欧美日韩电影| 免费观看在线综合| 欧美午夜视频在线| 国产一区二区观看| 亚洲精品乱码久久久久| 亚洲欧美一区在线| 日韩视频在线你懂得| 午夜精品久久久久久久蜜桃app| 巨乳诱惑日韩免费av| 欧美日韩一级黄| 国内精品久久久久影院薰衣草| 最近中文字幕日韩精品| 午夜国产精品影院在线观看| 亚洲精品在线视频观看| 欧美一区二区日韩一区二区| 欧美电影在线观看完整版| 国产精品久久7| 亚洲大胆视频| 亚洲欧美日韩在线一区| 日韩一级免费观看| 久久精品天堂| 欧美色网在线| 亚洲电影下载| 欧美影院在线| 亚洲一区视频在线| 欧美va亚洲va国产综合| 国产日韩精品一区二区三区在线| 亚洲精品字幕| 亚洲国产精品va| 香蕉久久久久久久av网站| 欧美激情在线有限公司| 国产一区二区久久| 亚洲私人黄色宅男| 亚洲美女中文字幕| 久久久噜噜噜久久中文字免| 国产精品老牛| av成人动漫| 亚洲精品一区二区三区樱花| 久久久蜜臀国产一区二区| 国产精品亚洲不卡a| 亚洲理伦在线| 亚洲精品久久久久久久久久久久久 | 亚洲黄色av一区| 久久精品亚洲一区| 亚洲免费av观看| 中文精品视频| 99视频一区| 欧美成人精品不卡视频在线观看 | 欧美一区免费视频| 欧美少妇一区| 亚洲毛片一区二区| 亚洲精品一区二区三区樱花| 免费成人黄色av| 国内偷自视频区视频综合| 欧美一级专区免费大片| 亚洲欧美国产不卡| 欧美午夜无遮挡| 99国产精品久久| 一区二区三区精品视频在线观看 | 国产私拍一区| 亚洲欧美综合国产精品一区| 欧美一级欧美一级在线播放| 国产精品入口夜色视频大尺度| 亚洲天堂偷拍| 亚洲男女自偷自拍| 国产精品国产馆在线真实露脸| 9国产精品视频| 亚洲视频一区二区免费在线观看| 欧美人与性禽动交情品| 亚洲三级影院| 亚洲视频1区| 欧美亚州一区二区三区| 一区二区三区|亚洲午夜| 亚洲一区二区三区午夜| 欧美亚洲成人免费| 亚洲一区免费网站| 欧美中文字幕在线播放| 国产无一区二区| 国产精品理论片| 校园激情久久| 久久欧美肥婆一二区| 一区在线免费| 亚洲免费不卡| 欧美色精品在线视频| 亚洲午夜精品久久久久久浪潮| 香蕉乱码成人久久天堂爱免费| 国产精自产拍久久久久久| 欧美在线短视频| 免费日韩精品中文字幕视频在线| 亚洲第一网站免费视频| 日韩亚洲国产精品| 国产精品国产福利国产秒拍| 欧美一级艳片视频免费观看| 免费国产自线拍一欧美视频| 亚洲欧洲一区二区在线播放| 中日韩美女免费视频网址在线观看| 欧美视频在线一区二区三区| 亚洲一区制服诱惑| 久久免费的精品国产v∧| 亚洲国产二区| 亚洲综合国产精品| 国产一二三精品| 亚洲精品视频在线| 国产精品久久久久久久久久免费看| 欧美国产欧美亚洲国产日韩mv天天看完整| 在线观看欧美| 亚洲精品裸体| 国产精品狠色婷| 欧美在线视频导航| 欧美成人综合网站| 亚洲视频精品| 毛片av中文字幕一区二区| 日韩视频一区二区三区在线播放| 午夜精品久久久久久久蜜桃app| 精品91视频| 亚洲一本视频| 一区二区亚洲| 一区二区三区欧美成人| 国产日韩一区二区三区在线播放| 亚洲精品视频在线| 国产日韩欧美日韩大片| 亚洲另类春色国产| 国产欧美二区| 日韩一二在线观看| 国产日产高清欧美一区二区三区| 亚洲精品综合精品自拍| 国产精品入口尤物| 99国产精品一区| 国内成+人亚洲| 美女999久久久精品视频| 国产精品久久福利| 亚洲国产欧美一区| 国产精品扒开腿做爽爽爽视频| 亚洲电影免费在线 | 99亚洲伊人久久精品影院红桃| 久久久av毛片精品| 一区二区三区欧美日韩| 狂野欧美激情性xxxx欧美| 亚洲午夜久久久久久尤物 | 欧美日韩成人综合天天影院| 欧美一区二区精美| 欧美性淫爽ww久久久久无| 亚洲国产99精品国自产| 国产精品麻豆va在线播放| 日韩亚洲国产精品| 精品成人一区| 性做久久久久久免费观看欧美| 亚洲日本在线观看| 久久亚洲春色中文字幕|