機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于FPGA的通信卡設(shè)計(jì)和實(shí)現(xiàn)
基于FPGA的通信卡設(shè)計(jì)和實(shí)現(xiàn)
 更新時(shí)間:2008-8-3 15:45:29  點(diǎn)擊數(shù):6
【字體: 字體顏色

    下面是FPGA編/解碼器編碼部分的代碼:
process(CLK2M,C64K)
begin
if C64K=′1′ then QQ1 <=(others=>′0′);else if CLK2M′
event and CLK=′1′ then if DATA_SR=′1′ then
QQ1 <=QQ1+1;end if;end if;
end process;
Q1 <=QQ1;
process(CLK2M,C64K)
begin
if C64K=′1′ then QQ <=(others =>′0′);else if CLK2M′
event and CLK2M=′1′ then if DATA_SR_N=′1′ then
QQ2 <=QQ2+1;end if;end if;
end process;
Q2 <=QQ2;
Q1_compare_Q2<=′1′ when Q1(7 downto 0)>Q2(7 downto 0)
else ′0′;
process(CLK2M)
begin
if CLK2M′ event and CLK2M=′1′ then if C64K_1n=′1′ then
Q<=Q1_compare_Q2;end if;end if;
end process;
    以下為FPGA編/解碼器解碼部分的代碼:
process(CLK2M,F(xiàn)8K)
begin
if  CLK2M′event and CLK2M=′1′ then  if F8K=′0′ then 
p<=(others =>′0′);else p<=p+1;end if;end if;
count<=p;
end process;
process(count(7 downto 5)) --msb comes out first;
begin
 case count(7 downto 5) is
    when ″000″=>Dout <=locked_ts(7);--locked_ts存儲(chǔ)的數(shù)據(jù)為解碼前的串口數(shù)據(jù)
    when ″001″=>Dout<=locked_ts(6);
    when ″010″=>Dout<=locked_ts(5);
    when ″011″=>Dout<=locked_ts(4);
    when ″100″=>Dout<=locked_ts(3);
    when ″101″=>Dout<=locked_ts(2);
    when ″110″=>Dout<=locked_ts(1);
    when ″111″=>Dout<=locked_ts(0);
    when others=>Dout<=′Z′;
  end case;
end process;
asyn_out<=′0′ or Dout;
2.2 數(shù)字交換網(wǎng)絡(luò)功能的實(shí)現(xiàn)
    數(shù)字交換網(wǎng)絡(luò)是通信卡實(shí)現(xiàn)數(shù)據(jù)交換的核心部分,其基本功能是在兩個(gè)不同時(shí)隙間進(jìn)行交換(每個(gè)時(shí)隙對(duì)應(yīng)一個(gè)用戶)。數(shù)字交換網(wǎng)絡(luò)由數(shù)據(jù)存儲(chǔ)器和控制存儲(chǔ)器兩部分組成。數(shù)據(jù)存儲(chǔ)器的工作方式是“順序?qū)懭耄刂谱x出”,即由定時(shí)脈沖控制,按順序?qū)⒉煌瑫r(shí)隙的數(shù)據(jù)寫入相應(yīng)的單元中,寫入的單元號(hào)和時(shí)隙號(hào)一一對(duì)應(yīng),讀出時(shí)則要根據(jù)控制存儲(chǔ)器的控制信息(讀出數(shù)據(jù))進(jìn)行;控制存儲(chǔ)器是“控制寫入,順序讀出”,即數(shù)據(jù)寫入由CPU控制進(jìn)行,而數(shù)據(jù)讀出由定時(shí)脈沖控制,按照時(shí)隙號(hào)讀出相對(duì)應(yīng)單元內(nèi)容[5]。
    本設(shè)計(jì)的交換網(wǎng)容量為128(條)×128(條),假設(shè)基地址為BASE_ADDR,按單字節(jié)尋址,每個(gè)地址代表接收時(shí)隙號(hào)(目的時(shí)隙號(hào)),該地址對(duì)應(yīng)的內(nèi)容字節(jié)最高位指示是否做交換,“0”代表不交換,“1”代表做交換,低7位數(shù)據(jù)表示發(fā)送時(shí)隙號(hào)(源時(shí)隙號(hào))。例如:要將N時(shí)隙發(fā)送到M時(shí)隙,使用如下等式:BASE_ADDR[M]=N|0X80,其中BASE_ADDR[M]為(BASE_ADDR+M)的地址;BASE_ADDR[M]=N|0X80表示將N與0X80相或后的值賦予(BASE_ADDR+M)的地址空間。
    通信卡FPGA數(shù)字交換網(wǎng)絡(luò)的VHDL語言實(shí)現(xiàn)代碼如下所示。其中CLK2M為2MHz時(shí)鐘信號(hào),F(xiàn)8K_1D為與CLK2M上升沿對(duì)齊的同步信號(hào)。
