軟硬體配置方案設計

來源:果殼範文吧 1.41W

很多時候我們需要將軟硬體完美結合在一起才能達到目標要求,下面就是小編為您收集整理的軟硬體配置方案設計的相關文章,希望可以幫到您,如果你覺得不錯的話可以分享給更多小夥伴哦!

軟硬體配置方案設計

  軟硬體配置方案設計一

隨著現代網路技術的發展,嵌放式系統如微控制器、DSP等系統對接入網路的需求日益增加,例如具有遠端抄表功能的電錶系統、楞以進行遠端控制的資訊電系統等。本文采用TI公司的TMS320VC33DSP晶片設計與Realtek公司的RTL8019網絡卡的硬體介面電路,並在DSP中用軟體實現TCP/IP協議,使DSP晶片具備上網功能,從而可以用計算機通過網絡卡與DSP電路板進行大量資料交換並對其進行控制。

1、硬體設計

DSP與網絡卡的硬體介面電路圖如圖1所示。

DSP的資料匯流排低16位接ISA網絡卡的16位資料線,ISA網絡卡的IOCS16線接高電平,設定網絡卡為16位的模式。

網絡卡共有20根地址線。將A7~A8、A10~A19接地,A0~A6和A9分別接DSP的A0~A7,用到的網絡卡地址為0240H~025FH,對映到DSP的Page3空間,地址對映為C000C0H~C000DFH。

DSP的Reset訊號用於復位網絡卡,由於DSP的Reset訊號低有效,而網絡卡的Reset訊號高有效,故中間應接非門。

DSP的Page3和R/W訊號用於選能網絡卡的讀寫訊號IOR、IOW,實現的邏輯關係如圖2所示。

IORQ是網絡卡的中斷9,通過非門後接DSP的INT1引腳。

RTL8019網絡卡有三種工作方式:

第一種為跳線方式,網絡卡的I/O和中斷由跳線決定;

第二種為即插即用方式,由軟體進行自動配置plugandplay;

第三種為免跳線方式,網絡卡的I/O和中斷由外接的93C46裡的內容決定。

計算機上一是即插即用方式,為了降低軟體程式設計的複雜度,將網絡卡設定為跳線方式。

上述所有的譯碼邏輯都在EPM7129中實現。

74ALVC16425是匯流排驅動晶片,可實現3.3V到5V的電平轉換。由於TMS320VC33和EPM7128是3.3V的器件,而ISA匯流排是5V的,所以訊號線不能直接連線,需要通過74ALVC164245進行電平轉換和隔離。

2、軟體設計

2.1網絡卡硬體驅動程式的設計

網絡卡驅動程式主要包括以下幾部分:

(1)NIC的初始化

NIC是網路介面控制晶片,它負責網路上資料的接收和傳送。為了能夠使NIC啟動並處於準備接收或準備傳送資料的狀態,必須對相關的暫存器進行初始化。這些暫存器包括CR、DCR、RBCR、PSTART、PSTOP、ISR、IMR、PAR0~PAR5、MAR0~MAR7、CURR、TCP、RCR等。

(2)中斷服務程式

中斷服務程式一般完成兩項任務:一是設定中斷標誌,以使相關程式能以此發現發生了中斷;二取得中斷狀態暫存器的值,並將引起中斷的具體原因提交給相應的程式,這一過程也是通過設定中斷原因標誌完成的。需要注意的,中斷服務程式開始的時候要保護中斷現場,待程式處理完成後要恢復中斷現場;中斷服務程式應儘可能短小,以便在儘可能短的時間內執行完成,因此需要將一些不民要的工作交給其它程式來完成。

(3)幀傳送程式

在網路中,幀傳輸的過程是:傳送方將待發送的資料按幀格式要求封裝成幀,然後通過網絡卡將幀傳送到網路的傳輸線上;接收方根據接收到的幀的目的地址研究是否將該幀提交給上層應用程式。幀的傳送是指將待發送的資料以幀的形式傳送到網路傳輸線上,因此,幀的傳送過程應該包括以下幾個步驟:

①裝幀;

②將幀送入NIC的傳送緩衝區;

③初始化傳送控制暫存器;

④啟動NI

C將該幀傳送到網路傳輸線上。

(4)幀接收程式

