《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于FPGA的通信卡設計和實現

基于FPGA的通信卡設計和實現

2008-07-18
作者:馬尚行,倪美強

??? 摘 要: 基于FPGA的通信卡設計原理。通信卡實現了4路ISDN U接口、4路RS232串口" title="串口">串口、2路音頻接口及1路PCI總線之間的通信,該卡以FPGA(現場可編程門陣列)和MPC860為核心進行設計,利用FPGA的可編程性靈活實現了各接口之間的數據通信" title="數據通信">數據通信。本文給出了系統的硬件構架,并對串口傳輸" title="串口傳輸">串口傳輸功能和數字交換網絡功能的FPGA實現進行了分析。
??? 關鍵詞: 通信卡? FPGA? 串口傳輸? 數字交換網絡

?

??? FPGA是20世紀80年代中期以后發展起來的一種現場可編程的大規模集成器件,具有高集成、高速度、低功耗、體積小、可靠性高等一系列優點,含有豐富的查找表(LUT)資源,允許設計師在不改變硬件電路板的情況下實現不同的功能[1]。因此,FPGA在數字電路的設計中得到了廣泛應用。
??? 通信卡采用的FPGA是XILINX的SPARTAN-Ⅱ系列的XC2S50芯片。該芯片具有176個用戶I/O接口、32Kbit的RAM塊及24 576bit的分散RAM等豐富資源。在通信卡中,FPGA芯片實現了串口的透明傳輸和解析傳輸功能、PCI總線的控制功能、4路ISDN U接口數據的復接和分離功能、各接口數據間的交換功能等。本文分析了基于FPGA的通信卡的設計原理,給出了系統的硬件構架框圖,并對串口傳輸功能和數字交換網絡功能的實現進行了重點分析。
1 設計介紹
??? 通信卡的硬件構架組成框圖如圖1所示。CPU控制模塊采用MPC860小系統, MPC860芯片不僅具有普通CPU的運算和處理功能,其外圍還集成了一些控制領域的常用接口,可支持多種協議,如HDLC/SDLC協議、UART協議等;另外,該芯片還具有一個時隙" title="時隙">時隙分配器,可支持T1、CEPT、PCM公共模塊和ISDN的基本速率的傳輸[2]。本設計中傳輸的通道信號采用ISDN的基本速率,CPU信號由地址信號、數據信號和控制信號三部分組成,實現對通信卡各芯片的配置及對一些公共資源的分配和管理;PCI總線控制器采用PLX公司生產的PCI通用接口芯片PCI9054實現,本設計中,該芯片在本地總線側采用M模式,可以與MPC860芯片進行無縫連接;音頻口的編/譯碼器芯片采用TP3067,該芯片實現了模擬音頻信號和PCM數據信號的相互轉換;在本卡中,RS232串口的最大速率為19.2kb/s;U接口控制器采用MOTOROLA公司的MC145572芯片,該芯片用于綜合業務數字網基本接入接口,即適用于NT(網絡終端)也適應于LT(線路終端)[3]。MC145572可工作于多種不同模式,本文采用的是MCU模式的短幀操作模式,接口數據為MOTOROLA的IDL型時分2B(B通道數據為64Kb/s)+D(D通道數據為16Kb/s)數據接口,通信卡的四個ISDN U接口作為NT使用;兩路音頻接口為用戶的語音通信提供接口。

??? 實現圖1所用的FPGA是XILINX的SPARTAN-Ⅱ系列的XC2S50芯片,該芯片負責通信卡各接口數據的控制和相互通信,包括:CPU對PCI總線控制器、串口控制器、U接口控制器等芯片的控制;PCI總線接口與CPU間的數據通信;音頻口與U接口間的數據通信;RS232串口的透明傳輸方式" title="傳輸方式">傳輸方式(串口與串口、串口與U口間的數據傳輸)和解析傳輸方式(串口與CPU間的數據傳輸)的控制;U接口與CPU的數據通信;U接口與串口間的數據通信。通信卡各接口間數據的交換和通信都由FPGA交換控制模塊的數字交換網絡完成,其工作原理圖如圖2所示。圖2中所示的8路64kb/s的HDLC收發器和4路16kb/s的HDLC收發器由MPC860芯片提供。本文將對由FPGA實現的串口傳輸功能和數字交換網絡功能的實現進行詳細分析。

