999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TI 28335平臺上的TCP/IP協(xié)議

2012-03-15 07:45:58
電子世界 2012年11期

北汽福田股份有限公司諸城奧鈴汽車廠 張育紅

一、引言

在許多工業(yè)設(shè)備中,由于考慮的數(shù)據(jù)傳輸速度的問題及其現(xiàn)在以太網(wǎng)的網(wǎng)速越來越高,技術(shù)越來越成熟,很多工業(yè)設(shè)備已經(jīng)考慮用以太網(wǎng)通信協(xié)議,從而代替串口通信。在以太網(wǎng)通信中,由于TCP/IP協(xié)議具有可重傳和應(yīng)答機制,UDP協(xié)議不需要應(yīng)答。所以TCP/IP協(xié)議的應(yīng)用更加受人們的青睞。

二、TCP/IP通信協(xié)議的結(jié)構(gòu)

1、表1是TCP/IP在網(wǎng)絡(luò)7層結(jié)構(gòu)中的位置。

表1 TCP/IP在網(wǎng)絡(luò)7層結(jié)構(gòu)中的位置

TCP/IP協(xié)議在上面的7層中用到了其中的五層。

1)應(yīng)用層,可以根據(jù)自己的需要進行設(shè)計,不一定是Telnet,F(xiàn)TP,email。在工業(yè)應(yīng)用中可以是MODBUS協(xié)議或者其他的協(xié)議,根據(jù)需要來決定。應(yīng)用數(shù)據(jù)在TCP/IP數(shù)據(jù)包中在鏈路上傳輸,通信雙方需要進行數(shù)據(jù)解析和數(shù)據(jù)打包的工作。

2)運輸層,主要為兩臺主機上的應(yīng)用程序提供端到端的通信。在TCP/IP協(xié)議族中,有兩個互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。

TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認接收到的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細節(jié)。TCP是一個面向連接的協(xié)議。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。其他層是保證數(shù)據(jù)傳輸正確的一個通道傳輸。

而另一方面,UDP則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達另一端。任何必需的可靠性必須由應(yīng)用層來提供。這兩種運輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途。

3)網(wǎng)絡(luò)層,有時也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議),ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議),以及IGMP協(xié)議(Internet組管理協(xié)議)。

ICMP是IP協(xié)議的附屬協(xié)議。IP層用它來與其他主機或路由器交換錯誤報文和其他重要信息。盡管ICMP主要被IP使用,但應(yīng)用程序也有可能訪問它。我們在通信建立連接后通常會用到ping指令來訪問另一臺主機是否建立連接,ping就是用了ICMP協(xié)議。

ARP(地址解析協(xié)議)和RARP(逆地址解析協(xié)議)是某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來轉(zhuǎn)換IP層和網(wǎng)絡(luò)接口層使用的地址。通信雙方,客戶端知道服務(wù)器端的IP地址,但是不知道對應(yīng)的物理地址(MAC地址),就發(fā)送一條ARP請求協(xié)議,服務(wù)器端看到是自己的IP地址,就發(fā)ARP應(yīng)答數(shù)據(jù)給客戶端,至此,雙方的IP地址和MAC地址都是互知的。

2、具體到實際應(yīng)用中TCP/IP協(xié)議在嵌入式系統(tǒng)中如何封裝和分用。

A、數(shù)據(jù)封裝。

圖1的1-5數(shù)據(jù)進行層層封裝最后通過鏈路發(fā)送。下面具體解釋。

圖1

圖2 硬件框圖

1)在一個嵌入式產(chǎn)品中,比如儀表型產(chǎn)品,需要把儀表的測量信息通過TCP/IP協(xié)議送到后臺的控制軟件那里進行匯總,儀表本身測量到一些基本信息,比如電流,電壓等這些就是屬于用戶數(shù)據(jù)。

2)用戶數(shù)據(jù)直接發(fā)送到服務(wù)器端,服務(wù)器是不知道什么意思的,一堆數(shù)字無法解析。在儀表通信中常用的MODBUS協(xié)議將數(shù)據(jù)進行一次封裝。這樣數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器根據(jù)MODBUS協(xié)議可以知道是那些具體信息。這就是應(yīng)用層數(shù)據(jù)的首部信息。

3)應(yīng)用數(shù)據(jù)準(zhǔn)備OK后,當(dāng)應(yīng)用程序用TCP傳送數(shù)據(jù),數(shù)據(jù)被送入?yún)f(xié)議棧中,首先到得是傳輸層,TCP協(xié)議會給應(yīng)用數(shù)據(jù)增加自己的TCP首部。形成TCP段。TCP首部有20個字節(jié)。

