www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]隨著嵌入式設備與網絡的日益結合,在單片機系統(tǒng)中引入TCP/IP協(xié)議棧,以支持單片機接入網絡,成為嵌入式領域的一個重要方向。在此對基于SST89E516RD單片機的TCP/IP協(xié)議棧的實

隨著嵌入式設備與網絡的日益結合,在單片機系統(tǒng)中引入TCP/IP協(xié)議棧,以支持單片機接入網絡,成為嵌入式領域的一個重要方向。在此對基于SST89E516RD單片機的TCP/IP協(xié)議棧的實現(xiàn)方法給予討論。選用 SST89E516RD單片機實現(xiàn)了在線仿真和編程的功能,大大節(jié)約了開發(fā)成本。采用VB 6.0語言與Window 98/2000/XP等為軟件開發(fā)平臺,對系統(tǒng)進行了測試。經過幾個月的軟硬件測試表明:系統(tǒng)設計合理、穩(wěn)定可靠,已基本實現(xiàn)了最初的設計目標。對其他類似系統(tǒng)移植該項技術奠定了基礎,有很好的參考價值。

1 系統(tǒng)硬件實現(xiàn)

整個系統(tǒng)以SST89E516RD單片機為核心,通過RTL8019AS以太網控制芯片實現(xiàn)遠程通信。串口完成網卡參數(shù)的修改、在線仿真,在系統(tǒng)中還使用X5045作為外部擴展的E2PROM,用來存儲IP地址、物理地址以及網卡的其他配置信息,同時X5045還具有電壓監(jiān)控、看門狗定時器、上電復位三種功能,使用X5045監(jiān)控系統(tǒng)的運行過程,當系統(tǒng)不穩(wěn)定時可以進行有效地復位。圖 1為系統(tǒng)硬件結構圖。

 

2 系統(tǒng)軟件實現(xiàn)

系統(tǒng)軟件主要包括客戶端和服務器端軟件的設計,主要有以下幾部分內容:

(1)RTL8019AS的初始化和驅動程序的設計;

(2)數(shù)據(jù)幀的發(fā)送和接收子程序;

(3)TCP/IP協(xié)議棧程序的設計;

(4)客戶端和服務器端程序的設計;

(5)X5045看門狗和E2PROM程序的設計。

系統(tǒng)的主程序流程圖如圖2所示。

 

由圖2可知,系統(tǒng)首先完成對單片機定時器、串口、網卡芯片和以太網等部分的初始化,然后進入以太網處理部分的主程序,通過定時器中斷進行網口數(shù)據(jù)的超時出錯處理,并完成TCP定時器?;詈虯RP表生存時間的更新。

2.1 系統(tǒng)初始化

所謂初始化和驅動程序是指實模式下一組硬件芯片的驅動子程序,它們屏蔽了底層硬件處理細節(jié),同時向上層軟件提供與硬件無關的接口。主要包括定時器初始化,初始化PING表、ARP表,初始化TCP,RTL8019AS的初始化等。RTL8019AS的初始化主要包括網卡的復位和網卡寄存器的初始化。RTL8019AS的初始化主要包括網卡的復位和網卡寄存器的初始化。RTL8019AS內部寄存器有4頁,與NE2000兼容的有3頁,第4頁不用。頁選擇由CR寄存器的PSl,PS0位確定。在零頁寄存器中可以設置接收、發(fā)送狀態(tài)配置以及發(fā)送緩存區(qū)的起始頁與接收緩存區(qū)起止頁地址等;在1頁寄存器中可以設置以太網接口的MAC地址和組播地址。對網卡的初始化就是對相關寄存器初始化,這些寄存器包括CR,RCR,TC- R,PSTART,PSTOP,BNRY,TPSR,ISR,DCR,IMR,CURR,PAGO~PAG5,MAR0~MAR5等。初始化過程如下:

(1)CR=0x21,選擇頁零的寄存器同時使芯片處于停止模式,不會發(fā)送和接收數(shù)據(jù)包;

(2)RCR=OxE0,設置接收結構寄存器,monitor方式,所有數(shù)據(jù)包都被拒絕;

(3)TCR=OxE2,設置發(fā)送配置寄存器,工作在內部lookback模式;

(4)PSTART=0x4C,接收緩沖區(qū)開始頁面地址;

(5)PSTOP=0x80,接收緩沖區(qū)中止頁面地址;

(6)BNRY=0x4C,接收緩沖區(qū)最后頁面指針;

