国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現在位置:范文先生網>理工論文>電子通信論文>高速紅外VFIR控制器的設計與實現

高速紅外VFIR控制器的設計與實現

時間:2023-02-20 23:44:56 電子通信論文 我要投稿
  • 相關推薦

高速紅外VFIR控制器的設計與實現

摘要:根據IRDA紅外串行物理層規(guī)范IRDA-1.4設計基于PCI總線的甚高速VFIR紅外控制器,詳細分析了控制器的硬件和軟件設計方法及實現過程。設計中使用PCI總線主控接口芯片S5933,實現復雜的PCI總線接口到相對簡單的用戶接口功能轉換;使用FPGA實現紅外控制器的傳輸控制和時序邏輯。

    關鍵詞:PCI總線 接口控制器S5933 甚高速紅外控制器 HHH(1,13)編解碼

PCI(Peripheral Component Interconnect)局部總線[1]是一種高性能、32位或64位地址數據多路復用的同步總線。它的用途是在高度集成的外設控制器件、擴展卡和處理器/存儲器系統之間提供一種內部的連接機構,它規(guī)定了互連機構的協議、機械以及設備配置空間。PCI局部總線因具有極小延遲時間、支持線性突發(fā)數據傳輸、兼容性能以及系統能進行全自動配置等特點受到業(yè)界青睞。PCI總線規(guī)范2.1版本還定義了由32位數據總線擴充為64位總線的方法,使總線寬度擴展,并對32位和64位PCI局部總線外設做到向前和向后兼容。

目前微機之間的紅外通信是基于IRDA-1.1標準的紅外無線串行SIR通信,參考文獻[2]給出了基于ISA總線的紅外無線串行通信卡的設計及實現,該通信卡的數據速率為9.6kbps~115.2kbps,工作距離0~3m。但由于RS-232端口的最高數據速率上限為115.2kbps,不能滿足IRDA-1.4規(guī)范甚高速紅外VFIR 16Mbps速率要求,所以使用了PCI同步總線擴展外設的方法設計甚高速紅外控制器。雖然ISA總線的傳輸速率能滿足甚高速紅外控制器設計要求,但目前許多微機系統已經逐漸淘汰ISA/EISA標準總線。原因是高速微處理器和低速ISA總線之間不同步,造成擴展外設只能通過一個慢速且狹窄的瓶頸發(fā)送和接收數據,使CPU高性能受到嚴重影響。
(范文先生網www.qkfawen.com收集整理)
1 HHH(1,13)編解碼