幀接收是指將網路上的資料幀接收並緩存於網絡卡的接收緩衝環中,然後由主機程式將緩存於接收緩衝環的幀讀走並存入記憶體中以備程式使用。從中可以看出,幀的接收過程分成兩卡;

①第一步由NIC通過本地DMA將幀存入接收緩衝環;

②第二卡是通過遠端DMA並在主機的配合下將接收緩衝環中的幀讀入記憶體。

2.2TCP/IP協議的實現

2.2.1DSP中與PC機中實現TCP/IP協議不同

TCP/IP協議最先是在UNIX系統中實現的,後來在LINUX、DOS和WINDOWS系統中也實現了TCP/IP。但是,在UNIX上實現的TCP/IP協議的原始碼並不能直接移植到DSP上來,這是因為PC機和DSP存在著巨大的差異。

PC機的運算速度非常快,一般都有一個多工的作業系統,可以多工並行執行,通過硬中斷與中斷、訊息佇列和各種插口實現ATCP/IP各協議層之間的通訊和整個網路的通訊。而DSP執行速度相對較慢,缺乏多工作業系統的平臺,只能通過順序執行加硬體中斷的方式來實現,並且因其還要同時執行資料採集、串列埠中斷等任務,所以中斷程式應儘量短,只完成設定各種狀態的標誌位,而將相對較慢的網路資料包的處理放在主程式中執行,以減少各種任務之間的衝突。

PC機的記憶體非常大,現在一般都可達到32~128M的儲存容量,可以動態地分配和釋放記憶體,很容易實現儲存器快取mbuf、網路控制塊ncb等鏈狀結構,且可隨意增刪;同時能維護多條網路連線,由於計算機處理速度快,幾乎不用考慮緩衝區溢位的問題。而DSP內部RAM一般只有十幾K,加上外部擴充套件的RAM也只能達到幾十K的容量,一個最大的乙太網資料包就有1.5K左右,如果也按PC機的記憶體管理方式和資料結構,使用mbuf鏈,RAM肯定不夠用,因此只能在RAM中分配一個固定的1514位元組的區段來存放接收到的乙太網資料包,接收一包處理一包。

PC機中TCP/IP協議都是分層次實現的,相互之間都是通過引數傳遞進行聯絡,這樣有利於提高程式的模組化和獨立性。而在DSP中,由於引數傳遞會佔用過多的程式空間,且降低DSP的執行速度,所以應儘量減少引數傳遞,轉而使用全域性變數和外部變數等來達到值的傳遞,因此各程式間的依賴程度大,往往會共享某一些變數和資料。

PC機上實現了比較完整的TCP/IP協議。而在DSP中,由於運算速度和記憶體的限制,不可能支援所有的協議,一般只實現需要的部分,不需要的協議一概都不支援;而且即使需要的協議也不用像在PC機上實現那麼複雜,可以根據硬體的具體情況和實現的需求進行必要的簡化。

2.2.2TCP/IP協議的具體實現

TCP/IP協議是一個協議簇,包含了很多協議,在DSP上實現的所有協議如圖3所示,通常可分為四層(不包括物理層)。

根據DSP的結構特點和所需要實現的功能,在DSP中實現了ARP(地址解析協議)、IP(網際協議)、ICMP(Internet控制報文協議)、UDP(使用者資料報協議)和TCP(傳輸控制協議),並對它們進行了簡化。

2.2.2TCP/IP協議的具體實現

TCP/IP協議是一個協議簇,包含了很多協議,在DSP上實現的所有協議如圖3所示,通常可分為四層(不包括物理層)。

根據DSP的結構特點和所需要實現的功能,在DSP中實現了ARP(地址解析協議)、IP(網路協議)、ICMP(Internet控制報文協議)、UDP(使用者資料報協議)和TCP(傳輸控制協議),並對它們進行了簡化。

在鏈路層中實現了ARP。每種網路都有自己的定址機制,乙太網通過乙太網地址即通常所說的網絡卡硬體地址MAX進行定址的,每個網絡卡出廠時都有一個唯一的MAC地址。IP地址則僅僅是對於TCP/IP簇有意義的地址,是一種虛擬地址。當賦予IP地址的IP包要在乙太網中傳播時,必須將IP地址轉化為乙太網地址才能進行正確的傳輸。ARP協議就是將32位的IP地址動態地對映為48位的乙太網地址,從而保證網路的正確傳輸。ARP協議由兩個檔案arpin.c和arpout.c實現。arpin.c負責接收網路上廣播的arp包,判斷arp包的型別是網路上其它機子的請求包還是返回本機的響應包,