(7)TPSR=0x40,發(fā)送頁的起始頁地址,初始化為指向第一個發(fā)送緩沖區(qū)的頁即0x40;

(8)ISR=0xFF,清除所有中斷標志;

(9)DCR=OxC8,設置數(shù)據(jù)配置寄存器,使用FIFO緩存,普通模式,8位數(shù)據(jù)DMA;

(10)IMR=Ox00,設置中斷屏蔽寄存器;屏蔽所有中斷;

(11)CR=Ox61,選擇頁一的寄存器;

(12)CURR=Ox4D,網卡寫內存的指針,指向當前正在寫的頁的下一頁,初始化時指和0x4C+1=0x4D;

(13)設置多址寄存器MAR0~MAR5,均設置為Ox00;

(14)CR=0x22,使網卡芯片開始工作;

(15)設置網卡地址寄存器PAR0~PAR5;

(16)CR=Ox21,選擇頁零的寄存器;

(17)RCR=OxCC,設置接收結構寄存器,設置為使用接收緩沖區(qū),跟外部網絡連接;

(18)TCR=0xE0,設置發(fā)送配置寄存器,啟用CRC自動生成和自動校驗,工作在正常模式;

(19)CR=0x22,使網卡芯片開始工作;

(20)ISR=0xFF,清除所有中斷標志;

2.2 TCP/IP協(xié)議棧的移植

以太網幀的發(fā)送與接收屬于協(xié)議層中的最底層。發(fā)送前的協(xié)議封裝和接收時的協(xié)議分解都非常簡單。封裝時,只需在上層封裝數(shù)據(jù)前面添加14B的以太網首部就可以了;接收到數(shù)據(jù)幀之后,根據(jù)頭信息中的幀類型字段判斷是否屬于IP包或ARP包,若是就繼續(xù)相應的協(xié)議分解,否則將被丟棄,不予處理。幀的接收工作由網卡自動完成,只需對相關的寄存器如PSTART,P8TOP,CURR和BNRY進行適當?shù)某跏蓟纯?。以太網幀的發(fā)送過程如下:

(1)初始化命令寄存器CR,啟動RTL8019AS;

(2)設置數(shù)據(jù)配置寄存器DCR,以字節(jié)方式通信;

(3)設置發(fā)送配置寄存器TCR,選擇RTL8019AS數(shù)據(jù)發(fā)送的工作方式;

(4)設置遠程開始地址寄存器RSAR0(低位),RSARl(高位),指明遠程DMA操作時所傳送數(shù)據(jù)的起始地址;

(5)設置遠程字節(jié)計數(shù)寄存器RBCR0(低位),RBCRl(高位),指明遠程DMA操作時所傳送的數(shù)據(jù)的字節(jié)數(shù);

(6)設置命令寄存器CR,開始遠程DMA寫操作。RTL8019AS自動將數(shù)據(jù)I/O端口的數(shù)據(jù)寫入其緩沖區(qū)中;

(7)開始向數(shù)據(jù)I/O端口傳送需要發(fā)送的數(shù)據(jù);

(8)數(shù)據(jù)傳送完畢后,設置發(fā)送頁起始地址寄存器TBCR,指明待發(fā)送數(shù)據(jù)的起始地址;

(9)設置發(fā)送字節(jié)計數(shù)寄存器TBCR0(低位),TBCRl(高位),指明待發(fā)送數(shù)據(jù)的字節(jié)數(shù);

(10)設置命令寄存器CR,啟動本地DMA操作。把緩沖區(qū)中的數(shù)據(jù)發(fā)送到網絡上;

(11)結束。

需要指出的是,數(shù)據(jù)在發(fā)送前必須先由上到下進行層層封裝才能正確地發(fā)送出去,同時,接收到的數(shù)據(jù)包還必須自下而上層層解包才能為用戶所識別,即協(xié)議分解。在協(xié)議編程實現(xiàn)中,數(shù)據(jù)封裝與協(xié)議分解互為逆過程。這就是說,必須在數(shù)據(jù)采集子系統(tǒng)中實現(xiàn)嵌入式TCP/IP協(xié)議才能完成數(shù)據(jù)的TCP/IP處理。[!--empirenews.page--]

2.3 客戶端和服務器端程序的設計

分別設計客戶端和服務器端程序。適應于不同的工作場合。在面向連接的TCP協(xié)議中,服務器和客戶機開始通信之前必須首先建立連接。在連接之前,服務器程序必須正在運行并處于監(jiān)聽模式,等待客戶端的連接。TCP的連接是通過3次握手協(xié)議來完成的。首先,客戶端發(fā)送1個SYN標志位的TCP段給服務器,其帶有所選擇段的初始序號。服務器端收到該報文段后,以1個帶有SYN標志的段作為應答,其中也給出根據(jù)本身情況選擇的初始序號,并包含對客戶端的確認。

