摘 要: 介紹了一種無線網絡接口卡的核心硬件模塊的實現原理,通過雙DMA實現對無線網絡數據的快速收發(fā)。對NIC接收模塊" title="接收模塊">接收模塊和發(fā)送模塊" title="發(fā)送模塊">發(fā)送模塊的硬件實現電路作出了詳細分析。
關鍵詞: 收發(fā)器" title="收發(fā)器">收發(fā)器 無線網絡 DMA 曼徹斯特編碼 DP8391
隨著無線通信技術的不斷成熟和應用,各種各樣的智能化和網絡化的無線通信產品不斷涌現,無線網絡產品也得到飛速發(fā)展。無線網絡接口卡收發(fā)器作為無線網絡的重要組成部分,為可靠的無線傳輸提供重要的硬件接口及物理層和數據鏈路層的協(xié)議支撐。
本文詳細分析10Mbps無線網絡接口卡的核心——收發(fā)器的設計過程中的問題,提出無線網絡接口卡NIC實現方案,并對其核心的發(fā)送和接收模塊電路作出分析和探討。
1 無線NIC總體實現方案
無線NIC的基本結構如圖1。它主要由三部分組成,即數據鏈路控制器、Manchester代碼轉換器和無線收發(fā)電路。鏈路控制器采用DP8390,以實現數據層路層協(xié)議的控制,NIC中設計了8K×2bits的RAM作為網卡的緩沖區(qū),以提高系統(tǒng)的執(zhí)行速度。系統(tǒng)采用PCI總線與主機相連[1]。為了與以太網卡兼容,設計中增加了PROM自舉電路模塊[2]。
內部硬件基本模塊如圖2。它主要由無線收發(fā)模塊、編碼轉換模塊、接收處理模塊" title="處理模塊">處理模塊、發(fā)送處理模塊、DMA控制器模塊、串并轉換模塊等組成。系統(tǒng)時鐘統(tǒng)一采用10MHz方波發(fā)生器的時鐘[3~4],以進行數據幀的同步。
?
2 收發(fā)器模塊設計" title="模塊設計">模塊設計
2.1發(fā)送模塊設計
發(fā)送模塊通過DMA方式讀取RAM中的數據并將數據交給無線發(fā)送模塊進行發(fā)送[5],其工作過程如圖3。網卡向無線網絡發(fā)送數據過程如下:
(1)NIC初始化。計算機對NIC中各寄存器的讀寫是利用主機的I/O方式,網卡的基地址一般為300H。初始化NIC實際上是利用OUT指令對NIC中有關的寄存器寫控制字。
(2)微機與網卡中緩沖RAM交換數據是使用NIC遠程DMA模式。開動遠程DMA后,微機不斷讀寫網卡的數據端口,就能成功地執(zhí)行遠程DMA過程,完成微機與網卡中緩沖RAM的數據交換。
(3)緩沖RAM收發(fā)網上的數據使用NIC的本地DMA模式。當初始化過程后,網卡處在接收狀態(tài),一旦接收網上來的數據,就自動執(zhí)行本地DMA過程,對緩沖RAM進行本地DMA寫。
發(fā)送電路模塊的設計原理圖如圖4。發(fā)送模塊主要由10MHz標準方波發(fā)生器、一個D觸發(fā)器、4034并/串雙向移位寄存器、一個4040計數器和兩個雙端與門。
10MHz標準方波發(fā)生器用于產生10MHz標準方波,提供發(fā)送數據的時鐘信息。4040用于發(fā)送位計數。在發(fā)送完一個字節(jié)后,4040用其Q3送出完成信號,在D觸發(fā)器中鎖存,即生成字節(jié)轉換完畢信號,允許送出下一字節(jié);待接收到第二字節(jié)后,復位D觸發(fā)器,重復前述過程。4034在10MHz脈沖控制下,將數據總線上的并行數據轉換成10MHz的串行數據發(fā)往曼徹斯特編碼器。
圖4中P1.7為計數器的初始復位信號線,由其在發(fā)送開始、全部發(fā)送完成以及發(fā)送未完中斷后發(fā)出復位脈沖。發(fā)送未完中斷是用來處理發(fā)送過程中在同軸電纜上的沖突,此時將終止當前發(fā)送。D觸發(fā)器用來鎖存計數器4040的Q3輸出端狀態(tài),告知CPU此時外設已準備就緒。
2.2 接收模塊設計
接收模塊由初始化模塊和接收中斷模塊兩部分組成。初始化模塊完成對NIC寄存器的初始化,并對網卡中斷INT3和DMA參數進行初始化,等待中斷。
當網絡有數據需要接收時,引發(fā)網卡中斷INT3,接收處理模塊通過DMA與RAM進行數據傳送。這種不需要CPU干預的、成批量的數據傳送,可以極大地提高數據的接收速度。
接收處理模塊完成數據幀的處理(主要是以太幀),判斷是控制幀還是數據幀,并進行幀的校驗,利用串并轉換模塊轉換成并行數據[6]。主要功能如下:
(1)遠程DMA讀過程設置在微機的中斷子程序中,本地DMA寫完成后,中斷微機主程序,執(zhí)行遠程DMA,完成微機接收數據過程。微機發(fā)送過程是由微機一方先執(zhí)行遠程DMA寫,然后執(zhí)行本地DMA讀。
(2)如果是發(fā)送數據,則發(fā)送模塊完成與接收模塊相反的過程。不過,發(fā)送時還要判斷能否發(fā)送,即用改進沖突檢測方式進行沖突檢測。由于無線傳輸無法進行載波偵聽,只能利用接收方是否忙判斷線路狀態(tài),用軟件實現。接收處理模塊的執(zhí)行過程如圖5。
2.3 編碼轉換、計數部件與時鐘
編碼轉換環(huán)節(jié)主要用于將接收來的信號通過曼徹斯特編碼器DP8391進行解碼,產生相應的數據流,并進行同步的幀頭與校驗判斷,進行鎖存,產生10MHz串行位流,并將之轉換成并行數據字節(jié)流,交給接收模塊,送入緩沖區(qū)。在發(fā)送時,其過程與接收過程相反。編碼器與計數器配合使用,對發(fā)送和接收到的數據進行計數。
2.3.1 編碼轉換
編碼模塊連接DP8391,其主要包括4034串/并雙向移位寄存器、373三態(tài)鎖存器、兩片4040計數器、兩片244 三態(tài)緩沖器及一片D觸發(fā)器,其硬件原理圖如圖6所示。
4034作為串/并轉換器件,其輸入信號取自DP8391 RXD端,373用于轉換之后的并行數據的緩沖與鎖存,然后將它們送至數據總線上。4034時鐘信號來自DP8391的RXC端,另外用一片4040對輸入數據位進行計數,取完8bit后,其Q3腳輸出一脈沖給D觸發(fā)器和字節(jié)計數器4040a,D觸發(fā)器收到信號后則發(fā)出READY2信號,告知其一字節(jié)轉換完成,可從373 上取走數據。在取走數據后,通過D觸發(fā)器異步復位端復位觸發(fā)器狀態(tài)。
2.3.2 計數器部件
接收計數器是對接收到的數據字節(jié)進行計數,它主要由4040a實現,其輸入是4040的Q3,輸出則通過兩片244 接入數據總線,不破壞總線上的其他數據。一個計數器實現數據幀的提取,形成一個完整的字節(jié)。另一個計數器用于對接收的字符個數進行計數。
2.3.3 恢復時鐘
恢復時鐘REC功能用一個片內鎖相環(huán)完成?;謴蜁r鐘用來監(jiān)測串行數據輸入信號的完整性。如果接收到的串行數據不符合頻率要求,電路將強行鎖定局部參考時鐘INT,使系統(tǒng)在數據或原鎖定丟失時仍能得到正確的恢復時鐘頻率。如果這個恢復時鐘頻率與局部參考時鐘頻率的偏離量大于50ppm,將通知鎖定輸出,同時電路將作出反應并努力將輸入數據流拉回到鎖定數據中。
無線網絡在許多場合作為有線網絡的替代,如野外聯網作業(yè)及只需短期臨時的通信場合,都有很好的應用前景。本課題設計的無線網卡,能有效地應用于無線網絡。
本無線網卡,對于網絡終端的快速移動產生的網絡信號接入與識別的誤碼率還比較高,有待于進一步解決;對于靜止的終端,其通信速度較快、誤碼率很低。
參考文獻
1 Walter A.Tribel.16-bit Microprocessor Architecture, software,and Interface Techniques[M]. New Jersey: Prentice-Hall, Inc. 1988
2 Ethernet/Cheapernet Physical Layer Made Easy with DP8391/92. National Semiconductor Application [EB/OL]. http://www.nalanda.nitc.ac.in /industry/appnotes/ Natsemi/AN-442. pdf
3 黃振海, 李建東,劉乃安等. 寬帶無線IP網卡的研究和實現[J]. 西安電子科技大學學報,2002;(4)
4 吳光榮, 郭峰,劉乃安.無線網卡微波收發(fā)機設計[J].西安電子科技大學學報,1999;(1)
5 王福勛. 單片藍牙控制器AT76C551[J].半導體技術,2002;(4)
6 PCI SIG. PCI Local Bus Specification Revision 2.2[S]. PCI Special Interest Group,1998;(12):21~105






