一種紅外解碼IP核在SoPC系統(tǒng)中的設計與實現(xiàn)
0 引言
紅外通信作為一種簡便的無線通信技術在電子設備中具有廣泛的應用。它的主要優(yōu)點是無需專門申請?zhí)囟l率的使用執(zhí)照;具有移動通信設備所必需的體積小,功率低的特點;傳輸速率適合家庭和辦公室使用的網(wǎng)絡;信號無干擾,傳輸準確度高;成本低廉。
SoPC技術是在可編程邏輯器件的基礎上發(fā)展起來的一種靈活、高效的嵌入式系統(tǒng)解決方案。它將處理器、存儲器、I/O口、常用外設等系統(tǒng)設計所需要的部件以IP核的形式集成到一片F(xiàn)PGA器件上,構建成一個可編程的片上系統(tǒng),實現(xiàn)特定的邏輯功能。其中,IP核可理解為一段具有特定電路功能的硬件描述語言程序,該程序與集成電路工藝無關,可以移植到不同的半導體工藝中去生產(chǎn)集成電路芯片。因此,IP核的設計與復用是SoPC設計中解決設計層次、產(chǎn)品成本、設計周期和降低風險的關鍵環(huán)節(jié),是SoPC設計中的關鍵技術。
本文提出一種紅外解碼IP核在SoPC系統(tǒng)中的設計與實現(xiàn)方法,重點研究紅外系統(tǒng)的數(shù)據(jù)編碼和傳輸機制、紅外解碼電路的HDL設計、IP核的制作及在SoPC系統(tǒng)中的應用方法。
1 紅外通信原理與Avalon總線規(guī)范
1.1 紅外通信原理
本文采用的紅外接收部分的硬件電路由紅外發(fā)射芯片TC9012和紅外接收芯片DS338S組成。DS338S的輸出信號IR_out接入FPGA的GPIO,實現(xiàn)紅外解碼功能。硬件電路圖如圖1所示。
發(fā)射端TC9012發(fā)送的紅外數(shù)據(jù)幀的格式如圖2所示。
每幀含有32 b,包含2次8位用戶碼,8位數(shù)據(jù)碼和8位數(shù)據(jù)碼的反碼及最后位的同步位。其中,用戶碼是由硬件決定的,通過解碼用戶碼來識別控制單位是否有權控制設備。數(shù)據(jù)反碼是用于驗證數(shù)據(jù)碼是否正確的。引導碼由4.5 ms的載波和4.5 ms的載波關斷波形所構成,作為用戶碼、數(shù)據(jù)碼以及他們的反碼的先導。TC9012采用PPM(Pulse Phase Modulation)脈沖相位調(diào)制方式完成數(shù)據(jù)的發(fā)送。載波、同步位、位元‘0’和‘1’和引導碼的波形如圖3所示。由圖可知,載波頻率為38 kHz,占空比為1/3;同步位(SY)是標志最后一位編碼“0”或“1”的標識位,它只有0.56 ms的有載波信號構成;位元0由0.56 ms的有載波部分和0.565 ms的空閑部分構成;位元1由0.56 ms的有載波部分和1.69 ms的空閑部分構成。
紅外接收端DS338S內(nèi)含高速高靈敏度PIN光電二極管和低功耗、高增益前置放大IC,采用外屏蔽,在紅外遙控系統(tǒng)中作為接收器使用。IR M-338S的輸入/輸出波形如圖4所示。
由圖可知,在進行紅外解碼的時候,輸入信號是從IRM-338S接收管送出的信號,接收管的輸出信號與發(fā)射端的發(fā)射信號是倒相關系。
1.2 Avalon總線規(guī)范簡介
Avalon總線是Altera公司專門為SoPC推出的一套片內(nèi)總線系統(tǒng),是SoPC解決方案中的核心部分。本設計采用的是Avalon-MM總線接口,該總線接口是內(nèi)存映射系統(tǒng)下用于主從設備之間通信的讀寫接口,采用主從式的傳輸方式,即由一個主控端外設發(fā)起并控制傳輸過程,而從屬端外設響應經(jīng)由總線模塊發(fā)來的信號完成整個傳輸。Avalon-MM定義了一組接口信號和總線時序,具體的接口信號見表1。
[!--empirenews.page--]
2 紅外解碼IP核的設計
紅外解碼IP核包括紅外解碼邏輯和Avalon總線接入邏輯兩個部分,其端口描述如圖5所示。
2.1 紅外解碼邏輯的設計
紅外解碼邏輯的設計核心是:采用脈沖計數(shù)的方法,檢測IRM-338S接收管輸出的IR_OUT信號在連續(xù)兩次跳沿間處于高電平或低電平的時間,進而判斷出每個位元的類型和對應信息,把位元信息組成字節(jié),將字節(jié)還原成幀,實現(xiàn)紅外解碼。該邏輯的設計框架見圖6。
(1)時鐘分頻邏輯。在紅外通信協(xié)議中,IR_OUT信號在連續(xù)2次跳沿間的最小電平持續(xù)時間為0.56 ms。為精確檢測該電乎的持續(xù)時間,選取周期為40μs時鐘脈沖信號對電平進行計數(shù)。該時鐘脈沖信號由Avalon總線的csi_clock_clk信號分頻得到。位元檢測解碼邏輯:檢測IR_OUT信號的跳沿,以跳沿為計數(shù)起始和結束點,使用時鐘脈沖信號對位元電平進行計數(shù)。位元解碼邏輯將計數(shù)結果轉換成位元信息,并輸出位元結束信號。在位元解碼邏輯中,考慮到實際硬件誤差,用不同的計數(shù)范圍對應各種位元信息,具體對應關系見表2。
(2)字節(jié)檢測解碼邏輯。檢測位元結束信號并進行計數(shù),將連續(xù)8個位元的信息填充成1個字節(jié),輸出字節(jié)結束信號。幀檢測解碼邏輯:檢測字節(jié)結束信號并進行計數(shù),將連續(xù)4個字節(jié)的信息填充成1個紅外數(shù)據(jù)幀,輸出解碼結束信號,用于產(chǎn)生中斷;使用SignaltapⅡ對設計的紅外解碼邏輯進行測試,其中位元檢測解碼邏輯時序見圖7。由圖可知,在40μs時鐘脈沖信號下,位元“0”的高電平持續(xù)14個脈沖,低電平持續(xù)14個脈沖;位元“1”的高電平持續(xù)14個脈沖,低電平持續(xù)43個脈沖。測試結果與理論分析一致。
[!--empirenews.page--]
2.2 Avalon總線接入邏輯
Avalon總線接入邏輯實現(xiàn)總線中斷時序和總線讀時序,將紅外解碼邏輯輸出的解碼結束信號以中斷的方式發(fā)送到Avalon總線上,供Avalon總線上的主設備響應中斷,讀取幀解碼結果。中斷邏輯和總線讀邏輯的Verilog描述見圖8。
3 紅外解碼IP核的測試與小結
完成紅外解碼IP核的設計后,可應用SoPC Builder提供的元件編輯器(Component Editor)將IP核封裝成基于Avalon總線中的AvaIon-MM設備,使用該IP核,在使用過程中要注意信號類型的映射關系、接口和時序等選項的配置。
在DE2平臺上,使用該IP核完成的作品《基于NIOS Ⅱ多核技術的魔方智能求解系統(tǒng)》參加了2011 Altera亞洲創(chuàng)新設計大賽獲二等獎。該系統(tǒng)中與紅外解碼IP核相關的信號時序見圖9。
4 結語
反復測試和實際使用結果表明,紅外解碼IP核能實現(xiàn)快速、穩(wěn)定、正確的紅外解碼功能,達到預期設計目標。