而客戶端收到服務器端的應答后,再次送回1個報文段,其中帶有對服務器端SYN的確認。這樣雙方的連接就建立了,以后就能開始傳送數(shù)據(jù)。同樣終止1條TCP連接實際上也需3次握手過程。

3 應用系統(tǒng)實現(xiàn)

為了驗證系統(tǒng)的可行性,應用VB開發(fā)了接口程序,構建了軟硬件測試平臺,用來設置網卡的配置參數(shù)并實現(xiàn)數(shù)據(jù)的發(fā)送與接收。所有配置參數(shù)包括(本地IP地址、服務器端IP地址、端口號、網卡物理地址、ping的IP地址、串口號等)都能通過串口動態(tài)地更改。系統(tǒng)能實現(xiàn)Ping的功能,以方便檢查以太網的狀態(tài)。

3.1 參數(shù)設置界面

用串口線將測試板(數(shù)據(jù)采集和控制系統(tǒng)模塊,下同)與計算機連接起來,選擇好串口號,然后按“連接單片機”按鈕,連接狀態(tài)工具欄里出現(xiàn)“已經連接”,說明測試板與計算機已經連接上,然后就可以修改配置參數(shù)了。在參數(shù)設置欄中填寫正確的參數(shù)值后,按“設定”按鈕,接收狀態(tài)欄中會提示參數(shù)設置成功,然后按測試板上的復位鍵,網卡的參數(shù)配置就被寫到了X5045中。參數(shù)設置界面如圖3所示。

 

3.2 數(shù)據(jù)收發(fā)測試界面

分別測試客戶端和服務器端軟件通信是否正常。

(1)服務器端程序的測試

打開客戶端測試界面,如圖4所示,設置連接IP地址為192.168.O.44(該地址必須與服務器端的IP地址一致),設置連接端口號為3330(該端口號必須與服務器端端口號一致)。將作為服務器端的程序燒入到測試板的微處理器中,通過圖3修改配置界面,將服務器端需要的參數(shù)寫入X5045,參數(shù)配置包括;“單片機IP地址”(指的是測試板自身的IP地址)為 192.168.O.44,“服務器端IP地址”可以不用設置(因為測試板本身就即服務器端);如果是新網卡芯片,還需要設置MAC地址,這里設為 121314151617(一般選擇任意的12位數(shù)即可);“服務器端口號”設為3330(必須與客戶端一致);網關設為192.168.O.1(要與上位機保持在同一個網段內)。設置好所有參數(shù)后,可以進行數(shù)據(jù)的收發(fā)了。

 

(2)客戶端程序的測試

打開服務器端測試界面,如圖5所示。

 

設置連接IP地址為192.168.0.44(該地址指的是上位機自身的IP,必須與客戶端設置的“服務器端IP地址”一致),設置連接端口號為3330(該端口號須與客戶端設置的“服務器端口號”一致)。將作為客戶端的程序燒人到系統(tǒng)的微處理器中,參數(shù)配置:“服務器IP地址”(指的是上位機的IP地址)為192.168.0.44,“單片機IP地址”可以不用設置(因為系統(tǒng)僅作為客戶端),“服務器端口號”設為3330(必須與客戶端一致),網關設為192.168.0.1(要與上位機保持在同一個網段內)。設置好所有參數(shù)之后,即可進行數(shù)據(jù)收發(fā)。服務器端的數(shù)據(jù)可以被發(fā)送到串口,同樣,數(shù)據(jù)也可以從串口發(fā)送到服務器端。測試表明:上位機通過以太網與系統(tǒng)之間的通信正常。

4 結語

在此實現(xiàn)了TCP/IP協(xié)議棧在單片機上的移植,完成了系統(tǒng)的硬件電路和相關嵌入式軟件的設計,應用VB開發(fā)了上位機修改參數(shù)界面,通過串口完成對網卡等參數(shù)的配置和修改,解決了數(shù)據(jù)包的超時重發(fā)、定時?;?、參數(shù)配置、硬件看門狗復位等一系列問題。實驗表明,整套程序比較穩(wěn)定,收發(fā)數(shù)據(jù)正常,TCP超時重傳效果很好。經過近1個月的測試,沒有出現(xiàn)任何丟包和堵塞的現(xiàn)象。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