基于CY7C68013A和 LGS一8GL5的USB電視棒設計
圖1為USB電視棒系統整體框圖。虛線包含部分為電視棒主要數據流框圖,從外部接收的數字電視射頻信號經過調諧、解調后,以MPEG2并行形式傳送給CY7C68013A芯片,再由芯片將其轉為USB數據包傳送給上位機。上位機的控制信息也經由USB數據包轉發給CY7C68013A。該芯片將數據包轉化為本地對各個外設(主要是調諧器和LGS一8GL5)的操作。除了正常的數據包,USB芯片還承擔轉發遙控器信息等其他擴展功能任務。系統主要功能模塊分為tuner(調諧器)、demoduldator(LGS-8GL5解調器)、USB transceiver(CY7C68013A)。USB芯片作為I2C master控制調諧器的調諧和解調器的工作。LGS一8GL5解調后的TS流通過MPEG2接口傳輸給USB芯片轉發給播放設備。電視棒設計工作主要包括處理TS流數據和控制各芯片進入對應的工作狀態。下面分別論述TS流處理和芯片的控制。
2 TS流處理
2.1 TS流硬件連接
MPEG2視頻傳輸接口標準分為異步串行接口標準ASI和同步并行接口標準SPI。ASI連線少,適合長距離傳輸但是處理復雜,CY7C68013A在硬件上沒有提供接入異步串行標準的接口;SPI接口共有11位信號,分為8條數據線、1條時鐘線、1條同步信號線和1條數據有效指示信號線,連線多但是處理簡單。能否提供TS流硬件接口是在設計USB電視棒時選擇USB芯片的一個關鍵因素。CY7C68013A具備可編程的slave FIF0接口,工作方式依據設置可為主或從。SPI方式符合其FIF0工作的一種模式,圖2以LGS一8GL5并行SPI連接為例,給出了解調芯片和USB芯片之間的連接方式。
2.2 TS流數據處理
數據達到CY7C68013A后,可選是否需要USB芯片干預接收的數據或由USB自動提交數據到主機。前者的優點為可以通過USB芯片過濾部分錯誤和冗余數據包,或進行節目過濾以減小主機的負載,但是由于受USB芯片內部8051處理器性能的影響,對碼流有一定限制;后者采用直通形式,能夠有效發揮USB芯片的全速功能,但對主機端軟件要求較多。由于TS流數據為持續的數據流而且對數據錯誤不敏感,由主機來對原始數據流處理具備較高的靈活性,在速度上也能適應更寬的要求。實際過程中設置CY7C68013A使其對slave FIF0中的數據自動轉發。
3 控制信息的傳遞
控制信息包括通過I2C接口的對解調器和調諧器的控制命令、狀態信息,以及從USB芯片接收的紅外遙控命令。控制模式可采用兩種方式:直接將各種控制打包成USB信息發送給主機,USB芯片僅保證基本數據通信的正確性,不對數據內容和返回信息做處理;另外一種方式為將對電視芯片的控制命令進行封裝,重新定義和主機的通信命令,兩種通信的數據流模型分別如圖3(a)和3(b)所示。圖3(a)中,主機對具體的控制命令不可見,其發送和接收的數據都是和USB固件約定的調用封裝,數據的傳輸過程為:應用→庫(將命令轉換為USB包/USB解析出命令執行結果)→USB總線→CY7C68013A→USB固件(將命令轉換為實際設備操作命令/將執行結果轉換為和應用約定的返回值)→設備操作/應答。傳輸過程中實際的命令由CY7C68013A來完成。這種模式將對電視棒外圍設備的操作都封裝到USB固件中,簡化了主機端驅動的操作。圖3(b)對模塊的控制和傳輸數據是透明的,實際通信內容的解析完全由主機的驅動完成,其數據傳輸過程為:應用→庫→對虛擬設備的操作命令→對設備的操作轉換為USB數據包/USB數據包轉換為操作結果→USB總線→固件→固件執行I2C基本操作或紅外操作→設備執行操作命令。該模式將設備的操作直接交給應用庫完成,簡化固件編程要求。
評論