<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的串行通信控制系統的設計

基于FPGA的串行通信控制系統的設計

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

基于現場(chǎng)可編程門(mén)陣列FPGA的系統開(kāi)發(fā)可以廣泛應用于各行各業(yè),ASIC設計、通信、控制、電力電子等。其主要優(yōu)點(diǎn)有:設計周期短、功耗低,可實(shí)現更高集成度的數字系統和嵌入式系統等。用戶(hù)可對FPGA內部的邏輯模塊和I/O模塊重新進(jìn)行配置,以實(shí)現數字邏輯電路以及基于FPGA的SRAM、查找表(LUT)等。FPGA還具有靜態(tài)可重復編程和動(dòng)態(tài)在系統重構的特性,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改,從而提高設計的可靠性、穩定性和靈活性。傳統的設計中,FPGA的功能僅局限于集成電路的應用和驗證,然而隨著(zhù)電子技術(shù)的迅猛發(fā)展,集成度更高,功耗更低,基于FPGA的電路設計將發(fā)揮出更大的優(yōu)勢,使得在一片FPGA中實(shí)現一個(gè)完備的數字處理系統成為可能[1-3]。本文提出的基于FPGA的的設計與實(shí)現,是在A(yíng)ltera公司的FPGA Cyclone II芯片EP2C5的基礎上實(shí)現的,運用語(yǔ)言編程,在Quartus II軟件上進(jìn)行編譯、仿真,最終在FPGA開(kāi)發(fā)板上成功實(shí)現下載和調試驗證。

1 的基本原理

基本的通信方式可分為并行通信和串行通信兩種。并行通信就是數據以成組的方式在多個(gè)并行信道上同時(shí)傳輸;而串行通信則是在傳輸過(guò)程中,二進(jìn)制數據一位一位的通過(guò)一條通信信道,并且按照規定的規程依次傳輸,實(shí)現計算機與計算機或計算機與外部設備之間的通信(數據交換)。由于串行通信的收發(fā)方都只需要一條數據線(xiàn),比較容易實(shí)現,而且長(cháng)距離傳輸時(shí)也更加可靠,因此其應用十分廣泛[4]。

的模型如圖1所示,其基本原理是:信息源將待傳輸的消息轉換成原始電信號(如電話(huà)系統中的電話(huà)機就可看成是信息源);發(fā)送設備對原始電信號進(jìn)行某種變換或處理,使電信號符合信道的傳輸特性要求;信道是信息傳輸的通道,在串行通信時(shí),代表信息的數字信號序列按時(shí)間順序一個(gè)接一個(gè)地在信道中傳輸;接收端從收到的信號中恢復出相應的原始信號;受信者則將復原的原始信號轉變成相應的消息(如電話(huà)機將對方傳來(lái)的電信號還原成了聲音);噪聲源是信道中的所有噪聲及通信系統中噪聲的集合[5]。


2 系統整體設計方案

本文引用地址:http://dyxdggzs.com/article/201706/349196.htm

2.1 系統功能

(1)通過(guò)4×4鍵盤(pán)輸入0~F數據,并將此輸入數據發(fā)送給上位機,上位機可以準確接收所發(fā)送的數據。
(2)通過(guò)LED準確接收上位機串口調試助手發(fā)送的數據。
(3)波特率可分為2 400 b/s、4 800 b/s、9 600 b/s、19 200 b/s、38 400 b/s,并且可以隨意修改。

2.2 設計方案

整個(gè)設計在A(yíng)ltera Cyclone II平臺上采用了“自頂向下”的思想,并使用硬件描述語(yǔ)言對電路進(jìn)行描述。

根據功能要求,系統可分為4×4鍵盤(pán)掃描輸入模塊、LED顯示模塊、接收模塊、發(fā)送模塊和波特率產(chǎn)生模塊5個(gè)功能模塊,系統原理框圖如圖2所示。

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

3 功能子模塊的設計與實(shí)現

3.1 接收模塊的設計

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


3.2 發(fā)送模塊的設計

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


3.3 波特率產(chǎn)生模塊的設計

波特率產(chǎn)生模塊的主要功能:當輸入不同數據時(shí),將對輸入的時(shí)鐘信號有不同的分頻比,從而產(chǎn)生不同的波特率。波特率發(fā)生器采用加法計數器來(lái)實(shí)現多種分頻。產(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;
//設置分頻系數38 400波特率
else cnt5:=cnt5+1;
end if;
end if;
end process;

波特率為38 400 b/s的仿真波形如圖5所示。其中,bo為波特率選擇設置端口,將其分配給FPGA開(kāi)發(fā)板的3個(gè)撥動(dòng)開(kāi)關(guān),通過(guò)撥動(dòng)開(kāi)關(guān)輸入相應的數據實(shí)現波特率設置;clk為系統時(shí)鐘信號,頻率為24 MHz;res為復位端;clkout為輸出時(shí)鐘,提供給接收和發(fā)送模塊,實(shí)現不同波特率傳輸。


3.4 鍵盤(pán)模塊設計

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


3.5 數碼管顯示模塊設計

數碼管顯示模塊的主要功能是將所接收到的數據在8 bit七段數碼管上進(jìn)行顯示。本設計中使用的是兩個(gè)4 bit一體、共陰極型的七段數碼管。因此,數碼管中被輸入高電平的這一段將會(huì )被點(diǎn)亮,反之則不亮。應用數碼管的這一特點(diǎn),給數碼管相應的段輸入高電平,從而實(shí)現相應數據的顯示。通過(guò)位選端口來(lái)控制,被選通的數碼管顯示數據,其余關(guā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;
//顯示數據0
when 00000001 =>ledout=00000110;
//顯示數據1
when 00000010 =>ledout=01011011;
//顯示數據2
: :
: :
when 00001111 =>ledout=01110001;
//顯示數據F
when others =>null;
end case;
end if;
sel=000; end process;
END led_architecture;

4 系統下載與調試結果

在Quartus II 7.2中建立項目后,輸入頂層設計文件及各個(gè)模塊的VHDL程序代碼,編譯、仿真、管腳分配之后產(chǎn)生編程文件,將編程文件下載到FPGA芯片EP2C5Q208上,通過(guò)串口線(xiàn)連接實(shí)驗箱與PC機進(jìn)行調試及驗證。通過(guò)FPGA的4×4鍵盤(pán)輸入0~F數據,并發(fā)送給PC機,PC機可以正確接收到所發(fā)送的數據;同時(shí),通過(guò)PC機串口調試助手發(fā)送數據給FPGA時(shí),FPGA也可以準確接收到相應數據,并且將接收到的數據在數碼管上顯示;改變波特率時(shí)也可以實(shí)現上述功能。實(shí)驗結果表明,本設計滿(mǎn)足設計要求。

本設計運用FPGA開(kāi)發(fā)平臺將串行通信控制系統集成在一片Altera EP2C5芯片中,提高了系統的質(zhì)量和可靠性。同時(shí),由于基于FPGA的系統設計能夠在現場(chǎng)進(jìn)行編程及調試,具有很大的靈活性,可以方便地進(jìn)行修改完善,用戶(hù)可以在不改變電路系統的情況下,進(jìn)行反復編程和隨意修改。一旦設計成熟,也可以制成ASIC芯片,不但大大降低了設計風(fēng)險,也可以節約成本。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>