?????????????????????????

?

????????????????????????????


2 功能實現
??? 本設計中,FPGA是通信卡功能實現的關鍵芯片,是各接口數據通信的橋梁。下面就FPGA實現的串口傳輸功能(包括串口工作方式,即透明傳輸方式和解析傳輸方式的切換及透明傳輸方式時不同速率數據間的轉換)及用于各接口數據通信的數字交換網絡功能的實現進行詳細分析。
2.1 串口傳輸功能的實現
??? 通信卡的串口功能芯片由串口擴展芯片ST16C654和收發器芯片LTC1387組成,ST16C654可擴展4個串口,串口傳輸功能示意圖見圖3。在通信卡中,串口的數據傳輸方式有透明傳輸方式和解析傳輸方式兩種,利用FPGA的可編程性靈活實現了串口傳輸方式的切換。在解析方式下,只需將ST16C654的收發數據線與LTC1387的收發數據線相連,如要使串口1工作在解析模式下,通過FPGA將L_TD1與ST_TD1連接及L_RD1與ST_RD1連接便可;在透傳方式下,由于串口的傳輸速率不定(在本卡中,串口的傳輸速率≤19.2Kb/s),而ISDN U接口一個時隙的傳輸速率為64kb/s,因此,在串口與U口進行數據透傳時,需要編寫一個具有速率轉換功能的編/解碼器。根據抽樣原理,對串口輸入的數據(速率≤19.2kb/s),用64kb/s(64>19.2×2)速率進行抽樣,根據抽樣值能準確地確定原信號[4]。本文以如圖3所示的串口1與串口5間的數據透傳為例進行說明,其工作過程描述如下:首先,通過CPU控制FPGA,使串口1和串口5工作在透傳模式下,將串口1的L_RD1數據線連接到FPGA的編/解碼器,編/解碼器以64Kb/s的速率對串口數據進行采樣,并將采樣數據放到U接口中的一個B通道的一個時隙上進行傳輸。通過ISDN通道傳輸到另一個的U接口,該U接口將透傳的數據送往本地FPGA,并經過FPGA編/解碼器后將數據送往串口5,這樣便完成了數據從串口1到串口5的透傳。同理,可實現數據從串口5到串口1的透傳。本設計串口數據的FPGA編/解碼功能的實現采用VHDL語言編寫。編碼時,根據抽樣原理采用64kb/s速率進行采樣便可;解碼時,只需將FPGA收到的數據以64Kb/s速率發往LTC1387的收數據端口即可。其功能實現代碼如下所示。其中CLK2M為2MHz時鐘信號,C64K為與2MHz時鐘信號的下降沿對齊的64kb/s采樣信號,C64K_1n的上升沿與C64K信號的下降沿對齊且其高電平寬度為(1/2M)s,DATA_SR為串口輸入的數據,DATA_SR_N為串口輸入數據的取反,Q為編碼后的數據,asyn_out為解碼后送給串口的數據。