4)形成TCP段傳輸?shù)骄W(wǎng)絡(luò)層,IP協(xié)議會給數(shù)據(jù)增加IP首部,IP首部也是20個字節(jié)。形成IP段。

5)IP段數(shù)據(jù)傳輸?shù)綌?shù)據(jù)鏈路層,數(shù)據(jù)鏈路層將自己的以太網(wǎng)首尾部信息增加到數(shù)據(jù)上,就完成了數(shù)據(jù)的全部封裝。數(shù)據(jù)發(fā)送到鏈路上進行傳輸。

B、數(shù)據(jù)分用。

當(dāng)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議都要去檢查報文首部中的協(xié)議標(biāo)識,以確定接收數(shù)據(jù)的上層協(xié)議。這個過程稱作分用。直到應(yīng)用層數(shù)提取出來。

圖3

三、硬件環(huán)境

我們現(xiàn)在用TI公司的TMS28335與亞信公司的AX88796B來設(shè)計。由于TI的DSP技術(shù)比較成熟,運算速度快可以達到150MHz,支持浮點運算,外設(shè)比較豐富幾乎包括所有的外設(shè)接口。目前很多工控產(chǎn)品用這款芯片。同時由于現(xiàn)在很多工控產(chǎn)品已經(jīng)傾向于用以太網(wǎng)進行數(shù)據(jù)的快速交換。AX88796B性價比高,支持全雙工,100M流量,完全滿足我們的設(shè)計需求。

如硬件框圖圖2。對XZCS0和PWMA6信號線進行分析。

XZCS0作為片選信號。由于AX88796B是映射到TMS28335的某個外設(shè)地址(External Memory)的,可以在XZCS0,XZCS6,XZCS7之間任意選擇一個位置來映射。

PWMA6是TMS28335做外部中斷的一個腳。與AX88796B的外部中斷輸出腳相連。網(wǎng)卡芯片接收到外部數(shù)據(jù)后存放在網(wǎng)卡芯片緩沖環(huán)中,會產(chǎn)生一個外部中斷信號。TMS28335接收到這個中斷信號以后就接收數(shù)據(jù),從網(wǎng)卡芯片緩沖環(huán)中將數(shù)據(jù)讀取到TMS28335中,進行TCP/IP協(xié)議處理。AX88796B就是七層結(jié)構(gòu)中的物理層。

四、以太網(wǎng)移植UIP協(xié)議的過程

uip是專為8位和16位的嵌入式微控制器設(shè)計的微型TCP/IP協(xié)議棧,uIP提供了網(wǎng)絡(luò)通信所必須的協(xié)議,本身代碼和占用的內(nèi)存數(shù)都非常少-uIP的源代碼只有幾KB,RAM占用僅幾百字節(jié)。總的內(nèi)存占用將依賴:分配了多少個TCP鏈接數(shù),分配了多少個ARP表項,分配了多大的包緩沖。這些在編譯時候可以設(shè)置。每一個正在監(jiān)聽的TCP端口增加額外的2個字節(jié)內(nèi)存。

1、下面是我們項目的配置

#define UIP_ARPTAB_SIZE 10

(分配了10個ARP表項)

#define UIP_BUFSIZE 297

(一個297字節(jié)大小的包緩沖)

#define UIP_CONNS 10

(10個TCP連接數(shù))

#define UIP_TIME_WAIT_TIMEOUT 60

(定義超時時間為60個時鐘節(jié)拍)

2、軟件處理流程

在硬件設(shè)計的時候配置了一個外部中斷IO口,所在如果網(wǎng)卡收到數(shù)據(jù)會觸發(fā)一個中斷,TMS28335通過執(zhí)行interrupt void XINT1_ISR(void)這樣的外部中斷來處理數(shù)據(jù)包。代碼示例。考慮到中斷不可能處理太多東西,要不占用資源太多,影響CPU的正常工作,所以在中斷里面只進行讀網(wǎng)卡芯片數(shù)據(jù)的過程。在這個中斷里面再使能另一個中斷,當(dāng)讀網(wǎng)卡芯片的中斷退出來后通過中斷優(yōu)先級的分配,進入到PieCtrlRegs.PIEIFR10.bit.INTx1=1所使能的中斷中執(zhí)行TCP/IP的數(shù)據(jù)處理,這個中斷的優(yōu)先級比較低。