2001年5月,紅外無線數據協會IRDA發(fā)布了紅外串行物理層規(guī)范IRDA-1.4[4];它與前期發(fā)布的物理層規(guī)范的主要區(qū)別在于增加甚高速紅外VFIR 16Mbps數據速率的編解碼技術和幀結構,而其它如視角范圍、發(fā)射器最。ù螅┕夤β屎徒邮掌黛`敏度等規(guī)范基于相同。紅外串行物理層規(guī)范IRDA-1.4規(guī)定數據速率小于4Mbps采用RZI(歸零反轉)調制,最大脈沖寬度是位周期的3/16或1/4;數據速率4Mbps采用4PPM(脈沖位置調制);數據速率16Mbps采用HHH(1,13)碼。

IRDA提出的VFIR編解碼技術-HHH(1,13)碼是碼率為2/3,(d,k)=(1,13)的RLL(run-length-limited)碼;它是一種功率消耗和頻帶利用率相對折中的高效編碼,其中參數d、k分別表示在兩個'1'之間最小和最大的'0'的數目,參數d決定接收信號中有無碼間干擾ISI,參數k決定接收器能否從接收序列中恢復時鐘。HHH(1,13)碼的帶寬效率使數據通信能夠選擇成本很低、上升/下降時間為19ns的LED。功率效率避免了LED的熱問題,它能保證1m距離范圍內保持鏈接。1m距離16Mbps鏈路可達到過去4Mbps鏈路的驅動電流和功耗。HHH(1,13)碼和4PPM碼(用于4Mbps)的顯著區(qū)別是HHH(1,13)碼決不允許一個紅外脈沖緊跟前一個紅外脈沖,脈沖之間應該保持一個chip時間差。由于光電管工作區(qū)域內有少量載流子的慢輻射,使LED或光電二極光表現出拖尾效應,HHH(1,13)碼能夠兼容拖尾效應,從而允許在chip時間周期內脈沖的擴展。

雖然HHH(1,13)碼的設計過程比較復雜,但IRDA-1.4標準已經詳細給出了編譯碼邏輯方程和電路,所以實現起來比較容易。筆者使用Altera MAX+plus II進行邏輯功能仿真,并用GW48 EDA實驗系統進行硬件偽真,驗證HHH(1,13)碼編譯碼電路設計的正確性。

2 甚高速紅外VFIR控制器的硬件設計

由于PCI總線規(guī)定了嚴格的電氣特性,開發(fā)PCI總線的應用具有很大難度,因此使用AMCC(Applied Micro Corporation)公司推出的PCI接口控制器S5933實現紅外控制器PCI總線接口規(guī)范[5]。甚高速紅外VFIR控制器原理框圖如圖1所示。選用Altera公司的FLEX10K系列現場可編程門陣列器件實現S5933與紅外TX/RXFIFO、寄存器的傳輸控制和邏輯時序以及紅外接口控制邏輯和紅外收發(fā)器接口功能模塊(CRC校驗、編解碼以及串/并轉換)。甚高速紅外VFIR控制器工作原理如下:首先由AMCC S5933外部非易失性串行EEPROM AT24C02下載PCI配置空間,然后主機通過直通(PassThru)寄存器數據訪問方式向紅外接口控制寄存器寫控制命令[3]。紅外接口控制邏輯根據控制命令發(fā)出控制信號,使整個紅外控制器處于準備狀態(tài)。當上層協議發(fā)出數據發(fā)送事件時,紅外接口控制邏輯發(fā)出消息,通知主機啟動S5933總線主控讀操作,把上層數據寫到外部紅外TXFIFO數據緩沖器;同時紅外接口控制邏輯根據TXFIFO狀態(tài)把TXFIFO的數據發(fā)送到紅外收發(fā)器接口,進行鎖存、并/串轉換、CRC校驗和編碼,最后通過VFIR收發(fā)器發(fā)送數據。同理VFIR收發(fā)器接收到的數據經過譯碼、CRC校驗、串/并轉換和鎖存,寫入RXFIFO數據緩沖器。

紅外接口控制邏輯觸發(fā)上層協議發(fā)出數據接收事件接收數據,主機啟動S5933總線主控寫操作向上層協議遞交數據,數據傳輸完成上層協議發(fā)回消息,通知數據接收完成。下面重點分析S5933與紅外TX/RXFIFO、紅外寄存器組訪問控制邏輯以及紅外接口控制邏輯和紅外接發(fā)器接口功能。

2.1 紅外TX/RXFIFO與紅外控制寄存器組控制邏輯

AMCC S5933支持3個物理總線接口:PCI總線接口、擴充總線接口和非易失性EEPROM總線接口。非易失性EEPROM用于映射PCI的配置空間及設備BIOS的初始化;擴充總線可以與外設設備互連。主機和外設之間可以利用S5933的郵箱寄存器、FIFO寄存器、直通寄存器(Pass-Thru)數據傳輸方式雙向傳輸數據。

紅外寄存器組包括紅外接口控制寄存器和狀態(tài)寄存器。本文中甚高速紅外控制利用S5933直通寄存器單周期數據傳送向紅外接口控制寄存器寫控制字,由Pass-Thru邏輯控制電路把地址和數據分離開,直通地址寄存器(APTA)經374鎖存并譯碼,選通紅外接口控制寄存器,同時把直通數據寄存器(PTDA)的低字寫入紅外控制器;該接口控制寄存器的數據寬度為16位,包括紅外控制器始能、工作模式(UART、SIR、MIR、FIR、VFIR)的設置,接收或發(fā)送數據的選擇以及滿足SIR模式下多波特率的分頻數。紅外接口控制寄存器結構定義如圖2。

同理使用直通寄存器方式獲取紅外接口狀態(tài)寄存器的狀態(tài)。紅外接口狀態(tài)寄存器結構定義如圖3。

    為滿足高速數據傳輸,利用S5933 FIFO寄存器總線主控方式下的同步猝發(fā)(Burst)操作(DMA傳送)完成主機與紅外TX/RXFIFO的數據傳輸。PCI接口首先初始化S5933作為總線主控設備,然后由PCI接口向主控讀/寫地址寄存器(MRAR/MWAR)寫入要訪問的PCI存儲空間地址,向主控讀/寫計數器(MRTC/MWTC)寫入要傳輸的字節(jié)數。S5933提供了4個專用引腳RDFIFO#、WRFIFO#、RDEMPY#和WREULL#控制內部FIFO與外部FIFO的數據傳輸接口邏輯。接收/發(fā)送FIFO的數據寬度都是32位,分別由4片8位數據總線的IDT72220 FFO數據位擴展實現。該FIFO既為PCI接口提供數據緩沖,又為紅外收發(fā)器接口提供訪問數據。S5933與紅外TX/RXFIFO、紅外寄存器組的數據訪問控制邏輯如圖4。

2.2 紅外接口控制邏輯

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

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

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

VFIR模式采用HHH(1,13)編解碼技術。編碼器原理:為了正確實現編碼,要求在計算內部碼字C=(c1,c2,c3)之前,在nT(T表示一個chip時間)時刻到達編碼器輸入端的輸入數據碼元組d=(d1,d2)經過3個編碼周期(每個編碼周期是3T)的延時后進行邏輯計算,得到下一狀態(tài)矢量值N=(s1,s2,s3),即與輸入數據有關的N出現在(n+9T)時刻;再經過一個編碼周期,即(n+12T)時刻,狀態(tài)N賦給內部狀態(tài)矢量S=(s1,s2,s3),同時計算與輸入數據碼元組d=(d1,d2)有關的內部碼字矢量C=(c1,c2,c3),再經過一個編碼周期,內部碼字C賦給輸出碼字矢量Y=(y1,y2,y3)。由此可見16Mbps的數據速率經過編碼器變?yōu)?4Mchip/s編碼速率,整個編碼過程延時5個編碼周期即15個chip。注意編碼器初始狀態(tài)S應設置為(1,0,0)。譯碼器原理:輸入數據R

=(r1,r2,r3)經過鎖存器延時得到矢量Y4=(y10,y11,y12),對Y4進行不同的延時得到Y3、Y2及Y1。這里矢量Yi是Y4的4-I次延時(由鎖存器實現延時);對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經過鎖存器得到譯碼器輸出矢量值U=(u1,u2)。整個譯碼過程延時4個周期即12個chip?梢奌HH(1,13)編譯碼電路比較簡單,利用FPGA基于門級描述即可實現,但必須注意鎖存器時鐘fclock=1/3fchip。VFIR模式增加線性反饋移位寄存器(LFSR)實現加擾和解擾功能提高系統性能,減少誤碼。

圖4 S5933與紅外接收/發(fā)送FIFO,紅外寄存器組數據訪問控制邏輯圖

3 甚高速紅外VFIR控制器的軟件設計

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

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



【高速紅外VFIR控制器的設計與實現】相關文章:

路燈照明系統中的組群控制器設計與實現08-06

DDR SDRAM控制器的FPGA實現04-12

微控制器撥號上網的實現08-06

USB接口的高速數據采集卡的設計與實現08-06

一種專用高速硬盤存儲設備的設計與實現08-06

用TL494實現單回路控制器08-06

基于Internet的智能家庭網絡控制器的實現08-06

紅外通訊協議在嵌入式系統中的實現08-06

應用McBSP實現I2C總線控制器08-06