??????????????????????????????
??? 下面是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,F8K)
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存儲的數據為解碼前的串口數據
??? 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 數字交換網絡功能的實現
??? 數字交換網絡是通信卡實現數據交換的核心部分,其基本功能是在兩個不同時隙間進行交換(每個時隙對應一個用戶)。數字交換網絡由數據存儲器和控制存儲器兩部分組成。數據存儲器的工作方式是“順序寫入,控制讀出”,即由定時脈沖控制,按順序將不同時隙的數據寫入相應的單元中,寫入的單元號和時隙號一一對應,讀出時則要根據控制存儲器的控制信息(讀出數據)進行;控制存儲器是“控制寫入,順序讀出”,即數據寫入由CPU控制進行,而數據讀出由定時脈沖控制,按照時隙號讀出相對應單元內容[5]
??? 本設計的交換網容量為128(條)×128(條),假設基地址為BASE_ADDR,按單字節尋址,每個地址代表接收時隙號(目的時隙號),該地址對應的內容字節最高位指示是否做交換,“0”代表不交換,“1”代表做交換,低7位數據表示發送時隙號(源時隙號)。例如:要將N時隙發送到M時隙,使用如下等式:BASE_ADDR[M]=N|0X80,其中BASE_ADDR[M]為(BASE_ADDR+M)的地址;BASE_ADDR[M]=N|0X80表示將N與0X80相或后的值賦予(BASE_ADDR+M)的地址空間。
??? 通信卡FPGA數字交換網絡的VHDL語言實現代碼如下所示。其中CLK2M為2MHz時鐘信號,F8K_1D為與CLK2M上升沿對齊的同步信號。
process(CLK2M)????--產生讀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??--數據存儲器
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), --數據存儲器輸入數據
??? doutb?=>sm_out_data(7 downto 0),--數據存儲器讀出數據
??? ena??=>′1′,
??? enb??=>cm_to_sm_addr(7),--是否允許數據輸出
??? wea??=>′1′);
DRAM_CM:dual_ram_8_128???--控制存儲器
PORT MAP(?addra?=>cpu_a(6 downto 0),?--cpu地址
??? addrb?=>cm_ram_addr(6 downto 0),
??? clka??=>cpu_clk,??--cpu時鐘信號
??? clkb??=>CLK2M,
??? dina??=>cpu_din(7 downto 0),--cpu輸入數據
??? doutb?=>cm_to_sm_addr(7 downto 0),
??? ena??=>not cs,--cs為FPGA的片選信號
??? enb??=>′1′,
????wea??=>not cpu_rw);--cpu_rw為cpu的讀寫信號
??? 基于FPGA設計的通信卡具有靈活性強、可控性好、硬件構架簡單等優點。通信卡在實際應用中,很好地實現了各接口間的數據通信且其性能非常穩定。另外,通信卡能根據需要對一些功能進行刪除和添加,方便了系統功能的調試,滿足了用戶的不同需求。
參考文獻
[1] 王俊雄,黃鉉,劉正義.基于FPGA的嵌入式系統設計.電子工程師,2006,(10).
[2] 陳曉竹,道克剛.PowerPC860嵌入式系統及應用.北京:機械工業出版社,2006.
[3] 錢志軍,鄧志宏.MC145572 ISDN U接口收發器與MC145574 ISDN S/T接口收發器用戶手冊.北京:人民郵電出版社,1998.
[4] 樊昌信,張甫翊.通信原理(第5版).國防工業出版社,2002.
[5] 葉敏.程控數字交換與現代通信網.北京:北京郵電大學出版社,1997.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲成在线观看| 一区二区久久| 日韩午夜激情av| 亚洲第一色中文字幕| 国产亚洲成av人在线观看导航| 国产精品wwwwww| 欧美日韩国产综合视频在线| 欧美成人一区二区三区在线观看| 久久夜色精品| 蜜臀a∨国产成人精品| 鲁大师影院一区二区三区| 久久精品国产成人| 久久久久久久一区二区三区| 久久久久久电影| 久久久久久久高潮| 久久久国产一区二区三区| 久久青青草原一区二区| 玖玖精品视频| 欧美不卡一区| 欧美成人精品福利| 欧美日本高清视频| 欧美日韩一级片在线观看| 欧美色欧美亚洲另类七区| 欧美日韩一区二区在线观看| 国产精品福利久久久| 国产精品女人毛片| 国产精品日韩专区| 国产一区二区丝袜高跟鞋图片| 韩国久久久久| 亚洲国产片色| 亚洲人成网站精品片在线观看| 一本大道av伊人久久综合| 亚洲视频综合在线| 午夜精品成人在线视频| 久久爱www.| 亚洲三级视频| 亚洲视频欧美在线| 欧美伊人久久| 久久看片网站| 欧美黄色片免费观看| 欧美视频在线看| 国产日韩欧美成人| 一区二区三区亚洲| 亚洲精品日韩在线观看| 亚洲一区二区网站| 亚洲福利精品| 亚洲一区二区三区影院| 久久成人资源| 欧美国产在线观看| 国产精品久久久对白| 国模吧视频一区| 亚洲国产日韩一级| 亚洲一区二区伦理| 久久精品视频在线看| 一本色道久久综合亚洲精品高清| 先锋影音久久| 美女亚洲精品| 国产精品男人爽免费视频1| 一区二区三区自拍| 99av国产精品欲麻豆| 欧美一区二区三区四区夜夜大片| 亚洲精品乱码久久久久久蜜桃麻豆 | 一区二区三区精品久久久| 欧美一区二区三区精品电影| 亚洲精品乱码久久久久久久久 | 欧美福利一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 国产一区二区三区视频在线观看| 亚洲青色在线| 羞羞色国产精品| 一本一本久久a久久精品牛牛影视| 性色一区二区三区| 蜜臀av国产精品久久久久| 国产精品久久久久久久第一福利| 在线不卡免费欧美| 亚洲欧美日韩国产成人| 亚洲美女视频网| 久久精品国产精品| 欧美性事在线| 亚洲精品久久久久久一区二区| 欧美一区二区三区在线| 亚洲午夜91| 欧美成人精品h版在线观看| 国产私拍一区| 亚洲无亚洲人成网站77777| 亚洲欧洲一区二区三区| 先锋影音久久久| 欧美日韩国产一区二区三区地区| 国内精品久久久久影院 日本资源| 日韩视频第一页| 亚洲黄色一区| 久久国产手机看片| 国产精品高清在线| 亚洲精品日产精品乱码不卡| 亚洲电影毛片| 久久久青草婷婷精品综合日韩| 国产精品久久久久久久久久ktv| 亚洲人成在线观看一区二区| 亚洲国内精品| 久久男人av资源网站| 国产亚洲精品自拍| 亚洲影院在线观看| 亚洲欧美日韩一区二区三区在线观看 | 亚洲精品美女在线| 老司机久久99久久精品播放免费| 国产欧美丝祙| 亚洲永久免费观看| 亚洲欧美日韩一区在线观看| 欧美午夜宅男影院在线观看| 亚洲狼人精品一区二区三区| 亚洲精品日韩激情在线电影| 老司机午夜精品视频| 激情av一区二区| 亚洲国产高清一区| 男人的天堂成人在线| 怡红院精品视频在线观看极品| 久久国产福利| 美国成人毛片| 在线观看一区二区视频| 亚洲国产日韩欧美综合久久| 免费不卡中文字幕视频| 在线观看91精品国产入口| 久久精品视频播放| 巨乳诱惑日韩免费av| 国产一区二区黄| 亚洲电影专区| 欧美v日韩v国产v| 91久久久在线| 亚洲视频在线看| 国产精品美女久久久久av超清| 亚洲午夜精品国产| 国产日韩专区在线| 亚洲免费人成在线视频观看| 欧美精品在线一区| 亚洲另类自拍| 亚洲一区二区久久| 国产精品乱码人人做人人爱| 亚洲欧美影院| 久热精品视频在线免费观看 | 亚洲日本成人女熟在线观看| 欧美 日韩 国产精品免费观看| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩网站在线观看| 欧美午夜激情视频| 亚洲一区一卡| 久久久久久久久久久久久9999| 国内一区二区三区在线视频| 亚洲国产99精品国自产| 欧美激情精品久久久久久黑人 | 久久久亚洲高清| 在线免费观看视频一区| 亚洲最新在线| 国产精品成人一区二区艾草| 亚洲欧洲av一区二区| 久久一区二区精品| 亚洲精品国精品久久99热| 亚洲你懂的在线视频| 国产在线精品一区二区中文 | 中文日韩电影网站| 国产精品一区二区久久| 久久精品一区蜜桃臀影院| 欧美高清在线一区| 亚洲与欧洲av电影| 暖暖成人免费视频| 中文在线资源观看视频网站免费不卡| 久久国产夜色精品鲁鲁99| 亚洲激情精品| 欧美一区二区黄| 亚洲国产精品嫩草影院| 亚洲在线黄色| 激情五月***国产精品| 亚洲无限乱码一二三四麻| 国内成+人亚洲| 亚洲私拍自拍| 一区二区三区中文在线观看| 亚洲一区二区在线免费观看| 国产日韩一区二区三区在线| 99xxxx成人网| 国产真实久久| 亚洲一区二区高清视频| 国产在线视频不卡二| 亚洲午夜精品一区二区| 激情综合色综合久久| 亚洲在线一区二区三区| 在线免费观看成人网| 欧美一区二区国产| 亚洲精品久久| 久久夜色精品国产欧美乱| 亚洲天堂网站在线观看视频| 欧美gay视频激情| 欧美亚洲日本国产| 欧美特黄一级| 亚洲乱码国产乱码精品精98午夜| 国产日韩视频一区二区三区| 亚洲一级在线| 亚洲精品久久久久久一区二区 | 亚洲风情亚aⅴ在线发布| 国产精品伦子伦免费视频| 亚洲美女色禁图| 激情国产一区|