在新開的這個低優(yōu)先級的中斷里面進行協(xié)議處理,代碼如下:

另外還有一個定時中斷處理,每隔500毫秒秒調(diào)用一次。這個中斷中主要做2件事情。第一是輪訓(xùn)UIP_CONNS定義的連接,判斷是否有連接超時時間到,如果到就關(guān)閉連接,該連接的資源空出來。第二件事情就是每隔10秒鐘將UIP_ARPTAB_SIZE個長度的ARP緩沖表的數(shù)據(jù)清空。然后在正常收到TCP/IP協(xié)議數(shù)據(jù)的時候再進行數(shù)據(jù)更新。

3、UIP下載包各個文件功能描述

Uip.c——是主要的處理TCP/IP協(xié)議的文件。

其中函數(shù)Void uip_process(Uint16 flag)是協(xié)議處理程序的入口處。

Uip_arch.c是IP數(shù)據(jù)包進行校驗和計算

Uip_arp.c是ARP請求處理的函數(shù)

Uipopt.h是TCP/IP協(xié)議配置的宏定義

由于協(xié)議包里面的內(nèi)容基本不用怎么改變,只要把外部的配置調(diào)整好,寫好網(wǎng)卡驅(qū)動程序,編譯就可以調(diào)試了。通過PING指令可以PING到局域網(wǎng)內(nèi)的其他主機。或者是與應(yīng)用程序配套的TCP/IP協(xié)議都是可以通信正常的。

五、結(jié)束語

UIP協(xié)議棧的成功移植,再配合MODBUS TCP/IP協(xié)議的應(yīng)用,我們的工控產(chǎn)品可以快速的和其他設(shè)備進行快速的通信。比之485通信速度高了很多,優(yōu)勢明顯。

主站蜘蛛池模板: 视频二区国产精品职场同事| 天天综合天天综合| 黄色不卡视频| 美女视频黄又黄又免费高清| 亚洲成在线观看 | 国产成人精品高清不卡在线| 国产aⅴ无码专区亚洲av综合网| 老色鬼久久亚洲AV综合| 国产成人欧美| 日韩高清欧美| 青青青国产精品国产精品美女| 欧美亚洲国产精品第一页| 亚洲V日韩V无码一区二区| 国产精品视屏| 免费看a级毛片| 日韩精品一区二区三区视频免费看| 97视频在线观看免费视频| 午夜毛片免费观看视频 | 成年看免费观看视频拍拍| 欧美人与牲动交a欧美精品| 国产精品亚洲va在线观看| 欧美国产菊爆免费观看| 尤物国产在线| 亚洲熟女中文字幕男人总站| 欧美国产在线精品17p| 国产91视频免费观看| 亚洲成网777777国产精品| 国产美女久久久久不卡| 久久女人网| 蜜臀AV在线播放| 91亚瑟视频| 国产第一页第二页| a毛片免费观看| 国产97视频在线观看| 人妻无码中文字幕第一区| 999在线免费视频| 麻豆国产在线观看一区二区| 成人福利在线视频免费观看| 一级毛片在线播放免费观看 | 青青网在线国产| 国产中文在线亚洲精品官网| 婷婷亚洲天堂| 亚洲成a人片77777在线播放| 久久这里只有精品2| 国产福利大秀91| 手机在线免费不卡一区二| 国产精品视频第一专区| 四虎精品免费久久| 日本久久久久久免费网络| 欧美中文字幕无线码视频| 日本久久久久久免费网络| 伊人无码视屏| 青青草国产一区二区三区| 91免费国产高清观看| 久久99国产综合精品女同| 国产欧美日韩专区发布| 久久婷婷五月综合色一区二区| 欧美一级黄色影院| 无码一区中文字幕| aa级毛片毛片免费观看久| 亚洲欧美在线精品一区二区| 综合久久五月天| 爆操波多野结衣| 亚洲一区精品视频在线| 99er这里只有精品| 日韩一区二区在线电影| 黄色三级网站免费| 国产精品久久久久无码网站| 久久精品人人做人人| 国产精品浪潮Av| 亚洲高清国产拍精品26u| 日韩 欧美 小说 综合网 另类| 久久综合亚洲色一区二区三区| 99久久国产综合精品2020| 国产美女一级毛片| 日韩国产综合精选| 亚亚洲乱码一二三四区| 精品久久久久成人码免费动漫| 亚洲无限乱码一二三四区| h网址在线观看| 亚洲 欧美 日韩综合一区| 日韩一级二级三级|