基于CY7C68013A和 LGS一8GL5的USB電視棒設計
4 USB固件設計要求
USB固件設計考慮代碼容量絕不能超過(guò)CY7C68013A代碼空間的限制。雖然CY7C68013A的128腳封裝可以擴展代碼和數據空間,基于成本考慮,要求代碼和數據不超過(guò)USB芯片內部SRAM的容量限制,這也是制約固件功能不能太復雜的一個(gè)關(guān)鍵因素。CY7C68013A支持從EEPROM或主機加載固件兩種模式。直接將固件燒入EEPROM,對固件的升級相對比較繁瑣,適合固件比較穩定的情況。采用動(dòng)態(tài)加載固件的方法,能夠方便地升級固件,是一種推薦的方法。USB固件的主要功能如下:初始化USB芯片狀態(tài),包括CPU時(shí)鐘的設置、USB端點(diǎn)(EP)的設置以及針對實(shí)際物理連接的slave FIFO的設置;接收主機的I2C命令,轉化為本地設備的操作;接收紅外信息傳送給主機。
TS流的傳輸因為設置為自動(dòng)傳輸,發(fā)送過(guò)程中USB芯片中CPU不干預,故在流程圖不可見(jiàn)。對遙控器的紅外接收數據和I2C設備執行結果統一通過(guò)EPlIN采用中斷模式上傳給主機。
5 上位機控制要求
上位機對數字電視的應用針對不同操作系統已經(jīng)定義出不同的架構。在常見(jiàn)的微軟Windows平臺上有TVand Broadcast Driver Architecture(簡(jiǎn)稱(chēng)BDA架構)。有關(guān)BDA詳細信息請參考微軟官方網(wǎng)站http://www.mi―crosoft.com/whdc/archive/broadcast.mspx;在Linux平臺上有Linux Digital Video Broadcast(DVB) subsystem,其維護網(wǎng)站為http://linuxtv.org/。兩種架構都對上層應用屏蔽了具體設備的細節,實(shí)現這種屏蔽需要編寫(xiě)相應的驅動(dòng)完成從系統調用到自定義操作的轉換過(guò)程。虛擬設備的操作直接暴露給操作系統以增強靈活性,而實(shí)際的操作轉換為基本的I2C操作或紅外操作,并經(jīng)過(guò)USB進(jìn)行包裝發(fā)送給底層固件,固件剝離出原始數據后對模塊執行實(shí)際的I2C操作或返回紅外設備數據。針對不同操作系統,各自驅動(dòng)的編寫(xiě)分別為:在Linux上主要為注冊dvb_USB_devlceproperties結構中相關(guān)的方法;在BDA架構上主要為填充Bda―sup.1ib中要求的屬性方法集。對主機的要求主要集中在兩個(gè)方面:具備能夠流暢解碼當前數字電視壓縮的音視頻的能力;操作系統最好支持多線(xiàn)程,以方便解碼和播放同步操作。
評論