孫 玲,劉文杰,施 佺,蔣 斌,2
(1.南通大學(xué) 江蘇省專用集成電路設(shè)計(jì)重點(diǎn)實(shí)驗(yàn)室,江蘇 南通226007;2.蘇州國芯科技有限公司,江蘇 蘇州215011)
隨著技術(shù)的更新和高清晰度視頻設(shè)備(High Definition Television,HDTV)市場需求的提升,高清晰度多媒體接口(High-Definition Multimedia Interface,HDMI)已被廣泛用于各類消費(fèi)電子設(shè)備中[1-6]。與此同時(shí),消費(fèi)電子控制(Consumer Electronic Control,CEC)作為一種面向HDMI的自動控制總線被應(yīng)用于HDMI接口系統(tǒng)中,該技術(shù)由歐洲的SCART接口改進(jìn)發(fā)展而來,目前呈現(xiàn)出應(yīng)用范圍不斷擴(kuò)大的趨勢。不同的廠商賦予CEC技術(shù)不同的名字,例如松下電器(Panasonic)的VIERALINK,三星電子(Samsung)的ANYNET+,LG電子的SIMPLINK等,國內(nèi)的廈華電子[7]也有類似設(shè)計(jì)。
CEC總線是一種符合音視頻傳輸標(biāo)準(zhǔn)的串行雙向控制總線[8-9]。它由一根控制總線連接網(wǎng)絡(luò)內(nèi)多個(gè)支持CEC功能的音視頻設(shè)備,遠(yuǎn)程控制設(shè)備的音視頻功能,同時(shí)也支持CEC設(shè)備內(nèi)部的通信而無需用戶的直接參與,因此,能夠?qū)崿F(xiàn)用一個(gè)遙控器來控制多個(gè)HDMI連接的視聽設(shè)備,從而減少系統(tǒng)內(nèi)的遙控器數(shù)量。它所能實(shí)現(xiàn)的功能有一鍵播放(One Touch Play)、系統(tǒng)待機(jī)(System Standby)、一鍵錄像(One Touch Record)等[10]。本文研究了一種CEC總線的設(shè)計(jì)方案,并采用可綜合的Verilog HDL語言實(shí)現(xiàn)了該功能電路的邏輯綜合與仿真驗(yàn)證。
CEC系統(tǒng)在發(fā)送信息時(shí)由一個(gè)發(fā)送端和一個(gè)或數(shù)個(gè)接收端組成。發(fā)送端負(fù)責(zé)發(fā)送消息,而接收端將接收所有數(shù)據(jù)并作出相應(yīng)的應(yīng)答。發(fā)送消息時(shí)首先發(fā)送一個(gè)起始位,接著是一個(gè)或數(shù)個(gè)數(shù)據(jù)塊。起始位時(shí)長為4.5 ms,且低電平的寬度為3.7 ms,并允許在一定區(qū)間內(nèi)浮動,時(shí)序圖如圖1所示[10]。
圖1 起始位時(shí)序圖
數(shù)據(jù)位分為邏輯“0”和邏輯“1”兩種,時(shí)長均為2.4 ms。邏輯“0”的低電平寬度為1.5 ms,邏輯“1”的低電平寬度為0.6 ms,如圖2所示。其中1.05 ms時(shí)刻為采樣區(qū)的采樣時(shí)刻。
引導(dǎo)塊和數(shù)據(jù)塊均含有10 bit信息且結(jié)構(gòu)相同,如圖3所示。當(dāng)表示引導(dǎo)塊時(shí),高4位(7~4)表示發(fā)送端邏輯地址,隨后4位(3~0)為接收端邏輯地址;表示數(shù)據(jù)塊時(shí),高8位(7~0)數(shù)據(jù)為操作碼或操作數(shù)。EOM為邏輯“0”時(shí),則表示消息發(fā)送未完成;若為邏輯“1”則表示消息發(fā)送結(jié)束。ACK位為應(yīng)答位,當(dāng)發(fā)送的目的地址為非廣播地址時(shí),發(fā)送端總是將此位置為邏輯“1”,接收端成功接收到消息之后,則將該位改置為邏輯“0”,其他設(shè)備不做應(yīng)答;若發(fā)送的目的地址為廣播地址,該位被置為邏輯“0”時(shí)表示有一個(gè)或數(shù)個(gè)接收端拒絕接收消息,反之則同意接收。
圖2 數(shù)據(jù)位邏輯“1”和邏輯“0”的時(shí)序圖
圖3 引導(dǎo)塊與數(shù)據(jù)塊結(jié)構(gòu)示意圖
CEC協(xié)議通過重發(fā)機(jī)制、錯誤檢測機(jī)制和幀有效機(jī)制3種傳輸機(jī)制以保證數(shù)據(jù)的有效傳輸。發(fā)送端發(fā)送數(shù)據(jù)后,如果未能得到接收端傳來的正確的應(yīng)答信號時(shí)啟動重發(fā)機(jī)制,且重發(fā)次數(shù)不超過5次;接收端接收到有效起始位后啟動錯誤檢測機(jī)制,若接收端接收到的數(shù)據(jù)信號的長度未落在協(xié)議規(guī)定的信號時(shí)間長度內(nèi),則反饋給發(fā)送端1.4~1.6倍的普通數(shù)據(jù)比特時(shí)間長度的低電平;幀有效機(jī)制是指接收端接收到的操作數(shù)與所要求的操作數(shù)的長度不相符時(shí)將丟棄該幀。
當(dāng)系統(tǒng)中存在多個(gè)模塊同時(shí)傳輸信息時(shí),將在發(fā)送引導(dǎo)塊的發(fā)送端邏輯地址時(shí)間區(qū)間內(nèi)對總線的獲取實(shí)施仲裁機(jī)制,以確定哪個(gè)設(shè)備獲得總線的占用權(quán)。仲裁機(jī)制判斷標(biāo)準(zhǔn)為:若發(fā)送的是高電平而總線上是低電平,則該模塊失去了仲裁,反之,則獲得總線的占用權(quán)。此外,發(fā)送數(shù)據(jù)時(shí)還需要遵循信號空閑原則,同一設(shè)備再發(fā)送幀需等待大于等于7個(gè)普通數(shù)據(jù)時(shí)間長度,新設(shè)備發(fā)送幀需等待大于等于5個(gè)普通數(shù)據(jù)時(shí)間長度,發(fā)送失敗重發(fā)幀需等待大于等于3個(gè)時(shí)間長度。
CEC模塊總體設(shè)計(jì)如下圖4所示。圖中,發(fā)送模塊接收需要發(fā)送的數(shù)據(jù)并經(jīng)bus_out端口發(fā)送出去;接收模塊將接收到的數(shù)據(jù)還原輸出,并將信號rx_ack_d和err_det傳到發(fā)送模塊使其發(fā)送應(yīng)答信號。信號tx_ready和tx_valid為CEC模塊與傳送數(shù)據(jù)的數(shù)據(jù)存儲模塊之間的握手信號,其中tx_ready為CEC發(fā)送準(zhǔn)備信號,tx_valid表示數(shù)據(jù)存儲模塊的有效信號,當(dāng)兩個(gè)信號同時(shí)有效時(shí),數(shù)據(jù)由in_frame端輸入。eom為發(fā)送幀中需要的EOM位數(shù)據(jù)信息;start表示幀起始位信號;err_detect表示接收端接收到錯誤信號的反饋信號;frame_out表示作為接收端時(shí)輸出接收到的信號;bus_out與bus_in為同一根雙向串行總線。
圖4 CEC模塊總體設(shè)計(jì)示意圖
CEC工作時(shí)可能處在的狀態(tài)有3種,即等待狀態(tài)、發(fā)送狀態(tài)和接收狀態(tài)。其中,等待狀態(tài)表示該模塊等待本地發(fā)送請求或接收數(shù)據(jù)的過程。發(fā)送狀態(tài)和接收狀態(tài)工作流程分別如下所述。
圖5所示為CEC在發(fā)送狀態(tài)下發(fā)送一個(gè)數(shù)據(jù)塊的流程圖。首先由本地設(shè)備發(fā)出發(fā)送請求,若總線空閑時(shí)間滿足要求則表示總線處于空閑狀態(tài),發(fā)送模塊接收來自本地的信息并開始發(fā)送,否則繼續(xù)等待直到總線空閑。當(dāng)總線空閑時(shí)向總線發(fā)送信息并啟動總線仲裁功能,同時(shí)啟動是否收到錯誤信號檢測模塊。一方面,start位未發(fā)送完成持續(xù)等待,當(dāng)其發(fā)送完成后錯誤信號檢測模塊檢測到錯誤信號時(shí),返回發(fā)送端重新發(fā)送,并且重發(fā)次數(shù)不能大于5次,若大于5次則本次發(fā)送請求失敗。另一方面,總線仲裁模塊檢測是否獲得總線占用權(quán),若本地沒有獲得總線占用權(quán)則返回到總線空閑判斷狀態(tài)等待再發(fā)送;若獲得總線占用權(quán)則發(fā)送信息。當(dāng)發(fā)送到引導(dǎo)塊或數(shù)據(jù)塊的ACK位時(shí)判斷該位是否有效,若有效,則本次發(fā)送請求成功,幀發(fā)送結(jié)束;反之則將啟動重發(fā)功能。此時(shí)的重發(fā)次數(shù)與之前是否收到錯誤信號檢測的重新次數(shù)之和不能大于5次,同樣,若大于5次則本次發(fā)送請求失敗。
圖6所示為CEC在接收狀態(tài)下接收數(shù)據(jù)塊的流程圖。首先,接收端持續(xù)監(jiān)測總線上電平變化,當(dāng)總線上出現(xiàn)低電平時(shí)立即檢測start位的信息是否有效,若無效則繼續(xù)監(jiān)測。當(dāng)接收到有效的start位信息后,一方面,是否接收到錯誤信號檢測模塊不間斷檢測總線上信號是否正確,一旦檢測到錯誤信號則持續(xù)發(fā)送一段時(shí)間低電平信號以告知發(fā)送端停止發(fā)送,然后結(jié)束本幀接收。另一方面,當(dāng)接收到一有效的start位后,在安全采樣區(qū)間內(nèi)采樣還原目的地址信息并與本地邏輯地址比較。若兩個(gè)地址不相同則結(jié)束本次接收;若兩個(gè)地址相同,則繼續(xù)接收并在相應(yīng)時(shí)刻發(fā)送有效ACK信號直到本幀接收結(jié)束。
圖5 發(fā)送狀態(tài)發(fā)送流程圖
圖6 接收狀態(tài)接收流程圖
為實(shí)現(xiàn)圖5所示的發(fā)送流程,圖7給出了發(fā)送模塊的設(shè)計(jì)圖。整個(gè)協(xié)議中需要發(fā)送輸出的部分將全部由該模塊完成,其中包括:總線仲裁功能、發(fā)送幀數(shù)據(jù)功能、無應(yīng)答時(shí)的重發(fā)功能、空閑時(shí)間計(jì)數(shù)功能、發(fā)送應(yīng)答信號和接收到錯誤信號的反饋功能等。圖中的幀控制、塊控制、比特控制分別表示對發(fā)送端的數(shù)據(jù)在不同時(shí)間段的發(fā)送有效性控制。
圖7發(fā)送模塊設(shè)計(jì)圖
圖8 給出了實(shí)現(xiàn)圖6所示的接收流程的接收端模塊設(shè)計(jì)圖。該模塊完成的功能有起始信號檢測功能、錯誤信號檢測功能、邏輯地址比較功能和總線數(shù)據(jù)采樣功能等。
圖8接收模塊設(shè)計(jì)圖
圖9 給出的為CEC總線仿真搭建的測試平臺設(shè)計(jì)圖。其中l(wèi)ink信號為激勵發(fā)送端與CEC頂層之間的發(fā)送與接收控制信號,保證二者一個(gè)處于發(fā)送狀態(tài)時(shí)另一個(gè)必須處于接收狀態(tài);bus_inout表示雙向總線;sys_clk、sys_rst分別表示系統(tǒng)時(shí)鐘和系統(tǒng)復(fù)位信號。
圖9 仿真測試平臺示意圖
根據(jù)上述提出的CEC總線協(xié)議設(shè)計(jì)方案,應(yīng)用可綜合的Verilog語言,在QuartusII平臺下實(shí)現(xiàn)了電路綜合,并在Modelsim6.5g軟件平臺下完成了電路的仿真。在圖9所示仿真測試平臺的基礎(chǔ)上發(fā)送端發(fā)送和接收端接收聯(lián)調(diào)仿真波形如圖10所示。圖中,系統(tǒng)時(shí)鐘頻率設(shè)置為12.5 MHz,接收端還原出來的數(shù)據(jù)與發(fā)送端發(fā)送的數(shù)據(jù)一致,發(fā)送端第一個(gè)輸入的數(shù)據(jù)為引導(dǎo)塊,未輸出??刂菩盘朼ck_sample_period為高電平時(shí)表示接收端發(fā)送應(yīng)答信號時(shí)間區(qū)間,在該區(qū)間內(nèi)采樣得到的為接收端的應(yīng)答信號。
圖10 發(fā)送端發(fā)送及接收端接收聯(lián)調(diào)仿真波形(截圖)
當(dāng)選用Altera公司的Cyclone IV系列器件EP4CE115F29C7綜合時(shí),CEC模塊資源占用情況下表1所示,其中,CEC設(shè)計(jì)總計(jì)中的邏輯資源占用結(jié)果為發(fā)送模塊與接收模塊一起綜合的結(jié)果,由于發(fā)送模塊與接收模塊二者之間存在一部分的邏輯復(fù)用,因此較發(fā)送端與接收端資源占用總和少。
表1 CEC模塊資源占用情況
本文對CEC各功能模塊進(jìn)行了設(shè)計(jì)并在相關(guān)的軟件平臺下實(shí)現(xiàn)仿真驗(yàn)證,從仿真驗(yàn)證結(jié)果看,該設(shè)計(jì)實(shí)現(xiàn)功能完備,能夠滿足設(shè)計(jì)和產(chǎn)品要求,因此可作為IP核應(yīng)用于多媒體網(wǎng)絡(luò)數(shù)據(jù)傳輸領(lǐng)域。
[1]廖夢云,趙利.HDMI接口在嵌入式視頻監(jiān)控系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2009(23):45-47.
[2]丁鐵夫,楊磊,楊旭,等.基于HDMI的實(shí)時(shí)視頻/音頻傳輸系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(25):180-182.
[3]蘇鐘人.平板電視的功能擴(kuò)展[J].電視技術(shù),2007,31(4):4-7.
[4]王穎.HDMI搶占高清市場先機(jī)[J].中國電子商情,2008(3):48-50.
[5]Willas Array公司.HDTV帶出HDMI-CEC的微妙變化[J].電子產(chǎn)品世界,2008(8):116-117.
[6]黃慶敏,羅鍵.HDMI接口標(biāo)準(zhǔn)及應(yīng)用設(shè)計(jì)[J].電視技術(shù),2007,31(2):32-34.
[7]謝特輝.HDMI-CEC簡介及其應(yīng)用[J].電視技術(shù),2010,34(10):42-46.
[8]張涌,黃世震.HDMI CEC的設(shè)計(jì)與實(shí)現(xiàn)[J].中國集成電路,2010(12):64-67.
[9]Quantum data white paper[EB/OL].[2012-11-20].http://www.quantumdata.com/pdf/CEC_White_Paper.pdf.
[10]Silicon Image,Inc.HDMI Specification Version 1.3[EB/OL].[2012-11-20].http://download.csdn.net/detail/plain_liu/365154.