判斷其合法性並進行相應的處理;arpout.c負責主機向網路傳送資料報時傳送arp請求包以及被arpin.c呼叫響應收到的arp請求包。

在網路層中實現了IP和ICMP。IP協議是TCP/IP協議簇中最核心的協議,它提供無連線的資料報傳送服務,所有上層協議都要以IP資料包格式傳輸。IP協議由兩個檔案ipin.c和ipout.c實現。Ipin.c負責接收IP資料包,收到IP包後,首先判斷其版本號、資料長度、目的地址、檢驗和是否正確,再根據IP首部的協議型別欄位的值交給相應的上層協議處理;ipout.c負責傳送IP資料包,接收上層協議傳遞下來的資料,加上20位元組的IP首部,正確設定源IP地址和目的IP地址、協議型別,計算檢驗和,交給下面的鏈路層傳送。PC機上的IP資料包,當它的長度超過網路的MTU時,允許對它分段;在DSP中,則不支援IP資料包分段,也不支援IP選項欄位。ICMP協議負責傳遞差錯報文以及其它需要注意的資訊,且由ICMP首部8位的型別欄位和8位的程式碼欄位決定資訊的種類。在DSP中只實現了對回顯請求(型別程式碼為80)報文的處理,從IP層收到ICMP包後,判斷其型別程式碼段是否為80。如果是,將這兩個欄位設定為00(回顯應答),計算檢驗和,再交給IP層傳送;如果不是,則予以丟棄。從而實現了對ping功能的支援。

本文通過DSP與網絡卡的硬體介面的設計及程式設計,使DSP實現了基於乙太網的TCP/IP通訊,從而使DSP可以通過網線進行聯網,並可以實時地與計算機進行通訊,交換大量的資料和控制資訊。本文所介紹的技術已經在作者參加的國家"973"專案"複雜自然環境時空定量資訊的獲取與融合處理的理論與應?quot;的硬體設計中得到應用,並執行良好。

  軟硬體配置方案設計二

傳統的嵌入式系統中,設計週期、硬體和軟體的開發是分開進行的,並在硬體完成後才將系統整合在一起,很多情況下,硬體完成後才開始進行實時軟體和整體除錯。軟硬體聯合模擬是一種在物理原型可用前,能儘早開始除錯程式的技術。

軟硬體聯合模擬有可能使軟體設計工程師在設計早期著手除錯,而採用傳統的方法,設計工程師直到硬體設計完成才能進行除錯處理。有些軟體可在沒有硬體支援的情況下完成任務的編碼,如不涉及到硬體的演算法。與硬體相互作用的編碼在獲得硬體之前編寫,但只有在硬體上執行後,才能真正對編碼進行除錯。通過採用軟硬體聯合模擬技術,可在設計早期開始這一設計除錯過程。由於軟體的開發通常在系統開發的後段完成,在設計週期中較早的開始除錯有可能將使這一專案提早完成,該技術會降低首次將硬體和軟體連線在一起時出現意外而致使專案延期完成所造成的風險。

在取得物理原型前,採用軟硬體聯合模擬技術對硬體和軟體之間的介面進行驗證,將使你不會花太多的時間在後期系統除錯上。當你確實拿到物理原型開始在上面跑軟體的時候,你會發現經過測試的軟體部分將會正常工作,這會節省專案後期的大量時間及努力。

軟硬體聯合模擬系統由一個硬體執行環境和一個軟體執行環境組成,通常軟體環境和硬體環境都有自己的除錯和控制介面,軟體通過一系列由處理器啟動的匯流排週期與硬體的互動作用。本文以一個MiniWeb卡的開發介紹一種軟硬體聯合模擬系統。

