聶玉慶 許悅
摘 要本文研究TC9012通信協(xié)議建模實現(xiàn)。通過深入理解TC9012編碼協(xié)議,仔細(xì)分析一幀完整數(shù)據(jù),對一幀數(shù)據(jù)里每一部分信息參數(shù)化,使得該模型復(fù)用性更好,適用于常用串行協(xié)議對脈沖頻率、位置和寬度調(diào)制模式。
【關(guān)鍵詞】TC9012通信協(xié)議,協(xié)議建模,SystemVerilog
1 TC9012協(xié)議簡介
TC9012通信協(xié)議使用脈沖位置編碼方式(PPM)對各比特數(shù)據(jù)進(jìn)行調(diào)制,
該編碼方式效率高,抗干擾性能好。支持38KHz載波頻率,每個脈沖為560us時間寬度,邏輯1發(fā)送比特占據(jù)2.25ms時間寬度,邏輯0發(fā)送比特占據(jù)1.12ms時間寬度,調(diào)制載波占空比為1/4。
一完整數(shù)據(jù)幀為108ms,包括導(dǎo)引碼、用戶碼、數(shù)據(jù)碼以及同步位。導(dǎo)引碼包括4.5ms寬度載波作為紅外接收器增益參數(shù)和4.5ms載波關(guān)斷波形。用戶碼是連續(xù)兩次8比特數(shù)據(jù)原碼,數(shù)據(jù)碼是8比特數(shù)據(jù)原碼以及8比特數(shù)據(jù)反碼,發(fā)送兩次是為提高可靠性考慮。最后是同步位,用于確定數(shù)據(jù)碼反碼最后一比特是邏輯0還是邏輯1。一完整數(shù)據(jù)幀格式如圖1所示。
用戶操作紅外發(fā)射器時,如果一直按住按鍵,TC9012協(xié)議碼指令也僅發(fā)送一次,并在每間隔108ms時間長度發(fā)送一幀重復(fù)碼,重復(fù)碼包含4.5ms高電平增益脈沖和4.5ms低電平脈沖,以及1比特邏輯1或邏輯0,還有560us高電平脈沖同步位。數(shù)據(jù)傳送波形如圖2所示。
2 TC9012協(xié)議分析
TC9012協(xié)議可以分為四種工作模式,分別為正常非重復(fù)碼模式,正常重復(fù)碼模式,錯誤非重復(fù)碼模式和錯誤重復(fù)碼模式,下面分別進(jìn)行分析。
2.1 正常非重復(fù)碼模式
導(dǎo)引碼是嚴(yán)格4.5ms高電平脈沖和4.5ms低電平脈沖。用戶碼雖然是16比特,但是是一個8比特序列的重復(fù),因此只需按8比特序列處理。對每一比特,需要判斷是邏輯1還是邏輯0,并且判斷脈沖寬度。數(shù)據(jù)碼也是16比特,但是第二個8比特剛好是第一個8比特的反碼,因此也可以按8比特序列處理。對每一比特,需要判斷是邏輯1還是邏輯0,并且判斷脈沖寬度。同步位是560us寬度高電平脈沖。
2.2 正常重復(fù)碼模式
導(dǎo)引碼是嚴(yán)格的4.5ms高電平脈沖和4.5ms低電平脈沖。判斷導(dǎo)引碼后的那一比特是邏輯1還是邏輯0,并且判斷脈沖寬度。同步位是寬度為560us高電平脈沖。
2.3 錯誤非重復(fù)碼模式
無論是高低電平邏輯出錯還是脈沖寬度違例,均認(rèn)為是導(dǎo)引碼錯誤。用戶碼8比特里任意1比特?zé)o論高低電平邏輯出錯還是脈沖寬度違例,均認(rèn)為是用戶碼錯誤。數(shù)據(jù)碼8比特里任意1比特?zé)o論高低電平邏輯出錯還是脈沖寬度違例,均認(rèn)為是數(shù)據(jù)碼錯誤。同時注意第二個8比特是反碼。同步位不是嚴(yán)格的560us寬度高電平脈沖,則認(rèn)為同步位出錯。
2.4 錯誤重復(fù)碼模式
導(dǎo)引碼無論是高低電平邏輯出錯還是脈沖寬度違例,均認(rèn)為是導(dǎo)引碼錯誤。導(dǎo)引碼后的那一比特,需要區(qū)分是邏輯1還是邏輯0,無論是高低電平邏輯出錯還是脈沖寬度不符合協(xié)議規(guī)范,均認(rèn)為錯誤。同步位不是高電平脈沖或者寬度不是560us,均認(rèn)為錯誤。
考慮到通用性,多設(shè)置一個參數(shù),控制各數(shù)據(jù)幀之間的時間間隔。
3 實際仿真結(jié)果及分析
把開發(fā)好的TC9012協(xié)議模型集成到某驗證環(huán)境,得到實際仿真波形如圖4、圖5所示,與TC9012協(xié)議規(guī)范保持一致。
4 結(jié)論
本文研究TC9012通信協(xié)議,并使用高級驗證語言SystemVerilog實現(xiàn)
了協(xié)議建模。當(dāng)前業(yè)界流行的三種驗證方法學(xué)VMM、OVM和UVM均使用SystemVerilog編程語言,因此便于驗證環(huán)境集成,具有很好復(fù)用性,可以在任何使用TC9012協(xié)議或基于TC9012規(guī)范自定義協(xié)議的驗證環(huán)境里作為一個VIP使用。進(jìn)一步擴(kuò)展開來,該方法適用于常用串行協(xié)議對脈沖頻率編碼調(diào)制、脈沖位置編碼調(diào)制以及脈沖寬度編碼調(diào)制。在協(xié)議建模時對一幀數(shù)據(jù)的每一部分信息都參數(shù)化,根據(jù)實際工作場景對各參數(shù)設(shè)置約束,通過大量跑隨機(jī)仿真用例,能夠覆蓋到所有驗證場景,并達(dá)到覆蓋率出口條件。
參考文獻(xiàn)
[1]Verification Methodology Manual for SystemVerilog.Janick Bergeron, Eduard Cerny,AlanHunter,Andrew Nightingale. ISBN-10: 0-387-25556-7.
[2]TC9012紅外解碼[Z].深圳市明芯微電子有限公司,2015.
[3]紅外遙控編碼資料[Z].深圳市明芯微電子有限公司,2015.
作者單位
1.炬芯(珠海)科技有限公司 廣東省珠海市 519085
2.西安聯(lián)合學(xué)院 陜西省西安市 710014