新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 高速紅外VFIR控制器的設(shè)計與實現(xiàn)

高速紅外VFIR控制器的設(shè)計與實現(xiàn)

作者: 時間:2012-07-20 來源:網(wǎng)絡(luò) 收藏

2.2 紅外接口控制邏輯

根據(jù)紅外接口控制寄存器控制字,紅外接口控制邏輯實現(xiàn)外部RX/TXFIFO與紅外收發(fā)器接口之間的數(shù)據(jù)傳輸和邏輯時序。它的工作原理如下:根據(jù)控制字,首先啟動紅外收發(fā)器接口CRC校驗、編解碼器和可編程時鐘(RX/TXFIFO讀/寫時鐘RCLK、WCLK和編解碼時鐘fclock),然后根據(jù)控制字的TX/RX位決定是接收還是發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)時,TXFIFO緩沖器不為空,TXFIFO的EF信號就觸發(fā)紅外接口控制邏輯發(fā)TXFIFO讀操作信號ENR#,讀取TXFIFO的數(shù)據(jù)(數(shù)據(jù)寬度32位)傳給紅外收發(fā)器接口進行CRC校驗、編碼以及并/串轉(zhuǎn)換。同理當甚控制器接收數(shù)據(jù)時,紅外收發(fā)器接收到的數(shù)據(jù)經(jīng)過譯碼、串/并轉(zhuǎn)換(數(shù)據(jù)寬度32位),然后觸發(fā)紅外接口控制邏輯發(fā)出紅外接收FIFO的寫操作信號ENW#,把接收數(shù)據(jù)寫入紅外接收FIFO。當RXFIFO寫滿后,觸發(fā)控制邏輯發(fā)出S5933 FIFO寫信號WRFIFO#,上層協(xié)議啟動接口初始化S5933為同步主控寫操作實現(xiàn)紅外接收FIFO到主機內(nèi)存的數(shù)據(jù)傳畀。另外紅外接口邏輯還實現(xiàn)紅外接口狀態(tài)寄存器狀態(tài)的配置,以方便上層協(xié)議了解紅外控制器工作狀態(tài)。

2.3 紅外收發(fā)器接口

紅外收發(fā)器接口的設(shè)計與實現(xiàn)是紅外控制器成功的關(guān)鍵。該接口需要實現(xiàn)各種工作模式(SIR、MIR、FIR、VFIR)的編解碼器和硬件CRC校驗、設(shè)計比較復(fù)雜。編碼器前、譯碼器后,數(shù)據(jù)都要進行硬件CRC校驗實現(xiàn)差錯控制。SIR模式采用RZI(歸零反轉(zhuǎn))編碼,信號為高電平,調(diào)制為低電平;信號為低電平,調(diào)制為高電平脈沖,最大脈沖寬度是位周期的3/16。MIR模式也采用RZI(歸零反轉(zhuǎn))編碼,但最大脈沖寬度是位周期的1/4。FIR模式采用4PPM(脈沖位置調(diào)制)調(diào)制,它的原理是被編碼的二進制數(shù)據(jù)流每兩位組合成一個數(shù)據(jù)碼元組(DBP),其占用時間Dt=500ns,再將該數(shù)據(jù)碼元組(DBP)分為4個125ns的時隙(chip),根據(jù)碼元組的狀態(tài),在不同的時隙放置單脈沖。由于PPM通信依賴信號光脈沖在時間上的位置傳輸信息,所以解調(diào)時先保證收發(fā)雙方時隙同步、幀同步,然后根據(jù)脈沖在500ns周期中的位置解調(diào)出發(fā)送數(shù)據(jù)??紤]到紅外收發(fā)器通信距離突然變化引發(fā)脈沖寬度擴展,發(fā)生碼間干擾,導(dǎo)致譯碼出錯,因此根據(jù)Hiroshi Uno提出的新算法[7]簡化4PPM譯碼過程,并通過實驗驗證該算法比最大似然譯碼算法結(jié)構(gòu)更簡單,功耗更低,而且更容易實現(xiàn)。