該方案的核心是採用一個51微控制器模擬引擎GoldBullISS51(以下簡稱ISS51),ISS51是51微控制器開發環境KeiluVision2的一個外掛,ISS51具有連線Keil和硬體模擬環境Modelsim的介面,可以實現軟硬體同步模擬。在該系統中,Keil作為軟體除錯介面,Modelsim作為硬體模擬和除錯介面,ISS51負責軟體執行、監控軟體斷點、單步執行、記憶體和暫存器資料返回給Keil、CPU匯流排時序產生和捕獲、內部功能模組(如定時器,串列埠)的執行等功能。

  MiniWeb卡介紹

MiniWeb卡是一個執行在微控制器上的Web伺服器,提供網口連線,有大容量檔案系統,提供TFTP和HTTP服務。儘管軟體系統比較複雜,但優化編譯後,執行程式碼還不足25K,為後續升級留下了足夠空間。

51CPU採用SST89系列,這種CPU具有ISP功能,可以通過RS232串列埠,直接將目標碼下載到CPU。

DMA控制邏輯是一個可程式設計邏輯器件,採用的是ALTERA的CPLDEPM240,主要功能是實現外圍器件之間的DMA傳遞。因為51CPU進行IO訪問是很低效的,需要24個時鐘週期才能進行一

次IO訪問,在外圍裝置之間轉移資料則需要更多的時鐘週期,使用DMA控制邏輯可以達到3個時鐘週期就能轉移一個位元組。本系統中處理多種網路協議,需要大量報文收發和檔案系統訪問,採用DMA可以極大地提高51微控制器的資料處理速度。DMA通道主要有MAC晶片與RAM之間的資料塊轉移,SMARTMEDIA和RAM之間的資料塊轉移。

網絡卡晶片採用的是AX88796,主要的優點是可以和51CPU方便地介面;支援100M乙太網,速度高;有較大的接收報文快取,能夠平滑網路流量,減少因51CPU處理速度慢導致的報文丟棄和重發。

SMARTMEDIA是一個移動儲存卡,主要用於儲存檔案,MiniWeb卡支援8M到256M的SMD卡。

檔案系統是MiniWeb卡的新開發模組,檔案系統的測試主要通過TFTP來進行,為此MiniWeb卡上的TFTP服務程式進行了特殊設計,支援格式化SMARTMEDIA,獲取剩餘空間,獲取檔名列表,上傳、下載和刪除檔案。

  軟硬體聯合模擬的必要性:

MiniWeb卡軟體模組多,軟體開發風險較大。軟體對硬體的依賴較強,FLASH儲存器的訪問驅動、網絡卡驅動、DMA驅動,需要軟硬體協同除錯。

檔案系統的開發,在模擬環境下更容易和快捷。比如在模擬結束時,可以將SMARTMEDIA模擬模型中的資料倒換到磁碟檔案中,在模擬開始時,將磁碟檔案中的資料載入到SMARTMEDIA模擬模型中,在定位檔案系統的問題時,這一個功能很有用。

採用軟硬體聯合模擬,便於系統前期設計。51微控制器的外部RAM訪問效率較低,記憶體拷貝、外部器件之間的資料塊轉移很浪費時間。將大量資料的拷貝操作或資料塊校驗、比較操作在CPLD內實現,可以大大改進51微控制器處理資料的能力。通過軟硬體聯合模擬,可以評估CPLD處理資料對效能的改進。

  MiniWeb卡軟硬體聯合模擬系統:

軟硬體聯合模擬主要解決的問題是系統功能設計與驗證,它不解決電源、濾波電容、匯流排電平相容問題。

做系統模擬,首先要對硬體系統建模。我們關注的是系統設計的正確性和可執行性。

系統中的串列埠只是用來支援ISP下載軟體,軟體部分沒有對串列埠做任何操作,所以系統模擬可以不必考慮。

網絡卡晶片AX88796,廠商沒有提供模擬模型。它與CPU的'介面符合ISA介面標準,軟體對AX88796的操作是根據NE2000標準網絡卡晶片設計的,由此我們建立了一個網絡卡晶片的模擬模型。我們設計了一個MACBFM來模擬網絡卡晶片的ISA介面,NE2000定義的暫存器在C模型中實現,MACBFM與NE2000暫存器C模型通過PLI介面交換資料。

SRAM模擬模型是很容易獲取的,很多器件生產商都提供Verilog模擬模型,但器件生產商提供的Verilog模擬模型都包含複雜的延時控制程式碼,這會影響模擬速度。根據經驗,我們可以確保SRAM在單板設計中被正確應用,不會產生時序問題,所以我們可以採用一個簡化的SRAM模擬模型,這是我們自己設計的,有效程式碼只有十幾行。

