隨著電信數(shù)據(jù)傳輸對速率和帶寬的要求變得越來越迫切,原有建成的網(wǎng)絡(luò)是基于話音傳輸業(yè)務(wù)的網(wǎng)絡(luò),已不能適應(yīng)當(dāng)前的需求.而建設(shè)新的寬帶網(wǎng)絡(luò)需要相當(dāng)大的投資且建設(shè)工期長,無法滿足特定客戶對高速數(shù)據(jù)傳輸?shù)慕谛枨?反向復(fù)用技術(shù)是把一個(gè)單一的高速數(shù)據(jù)流在發(fā)送端拆散并放在兩個(gè)或者多個(gè)低速數(shù)據(jù)鏈路上進(jìn)行傳輸,在接收端再還原為高速數(shù)據(jù)流.該文提出一種基于FPGA的多路E1反向復(fù)用傳輸芯片的設(shè)計(jì)方案,使用四個(gè)E1構(gòu)成高速數(shù)據(jù)的透明傳輸通道,支持E1線路間最大相對延遲64ms,通過鏈路容量調(diào)整機(jī)制,可以動態(tài)添加或刪除某條E1鏈路,實(shí)現(xiàn)靈活、高效的利用現(xiàn)有網(wǎng)絡(luò)實(shí)現(xiàn)視頻、數(shù)據(jù)等高速數(shù)據(jù)的傳輸,能夠節(jié)省帶寬資源,降低成本,滿足客戶的需求.系統(tǒng)分為發(fā)送和接收兩部分.發(fā)送電路實(shí)現(xiàn)四路E1的成幀操作,數(shù)據(jù)拆分采用線路循環(huán)與幀間插相結(jié)合的方法,A路插滿一幀(30時(shí)隙)后,轉(zhuǎn)入B路E1間插數(shù)據(jù),依此類推,循環(huán)間插所有的數(shù)據(jù).接收電路進(jìn)行HDB3解碼,幀同步定位(子幀同步和復(fù)幀同步),線路延遲判斷,FIFO和SDRAM實(shí)現(xiàn)多路數(shù)據(jù)的對齊,最后按照約定的高速數(shù)據(jù)流的幀格式輸出數(shù)據(jù).整個(gè)數(shù)字電路采用Verilog硬件描述語言設(shè)計(jì),通過前仿真和后仿真的驗(yàn)證.以30萬門的FPGA器件作為硬件實(shí)現(xiàn),經(jīng)過綜合和布線,特別是寫約束和增量布線手動調(diào)整電路的布局,降低關(guān)鍵路徑延時(shí),最終滿足設(shè)計(jì)要求.
標(biāo)簽:
FPGA
多路
傳輸
片的設(shè)計(jì)
上傳時(shí)間:
2013-07-16
上傳用戶:asdkin
電路連接
由于數(shù)碼管品種多樣,還有共陰共陽的,下面我們使用一個(gè)數(shù)碼管段碼生成器(在文章結(jié)尾) 去解決不同數(shù)碼管的問題:
本例作者利用手頭現(xiàn)有的一位不知品牌的共陽數(shù)碼管:型號D5611 A/B,在Eagle 找了一個(gè) 類似的型號SA56-11,引腳功能一樣可以直接代換。所以下面電路圖使用SA56-11 做引腳說明。
注意:
1. 將數(shù)碼管的a~g 段,分別接到Arduino 的D0~D6 上面。如果你手上的數(shù)碼管未知的話,可以通過通電測量它哪個(gè)引腳對應(yīng)哪個(gè)字段,然后找出a~g 即可。
2. 分清共陰還是共陽。共陰的話,接220Ω電阻到電源負(fù)極;共陽的話,接220Ω電阻到電源+5v。
3. 220Ω電阻視數(shù)碼管實(shí)際工作亮度與手頭現(xiàn)有原件而定,不一定需要準(zhǔn)確。
4. 按下按鈕即停。
源代碼
由于我是按照段碼生成器默認(rèn)接法接的,所以不用修改段碼生成器了,直接在段碼生成器選擇共陽極,再按“自動”生成數(shù)組就搞定。
下面是源代碼,由于偷懶不用寫循環(huán),使用了部分AVR 語句。
PORTD 這個(gè)是AVR 的端口輸出控制語句,8 位對應(yīng)D7~D0,PORTD=00001001 就是D3 和D0 是高電平。
PORTD = a;就是找出相應(yīng)的段碼輸出到D7~D0。
DDRD 這個(gè)是AVR 語句中控制引腳作為輸出/輸入的語句。DDRD = 0xFF;就是D0~D7 全部
作為輸出腳了。
ARDUINO CODECOPY
/*
Arduino 單數(shù)碼管骰子
Ansifa 2011-12-28
*/
//定義段碼表,表中十個(gè)元素由LED 段碼生成器生成,選擇了共陽極。
inta[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
voidsetup()
{
DDRD = 0xFF; //AVR 定義PortD 的低七位全部用作輸出使用。即0xFF=B11111111對
應(yīng)D7~D0
pinMode(12, INPUT); //D12用來做骰子暫停的開關(guān)
}
voidloop()
{
for(int i = 0; i < 10; i++)
{
//將段碼輸出PortD 的低7位,即Arduino 的引腳D0~D6,這樣需要取出PORTD 最高位,即
D7的狀態(tài),與段碼相加,之后再輸出。
PORTD = a[i];
delay(50); //延時(shí)50ms
while(digitalRead(12)) {} //如果D12引腳高電平,則在此死循環(huán),暫停LED 跑
動
}
}
標(biāo)簽:
Arduino
10
數(shù)碼管
實(shí)驗(yàn)
上傳時(shí)間:
2013-10-15
上傳用戶:baitouyu
問題描述
序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子序列,相應(yīng)的遞增下標(biāo)序列為<2,3,5,7>。
一般地,給定一個(gè)序列X=<x1,x2,…,xm>,則另一個(gè)序列Z=<z1,z2,…,zk>是X的子序列,是指存在一個(gè)嚴(yán)格遞增的下標(biāo)序列〈i1,i2,…,ik〉使得對于所有j=1,2,…,k使Z中第j個(gè)元素zj與X中第ij個(gè)元素相同。
給定2個(gè)序列X和Y,當(dāng)另一序列Z既是X的子序列又是Y的子序列時(shí),稱Z是序列X和Y的公共子序列。
你的任務(wù)是:給定2個(gè)序列X、Y,求X和Y的最長公共子序列Z。
標(biāo)簽:
lt
序列
上傳時(shí)間:
2014-01-25
上傳用戶:netwolf