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