基于FPGA的數(shù)據(jù)無阻塞交換設(shè)計(jì)
發(fā)布時(shí)間:2008/8/11 0:00:00 訪問次數(shù):584
隨著fpga和大規(guī)模集成電路的發(fā)展,數(shù)據(jù)交換的實(shí)現(xiàn)有了新的方法。在該設(shè)計(jì)中,fpga完成串口數(shù)據(jù)信號(hào)(txd、rxd)的交換,專用的時(shí)隙交換芯片完成串口握手線(rts、cts、dtr、dsr、dcd、ri)的交換。內(nèi)部有硬件沖突監(jiān)測(cè)功能,能夠自動(dòng)檢測(cè)到2個(gè)終端同時(shí)連接到同一個(gè)信道或2個(gè)信道連接到同一個(gè)終端,并自動(dòng)將舊的連接狀態(tài)拆除,建立新的鏈路。這樣就使原來的連接終端進(jìn)入空閑狀態(tài),保證終端和信道時(shí)間軸上的無縫隙切換。通過判斷ri的狀態(tài),它還可以監(jiān)視信道dce的狀態(tài),判斷出信道是否有請(qǐng)求,并上報(bào)給監(jiān)控。
技術(shù)指標(biāo)如下:①交換規(guī)模:40×40×8;②最大切換建立時(shí)間:200μs;③握手線最大傳輸延時(shí):125μs;④數(shù)據(jù)線最大傳輸延時(shí):小于1μs;⑤串行數(shù)據(jù)速率:8.192 mbps。
1 硬件實(shí)現(xiàn)
數(shù)據(jù)交換矩陣在主控單元的控制下,將終端數(shù)據(jù)端口和信道數(shù)據(jù)端口進(jìn)行物理交換。交換矩陣包括dte端口40個(gè)(包含24個(gè)dte接口,16個(gè)dte/dce可配置接口),dce端口40個(gè)(包含24個(gè)dce接口,16個(gè)dte/dce可配置接口)。數(shù)據(jù)交換矩陣是由數(shù)據(jù)線交換矩陣(txd、rxd)、握手線交換矩陣(rts、cts、dtr、dsr、dcd、ri)和交換控制模塊(單片機(jī)實(shí)現(xiàn))組成。交換控制模塊管理數(shù)據(jù)線和握手線2個(gè)交換模塊,連續(xù)對(duì)2個(gè)模塊進(jìn)行操作。數(shù)據(jù)線交換由可編程邏輯器件完成,握手線交換由時(shí)隙交換器件完成。
數(shù)據(jù)線交換模塊由fpga實(shí)現(xiàn),選用30萬門的可編程邏輯器件實(shí)現(xiàn),其資源已經(jīng)滿足了數(shù)據(jù)線路交換的需求,并可以再擴(kuò)展。握手線交換模塊選用tsi(time slot interchange)芯片mt90820,具有16對(duì)收發(fā)數(shù)據(jù)流,最大可實(shí)現(xiàn)2 048×2 048通道無阻塞交換。交換矩陣的控制單元選用通用的8051系列單片機(jī)。cpld_1、cpld_2和cpld_3選用max7064,可以接4組串口握手線(cpld_1、cpld_2和cpld_3的功能也可以用一個(gè)較大資源的fpga來實(shí)現(xiàn),這里選用小的cpld來完成)。
fpga和cpld內(nèi)部的功能都是通過硬件描述語言vhdl實(shí)現(xiàn)的。fpga完成數(shù)據(jù)信號(hào)的交換、傳輸切換命令、讀取dce信道狀態(tài)等功能。它模擬了一個(gè)intel的8位總線接口(連接控制單元);一個(gè)motorola的16位總線接口(連接時(shí)隙交換芯片),從而進(jìn)行接口時(shí)序的變換。fpga中的數(shù)據(jù)交換狀態(tài)寄存器與相對(duì)應(yīng)握手線交換芯片中的所有寄存器一致,來確保數(shù)據(jù)線和握手線交換同步。cpld完成4組串口握手線的串并轉(zhuǎn)換、組幀、dte/dce選擇等功能。
cpld_1只能接dte,每個(gè)dte的6條握手線(2發(fā)4收)對(duì)應(yīng)2個(gè)8位寄存器、1個(gè)發(fā)送寄存器、1個(gè)接收寄存器。rst/dtr對(duì)應(yīng)發(fā)送寄存器的前2位,cts\dsr\dcd\ji對(duì)應(yīng)接收寄存器的前4位。當(dāng)有同步信號(hào)syn時(shí)(8 khz),每個(gè)發(fā)送寄存器串行移位輸出數(shù)據(jù),4個(gè)發(fā)送寄存器每隔一幀循環(huán)地發(fā)送數(shù)據(jù),則組成1個(gè)每幀為128時(shí)隙、128×8位、8.192 mb/s數(shù)據(jù)流(sti),送入握手線交換矩陣。dte0到dte3依次占用了數(shù)據(jù)幀中的第0到第3時(shí)隙,剩余都空閑。接收數(shù)據(jù)流過程相反。由握手線交換矩陣送過來固定幀格式的數(shù)據(jù)流(sto)進(jìn)入cpld,通過同步信號(hào)syn提取第0到第3時(shí)隙的前4位,放入相應(yīng)接收寄存器中,再依次對(duì)應(yīng)到各dte的握手線信號(hào)(cts\dsr\dcd\ri)。這也就是信道(dce)端口送來的握手信號(hào),從而實(shí)現(xiàn)了交換。每個(gè)dte占用的時(shí)隙是固定的,每幀中1個(gè)dte占用1個(gè)時(shí)隙。如dte0占用第0時(shí)隙,以此類推。
cpld_2只能接dce,每個(gè)dce的6條握手線(4發(fā)2收)也對(duì)應(yīng)2個(gè)8位寄存器。cts\dsr\dcd\ri對(duì)應(yīng)發(fā)送寄存器的前4位,rst/dtr對(duì)應(yīng)接收寄存器的前2位。當(dāng)有同步信號(hào)syn時(shí)(8 khz),每個(gè)發(fā)送寄存器串行移位輸出數(shù)據(jù),4個(gè)發(fā)送寄存器每隔一幀循環(huán)地發(fā)送數(shù)據(jù),則組成1個(gè)數(shù)據(jù)流(sti),送入握手線交換矩陣。dce0到dce3依次占用了數(shù)據(jù)幀中的第0到第3時(shí)隙,剩余都空閑。接收數(shù)據(jù)流過程相反。由握手線交換矩陣送過來固定幀格式的數(shù)據(jù)流(sto)進(jìn)入cpld,通過同步信號(hào)syn提取第0到第3時(shí)隙的前4位,放入相應(yīng)接收寄存器中,再依次對(duì)應(yīng)到各dce的握手線信號(hào)(rts\dtr)。這也就是終端(dte)端口送來的握手信號(hào),從而實(shí)現(xiàn)了交換。每個(gè)dce占用的時(shí)隙是固定的,每幀中1個(gè)dce占用1個(gè)時(shí)隙。如dce0占用第0時(shí)隙,以此類推。
cpld_3是cpld_1和cpld_2功能的合并?筛鶕(jù)用戶的需要,在fpga的控制下,在cpld內(nèi)部通過數(shù)據(jù)線和握手線的交叉變換可以把dte變換成dce,交叉方法類似于通用的rs232數(shù)據(jù)交叉線的做法。這樣做主要為了把dte當(dāng)作dce用。當(dāng)該dte端口與其他dte端口進(jìn)行交換時(shí),要把它變成dce端口用;當(dāng)該dte端口與dce端口進(jìn)行交換時(shí),不進(jìn)行改變?nèi)匀蛔鳛閐te端口用。在確定是dte或是dce后,可依據(jù)cpld_1和cpld_2的方法,送人握手線交換矩陣。
2 軟件實(shí)現(xiàn)
軟件實(shí)現(xiàn)采用c語言進(jìn)行模塊化設(shè)計(jì),主要包括主程序單元、切換單元、查詢單元、中斷單元、主動(dòng)上報(bào)單元和看門狗。主程序包括數(shù)據(jù)交換矩陣的初始化配置和各個(gè)功能模塊的判斷選擇。切換單元控制fpga和時(shí)隙芯片進(jìn)行各個(gè)端口的切換連接、拆除連接、沖突檢測(cè)以及強(qiáng)拆連接。中斷單
隨著fpga和大規(guī)模集成電路的發(fā)展,數(shù)據(jù)交換的實(shí)現(xiàn)有了新的方法。在該設(shè)計(jì)中,fpga完成串口數(shù)據(jù)信號(hào)(txd、rxd)的交換,專用的時(shí)隙交換芯片完成串口握手線(rts、cts、dtr、dsr、dcd、ri)的交換。內(nèi)部有硬件沖突監(jiān)測(cè)功能,能夠自動(dòng)檢測(cè)到2個(gè)終端同時(shí)連接到同一個(gè)信道或2個(gè)信道連接到同一個(gè)終端,并自動(dòng)將舊的連接狀態(tài)拆除,建立新的鏈路。這樣就使原來的連接終端進(jìn)入空閑狀態(tài),保證終端和信道時(shí)間軸上的無縫隙切換。通過判斷ri的狀態(tài),它還可以監(jiān)視信道dce的狀態(tài),判斷出信道是否有請(qǐng)求,并上報(bào)給監(jiān)控。
技術(shù)指標(biāo)如下:①交換規(guī)模:40×40×8;②最大切換建立時(shí)間:200μs;③握手線最大傳輸延時(shí):125μs;④數(shù)據(jù)線最大傳輸延時(shí):小于1μs;⑤串行數(shù)據(jù)速率:8.192 mbps。
1 硬件實(shí)現(xiàn)
數(shù)據(jù)交換矩陣在主控單元的控制下,將終端數(shù)據(jù)端口和信道數(shù)據(jù)端口進(jìn)行物理交換。交換矩陣包括dte端口40個(gè)(包含24個(gè)dte接口,16個(gè)dte/dce可配置接口),dce端口40個(gè)(包含24個(gè)dce接口,16個(gè)dte/dce可配置接口)。數(shù)據(jù)交換矩陣是由數(shù)據(jù)線交換矩陣(txd、rxd)、握手線交換矩陣(rts、cts、dtr、dsr、dcd、ri)和交換控制模塊(單片機(jī)實(shí)現(xiàn))組成。交換控制模塊管理數(shù)據(jù)線和握手線2個(gè)交換模塊,連續(xù)對(duì)2個(gè)模塊進(jìn)行操作。數(shù)據(jù)線交換由可編程邏輯器件完成,握手線交換由時(shí)隙交換器件完成。
數(shù)據(jù)線交換模塊由fpga實(shí)現(xiàn),選用30萬門的可編程邏輯器件實(shí)現(xiàn),其資源已經(jīng)滿足了數(shù)據(jù)線路交換的需求,并可以再擴(kuò)展。握手線交換模塊選用tsi(time slot interchange)芯片mt90820,具有16對(duì)收發(fā)數(shù)據(jù)流,最大可實(shí)現(xiàn)2 048×2 048通道無阻塞交換。交換矩陣的控制單元選用通用的8051系列單片機(jī)。cpld_1、cpld_2和cpld_3選用max7064,可以接4組串口握手線(cpld_1、cpld_2和cpld_3的功能也可以用一個(gè)較大資源的fpga來實(shí)現(xiàn),這里選用小的cpld來完成)。
fpga和cpld內(nèi)部的功能都是通過硬件描述語言vhdl實(shí)現(xiàn)的。fpga完成數(shù)據(jù)信號(hào)的交換、傳輸切換命令、讀取dce信道狀態(tài)等功能。它模擬了一個(gè)intel的8位總線接口(連接控制單元);一個(gè)motorola的16位總線接口(連接時(shí)隙交換芯片),從而進(jìn)行接口時(shí)序的變換。fpga中的數(shù)據(jù)交換狀態(tài)寄存器與相對(duì)應(yīng)握手線交換芯片中的所有寄存器一致,來確保數(shù)據(jù)線和握手線交換同步。cpld完成4組串口握手線的串并轉(zhuǎn)換、組幀、dte/dce選擇等功能。
cpld_1只能接dte,每個(gè)dte的6條握手線(2發(fā)4收)對(duì)應(yīng)2個(gè)8位寄存器、1個(gè)發(fā)送寄存器、1個(gè)接收寄存器。rst/dtr對(duì)應(yīng)發(fā)送寄存器的前2位,cts\dsr\dcd\ji對(duì)應(yīng)接收寄存器的前4位。當(dāng)有同步信號(hào)syn時(shí)(8 khz),每個(gè)發(fā)送寄存器串行移位輸出數(shù)據(jù),4個(gè)發(fā)送寄存器每隔一幀循環(huán)地發(fā)送數(shù)據(jù),則組成1個(gè)每幀為128時(shí)隙、128×8位、8.192 mb/s數(shù)據(jù)流(sti),送入握手線交換矩陣。dte0到dte3依次占用了數(shù)據(jù)幀中的第0到第3時(shí)隙,剩余都空閑。接收數(shù)據(jù)流過程相反。由握手線交換矩陣送過來固定幀格式的數(shù)據(jù)流(sto)進(jìn)入cpld,通過同步信號(hào)syn提取第0到第3時(shí)隙的前4位,放入相應(yīng)接收寄存器中,再依次對(duì)應(yīng)到各dte的握手線信號(hào)(cts\dsr\dcd\ri)。這也就是信道(dce)端口送來的握手信號(hào),從而實(shí)現(xiàn)了交換。每個(gè)dte占用的時(shí)隙是固定的,每幀中1個(gè)dte占用1個(gè)時(shí)隙。如dte0占用第0時(shí)隙,以此類推。
cpld_2只能接dce,每個(gè)dce的6條握手線(4發(fā)2收)也對(duì)應(yīng)2個(gè)8位寄存器。cts\dsr\dcd\ri對(duì)應(yīng)發(fā)送寄存器的前4位,rst/dtr對(duì)應(yīng)接收寄存器的前2位。當(dāng)有同步信號(hào)syn時(shí)(8 khz),每個(gè)發(fā)送寄存器串行移位輸出數(shù)據(jù),4個(gè)發(fā)送寄存器每隔一幀循環(huán)地發(fā)送數(shù)據(jù),則組成1個(gè)數(shù)據(jù)流(sti),送入握手線交換矩陣。dce0到dce3依次占用了數(shù)據(jù)幀中的第0到第3時(shí)隙,剩余都空閑。接收數(shù)據(jù)流過程相反。由握手線交換矩陣送過來固定幀格式的數(shù)據(jù)流(sto)進(jìn)入cpld,通過同步信號(hào)syn提取第0到第3時(shí)隙的前4位,放入相應(yīng)接收寄存器中,再依次對(duì)應(yīng)到各dce的握手線信號(hào)(rts\dtr)。這也就是終端(dte)端口送來的握手信號(hào),從而實(shí)現(xiàn)了交換。每個(gè)dce占用的時(shí)隙是固定的,每幀中1個(gè)dce占用1個(gè)時(shí)隙。如dce0占用第0時(shí)隙,以此類推。
cpld_3是cpld_1和cpld_2功能的合并?筛鶕(jù)用戶的需要,在fpga的控制下,在cpld內(nèi)部通過數(shù)據(jù)線和握手線的交叉變換可以把dte變換成dce,交叉方法類似于通用的rs232數(shù)據(jù)交叉線的做法。這樣做主要為了把dte當(dāng)作dce用。當(dāng)該dte端口與其他dte端口進(jìn)行交換時(shí),要把它變成dce端口用;當(dāng)該dte端口與dce端口進(jìn)行交換時(shí),不進(jìn)行改變?nèi)匀蛔鳛閐te端口用。在確定是dte或是dce后,可依據(jù)cpld_1和cpld_2的方法,送人握手線交換矩陣。
2 軟件實(shí)現(xiàn)
軟件實(shí)現(xiàn)采用c語言進(jìn)行模塊化設(shè)計(jì),主要包括主程序單元、切換單元、查詢單元、中斷單元、主動(dòng)上報(bào)單元和看門狗。主程序包括數(shù)據(jù)交換矩陣的初始化配置和各個(gè)功能模塊的判斷選擇。切換單元控制fpga和時(shí)隙芯片進(jìn)行各個(gè)端口的切換連接、拆除連接、沖突檢測(cè)以及強(qiáng)拆連接。中斷單
熱門點(diǎn)擊
- 典型ASIC設(shè)計(jì)主要流程
- LDRA工具套件支持最新發(fā)布的MISRA C
- Agilent推出GENESYS EDA軟件
- FPGA設(shè)計(jì)層次分析
- 在選用FPGA進(jìn)行設(shè)計(jì)時(shí)如何降低功耗
- Synopsys推出IC COMPILER布
- PLC可編程序控制器基礎(chǔ)知識(shí)
- 時(shí)序邏輯等效性檢查方法使設(shè)計(jì)風(fēng)險(xiǎn)降至最低
- FPGA器件選型研究
- 基于FPGA的數(shù)據(jù)無阻塞交換設(shè)計(jì)
推薦技術(shù)資料
- 聲道前級(jí)設(shè)計(jì)特點(diǎn)
- 與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究