專利名稱::對比資料及通過引用加入的軟件的制作方法
技術領域:
:本發明一般涉及現場與錄制的音頻信號的分配,而更具體地涉及從頭端發送機將數字化現場音頻信號、單個音頻文件與/或音頻文件組及播放指令分配給一個或多個最終用戶接收機的一體化分配與播放系統。發明的背景全國聯播無線電節目及全國廣告活動構成無線電廣播事業的一大部分。將這些節目與廣告分配給地方廣播臺及后期制作的當前方法是驚人地煩瑣與低效的。在一般情況中,全國廣播臺將無線電節目提供給地方無線電臺。該電臺取得節目,并在返回時向全國廣播臺提供電臺上供全國廣告通知使用的附加廣播時間。然后,全國廣播臺將包含無線電節目與全國廣告在內的整個節目錄制在緊致盤、數字音頻磁帶之類上。然后將錄有節目的緊致盤或磁帶通常用連夜傳送服務物理地傳送給各地方臺。錄制的節目是分成段的,并且在各段之間留有間隙,允許地方臺廣播諸如地方廣告、臺標或地方新聞等地方通知。因為電臺操作人員需要知道什么時候出現這些間隙及持續多久,全國廣播臺還必須提供印刷的節目格式。節目格式向電臺操作人員提供諸如總的節目運行長度、斷開提示信號及段間隙長度等信息。為了廣播該節目,電臺操作人員播放包含預先錄制的節目的緊致盤同時聽取斷開提示信號。當他聽見斷開提示信號時便按下包含錄制的地方通知的播放設備上的播放鍵或者向地方新聞廣播員發生信號以開始說話。當段間隙過去時,將地方通知適時結束。對于利用這種節目分配方法的全國分配臺產生許多問題。為各地方臺制作與錄制一塊緊致盤是昂貴的,并且因為這些盤通常只用一次便消毀,這一過程是浪費的。制備及隨后傳送緊致盤可能占用一周時間。這一時間延遲阻礙了最新節目的分配。由于錄制品必須物理地發送給每一地方臺,運輸成本是高的。如果全國廣告商只要求將某些廣告定向在全國某些區域上,則必須制作不同的錄制品并運送到這些區域中的電臺。在地方無線電臺上,問題是由預先錄制的節目的不靈活性質及根據印刷的節目格式及聽見的提示信號將地方通知實時并控制廣播中產生的。這些問題能導致全國與地方段之間的浪費的寂靜廣播時間及可聽見的不愉快的突然變化。本發明的目的為了克服先有技術的問題與局限性,本公開的發明具有達到下述特征或目的中的一個或多個的各種實施例本發明的一個目的是提供用于分配及隨后播放高質量現場音頻信號、單個音頻文件及音頻文件組的一體化系統。本發明的又一目的為提供根據諸如地理區域有選擇地分配現場音頻信號、單個音頻文件及音頻文件組給選擇的最終用戶和最終用戶群。本發明的另一目的為對音頻信號實現數據壓縮以便經濟高效地傳輸現場音頻信號、音頻文件及音頻文件組而不明顯損失音頻質量。本發明的又另一目的為提供允許分配中心中的用戶控制遠距離播放機播放音頻文件組的次序的一體化音頻分配與播放系統。本發明的又另一目的為提供允許在頭端上的用戶制作供地方無線電臺廣播的完整的節目的一體化音頻分配與播放系統。本發明的又另一目的為提供允許將地方音頻段集成進由全國音頻段分配者制作的節目中的一體化音頻分配與播放系統。本發明的又另一目的為提供產生從一個音頻文件或段到另一音頻文件或段的悅耳與平順過渡的播放系統。本發明的又另一目的為提供造價經濟且與現有器件兼容的系統部件。本發明的又另一目的為提供帶有方便與靈活的編程能力的用戶友好的系統。發明概述本發明的較佳實施例包括音頻傳送系統,該系統在頭端上具有通過局域網、ISDN連接之類與傳送子系統通信的制作子系統。傳送子系統通過衛星鏈路、ISDN鏈路之類與在尾端上的聯播系統通信。制作子系統使制作人員能制作表示在另一音頻事件出現之前一直播放到完的音頻序列的音頻事件。音頻事件是作為音頻文件存儲的。各音頻事件可包含一個或多個音頻序列、文本信息、傳送指令及具有觸點閉合信息之類的屬性表。可選地,在制作子系統上可組裝多個音頻事件來構成播放表。將音頻文件傳送給傳送子系統。傳送子系統將音頻文件放在傳送封套中并將這些封套傳輸給聯播終端。此外,傳送子系統可傳輸現場音頻信號及相關的觸點閉合信息給聯播終端。聯播終端可位于用戶地點上。聯播終端可將這些事件存儲在硬盤驅動器上、實時播放這些事件或將事件傳遞給其它聯播終端。聯播終端可在以后播放存儲的音頻事件。較佳實施例的音頻傳送系統至少支持七種服務。音頻傳送系統使音頻文件能引入系統中,連同諸如業務信息、格式、提示之類關于各文件的輔助信息。此外,音頻傳送系統使音頻事件能組合在一起,并支持將文本編入組合傳送包中,諸如播放表。組合的音頻事件與文本作為單個的包或封套傳送給要求的聯播終端。可將各包分開編址到特定的聯播終端與/或聯播終端組。這一編址信息稱作傳送指令。音頻傳送系統還支持完整性檢驗來保護正確地分配包。附圖簡要說明圖1一般性地示出按照本發明的較佳實施例的音頻傳送系統的方框圖。圖2一般性地示出結合本發明的較佳實施例使用的制作子系統的方框圖。圖3一般性地示出結合本發明的較佳實施例使用的傳送子系統的方框圖。圖4一般性地示出結合本發明的較佳實施例使用的聯播終端。圖5示出結合本發明的較佳實施例使用的遠程聯播遙控終端的透視圖。圖6示出結合本發明的較佳實施例使用的數字音頻卡的方框圖。圖7示出結合用在本發明的較佳實施例中的數字音頻卡使用的處理器的功能表示的方框圖。圖8示出與結合本發明的較佳實施例使用的數字音頻卡一起操作時的聯播控制器的功能方框圖。圖9示出音頻文件、CART(盒式磁盤)文件及播放表文件格式的方框圖。圖10A與10B示出數字音頻卡及聯播終端實行播放操作所遵循的處理序列的流程圖。圖11示出兩個存儲的段之間播放不存儲在按照本發明的較佳實施例的聯播終端上的地方段所遵循的示范性平滑轉換操作。圖12示出本發明的文件傳送系統的替代實施例。優選實施例的詳細說明定義一開始,為常用詞提供定義表。音頻節目組合在播放表上并傳送給至少一個聯播終端的一個或多個音頻段。例如,音頻節目可表示HowardStern演出、CaseyCassimsTop40等。音頻段包含具有確定的開始與結束點的音頻信號的連續序列的音頻事件。在另一事件(音頻或命令)出現之前,聯播終端從頭至尾播放音頻事件。例如,音頻事件可表示一段聲音、歌曲、歌曲的一部分、商業廣告節目之間的聯播告節目的一部分、商業廣告節目之類。試聽音頻表示音頻節目內容的短的音頻序列。例如,試聽音頻信號可表示一首歌曲的前幾秒,并可播放給聯播終端用戶向用戶介紹相關的音頻段或音頻節目。CART(盒式磁帶)機在聯播終端上用來播放來自磁帶等的地方音頻段的音頻播放設備。CART機通常用來錄制及播放商業廣告節目與新聞通知。CART文件唯一地與音頻文件并聯的文件。CART文件包含音頻文件名、音頻文件中的開始與結束偏移量、標記屬性、進入提示、退出提示、終止日期及第一次使用日期。觸點閉合命令指示聯播終端斷開或閉合觸點的指令,諸如打開與關閉CART機。數據包通過多路復用器作為獨立單元傳遞的一段數據,在調制與傳輸之前在其上附加標題。例如,多路復用器可將音頻段及音頻節目細分成數據包并用時分多路復用方式傳輸給聯播終端。終止日期預先指定的日期,在該日期上聯播終端自動地從其存儲器中刪除音頻段與/或音頻節目。傳送指令為通知傳送子系統在分配中哪些聯播終端應接收各數據文件而提供的指令。格式可以代表無線電節目的音頻節目的格式或配置。例如,格式可標識音頻節目中何處地方聯播臺可插入地方商業廣告節目點的位置。此外,格式或配置將包含過渡段的插入提示及退出提示以及音頻段的播放時間。帶外控制可以作為多路復用器的內部通信的一部分引導到聯播終端的控制命令,諸如標識正在發送單個報文的信道的信息。播放表與特定音頻節目關聯的、包含唯一地標識該關聯的音頻節目中的各音頻段/剪輯/事件的信息的概要或登記。音頻文件不帶內部結構的錄制的聲音。音頻文件可表示單個商業廣告節目或者或短或長形式的節目段。現場音頻信號收到時立即廣播而不將節目錄制在聯播終端上的節目。現場音頻信號可在輔助數據流內包含嵌入的同步命令。同步命令可用來觸發聯播功能,諸如啟動在聯播終端上的卡機的商業廣告節目播放。延時播放音頻信號錄制在盤上但幾乎立即播放的節目(諸如在5至10分鐘內)。節目是在接收時錄制的但在播放節目時釋放盤空間。系統概述圖1示出按照本發明的較佳實施例的音頻傳送系統10的方框圖。音頻傳送系統10包括至少一個制作子系統12、至少一個傳送子系統14及至少一個聯播終端16。如圖1中所示,各制作子系統12可通過支持數字數據傳輸的任何傳統介質與一個或多個傳送子系統14通信。作為示例,制作子系統12與傳送子系統14之間的互連(示出在線13上)可以是局域網、ISDN鏈路、傳統電話鏈路、衛星鏈路之類。作為另一種選擇,各傳送子系統14可與一個以上制作子系統12通信。各制作子系統12使用戶能制作數據文件,數據文件通常指音頻事件/段/剪輯、音頻文件、CART文件、播放表文件、文本文件、視頻文件及傳送指令文件(如在定義部分中所定義的)。雖然在圖2中將傳送與制作子系統示出為功能上分離的單元,但兩個子系統可實現在一個公用場所(及公用系統)上,從而避免對連接13的需求。傳送子系統14接收從傳送子系統14沿鏈路13來的、分別包含音頻段與音頻節目的音頻文件與音頻文件序列。此外,傳送子系統接收沿鏈路15的現場音頻信號。傳送子系統14也可接收沿鏈路15的觸點閉合命令。傳送子系統14組合在鏈路13及鏈路15上接收的信號并通過鏈路17將其輸出到聯播終端16。鏈路17可表示衛星鏈路、ISDN鏈路之類。可選擇地,傳送子系統14也可通過鏈路17或19接收來自聯播終端的信息。可選擇地,傳送子系統14可將數據文件(如音頻文件、CART文件、命令、播放表文件、文本文件、視頻文件之類)組裝進單一的“封套”中。“封套”可包含關于目的地聯播終端的地址信息。傳送子系統根據地址信息將向外的音頻文件封套引導到單個聯播終端上。可選擇地,地址信息可指定一組聯播終端作為封套的目的地(如對于聯合播出的中西部無線電臺)。聯播終端16接收來自傳送子系統14的進入封套并以所要求的方式將其處理。可選擇地,當聯播終端16未收到預期的音頻文件時,聯播終端16可通過鏈路19通知傳送子系統14。聯播終端16可將進入音頻文件存儲在硬盤上并在以后根據與封套一起接收的指令(如播放表)或根據來自聯播終端的操作員的指令播放這些音頻文件。作為替代,聯播終端16可接收并在接收時立即播放進入的音頻數據,諸如在現場節目(如新聞)的廣播期間。作為另一種替代,聯播終端16可在播放操作期間將地方節目(在本地CART機上的磁帶播放的)與從傳送系統14接收的音頻節目(存儲在硬盤驅動器上的)交錯。在混合一個音頻段的結束部分與下一音頻段的開始部分時,聯播終端16可利用自動平滑轉換操作。輔助終端16在鏈路19上輸出要從無線電臺廣播的模擬音頻信號。線路21與23支持外出觸點閉合命令,諸如從聯播終端16發送給CART機的。線路23接收傳感器輸入信號,諸如通知聯播終端16CART機的當前狀態之類。聯播終端16在線路25上輸出試聽音頻信號給聯播終端上的用戶。數據格式圖9一般性地示出供結合本發明的較佳實施例使用的示范性數據格式。但應理解本發明不限于音頻數據制作與發送,為了示例目的,才假定制作與發送音頻節目。圖11示出定義音頻段的節目的播放表文件400。播放表文件中的音頻段可以以概要格式顯示給用戶。播放表文件400可包含標識要播放的各音頻段的文件名(如404、420及436)的播放表402。文件名404、420及436分別表示文件名及到CART文件406、422及438的目錄路徑。各CART文件406、422及436分別唯一地標識音頻段414、432及434。各CART文件406、422及438分別包含到包含對應的音頻段的音頻文件415及430的路徑名408、424及440。音頻文件430包含CART文件422及438的音頻段432及434。各CART文件(406、422及438)還包含進入對應音頻文件的開始(410、426及442)與結束數據幀號(412、428及444)。開始與結束數據幀號標識對應的音頻段的開始與結束點。各CART文件也可包含對應音頻段的屬性,諸如標記(如下所述用來啟動DAC事件)、插入提示、退出提示(告訴用戶何時一段將結束)、文本描述(描述音頻段的注釋)、終止日期(聯播自動刪除該音頻文件的日期)以及第一次使用日期(允許聯播終端第一次訪問該音頻段的日期)。在操作期間,可從音頻文件、CART文件及播放表文件獲得正文、退出提示、注釋之類并顯示給用戶。這一顯示可包含用音頻段名稱的播放表連同用于地方通知的間斷與段播放時間的顯示。制作子系統圖2更詳細地示出制作子系統12。制作子系統12包括與傳送指令輸入單元32、業務與格式輸入單元28、音頻輸入單元26及觸點閉合輸入單元30通信的制作處理器24。傳送子系統包含硬盤驅動器35用于在發送給傳送子系統14之前存儲與音頻段及音頻節目關聯的音頻文件。音頻與觸點閉合輸入26與30將音頻與觸點信息信號提供給CODEC31,諸如可從位于新澤西的Holmdel的協會計算機系統公司購得的CDQ主編碼器/解碼器。CODEC31可根據諸如可從協會計算機系統公司購得的MUSICM算法等若干種傳統的“損耗型”編碼算法編碼進入音頻信號。CODEC31中可選用不同的編碼算法。CODEC31還接收來自輸入30的觸點閉合指令,并將這些觸點閉合指令加入到輸出編碼音頻信號中。將CODEC31的輸出提供給數字音頻卡(DAC)33,下面在稱作數字音頻卡的部分中更詳細地說明該卡。DAC33將編碼的音頻數據及觸點閉合數據轉發給傳送子系統12的處理器供臨時存儲,同時生成及附加傳送指令及業務/格式信息在其上。DAC33可解碼來自CODEC31的輸出信號并將解碼的音頻信號播放給用戶,使用戶能聽到經過按照當前的壓縮參數組編碼與解碼后得出的音頻信號。有選擇地,制作者可初始聽取DAC33的解碼輸出而不錄制來自CODEC31的編碼音頻信號,以便確定CODEC31的當前參數設定是否需要改變。一旦制作者滿意了CODEC31的參數設定,制作者便可選擇錄制選項。對此作出響應,制作處理器24與DAC33合作將來自CODEC31的編碼音頻輸出信號錄制在傳送子系統12的硬盤驅動器上。作為又一選項,在錄制時,可以切換DAC33將播放操作關掉。作為另一種替代,可以指令DAC33將新進入的編碼音頻信號從CODEC31傳遞到處理器24供存儲在硬盤驅動器上,同時從子系統12的硬盤驅動器上讀取前面編碼的音頻信號。DAC33可解碼并向制作人員播放前面存儲的音頻節目,同時CODEC31正在編碼新的音頻節目并將其存儲在硬盤驅動器上。以這一方式,較佳實施例的系統分別支持第一與第二音頻節目的同時錄制與編輯操作。可選地,在將音頻段及音頻節目存儲在數據庫35中時,處理器24可在其上附加傳送指令及業務與格式。一旦完成了音頻段或節目,制作人員可指令處理器24在鏈路13上傳送音頻段或節目發送給傳送子系統。只作為示例,制作子系統12可位于為國家廣播臺制作商業廣告節目的廣告代理人處。利用這一方法,代理人可執行制作功能,而可將得出的音頻節目通過ISDN鏈路之類直接發送到傳送子系統14而無須國家廣播臺的進一步介入。只作為示例,音頻輸入26可表示數字音頻帶播放機、緊致盤播放機之類。系統也可支持諸如AES/EBU等直接數字輸入。業務輸入可構成用于輸入簡單播放指令的鍵盤或包含插入提示、退出提示之類的音頻節目的復雜輪廓。接觸封閉可用來啟動與停止CART機之類,如下所述。傳送指令輸入32使程序員能輸入將音頻節目傳送到所要求的聯播終端或終端群所需的所有信息。傳送指令中可包含預期的聯播終端名、聯播終端群、發送臺名、相關的收費信息、結束數據之類。只作為示例,制作子系統可包含可從新澤西購得并且CBS現在使用的PACE系統。傳送子系統圖3一般性地更詳細示出傳送子系統。傳送子系統14包含分配管理系統34(DMS),后者接收來自制作子系統16的數據文件,諸如音頻文件、CART文件、播放表文件、命令文件、文本文件、視頻文件之類。DMS34可沿線路42接收來自聯播終端的通信,諸如狀態報告、帳單報告、數據文件的傳送確認之類。可選地,DMS34可接收來自制作子系統的傳送指令。傳送子系統14收集進入的數據文件并可將這些數據文件組合成“封套”,后者包含通常編有地址的數據文件、目的地聯播與/或中樞終端的地址信息、目的地聯播與/或終端群的地址信息、關于封套的最近傳送時間的優先傳送信息、標識已接收封套的各聯播/中樞終端的發送路徑表、等等。DMS34沿數據線34a將封套傳遞給多路復用器22。多路復用器22可將封套分成記錄供沿一條或多條信道傳輸。可選地,DMS可通過時隙控制線34b控制多路復用器22的操作。DMS34也可沿帶外控制線34c將預期用于聯播與/或中樞終端的命令傳遞給多路復用器22。作為替代,多路復用器22也可受獨立處理器的控制,在這一情況中DMS34將單獨通過數據輸出線34a與多路復用器22相連。帶外控制線34c及時隙分配線34b將受到控制多路復用器22的獨立處理器的驅動。作為另一種替代,制作子系統12可直接控制傳送子系統14的尋址,在這一情況中DMS34將不帶尋址信息及不將數據文件組合成“封套”的數據文件傳遞給多路復用器22。傳送子系統14可包含至少一個CODEC18用于沿線路40接收現場模擬音頻信號并根據若干種已知的編碼算法之一將其編碼。DMS34通過控制線34d控制CODEC18的操作。多路復用器22接收來自CODEC18的數字編碼音頻信號。多路復用器22以上面引用的共有未決申請(通過引用加入的)中所述方式沿一條線或多條傳輸信道將進入數據傳遞給調制器44。調制器44可將從多路復用器22接收的信號發送到衛星上。以上述方式,傳送子系統14收集來自制作子系統的包含音頻文件、CART文件、播放表文件、命令文件、文本文件、視頻文件及分配信息在內的數據文件。傳送子系統14還通過CODEC18接收現場音頻信號及諸如觸點閉合信息等輔助數據。數據是通過要求的介質傳輸給聯播與/或中樞終端的。雖然在較佳實施例中,傳送子系統是利用衛星連接將數據發送給聯播終端的,但本發明不限于此。作為替代,傳送子系統14可沿支持在由特定應用所支配的傳輸率上傳輸數字編碼數據的任何介質傳輸數據。例如,傳送子系統14可沿ISDN線路之類發送數字編碼數據。在低傳輸率可以接受時,傳送子系統14可利用傳統的電話線來傳輸數字數據。聯播終端圖4更詳細地示出聯播終端16。聯播終端16可位于接收臺或最終用戶場所。聯播終端16包含天線51用于接收通過衛星20來自傳送子系統14的進入現場數據包、數據文件及封套。可選地。天線51可發送返回信息,諸如已經收到或未曾收到音頻節目等傳送信息。在RF解調器53中解調進入信息并將其傳遞給信號分離器50。信號分離器50是配置成與傳送子系統14的多路復用器22配合的。信號分離器50可分離來自一個或多個信道的進入數據記錄以重組至少一個封套。信號分離器50也可分離沿線路66輸出的帶外命令。可選地,解調器53可控制成接收編碼的但未格式化成音頻文件(如上所述)的現場音頻數據。編碼音頻數據是作為數據幀的數據包的連續數據流接收的。當將信號分離器53配置以接收現場音頻數據流時,將DAC52設定在“現場模式”中來接收數據流。以這一方式,實時解碼及播放現場音頻數據的編碼數據流。聯播終端還包括接收來自信號分離器50的諸如音頻文件、CART文件、播放表文件、文本文件、視頻文件及命令等數據文件。聯播控器46中表示運行諸如微軟公司提供的Windows95等傳統操作系統的個人計算機。聯播控制器46可將進入數據存儲在存儲器48上。聯播控制器46包含至少一個數字音頻卡(DAC)52,下面更詳細地說明。聯播終端16在至少一條模擬輸出線56上輸出音頻信號供電臺或通過AES/EBU線路在數字輸出線上廣播。聯播終端16可包括來自DAC52的試聽音頻輸出線58,它使得聯播用戶至少能聽取存儲在存儲器48上的音頻段或音頻節目的一部分。可設置遙控終端54向聯播用戶提供對聯播控制器46所執行的功能的至少一個子集的遙控。作為示例,遙控終端54及試聽音頻耳機59可位于無線電臺的DJ(調音師)小室中使得DJ能夠試聽、聽取及控制存儲在存儲器48上的音頻段及節目的播放。即使聯播控制器46位于遠離DJ小室處,遙控終端54也能使DJ從DJ小室內選擇存儲在存儲器48上的要求的音頻段及節目。線路60與62分別表示觸點輸出控制線及傳感器輸入線,并且是由DAC52驅動與感測的。傳感器輸入線62可以是光隔離的輸入線。DAC52在觸點輸出線60上輸出觸點斷開與閉合信號。DAC52監視傳感器輸入線62以便檢測遠程設備的狀態變化(即斷開或閉合)。遠程設備可表示CART機、遙控終端之類。作為示例,傳感器輸入62可監視CART機以便在CART機完成地方節目的播放時通知DAC52。可提供用戶界面57來控制聯播控制器46。作為示例,用戶界面57可包含鍵盤、鼠標器及顯示器,而聯播控制器46則在Windows環境中操作,在其中圖符可代表音頻段與/或節目以及功能(如錄音、播放、減弱、停止之類)。用戶可通過擊鍵、拖曳及放松相關的圖符在音頻段或節目上執行所要求的功能。數字音頻卡圖6示出結合本發明的較佳實施例使用的數字音頻卡(DAC)52。DAC52可實現在具有與聯播終端16的主板連接的互連端口102的印刷電路板100。DAC52可用如下面說明的操作的數字信號處理器(DSP)104實現。雖然較佳實施例采用DSP,它也可用專用芯片或可從Intel、Motorola、CYRIX、AMD等購得的通用微處理器之類來實現。存儲器106存儲控制數字信號處理器(DSP)104的操作的命令軟件。DSP104在線路108(來自圖4中的信號分離器50的線路64與66)上接收進入數據文件及命令。DSP104沿線路110輸出解碼的音頻信號。在一段的播放期間出現“標記”時(下面說明標記),DSP104便通知聯播控制器46。如果該標記對應于觸點閉合命令,聯播控制器46指令DSP104設置沿線路112的轉接輸出信號(如接點閉合信號)。DSP104沿傳感器輸入114接收傳感器狀態信息,并將這一傳感器信息轉發給聯播控制器46。DSP104沿線路116與聯播控制器46通信。下面,討論轉移到圖7,其中示出了表示DAC52中的DSP104所執行的操作的功能圖。DSP104的功能包括數據切換操作120,該操作沿線路108接收進入封套、數據文件及幀,其中包含音頻文件、CART文件、播放表文件、命令文件、現場數據幀之類。數據開關120只接受尋址到特定DAC卡52的封套、數據文件及幀。數據開關120不管尋址到特定DAC52的進入信息。數據開關120輸出封套及數據文件到線路128及現場數據幀到一條或多條線路124與126。數據開關120受卡控制器122的控制。在通過DAC驅動器132沿線路134傳輸給聯播控制器46(圖4)之前,將沿線路128傳遞的封套與數據文件臨時存儲在數據緩沖器130中。DAC驅動器132沿線路134、136、138、140與142與DSP104通信。DAC驅動器132與聯播控制器46通信,如結合圖8所說明的。DAC驅動器132表示將DAC52與應用連接的低級硬盤驅動器接口,并可根據應用省略或改變。數據開關120沿線路124及126將現場編碼音頻數據流傳送給幀緩沖器146及148。在現場播放模式期間,幀緩沖器146及148之一臨時存儲編碼的進入音頻數據,同時沿線路150a及152a輸出(以先進先出方式)單個數據幀給解碼器150及152。解碼器依次解碼音頻數據的數據幀并沿線路154及156輸出解碼的數字音頻數據給混合器158。混合器158組合線路154與156上的數字音頻數據并沿線路159輸出得出的音頻信號。數據幀對應于預定分離量的編碼數字音頻數據。例如,編碼器可在24毫秒時間間隔的數字化音頻信息上執行編碼。編碼器將數字化音頻數據的24毫秒分離部分作為一個編碼數據幀輸出。將多幀數據組合以構成音頻流。如下面所說明的,卡控制器122也可沿線路150b及152b將來自存儲在存儲器48上的音頻文件的數據幀組提供給解碼器150及152。解碼器150及152解碼的數據幀中也可包含輔助數據,在這一情況中解碼器150及152沿線路160及162輸出輔助數據到輔助數據緩沖器164。數據緩沖器164臨時存儲輔助數據直到沿線路140通過DAC2驅動器132輸出到聯播控制器46為止。DAC事件緩沖器DAC事件緩沖器166存儲聯播控制器46感興趣的報文。作為示例,DAC事件緩沖器166可存儲指示何時音頻段已結束及用事件號標識該段的報文。可選地,事件緩沖器可存儲指示在音頻段的播放期間出現標記的報文。標記可表示制作人員在制作子系統上預先指定的標志。在播放包含標記的音頻段時,在播放期間檢測到該標記時,DSP便在事件緩沖器中存儲指示出現標記的報文。標記可用來接通與斷開觸點閉合。從而,通過在音頻節目中引入標記,便可加上標記來自動控制地方CART機。在節目播放期間,檢測到標記時,便通知聯播控制器46該標記,而聯播控制器46則輸出對應的觸點閉合信號。作為示例,標記#1可指令聯播控制器46閉合觸點,而標記#2可指令DSP104開始平滑轉換操作。此外,DAC事件緩沖器166存儲DAC卡在傳感器輸入線62(圖4)上接收的傳感器輸入報文。當通過自動閉合觸點指令CART機開始自動播放時,靠近該觸點的傳感器檢測CART機播放的音頻段的結束時間。DAC處理器操作下面,詳細說明DSP104的操作。一開始,數據開關120監視線路108來確定何時出現輸入。當滿足這一條件時,數據開關120便訪問進入數據來確定其中的DAC地址。數據開關120將這一進入DAC地址與卡控制器122沿線路122a提供的地址比較。如果當前DAC的DAC地址相應于進入數據的DAC地址,數據開關便確定進入數據是預期給這一DAC的。可選地,當進入數據的地址表示群地址時,數據開關120確定是否已將當前DAC分配給該群。卡控制器122通知數據開關120當前DAC分配的群地址。如果進入數據不尋址當前DAC或包含當前DAC的群,數據開關便不管該數據。當進入數據尋址當前DAC或包含當前DAC的群時,數據開關120便根據來自卡控制器122的控制信號將數據傳遞給線路124、126及128中一條或多條。例如,在現場播放操作期間,數據開關120沿線路124將進入音頻數據傳送給幀緩沖器146供臨時存儲。幀緩沖器146將各數據幀交付給解碼器150供解碼及作為n數字音頻信號輸出。解碼器150的輸出可通過數模轉換器輸出到線路160上并且最終作為要廣播的模擬音頻信號輸出在來自聯播控制器46的線路56上(圖4)。作為替代,在存儲操作期間,進入數據文件通過數據開關120沿線路128到達數據緩沖器130。數據緩沖器130臨時存儲數據文件直到將音頻數據沿線路134傳遞通過DAC驅動器132并最終到達聯播控制器46的存儲器48為止。可選地,聯播用戶可通過卡控制器122指令DSP104沿線路128與124引導進入音頻數據,以便(通過數據緩沖器130)錄制音頻數據及同時由用戶(通過幀緩沖器146及解碼器150)收聽。聯播控制器圖8一般性地示出結合DAC52使用的聯播控制器46的模塊的功能圖。聯播控制器46通過虛擬DAC驅動器132與DAC52通信。可將聯播控制器46配置成包含具有多個與DSP104接口模塊的音頻服務器180(如上所述)。音頻服務器180可包含處理從數據緩沖器130(圖7)接收的數據文件(諸如音頻文件、CART文件、播放表文件、視頻文件、文本文件)的進入數據處理模塊181。進入數據處理模塊181將這些文件存儲在存儲器48上。音頻服務器192可包含用于與卡控制器122通信的卡控制模塊182。卡控制模塊182與卡控制器122在它們之間傳遞命令數據,其中包含請求、應答、輪詢命令之類。可設置一個音頻請求處理模塊184給來自卡控制器122的服務數據請求。如下面更詳細地說明的,音頻請求處理模塊184從存儲器48獲得數據幀并在播放操作期間將這些數據幀傳遞給解碼器150與152之一。還可設置輔助數據管理器模塊186及事件管理器模塊190來分別接收來自輔助緩沖器164及事件緩沖器166的輔助數據及事件報文。輔助數據及事件管理器模塊186及190將進入數據與報文引導到音頻服務器180內的適當模塊供存儲與處理。音頻服務器180提供對播放、傳感器輸入、觸點閉合輸出之類的控制。音頻服務器180提供通過通信鏈路188與聯播用戶的界面。以這一方式,聯播用戶可指令音頻服務器180執行上面討論的聯播終端提供的功能。可選地,鏈路188可使遙控終端54能夠輸入音頻服務器180的、并從而對聯播終端16的控制請求。音頻請求處理模塊184提供存儲在聯播終端的存儲器48上的音頻文件與DAC52之間的接口。如下面更詳細地說明的,音頻請求處理模塊184包含存儲來自存儲在存儲器48上的音頻文件的數據幀的緩沖器,以便將來自音頻文件的數據幀提供給DAC52。音頻服務器180為所有接口應用與聯播終端的交互作用提供一個公共點。音頻服務器180表示使用戶(如界面客戶)能通過若干鏈路(如LAN、串行鏈路之類)附著在其上的多功能服務器。用戶通過鏈路188發送請求到音頻服務器并接收來自它們的應答。音頻服務器180管理存儲聯播終端資源(諸如,音頻文件、CART機播放設備、轉發閉合之類)的同一組合的多個用戶。虛擬DAC驅動器132將數據幀從DAC52傳遞到存儲器48(在存儲操作期間)及從存儲器48到DAC52(在播放操作期間)。驅動器132還雙向傳遞命令。結合播放操作,DAC52信令驅動器DAC52何時需要附加數據。DAC52用一個唯一的標識符(段柄)標識數據。存儲段的播放下面,討論轉向示出聯播控制器46及DAC52關于播放操作所遵循的處理序列的圖10a與10b。音頻服務器180接收播放指令(諸如通過鏈路188來自用戶或通過傳感器輸入62來自遠程設備)。一開始,將音頻請求處理模塊184設定在讀狀態以等待驅動器請求信號。音頻服務器180用音頻請求處理模塊184登記一個或多個音頻段(步驟202)。為了實行登記,音頻服務器180將諸如可包含有要播放的一個或多個音頻段的數據文件的CART文件中的信息等數據文件信息傳遞給音頻請求處理模塊184。此外,音頻服務器180將音頻文件中的起點位移及結束位移傳遞給音頻請求處理模塊184。數據文件信息是作為段請求傳遞給音頻請求處理模塊184的,后者將段請求存儲在音頻段表上并賦予段請求一起存儲在音頻段中(步驟204)。音頻請求處理模塊184返回一唯一的段柄給音頻服務器180。此后,音頻服務器180將段柄與附加控制信息作為加載段信息請求信號傳遞給DAC52(步驟206)。附加控制信息可包含諸如指定要使用的解碼器的標識符、段開始選項、開始減弱時間、結束減弱時間、事件標記、開始觸發之類。將加載段請求傳遞給卡控制器122(圖7),而卡控制器122至少存儲唯一的段柄。在步驟208,DSP104將包含該段柄的請求音頻數據報文返回給音頻請求處理模塊184。收到這一報文時,音頻請求處理模塊184存取音頻段表中用段柄標識的音頻文件(步驟210)。音頻請求處理模塊184從音頻文件中讀出一組數據幀并將這些數據幀傳輸給DAC52。在步驟212,音頻請求處理模塊184等待來自DAC52的下一數據請求。參見圖10b,DAC52將從音頻請求處理模塊184接收的數據幀加載到指定的解碼器的輸入緩沖器中(步驟214)。此后DAC在開始解碼操作之前等待開始報文。在步驟216,音頻服務器180發送解碼器播放請求到DAC52。解碼器開始解碼及輸出數字音頻信號(步驟218)。當解碼器已完成了解碼器輸入緩沖器中的數據幀的預定部分的解碼時,DAC52發布請求音頻數據報文給音頻請求處理模塊182。在步驟220,音頻請求處理模塊184從硬盤驅動器讀取下一組數據幀并將這一新的數據幀組寫到DAC52上。音頻請求處理模塊184再度進入等待狀態等待來自DAC52的下一數據請求。重復步驟218及220直到音頻請求處理模塊184讀取了來自音頻文件的所要求的一個或多個段、傳遞給DAC52及作為音頻信號輸出為止,或直到用戶干預為止。在步驟226,當解碼與播放了存儲在解碼器輸入緩沖器中的最后數據幀時,DAC52發布段結束事件。音頻請求處理模塊184收到段結束事件時,音頻請求處理器(在步驟228)從其緩沖器中清除最后一組數據幀并關閉音頻文件。此外,音頻服務器180執行完成音頻段的播放操作時任何必要的附加處理。這些中操作可包含清除表、通知用戶、閉合與斷開觸點轉發之類。自動播放帶存儲的段的地方通知下面描述一個實例,其中在存儲在存儲器48上的音頻節目的播放期間,CART機自動播放地方音頻段。存儲在存儲器48上的音頻段是由DSP104按照上述播放操作播放的。只是作為示例,所存儲的音頻節目可包含兩個音頻段(全國段#1及全國段#2),它們被兩個地方段(地方段#1及地方段#2)分開。一開始,從存儲器48讀取全國段#1并以數據幀組提供給DSP104。賦予全國段#1標記屬性指示在全國段#1完成時必須閉合觸點以便啟動地方CART機(它包含地方段#1)。當DSP104處理第一全國段適當的位移時間之后,它識別出標記屬性,便在DAC事件緩沖器166中寫入一個標記屬性報文,諸如標記號碼。聯播控制器146從事件緩沖器166中讀出標記屬性報文(標記號碼)并對此作出響應指示DAC52在線路60(圖4)上輸出觸點閉合信號指令第一CART機(包含地方段#1)開始播放。然后DAC52輪詢來自CART機1的傳感器輸入線62。在完成了卡#1中的地方段時,CART機停止并在傳感器輸入信號62上返回一個觸點斷開信號。從傳感器輸入62返回的信號通知聯播控制器46CART機已完成地方段的播放或快要完成地方段的播放(例如在下一個30秒內)。響應沿傳感器輸入線62的輸入,聯播控制器46指令DSP104開始播放下一全國段#2。在完成第一地方段時,聯播控制器46以上面說明的方式將全國段#2加載進DSP104中。在本施例中,賦予全國段#2標記屬性#2指示在第二全國段完成時應跟隨第二地方段。在DSP104處理第二全國段時,在第二全國段的播放期間的預定時間上DSP104將第二標記屬性報文寫入數據事件緩沖器166中。聯播控制器46從緩沖器166中讀取第二標記屬性并指令DSP104在線路60b上輸出第二觸點閉合信號。線路60b上的觸點閉合信號指令第二CART機到達第二地方的終點時,第二CART機在線路62b上輸出傳感器輸入信號通知DSP104第二地方段完成。可選地,第二CART機可在第二地方段完成之前預定的時段上(如30秒)沿線路62b提供傳感器輸入。以這一方式,聯播控制器46可自動地平滑轉換全國與地方段。平滑轉換圖11示出表示存儲在存儲器48中的兩個視頻段之間(其后跟隨CART機播放的地方通知)的平滑轉換操作的方框圖。為了這一實例的目的,假定播放表中包含關于何時開始播放CART文件的下列CART文件名及指令段#1-開始選項,手動段#2-開始選項,標記2地方通知#1-開始選項,標記1進一步假定段#1與#2及地方通知#1的CART文件至少包含下列屬性段#1開始位移0結束位移2000標記2,1900音頻文件名#2段#2開始位移400結束位移3000標記1,3000音頻文件名#1地方通知#1觸點閉合,CAR1感測播放結束,CART1返回到圖7與8,在操作期間,音頻請求處理模塊184一開始將#1與#2的段柄及對應的屬性表傳遞給卡控制器122。段#1在音頻文件#1中從單元0延伸到2000(例如,各單元可對應于一個數據幀)。段#2延伸到在音頻文件#2中單元400與3000之間。音頻請求處理模塊184從存儲器48中獲得段#1與#2的第一組數據幀并將它們傳遞給卡控制器122。將這些數據幀組分別存儲在第一與第二解碼器150與152中的緩沖器中。第一解碼器150開始處理來自段#1的數據幀。音頻請求處理模塊184根據第一解碼器150的需要提供來自#1的新數據楨。當第一解碼器150到達單元(如數據幀)1900時,DSP104檢測到標計#2。對此作出響應,第二解碼器150與152如圖11中所示在平滑轉換區500上同時輸出數字數據。在平滑轉換區500中,混合器158降低音頻段#1的幅值并提高音頻段#2的幅值來混合兩段輸出作為在點160上提供給廣播臺與/或對AES/EBU的輸出。可選地,可將第二標記事件(諸如,標記1,1600)加在段#1的CART文件上以指令混合器158在到達平滑轉換區500之前便開始降低段#1的幅值。在本例中,混合器158將在點504上便開始降低段#1的幅值(如線506所示)。然后在點508上第二解碼器152便可開始段#2并且隨即繼續混合操作,如上面所說明的。繼續參見圖11,第二解碼器152繼續處理段#2直到到達單元3000為止。單元3000對應于段#2的終點及標記#1。標記#1是連同對應的段柄存儲在事件緩沖器166中的。事件管理模塊190將這一事件報文轉發給音頻服務器180。對此作出響應,音頻服務器180通過卡控制模塊182返回指令DAC52在線路60上(圖4)將觸點閉合信號輸出到CART機#1的指令。觸點閉合信號指令CART機#1開始播放地方通知#1。音頻服務器180然后繼續輪詢DAC52來確定何時沿線路62收到來自CART機#1的傳感器輸出信號。傳感器輸入信號表示已完成了地方通知的播放。在收到傳感器輸入信號時DAC52通知音頻服務器180。音頻服務器180根據播放表中下一CART文件繼續播放。帶中樞終端的文章傳送系統圖12一般性地示出本發明的文章傳送系統的替代實施例的方框圖。文章傳送系統600包括至少一個制作者子系統602,該子系統以上述方式工作來制作數據文件。可選地,制作者602可將數據文件組裝進封套中并沿線路618將封套傳遞給中樞604。可以在下面稱作封套格式的部分中所陳述的那樣構成各封套。各中樞可包含聯播終端的上述結構。此外,各中樞604包含封套分配管理系統來確定進入封套的路由。各中樞可包含上述衛星接收機與/或支持數字數據傳輸的一條或多條通信鏈路,諸如ISDN鏈路、傳統電話鏈路之類。返回到圖12,當中樞604接收來自制作者602的封套時,中樞604讀取封套內的地址信息并相應確定封套的路由。如果封套是指向中樞604的,中樞604便以上面關于聯播終端所描述的方式操作來存儲與播放接收的數據文件。如果封套是指向ISDN聯播電臺606的,中樞604便沿鏈路620將封套的路由確定到ISDN聯播電臺606上。可選地,可以用上面關于聯播終端16所描述的方法配置ISDN聯播電臺,但取決于接收與傳輸封套、現場數據流之類的ISDN鏈路。中樞604也可將進入封套的路由確定到主上行鏈路中樞608上。中樞608可包含上行鏈路設施,如上面關于傳送子系統14的描述中的。中樞608可沿衛星上行鏈路624將封套發送給610。衛星610沿下行鏈路626、628與632發送進入封套。衛星聯播電臺612類似于聯播終端16。衛星聯播電臺612可象上述聯播終端16那樣處理進入封套。中樞614在收到封套時,如果在封套內的地址信息中識別出ISDN聯播電臺616,可將封套的路由確定到ISDN聯播電臺616。衛星610可將所有進入封套發送給衛星視線內的所有中樞、衛星聯播電臺之類。在收到時,各中樞與衛星聯播電臺訪問封套以識別其中的地址信息。如果該封套尋址接收的衛星聯播電臺與/或中樞,它們便相應地處理該封套。如果封套尋址連接在接收的中樞上的中樞或ISDN聯播電臺,接收的中樞便將封套的路由確定到那里。然而,當衛星聯播電臺或中樞接收到不尋址到其上面或連接到該接收中樞或衛星聯播電臺中樞或聯播電臺的封套時,接收衛星聯播電臺或中樞便不管該封套。作為示例,當制作者602生成指向衛星聯播電臺612的封套時,便將該封套傳遞給中樞604,后者確定該封套不指向中樞604或聯播電臺606。最終,中樞604將封套傳遞給可代表主衛星上行鏈路中樞的中樞608。主衛星上行鏈路中樞608通過衛星610將封套轉發給具有衛星接收機的所有衛星聯播電臺及中樞。中樞614接收該封套并確定該封套不是指向中樞614或ISDN聯播電臺616的。最終中樞614不管該套。衛星聯播電臺612接收該封套并確定該封套是指向衛星612的。對此作出響應,衛星聯播電臺612以上述方式處理該封套。可選地,所有中樞都可包含衛星接收機。封套格式各封套可從分成記錄的多個數據文件構成。各記錄可包含將該記錄與其對應的封套關聯的唯一I.D.(標識符)。此外,各記錄可包含標識制作該封套的制作子系統的制作者子系統I.D.。制作者及封套I.D.能夠唯一地標識及跟蹤通過系統的每一個封套。可選地,各封套可包含含有該封套已路過的中樞與聯播電臺的表的發送路徑記錄。該發送路徑記錄由接收與確定該封套的路由的各制作者及聯播電臺更新。只是作為示例,當制作者602制作封套時,發送路徑記錄開始是空的。隨著將封套傳遞給中樞604,便將中樞604的I.D.加到發送路徑記錄上。重復這一過程直到封套到達其目的地。從而,封套從制作者602行進到聯播電臺616將包含在發送路徑記錄中,在聯播電臺616上傳送時,表中包含中樞604、主中樞上行鏈路608及中樞614的中樞I.D.。發送路徑記錄可被系統用來防止單個中樞的循環發送。作為示例,假定中樞604包含衛星接收機來接收來自衛星610的衛星發射。下面說明通過發送路徑記錄防止循環發送的例子。制作者602制作指向衛星聯播電臺的一個封套。該封套經過中樞604、中樞608及衛星610。此時,已將發送路徑記錄更新為包含中樞604及中樞608的中樞I.D.。當衛星610發射該封套時,聯播電臺612及中樞604與614接收該封套。中樞604訪問發送路徑記錄并確定該封套已發送通過中樞604。結果,中樞604不管該封套而并不再發送它。傳送檢驗可選地,傳送系統可包含傳送檢驗。根據傳送檢驗,當將一個包送到聯播電臺時,便向制作者提供一個跟蹤號。根據制作者的選擇,他可建立“工作次序”,這允許他將若干不同的封套(各帶有不同的內容與傳送地址)組合成帶有用戶提供的標志的“組”。工作次序只是用戶跟蹤封套組的方法,這些封套可能已經在不同時間上潛在地提交過的。給予制作者一個軟件,該軟件可從任何裝有調制解調器的PC上使用,該軟件允許他呼叫800號碼來檢驗其封套的傳送。作為記賬系統的一部分,向用戶提供何時傳送了哪些封套以及哪些封套不能傳送的詳情。提供給制作人員的軟件允許管理各寄給許多收件人的許多突出的包。此外,工作次序標志同樣可以檢索信息。對系統的訪問可通過直接撥號(800號)或通過Internet。傳送檢驗系統提供下述功能。系統提供傳送狀態信息的集中性。系統的體系結構是分散的,但制作人員可能要求接觸單一的地點來找出其封套的狀態。傳送信息可以是集中的。系統提供共享的傳送狀態信息。傳送狀態數據庫可在若干“后臺辦公室”應用之間共享。這一數據庫的一些潛在用戶包括·記帳。它可用來生成記帳記錄。·質量控制。用這一信息可進行回顧研究以確定性能。·跟蹤。用戶可呼叫及請求幫助找到他們的封套在哪里及為什么沒有到達。狀態數據庫可以是預測性的,由于必須給與用戶關于何時將發生傳送的精確預測。隨著傳送的發出可更新預測。跟蹤系統可能處理不同的傳送方法及用于傳送檢驗的相關機制。各次傳送可隨著發送的進行而通過若干不同狀態(送到中樞、進入FedEx、傳送)。各傳送設施具有不同的檢驗要求·ISDN在發送方傳送時檢驗。·衛星在傳送時由接收機檢驗。接收機可將其成功或失敗通知中心當局。·FedEx可查詢FedEx系統得知是否成功地傳送了包。·組合一些傳送是上述的組合。對系統的傳送的檢驗是重要的。如果包丟失而必須追蹤到最后成功地傳送的位置時尤其重要。傳送檢驗體系結構定義了傳送狀態計算機(DSC)。可以通過來自任何局域網的TCP/TP、通過微軟的RAS設施撥號或從Internet與DSC通信。DSC維護通過ODBC存取的共享數據庫。該數據庫中存儲系統中全部當前與歷史上傳送的狀態。可以假定所有的包都是傳送給中樞的。這簡化了系統的設計并允許對任何給定聯播電臺的接收資源進行控制。以這一方式,管理機構可保持對聯播通信資源的調度的控制。當中樞接收封套時,它們檢驗封套的地址標簽并生成提交給DSC的“發貨清單”。發貨清單包含來自封套的所有信息以維護DSC上的傳送狀態數據庫。其中包括·封套的跟蹤號。這一號碼由所有制作人者中唯一的制作者標識符及對該制作者唯一的封套號組成。·由制作者賦予的封套的英文名稱。·需要傳送該封套的目的地清單。·與該封套關聯的任何工作次序。·中樞收到該封套的日期與時間。無論中樞確定應如何發送封套,都可將發貨清單送至DSC。換言之,即使中樞確定并不需要將封套發送到上行鏈路中樞(所有地方傳送人)也將發貨清單送到DSC。可通過撥號RAS或Internet將發貨清單送到DSC。在任何事件中都可使用TCP/TP協議,以便接收中樞對將發貨清單傳送到DSC能具有可靠的完成保證。DSC利用發貨清單來構成傳送狀態數據庫(DSD)中的項。必要時DSC發送報警報文在DSC上“登記”的其它后臺辦公室應用來指示對DSD的改動。DSC利用其數據庫中的信息來確定如何將封套傳送到其各種目的地。這允許它確定初始傳送估計并為各傳送事件建立“狀態圖”。在DSD中為各傳送事件制作一項。傳送事件為單一的封套/目的地對。狀態圖跟蹤封套沿傳送它所需的邏輯路由(例如上行鏈路到衛星到Wilmington到FedEx到傳送)的轉換。系統可支持下列路由·衛星直接上行鏈路中樞通過衛星直接到聯播電臺。·ISDN直接ISDN聯播電臺位于與接收該封套的郵局中樞同一地區中。·衛星到ISDN上行鏈路中樞將封套傳送到一個中樞,該中樞依次將封套傳送到聯播電臺。·脫機上行鏈路中樞到Wilmington聯播電臺到FedEx到目的地。傳送路徑的各支線可報告完成。用來報告完成的機制可以是主動的(傳送過程的某一單元主動向DSC報告完成)或被動的(DSC必須采取某種行動來確定完成)。確定完成的機制取決于傳送技術。支持下述各項·ISDN發送(中樞)報告成功地傳送封套。報告是直接向DSC作出的。報告被分批組合-失敗是立即報告的。·衛星采用下面描述的特殊輪詢技術。·FedExDSC輪詢FedEx計算機來確定完成。輪詢是基于FedEx估計的沿DivineGuidance的傳送時間及禁止(fasting)的。DSC可接收來自制作者及其它有關方面的呼叫并提供基于TCP/IP的協議使呼叫者能在DSD中查詢與傳送狀態有關的信息。DSC可接收來自其它后臺辦公室應用的報文,該報文通知它在DSD上執行的內容操作事務。衛星傳送檢驗即使衛星可能是只發送的介質,也可檢驗基于衛星的封套傳送。在本例中,沒有后備信道來允許接收機報告它們是否正常地接收信息。如果使用大量的潛在接收機,簡單地輪詢確定是否已實現了傳送并不是所希望的。DSC可采用不同類型的輪詢方案。衛星傳送通常是成功的。只有接收機知道它是否已收到封套。封套可以部分地收到而只丟失一部分。作為上面的結果,DSC執行下述檢驗方案。在定期的公認的時間間隔上DSC掃描其數據庫并確定哪些傳送事件需要衛星傳送。DSC構造包含最近已傳送的封套的清單的“清單包”。通過上行鏈路中樞在衛星上送出清單包。這些包所尋址的聯播電臺收到清單包并將它們的清單與包中的清單比較。如果存在任何差異,聯播電臺便使用POTS線路呼叫重發管理器(RSM)。如果沒有差異,聯播電臺什么也不干。在接收封套期間的任何時間上,如果聯播電臺確定它丟失了記錄或記錄出錯,它便接觸RSM。如果聯播電臺在預期的時間上未收到清單包(空包用作未接收封套的電臺的位置保持器),它便呼叫RSM。當DSC發出其中帶有同一文件的兩個清單包而未收到來自電臺的任何投訴時,便將該文件標記為已傳送的。已傳送的文件不再包含在以后的清單包中。分配狀態數據庫DSD為可用來確定傳送過程的狀態的表的集合。定義了下列各表1.“聯播數據庫”。這一表將電臺標識符映射到到達該臺所需的路徑中。這主要是傳送類型(衛星、ISDN等)。DSC用這一表來確定跟蹤包所使用的狀態圖。2.“制作者數據庫”。映象制作者號碼與諸如制作者地址、電話號碼、聯系姓名等制作者信息。3.“傳送事件數據庫”。這一數據庫為各傳送事件包含一項。它包含下述各列·封套標識符。包含制作者號碼。·目的地標識。封套必須傳送到的地方。·工作次序優先級。何時必須傳送封套。封套可以用傳送優先級排序供各中樞與聯播電臺發送(例如最先發送最高優先級封套)。·工作次序標識符。這是可選用的并由用戶提供。·當前狀態。·傳送的當前最佳估計。·傳送狀態圖中的狀態。·DSC執行其完成算法所需的附加資料。遙控終端圖5一般性地示出諸如廣播接口等示范性遙控終端的透視圖。遙控終端58提供諸如從DJ小室內對聯播終端的遙控。遙控終端58可提供在聯播控制器46上可獲得的全部功能,或者只是其一個子集。作為示例,可將遙控終端58只與給定播放表的廣播制作一起考慮。遙控終端8包含顯示器70及控制鍵72。控制鍵可使廣播操作員從給定的播放表之類中的若干不同音頻選段中選擇。聯播控制器46確定哪些音頻選段可以顯示給遙控終端58上的廣播操作員及供其從中選擇。通常在沒有遙控終端58的干預時,節目內的音頻段的播放是根據播放表順序進行的。遙控終端58使廣播操作員通過從序列中選出音頻節目而能夠取代音頻段的正常順序。控制鍵72中可包含上下箭頭使廣播操作員能從播放表內選擇想要的節目。健72中也可包含啟動與停止鍵來開始與結束下一個或想要的音頻選段的播放。顯示器70可顯示計數到正在播放的當前事件的結束的倒計時器。顯示器70可提供當前音頻事件的退出提示。顯示器70可顯示包含與各音頻文件關聯的格式在內的用來控制當前節目的某些或全部播放表信息。傳感器輸入62可監視遙控終端來獲取來自DJ的播放請求。以這一方式,DJ可請求DAC52播放越出正常播常放表序列順序的節目。DJ也能通過遙控終端請求DAC52開始播放排隊在DAC52中的下一段、停止播放當前段、快進/回繞過當前段或者到下一/前一段。DJ可使用遙控終端上的上/下箭頭滾動通過顯示給DJ的播放表,并越出次序從播放表中選擇一段。DJ也可通過選擇經由傳感器輸入62傳送給DAC的試聽選項試聽幾段。聯播音頻服務器聯播終端支持與不同用戶的多個界面,其中包含與節目導演、廣播DJ、業務用戶及外部系統的界面。節目導演界面通過聯播控制器46提供以便將系統所有可利用的功能提供給節目導演的。向廣播DJ提供通過遙控終端54的訪問并可提供有限的功能組。諸如播放、停止及試聽來自播放表的節目。業務用戶是對觀察關于地方節目通知的可用性的文件感興趣的。可以不給業務用戶對音頻播放的控制,但可以簡單地提供觀看播放表之類的能力。外國系統用戶可通過RS232端口、局域網之類接入聯播控制器。上述各種用戶通過音頻服務器180(圖8)與聯播終端通信。音頻服務器識別用戶的類型及該用戶能訪問的潛在功能組。上述各種類型的用戶可通過一種或多種協議與音頻服務器通信。只作為示例,用戶與服務器之間的通信可通過TCP/IP(終端通信處理器/接口處理器)插座之類。TCP/IP信道又可支持ASCII文本與二進制數據的傳輸。音頻服務器180以許多不同對象操作。提供用戶通過協議對對象訪問。協議報文允許用戶計數系統中的播放機(例如有多少播放機)、將音頻加載到播放機中、啟動播放機播放之類。各對象具有與之關聯的狀態。某些狀態信息在引導之間繼續存在(持久狀態信息)而其它狀態信息則必須在每次音頻服務器開始執行時設定(臨時狀態信息)。持久狀態信息的一個例子便是給定的播放機對給定的播音室的關聯而臨時狀態信息的一個例子便是給定的播放機是否實際在播放。某些協議報文改變對象的持久狀態而其它報文則改變對象的臨時狀態。持久對象具有包含對象的狀態信息的文件。這些文件可以是ASCII格式文件。文件中的各記錄可包含關鍵字及值。音頻服務器用戶可通過建立TCP/IP連接而連接到應用上。可以建立到達服務器的兩條路徑,即報文路徑與事件路徑。報文路徑可以是雙向的并可用于界面客戶與音頻服務器之間以“主從”方式通信。界面客戶可以是主機,并可發送報文給音頻服務器。音頻服務器可發回應答。至于事件路徑,對象可能需要發送報文給界面客戶,提醒客戶關于對象內的事件與條件(例如播放機已播完聲音、用戶已按了按鈕之類)。這些報文是通過界面客戶事件路徑發送的。對象也可表示“容器”對象。這些對象包含其它事物,例如,“磁帶架”是包含音頻文件、播放表及CART文件的容器對象。播放表可以是包含構成該播放表的音頻段的表的容器。容器可作為文件目錄實現。桌面機可表示最高目錄。當用戶注冊到系統中時,他的當前工作目錄可表示桌面機。為了計算該目錄中的對象可將其傳送到其它目錄中。在可以引用對象之前要“打開”對象。打開對象是用OPN報文執行的。在完成了對象的引用時,CLO報文將關閉對象。可以從只讀模式或讀/寫模式打開對象。任何數目的用戶有可以只讀模式打開對象但只有一個用戶可以讀/寫模式打開對象。下面提出音頻服務器可實現的報文的清單。被呼叫CON<用戶口令>返回AOK<柄>注釋這一呼叫將在用戶與音頻服務器之間建立連接。從音頻服務器的返回提供用戶能用來建立回到來自服務器的應用的事件路徑的柄。該事件路徑用來處理同步事件。被呼叫EVN<柄>從CON呼叫返回的柄。注釋這一呼叫將建立音頻服務器用來傳輸報文給界面客戶的同步事件柄。被呼叫RFE[<名字>]要讀的架的選用英文版本。注意如果不提供則將桌面機用作對象的源。應答ERR或ACK<名字><類型><名字>元素的名字。這是“英文名”不是文件名。它包含在引號內并可包含空格。這一名字可用在引用對象的其它呼叫中。當以這一方式使用時必須完成和這里返回的一樣地復制。<類型>單元的類型(例如CART、架、播放表、播放機及記錄表)。注釋這一功能返回當前工作目錄中的第一元素。為了建立當前目錄的內容通常跟隨著RNE(讀下一元素)請求。注意作為接收的音頻與其它用戶交互作用的結果,內容可以改變。這些改變是通過用戶的連接中的“事件路徑”上的事件發送給用戶的。被呼叫RNE返回ERR或AOK<名字><類型>見RFE的AOK變元的定義。注釋返回目錄中“下一個”元素。被呼叫OPN<如何><名字><類型>{<容器><類型>}0-n<如何>如何打開對象(例如,只讀模式或讀/寫模式)。<名字>要打開的對象的英文名字。<類型>對象的類型(例如CART、架、播放表、播放機或登記表。)<容器>選項“容器”名字。<類型>容器類型(例如架或播放表)。注必要時可以重復<容器><類型>變元來指定嵌套的容器內嵌套的CART。返回ERR或AOK<柄>注釋這一功能打開可能供專用的對象。如果準許打開,便將柄返回對象,該柄可與需要柄來操作它們的功能一起使用。當用戶注銷或當他發布CLO命令時,便釋放該對象而柄不再有意義。被呼叫HAS<ename><類型><ename>桌面對象的英文名字。<類型>對象的類型返回AOK<內容>或ERR注釋這主要用于檢驗判明如果對象根據其內容不同地抽取,該用戶界面對象應如何抽取。被呼叫CLO<柄><柄>成功的OPN請求所提供的柄。應答AOK或ERR注釋這一功能釋放打開的對象。被呼叫RIN<柄><鍵1>…<鍵n><柄>對對象的OPN<柄><鍵n>要讀取的關鍵字返回如果有錯誤ERR或AOK<值1>…<值n><值n>所請求的<鍵n>的當前值。被呼叫WIN<柄><鍵1><值1>…<鍵n><值n><柄>對對象的OPN柄。對象必須以讀/寫模式打開。<鍵n>要更新值的關鍵字。<值n>要改變的關鍵字的值。返回AOK或ERR注釋不是所有可讀的關鍵字都是可以改變的。例如,CART播放時間取決于物理性質而不能改變。被呼叫IRP<對象><對象>要讀取其播放表的打開的對象。當前這可以是播放機或播放表。返回AOK或ERR被呼叫EPR返回AOK<柄><類型><變元>(見注釋)ERR<柄>對播放表中的給定節點的唯一的柄。這一號碼用來設定播放SCE及刪除元素的當前事物。注釋播放表記錄是<類型>變元后面的一序列變元。它們的格式如下附注REM<附注><附注>包含關于播放表的附注的串。廣播注解ONA<注釋><注釋>包含關于播放表的注釋的串。開始聲跡TRK<名稱><播放時間><外出提示><名稱>與聲跡關聯的名稱。這通常象“Seg1”這樣的事物,但也能是根據需要想象的。<播放時間>以毫秒表示的播放該聲跡的時間長度。<外出提示>該聲跡的退出提示。結束聲跡ENT結束聲跡CartCRT<類型><名稱><播放時間><外出提示><類型>CART如何用在節目的這一聲跡中(如,商業廣告節目、節目)。<名稱>CART的英文名稱。播放表目錄中的CART文件必須與要找出的CART的這一名稱匹配。<播放時間>以毫秒表示的CART播放時間。<退出提示>CART的退出提示。地方中斷BRK<時間><時間>以毫秒表示的地方中斷持續時間。被呼叫GPS<播放機><播放機>獲取其狀態的播放機的OPN柄。返回ERR或AOK<狀態><加載><當前><狀態>播放機的當前狀態(如,正在播放、停止)。<加載>指示播放機是加載的還是空的。1加載的0空的<當前>當前無線電的柄。被呼叫LOD<播放機><元素><類型>[<位置>]<播放機>要加載的播放機的OPN柄。<元素>要加載在播放機上的元素的ASCII名。這必須是播放表的CART之一。<類型>要加載的元素類型(如,音頻CART、音頻播放表)。<位置>將元素加載在播放機的棧中的位置。這是可選項。如果不提供,便是加載的順序位置,其第一位置為0。返回AOK或ERR注釋加載的元素必須在桌面機上。注意一個元素一旦加載到播放機中,它便不再出現在桌面機上。將它傳送到了播放機的目錄中。為了執行這一命令,播放機必須用寫訪問打開。被呼叫PLY<播放機><播放機>啟動播放的播放機的OPN柄。必須以讀/寫模式打開。返回AOK或ERR。在當前元素結束時發送事件。注釋播放機中具有多個音頻元素。一旦開始播放,一個音頻元素接著一個音頻元素。被呼叫CUE<播放機><播放機>提示接通音頻的播放機的OPN柄。播放機必須從讀/寫模式打開。返回AOK或ERR。注釋CUE功能減少PLY操作的等待時間。如果不進行CVE,則PLY中蘊含CUE。如果執行CUE則PLY將執行得快得多。PLY與音頻播放之間的等待時間是當前播放機的播放表的函數。被呼叫STP<播放機><播放機>要停止的播放機的OPN柄。播放機必須以讀/寫模式打開。返回AOK或ERR注釋使指定的播放機在其當前點上停止播放。發布播放將使播放機從其停止時的地方繼續播放。被呼叫REM<播放機>[<播放機>]<播放機>要從其消除一個元素的播放機的OPN柄。播放機必須以讀/寫模式打開。<播放機>要消除的元素的柄。注意這一變元是可選項。如果省略便消除“第一”元素。返回ERR或AOK注釋這一功能允許客戶從播放機棧中消除元素。被呼叫SCE<播放機><柄><播放機>打開的播放機柄。<柄>元素的柄。從讀播放表事物中得到。返回AOK或ERR注釋這為播放機建立當前元素。下一次播放或試聽操作將引用這一元素。被呼叫RCE<播放機><播放機>播放機的OPN柄。播放機必須以讀/寫模式打開。返回ERR或AOK<柄><柄>賦予元素的唯一的柄。注意這一柄是唯一的并在重新引導系統之前永遠不會改變。注釋這提供關于播放機的播放棧中的當前位置的信息。被呼叫AUD<播放機><端><播放機>要試聽的播放機的OPN柄。播放機必須以讀/寫模式打開。<端>要試聽當前元素的哪一端。選擇有+n試聽從元素這時位置到元素開始的前“n”秒;及n試聽從元素這時位置到元素開始的最后“n”秒。應答ACK或ERP。在播放停止時發送的事件。被呼叫MTR<元素><類型><架><元素>要傳送到架上的桌面機上的元素的英文名。<類型>要傳送的元素的類型<如CART、架、播放表、播放機、登記表>。<架>架的英文名。架必須位于桌面機上。返回AOK或ERR被呼叫MFR<架><元素><類型><架>架的英文名。架必須位于桌面機上。<元素>要傳送到架上的桌面機上的元素的英文名<類型>要傳送的元素的類型(如,CART、架、播放表、播放機、登記表)。返回AOK或ERR被呼叫DEL<元素><類型><元素>要刪除的元素的英文名。<類型>要刪除的元素的類型(如,CART、架、播放表、登記表)。返回AOK或ERR被呼叫MKR<名字><名字>架的英文名。返回AOK或ERR注釋這一功能檢驗重復的名字并且不允許它們。被呼叫CEN<老名字><新名字><類型><老名字>桌面機上的元素的老英文名。<新名字>桌面機上的元素的新英文名。<類型>元素的類型(如CART、架、播放表、播放機、登記表)。返回AOK或ERR注釋這一功能檢驗重復的名字并且不允許它們。事件體系結構服務器通常必須發送信息給連接在其上的一個或多個客戶。例如,如果服務器由于客戶請求而刪除給定的對象,則必須通知所有連接的客戶以便他們能更新其顯示。事件的另一例子為在播放機播放請求它播放的所有音頻時。必須將這一事實通知客戶以便能更新顯示來表示已完成播放音頻。再一次為這一目的利用事件。當在客戶與服務器之間使用TCP/IP通信時,事件是作為第二TCP連接實現的。當客戶連接到服務器上時,他發布CON請求以注冊到服務器中。服務器返回標識客戶與服務器的連接的專用“連接柄”。一旦建立了服務器連接,客戶發布EVN請求告訴服務器將第二TCP連接與第一客戶連接關聯。利用應答CON請求所返回的連接柄來進行客戶連接與事件連接之間的關聯。一旦建立了事件連接,客戶負責等待進入信息。對于DAX,這是在“aserver.cpp”源模塊中進行的。建立用來等待在事件連接上接收的任何進入報文的線索。報文全部具有相同的格式格式向客戶報告事件。被呼叫EVN<標識符>{<源>}{<變元>}<標識符>事件標識符。這是標識事件的十進制數。服務器生成的事件是在稱作“事件定義”的部分中說明的。<源>事件的源。這是事件的源的指示。它只在<標識符>上下文中有意義并且是可選項因為<標識符>中有可能蘊含源。例如,指示服務器“正在停下來”的事件不需要源。諸如“播放機已停止”等其它事件可具有源。在這一情況中,源將是播放機的名字。<變元>取決于<標識符>,這可以是用空格分開的一個或多個變元。變元擴大包含在<標識符>中的信息。注釋客戶并不用在事件信道上發送應答來響應事件報文。反之,客戶用執行對事件適當的行動來響應。播放表設計在DAX音頻播放的中心是“播放表”。播放表用來描述互相之間有關系的并且要根據各種事件播放的音頻剪輯(CART)的序列。播放表主要是DAX播放機加以解釋來制作所需要的音頻的節目。在盤上,播放表是用帶有擴展名“PLS”的目錄表示的。在目錄中是一個永遠以與目錄相同的名字命名但具有擴展名“TXT”的文件。這是播放表的ASCII表示。在目錄中還有構成播放表的音頻部分的CART文件。表示播放表的CART通常位于播放表目錄中,但播放表也可能參考位于其它地方的CART。播放表的文字表示包含若干在下面部分中描述的記錄。播放表記錄播放表是一序列記錄。所有空白行及以“*”號開始的行是被忽略的并可用作注釋。各記錄以標識該記錄的關鍵字開始。關鍵字后面是用一個或多個空格分隔的零個或數個字段。下述記錄構成播放表記錄REM<備注><備注>包含關于播放表的備注的串。功能在顯示播放表時將備注提供給用戶。利用備注在播放表內的位置來確定顯示備注的地方。在最高級上顯示道外部的備注,而只在顯示道時顯示道內部備注。備注不示出在操縱箱上。記錄ONAIR<備注><備注>包含關于播放表的備注的串。功能廣播備注與備注相同但它們示出在操縱箱上。記錄TRACK<名稱><名稱>與道關聯的名稱。這通常是象“Seg1”等事物,但能根據需要想象。功能標記構成道的一組元素的開始。注意系統自動計算該道的播放時間。記錄ENDTRACK功能標記道的結束。記錄CART<類型><名稱><開始><信道><信號漸弱><類型>CART如何用在播出的這一道上<如商業廣告、節目><名稱>該CART的英文名稱。播放表目錄中的CART文件必須與要找出的CART的這一名稱匹配。<開始>如何啟動CART。可選項有手動-用操縱箱按鈕按壓或啟動光學輸入啟動CART。PREV-在前一CART結束時啟動該CART。MARK1-前一CART的標記1啟動該CART。前一CART的結束部分與這一CART的開始部分是混合的。MARK2-前一CART的標記2啟動該CART。前一CART的結束部分與這一CART的開始部分是混合的。<信號>指定系統應生成的信號。信號是“信號繼電器”上的脈沖。<信號>字段的有效值為NONE沒有為CART生成信號END在該CART結束時生成信號MARK1在標記1位置生成信號MARK2在標記2位置生成信號<信號漸弱>在CART結束時使用的信號減弱模式的號碼。減弱模式尚待確定。功能這一記錄定義音頻元素并確定在播出中如何播放該音頻。記錄BREAK<時間><時間>地方中斷的持續時間。指定為MMSS。功能這一記錄指示播出中的地方中斷。它使“開始地方中斷”轉播激活。音頻暫停在這一點上直到操作了“啟動”轉播或直到在操縱箱上按下啟動按鈕。記錄END功能播放表結束轉播及光輸入定義聯播電臺每一DAC卡可具有4個轉播輸出及4個光輸入。各卡定義轉播如下轉播輸出1、播放標記牌,每當DAX正在播放音頻時,關閉這一轉播。2、開始地方中斷,這一轉播是通常斷開的,而脈沖閉合以指示地方中斷的開始。3、信號輸出,這一轉播通常斷開的,而脈沖閉合以指示來自CART的信號(見CART記錄<信號>定義)。4、未分配。光輸入1、開始播放,開始下一手動CART播放的脈沖。2、暫停,使當前音頻事件暫停等待開始播放按鈕按下的脈沖。3、試聽,使當前音頻道的最后四秒播放的脈沖。4、未分配操縱箱操縱箱是位于播音室中的DACCART的物理表示。它提供各帶有LED及小型LCD顯示器的8個按鈕。概念上操縱箱是帶有自動換片機的CD播放機。若干音頻元件可以以與將若干音頻元件放置在換片機中十分相象的方式“裝(racket)”到操作箱中。音頻元件可以是簡單的CART或播放表。因為播放表具有內部結構,操縱箱具有使操作員能在顯示器上“放大”的模式鍵。按模式鍵使操縱箱顯示樹的更多部分。連續地按模式鍵使操縱箱在3級上循環。當前3級包括1、顯示換片機的內容。這顯示單個CART及單個播放表。2、顯示換片機的內容,此外還顯示播放表中的道。3、和級2一樣,但提供關于道的更詳細的細節。在任何給定時間上,加亮所顯示的樹的項之一。這一項稱作是當前項。如果不在播放音頻,則可通過按操縱箱上的前進與后退鍵而移動當前項指示器。在播放時,除了停止鍵以外,操縱箱鎖住所有鍵按壓。下表概述這些鍵及它們在不同的級上的效果。</tables>DAX傳送代理不論通信機制如何,傳送信息的方法基本上保持不變。頭端建立對遠程的連接。在LAN版本中這是TCP/IP插座連接。頭端發送“FIL”命令來引導文件。頭端發送零個或數個“ATR”命令來建立正在發送的文件的屬性。屬性是與文件關聯的“數據庫”值。頭端發送一條或多條“DTA”命令來發送文件本身。頭端發送單個“END”命令來結束文件傳送。頭端開始下一個文件或“斷開”(在鏈路類型的上下文中)。任何時間都可通過發送“ABT”中斷文件傳送命令來撤消傳送。傳送代理命令集與頭端通信的軟件稱作傳送代理。傳送代理解釋從頭端發送給它的命令。它響應的命令有被呼叫COM<塊大小><塊大小>將要發送的最大報文緩沖器的字節數。這用來為后面的DTA命令配置接收機。返回ERR或AOK注釋這一報文通常在傳送對話期開始時發送。它向接收程序提供關于發送程序將要使用的塊大小的信息。被呼叫FIL<名稱><類型>[<集合>]<名稱>音頻的英文名稱。<類型>音頻類型(如,音頻技術、播放表)。<集合>本音頻作為其一部分的集合名。如果不是集合的一部分,則將這一字段設定為“-”。返回AOK或ERR注釋發送這一記錄來指示文件傳輸的開始。注意<名稱>字段可以是唯一地標識該文件的任何東西。不一定非DMS中的文件名不可。此外,可將文件組合成“集合”。<集合>字段是唯一地標識該集合的ASCII串。這一概念是將用集合來實現“節目”或音頻庫。被呼叫ATR<鍵1><值1>…<鍵n><值n><鍵n>標識屬性的關鍵字。<值n>屬性的值。所有值都以ASCII串表示。所以例如屬性具有二進制100的值,將作為串“100”而不是作為單個二進制字節發送它。如果值中嵌有空格字符,則該值是包含在引號中的。返回ACK或ERR注釋文件可具有用來描述該文件的屬性信息。在FIL命令后面可發送一條或多條ATR命令。在ATR命令中可有若干屬性關鍵字對。尚未確定其限額。被呼叫DTA<數據><數據>適合于文件的數據字節(如,音頻文件具有音頻字節而文本文件則具有文本。返回AOK或ERR注釋文件中的數據可以是文本或二進制數。傳送的前4個字節包含ASCII字符“D”、“T”、“A”及“”,傳送的第5個字節為第一數據字節。數據繼續到塊結束。被呼叫END返回AOK或ERR注釋標志當前文件的傳輸結束。已成功地發送了前面的FIL、ATR及DTA命令所指名的文件。呼叫ABT返回AOK或ERR注釋中斷當前文件傳送。傳送代理丟棄到這一點上為止發送的所有信息。聯播電臺/DSP協議DSP中存在(概念上)聯播控制器能控制的“N”個單元。所有通信都必須跨越聯播控制器/DSP接口進行。邏輯上這些“單元”是聯播控制器能訪問的DSP功能。這些單元接收來自聯播控制器的報文并生成發送至聯播控制器的報文。單元的一個例子是解碼器-0,另一個是解碼器-1,而又另一個是進入衛星數據。聯播控制器發送報文到給定的單元來控制該單元的操作。聯播控制器中的VxD驅動器主要將DSP單元“反映”到聯播控制器中并給予聯播控制器中的進程訪問這些單元。將協議設計成在聯播控制器與DSP之間傳送任意的字節序列。關于用來實現協議的硬件已作出多種設想。這些設想是1、聯播控制器/DSP鏈路是全雙工的。聯播控制器與DSP之間的路徑實際上由兩條分開的路徑構成。聯播控制器能在DSP向其發送數據的同時向DSP發送數據。2、DSP永遠能接受來自聯播控制器的報文。當聯播控制器想要發送報文給DSP時,設想它能立即接收它。聯播控制器在DSP不會“占用長時間”接收報文的假設下將逗留在試圖發送報文的驅動器中(然而,聯播控制器上的中斷將放任不管)。然而,聯播控制器將尊重“主機FIFO忙”位,以便不改寫從聯播控制器到DSP的數據緩沖器。3、只要“I”位是清除的,聯播控制器便能發送主機矢量給DSP。只要不置位“I”位(主機矢量忙),在任意時間上DSP軟件都將接受主機矢量。此外,DSP將不長時間保持“I”位置位(上面設想#2的變型)。4、聯播控制器/DSP通信信道是不出錯的。在聯播控制器與DSP之間無檢錯與糾錯。設想是聯播控制器底板是不出錯的。從聯播控制器到DSP及從DSP到聯播控制器發送的各報文包含相同的三個基本部分;1、單元號,這是報文的“目的地”的號碼。“單元”的實際含義是不同驅動器的函數。例如,在聯播控制器中,單元是控制一個或多個聯播控制器線索的通信的C++對象。在DSP中,單元成為對給定的緩沖器或DSP中的功能的引用。單元號可以是報文的“地址”。2、長度,這是構成報文的字節數。3、數據,這是報文的實際內容。在鏈路的聯播控制器及DSP兩側上都有兩個用來管理報文的原始操作讀與寫。所有的通信邏輯都包含在聯播控制器與DSP的這兩個例程中。讀與寫例程的當前操作是不使用DMA傳輸數據。可選地,可編寫選擇使用DMA或不依賴于正在傳輸的報文緩沖器的大小的理想的例程。DAC類VxD驅動器必須支持若干不同的DAC卡。為此,定義了Dac類。當VxD驅動器加載時應咨詢SYSTEM.INT文件(注冊?)來確定應建立多少DAC卡事例及IRQ(及稍后DMA)中賦值是什么。DAC類的概要是<prelisting-type="program-listing"><![CDATA[classDac{ public Dac(intIrqNum,intDma);Virtual~Dac(); BOOLIoctl(DWORDCode,LPVOIDIn, DWORDInLen,LPVOIDout, (DWORDOutLen,LPDWORDResult); voidHardwareInterrupt();//進程中斷 voidLockChannel(void);//得取卡信道接口 voidDisableInterrupt(void);//釋放卡信道 voidDisableInterrupt(void);//屏蔽DSPIRQ的 中斷 voidEnableInterrupt(void);//允許DSPIRQ的 中斷 intGetDSPData();//返回dsp數據 voidPutDSPData(intvalue);//發送DSP數據 intDSPDatapresent(void);//有否DSP數據 private Unit*Unts[MAXUNITS];//單元定義 DaxSemaphore*Channel;//控制信道訪問 CardIRQ*Irq;//從VHardwareInt 得到的CardIRQ]]></pre>Dac類的基本功能為處理從VxD傳遞給它的IOCTL請求。VxD中的IOCTL柄檢驗從環3傳遞給它的控制碼并確定做什么。控制碼的高8位選擇誰處理該IOCTL。值0x00至0x03選擇系統上的第一至第四DAC卡(我們當前只支持4個DAC卡)。高位字節0xFF選擇VxD驅動器本身。驅動器解開變元并呼叫DAC類的適當事例。VxD“Onw32DeviceIoControl”的概要如下<prelisting-type="program-listing"><![CDATA[BOOLDaxVxd∷OnW32DeviceIoControl(PIOCTLPARAMSp) { inti; switch(i=((p->dioc_IOCtlCode>>24)&0xFF)) { case0xFF//這里處理控制碼 case0x01 case0x02 case0x03 if(Cards[i]==NULL)( BadErrorofSomeSort(); return(BadReturn); } else{ returnCards[i].Ioctl(p->proper arguments); } } }]]></pre>這一方案使Dac類推測出IOCTL碼對于正在它所擁有的單個單元上發送的報文意味著什么。除了“HardwareInterrupt(硬件中斷)”以外Dac的其它成員函數是直觀的。問題是VxD從DSP得到中斷。這需要與Dac類的一個事例關聯。這是這樣進行的<prelisting-type="program-listing"><![CDATA[classCardIRQpublicVHardwareInt {public CardIRQ(intInum,Dac*Owner) VHardwareInt(Inum,0,0,0){ } voidONHardwareInt(VMHANDLE); private Dac*MyCard;//擁有中斷的卡 };]]></pre>當建立Dac事例時,它用下述語言初始化其Irg成員函數Irq=newCardIRQ(IrqNum,this);現在,當存在中斷時,便調用指定的IRQ的處理器。這一處理器具有指向該中斷所屬于的Dac事例的指針作為其私有的“MyCard”成員變量。處理器所進行的全部是<prelisting-type="program-listing"><![CDATA[CardIRQ∷OnHardwareInt(VMHANDLEhVM) { MyCard->HardwareInterrupt(); }]]></pre>這導致為Dac類的正確事例調用適當的硬件中斷例程。對PC協議(以C++編寫)的操作的關鍵是“單元”類的定義。預期PC與DSP之間不同類型的通信將具有大段相同的代碼,但也將具有取決于正在發送的信息的類型的段。例如,當PC接收衛星信息時,需要將其緩沖存儲直到環3進程請求該信息。然而,輸入光隔離器的當前狀態不需要緩沖,只是存儲。通過取得來自單元庫類的不同類,便能容易地提供這些獨一無二的功能。當Dac類通過調用其構成器初始化時,它建立單元類的所有事例并將它們存儲在其單元表中。同樣地,當刪除Dac類時,它通過單元表(數組)并刪除其各個成員。單元類呈現如下<prelisting-type="program-listing"><![CDATA[classUnit{ public Unit(intAddr,Dac*owner);//單元(0,1…)的地址 virtual-Unit();//在驅動器卸載時需要 virtualintRead(char*buf,intlen,intTime); virtualintwrite(char*buf,intlen,intTime); virtualintLock(void); virtualintInterrupt(void); private Daxsemaphore*ReadSema;//讀信號 DaxSemaphore*UnitSema;//單元 Dac*Card;//我在其上的卡 char*Data;//等待緩沖器表 };]]></pre>各部分的功能如下單元-建立類的事例。變元為將要用在從PC及“擁有”這一單元的Dac類的事例發送到DSP的所有報文上的“單元號”。利用這一事例來取得這一單元事例對卡信道的獨占存取。~單元-清除例程。VxD將是動態地可加載的,因此在它卸載時,例程將清除該單元使用的資源。讀-從對應的DSP單元讀報文。這一功能將封鎖呼叫線索直到可得到報文為止。再者,如果在沒有線索等待時接收報文,則取決于特定單元的定義將報文緩沖、存儲或丟棄。寫-將報文寫到對應的DSP單元。封鎖-允許給定的線索封鎖單元,以便它能執行成對的寫/讀操作而不受第二線索干預。解鎖-允許線索放棄單元。清洗-丟棄為單元接收與緩沖存儲的任何報文。中斷-為該單元定制的中斷功能。這一功能允許在中斷時執行單元特定的代碼。讀信號-用來控制線索等待來自DSP的對應單元的輸入的信號。單元信號-用來控制單元封鎖的信號。注意類DaxSemaphore是圍繞提供VSemaphore所不提供的某些附加特征的“實際VxD”信號的“外套”。它所提供的最重要特征之一便是在刪除DxSemaphore對象時提供釋放等待中的任務的方法。即使任務在追隨信號時,這將允許(試圖)有秩序的關閉。寫功能導致線索等待對DSP的訪問,一旦得到,便將報文寫到dsp并釋放DSP。注意應使用暫停來確保寫操作并未阻塞在輸出循環中。注意在對DSP寫時它有可能發生故障,而這會使“忙位”保持向上,這會導致線索在驅動器中掛起。想出中斷寫循環的方法(定時器?等待DSP的次數計數?)將是好的。<prelisting-type="program-listing"><![CDATA[intUnit∷Write(char*buf,intlen,intTime) { Card->LockChannel();//等待DSP outputToDSP(unit#,len);//告訴dsp單元、長度 HostVector(NEW_MESSAGE);//中斷DSPwhile(DspReady()&& MoreToSend())OutputToDSP (nextbyteofbuf);//發送報文數據 Card->Unlockchannel();//釋放DSP return(SomeIndication); }]]></pre>封鎖在單元的“讀”信號上的例程。這里的想法是對于堆積在單元上的各“緩沖器”讀信號得到增量。從單元的“數據”成員上切斷緩沖器的線索(鏈接表?)。<prelisting-type="program-listing"><![CDATA[intUnit∷Write(char*buf,intlen,intTime) { ReadSema->Wait();//等待緩沖器在表上 Interruptoff();//見下面的注釋 UnthreadBuffer(Data);//從表中去掉緩沖器 Interrupton(); Copy(buf,DataBuffer);//傳送給用戶 ReleaseBuffer(DataBuffer); return(SomeIndication); }]]></pre>注釋由于某些微妙的(以及不這么微妙的)原因,在上述代碼中,中斷是關掉的1、單元上的數據緩沖器表形成關鍵區使中斷服務例程保證該表不受中斷服務例程改動。通過簡單地屏蔽DSP中斷便有可能達到相同的結果。這將使所有其它中斷保持接通(好事情),但……2、關掉中斷確保另一線索不能進入這一讀例程及領先這一線索。這一情況可能這樣進行在表上有兩個緩沖器。不是關掉中斷系統(CLI)而只屏蔽IRQ。當我們通過信號檢驗時,我們到達量子中斷的終點,而另一線索運行。該線索也調用讀,然后傳遞信號及然后得到我們在第一線索中得到一半的緩沖器。由于兩個線索都認為它們已具有該緩沖器,這一緩沖器隊列便隱入困境(試圖在深夜找到那一個…)。封鎖例程只保證線索保持單元。注意線索將得到單元的信號及DSP的信號。這里有可能出現死鎖。為了防止死鎖執行封鎖/解鎖序列如下Lock();//保持單元Read/writeRequests();//這封鎖/解鎖DSPUnlock();//解鎖單元這一序列封鎖單元、封鎖dsp、解鎖dsp、解鎖單元,保證不會有死鎖。<prelisting-type="program-listing"><![CDATA[intUnit∷Lock(void) { UnitSema->Wait(); } intUnit∷Unlock() { UnitSema->Signal(); }]]></pre>這是中斷例程。這里假定它是1、只要我們已采取預防措施保證DSP不致使我們第二次進入ISV及…,在中斷處理器中時允許接通中斷系統。2、實際上,信號“信號”例程是在中斷時間上可調用的。如果上面#2不真,則必須設法將后面的代碼放在全程事件中然后從該事件調用。由于代碼是單元的成員函數這一事實,使之稍為更復雜一些。我們必須將指向該單元的指針傳遞給全程事件處理器(這將通過定義全程事件的一個子類來進行,為該單元指針在構成器中包含一個位置,然后將指針存儲在取得的處理器函數中的一個私用變量中--懂了嗎?)。下面的代碼是Dac類的一部分并且是在接收到用于給定的卡的硬件中斷時調用的。關于這些事件如何發生見“Dac類”部分。這一代碼是在中斷時調用的并進行以下處理1、截止來自DSP的進一步中斷。2、檢驗判斷是否有來自DSP的報文。如果沒有,則啟動DSP中斷(在制備下一報文中)并退出。3、如果有報文,讀取來自DSP的單元號(要使用的單元索引)。及調用該單元的中斷功能。<prelisting-type="program-listing"><![CDATA[intDac∷HardwareInterrupt(void) { DisableInterrupt();//卡不能重復中斷 Interrupton();//可以啟動系統中斷 //判明是否有來自DSP的報文(寄存器中數據) while(DSPDataPresent()){ u=GetDSPData();//得到單元數據去往 Units[u]->Interrupt();//調用單元的中斷例程//現在試圖從DSP接收另一報文 無更多DSP報文因此重新啟動中斷 EnableInterrupt();//啟動卡上的中斷 DoEOIThing(); }]]></pre>這是單元類的“默認”中斷處理器。注意它是用仍然在DSP中的“長度”字調用的。其工作為1、分配位置來放置來自DSP的數據。2、將數據復制到緩沖器中。3、將這一緩沖器穿在單元的緩沖器隊列上。4、通過敲響信號通知等待中的線索緩沖器在這里。<prelisting-type="program-listing"><![CDATA[intUnit∷Interrupt() { len=Card->GetDSPData(); AllocateBuffer(len); while(len--) Buffer[i]=Card->GetDSPData(); InterruptOff();//穿線索時保護 ThreadBuffer(Data,Buffer); Interrupton(); ReadSema->Signal();//指示數據存在 return(SomeIndication); }]]></pre>DSP協議這一部分討論DSP的協議的實現。設計是用C樣偽代碼提出的。DSP單元中實際上是表示緩沖器的鏈表的數據結構。DSP為不同的單元維護不同類型的緩沖器。例如,解碼器單元維護大到足以保持指定數目的MUSICAM幀的緩沖器。各緩沖器呈現如下形式<prelisting-type="program-listing"><![CDATA[structbuf{ structbuf*Next;//指向表上下一緩沖器的指針 intDone;//已發送緩沖器 intUnitNumber;//目的地單元號 intLen;//數據部分長度 charData[??];//緩沖器中數據 };]]></pre>DSP中有若干關鍵例程。它們是WritePC-這一例程取一緩沖器并起動對PC的寫入。WriteInt-這是寫入PC例程的中斷一半。每次PC加載來自DSP的數據端口的字時通過中斷調用它。ReadPC-進入報文例程。當PC發送NEW_MESSAGE主機中斷時便進入這一例程。ReadInt-這是讀PC例程的中斷一半。每次PC寫入DSP的數據端口時通過中斷調用它。PCInt-調用這一例程來生成PC中斷及截止PC中斷。關鍵設想如下如果PC屏蔽了PIC芯片(對于DSPIRQ截止中斷)而DSP在PC中斷言中斷(PCInt(ON)),則下一次解除PIC芯片的屏蔽時將產生該中斷。附加的設想是在PC將一個字插入DSP的數據緩沖器時生成的中斷能被截止。在PC從DSP的數據緩沖器中清除一個字時生成的進一步中斷也能被截止。WritePC(寫PC)WritePC與WriteInt例程一起工作。這些例程的偽代碼如下TransferInProgress=FALSE;structbuf*SendList=0;利用WritePC例程來發送報文給PC。在接收報文時,將它們排隊在SendList中。<prelisting-type="program-listing"><![CDATA[WritePC(Buffer){ DisableInterrupts(); ThreadBuffertodneofSendList; EnableInterrupts(); if(notTransferInProgress){ TransferInprogress; FillDspToPSoutputregister; Enable(WriteInterrupts); PCInT(ON); } }]]></pre>每次從DSP的輸出緩沖器中取一個字時調用WriteInt例程。<prelisting-type="program-listing"><![CDATA[WtiteInt() { if(nomorebytesinbuffer){ DisableInterrupts(); Markbufferdone;if(Morebuffersonqueue){ FillDspToPCoutputregister; PCInt(ON); } else{ Disable(WriteInterrupts); TransferInProgress=FALSE; } } elseif(firstbyte){ PCInt(OFF); outputnextbyteinbuffer; } else{ outputnextbyteinbuffer; } }]]></pre>ReadPC(讀PC)ReadPC與ReadInt例程一起工作將數據從PC取入DSP中。當從PC接收報文時,將其排隊在去往給定單元的報文表中。在DSP的上下文中,“單元”實際上是所接收的帶有相同單元號的報文的表。當PC想要發送報文給DSP時,它便發布NEW_MESSAGE主機中斷。這導致ReadInt例程將報文讀入DSP。將報文緩沖器排隊在適當單元上。然后主例程輪詢這些單元及處理這些報文。這一處理可導致生成應答。這些應答是通過WritePC例程發送的。<prelisting-type="program-listing"><![CDATA[ReadPC() { Readtheunitnumber; Readthelength; Allocateappropriatebuffer; Enable(ReadInterrupt); }]]></pre>報文本部分討論在DSP與PC之間傳遞的報文。報文可分兩大類1、應答的這些報文需要應答。例如,請求解碼器的狀態的報文需要來自解碼器的應答(狀態)。這種事務處理成對出現請求報文,應答報文。應答的報文只發送給“寫/讀”類型的單元。2、不應答的發送這些報文并不期望應答。應答的報文的問題是發送報文的線索必須保證在該線索等待應答時沒有其它線索使用該通信信道。為此,線索必須都調用下述單元∷Lock()及單元∷Unlock()例程以便保證報文與它們的應答正確地的排序。當為請求生成應答時,應答使用與原來的請求相同的報文號。例如,如果將READ-OPTICAL報文發送給DAC,它以其報文號對READ-OPTICAL應答。單元分配任何單元都能潛在地支持PC與DSP之間的雙向通信。然而,為了簡化實現,只以三種不同方式利用單元1、只讀這些類型的單元用來傳輸從DSP到PC的報文。只讀單元的一個實例是“衛星數據”單元。在從衛星接收這一單元時,DSP將衛星數據寫入這一單元。PC永遠不寫報文到衛星數據單元中。2、只寫這些類型的單元用來傳輸從PC到DSP的報文。DSP從不在這些單元上發送信息給PC。這種單元的實例是“控制”單元。3、寫/讀這些類型的單元用來傳輸從PC到DSP的信息及接收從DSP回來的信息。“基本光學輸入”單元是這種單元的實例。對于寫/讀單元,PC寫報文到DSP然后PC封鎖等待DSP應答。知道了單元的類型(只讀、只寫或寫/讀)便允許得到的用來實現單元的類執行錯誤檢驗以確保從系統代碼正確地調用單元(例如,只寫單元的讀例程可捕獲錯誤)。為DAX協議定義下述單元。注意指定詞“讀與寫”是相對于PC的觀點的(即只讀意味著PC只從該單元讀取)。控制-[單元#0,只寫]控制單元用來將所有報文從PC發送到DSP,它不需要任何應答。事件-[單元#1,只讀]將從DSP到PC的事件報文寫到事件單元中。PC讀這一單元來等待事件報文。輔助數據-[單元#2,只讀]將來自解碼器的任何輔助數據寫入這一單元中。衛星數據-[單元#3,只讀]接收的衛星信息(MUSICAM記錄及命令記錄)是從這一單元讀取的。光學輸入-[單元#4,寫/讀]PC能請求卡的光學輸入的狀態并從這一單元讀取應答。解碼器狀態-[單元#5,寫/讀]PC能請求卡的解碼器狀態并從這一單元讀取應答。請求音頻-[單元#6,寫/讀]DSP發送請求到PC以在這一單元上獲取更多的音頻。合理的單元分配如下1、如果報文沒有應答,將它分配給控制單元。這確保不封鎖控制報文等待另一線索的應答。2、如果報文需要應答,將它分配給其本身的單元。這確保不封鎖線索等待它們自己在追隨應答的線索。3、將DSP異步生成的任何報文分配給其本身的單元。PC到DAC報文這一部分包含從PC發送給DAC的所有報文。它提供各報文的單元分配。可選地,字節可用兩種方式之一發送。1、盡可能緊密地封裝字節。這優化了DSP傳送字節必須應答的中斷的數目,但它要求DSP分開它接收的字節。2、不管原來的長度一律作為24位字發送所有變元。這使DSP分開作業更簡單,但明顯地提高了傳送的字節數目。最大的字節數作為MUSICAM幀或接收的衛星信息發送。它們將作為完全封裝的24位字發送。為了推遲決定如何發送數據,將定義提供下述服務的“報文類”<prelisting-type="program-listing"><![CDATA[classMessage{ public voidStart(intMnum);//開始組裝報文 voidPut(int);//放入一個整數 voidPut(char);//放入一個字節 voidPut(short);//放入一個16位整數 voidEnd(void);//結束報文voidSendBuffer (Dac*Card);//送出報文 };]]></pre>報文類封裝實際報文的格式。它是從高層例程調用的并用來構成報文緩沖器。然后將該緩沖器發送到卡。然而給定了所有這些,各報文必須具有唯一地標識它的報文號、數據長度及變元。設置衛星數據選擇開關單元控制,單元#0變元開關位置代碼。(1個字節)應答無注釋開關的位置示出在下表中</tables>注意只有這些值是可利用的。開關位置的任何其它值都是無效的。設置電臺地址單元控制,單元#0變元電臺地址值。(2字節)應答無注釋16位變元用作電臺地址增加電臺到群中。單元控制,單元#0變元要增加電臺的群號。(2字節)應答無注釋將電臺增加到指定的群中。系統中最多可有512個有區別的群。每次引導時,DAC卡不是任何群的成員。只檢驗變元的低9位。如果該電臺已是指定的群的成員,便忽略該請求。從群中去掉電臺單元控制,單元#0變元要從其中去掉電臺的群號。(2字節)應答無注釋從指定的群中去掉電臺。只用變元的低9位來確定群號。如果該電臺不是指定的群的成員,忽略該調用。讀光學輸入單元光學輸入,單元#4變元無變元應答光學輸入的值在低4位中。(1個字節)注釋這讀取光學輸入的值。控制轉播單元控制,單元#0變元高4位是轉播號(0-3)低4位是取自下表的操作(1個字節)以毫秒表示的脈沖持續時間。如果非脈沖操作則設置為零(2字節)。</tables>應答無注釋加載段信息單元控制,單元#0變元以下變元按它們的次序出現在報文中。1、段標識符。這是DSP能用來標識該段的唯一號碼。(2個字節)2、解碼器將這一段加載到哪一解碼器。這可以是0或1。(1個字節)3、開始減弱在開始這一段的播放時要采用的減弱模式號。模式號0表示不減弱。(1個字節)4、結束減弱在結束這一段的播放時要采用的減弱模式號。模式號0表示不減弱。(1個字節)。5、標記1位置。標記1在幀中從該段開始起的位置。注意位置不能超過該段的終點。值0表示無標記1。(3字節)6、標記2位置。與標記1的定義相同。(3字節)7、開始判斷啟動段播放的事件。可從下列中取值(1個字節)0來自PC的啟動命令1這一信道中的前一段的結束2其它信道中最新加載的段的結束3其它信道中最新加載的段的標記#1。4其它信道中最新加載的段的標記#2。8、事件信號在下述條件下生成事件到PC。注意能組合多個值來生成1個以上事件。(1個字節)9、要靜默的幀時間數。如果非零,則這是生成定時的靜默的偽段。(3字節)應答無注釋DSP將根據傳遞給它的段標識符生成請求供播放的數據的中斷請求。復位段播放棧單元控制,單元#0變元要復位的解碼器號(1個字節)1解碼器-02解碼器-13兩個解碼器應答無注釋注意如果解碼器正在播放,則先停止再復位。解碼器播放單元控制,單元#0變元要啟動播放的解碼器號(1個字節)1解碼器-02解碼器-13兩個解碼器。應答無注釋停止解碼器單元控制,單元#0變元要停止播放的解碼器號(1個字節)1解碼器-02解碼器-13兩個解碼器。應答無注釋開始現場播放單元控制,單元#0變元無應答無注釋連接在選擇器開關上的解碼器開始現場播放。取解碼器狀態單元解碼器狀態,單元#5變元關注的解碼器號(1個字節)1解碼器-02解碼器-1應答三個值1、解碼器的狀態可以是0停止,1播放,2現場播放。(1個字節)2、正在播放的段號。如果狀態為0(停止)或2(現場播放)則返回值0。(1個字節)3、正在播放的幀號。如果解碼器停止則返回值為0。(3字節)設定解碼器增益單元控制,單元#0變元解碼器號(1個字節)0解碼器-01解碼器-12一次改變兩個解碼器增益。增益級(2字節)應答無注釋改變特定解碼器的增益級。MUSICAM數據單元控制,單元#0變元在其上播放數據的解碼器號。可以是0或1。正發送的幀號(0表示段中無其它幀)。MUSICAM格式化的幀的總數。應答無注釋這一報文是響應DSP“請求音頻數據”發送的。DAC到PC報文這一部分概述DAC能發送給PC的報文。請求音頻數據單元請求音頻,單元#6變元段號(1個字節)解碼器號(1個字節)DSP能接受的最大MUSICAM幀數(2字節)應答在稍后時間上(不嚴格應答該請求,即DSP不等待應答),PC將發送帶有新數據的MUSICAM數據報文。注釋每當需要更多MUSICAM數據時,DSP發送這一請求。衛星數據單元衛星數據,單元#3變元來自衛星的數據。這是一序列字節。應答無注釋衛星數據接收機理解數據的語義。DSP與數據同步并已識別足以確定該數據是尋址到特定的DAC卡的報頭。數據格式將在以后的日期上確定。事件數據單元事件,單元#1變元事件報文。各報文具有相同的格式。各報文中發送事件的總數。應答無注釋事件報文格式化如下1、設備標識符(1個字節)這標識事件的源。當前定義的設備有0解碼器-01解碼器-12光隔離器2、事件標識符(1個字節)這標識事件的類型。當前定義的類型有0段結束。數據是音頻的段號。1播放標記#1。數據是音頻的段號。2播放標記#2。數據是音頻的段號。3光隔離器中的改變。數據是隔離器的當前設定值。3、數據值(3字節)。數據內容取決于事件。輔助數據單元輔助數據,單元#2變元輔助數據是分組的。各組具有2字節的報頭,后面跟隨數據。2字節報頭是1、數據來自的解碼器號。2、報頭后面的數據的字節數。應答無注釋讀光學輸入單元光學輸入,單元#4變元當前光學輸入值在低4位中(1個字節)應答無注釋這一報文是DSP響應來自PC的讀光學輸入報文發送的。取解碼器狀態單元解碼器狀態,單元#5變元三個值1、解碼器的狀態可以是0停止,1正在播放,2現場播放。(1個字節)2、正在播放的段號。如果狀態是0(停止)或2(現場播放)則返回值0。(1個字節)3、正在播放的幀號。如果解碼器是停止的則返回值為0。(1個字節)應答無注釋這一報文是DSP響應PC發送的取解碼器狀態報文發送的。操作要求這一部分討論聯播終端提供的操作功能性。系統傳送與管理的音頻有四種不同類型。1、帶有地區通知的錄制的節目2、帶有地區通知的現場節目3、帶有地區通知的推遲播放的節目4、商業廣告節目及其它音頻聯播終端提供允許各種類型的音頻的接收、制備、播放及播放鑒別的特征。以下各部分討論這些音頻類型及系統為管理各種音頻所提供的特征。各音頻類型表示當前正在從事的無窮事業線。這一事業及相關的挑戰示出在附錄A中。理解為各種音頻類型提供的特征的關鍵是理解播放表的結構。在下面部分中描述播放表。播放表與事件聯播終端能播放單個音頻片段,但很少這樣做。導致簡單地播放音頻的幾乎唯一的應用是在將傳送的商業節目復制到CART帶上時。通常聯播終端是在播放表的控制下播放音頻序列的。播放表是音頻事件的有序序列。音頻事件是在出現另一音頻事件之前一直播放到完的一序列音頻。無線電是音頻事件的管理。對于各音頻事件,有五種對潛在的用戶有興趣的性質1、事件的類(內部/外部)2、啟動觸發器3、結束信號4、退出提示5、事件持續時間其中前三項可由事件的用戶指定而后兩項是與給定的音頻事件關聯的內在性質。事件類[MexDAX-聯播]終端提供兩種事件類1、內部。內部事件是在[DAX-聯播]終端自身內部生成的。它們可以是諸如一段CaseyCassam的頂尖40演播或存儲在[DAX-聯播]終端中的商業廣告節目。2、外部。外部事件是在[DAX-聯播]終端外部生成的。它們可以是諸如位于CART機上的商業廣告節目、在每小時開頭現場廣播員的新聞廣播或電臺呼叫字母音響器。啟動觸發器播放表上的各事件說成是具有使事件啟動的觸發器。終端支持下列觸發器1、觸點閉合。當在[DAX-聯播]終端上接收到閉合時,由觸點閉合觸發的事件便開始播放。2、偽觸點閉合。這是允許一個播放表啟動另一播放表的執行的內部軟件信號。這主要用來使現場音頻能切入存儲在播放表中的其它音頻事件。3、前面的事件結束(PET)。PET事件觸發器使音頻事件立即跟隨其前面的事件。這導致一個事件流入另一個中而無須停頓或外部輸入。在播放表上包含具有不同事件觸發器的多個事件能得到豐富的操作特征集。例如,假設在觸點閉合后要接連播放一序列三個商業廣告節目。可將這一播放表設定為使音頻事件1(第一商業廣告節目)是閉合觸發的而下兩個事件是PET觸發的。再者,前兩個事件將不產生結束信號而可選擇第三個產生觸點閉合結束。結果是閉合啟動商業廣告節目播放,按順序播放各商業廣告節目而激活觸點閉合來指示商業廣告節目組的完成。結束信號當音頻事件完成執行時,它可選擇生成完成信號。下面列出兩種類型的完成信號。可為任何給定的音頻事件指定其中一種或兩種結束信號1、觸點閉合。當音頻事件完成時這導致指定的觸點閉合。2、偽觸點閉合。這是可以用來恢復已停止的播放表的軟件信號。用戶錄制的事件雖然不打算最初在MEx特征表中提供,沒有理由為什么訂戶電臺不能錄制他們自己的音頻事件。給予了這一能力,便有可能將原來是外部的事件轉換成內部事件。最后的結果將是更多的電臺自動化。這是可能的,這時節目播放從頭到尾不需要與外部電臺交互作用。播放表所有需要的Mex功能都能用適當地配置的音頻事件的表來捕捉。這種表稱作MEx播放表。下面部分討論MEx系統從播放表管理的有利地位考慮的各種需要。注意DAX終端內的播放表可存在在若干不同狀態中。這些狀態是1、待用的待用的表是已經建立的表,但當前尚未將它們分配給任何音頻輸出。這些表能夠試聽但不能播放。2、活躍的。活躍的播放表是分配給給定的音頻輸出的表。可以有若干活躍的播放表,這時各活躍的播放表的當前音頻事件必須有不同的觸發器。3、播放中。一次只能播放與給定的輸出音頻端口關聯的活躍的播放表中的一個。錄制的帶有地方通知的節目錄制的帶有地方通知的節目實際上是音頻文件與單個活躍的播放表的集合。最初Mex只支持地方可獲得的通知的外部音頻事件。換言之,地方商業廣告節目是在電臺中的CART機上的。MEx將采用下述序列傳送錄制的節目1、頭端系統將利用MEx可尋址傳送將地方商業廣告節目傳送給指定的電臺。將商業廣告節目命名為在相關節目中的位置。例如,“頂尖40點12”。2、頭端系統將報送節目事件。各部分將具有唯一的名字,諸如“頂尖40段5”。3、頭端系統將發送播放表。播放表將段與商業廣告節目連同地方可利用的通知排定次序。下面是播放表的示例事件1頂尖40段1事件2頂尖40通知1事件3頂尖40通知2事件4地方通知事件5頂尖40段2事件6頂尖40通知3事件7地方通知事件8頂尖40段3系統設定事件1在觸點閉合上觸發。這啟動節目的播出。事件2與事件3是在前一事件結束時觸發的。這導致從事件1到事件2到事件3的平滑流動。事件3的結束信號為觸點閉合。這表示地方通知的開始并可用來接口到要啟動事件4的電臺自動化系統。事件5在指示用事件4表示的地方可利用的通知的結束的觸點閉合上觸發。下載到DAX終端中的播放表連同特定的文件便是為電臺產生格式表所需的全部事物。訂戶電臺經理能檢驗或印出的格式表是從播放表與分量音頻文件發展出來的。注意各音頻事件具有與之關聯的持續時間及退出提示。即使地方化導致各電臺上的不同格式(由于來自地方化的商業廣告節目的不同退出提示),這允許各節目的格式的內部生成。權利要求1.一種數據傳送系統,包括一個衛星;一個制作子系統,用于制作包含數據文件與地址信息的封套;一個上行鏈路發射機,用于將所述封套發射到所述衛星,所述衛星轉發所述封套;至少一個聯播子系統,用于接收來自所述衛星的封套及用于存儲來自尋址所述聯播子系統的封套的數據文件,所述聯播子系統根據所述地址信息識別尋址到其上的封套,所述聯播子系統讀取存儲的數據文件并根據包含在所述數據文件中的指令處理所述數據文件。2.按照權利要求1的數據傳送系統,其中所述制作子系統制作包含編碼音頻數據的數據文件、包含與存儲在所述音頻文件中的音頻段關聯的屬性的CART文件及包含標識要在音頻節目中播放的音頻段的表的CART文件的表的播放表文件。全文摘要提供了一種數據文件傳送系統(10),在頭端上具有通過局區域、ISDN連接之類與傳送子系統(14)通信的制作子系統(12)。傳送子系統(14)在尾端通過衛星鏈路、ISDN鏈路之類與聯播子系統(16)通信。制作子系統(12)使制作人員能制作在另一音頻事件出現之前一直播放到結束的音頻。音頻事件作為音頻文件存儲。各音頻事件可包含一個或多個音頻序列、測試信息、傳送指令及具有觸點閉合信息之類的屬性表。可選擇地,在制作子系統(12)上可組裝多個音頻事件以形成播放表。將音頻文件傳送給傳送子系統(14)。傳送子系統(14)將音頻文件放置在傳送封套中并將封套傳輸給聯播終端。此外,傳送子系統(14)可將現場音頻與相關的觸點閉合信息傳輸給聯播終端(16)。聯播終端(16)可位于用戶地點。聯播終端(16)可將這些事件存儲在硬盤驅動器上,實時播放這些事件或將事件傳遞給其它聯播終端(16)。聯播終端(16)可在以后播放存儲的音頻事件。文檔編號H04J3/24GK1198862SQ96197339公開日1998年11月11日申請日期1996年8月30日優先權日1995年9月1日發明者蒂姆·蔡斯申請人:斯塔蓋德數字網絡有限公司