51CPUBFM負責微控制器管腳時序的產生和捕獲。51CPUBFM是與ISS51緊密捆綁的,由ISS51安裝程式提供。

SMARTMEDIA是三星公司提供的模擬模型,我們使用的也是三星公司的同類型儲存卡。該模型可以用於驗證軟體操作SMARTMEDIA的正確性和DMAController的介面時序。

DMAController是MiniWeb卡硬體開發的一部分,將邏輯設計程式碼應用於模擬,既能檢測邏輯設計的正確性,又能使整個模擬系統得以正常運轉。

  虛擬網絡卡

做系統模擬,必須輸入來自真實世界的激勵,並將模擬系統的輸出傳遞到真實世界。即便是不能連線到真實世界,也應該提供模擬真實世界的輸入,並對模擬系統的輸出進行檢測和分析。

對於MiniWeb卡來說,它和真實環境是通過網口連線的。使用虛擬網絡卡技術,能夠將圖3中的MACCModel與虛擬網絡卡進行通訊。

對於執行在Windows系統上的應用程式來說,它並不知道網絡卡是虛擬的還是真實的,應用程式通過虛擬網絡卡收發資料,事實上是與模擬系統在進行網路通訊。

這樣就可以使用TFTP向MiniWeb卡模擬系統傳遞網頁檔案,使用IE瀏覽MiniWeb卡模擬系統中的網頁,MiniWeb卡的所有功能都能夠被檢驗。

使用網路臭探器Sniffer可以監控虛擬網絡卡的報文流,方便協議除錯。

  模擬加速技術

軟硬體聯合模擬,影響模擬速度的瓶頸在HDL程式碼部分的模擬。如果不設法提高HDL程式碼部分的模擬速度,軟體除錯就非常低效。

提高硬體模擬速度的方法之一是軟體硬體模擬採用事件同步,只在CPU訪問IO時保持軟體和硬體是同步的。

模擬加速方法之二是硬體模擬系統時鐘休眠。對於MiniWeb卡來說,只

有DMAController是受時鐘控制的,軟體沒有操作DMAController的期間,DMAController的運作是毫無意義的,所以可以在非DMA操作期間,對時鐘進行休眠;ISS51在每次IO訪問時,給出與上次IO訪問的時間差,這個時間差經過處理可以作為時鐘休眠的時間段。如果ISS51連續進行IO訪問,就不會產生時鐘休眠了。DMAController工作於查詢方式,可以採用時鐘休眠技術,而不會導致模擬與真實結果的不一致。

方法之三是,縮短SMARTMEDIA模擬模型中的一些長延時的時間引數。因為在等待SMARTMEDIA進入就緒狀態時,CPU必須連續查詢IO,影響模擬速度。我們主要用於軟體功能驗證,這種修改也是可以接受的。

方法之四,在軟體設計上,謹慎使用外部中斷,因為一旦中斷啟動,ISS51需要在每個機器週期查詢是否有中斷訊號,導致軟體模擬和硬體模擬在每個指令上都進行同步,影響模擬速度。如果一定要使用外部中斷,建議用C模型代替Verilog模型,這樣可不影響模擬速度;或者由使用者根據外部模組產生外部中斷的時機,使用ISS51的控制命令,在恰當時刻使能ISS51的中斷模組。

在一個普通PC(CPU為AMD速龍1000,SDRM512M133),執行MiniWeb卡模擬系統,使用PING命令測試MiniWeb卡模擬系統的響應速度:

:bytes=32time=64msTTL=128

使用IE開啟MiniWeb卡模擬系統中的網頁檔案,感覺和撥號上網的速度差不太多。建立多個TFTP連線,同時向模擬系統傳遞或下載網頁檔案,同時使用IE進行網頁瀏覽,都無響應中斷現象出現。

  總結

使用軟硬體聯合模擬,MiniWeb卡不需要硬體就能進行全部功能的模擬,增強了系統設計成功的信心。軟硬體聯合模擬方便系統設計調整,可以在設計前期評估效能,方便軟體和硬體的debug,是一個值得推廣的技術。

熱門標籤