專利名稱::一種程控交換機中的帶內(nèi)信號發(fā)送方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于通信
技術(shù)領(lǐng)域:
,具體的說,涉及一種程控交換機的帶內(nèi)信號發(fā)送方法及系統(tǒng)。
背景技術(shù):
:程控交換機中用到許多帶內(nèi)信號如雙音多頻信號(DTMF)、局間的多頻互控信號(MFC)等;傳統(tǒng)的產(chǎn)生這些信號的方法,一般是將信號通過8000Hz采樣得出一組N點的數(shù)據(jù)表(N為采樣次數(shù),取值范圍為08000,在實際使用中可以根據(jù)需要進行設(shè)定);將采樣得到這些數(shù)據(jù)存儲在中央處理機(CPU)的存儲器中,CPU通過每1/8000秒發(fā)送一個數(shù)據(jù)、循環(huán)發(fā)送的方式,在CPU輸出HW(HighWay,高速通路)的特定時隙將數(shù)據(jù)廣播發(fā)出。假設(shè)有四種頻點的信號需要發(fā)送,頻點分別是fD、fl、f2、f3,則四種信號生成的數(shù)據(jù)分別如下所示Data0[i]=P0*COS(2、*fD*i/8000)Datal[i]=Pl*COS(2*7i*fl*i/8000)Data2[i]=P2*COS(2*7i*f2*i/8000)Data3[i]=P3*COS(2*7t*f3*i/8000)其中DataOData3分別表示四種信號在采樣點i采樣得到的數(shù)據(jù),P0P3是四個頻點所對應(yīng)的功率,i=0N-l??梢钥闯?,如果有四種頻點的信號需要發(fā)送,則一共會采樣并存儲4承N個數(shù)據(jù),它們在CPU的存儲器中存放的順序如下表1所示DataO[O]DatalData2Data3DataO[l]Datal[l]Data2[1]Data3[1]DataO[N-l]Datal[N-l]Data2[N-l]Data3[N-l〗由表l可以看出,^N個數(shù)據(jù)在存儲器中分為N組存放,每組有四個數(shù)據(jù),分別包括四種頻點的信號在每個采樣點所得到的數(shù)據(jù)??梢哉J(rèn)為是以每個采樣點得到的數(shù)據(jù)進行分組的。CPU開始工作時,在第一個1/8000秒的時刻,將存儲器中存儲的前四個即第一組數(shù)據(jù)DataOData3讀出,分別放到輸出HW的TS0TS3時隙的發(fā)送緩沖區(qū);在接下來的一個1/8000秒的時刻,將第二組數(shù)據(jù)DataO[l]Data3[1]讀出,分別放到輸出HW的TS0TS3時隙的發(fā)送緩沖區(qū)。如此每到一個1/8000秒時刻,都輸出一組數(shù)據(jù);并且按照這樣的方法循環(huán),這樣在CPU輸出HW的TS0TS3時隙,就有fDf3四種信號的持續(xù)的廣播發(fā)送。這種方法的缺點是1、有多少種信號就要占用多少個輸出時隙在一些應(yīng)用中,既需要DTMF信號,又需要MFC信號,可能還需要很多的固定音信號,信號的種類可能超過CPU輸出HW的總時隙數(shù),這樣的話,這種方法就無能為力了;2、不同的信號占用不同的固定的時隙,比如上面的例子,fO占0時隙,fl占1時隙;對接收方來說,要想在1時隙得到fD的信號,中間還要加一個時隙交換的模塊,增加了硬件成本和電路復(fù)雜度;3、各種信號一旦占用該時隙,則該時隙就不能用作他用。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種程控交換機中的帶內(nèi)信號發(fā)送方法及系統(tǒng),達(dá)到靈活使用時隙的目的。為了解決上述技術(shù)問題,本發(fā)明提供了一種程控交換機中的帶內(nèi)信號發(fā)送方法,通過程控交換機包括的控制模塊、主控單元及處理器對帶內(nèi)信號進行發(fā)送,所述方法包括以下步驟(1)設(shè)置每種信號的編號,將每種信號在所有釆樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;(2)控制模塊向主控單元發(fā)出發(fā)送信號命令;(3)主控單元接收到所迷發(fā)送信號命令后,解析所述命令的內(nèi)容,如果所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號,則將編號M寫入與時隙i相對應(yīng)的命令寄存器;(4)處理器從與時隙i相對應(yīng)的命令寄存器讀取值M,根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),將所述數(shù)據(jù)發(fā)送。進一步的,步驟(4)中所述根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,包括令A(yù)ddressM=AddressO+M*N,其中N為采樣點數(shù),NG)。進一步的,所述命令寄存器的長度為一個字節(jié)。進一步的,步驟(l)中還包括,向所述命令寄存器中寫入非信號編號的數(shù)值,代表初始不發(fā)送數(shù)據(jù);相應(yīng)的,步驟(4)中處理器從與時隙i相對應(yīng)的命令寄存器讀取的值,如果不為M,則不發(fā)送信號。進一步的,步驟(2)中所述控制模塊向主控單元發(fā)出發(fā)送信號命令,如果所述發(fā)送信號命令包括非信號編號,則表示不需要發(fā)送信號。進一步的,步驟(4)中所述處理器從與時隙i相對應(yīng)的命令寄存器讀取值,包括處理器依次讀取每個命令寄存器的值。進一步的,步驟(4)中所述根據(jù)地址找到所述數(shù)據(jù)的步驟后還包括并將所述數(shù)據(jù)拷貝到發(fā)送緩沖區(qū),然后將所述數(shù)據(jù)發(fā)送。為了解決上述技術(shù)問題,本發(fā)明還提供了一種程控交換機中的帶內(nèi)信號發(fā)送系統(tǒng),包括控制模塊、主控單元及處理器,所述控制模塊與所述主控單元耦、接,所述主控單元與所述處理器耦接,所述控制模塊用于向主控單元發(fā)出發(fā)送信號命令,所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號;所述主控單元及所述處理器用于設(shè)置每種信號的編號,將每種信號在所有釆樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并用于在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;所述主控單元并用于在接收到所述控制模塊的發(fā)送信號命令后,解析所述命令的內(nèi)容,將編號M寫入與時隙i相對應(yīng)的命令寄存器;所述處理器并用于從與時隙i相對應(yīng)的命令寄存器讀取值M,根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),并將所述數(shù)據(jù)發(fā)送。進一步的,所述根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,包括令A(yù)ddressM=AddressO+M*N,其中N為采樣點數(shù),N6。進一步的,所述系統(tǒng)還包括發(fā)送緩沖區(qū)模塊,與所述處理器相連,用于緩存所述處理器找到的數(shù)據(jù)。從上面的描述可以看出,本發(fā)明具有以下的有益效果1、CPU所能發(fā)送的信號不受輸出時隙數(shù)的限制;2、不用增加交換模塊,CPU可以在自己的任何輸出時隙上輸出任何信號;3、信號的發(fā)送都是通過讀取與時隙相對應(yīng)的寄存器的值,從而隨機地占用時隙,所以任何時隙都沒有被強占,可以根據(jù)命令靈活使用。圖1為本發(fā)明的帶內(nèi)信號發(fā)送方法流程圖。圖2為本發(fā)明應(yīng)用實例的硬件系統(tǒng)結(jié)構(gòu)框圖。圖3為本發(fā)明應(yīng)用實例中主控單元(HOSTCPU)的信號發(fā)送方法流程圖。圖4為本發(fā)明應(yīng)用實例中處理器的信號發(fā)送方法流程圖。具體實施方式本發(fā)明的主要思想是通過改變對信號進行采樣后得到的數(shù)據(jù)在存儲器中的存儲方式,并且在系統(tǒng)存儲器中設(shè)置與時隙相對應(yīng)的命令寄存器。對信號進行編號后,將要發(fā)送的信號的編號填入命令寄存器,通過讀取命令寄存器中的編號,根據(jù)所述編號找到數(shù)據(jù)在存儲器中的地址后,將所述編號相對應(yīng)的數(shù)據(jù)在所述命令寄存器相對應(yīng)的時隙發(fā)送,從而達(dá)到動態(tài)利用時隙的效果。在本發(fā)明所述的方法中,數(shù)據(jù)在存儲器中的存儲方式如下表2:<table>tableseeoriginaldocumentpage8</column></row><table>Datal[N-l]Data2Data2[2]Data2[N-l]Data3Data3[N-l]由表2可以看到,存儲器中存儲的數(shù)據(jù)的數(shù)量還是一樣的,只是數(shù)據(jù)的存儲排列方式不一樣,每種信號在所有采樣點得到的數(shù)據(jù)是連續(xù)存儲在一起的,可以認(rèn)為是以信號的種類來進行分組的。具體來說,對第一種信號在第一個1/8000秒時刻進行采樣得到的數(shù)據(jù)與在后續(xù)的每一個1/8000秒時刻對第一種信號進行采樣得到的數(shù)據(jù)連續(xù)存儲在一起。對于其他種類的信號也是如此。這樣對于每一種信號來說,對信號采樣得到的N點的數(shù)據(jù)是連續(xù)存放在一起,所以如果假設(shè)DataO的在存儲器中的地址是AddressO,則Datal[O]的地址就是AddressO+N,Data2的地址就是AddressO+2N,Data3的地址就是AddressO+3N。如此類推,如果有M種信號,分別將信號編號為0M,則第一種信號的第一個數(shù)據(jù)的地址是AddressO,則第M種信號的第一個數(shù)據(jù)的地址就是AddressO+M*N。參照圖l所示,為本發(fā)明的帶內(nèi)信號發(fā)送方法流程圖。所述方法包括以下步驟步驟101:設(shè)置每種信號的編號,將每種信號在所有采樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;步驟102:控制模塊向主控單元發(fā)出發(fā)送信號命令;步驟103:主控單元接收到所迷發(fā)送信號命令后,解析所述命令的內(nèi)容,如果所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號,則將編號M寫入與時隙i相對應(yīng)的命令寄存器;步驟104:處理器從與時隙i相對應(yīng)的命令寄存器讀取值M,根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),將所述數(shù)據(jù)發(fā)送。在本方法中,CPU要在存儲器中為每個時隙開辟一個與該時隙相對應(yīng)的命令寄存器,設(shè)置每種信號的編號,如杲有M種數(shù)據(jù)就設(shè)置編號為0~M-l;每個命令寄存器中根據(jù)使用需要分別隨機寫入一種信號的編號。這樣CPU根據(jù)命令寄存器的值(即信號的編號)來決定向輸出時隙輸出什么數(shù)據(jù)。比如,如果為每個時隙用一個Byte來作為命令寄存器,要在O時隙發(fā)送數(shù)據(jù),則在與其相對應(yīng)的命令寄存器ByteO中填入相應(yīng)信號編號。CPU在1/8000秒時刻輸出的數(shù)據(jù)在存儲器中的地址通過以下計算方法得到AddressM=AddressO+M*N;下面通過具體應(yīng)用中的實例來對本發(fā)明技術(shù)方案進行示例性的說明假設(shè)有32個時隙,則CPU為每個時隙用一個字節(jié)(Byte)的存儲器空間來作為命令寄存器,當(dāng)然也可以用其他的數(shù)值來作為命令寄存器的長度,或者以比特為長度單位,比如4比特來作為命令寄存器,本發(fā)明對此不加以限定。如下表3所示為采用一個Byte的存儲器空間來作為命令寄存器的示意<table>tableseeoriginaldocumentpage10</column></row><table>在我們所舉的例子中有四種信號,為四種信號編號為o~3,那么命令寄存器隨機寫入的值是0~3時,表示該時隙要發(fā)送與所述編號相對應(yīng)的信號。每個命令寄存器是一個Byte,值可以是0~255,就是說可以最大支持256種信號,如果信號多于256種,只要把命令寄存器的長度設(shè)置為16bit(位)的存儲單元Word或更長。參照圖2所示,為本發(fā)明應(yīng)用實例的硬件系統(tǒng)結(jié)構(gòu)框圖,本發(fā)明所應(yīng)用的硬件系統(tǒng)包括上一級控制模塊201、主控單元(CPU)202、處理器203及下級信號傳輸及接收模塊204。所述控制模塊201用于向主控單元發(fā)出發(fā)送信號命令,所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號;所述主控單元202及所述處理器203用于設(shè)置每種信號的編號,將每種信號在所有采樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并用于在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;所述主控單元202并用于在接收到所述控制模塊的發(fā)送信號命令后,解析所述命令的內(nèi)容,如果所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號,則將編號M寫入與時隙i相對應(yīng)的命令寄存器;所述處理器203用于從與時隙i相對應(yīng)的命令寄存器讀取值M,4艮據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),并將所述數(shù)據(jù)發(fā)送。所述根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,包括令A(yù)ddressM=AddressO+M*N,其中N為采樣點數(shù),N€。所述系統(tǒng)還包括發(fā)送緩沖區(qū)模塊(圖中未示出),發(fā)送緩沖區(qū)模塊與所述處理器203相連,用于緩存處理器203找到的數(shù)據(jù)。系統(tǒng)工作時,處理器203先將找到的數(shù)據(jù)存入緩沖區(qū)模塊,然后再從緩沖區(qū)模塊中讀取數(shù)據(jù),進行發(fā)送。其中的核心部分是主控單元(CPU)202和處理器203;主控單元202通過一些硬件接口與上一級控制模塊201交互,它們之間的接口可以有很多種,比如RS232、以太網(wǎng)、同步串口等。主控單元202通過地址、數(shù)據(jù)、控制總線與處理器203交互,在本實例中處理器203是一個DSP(數(shù)字信號處理器),當(dāng)然,實際應(yīng)用中也可以為其他種類的處理器,本發(fā)明對此不加以限定。一般情況,主控單元(CPU)202與處理器203之間是通過一片雙端口隨機存取存儲器(DPRAM)來交互的,在本實例中,這個DPRAM集成在DSP即處理器203內(nèi)部,主控單元(CPU)202和處理器203都能訪問。在本實例中假設(shè)處理器203的輸出PCM(PulseCodeModulation,脈沖編碼調(diào)制)HW是2.048Mbits/s的,就是說有32個時隙,則在DPRAM中,開辟如表3所示的32個byte的命令寄存器,每個命令寄存器對應(yīng)一個時隙。假設(shè)有4種信號需要產(chǎn)生,用編號"0~3"分別代表4種信號,用編號"4"代表該時隙不用發(fā)送信號,主控單元(CPU)202根據(jù)上一級控制模塊201的命令要求,在命令寄存器中填入04中的任意一個。處理器203先將4種信號的數(shù)據(jù)按上表2所示的方式存儲到自己的內(nèi)存中,然后,讀取命令寄存器的值,按上述算法,每125us(1/8000秒)查詢、計算一次,找到數(shù)據(jù),并拷貝到PCMHW發(fā)送緩沖區(qū)的值,這樣相應(yīng)時隙輸出的就是需要的信號。參照圖3所示,為本發(fā)明應(yīng)用實例中主控單元(HOSTCPU)的信號發(fā)送方法流程圖,在初始化的時候,與信號發(fā)送相關(guān)的初始化,主要是對命令寄存器的初始化,將32個命令寄存器初始化設(shè)置為"4",意思是告訴DSP初始不用發(fā)送信號。接下來,跟信號發(fā)送有關(guān)的搡作就是循環(huán)檢測上級控制模塊是否有發(fā)送信號的命令,命令所要包含的信息包括需要在i(i取值為0~31)時隙發(fā)送第M(M為0~4中的任意一個數(shù)值)種信號,如果上級控制模塊有發(fā)送信號的命令,HOSTCPU則將信號的編號M寫入到第i個命令寄存器中,如果沒有所述發(fā)送信號命令,則進行其他處理。參照圖4所示,為本發(fā)明應(yīng)用實例中處理器的信號發(fā)送方法流程圖,所述方法包括主流程和中斷流程。每一幀(125us)產(chǎn)生一次中斷。主流程主要就是一些初始化工作,數(shù)據(jù)表的排列工作,完成相應(yīng)工作后就中斷使能,接下來就閃燈。中斷使能后,每125us就產(chǎn)生一次中斷,進入中斷流程運行;中斷流程首先要保護現(xiàn)場,然后令i-o,表示從第0個時隙開始讀取命令寄存器的值,依次讀取32個時隙的命令寄存器的值M,如果M的值是03,說明該時隙需要發(fā)送信號,根據(jù)M的具體值及算法,得到數(shù)據(jù)存儲在存儲器中的地址,將根據(jù)該地址找到的數(shù)據(jù)拷貝到發(fā)送緩沖區(qū),串口硬件底層會自動將這個緩沖區(qū)的值發(fā)送到PCMHW線上,發(fā)送給下級信號接收及傳輸模塊;如果M的值不在03之間,則說明該時隙不用發(fā)送信號。32個時隙的命令寄存器掃描完后,恢復(fù)現(xiàn)場退出中斷流程。在實際處理中,也可能有不同的時隙數(shù),所以,概括的說,是在所有時隙對應(yīng)的所有命令寄存器掃描完成以后才退出中斷流程。當(dāng)然,上述具體實施方式不是對本發(fā)明技術(shù)方案的進一步限定,任何熟悉本領(lǐng)域的技術(shù)人員對本發(fā)明技術(shù)特征所作的等同替換或相應(yīng)改進,仍在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種程控交換機中的帶內(nèi)信號發(fā)送方法,通過程控交換機包括的控制模塊、主控單元及處理器對帶內(nèi)信號進行發(fā)送,其特征在于,所述方法包括以下步驟(1)設(shè)置每種信號的編號,將每種信號在所有采樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;(2)控制模塊向主控單元發(fā)出發(fā)送信號命令;(3)主控單元接收到所述發(fā)送信號命令后,解析所述命令的內(nèi)容,如果所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號,則將編號M寫入與時隙i相對應(yīng)的命令寄存器;(4)處理器從與時隙i相對應(yīng)的命令寄存器讀取值M,根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),將所述數(shù)據(jù)發(fā)送。2、如權(quán)利要求1所述的方法,其特征在于,步驟(4)中所述根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,包括令A(yù)ddressM=AddressO+M*N,其中N為采樣點數(shù),N6。3、如權(quán)利要求l所述的方法,其特征在于,所述命令寄存器的長度為一個字節(jié)。4、如權(quán)利要求l所述的方法,其特征在于,步驟(l)中還包括,向所述命令寄存器中寫入非信號編號的數(shù)值,代表初始不發(fā)送數(shù)據(jù);相應(yīng)的,步驟(4)中處理器從與時隙i相對應(yīng)的命令寄存器讀取的值,如果不為M,則不發(fā)送信號。5、如權(quán)利要求l所述的方法,其特征在于,步驟(2)中所述控制模塊向主控單元發(fā)出發(fā)送信號命令,如果所述發(fā)送信號命令包括非信號編號,則表示不需要發(fā)送信號。攜帶媒體協(xié)商結(jié)果。本步驟中,對應(yīng)于步驟803中的INVITE請求消息,以MGC2向MGC1返回200OK響應(yīng)消息為例進行說明,在實際應(yīng)用中,如前所述,任何與INVITE請求消息對應(yīng)的、可以在一次SDPOffer/Answer過程中攜帶SDPAnswer的消息均可以用作本步驟中MGC2向MGC1返回的消息。本步驟中,在200OK響應(yīng)消息中攜帶SDPAnswer,SDPAnswer中攜帶媒體協(xié)商結(jié)果,例如,是否使用ET.38進行傳真業(yè)務(wù)等,其中可能包含部分或全部MGW2的媒體處理能力信息。假設(shè)MGW2支持基于RTP的ET.38傳真,并且也希望使用ET.38進行傳真業(yè)務(wù),那么MGC2可以向MGC1返回如下SDPAnswer:v=0o=-11INIP4mp2.example2.coms=-c=INIP4mp2.example2.comt=00m=audio10000RTP/AVP98a=rtpmap:98et3畫00上述SDPAnswer表示應(yīng)答端使用地址為mp2.example2.com、端口為10000與提供端建立基于RTP協(xié)議的編解碼格式為ET.38的傳真承載通道,并進行傳真業(yè)務(wù)數(shù)據(jù)的傳遞、為用戶提供傳真業(yè)務(wù)。步驟807:MGC1根據(jù)所接收到的SDPAnswer,向MGW1發(fā)送Mod命令,以更新遠(yuǎn)端士某體資源信息。本步驟中,MGC1將根據(jù)SDPAnswer中的媒體協(xié)商結(jié)果向MGW1更新遠(yuǎn)端媒體資源信息。步驟808:MGC1向MGC2返回ACK消息。步驟809:MGC1收到MGW1的Mod響應(yīng)消息。全文摘要本發(fā)明公開了一種程控交換機中的帶內(nèi)信號發(fā)送方法及系統(tǒng),所述方法包括以下步驟(1)設(shè)置每種信號的編號,將每種信號在所有采樣點得到的數(shù)據(jù)連續(xù)存儲在存儲器中;并在存儲器中設(shè)置與每個時隙相對應(yīng)的命令寄存器;(2)控制模塊向主控單元發(fā)出發(fā)送信號命令;(3)主控單元接收到所述發(fā)送信號命令后,解析所述命令的內(nèi)容,如果所述發(fā)送信號命令包括需要在i時隙發(fā)送編號為M的信號,則將編號M寫入與時隙i相對應(yīng)的命令寄存器;(4)處理器從與時隙i相對應(yīng)的命令寄存器讀取值M,根據(jù)M得到信號的采樣數(shù)據(jù)存儲在存儲器中的地址,根據(jù)該地址找到所述數(shù)據(jù),將所述數(shù)據(jù)發(fā)送。本發(fā)明可以達(dá)到靈活使用時隙的目的。文檔編號H04Q3/545GK101217681SQ20081000413公開日2008年7月9日申請日期2008年1月18日優(yōu)先權(quán)日2008年1月18日發(fā)明者饒俊陽申請人:中興通訊股份有限公司