process(CLK2M)    --產(chǎn)生讀CM的地址
begin
if CLK2M′event and CLK2M=′0′ then if F8K_1D=′0′ then
sm_ram_addr(6 downto 0)<=″0000001″;
else sm_ram_addr(6 downto 0)<=sm_ram_addr(6 downto 0)+1;
end if;end if;end if;
end process;
cm_ram_addr(6 downto 0)<=sm_ram_addr(6 downto 0)–′1′;
DRAM_SM:dual_ram_8_128  --數(shù)據(jù)存儲(chǔ)器
PORT MAP( addra =>sm_ram_addr(6 downto 0),
    addrb =>cm_to_sm_addr(6 downto 0),
    clka  =>CLK2M,
    clkb  =>not CLK2M,
    dina  =>sm_in_data(7 downto 0), --數(shù)據(jù)存儲(chǔ)器輸入數(shù)據(jù)
    doutb =>sm_out_data(7 downto 0),--數(shù)據(jù)存儲(chǔ)器讀出數(shù)據(jù)
    ena  =>′1′,
    enb  =>cm_to_sm_addr(7),--是否允許數(shù)據(jù)輸出
    wea  =>′1′);
DRAM_CM:dual_ram_8_128   --控制存儲(chǔ)器
PORT MAP( addra =>cpu_a(6 downto 0), --cpu地址
    addrb =>cm_ram_addr(6 downto 0),
    clka  =>cpu_clk,  --cpu時(shí)鐘信號(hào)
    clkb  =>CLK2M,
    dina  =>cpu_din(7 downto 0),--cpu輸入數(shù)據(jù)
    doutb =>cm_to_sm_addr(7 downto 0),
    ena  =>not cs,--cs為FPGA的片選信號(hào)
    enb  =>′1′,
    wea  =>not cpu_rw);--cpu_rw為cpu的讀寫信號(hào)
    基于FPGA設(shè)計(jì)的通信卡具有靈活性強(qiáng)、可控性好、硬件構(gòu)架簡(jiǎn)單等優(yōu)點(diǎn)。通信卡在實(shí)際應(yīng)用中,很好地實(shí)現(xiàn)了各接口間的數(shù)據(jù)通信且其性能非常穩(wěn)定。另外,通信卡能根據(jù)需要對(duì)一些功能進(jìn)行刪除和添加,方便了系統(tǒng)功能的調(diào)試,滿足了用戶的不同需求。
參考文獻(xiàn)
[1] 王俊雄,黃鉉,劉正義.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì).電子工程師,2006,(10).
[2] 陳曉竹,道克剛.PowerPC860嵌入式系統(tǒng)及應(yīng)用.北京:機(jī)械工業(yè)出版社,2006.
[3] 錢志軍,鄧志宏.MC145572 ISDN U接口收發(fā)器與MC145574 ISDN S/T接口收發(fā)器用戶手冊(cè).北京:人民郵電出版社,1998.
[4] 樊昌信,張甫翊.通信原理(第5版).國(guó)防工業(yè)出版社,2002.
[5] 葉敏.程控?cái)?shù)字交換與現(xiàn)代通信網(wǎng).北京:北京郵電大學(xué)出版社,1997.



  • 上一篇: 基于P89C668多功能智能報(bào)警控制系統(tǒng)的研制
  • 下一篇: 基于DSP的汽車運(yùn)行圖像監(jiān)測(cè)系統(tǒng)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1