VFIR模式采用HHH(1,13)編解碼技術(shù)。編碼器原理:為了正確實現(xiàn)編碼,要求在計算內(nèi)部碼字C=(c1,c2,c3)之前,在nT(T表示一個chip時間)時刻到達編碼器輸入端的輸入數(shù)據(jù)碼元組d=(d1,d2)經(jīng)過3個編碼周期(每個編碼周期是3T)的延時后進行邏輯計算,得到下一狀態(tài)矢量值N=(s1,s2,s3),即與輸入數(shù)據(jù)有關(guān)的N出現(xiàn)在(n+9T)時刻;再經(jīng)過一個編碼周期,即(n+12T)時刻,狀態(tài)N賦給內(nèi)部狀態(tài)矢量S=(s1,s2,s3),同時計算與輸入數(shù)據(jù)碼元組d=(d1,d2)有關(guān)的內(nèi)部碼字矢量C=(c1,c2,c3),再經(jīng)過一個編碼周期,內(nèi)部碼字C賦給輸出碼字矢量Y=(y1,y2,y3)。由此可見16Mbps的數(shù)據(jù)速率經(jīng)過編碼器變?yōu)?4Mchip/s編碼速率,整個編碼過程延時5個編碼周期即15個chip。注意編碼器初始狀態(tài)S應(yīng)設(shè)置為(1,0,0)。譯碼器原理:輸入數(shù)據(jù)R=(r1,r2,r3)經(jīng)過鎖存器延時得到矢量Y4=(y10,y11,y12),對Y4進行不同的延時得到Y(jié)3、Y2及Y1。這里矢量Yi是Y4的4-I次延時(由鎖存器實現(xiàn)延時);對Y4進行或非運算得到Zd,再將Zd進行不同的延時得到Zc和Zb。這里Zc、Zb、Zd是變量,然后將Y4、Y3、Y2、Y1、Zb、Zc、Zd進行邏輯運算、延時分別得到矢量X1=(x1,x2)、X2=(x3,x4)、X3=(x5,x6);最后將x1、x2經(jīng)過鎖存器得到譯碼器輸出矢量值U=(u1,u2)。整個譯碼過程延時4個周期即12個chip??梢奌HH(1,13)編譯碼電路比較簡單,利用FPGA基于門級描述即可實現(xiàn),但必須注意鎖存器時鐘fclock=1/3fchip。VFIR模式增加線性反饋移位寄存器(LFSR)實現(xiàn)加擾和解擾功能提高系統(tǒng)性能,減少誤碼。



3 甚的軟件設(shè)計

控制器軟件主要分為三部分:系統(tǒng)初始化部分、接收部分、發(fā)送部分。系統(tǒng)初始化首先調(diào)用BIOS 1Ah中斷功能獲取設(shè)備總線號、功能號、內(nèi)存、I/O空間基地址和空間大小以及中斷號,然后通過直通(Pass-Thrn)方式寫控制命令初始化紅外控制器,選擇控制器接收或發(fā)送數(shù)據(jù),設(shè)置控制器工作模式和波特率分頻數(shù)并允許控制器工作。紅外控制器具有收發(fā)雙向數(shù)據(jù)傳輸能力。編程時將S5933FIFO設(shè)置成由接口初始化為同步主控方式,支持突發(fā)傳輸(DMA);然后根據(jù)控制器收/發(fā)位判斷PCI總線主控讀還是主控寫操作。程序采用中斷控制,主程序調(diào)用set_up_pci_busmaster()初始化主控操作,該函數(shù)不僅裝載訪問內(nèi)存實際地址和傳輸字節(jié)數(shù),而且還要允許讀/寫傳輸字節(jié)數(shù)到零中斷。紅外控制器初始化完成后,系統(tǒng)等待中斷。中斷服務(wù)處理程序讀取S5933中斷狀態(tài)/控制寄存器INTCSR判斷中斷源,并清除中斷標志;讀取CRC校驗狀態(tài)位,判斷接收數(shù)據(jù)是否正確。發(fā)送數(shù)據(jù)時,中斷服務(wù)處理程序還要檢測紅外發(fā)送FIFO狀態(tài)位是否為1(1表示FIFO為空),不為1置發(fā)送不為發(fā)空標志tx_not_empty=1,主程序繼續(xù)等待,直到TXFIFO數(shù)據(jù)為空;同理接收數(shù)據(jù)也需要檢測紅外接口狀態(tài)寄存器的紅色接收FIFO狀態(tài)位是否為1(測試位為1表示FIFO為空)。這樣可保證接收和發(fā)送FIFO的數(shù)據(jù)完全被取走。編寫的應(yīng)用程序使用Turbo C2.0調(diào)試通過。

PCI總線已經(jīng)成為當今電腦的主流總線,為此根據(jù)紅外串行物理層規(guī)范IRDA-1.4設(shè)計基本PCI總線的甚。使用AMCC公司PCI總線專用控制器外加部分接口控制電路實現(xiàn)硬件設(shè)計,縮短開發(fā)周期、提高效率、節(jié)約成本。目前正在使用VtoolsD開發(fā)虛擬驅(qū)動程序,解決系統(tǒng)如何分配紅外控制器配置資源、如何訪問硬件設(shè)備、如何處理硬件中斷和總線主控DMA操作以及VXD和應(yīng)用程序之間的通信。另外國外已有公司推出VFIR紅外控制器專用芯片,如MKNET公司的MK7100。


上一頁 1 2 下一頁

關(guān)鍵詞: 高速紅外 VFIR控制器 PCI

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