摘要:基于認證、安全及QoS等方面的研究需要,提出了基于FPGA的HostAP設計方案,并搭建了無線接入點的硬件平臺,在此平臺上進行了硬件的裁減與集成;設計和實現了無線接入點的硬件電路,完成了無線接入點的高速PCB布局布線。在PCB布局布線的過程中,重點解決了高速印制電路板設計中的傳輸線效應問題,最后進行了實際的系統測試。
關鍵詞:無線接入點; 現場可編程邏輯門陣列; HostAP; 高速印刷電路板布局布線
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)11-0257-03
無線局域網由于其具有安裝便捷、使用靈活、經濟節約及易于擴展等優點,逐漸在變動頻繁、突發以及不方便敷設有線網絡的情況下成為最佳的網絡部署方案,被廣泛應用于學校、機場及流動辦公等場合。
無線局域網有兩種基本布置方式,即Ad hoc 模式和BSS模式[1]。在BSS模式中,主要以無線局域網接入點(access point, AP)實現移動無線局域網內移動設備的管理和與有線網絡的互連互通。因此,AP作為無線局域網的關鍵組成設備,其性能的好壞將直接影響到整個無局域網的數據傳輸性能,即設計功能強大、配置靈活、管理方便、安全性高的 AP 對無線網絡的性能有著重要的影響。
無線AP有三種實現方式[2],即HostAP方式、第三代碼(tertiary code)的固件方式和帶有自身固化程序的固件方式。本文設計的無線AP采用HostAP方式。HostAP通過軟件程序完成幾乎所有的IEEE 802.11b控制功能,包括路由、網橋協議和管理等。這種設計方式的顯著優點是軟件程序較易更改且具有很強的靈活性,易于按用戶的要求進行配置和拓展,為后續的認證、安全以及QoS等研究工作奠定了基礎。
FPGA既具有門陣列器件的高度集成度和通用性,又具有用戶可編程的靈活性。
1總體設計方案
通過對無線接入點的功能需求分析,確定了基于 Xilinx 公司的 ML310 FPGA開發板的HostAP的設計方案。ML310 FPGA開發板是Xilinx公司特別為需要開發支持PCI總線的嵌入式設備所開發的硬件平臺[3],它擁有雙PowerPC (PPC405)處理器,主頻最高可達300 MHz,并且可以分別在100、200、300 MHz的頻率下自適應地工作。軟件部分通過移植HostAP的方式解決。HostAP實現了無線接入點的大部分功能,包括SS和DSS服務等。
1.1硬件設計方案
以TI公司的無線接入點設計方案[4,5]為參考,硬件平臺以ML310 FPGA為基礎,對底層軟件和硬件進行改進。采用處理性能更好的CPU、成本更低的芯片,以期達到在不降低性能的前提下,增加新的功能并降低成本的目的。本文設計的無線接入點的硬件框圖如圖1所示。
圖1中,RJ-45接口用于接入有線網絡,無線網卡實現無線物理層的數據收發,用于接入無線網絡。Flash和SDRAM作為系統存儲設備。本文采用了一個橋接芯片來實現CPU與無線網卡的橋接工作。
1.2軟件設計方案
軟件開發環境采用嵌入式MontaVista Linux 3.1 professio ̄nal edition,通過在FPGA平臺上移植并修改HostAP軟件,實現了無線接入點的功能,為后續的認證、安全和QoS的研究工作奠定基礎。
通過將HostAP移植到ML310 FPGA平臺的方式完成無線AP的功能,移植工作采用交叉開發模式。首先,在宿主機上完成開發,并用交叉編譯工具編譯生成二進制文件;然后下載到目標機上運行和測試,并通過JTAG調試接口對運行在目標機上的程序跟蹤調試,定位問題后在宿主機上對代碼修改、重新編譯并下載。如此反復,直到程序在目標機上正常運行為止。
2 硬件詳細設計
2.1原型系統的搭建
ML310 FPGA開發板[3]擁有雙PowerPC 405(PPC405)處理器,有類似于PC的存儲結構。ML310 還支持多種接口,包括以太網接口、USB接口、RS-232接口、UART接口、LCD接口、JTAG編程口等。多類型的接口極大地方便了嵌入式設備的開發。
無線接入點的硬件平臺環境主要包括ML310 FPGA開發板、PCI-PCMCIA轉接卡、D-Link 650無線網卡。ML310 FPGA與D-Link 650之間用PCI-PCMCIA轉接卡連接。該轉接卡采用RICOH公司的芯片R5C485實現PCI總線與PCMCIA總線之間的橋接,電路設計簡單可靠。無線接入點的原型系統結構如圖2所示。
2.2系統硬件裁減和集成方法
實驗結果表明,上述原型系統能夠完成無線接入點的功能,但缺點是硬件系統過于龐大。筆者在原型系統的基礎上,將開發板上沒有使用的電路進行了裁減和集成。
硬件的裁減和集成方案[6]如下:在硬件裁減和集成的過程中,第一階段是通用平臺功能性模塊劃分階段,本階段根據原型系統實際使用到的部分模塊,得出裁減方案;第二階段是實現階段,按照模塊劃分設計各電路模塊,完成PCB的制作。
ML310 FPGA開發板的硬件電路可劃分成五個電路模塊:處理器模塊、存儲器模塊、應用接口模塊、調試接口模塊和電源管理模塊。處理器模塊包括板上CPU以及外圍電路,該開發板有PowerPC 405硬核處理器(XC2VP30pro)。存儲器模塊包括系統內存和外存兩個部分:ML310上使用的是256 MB DDR的內存條;外存使用的是512 MB的CF卡。可供用戶開發使用的接口模塊包括了PCI插槽、USB接口、CF卡接口等。調試模塊包括用于調試CPU的CPU JTAG接口、用于下載程序的PC4 JTAG以及可以通過主機上的超級終端來調試系統UART接口等。電源管理模塊比較復雜,板上涉及到的電源包括5、3.3、2.5、1.5、12和-12 V等多種電壓值。
在裁減和集成過程中,考慮到設計的成本以及降低電路的復雜性,對ML310各部分模塊中的芯片進行適當的替換和刪除。按照模塊的劃分,對各個模塊進行分別裁減。各模塊的裁減方案如下:
a)處理器模塊部分。XC2VP30(P30)和XC2VP50(P50)都屬于Xilinx公司的FPGA芯片Virtex-II Pro系列,但P50的性價比高于P30。因此,處理器選用P50芯片代替ML310上的P30芯片。
b)存儲器模塊部分。內存采用DDR SDRAM芯片來代替ML310的內存插槽方式,可以減少成本,降低內存部分的電路復雜性,縮小電路板的空間。外存使用flash;外存與CPU的通信方式由原先的SystemACE控制芯片來橋接CF卡與CPU的結構,變為flash芯片直接與CPU相連接的方式。
c)應用接口模塊。ML310提供了豐富的應用接口,但大部分在無線接入點的開發中沒有用到。因此,應用接口模塊部分只保留了RJ-45網口。
d)調試接口模塊。無線接入點的調試模塊沿用ML310開發板的調試接口的電路設計,保留了JTAG口、CPU JTAG口、RS-232接口。另外,加入了一些復位電路,以備調試使用。
e)電源管理模塊。ML310采用開關電源模塊,但開關電源模塊價格非常昂貴。為了降低成本,采用電壓轉換芯片來完成變壓。因此,對電源管理模塊進行了重新設計。
裁減后的無線接入點主板硬件結構如圖3所示。
2.3電路模塊的設計及芯片選型
根據上述五個功能模塊的劃分和裁減方案進行具體的電路設計與實現,同時對相應的芯片進行選型。
a)處理器模塊由XC2VP50 FPGA芯片及其外圍電路組成,如圖4所示。該芯片擁有八個I/O bank,每一個bank中提供了許多I/O引腳,在使用某一個bank之前,首先需要將該bank激活。每一個bank都有兩個特殊的I/O引腳,即VRN(vol ̄tage reference of N transistor)和VRP(voltage reference of P transistor)。Bank在使用時需要對其進行阻抗的匹配,VRN和VRP這兩個引腳是用來平衡阻抗的。VRP需要連接一個50 Ω的阻抗,并與高電平相連,而VRN則需要連接一個50 Ω的阻抗并與地相連。
P50上的電源引腳非常多,每一根電源引腳都需要進行退耦。退耦的方法是將每一根電源引腳上加一個0.1 μf的貼片式陶瓷電容。
b)存儲器模塊包括系統的內存和外存兩部分。HostAP在運行過程中需要的動態內存大小為500 KB~14 MB。考慮到后續安全、認證和QoS的研究需要,內存大小定為32 MB的DDR SDRAM。芯片選擇的是Micron公司的MT46V16 M16FG。該芯片擁有16根數據線,13根地址線,時鐘速率在133 MHz。它與FPGA 的連接如圖5所示。
選用Atmel公司的32 MB flash芯片AT49BV322A-70TI作為系統的外部存儲芯片。該芯片工作電壓為2.65~3.6 V,設計中使用3.3 V對其進行供電;芯片支持21位地址線、16位數據線。
c)應用接口模塊主要包括RJ-45以太網接口和PCMCIA接口。以太網接口需要以太網控制芯片才能與CPU進行通信,常用的以太網控制芯片為Intel公司的i82559。i82559芯片通過掛載在PCI總線上的工作方式與CPU進行通信,可以自適應10/100 Mbps以太網。由于以太網端口需要一個惟一的MAC地址保存到ROM中不能更改,電路中需要提供一個1 KB的E2PROM芯片來存儲這些信息。芯片選用的是Atmel公司的at93c46a。
PCMCIA接口不能直接與CPU相連,因此選用了RICOH公司的R5C841芯片進行橋接。
d)調試接口模塊。無線接入點的接口調試模塊采用ML310開發平臺上的調試模塊,包括下載軟件用的JTAG接口和調試用的RS-232接口。
e)電源管理模塊。ML310開發平臺由于電路復雜,電流最大達到10 A,所以必須使用開關電源來進行變壓。但是,對于無線接入點來說,板上電流最大不超過500 mA,沒有必要使用開關電源。因此采用低壓差線性穩壓芯片的電源設計方案。
無線接入點上總共有±12、5、3.3、2.5、1.8、1.5和1.25 V等多種電壓。其中工作在5、3.3、2.5、1.5 V四種電壓下的元件最多。系統采用與ML310開發平臺相同的進電方式,即采用計算機的電源接口來供電。該接口可以直接提供±12、5 V三種電壓,因此,在電源模塊設計中需要設計5轉3.3、5轉2.5、5轉1.5 V三種電壓轉換電路。剩余的5轉1.8以及5轉1.25 V兩部分變壓電路將放置在靠近元件的地方進行變壓,不單獨放在電源模塊中,有利于PCB電路板的布局布線。
電壓轉換電路采用相同的轉換方式,選用不同的變壓芯片,芯片型號依次為TPS76933、TPS76925、TPS76915、TPS76918、TPS73101DBVR,都是TI公司的產品。采用這些芯片設計出的變壓電路具有功耗低、電路設計簡單及成本低等特點。
3高速PCB的布局布線
3.1高速電路的傳輸線效應
無線接入點的CPU主頻為300 MHz,內存芯片的主頻為133 MHz,板上大部分的信號傳輸速率都在50 MHz以上。因此會不可避免地遇到高速電路設計中經常遇到的傳輸線效應問題[7]。
傳輸線效應的解決辦法主要是通過對PCB板進行合理的布局布線以及對PCB的電源層和地層進行合理的配置。本文在無線接入點的布局布線過程中,從多方面對PCB板進行電氣連接的約束并配置合理的電源和地,盡量使傳輸線效應帶來的影響降到最低。
合理的布局是解決傳輸線問題的主要手段之一。布局主要參考ML310開發平臺上相關元器件的擺放方法,采取手動布局方式。元器件擺放的原則由設計的約束規則來進行限制。約束規則包括:元器件之間的焊盤擺放間距需要大于0.1 mm;元件的擺放密度根據要求在PCMCIA接口附近盡量少甚至不擺放元器件,避免產生干擾,其他區域可以均勻地放置。
合理的布線是解決傳輸線問題另一個主要的手段,包括嚴格控制關鍵網線的走線長度、合理規劃走線的拓撲結構、過孔數量等。無線接入點PCB的布線采用交互式布線的方式。在布線軟件工具中首先對布線進行一些約束,進行自動布線,再根據自動布線的情況,對某些有特殊要求的走線進行調節。
此外,解決傳輸線效應的另一個方法是選擇正確的布線路徑和終端拓撲結構。在設計中采用了菊花鏈的布線方式,通過自動布線和手動布線交互進行的方式,使得布通率達到了100%。采用菊花鏈的布線方式也避免了進行阻抗匹配的工作量。另外,在布線時導線的拐角處不要走成90°折線,以減小高頻信號對外的發射耦合。
為了減少信號干擾,需要對PCB的電源層和地層進行合理的分配。無線接入點的PCB板采用八層板的結構。其中,四層作為信號線的走線層,另外四層進行電源層和地層的設置。板上的電壓主要有5、3.3、2.5和1.5 V四種。根據板上各電壓的分布情況,將3.3和1.5 V的電壓安排在同一電源層,將5和2.5 V的電壓安排在另一電源層。另外兩層作為地層,這樣使得地平面盡量大,從而降低了噪聲和PCB的層間信號的串擾。
對接地的處理,必須將高頻數字電路和低頻模擬電路的地回路分開;對高頻信號采用多點串聯接地,并盡量加粗縮短地線,從而降低了耦合噪聲。另外,在地平面分割時,應保證參考平面的連續性。對數/模共存的PCB板,如果模擬信號線走的距離較遠,應該使它的參考回流路徑也是模擬地。因此,在設計中,采用在地層沿模擬信號的路徑割一個模擬地,使其參考模擬地,從而保證了參考平面的連續性。
通過使用上述幾種方法,大大減少了傳輸線效應產生的影響。布線的效果如圖6所示。
右側。該部分靠近FPGA芯片,容易產生傳輸線效應。為此,將與FPGA引腳直接相連的其他芯片的對應引腳之間的連線盡量走短,保證了線上所產生的電阻較小,信號在傳輸線上流動時所產生的衰減也較小,從而不會產生大的傳輸線效應。
3.2系統測試
將CPU時鐘設定為100 MHz,對無線接入點主板硬件電路進行測試。一方面,由于FPGA與flash、SDRAM之間是主要的高速數字信號線,需要對外部存儲芯片進行測試。首先編寫flash測試程序,對flash進行讀、寫、擦除操作,并驗證數據的正確性。然后,編寫SDRAM的測試程序,對SDRAM指定地址空間進行讀、寫操作,并驗證數據的正確性,經過測試外部存儲芯片工作正常。另一方面,需要對以太網接口和PCMCIA接口進行測試,編寫以太網接口和PCMCIA接口測試程序,通過以太網接口、PCMCIA接口與主機之間進行數據的收發實驗,并驗證收發數據的正確性。經過測試,以太網接口和PCMCIA接口能夠正確地接收和發送數據。以上測試表明,硬件系統工作正常,因此本文方案較好地解決了傳輸線效應對信號質量影響的問題。
4結束語
本文根據系統需求設計了無線接入點的設計方案,并基于ML310 FPGA平臺搭建了無線接入點的原型系統,在此基礎上進行嵌入式操作系統Linux和HostAP軟件的移植;同時進行了硬件裁減和集成,設計了無線接入點主板的硬件電路。在實際的高速PCB布局布線中解決了傳輸線效應等問題,最后實現了無線接入點的主板硬件。本文的開發過程對其他嵌入式設備的硬件開發有重要的參考價值。
參考文獻:
[1]GAST M S. 802.11 wireless networks: the definitive guide[K]. 影印版. 北京: 清華大學出版社, 2002:7-17.
[2]李偉征,胡愛群,陳立全,等. 一種基于MPC860的無線局域網接入點以太網接口研究[J]. 東南大學學報:自然科學版, 2004,34(2):166-170.
[3]Xilinx ML310 user guide[K/OL]. (2005-02-10).http://www.xilinx.com.
[4]WLAN solutions: TNETW1130 converged single-chip MAC and baseband processor for IEEE 802.11 a/b/g[EB/OL].(2003).http://www.ti.com.
[5]Spread spectrum processor with medium access control[EB/OL].(2001). http://www.ti.com.
[6]PATTERN D A, HENNESSY J L. Computer organization design[M]. Beijing: Press of Tsinghua University, 2003:156-335.
[7]UHT A K. Uniprocessor performance enhancement through adaptive clock frequency control[J]. IEEE Trans on Computers, 2005,54(2):132-140.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”